计算机中组成原理N0_第1页
计算机中组成原理N0_第2页
计算机中组成原理N0_第3页
计算机中组成原理N0_第4页
计算机中组成原理N0_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2冯诺伊曼结构输入设备输出设备存储器控制器运算器程序数据结果数据结果地址指令控制信号数据线地址线控制线3TEC-5介绍输入设备输出设备存储器运算器控制器4Tec-5系统原理图注意事项1)#表示负逻辑,0有效,1无效2)带T的信号要与时序脉冲(QD)配合才能生效3)要防止ALU_BUS#、RS_BUS#、SW_BUS#、RAM_BUS#在DBUS上的数据冲突输入设备5QD与时序的关系QD1次时序图主时钟T1T2T3T46实现MOVR0,0fh寄存器一共有4个,分别为R0,R1,R2,R3指令含义:将R0的值赋为0fh7实现MOVR0,0fhSW_BUS#=0SW7-SW0=00001111WR1WR0=00LDRi=1(T3)QD1SW_BUS#=1LDRi=08练习:MOVR2,41hSW_BUS#=0SW7-SW0=01000001WR1WR0=10LDRi=1(T3)QD1SW_BUS#=1LDRi=09读取R0、R2的数据RS_BUS#=0RS1RS0=00查看R0无需QDRS_BUS#=1RS_BUS#=0RS1RS0=10查看R2无需QDRS_BUS#=110TEC-5运算器介绍S3S2S1S0MCn#运算结果100101A+B加法011000A-B减法000000A&A101111A&B与运算TEC-5运算模式表运算器注意事项1)需要运算操作的两个数据在

DR1和DR2上2)运算顺序:

DR1(A)OPDR2(B)3)运算的输出控制:ALU_BUS#4)C(T3)为运算进位信息11实现:ADDR2,R0,R1指令含义:将R0+R1的结果赋给R2实现思路Step1)将R0送到DR1,将R1送到DR2Step2)实现R0+R1,并把结果通过DBUS送给R2

12ADDR2,R0,R1实现过程RD1RD0=00RS1RS0=01LDDR1=LDDR2=1(T2)QD1LDDR1=LDDR2=0S3S2S1S0MCn#运算结果100101A+B加法011000A-B减法000000A&A101111A&B与运算S3S2S1S0=1001M=0Cn#=1ALU_BUS#=0WR1WR0=10LDRi=1(T3)QD1LDRi=0ALU_BUS#=113练习:SUBR0,R1,R2S3S2S1S0MCn#运算结果100101A+B加法011000A-B减法000000A&A101111A&B与运算RD1RD0=01RS1RS0=10LDDR1=LDDR2=1(T2)QD1LDDR1=LDDR2=0S3S2S1S0=0110M=0Cn#=0ALU_BUS#=0WR1WR0=00LDRi=1(T3)QD1LDRi=0ALU_BUS#=114思考题:如何查看DR1的值?S3S2S1S0MCn#运算结果100101A+B加法011000A-B减法000000A&A101111A&B与运算S3S2S1S0=0000M=0Cn#=0ALU_BUS#=0查看DR1ALU_BUS#=115程序阅读及实现MOVR2,AAH;MOVR3,53H;ANDR1,R2,R3;

S3S2S1S0MCn#运算结果100101A+B加法011000A-B减法000000A&A101111A&B与运算求R1的理论值?R1=02H16TEC-5的内存内存读写步骤Step1)给内存地址(AR1)Step2)内存读写控制

信号说明1)CEL#和RAM_BUS#是内存数据端口与DBUS间的总线开关2)LR/W#=1,读内存;

LR/W#=0,写内存;3)LDAR#将DBUS数据Load至AR14)AR+1,使AR1自增1*)AR+1与LDAR#不能同时生效17实现:MOV[20h],03h指令含义:将数据03h赋给地址为20h的内存[]表示对内存操作,中括号内的是内存的地址

SW_BUS#=0SW7-SW0=00100000LDAR#=0(T2)QD1LDAR#=1SW_BUS#=1SW_BUS#=0SW7-SW0=00000011RAM_BUS#=0CEL#=0LR/W#=0QD1LR/W#=1RAM_BUS#=1CEL#=118练习:MOV[27h],31h;MOV[28h],49h19课程回顾:寄存器与运算器1)RF寄存器的写入操作2)RF寄存器的读出操作3)运算器的操作

