数据通路的习题研究

ADD (R1),R0 表示的功能是 (R0)+((R1))(R1) ,将R0中的数据与R1中的内容所指定的主存的单元数据相加,并将结果送到R1中内容所指的主存单元中去。分析此指令执行的节拍控制。

这种类型的问题应当做到了然于胸。

一条指令的周期自然包括取指,译码,执行,还有可选的中断。译码有的也可称之为间址。

那么从取指开始。用 Ci 表示时钟周期(一个节拍)。用到Bus的都不必刻意写出来,直接写两个站点即可。
C1: (PC)MAR;PCout,MARin
C2: M(MAR)MDR,
(PC)+1PC;MemR,MDRin,PC+1 , 这里MemR是主存读信号
C3: (MDR)IR;MDRout,IRin
C4:指令译码阶段

==开始执行阶段==
C5: (R1)MAR;R1out,MARin
C6: M(MAR)MDR;MemR,MDRin
C7: (MDR)A;MDRout,Ain,A
C8: (A)+(R0)AC;Aout,R0out,ACin
C9: (ACC)MDR;ACCout,MDRin
C10: (MDR)M(MAR);MDRout,MemW

==也可以选择将R0中数据写入暂存寄存器A,这样可以与从主存拿到R1内容表示的主存单元的数据并行。

C5: (R1)MAR;R1out,MARin
C6: M(MAR)MDR,(R0)A;MemR,MDRin,R0out,Ain
C7: (A)+(R0)AC;Aout,R0out,ACin
C8: (AC)MDR;ACCout,MDRin
C9: (MDR)M(MAR);MDRout,MemW
这种题目最好还是自己动手分析才有乐趣。
用Latex写,解析不动了,本篇到此为止。

以上。

你可能感兴趣的:(组成原理)