CPU与控制单元设计_第1页
CPU与控制单元设计_第2页
CPU与控制单元设计_第3页
CPU与控制单元设计_第4页
CPU与控制单元设计_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

计算机组成原理与汇编语言

〔组成原理局部〕

2000级北航计算机学院刘旭东Tel:82316285,82317634Mail:第五局部CPU与控制单元设计一、CPU的结构与功能二、指令流程与组合逻辑控制器三、微程序原理四、微程序控制器设计一、CPU的结构与功能二、指令流程与组合逻辑控制器三、微程序原理四、微程序控制器设计1.1CPU的结构与功能CPU的功能取指令:具备从存储器中取出指令的功能地址部件:解决指令地址的产生指令部件:保存从存储器中取来的指令分析指令:分析指令的操作性质,计算指令操作对象的位置〔地址〕译码部件:对指令进行译码执行指令:实现指令的操作功能控制信号:根据指令的操作性质和操作对象的地址,产生一系列的微操作控制信号,从而控制计算机的运算器、存储器或输入输出接口等部件,实现指令所表示的功能。1.1CPU的结构与功能CPU的结构运算器:算术逻辑运算单元〔ALU〕存放器:通用计算机〔GR〕,标志存放器〔FR,又称程序状态字PSW〕控制单元〔CU〕:指令部件:指令存放器〔IR〕译码部件:指令译码器〔ID〕控制部件:微操作控制信号产生部件时序部件:产生时序信号中断系统:处理异常事务内部总线:CPU内部数据通路〔InternalBus〕1.1CPU的结构与功能CPU内部结构执行单元控制单元存放器单元中断系统内部总线1.1CPU的结构与功能CPU内部的存放器通用存放器〔GeneralRegister〕:用户可见,汇编语言可以直接使用;数据存放器、基址存放器、变址存放器、堆栈指针、标志存放器〔条件代码存放器〕等控制与状态存放器:一般用户不可见,为系统控制专用,用户不可直接使用。MAR〔MemoryAddressRegister〕:存储器地址存放器MBR/MDR〔MemoryBufferRegister,MemoryDataRegister〕:存储器数据缓冲存放器PC〔ProgramCounter〕:程序计数器,存放下一条指令的地址IR〔InstructionRegister〕:指令存放器,存放当前执行的指令编码1.1CPU的结构与功能执行单元〔EU-ExecutionUnit〕执行单元的核心:算术逻辑运算单元〔ALU〕,完成算术运算、逻辑运算、移位运算等操作;存放器:提供数据缓冲;控制单元〔CU-ControlUnit〕指令存放器IR指令译码器ID〔InstructionDecoder〕时序部件:提供各种时序信号控制信号生成部件:产生计算机其他部件所需要的所有微操作控制信号。中断系统检查中断信号,中断CPU的正常程序执行,处理异常事务。1.2模型机结构返回1.2模型机结构简化的8086/8088结构16位系统通用存放器部件主存地址存放器MAR主存数据存放器MDR暂存器C,D,Z程序计数器PC指令存放器IRALU存储器部件控制部件数据通路与控制信号微操作控制信号与控制脉冲1.3模型机的指令系统双操作数指令格式RR型或RS型,必有一个操作数在存放器中〔存放器直接寻址〕长度2~4个字节〔前2个字节必须〕Opcode:操作码〔6位〕d:方向字段〔1位〕。在第二个字节中,REG确定一个操作数〔存放器直接寻址〕,MOD和R/M确定零一个操作数的寻址方式。方向字段d说明REG确定的是源操作数还是目的操作数。d=1,REG确定目的操作数,MOD+R/M确定源操作数d=0,REG确定源操作数,MOD+R/M确定目的操作数W:字/字节字段〔1位〕:操作数是字节〔8位〕还是字〔16位〕W=1,字〔16位〕W=0,字节〔8位〕1.3模型机的指令系统双操作数指令格式REGW=1W=0000AXAL001CXCL010DXDL011BXBL100SPAH101BPCH110SIDH111DIBH寄存器编码表1.3模型机的指令系统双操作数指令格式1.3模型机的指令系统单操作数指令格式指令分类传送指令:MOVDest,Src算术指令:ADDDest,SrcSUBDest,SrcANDDest,SrcORDest,SrcXORDest,Src单操作数指令:INCDest,DECDest,NEGDest,NOTDest