S3S2S1S0MCn#运算结果100101A+B加法011000A-B减法000000A&A101111A&B与运算20课程回顾:寄存器与运算器1)MOVR2,23H2)MOVR3,56H3)ADDR1,R2,R3S3S2S1S0MCn#运算结果100101A+B加法011000A-B减法000000A&A101111A&B与运算21课程回顾:存储器的写入操作1)MOV[21h],12h2)MOV[22h],22h3)MOV[23h],32hS3S2S1S0MCn#运算结果100101A+B加法011000A-B减法000000A&A101111A&B与运算22查看[27h],[28h]的内存数据SW_BUS#=0SW7-SW0=00100111LDAR#=0(T2)QD1LDAR#=1SW_BUS#=1RAM_BUS#=0CEL#=0LR/W#=1查看[27H]CEL#=1RAM_BUS#=123练习:MOVR1,[21h]

SW_BUS#=0SW7-SW0=00100001LDAR#=0(T2)QD1LDAR#=1SW_BUS#=1RAM_BUS#=0CEL#=0LR/W#=1WR1WR0=01LDRi=1QD1LDRi=0CEL#=1RAM_BUS#=124练习:MOVR0,[R2]

RS_BUS#=0RS1RS0=10LDAR#=0(T2)QD1LDAR#=1RS_BUS#=1RAM_BUS#=0CEL#=0LR/W#=1WR1WR0=00LDRi=1QD1RAM_BUS#=1CEL#=1LDRi=025练习:MOV[13h],R0

26练习:MOV[R0],R1h

27课程回顾MOV[R0],R1MOV[13h],R0MOVR0,[R2]MOVR1,[21h]MOVR1,21hMOV21h,12h28微程序

控制器的组成与指令的执行

微程序控制器

微指令地址形成部件实现一二三29问题背景

实现内存赋值和查看MOV[10h],31hMOV[11h],47hMOV[12h],36hSW_BUS#=0SW7-SW0=xxHLDAR#=0QD1SW_BUS#=1LDAR#=0SW_BUS#=0SW7-SW0=xxHCEL#=0RAM_BUS#=0LR/W#=0QD1LR/W#=1CEL#=1RAM_BUS#=1SW_BUS#=1AR+1=1QD1AR+1=0u09u04U0530写内存的微指令实现u09u04u05写内存地址写内存数据内存地址+1注:空白处全为031读内存的微指令实现

32写RAM:[00h]=09h过程CLR#复位程序复位,使得微程序地址为00HP0判断分支,进u09需SWC-B-A=001SW7-SW0=00HQD1执行送内存地址QD1SW7-SW0=09H送内存数据前做好数据准备执行送内存数据U地址灯:显示当前已经执行完的u指令的地址送内存地址前做好数据准备u09u0433CLR#复位程序复位,使得微程序地址为00HP0判断分支,进u0A需SWC-B-A=010SW7-SW0=00H送内存地址前做好数据准备QD1执行送内存地址QD1读内存数据读RAM:[00h]

[01h]QD2读下一地址的内存数据即[01h]u0Au02u03u0234练习内存连续写和读实现内存赋值和查看MOV[10h],31hMOV[11h],47hMOV[12h],36h35写寄存器的微指令实现

难题微指令中没有WR1-WR0,RS1-RS0,RD1-RD0等信号线,如何写入和读出?解决WR1-RD1-IR1相连WR0-RD0-IR0相连RS1-IR3相连RS0-IR2相连36写Ri:R1=34hSWCBA=011CLR#复位SW7-SW0=C0HQD1QD1挑一个在其它地方用不到的内存地址u0BSW7-SW0=C1HQD2u1D,0D只有低2位真正起作用SW7-SW0=34HRi无法直接索引,必须靠指令中的低4位进行索引。在TEC-5中IR3—RS1,IR2-RS0,IR1-RD1-WR1,IR0-RD0-WR0思路写存放指令的内存地址(u0Bh)制造一条索引Ri的指令(u1Dh)将指令读出,达到索引Ri目的(u0Dh)写数据到Ri(u0Eh)u0E37实现:R2=23h,R3=45h的写入操作38实验回顾MOVR2,AAH;MOVR3,53H;ANDR1,R2,R3;

