PC→BUS→MAR取指周期PCo,MARiMARo,MDRiMDRo,IRi+1ACo,YiHo,ALUiACo, - ,ZiZo,ACiM(MAR)→MDRMDR→BUS→IRPC+1→PCAC→BUS→YH→BUS→ALUAC-BUS→ZZ→BUS→AC执行周期
13. 设CPU内部结构如图9.4所示,此外还设有R1~R4四个寄存器,它们各自的输入和输出端都与内部总线相通,并分别受控制信号控制(如R2i为寄存器R2的输入控制;R2o为R2的输出控制)。要求从取指令开始,写出完成下列指令所需的全部微操作和控制信号。
(1)ADD R2,@R4 ; ((R2)+((R4)) ?R2,寄存器间接寻址) (2)SUB R1,@mem ; ((R1)-((mem)) ?R1,存储器间接寻址) 解:(1)ADD R2,@R4的指令周期信息流程图及微操作控制信号如下:
PC→BUS→MAR取指周期PCo,MARiMARo,1→R,MDRiMDRo,IRi+1R4o,IRiIRo,MARiMARo,1→R,MDRiMDRo,YiR2o,ALUiYo, + ,ZiZo,R2iM(MAR)→MDRMDR→BUS→IRPC+1→PC间址周期R4→BUS→Ad(IR)Ad(IR)→MARM(MAR)→MDR执行周期MDR→BUS→YR2→BUS→ALUBUS+Y→ZZ→BUS→R2
(2)SUB R1,@mem指令周期信息流程图及微操作控制信号如下:
PC→BUS→MAR取指周期PCo,MARiMARo,1→R,MDRiMDRo,IRi+1IRo,MARiMARo,1→R,MDRiMDRo,IRiIRo,MARiMARo,1→R,MDRiMDRo,YiR1o,ALUiYo, - ,ZiZo,R1iM(MAR)→MDRMDR→BUS→IRPC+1→PC间址周期Ad(IR)→BUS→MARM(MAR)→MDRMDR→Ad(IR)Ad(IR)→MARM(MAR)→MDR执行周期MDR→BUS→YR1→BUS→ALUBUS-Y→ZZ→BUS→R1
14. 设单总线计算机结构如图9.5所示,其中M为主存,XR为变址寄存器,EAR为有效地址寄存器,LATCH为锁存器。假设指令地址已存于PC中,画出“LDA *D”和“SUB X,D”指令周期信息流程图,并列出相应的控制信号序列。
说明: (1)“LDA *D”指令字中*表示相对寻址,D为相对位移量。 (2)“SUB X,D”指令字中X为变址寄存器XR,D为形式地址。
(3)寄存器的输入和输出均受控制信号控制,例如,PCi表示PC的输入控制信号,MDRo表示MDR的输出控制信号。
(4)凡是需要经过总线实现寄存器之间的传送,需要在流程图中注明,如PC?Bus?MAR,相应控制信号为PCo和MARi。 解:(1)“LDA *D”指令周期信息流程图及微操作控制信号如下:
PC→BUS→MAR取指周期PCo,MARiMARo,1→R,MDRiMDRo,IRi+1PCo,Ad(IR)o,EARiEARo,MARiMARo,1→R,MDRiMDRo,ACCiM(MAR)→MDRMDR→BUS→IRPC+1→PCPC+Ad(IR)→EAR执行周期EAR→BUS→MARM(MAR)→MDRMDR→BUS→ACC
(2)“SUB X,D” 指令周期信息流程图及微操作控制信号如下:
PC→BUS→MAR取指周期PCo,MARiMARo,1→R,MDRiMDRo,IRi+1PCo,Ad(IR)o,EARiEARo,MARiMARo,1→R,MDRiMDRo,ACCiACCo,Xo,Ki=-,LATCHiLATCHo,ACCiM(MAR)→MDRMDR→BUS→IRPC+1→PCPC+Ad(IR)→EAREAR→BUS→MAR执行周期M(MAR)→MDRMDR→BUS→XACC-X→LATCHLATCH→BUS→ACC
第10章 控制单元的设计
1. 假设响应中断时,要求将程序断点存在堆栈内,并且采用软件办法寻找中断服务程序的入口地址,试写出中断隐指令的微操作及节拍安排。 解:设软件查询程序首址为0号内存单元,则中断隐指令的微操作命令及节拍安
排如下: T0 0 SP T1 ,SP? MAR
T2 SP?W,SP+1 M(MAR) T3 PSW?MAR,MDR?SP T4 1? W,SP+1?MDR, ?M(MAR) PC?EINT 由于题意中没有给出确切的数据通路结构,故上述节拍分配方案的并行性较低。?PC,MDR?0 ?MDR,1?MAR
2. 写出完成下列指令的微操作及节拍安排(包括取指操作)。
(1)指令ADD R1,X完成将R1寄存器的内容和主存X单元的内容相加,结果存于R1的操作。
(2)指令ISZ X完成将主存X单元的内容增1,并根据其结果若为0,则跳过下一条指令执行。 解:设采用单总线结构的CPU数据通路如下图所示,且ALU输入端设两个暂存器C、D(见17题图)。并设采用同步控制,每周期3节拍:
busPCMARSPMDRCUIRAC地址线数据线控制线
(1)指令ADD R1,X的微操作及节拍安排如下: 取指周期:T0 PC?MAR,1? R
T1 M(MAR) ?MDR,PC+1?PC T2 MDR?IR,OP(IR) ?ID
执行周期1:T0 Ad(IR)?MAR,1?R T1 M(MAR) ?MDR
T2 MDR?D
执行周期2:T0 R1?C
T1 +
T2 ALU?R1
(2)指令ISZ X的微操作及节拍安排: 取指周期同(1):略
执行周期1: T0 Ad(IR)?MAR,1?R T1 M(MAR)?MDR
T2 MDR?C,+1?ALU
执行周期2:T0 ALU?MDR,1?W
T1 (PC+1)·Z+ PC·Z?PC
12. 能否说水平型微指令就是直接编码的微指令,为什么? 解:不能说水平型微指令就是直接编码的微指令,因为符合水平型微指令特征的微指令都属于水平型微指令,常见的有:直接编码、字段直接编码、字段间接编码,及混合编码等。直接编码的微指令只是最典型的一种。
15. 设控制存储器的容量为512×48位,微程序可在整个控存空间实现转移,而控制微程序转移的条件共有4个(采用直接控制),微指令格式如下: 解:因为控制存储器共有512*48=29*48
所以,下址字段应有9位,微指令字长48位 又因为控制微程序转移的条件有4个,4+1<=23 所以判断测试字段占3位
因此控制字段位数为:48-9-3=36 微指令格式为: 48 13 12 10 9 1 控制字段 测试字段 下址字段
21. 下表给出8条微指令I1~I8及所包含的微命令控制信号,设计微指令操作控制字段格式,要求所使用的控制位最少,而且保持微指令本身内在的并行性。 解:为使设计出的微指令操作控制字段最短,并且保持微指令本身内在的并行性,应采用混合编码法。首先找出互斥的微命令组,为便于分析,将微命令表重画如下:
由表中微命令的分布情况可看出:a、b、c、d、e微命令的并行性太高,因此不能放在同一字段中。另外,由分析可知,在2、3、4分组的互斥组中,3个一组的微命令互斥组对控制位的压缩作用最明显。因此,应尽可能多的找出3个一组的互斥组。现找出的互斥组有:cfj,dij,efh,fhi,bgj,ehj,efj……等等。
从中找出互不相重的互斥组有两个:dij,efh。则:微指令操作控制字段格式安排如下:
1 1 1 1 2 2
A b c g efh dij 各字段编码分配如下:a:0 无操作,1 a微命令; b:0 无操作,1 b微命令; c: 0 无操作, 1 c微命令; g :0 无操作, 1 g微命令; dij :00 无操作;01 d微命令;10 i微命令;11 j微命令; efh:00 无操作;01 e微命令;10 f微命令;11 h微命令
与采用直接控制法比较:直接控制法:10个微命令需10位操作控制位;本方案中10个微命令需8位操作控制位,压缩了2位。