移位指令:SALDest,1;SARDest,1程序控制指令:转移指令,转子指令等一、CPU的结构与功能二、指令流程与组合逻辑控制器三、微程序原理四、微程序控制器设计2.1控制方式与时序系统控制方式同步控制方式:以主时钟为根底异步控制方式同步控制方式下的时序系统脉冲时序信号:主时钟脉冲节拍信号:T1,T2,T3,T4机器周期信号:M1,M2,M3,M4指令周期指令周期取指周期:从存储器取出指令送指令存放器取数周期:计算操作数有效地址,取出操作数;执行周期:执行指令的功能指令周期与机器周期、节拍周期的关系同步控制方式下,指令周期包括多个〔不一定固定〕机器周期;每个机器周期包括固定个数的节拍周期2.1控制方式与时序系统时序系统2.1控制方式与时序系统时序部件2.2指令流程与微操作时间表指令周期分析〔针对模型计算机及其指令系统而言〕取指周期的微操作流程MOV指令的微操作流程单操作数指令的微操作流程双操作数指令的微操作流程其他指令的微操作流程2.2指令流程与微操作时间表指令的执行过程取指:从存取器读取当前指令送到指令存放器〔IR〕,要根据指令编码的长度才能确定读取指令的详细流程。取数:计算操作数地址,读取操作数,要根据操作数的来源与寻址方式才能确定具体的操作过程。执行:执行并送结果。取指周期指令的核心局部占16Bits,机器字长16Bits,每一次从存储器能读取16Bits指令编码长度有2个字节〔16位〕,4个字节〔32位〕,甚至6个字节,但指令核心局部长度为16位。取指周期特指读取指令核心局部〔16Bits〕的周期,所以在这种前题下,所有指令的取指周期是完全一样的。2.2指令流程与微操作时间表取指周期的微操作流程取指流程需要4个节拍指令地址送MAR存储器读出指令指令送MDR,并调整PC指令送IR每条指令执行过程的第一个机器周期M1都是取指周期〔取到指令核心局部〕M1.T3时间节拍完成功能需要的微操作信号M1.T1指令地址送MARIBPCM1.T2ReadMemoryABMAR,RD,W/B指令送MDRMDRDB调整PC

PC+1MDR(指令)送IRIBMDR需要的控制脉冲CPMARCPMDRCPPCCPIRM1.T4结构图2.2指令流程与微操作时间表MOVAX,BX指令执行的微操作流程指令长度:16位,一次可读取完毕〔指令代码:89DBH)读取指令周期:机器周期M1内完成执行周期:机器周期M2内完成M1.T3时间节拍完成功能需要的微操作信号M1.T1指令地址送MARIBPCM1.T2ReadMemoryABMAR,RD,W/B指令送MDRMDRDB调整PC

PC+1MDR(指令)送IRIBMDR需要的控制脉冲CPMARCPMDRCPPCCPIRM1.T4取指周期BX送暂存器CIBGR,RDGR,W/BCPC,BX地址M2.T1暂存器C送AXIBC,WRGR,W/BAX地址M2.T2无操作M2.T3无操作M2.T4执行周期结构图2.2指令流程与微操作时间表MOVAX,1000H[BX]指令执行的微操作流程指令长度:32位,分两次读取〔指令代码:8B870010H〕读取指令周期:机器周期M1内完成〔读第一个16位〕读变址值周期:机器周期M2内完成取操作数周期:机器周期M3内完成执行周期:机器周期M4内完成M1.T3时间节拍完成功能需要的微操作信号M1.T1指令地址送MARIBPCM1.T2ReadMemoryABMAR,RD,W/B指令送MDRMDRDB调整PC

PC+1MDR(指令)送IRIBMDR需要的控制脉冲CPMARCPMDRCPPCCPIRM1.T4取指周期结构图2.2指令流程与微操作时间表M2.T3时间节拍完成功能需要的微操作信号M2.T1PC送MARIBPCM2.T2从存储器读取1000HABMAR,RD,W/B1000H送MDRMDRDB调整PC

PC+1MDR(1000H)送DIBMDR需要的控制脉冲CPMARCPMDRCPPCCPDM2.T4取变址值(BX)+1000H送ZIBGR,RDGR,W/B,ADDBX地址,CPZM3.T1源操作数地址Z送MARIBZCPMARM3.T2取数周期读取源操作数ABMAR,RD,W/BM3.T3源操作数送MDRMDRDBCPMDRM3.T4结构图2.2指令流程与微操作时间表M4.T3时间节拍完成功能需要的微操作信号M4.T1源操作数送AXIBMDR,WRGR,W/BM4.T2