S3S2S1S0MCn#运算结果100101A+B加法011000A-B减法000000A&A101111A&B与运算求R1的理论值?R1=02H39课程回顾:内存写入与读书实现内存赋值和查看MOV[10h],31hMOV[11h],47hMOV[12h],36h40课程回顾:寄存器写入41读R1SWCBA=100CLR#复位SW7-SW0=C0HQD1QD1挑一个在其它地方用不到的内存地址u0CSW7-SW0=C4HQD2u1E,u06只有IR3-IR2位真正起作用思路写存放指令的内存地址(u0Ch)制造一条索引Ri的指令(u1Eh)将指令读出,达到索引Ri目的(u06h)在DBUS读Ri(u07h)u07读内存数据42练习:R0、R1的读操作43实验回顾MOV[14h],5BhMOVR2,[14h]

S3S2S1S0MCn#运算结果100101A+B加法011000A-B减法000000A&A101111A&B与运算44课程回顾:寄存器的写入与读出45TEC-5的指令系统名称助记符功能指令格式IR7~IR4IR3IR2IR1IR0加法ADDRd,RsRd+Rs->Rd0000RS1RS0RD1RD0减法SUBRd,RsRd-Rs->Rd0001RS1RS0RD1RD0逻辑与ANDRd,RsRd&Rs->Rd0010RS1RS0RD1RD0存数STARd,[Rs]Rd->[Rs]0011RS1RS0RD1RD0取数LDARd,[Rs][Rs]->Rd0100RS1RS0RD1RD0条件转移JCRs若C=1则R3->PC0101RS1RS0XX停机STP暂停运行0110XXXX输出OUTRsRs->DBUS0111RS1RS0XX操作码地址码1地址码246实现ADDR1,R2

SUBR2,R3计算机会怎么做?将指令翻译成二进制数将指令存到存储设备上将指令从存储设备取出翻译指令,产生控制信号执行指令翻译ADDR1,R200001001(09H)SUBR2,R300011110(1EH)将指令写到RAM(从00地址开始)RAM地址00H:09H01H:1EHPC00H,将指令09H取出,执行PC01H,将指令1EH取出,执行47模拟程序执行RAM地址数据00H:0000100101H:00011110RAM地址数据00H:ADDR1,R201H:SUBR2,R348TEC-5汇编指令翻译成机器指令练习任务a,b,c为8位数据的变量,分别存储在[20h]、[21h]、[22h]三个内存单元中,如何实现:c=a+b实现1MOVR0,[20h]MOVR1,[21h]ADDR0,R1MOV[22h],R0实现1问题TEC-5不支持MOV指令,实现1中只有ADD指令能被执行实现2(TEC-5实现)初始化:R0=20h,R1=01h代码:LDAR2,[R0]ADDR0,R1LDAR3,[R0]ADDR0,R1ADDR2,R3STAR2,[R0]49TEC-5的指令系统名称助记符功能指令格式IR7~IR4IR3IR2IR1IR0加法ADDRd,RsRd+Rs->Rd0000RS1RS0RD1RD0减法SUBRd,RsRd-Rs->Rd0001RS1RS0RD1RD0逻辑与ANDRd,RsRd&Rs->Rd0010RS1RS0RD1RD0存数STARd,[Rs]Rd->[Rs]0011RS1RS0RD1RD0取数LDARd,[Rs][Rs]->Rd0100RS1RS0RD1RD0条件转移JCRs若C=1则R3->PC0101RS1RS0XX停机STP暂停运行0110XXXX输出OUTRsRs->DBUS0111RS1RS0XX操作码地址码1地址码250程序在TEC-5上的运行地址指令机器代码译码值备注00HLDAR2,[R0]42H0001000001HADDR0,R104H初始值:R0=20hR1=01h02HLDAR3,[R0]43H03HADDR0,R104H04HADDR2,R30EH05HSTAR2,[R0]32H步骤1:将汇编语言翻译成二进制代码51程序在TEC-5上的运行步骤2:将代码写入[00h]-[05h]52程序在TEC-5上的运行步骤3:初始化Ri53程序在TEC-5上的运行步骤4:运行程序54节拍脉冲、CPU周期、指令周期节拍脉冲与CPU时钟相关,是最小的时间单位CPU周期取一条指令的周期在TEC-5中,1个CPU周期=4个节拍脉冲DP=1,DB=0,即单拍模式,一次QD=1个CPU周期=4个节拍脉冲指令周期取出一条指令到执行完该指令的周期在TEC-5中,1个指令周期=2~3个CPU周期=8~12个节拍脉冲,在单指模式下可实现一个指令周期(DP=0,DB=1)55掌握概念(1)相容性微操作指在同时或同一个CPU周期内可以并行执行的微操作相斥性微操作指在同时或在同一个CPU周期内不能并行执行的微操作微命令控制部件通过控制线向执行部件发出的各种控制命令微操作执行部件接受微命令后所进行的操作56掌握概念(2)微指令包括微命令和微地址,在一个CPU周期内执行微程序一条机器指令所包含的序列微指令水平型微指令和垂直型微指令(课外)了解水平型微指令比垂直型微指令快公操作(课外)一条指令执行完毕后,所进入的公共操作(u0F)微指令表示方法直接表示法、编码表示法、混合表示法直接表示法执行速度最快符号:57直接表示法直接表示法特点这种方法结构简单,并行性强,操作速度快,但是微指令字太长,若微命令的总数为N个,则微指令字的操作控制字段就要有N位。另外,在N个微命令中,有许多是互斥的,不允许并行操作,将它们安排在一条微指令中是毫无意义的,只会使信息的利用率下降。58编码表示法2、编码表示法:将操作控制字段分为若干个小段,每段内采用最短编码法,段与段之间采用直接控制法。编码表示法特点:可以避免互斥,使指令字大大缩短,但增加了译码电路,使微程序的执行速度减慢59混合表示法

