第十章控制单元的设计10.1组合逻辑设计10.2微程序设计10.1组合逻辑设计一、组合逻辑控制单元框图1.CU外特性IR节拍发生器CUT0T1Tn…CLK(机器主频)…标志012n-1…C0C1Cn操作码译码n位操作码2.节拍信号CLKT0T1T2T3时钟周期机器周期机器周期T0T1T2T3T0T1T2T310.1二.微操作的节拍安排采用同步控制方式CPU内部结构采用非总线方式一个机器周期内有3个节拍(时钟周期)MDRPCMARIRACCU时钟ALU………C1C2C5C9C0C10C3C7C4C6C12C11C8控制信号标志控制信号10.11.安排微操作时序的原则原则一微操作的先后顺序不得随意更改原则二被控对象不同的微操作尽量安排在一个节拍内完成原则三占用时间较短的微操作尽量安排在一个节拍内完成并允许有先后顺序10.12.取指周期微操作的节拍安排PCMARM(MAR)MDRMDRIR(PC)+1PC原则二原则二原则三3.间址周期微操作的节拍安排M(MAR)MDRMDRAd(IR)T0T1T2T0T1T21ROP(IR)IDAd(IR)MAR1R10.14.执行周期微操作的节拍安排①CLA②COM③SHRT0T1T2T0T1T2T0T1T2AC0AC0L(AC)R(AC)0ACACAC10.1④CSL⑤STP⑥ADDX⑦STAXR(AC)L(AC)AC0ACnT0T1T20GT0T1T2T0T1T2T0T1T2Ad(IR)MARM(MAR)MDR(AC)+(MDR)ACAd(IR)MARACMDRMDRM(MAR)1R1W10.1⑧LDAX⑨JMPX⑩BANXT0T1T2Ad(IR)MARM(MAR)MDRMDRACT0T1T2T0T1T2Ad(IR)PC1RA0•Ad(IR)+A0•PCPC10.15.中断周期微操作的节拍安排T0T1T20MARPCMDRMDRM(MAR)硬件关中断向量地址PC中断隐指令完成1W10.1三、组合逻辑设计步骤1.列出操作时间表T2T1T0FE取指JMPLDASATADDCOMCLA微操作命令信号状态条件节拍工作周期标记PCMAR1RM(MAR)MDR(PC)+1PCMDRIROP(IR)ID1IND1EXII10.1间址特征三、组合逻辑设计步骤1.列出操作时间表T2T1T0IND间址JMPLDASATADDCOMCLA微操作命令信号状态条件节拍工作周期标记Ad(IR)MAR1RM(MAR)MDRMDRAd(IR)1EXIND10.1间址周期标志T2T1T0EX执行JMPLDASATADDCOMCLA微操作命令信号状态条件节拍工作周期标记Ad(IR)MAR1RM(MAR)MDRACMDR(AC)+(MDR)ACMDRM(MAR)MDRAC0AC三、组合逻辑设计步骤1.列出操作时间表1W10.1三、组合逻辑设计步骤1.列出操作时间表T2T1T0FE取指JMPLDASATADDCOMCLA微操作命令信号状态条件节拍工作周期标记PCMAR1RM(MAR)MDR(PC)+1PCMDRIROP(IR)ID1IND1EXII111111111111111111111111111111111111111111111110.1三、组合逻辑设计步骤1.列出操作时间表T2T1T0IND间址JMPLDASATADDCOMCLA微操作命令信号状态条件节拍工作周期标记Ad(IR)MAR1RM(MAR)MDRMDRAd(IR)1EXIND1111111111111111111110.1三、组合逻辑设计步骤1.列出操作时间表T2T1T0EX执行JMPLDASATADDCOMCLA微操作命令信号状态条件节拍工作周期标记Ad(IR)MAR1RM(MAR)MDRACMDR(AC)+(MDR)ACMDRM(MAR)MDRAC0AC1W111111111111110.12.写出微操作命令的最简表达式=FE·T1+IND·T1(ADD+STA+LDA+JMP+BAN)+EX·T1(ADD+LDA)M(MAR)MDR=T1{FE+IND(ADD+STA+LDA+JMP+BAN)+EX(ADD+LDA)}10.13.画出逻辑图特点思路清晰简单明了庞杂调试困难修改困难速度快&&&11&&&&&≥FEINDEXLDAADDJMPBANSTAT1M(MAR)MDR(RISC)&&10.110.2微程序设计一、微程序设计思想的产生1951英国剑桥大学教授Wilkes完成一条机器指令微操作命令1微操作命令2微操作命令n……微指令110100000微指令n微程序00010010存储逻辑一条机器指令对应一个微程序……存入ROM二、微程序控制单元框图及工作原理1.机器指令对应的微程序M+1MM+2P+1KK+2PP+2K+1…取指周期微程序对应LDA操作的微程序对应STA操作的微程序间址周期微程序中断周期微程序10.22.微程序控制单元的基本框图微地址形成部件顺序逻辑CMAR地址译码控制存储器标志CLK下地址CMDR至CPU内部和系统总线的控制信号OPIR操作控制顺序控制微指令基本格式10.2二、微程序控制单元框图及工作原理M+1MM+2P+1KK+2PP+2K+1…取指周期微程序对应LDA操作的微程序对应STA操作的微程序间址周期微程序中断周期微程序M+1M+2P+1P+2K+1K+2MM转执行周期微程序…转取指周期微程序…10.23.工作原理控存M+1MM+2P+1QQ+2PP+2Q+1…取指周期微程序对应LDA操作的微程序对应ADD操作的微程序Q+1Q+2MM+1M+2P+1P+2M………对应STA操作的微程序K+1K+2MKK+2K+1LDAXADDYSTAZ主存STP用户程序10.23.工作原理(1)取指阶段MCMARCM(CMAR)CMDR由CMDR发命令形成下条微指令地址Ad(CMDR)CMARCM(CMAR)CMDR由CMDR发命令Ad(CMDR)CMARCM(CMAR)CMDR由CMDR发命令M+1M+2PCMAR1RM(MAR)MDR(PC)+1PCMDRIR0010000M+2…100001M+1M…010010M+2M+1…形成下条微指令地址执行取指微程序10.2(2)执行阶段CM(CMAR)CMDR由CMDR发命令Ad(CMDR)CMARCM(CMAR)CMDR由CMDR发命令Ad(CMDR)CMARCM(CMAR)CMDR由CMDR发命令OP(IR)微地址形成部件CMAR(PCMAR)Ad(CMDR)CMARAd(IR)MAR1RM(MAR)MDRMDRAC00000010P+2…M执行LDA微程序形成下条微指令地址P+1形成下条微指令地址P+2形成下条微指令地址M(MCMAR)01000P+2P+1…0001001P+1P…10.2(3)取指阶段CM(CMAR)CMDR由CMDR发命令MCMARPCMAR1R100001M+1M全部微指令存在CM中,程序执行过程中只需读出关键微指令的操作控制字段如何形成微操作命令微指令的后继地址如何形成执行取指微程序……10.2三、微指令的编码方式(控制方式)1.直接编码(直接控制)方式在微指令的操作控制字段中每一位代表一个微操作命令速度最快下地址……控制信号操作控制某位为“1”表示该控制信号有效10.22.字段直接编码方式将微指令的控制字段分成若干“段”每段经译码后发出控制信号每个字段中的命令是互斥的译码…译码…译码…下地址操作控制控制信号缩短了微指令字长,增加了译码时间微程序执行速度较慢10.23.字段间接编码方式4.混合编码直接编码和字段编码(直接和间接)混合使用5.其他…字段1…字段2译码译码译码…操作控制控制信号…字段n下地址……控制信号10.2四、微指令序列地址的形成1.微指令的下地址字段指出2.根据机器指令的操作码形成3.增量计数器4.分支转移(CMAR)+1CMAR转移地址操作控制字段转移方式转移方式指明判别条件转移地址指明转移成功后的去向10.25.通过测试网络6.由硬件产生微程序入口地址第一条微指令地址由专门硬件产生中断周期由硬件产生中断周期微程序首地址非测试地址h测试地址l测试网络……测试源微指令地址CMDR操作控制顺序控制HL10.27.后继微指令地址形成方式原理图多路选择地址选择+1CMAR地址译码下地址转移方式CMDR控制存储器…控制信号分支逻辑…标志微程序入口10.2OPIR微地址形成部件五、微指令格式1.水平型微指令如直接编码、字段直接编码、字段间接编码、直接和字段混合编码2.垂直型微指令类似机器指令操作码的方式一次能定义并执行多个并行操作由微操作码字段规定微指令的功能10.23.两种微指令格式的比较(1)水平型微指令比垂直型微指令并行操作能力强灵活性强(2)水平型微指令执行一条机器指令所要的微指令数目少,速度快(3)水平型微指令用较短的微程序结构换取较长的微指令结构(4)水平型微指令与机器指令差别大10.2六、静态微程序设计和动态微程序设计静态微程序无需改变,采用ROM动态通过改变微指令和微程序改变机器指令有利于仿真,采用EPROM七、毫微程序设计1.毫微程序设计的基本概念微程序设计用微程序解释机器指令毫微程序设计用毫微程序解释微程序毫微指令与微指令的关系好比微指令与机器指令的关系10.22、毫微程序控制存储器的基本组成控制存储器(微程序)CMAR1MOPOP转移地址垂直型微指令IR+1CMDR1CMAR2控制存储器(毫微程序)水平型微指令…控制信号CMDR210.2八、串行微程序控制和并行微程序控制取第i+1条微指令执行第i条微指令取第i条微指令执行第i+1条微指令执行第i条微指令取第i条微指令取第i+1条微指令执行第i+1条微指令取第i+2条微指令执行第i+2条微指令串行微程序控制并行微程序控制10.21.写出对应机器指令的微操作及节拍安排假设CPU结构与组合逻辑相同(1)取指阶段微操作分析T0T1T2PCMARM(MAR)MDR(PC)+1PCMDRIROP(IR)微地址形成部件九、微程序设计举例1R若一个T内安排一条微指令则取指操作需3条微指令3条微指令Ad(CMDR)CMAROP(IR)微地址形成部件CMAR还需考虑如何读出这3条微指令?10.2(2)取指阶段的微操作及节拍安排考虑到需要形成后继微指令的地址T0T1T2T3T4T51R(PC)+1PCOP(IR)微地址形成部件MARPCCMARAd(CMDR)MDRM(MAR)CMARAd(CMDR)IRMDRCMAROP(IR)10.2(3)执行阶段的微操作及节拍安排考虑到需形成后继微指令的地址取指微程序的入口地址M由微指令下地址字段指出•非访存指令①CLA指令T0T1②COM指令T0T1Ad(CMDR)CMARACACCMARAd(CMDR)AC010.2④CSL指令T0T1⑤STP指令T1Ad(CMDR)CMARAC0ACnT0CMARAd(CMDR)G0L(AC)R(AC)③SHR指令T0T1AC0AC0R(AC)L(AC)CMARAd(CMDR)10.2•访存指令⑥ADD指令T0T1T2T3T4T5Ad(IR)MARAd(CMDR)CMARM(MAR)MDRAd(CMDR)CMAR(AC)+(MDR)ACAd(CMDR)CMAR1R⑦STA指令T0T1T2T3T4T5Ad(IR)MARAd(CMDR)CMARACMDRAd(CMDR)CMARMDRM(MAR)Ad(CMDR)CMAR1W10.2⑧LDA指令T0T1T2T3T4T5Ad(IR)MARAd(CMDR)CMARM(MAR)MDRAd(CMDR)CMARMDRACAd(CMDR)CMAR1R10.2全部微操作20个微指令38条•转移类指令⑨JMP指令T0T1Ad(IR)PCAd(CMDR)CMAR⑩BAN指令T0T1Ad(CMDR)CMARA0•Ad(IR)+A0•(PC)PC10.22.确定微指令格式(1)微指令的编码方式(2)后继微指令的地址形成方式采用直接控制由机器指令的操作码通过微地址形成部件形成由