需要的控制脉冲AX的地址M4.T4执行周期结构图2.2指令流程与微操作时间表MOV1000H[BX],AX指令执行的微操作流程指令长度:32位,分两次读取〔指令代码:89870010H〕读取指令周期:机器周期M1内完成〔读第一个16位〕读变址值周期:机器周期M2内完成取操作数周期:机器周期M3内完成M1.T3时间节拍完成功能需要的微操作信号M1.T1指令地址送MARIBPCM1.T2ReadMemoryABMAR,RD,W/B指令送MDRMDRDB调整PC

PC+1MDR(指令)送IRIBMDR需要的控制脉冲CPMARCPMDRCPPCCPIRM1.T4取指周期结构图2.2指令流程与微操作时间表结构图M2.T3时间节拍完成功能需要的微操作信号M2.T1PC送MARIBPCM2.T2从存储器读取1000HABMAR,RD,W/B1000H送MDRMDRDB调整PC

PC+1MDR(1000H)送DIBMDR需要的控制脉冲CPMARCPMDRCPPCCPDM2.T4取变址值(BX)+1000H送ZIBGR,RDGR,W/B,ADDBX地址,CPZM3.T1目的操作数地址送MARIBZCPMARM3.T2执行周期AX送MDRIBGR,GRRD,W/BAX地址,CPMDRM3.T3写存储器ABMAR,DBMDRWR,W/BM3.T42.2指令流程与微操作时间表结构图ADD2000H[BX],1000H指令执行的微操作流程指令长度:48位,分三次读取〔指令代码:818700200010H〕读取指令周期:机器周期M1内完成〔读第一个16位〕读变址值周期:机器周期M2内完成取操作数周期:机器周期M3内完成取立即数,完成加法:机器周期M4内完成执行周期:机器周期M5内完成M1.T3时间节拍完成功能需要的微操作信号M1.T1指令地址送MARIBPCM1.T2ReadMemoryABMAR,RD,W/B指令送MDRMDRDB调整PC

PC+1MDR(指令)送IRIBMDR需要的控制脉冲CPMARCPMDRCPPCCPIRM1.T4取指周期2.2指令流程与微操作时间表结构图M2.T3时间节拍完成功能需要的微操作信号M2.T1PC送MARIBPCM2.T2从存储器读取2000HABMAR,RD,W/B2000H送MDRMDRDB调整PC

PC+1MDR(2000H)送ALU加法结果送ZIBMDR,ADD,W/B需要的控制脉冲CPMARCPMDRCPPCCPZM2.T4取变址值BX送暂存器DIBGR,RDGRCPD,BX地址目的操作数地址Z送MAR地址暂存在CIBZCPMAR,CPCM3.T1取数周期读取目的操作数ABMAR,RD,W/BM3.T2目的操作数送MDRMDRDBCPMDRM3.T3目的操作数送DIBMDRCPDM3.T42.2指令流程与微操作时间表时间节拍完成功能需要的微操作信号需要的控制脉冲M4.T3M4.T1PC送MARIBPCM4.T2从存储器读取1000HABMAR,RD,W/B1000H送MDRMDRDB调整PC

PC+1完成加法IBMDR,ADD,W/BCPMARCPMDRCPPCCPZM4.T4取立即数进行加法结构图目的操作数地址C送MARIBCCPMARM5.T1保存结果加法结果送MDRIBZCPMDRM5.T2结果写存储器ABMAR,DBMDRWR,W/BM5.T3NoOperationM5.T42.2指令流程与微操作时间表结构图JNE1200指令执行的微操作流程指令长度:假定占32位,分两次读取不相等时转移,相对寻址,目标地址=〔PC〕+1200读取指令周期:机器周期M1内完成〔读第一个16位〕读转移地址周期:机器周期M2内完成M1.T3时间节拍完成功能需要的微操作信号M1.T1指令地址送MARIBPCM1.T2ReadMemoryABMAR,RD,W/B指令送MDRMDRDB调整PC

PC+1MDR(指令)送IRIBMDR需要的控制脉冲CPMARCPMDRCPPCCPIRM1.T4取指周期2.2指令流程与微操作时间表结构图1200H送暂存器DM2.T3时间节拍完成功能需要的微操作信号M2.T1PC送MARIBPCM2.T2从存储器读取1200HABMAR,RD,W/B1200H送MDRMDRDB调整PC

