控制单元CU第九章3.什么是指令周期、机器周期和时钟周期?三者有何关系?解:CPU每取出并执行一条指令所需的全部时间叫指令周期;机器周期是在同步控制的机器中,执行指令周期中一步相对完整的操作(指令步)所需时间,通常安排机器周期长度=主存周期;时钟周期是指计算机主时钟的周期时间,它是计算机运行时最基本的时序单位,对应完成一个微操作所需时间,通常时钟周期=计算机主频的倒数。一个指令周期包含若干个机器周期一个机器周期包含若干个时钟周期4.能不能说机器的主频越快,机器的速度就越快,为什么?解:不能说机器的主频越快,机器的速度就越快。因为机器的速度不仅与主频有关,还与数据通路结构、时序分配方案、ALU运算能力、指令功能强弱等多种因素有关,要看综合效果。5.设机器A的主频为8MHz,机器周期含4个时钟周期,且该机的平均指令执行速度是0.4MIPS,试求该机的平均指令周期和机器周期,每个指令周期中含几个机器周期?如果机器B的主频为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个时钟周期,每条指令平均有2.5个机器周期,试问该机的平均指令执行速度为多少MIPS?若机器主频不变,但每个机器周期平均含4个时钟周期,每条指令平均有5个机器周期,则该机的平均指令执行速度又是多少MIPS?由此可得出什么结论?解:先通过主频求出时钟周期,再求出机器周期和平均指令周期,最后通过平均指令周期的倒数求出平均指令执行速度。计算如下:时钟周期=1/8MHz=0.125×10-6=125ns机器周期=125ns×2=250ns平均指令周期=250ns×2.5=625ns平均指令执行速度=1/625ns=1.6MIPS当参数改变后:机器周期=125ns×4=500ns=0.5µs平均指令周期=0.5µs×5=2.5µs平均指令执行速度=1/2.5µs=0.4MIPS结论:两个主频相同的机器,执行速度不一定一样。7.某CPU的主频为8MHz,若已知每个机器周期平均包含4个时钟周期,该机的平均指令执行速度为0.8MIPS,试求该机的平均指令周期及每个指令周期含几个机器周期?若改用时钟周期为0.4µs的CPU芯片,则计算机的平均指令执行速度为多少MIPS?若要得到平均每秒40万次的指令执行速度,则应采用主频为多少的CPU芯片?解:先通过主频求出时钟周期时间,再进一步求出机器周期和平均指令周期。时钟周期=1/8MHz=0.125×10-6=125ns机器周期=125ns×4=500ns=0.5µs平均指令周期=1/0.8MIPS=1.25×10-6=1.25µs每个指令周期所含机器周期个数=1.25µs/0.5µs=2.5个当芯片改变后,相应参数变为:机器周期=0.4µs×4=1.6µs平均指令周期=1.6µs×2.5=4µs平均指令执行速度=1/4µs=0.25MIPS若要得到平均每秒40万次的指令执行速度,则应采用的主频为:平均指令周期=1/0.4MIPS=2.5×10-6=2.5µs机器周期=2.5µs÷2.5=1µs时钟周期=1µs÷4=0.25µs主频=1/0.25µs=4MHz11.设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)解:先画出相应指令的流程图,然后将图中每一步数据通路操作分解成相应的微操作,再写出同名的微命令即可。(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)Z控制单元的设计第十章1.假设响应中断时,要求将程序断点存在堆栈内,并且采用软件办法寻找中断服务程序的入口地址,试写出中断隐指令的微操作及节拍安排。解:设软件查询程序首址为0号内存单元,则中断隐指令的微操作命令及节拍安排如下:T00EINT,SPMART1PCMDR,0-W,SP+1SPT2SPMAR,MDRM(MAR)T3PSWMDR,0-W,SP+1SPT40PC,MDRM(MAR)由于题意中没有给出确切的数据通路结构,故上述节拍分配方案的并行性较低。2.写出完成下列指令的微操作及节拍安排(包括取指操作)。(1)指令ADDR1,X完成将R1寄存器的内容和主存X单元的内容相加,结果存于R1的操作。(2)指令ISZX完成将主存X单元的内容增1,并根据其结果若为0,则跳过下一条指令执行。解:该题题意中没有指定数据通路,因此排序前应先设定一下。在此设采用单总线结构的CPU数据通路,且ALU输入端设两个暂存器C、D(见17题图)。并设采用同步控制,每周期3节拍:(1)指令ADDR1,X的微操作及节拍安排如下:取指周期:T0PCMAR,1RT1PC+1,M(MAR)MDRT2MDRIR,OP(IR)ID执行周期1:T0X(IR)MAR,1RT1R1C,M(MAR)MDRT2MDRD执行周期2:T0T1T2+,ALUR1(2)指令ISZX的微操作及节拍安排(取指周期同(1),略):执行周期1:T0X(IR)MAR,1RT1M(MAR)MDRT2MDRC执行周期2:T0+1,ALUMDRT10-WT2MDRM(MAR)(PC+1)·Z(设Z为结果为0标志)该指令的操作在一个执行周期做不完,因此安排了两个执行周期。3.按序写出下列程序所需的全部微操作命令及节拍安排。指令地址指令200201202203204LDA206ADD207BAN204STA205STP解:由于题意未明确要求采用何种控制器结构,故仍按较简单的组合逻辑时序关系安排节拍(单总线、同步控制,假设同上题):LDA指令:取指周期:T0PCMAR,1RT1PC+1,M(MAR)MDRT2MDRIR,OP(IR)ID执行周期:T0206(IR)MAR,1RT1M(MAR)MDRT2MDRACADD指令:取指周期:同上。执行周期1:T0207(IR)MAR,1RT1M(MAR)MDR,ACCT2MDRD执行周期2:T0T1T2+,ALUACBAN指令:取指周期:同上。执行周期:(设N为结果为负标志)T0T1T2N·204(IR)PCSTA指令:取指周期:同上。执行周期:T0205(IR)MART1ACMDR,0-WT2MDRM(MAR)STP指令:取指周期:同上。执行周期:T0T1T20G(G为停机标志。)4.已知带返转指令的含义如下图所示,写出机器在完成带返转指令时,取指阶段和执行阶段所需的全部微操作及节拍安排。主程序子程序M带返转KM+1JMPIKKK+1间址特征解:假设同上题,仍按组合逻辑、单总线、同步控制安排,带返转指令的全部微操作及节拍如下:取指周期:T0PCMAR,1RT1PC+1,M(MAR)MDRT2MDRIR,OP(IR)ID执行周期:T0K(IR)MART1M+1MDR,0-wT2MDRM(MAR)K+1PC10.能否说水平型微指令就是直接编码的微指令,为什么?解:不能说水平型微指令就是直接编码的微指令,因为符合水平型微指令特征的微指令都属于水平型微指令,常见的有:直接编码、字段直接编码、字段间接编码,及混合编码等。直接编码的微指令只是最典型的一种。13.设控制存储器的容量为512×48位,微程序可在整个控存空间实现转移,而控制微程序转移的条件共有4个(采用直接控制),微指令格式如下:操作控制转移条件下地址操作控制顺序控制试问微指令中的三个字段分别为多少位?解:微指令各字段位数分配如下:3549操作控制转移条件下地址操作控制顺序控制该微指令格式为水平型微指令。17.假设机器的主要部件有:程序计数器PC,指令寄存器IR,通用寄存器R0、R1、R2、R3,暂存器C、D,ALU,移位器,存储器地址寄存器MAR,存储器数据寄存器MDR及存储矩阵M。(1)要求采用单总线结构画出包含上述部件的硬件框图,并注明数据流动方向。(2)画出ADD(R1),(R2)指令在取指阶段和执行阶段的信息流程图。R1寄存器存放源操作数地址,R2寄存器存放目的操作数的地址。(3)写出对应该流程图所需的全部微操作命令。解:(1)采用单总线结构的CPU硬件框图如下:R/-WPCMARMDRR3D移位器IRMALU单总线(BUS)R2R1R0C+–+1图中,数据流动方向如箭头所示。(2)ADD(R1),(R2)(3)对应该流程图所指令流程图如下:需的全部微操作命令。OP=?PCMARMM读PC+1PCMDRIRADDPCo,MARi1R+1(可与前一步并行)MDRo,IRiR1o,MARi1RMDRo,CiR2o,MARi1RMDRo,DiADDR1MARMDRCMM读R2MARMM读MDRDB+,MDRi0-W公操作(C)+(D)MDRMM写B18.假设机器的主要部件同17题,外加一个控制门G。(1)要求采用双总线结构(每组总线的数据流动方向是单向的),画出包含上述部件的硬件框图,并注明数据流动方向。(2)画出SUBR1,R3完成(R1)-(R3)R1操作的指令周期信息流程图(假设指令地址已放在PC中),并列出相应的微操作控制信号序列。解:(1)双总线结构的CPU硬件框图如下:图中,数据流动方向如箭头所示。R/-WPCMARMDRR3D移位器IRMALUA总线R0C+–+1GB总线R1R2(2)SUBR1,R3指令周期流程图如下:OP=?PCMARMM读PC+1PCMDRIRSUBPCo,G,MARi1R+1(可与前一步并行)MDRo,G,IRiR1o,G,CiR2o,G,Di-,G,R1iSUBR1CR2D(C)-(D)R119.下表给出8条微指令I1~I8及所包含的微命令控制信号,设计微指令操作控制字段格式,要求所使用的控制位最少,而且保持微指令本身内在的并行性。微指令所含的微命令I1I2I3I4I5I6I7I8abcdeadfgbhccegiahjcdhabh解:为使设计出的微指令操作控制字段最短,并且保持微指令本身内在的并行性,应采用混合编码法。首先找出互斥的微命令组,为便于分析,将微命令表重画如下(表中的表示该条微指令有这个微命令):微指令所含的微命令abcdefghijI1I2I3I4I5I6I7I8由表中微命令的分布情况可看出:a、b、c、