某计算机字长为16位,采用16位定长指令字结构,部分数据通路结构如下图所 示,图中所有控制信号为1时表示有效、为0时表示无效。例如,控制信号MDRinE为1表示允许数据从DB打入MDR,MDRin为1表示允许数据从内总线打入MDR。假设MAR的输出一直处于

admin2015-12-30  32

问题 某计算机字长为16位,采用16位定长指令字结构,部分数据通路结构如下图所
示,图中所有控制信号为1时表示有效、为0时表示无效。例如,控制信号MDRinE为1表示允许数据从DB打入MDR,MDRin为1表示允许数据从内总线打入MDR。假设MAR的输出一直处于使能状态。加法指令“ADD(R1),R0”的功能为(R0)+((R1))→(R1),即将R0中的数据与R1的内容所指主存单元的数据相加,并将结果送入R1的内容所指主存单元中保存。

下表给出了上述指令取指和译码阶段每个节拍(时钟周期)的功能和有效控制信号,请按表中描述方式用表格列出指令执行阶段每个节拍的功能和有效控制信号。

选项

答案题干已给出取值和译码阶段每个节拍的功能和有效控制信号,我们应以弄清楚取指阶段中数据通路的信息流动作为突破口,读懂每个节拍的功能和有效控制信号。然后应用到解题思路中,包括划分执行步骤、确定完成的功能、需要的控制信号。 先分析题干中提供的示例(本部分解题时不做要求): 取指令的功能是根据PC的内容所指主存地址,取出指令代码,经过MDR,最终送至IR。这部分和后面的指令执行阶段的取操作数、存运算结果的方法是相通的。 C1:(PC)→MAR 在读写存储器前,必须先将地址(这里为(PC))送至MAR。 C2:M(MAR)→MDR,(PC)+1→PC 读写的数据必须经过MDR,指令取出后PC自增1。 C3:(MDR)→IR 然后将读到MDR中指令代码送至IR进行后续操作。 指令“ADD(R1),R0”的操作数一个在主存中,一个在寄存器中,运算结果在主存中。根据指令功能,要读出R1的内容所指的主存单元,必须先将R1的内容送至MAR,即(R1)→MAR。而读出的数据必须经过MDR,即M(MAR)→MDR。 因此,将R1的内容所指主存单元的数据读出到MDR的节拍安排如下: C5:(R1)→MAR C6:M(MAR)→MDR ALU一端是寄存器A,MDR或R0中必须有一个先写入A中,如MDR。 C7:(MDR)→A 然后执行加法操作,并将结果送入寄存器AC。 C8:(A)+(R0)→AC 之后将加法结果写回到R1的内容所指主存单元,注意MAR中的内容没有改变。 C9:(AC)→MDR C10:(MDR)→M(MAR) 有效控制信号的安排并不难,只需看数据是流入还是流出,如流入寄存器X就是Xin,流出寄存器X就是Xout。还需注意其他特殊控制信号,如PC+1、Add等。 于是得到参考答案如下: [*] 本题答案不唯一,如果在C6执行M(MAR)→MDR的同时,完成(R0)→A(即选择将(R0)写入A),并不会发生总线冲突,这种方案可节省1个节拍,见下表。 [*]

解析
转载请注明原文地址:https://kaotiyun.com/show/a7xi777K
0

最新回复(0)