问答题 某计算机字长16位,采用16位定长指令字结构,部分数据通路结构如下图所示(见下页),图中所有控制信号为1时表示有效、为O时表示无效,例如控制信号MDRinE为1表示允许数据从DB打入MDR,MD Rin为1表示允许数据从内总线打入MDR。假设MAR的输出一直处于使能状态。加法指令“ADD(R1),R0”的功能为(R0)+((R1))→(R1),即将R0中的数据与R1的内容所指主存单元的数据相加,并将结果送入R1的内容所指主存单元中保存。
【正确答案】
【答案解析】答案一:
有效控制信号
时钟
功能
C5
MAR←(R1)
Rlout,MARin
C6
MDR←M(MAR) A←(R0)
MemR,MDRinE,R0out,Ain
C7
AC←(MDR) + (A)
MDRout,Add,ACin
C8
MDR←(AC)
ACout,MDRin
C9
M(MAR)←(MDR)
MDRoutE,MemW
答案二:
有效控制信号
时钟
功能
C5
MAR←(R1)
Rlout,MARin
C6
MDR←M(MAR)
MemR,MDRinE
C7
A←(MDR)
MDRout,Ain
C8
AC←(A)+(R0)
R0out,MDRin
C9
(MDR)←(AC)
ACout,MDRin
C10
M(MAR)←(MDR)
MDRoutE,MemW
本题目主要考查了CPU的指令周期、指令的寻址方式和数据通路等知识点。如果操作数存放在主存储器里,在指令的执行阶段,首先要根据寻址方式得到操作数的有效地址EA,并送到MAR,然后访问存储器,将操作数取出来存放在MDR,在访存的同时,可以经内总线将另一个操作数取出来暂存到ALU的寄存器A(也可采用另一种数据通路,分成两步完成,即将访存后取出的操作数暂存于MDR,然后将MDR的内容存入寄存器A中),随后就可用寄存器MDR和A的内容完成ADD操作(或者从寄存器RO中取出另一个操作数与A的内容直接完成加法操作)。不管哪一种,得到的运算结果都是先暂存入寄存器AC,再写回到目的地址。根据题目要求,结果要写回R1所指的主存储单元中,所以运算结果先要暂存在MDR中,由MAR的内容选中存储单元后,再写回到主存储器中。