PC+1需要的控制脉冲CPMARCPMDRCPPC取转向地址IBMDR,W/BCPDM2.T4计算转向地址IBPC,ADD,W/BCPZM3.T1实现转移如果Z=0时转移条件来自标志寄存器IBZCPPCM3.T22.3微操作信号的综合译码与微操作控制信号局部逻辑图2.3微操作信号的综合例IBMDR微操作控制信号的综合例如中的所有指令的M1.T4节拍MOVAX,1000H[BX]指令的M2.T4节拍〔条件:操作码译码为MOV,源操作数寻址译码为变址寻址〕。MOV1000H[BX],AX指令的M2.T4节拍〔条件:操作码译码为MOV,目的操作数寻址译码为变址寻址〕。ADD2000H[BX],1000H指令的M2.T4,M3.T4和M4.T4节拍〔条件:操作码译码为ADD,目的操作数寻址译码为变址寻址,源操作数寻址为立即数寻址〕JNE1200指令的M2.T4节拍2.3微操作信号的综合例1:IBMDR微操作控制信号的综合Sx表示源操作数是变址寻址,SR表示存放器直接寻址〔可以理解为译码器的输出端〕Dx表示目的操作数是变址寻址Simm表示源操作数是立即数寻址OPMov,OPAdd和OPJne表示操作码译码输出指令时间节拍操作码译码源寻址译码IBMDR有效的时间与条件目寻址译码示例中的所有指令M1.T4MOVAX,1000H[BX]M2.T4MOVSxDRMOV1000H[BX],AXM2.T4MOVSRDxADD2000H[BX],1000HM2.T4ADDSimmDxM3.T4ADDSimmDxM4.T4ADDSimmDxJNE1200M2.T4JNEFR2.3微操作信号的综合IBMDR微操作控制信号的布尔表达式指令时间节拍操作码译码源寻址译码IBMDR有效的时间与条件目寻址译码示例中的所有指令M1.T4MOVAX,1000H[BX]M2.T4MOVSxDRMOV1000H[BX],AXM2.T4MOVSRDxADD2000H[BX],1000HM2.T4ADDSimmDxM3.T4ADDSimmDxM4.T4ADDSimmDxJNE1200M2.T4JNEFR2.3微操作信号的综合例2:IBZ微操作控制信号的综合MOVAX,1000H[BX]指令的M3.T2节拍〔条件:操作码译码为MOV,源操作数寻址译码为变址寻址〕。MOV1000H[BX],AX指令的M3.T2节拍〔条件:操作码译码为MOV,目的操作数寻址译码为变址寻址〕。ADD2000H[BX],1000H指令的M3.T1,M5.T2〔条件:操作码译码为ADD,目的操作数寻址译码为变址寻址,源操作数寻址为立即数寻址〕JNE1200指令的M3.T2节拍〔条件为Z=0〕2.3微操作信号的综合例IBZ微操作控制信号的综合Sx表示源操作数是变址寻址〔可以理解为译码器的输出端〕Dx表示目的操作数是变址寻址Simm表示源操作数是立即数寻址OPMov,OPAdd和OPJne表示操作码译码输出指令时间节拍操作码译码源寻址译码IBZ有效的时间与条件目寻址译码MOVAX,1000H[BX]M3.T2MOVSxDRMOV1000H[BX],AXM3.T2MOVSRDxADD2000H[BX],1000HM3.T1ADDSimmDxM5.T2ADDSimmDxJNE1200M3.T2JNEFRZ=02.3微操作信号的综合IBZ微操作控制信号的布尔表达式依照上述方式构造的控制器称为组合逻辑控制器〔硬连线控制器〕指令时间节拍操作码译码源寻址译码IBZ有效的时间与条件目寻址译码MOVAX,1000H[BX]M3.T2MOVSxDRMOV1000H[BX],AXM3.T2MOVSRDxADD2000H[BX],1000HM3.T1ADDSimmDxM5.T2ADDSimmDxJNE1200M3.T2JNEFRZ=02.3微操作信号的综合微操作控制信号C的布尔函数2.3微操作信号生成部件的实现控制部件的实现硬连线实现方式组合逻辑电路可编程逻辑阵列PLA可编程阵列逻辑PAL通用阵列逻辑GAL微程序控制器一、CPU的结构与功能二、指令流程与组合逻辑控制器三、微程序原理四、微程序控制器设计3.1微程序原理根本思路指令的执行:按顺序执行一系列的微操作,每一个时钟周期〔节拍〕完成一个或多个微操作。微操作:实际上是控制器送出的控制线,具有1和0两种状态。将指令执行微操作序列中一个节拍内同时完成的微操作用一个二进制代码串来表示,这就是微指令。微指令的执行:通过某种逻辑产生该微指令所表示的微操作控制信号,送控制总线,并维持一个时钟周期。指令的执行=微指令的序列微指令序列=微程序一条机器指令对应一段微程序将所有指令对应的微程序保存在存储器中〔控制存储器〕基于这种思想构造的控制器:微程序控制器3.1微程序原理M1.T3顺序完成功能需要的微操作信号M1.T1指令地址送MARIBPCM1.T2ReadMemoryABMAR,RD,W/B指令送MDRMDRDB调整PC