混合编码法:将前两种结合在一起,兼顾两者特点。一个字段的某些编码不能独立地定义某些微命令,而需要与其他字段的编码来联合定义60硬连线控制器将控制部件看成是产生专门固定时序的控制信号的逻辑电路,因此逻辑电路以使用最少元件和取得最高操作速度为设计目标掌握在执行速度上硬布线控制器比微程序控制器快在开发周期上硬布线比微程序长在可修改性上硬布线没有微程序方便快捷61CPU的功能和组成62CPU的功能指令控制保证CPU按一定顺序执行程序代码(如PC+1,JC)操作控制根据指令,发出相应的操作信号使得功能部件完成预定的操作(如微命令)时间控制对各种操作在时间上的有序管理,使其不冲突出错如:T1~T4(取指、译码、执行周期)数据加工对数据完成算术运算或逻辑运算63CPU的基本组成运算器控制器CacheCPU组成负责数据的算术、逻辑运算等数据加工取指令、对指令译码、执行操作控制等提高CPU与内存之间的传输性能64CPU的主要寄存器数据缓冲寄存器(DR)暂存数据指令寄存器(IR)暂存指令程序计数器(PC)指向下一条指令的地址内存地址寄存器(AR)通用寄存器(Ri)状态字寄存器(PSW)运算进位C、运算结果溢出V(活O),运算零标志(Z)、运算结果为负标志(N)65操作控制器数据通路各寄存器、内存等之间的传送信息通路操作控制器硬布线控制器采用时序逻辑电路、组合电路来实现(设计复杂,速度快)微程序控制器采用存储逻辑来实现(设计灵活,速度比硬布线慢)时序控制器主要采用环形时序电路66指令周期基本概念指令周期取出指令+执行该指令的时间不同的指令,其指令周期可能不同如TEC-5中加法指令与OUT指令具有不同的周期机器周期(CPU周期)取出一条指令的时间(TEC-5中为T1-T4)时钟周期节拍脉冲(T周期),在TEC-5中为一个Ti的时间时钟周期≤机器周期≤指令周期67MOV指令的指令周期取指周期执行周期68MO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论