控制单元CU第九章3.什么是指令周期、机器周期和时钟周期?三者有何关系?解:CPU每取出并执行一条指令所需的全部时间叫指令周期;机器周期是在同步控制的机器中,执行指令周期中一步相对完整的操作(指令步)所需时间,通常安排机器周期长度=主存周期;时钟周期是指计算机主时钟的周期时间,它是计算机运行时最基本的时序单位,对应完成一个微操作所需时间,通常时钟周期=计算机主频的倒数。144.能不能说CPU的主频越快,计算机的运行速度就越快?为什么?解:不能说机器的主频越快,机器的速度就越快。因为机器的速度不仅与主频有关,还与数据通路结构、时序分配方案、ALU运算能力、指令功能强弱等多种因素有关,要看综合效果。5.设机器A的CPU主频为8MHz,机器周期含4个时钟周期,且该机的平均指令执行速度是0.4MIPS,试求该机的平均指令周期和机器周期,每个指令周期中含几个机器周期?如果机器B的CPU主频为12MHz,且机器周期也含4个时钟周期,试问B机的平均指令执行速度为多少MIPS?解:先通过A机的平均指令执行速度求出其平均指令周期,再通过主频求出时钟周期,然后进一步求出机器周期。B机参数的算法与A机类似。计算如下:A机平均指令周期=1/0.4MIPS=2.5µsA机时钟周期=1/8MHz=125nsA机机器周期=125ns×4=500ns=0.5µsA机每个指令周期中含机器周期个数=2.5µs÷0.5µs=5个B机时钟周期=1/12MHz83nsB机机器周期=83ns×4=332ns设B机每个指令周期也含5个机器周期,则:B机平均指令周期=332ns×5=1.66µsB机平均指令执行速度=1/1.66µs=0.6MIPS结论:主频的提高有利于机器执行速度的提高。6.设某计算机的CPU主频为8MHz,每个机器周期平均含2个时钟周期,每条指令平均有4个机器周期,试问该计算机的平均指令执行速度为多少MIPS?若CPU主频不变,但每个机器周期平均含4个时钟周期,每条指令平均有4个机器周期,则该机的平均指令执行速度又是多少MIPS?由此可得出什么结论?解:先通过主频求出时钟周期,再求出机器周期和平均指令周期,最后通过平均指令周期的倒数求出平均指令执行速度。计算如下:时钟周期=1/8MHz=0.125×10-6=125ns机器周期=125ns×2=250ns平均指令周期=250ns×4=1000ns=1µs平均指令执行速度=1/1µs=1MIPS当参数改变后:机器周期=125ns×4=500ns=0.5µs平均指令周期=0.5µs×4=2µs平均指令执行速度=1/2µs=0.5MIPS结论:两个主频相同的机器,执行速度不一定一样。7.某CPU的主频为10MHz,若已知每个机器周期平均包含4个时钟周期,该机的平均指令执行速度为1MIPS,试求该机的平均指令周期及每个指令周期含几个机器周期?若改用时钟周期为0.4µs的CPU芯片,则计算机的平均指令执行速度为多少MIPS?若要得到平均每秒80万次的指令执行速度,则应采用主频为多少的CPU芯片?解:先通过主频求出时钟周期时间,再进一步求出机器周期和平均指令周期。时钟周期=1/10MHz=0.1×10-6=100ns机器周期=100ns×4=400ns=0.4µs平均指令周期=1/1MIPS=1×10-6=1µs每个指令周期所含机器周期个数=1µs/0.4µs=2.5个当芯片改变后,相应参数变为:机器周期=0.4µs×4=1.6µs平均指令周期=1.6µs×2.5=4µs平均指令执行速度=1/4µs=0.25MIPS若要得到平均每秒80万次的指令执行速度,则应采用的主频为:平均指令周期=1/0.8MIPS=1.25×10-6=1.25µs机器周期=1.25µs÷2.5=0.5µs时钟周期=0.5µs÷4=0.125µs主频=1/0.125µs=8MHz应采用主频为8MHz的CPU芯片。8.某计算机的主频为6MHz,各类指令的平均执行时间和使用频度如下表所示,试计算该机的速度(单位用MIPS表示),若上述CPU芯片升级为10MHz,则该机的运行速度又为多少?指令类别存取加、减、比较、转移乘除其他平均指令执行时间0.6s0.8s10s1.4s使用频度35%45%5%15%解:指令平均运行时间=(0.6×0.35+0.8×0.45+10×0.05+1.4×0.15)µs=0.21+0.36+0.5+0.21=1.28µs机器平均运行速度=1/1.28µs=0.78125MIPSCPU芯片升级后,机器平均运行速度计算:方法一:0.78125MIPS×(10MHz/6MHz)≈1.3MIPS方法二:时钟周期=1/6MHz≈0.16667µs指令平均运行周期数=1.28µs/0.16667µs≈7.68CPI升级后时钟周期=1/10MHz≈0.1µs指令平均运行时间≈0.1µs×7.68≈0.768µs机器平均运行速度≈1/0.768µs≈1.3MIPS11.设CPU内部结构如图9.4所示,此外还设有B、C、D、E、H、L六个寄存器,它们各自的输入和输出端都与内部总线相通,并分别受控制信号控制(如Bi为寄存器B的输入控制;Bo为寄存器B的输出控制)。要求从取指令开始,写出完成下列指令所需的全部微操作和控制信号。(1)ADDB,C;((B)+(C)B)(2)SUBA,H;((AC)-(H)AC)解:先画出相应指令的流程图,然后将图中每一步数据通路操作分解成相应的微操作,再写出同名的微命令即可。控制信号举例:图9.4在此基础上再加B、C、D、E、H、L六个寄存器,连法和控制信号定义方式与图中其它寄存器一样。CUIRIRi时钟源PCMARMDRPCiPCoMARiMDRiMDRoACACiACoYYiALUALUiZZo…控制信号…控制信号地址线数据线存储器RW+1CPU内部总线(1)ADDB,C指令流程及微命令序列如下:OP=?PCMARMM读PC+1PCMDRIRADDPCo,MARi1R+1(图中未标出,可与前一步并行)MDRo,IRiBo,YiCo,ALUi,+Zo,BiADDBYZB(Y)+(C)Z(2)SUBA,H指令流程及微命令序列如下:OP=?PCMARMM读PC+1PCMDRIRSUBPCo,MARi1R+1(图中未标出,可与前一步并行)MDRo,IRiHo,YiACo,ALUi,–Zo,ACiSUBHYZAC(AC)–(H)Z12.CPU结构同上题,写出完成下列指令所需的全部微操作和控制信号(包括取指令)。(1)寄存器间接寻址的无条件转移指令“JMP@B”。(2)间接寻址的存数指令“STA@X”。解:解题方法步骤同上题。(1)“JMP@B”指令的流程图和全部微操作控制信号如下:“JMP@B”指令流程图及微命令序列:PCo,MARi1R+1(图中未标出,可与前一步并行)MDRo,IRiBo,PCi注:指令中B为寄存器名。OP=?PCMARMM读PC+1PCMDRIRJMPBPC(2)“STA@X”指令流程图及微命令序列如下:PCo,MARi1R+1(图中未标出,可与前一步并行)MDRo,IRiI=1?PCMARMM读PC+1PCMDRIRY转间址操作MDRo,MARi1RMDRo,MARiACo,MDRi1W注:指令中X为形式地址间址操作X(MDR)MARMDRMARMM读OP=?STAACMDRMM写13.设CPU内部结构如图9.4所示,此外还设有R1~R4四个寄存器,它们各自的输入和输出端都与内部总线相通,并分别受控制信号控制(如R2i为寄存器R2的输入控制;R2o为寄存器R2的输出控制)。要求从取指令开始,写出完成下列指令所需的全部微操作和控制信号。(1)ADDR2,@R4;((R2)+((R4))R2,寄存器间接寻址)(2)SUBR1,@mem;((R1)-((mem))R1,存储器间接寻址)解:解题方法步骤同第11题。(1)“ADDR2,@R4”指令的流程图和全部微操作控制信号如下:“ADDR2,@R4”指令的流程图和全部微操作命令:OP=?PCMARMM读PC+1PCMDRIRADDPCo,MARi1R+1(图中未标出,可与前一步并行)MDRo,IRiR2o,YiR4o,MARi1RMDRo,ALUi,+Zo,R2iADDR2YZR2(Y)+(MDR)ZR4MARMM读(2)SUBR1,@mem指令流程图和全部微命令如下:I=1?PCMARMM读PC+1PCMDRIR转间址操作PCo,MARi1R+1(图中未标出,可与前一步并行)MDRo,IRiMDRo,MARi1RR1o,YiMDRo,ALUi,–Zo,R1iSUBR1YZR1(Y)–(MDR)Z间址操作mem(MDR)MARMM读OP=?14.设单总线计算机结构如图9.5所示,其中M为主存,XR为变址寄存器,EAR为有效地址寄存器,LATCH为锁存器。假设指令地址已存于PC中,画出“LDA*D”和“SUBD(XR)”指令周期信息流程图,并列出相应的控制信号序列。说明:(1)“LDA*D”指令字中*表示相对寻址,D为相对位移量。(2)“SUBD(XR)”指令字中D为形式地址。(3)寄存器的输入和输出均受控制信号控制,例如,PCi表示PC的输入控制信号,MDRo表示MDR的输出控制信号。(4)凡是需要经过总线实现寄存器之间的传送,需在流程图中注明,如PC→Bus→MAR,相应的控制信号为PCo和MARi。(1)“LDA*D”指令周期流程图及控制信号序列:PCo,MARiR/-W=R(MAR、MDR与M直连,故不需控制)MDRo,IRi+1(图中未标出,可与前一步并行)OP=?PCBusMARM(MAR)MDRPC+1PCMDRBusIRLDAPCo,IRo,+,EARiEARo,MARiR/-W=RMDRo,ACCiLDAPC+D(IR)EARMDRBusACCEARBusMARM(MAR)MDR(2)“SUBD(XR)”指令周期流程图及控制信号序列:PCo,MARiR/-W=R(MAR、MDR与M直连,故不需控制)MDRo,IRi+1(图中未标出,可与前一步并行)OP=?PCBusMARM(MAR)MDRPC+1PCMDRBusIRSUBXRo,IRo,+,EARiEARo,MARiR/-W=RMDRo,ACCo,Ki=﹣LATCHiLATCHo,ACCi注:设MDR通过总线可直达ALU右输入端。SUBXR+D(IR)EARLATCHBusACCEARBusMARM(MAR)MDRACC﹣MDRLATCH