计算机组成原理第9章习题1第9章控制单元的功能例9.1设CPU内部采用非总线结构,如图9.1所示。(1)写出取指周期的全部微操作。(2)写出取数指令“LDAM”,存数指令“STAM”,加法指令“ADDM”(M均为主存地址)在执行阶段所需的全部微操作。(3)当上述指令均为间接寻址时,写出执行这些指令所需的全部微操作。(4)写出无条件转移指令“JMPY”和结果为零则转指令“BAZY”在执行阶段所需的全部微操作。MDRMARPCC2C1C5IRC3C7C4C0时钟C6C8ALU#控制信号CU#标志…控制信号ACMDRC9C10C12C11图9.1未采用CPU内部总线方式的数据通路和控制信号解:(1)取指周期的全部微操作如下:PC→MAR;现行指令地址→MAR1→R;命令存储器读M(MAR)→MDR;现行指令从存储器中读至MDRMDR→IR;现行指令→IROP(IR)→CU;指令的操作码→CU译码(PC)+1→PC;形成下一条指令的地址(2)①取数指令“LDAM”执行阶段所需的全部微操作如下:Ad(IR)→MAR;指令的地址码字段→MAR1→R;命令存储器读M(MAR)→MDR;操作数从存储器中读至MDRMDR→ACC;操作数→ACC②存数指令“STAM”执行阶段所需的全部微操作如下:Ad(IR)→MAR;指令的地址码字段→MAR计算机组成原理第9章习题21→W;命令存储器写ACC→MDR;欲写入的数据→MDRMDR→M(MAR);数据写至存储器中③加法指令“ADDM”执行阶段所需的全部微操作如下:Ad(IR)→MAR;指令的地址码字段→MAR1→R;命令存储器读M(MAR)→MDR;操作数从存储器中读至MDR(ACC)+(MDR)→ACC;两数相加结果送ACC(3)当上述指令为间接寻址时,需增加间址周期的微操作。这3条指令在间址周期的微操作是相同的,即Ad(IR)→MAR;指令的地址码字段→MAR1→R;命令存储器读M(MAR)→MDR;有效地址从存储器中读至MDR进入执行周期,3条指令的第一个微操作均为MDR→MAR(有效地址送MAR),其余微操作不变。(4)①无条件转移指令“JMPY”执行阶段的微操作如下:Ad(IR)→PC;转移(目标)地址Y→PC②结果为零则转指令“BAZY”执行阶段的微操作如下:Z·Ad(IR)→PC;当Z=1时,转移(目标)地址Y→PC(Z为标记触发器,结果为0时Z=1)例9.2已知单总线计算机结构如图9.2所示,其中M为主存,XR为变址寄存器,EAR为有效地址寄存器,LATCH为暂存器。图中各寄存器的输入和输出均受控制信号控制,如PCi表示PC的输入控制信号,又如MDRo表示MDR的输出控制信号。假设指令地址已存于PC中,画出“ADDX,D”(X为变址寄存器XR,D为形式地址)和“STA*D”(*表示相对寻址,D为相对位移量)两条指令的指令周期信息流程图,并列出相应的控制信号序列。计算机组成原理第9章习题3图9.2单总线计算机结构示意解:(1)“ADDX,D”指令取指周期和执行周期的信息流程及相应的控制信号,如图9.3所示,图中Ad(IR)为形式地址。图9.3“ADDX,D”指令周期的信息流程及相应的控制信号(2)“STA*D”指令取指周期和执行周期的信息流程及相应的控制信号如图9.4所示,图中Ad(IR)为相对位移量的机器代码。ACCMQXIRPCXRMARMDRLATCHM状态Ki+EARR/WALU地址加法器MARo,R/W=R,MDRiADDX,DPC→Bus→MARM(MAR)→MDRMDR→Bus→IRPCo,MARiMARo,R/W=R,MDRiMDRo,IRi取指(PC)+1→PC(XR)+Ad(IR)→EAREAR→Bus→MARM(MAR)→MDRMDR→Bus→XLATCH→Bus→ACC(ACC)+(X)→LATCH指令执行周期XRo,Ad(IR)o,+,EARiEARo,MARiMDRo,XiACCo,Xo,Ki=+,LATCHiLATCHo,ACCi+1计算机组成原理第9章习题4图9.4“STA*D”指令周期的信息流程及相应的控制信号例9.3设某机主频为8MHz,每个机器周期平均含2个时钟周期,每条指令的指令周期平均有2.5个机器周期,试问该机的平均指令执行速度为多少MIPS?若机器主频不变,但每个机器周期平均含4个时钟周期,每条指令的指令周期平均有5个机器周期,则该机的平均指令执行速度又是多少MIPS?由此可得出什么结论?解:根据主频为8MHz,得时钟周期为1/8=0.125μs,机器周期为0.125×2=0.25μs,指令周期为0.25×2.5=0.625μs。(1)平均指令执行速度为1/0.625=1.6MIPS。(2)若机器主频不变,机器周期含4个时钟周期,每条指令平均含5个机器周期,则指令周期为0.125×4×5=2.5μs,故平均指令执行速度为1/2.5=0.4MIPS。(3)可见机器的速度并不完全取决于主频。例9.4设CPU内部采用总线连接方式,如图9.5所示。PC→Bus→MARM(MAR)→MDRMDR→Bus→IRPCo,MARiMARo,R/W=R,MDRiMDRo,IRi取指(PC)+1→PC(PC)+Ad(IR)→EAREAR→Bus→MARMDR→M(MAR)ACC→Bus→MDRPCo,Ad(IR)o,+,EARiEARo,MARiACCo,MDRiMDRo,MARo,R/W=W+1指令执行周期STA*D计算机组成原理第9章习题5CU…控制信号时钟IRiPCiPCPCOMARMARi地址线MDRiMDRMDRO数据线ACiACACOYYiALUiALUZZOIR#控制信号CPU内部总线图9.5CPU内部总线的数据通路和控制信号(1)写出完成“LDAX”,“STAX”,“ADDX”(X均为主存地址)3条指令所需的全部微操作,并指出哪些控制信号有效。(2)当上述3条指令均为间接寻址时,写出完成这些指令所需的全部微操作命令,并指出那些控制信号有效。解:由图9.5可见,一条CPU内部总线Bus上连接了指令寄存器IR,程序计数器PC,存储器地址寄存器MAR,存储器数据寄存器MDR,累加器AC,算术逻辑单元ALU,以及ALU输入端寄存器Y和ALU输出端寄存器Z。总线是上述这些器件的共享资源,每次只能传递一个数据,分别受控制信号控制(下标i表示输入控制,下标o表示输出控制)。(1)上述三条指令的取指操作均相同,即PC→Bus→MAR;PCo和MARi有效,现行指令地址→MAR1→R;CU发读命令数据线→MDR;现行指令从存储器→数据线→MDRMDR→Bus→IR;MDRo和IRi有效,现行指令→IR(PC)+1→PC;形成下条指令的地址取指周期结束时,指令在MDR和IR中。由于图9.5中没有IRo控制信号,故进入执行周期后,操作数的地址均由Ad(MDR)提供。3条指令执行周期的微操作分别如下。①“LDAX”指令Ad(MDR)→Bus→MAR;MDRo和MARi有效,指令的地址码字段→MAR计算机组成原理第9章习题61→R;CU发读命令数据线→MDR;操作数从存储器→数据线→MDRMDR→Bus→AC;MDRo和ACi有效,操作数→AC②“STAX”指令Ad(MDR)→Bus→MAR;MDRo和MARi有效,指令的地址码字段→MAR1→W;CU发写命令AC→Bus→MDR;ACo和MDRi有效,欲写入的数据→MDRMDR→数据线;数据经数据线写入存储器③“ADDX”指令Ad(MDR)→Bus→MAR;MDRo和MARi有效,指令的地址码字段→MAR1→R;CU发读命令数据线→MDR;操作数从存储器→数据线→MDRMDR→Bus→Y;MDRo和Yi有效,操作数→Y(AC)+(Y)→Z;ACo有效,CU向ALU发加命令,结果→ZZ→AC;Zo和ACi有效,结果→AC(2)对于间接寻址的取数、存数和加法指令,其取指周期的操作是不变的,进入间址周期3条指令的间址操作均相同,具体的微操作是:Ad(MDR)→Bus→MAR;MDRo和MARi有效,形式地址→MAR1→R;CU发读命令数据线→MDR;有效地址从存储器→数据线→MDR间址周期结束时有效地址在MDR中,进入执行周期后,3条指令的第一个微操作均为MDR→Bus→MAR;MDRo和MARi有效,有效地址→MAR其余的微操作不变。例9.5设CPU内部寄存器的连接与图9.5基本相同,且IR的输出与BUS连,还需增加两个通用寄存器R1和R2,其输入和输出都与总线连接。如果加法指令中的第二个地址码有寄存器寻址、寄存器间接寻址和存储器间接寻址这三种寻址方式,即(1)ADDR1,R2;(R1)+(R2)→R1(2)ADDR1,@R2;(R1)+((R2))→R1(3)ADDR1,@mem;(R1)+((mem))→R1写出这三种寻址方式完成加法指令所需的全部微操作。解:(1)ADDR1,R2寄存器寻址PC→Bus→MAR计算机组成原理第9章习题71→RM(MAR)→数据线→MDR→Bus→IR(PC)+1→PCR2→Y(R1)+(Y)→ZZ→Bus→R1(2)ADDR1,@R2寄存器间址PC→Bus→MAR1→RM(MAR)→数据线→MDR→Bus→IR(PC)+1→PCR2→MAR1→RM(MAR)→数据线→MDRMDR→Bus→Y(R1)+(Y)→ZZ→Bus→R1(3)ADDR1,@mem存储器间接寻址PC→Bus→MAR1→RM(MAR)→数据线→MDR→Bus→IR(PC)+1→PCIR(mem)→Bus→MAR1→RM(MAR)→数据线→MDRMDR→Bus→MAR1→RM(MAR)→数据线→MDRMDR→Bus→Y(R1)+(Y)→ZZ→Bus→R1例9.6什么是指令周期、机器周期和时钟周期?三者有何关系?计算机组成原理第9章习题8解:指令周期是CPU取出并执行一条指令所需的全部时间,即完成一条指令的时间。机器周期是所有指令执行过程中的一个基准时间,通常以存取周期作为机器周期。时钟周期是机器主频的倒数,也可称为节拍,它是控制计算机操作的最小单位时间。一个指令周期包含若干个机器周期,一个机器周期又包含若干个时钟周期,每个指令周期内的机器周期数可以不等,每个机器周期内的时钟周期数也可以不等。例9.7能不能说机器的主频越快,机器的速度就越快,为什么?解:不能说机器的主频越快,机器的速度就越快。因为机器的速度不仅与主频有关,还与机器周期中所含的时钟周期数以及指令周期中所含的机器周期数有关。同样主频的机器,由于机器周期所含时钟周期数不同,机器的速度也不同。机器周期中所含时钟周期数少的机器,速度更快。此外,机器的速度还和其他很多因素有关,如主存的速度、机器是否配有Cache、总线的数据传输率、硬盘的速度、以及机器是否采用流水技术等等。机器速度还可以用MIPS(每秒执行百万条指令数)和CPI(执行一条指令所需的时钟周期数)来衡量。例9.8某计算机CPU的主频为4MHz,各类指令的平均执行时间和使用频度如表9.1所示。试计算该机的速度(单位用MIPS表示)。若上述CPU芯片升级为6MHz,则该机的速度又为多少?表9.1例9.8表格指令类别存取加、减、比较、转移乘除其他平均指令执行时间使用频度0.6μs35%0.8μs50%10μs5%1.4μs10%解:根据表9.1平均指令执行时间及使用频度,得(1)该机的速度为MIPS8.025.11104.1510508.0356.01==×××+×%%+%+%(2)芯片主频改为6MHz,该机的速度为(0.8MIPS×6MHz)/4MHz=1.2MIPS例9.9某CPU的主频为8MHz,若已知每个机器周期平均包含4个时钟周期,该机的平均指令执行速度为0.8MIPS,试求该机的平均指令周期及每个指令周期含几个机器周期?若改用时钟周期为0.4μs的CPU芯片,则计算机的平均指令执行速度为多少MIPS?若要得到平均每秒40万次的指令执行速度,则应采用主频为多少的CPU芯片?解:由主