PC+1MDR(指令)送IRIBMDR需要的控制脉冲CPMARCPMDRCPPCCPIRM1.T4取指周期微指令1微指令2微指令3微指令4包含4条微指令的取指微程序〔公共微程序〕MOV1000H[BX],AX指令执行的微操作流程3微指令完成功能需要的微操作信号1指令地址送MARIBPC2ReadMemoryABMAR,RD,W/B指令送MDRMDRDB调整PC

PC+1MDR(指令)送IRIBMDR需要的控制脉冲CPMARCPMDRCPPCCPIR4取指微程序3.1微程序原理3微指令完成功能需要的微操作信号1PC送MARIBPC2从存储器读取1000HABMAR,RD,W/B1000H送MDRMDRDB调整PC

PC+1MDR(1000H)送DIBMDR需要的控制脉冲CPMARCPMDRCPPCCPD4取数和执行部分微程序(BX)+1000H送ZIBGR,RDGR,W/B,ADDBX地址,CPZ5目的操作数地址送MARIBZCPMAR6AX送MDRIBGR,GRRD,W/BAX地址,CPMDR7写存储器ABMAR,DBMDRWR,W/B63.1微程序原理ROM控制存储器取指公共微程序ADD微程序SUB微程序AND微程序JMP指令微程序控制存储器结构3.1微程序原理3.1微程序原理微指令的构成要素操作控制字段:描述微操作控制信息,以便产生对应的控制信号;顺序控制字段:通过顺序控制字段决定下一条微指令的地址〔在控制存储器中的地址〕。操作控制字段顺序字段3.1微程序原理微程序控制器的原理〔微指令执行过程〕根据指令译码得到该指令的第一条微指令的地址。读取微指令送微指令存放器μIR生成微操作信号送控制总线〔执行该微指令〕顺序逻辑根据顺序控制字段和标志形成下一条微指令的地址并送CMAR,以便读取下一条微指令。3.2微指令格式操作控制字段编码方式直接控制编码:每一个二进制位代表1个微操作控制信号。1表示执行该微操作,0表示不执行该微操作。不需要译码。分段直接编译:将微操作分组,同一组微操作互斥,不会同时执行,任何时候最多只有一个微操作被执行,组间微操作可能同时执行,组内微操作采用编码方式。从编码到微操作信息需要译码。3.2微指令格式顺序控制字段条件字段:该微指令执行完后,是否要根据ALU的标志以及根据什么标志来确定下一条微指令在控制存储器中的地址。次地址字段:顺序执行时,指出下一条微指令的地址,有条件转移时,需要与条件字段配合才能确定真正要执行的下一条微指令。微操作控制信息字段条件字段次地址字段3.3微指令的顺序控制顺序控制技术决定下一条微指令的因素:当前微指令,条件标志,指令操作码顺序执行时:次地址字段直接给定,每条机器指令的微程序的最后一条微指令的次地址字段一定是公共取指微程序的第一条微指令在控制存储器中的地址。公共取指微程序的最后一条微指令的次地址没有什么意义,需要根据操作码的译码结果才能确定下一次要执行的微指令的地址。微指令中有条件转移是的次地址技术:双次地址字段地址逻辑生成次地址3.2微指令格式顺序执行的情况3.3微指令的顺序控制3.3微指令的顺序控制双地址字段3.3微指令的顺序控制生成次地址3.4微指令执行的时序控制微程序控制器的速度与硬接线控制器的速度谁快?3.5微程序设计微程序设计的根本步骤根据机器结构图写出每一条机器指令的微操作流程,划分微指令;根据机器结构图确定微指令控制字段的编码格式根据条件标志确定微指令条件字段的编码格式根据所有指令的微指令数确定控制存储器的容量和微指令次地址字段的位数。划分公共微指令确定每一条微指令在控制存储器中的地址根据微指令格式编写每一条微指令的编码设计地址转移逻辑3.6微程序设计举例3.6微程序设计举例微指令格式〔40位字〕控制字段〔24位〕:表示24个微操作,依次是:GRIB,PCIB,ZIB,FRIB,DIB,CIB,MDRIB,RDGR,WRGR,MARAB,MDRDB,DBMDR,RD,WR,SAL,SAR,ADD,SUB,B-1,W/B,P+1,CLPC,

温馨提示

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

评论

0/150

提交评论