1、有效控制信号 C1 MAR(PC) PCout, MARin C2 MDRM(MDR) PC(PC)+1 MemR, MDRinE, PC+1 C3 IR(MDR) MDRout, IRin C4 指令译码 无 44解答:题干已给出取值和译码阶段每个节拍的功能和有效控制信号,我们应以弄清楚取指阶段中数据通路的信息流动作为突破口,读懂每个节拍的功能和有效控制信号。然后应用到解题思路中,包括划分执行步骤、确定完成的功能、需要的控制信号。先分析题干中提供的示例(本部分解题时不做要求):取指令的功能是根据PC的内容所指主存地址,取出指令代码,经过MDR,最终送至IR。这部分和后面的指令执行阶段的取操作
2、数、存运算结果的方法是相通的。C1:(PC)MAR 在读写存储器前,必须先将地址(这里为(PC)送至MAR。C2:M(MAR)MDR,(PC)+1PC 读写的数据必须经过MDR,指令取出后PC自增1。C3:(MDR)IR 然后将读到MDR中指令代码送至IR进行后续操作。指令“ADD (R1),R0”的操作数一个在主存中,一个在寄存器中,运算结果在主存中。根据指令功能,要读出 R1 的内容所指的主存单元,必须先将 R1 的内容送至 MAR,即(R1)MAR。而读出的数据必须经过 MDR,即 M(MAR)MDR。因此,将 R1 的内容所指主存单元的数据读出到 MDR 的节拍安排如下:C5:(R1)
3、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 等。于是得到参考答案如下:C5 MAR(R1) R1out, MARin C6 MDRM(M
4、AR) MemR, MDRinE C7 A(MDR) MDRout, Ain C8 AC(A)+(R0) R0out, Add, ACin C9 MDR(AC) ACout, MDRin C10 M(MAR)(MDR) MDRoutE, MemW 本题答案不唯一,如果在 C6 执行 M(MAR)MDR 的同时,完成(R0)A(即选择将(R0) 写入 A),并不会发生总线冲突,这种方案可节省 1 个节拍,见下表。MDRM(MAR),A(R0) MemR, MDRinE,R0out, Ain AC(MDR)+(A) MDRout, Add, ACin 43(11 分)某计算机字长为 16 位,主存
5、地址空间大小为 128KB,按字编址。采用单字长指令格式,指令各字段定义如图 B-4 所示。转移指令采用相对寻址方式,相对偏移量用补码表示,寻址方式定义见表 B-1。 15 12 11 6 5 0 OP Ms Rs Md Rd 源操作数 目的操作数 图 B-4 表 B-1 Ms/Md 寻址方式 助记符 含义 000B 寄存器直接 Rn 操作数=(Rn) 001B 寄存器间接 (Rn) 操作数=(Rn) 010B 寄存器间接、自增 (Rn)+ 操作数=(Rn),(Rn)+1Rn 011B 相对 D(Rn) 转移目标地址=(PC)+(Rn) 注:(X)表示存储器地址 X 或寄存器 X 的内容。请回
6、答下列问题:(1)该指令系统最多可有多少条指令?该计算机最多有多少个通用寄存器?存储器地址寄存器(MAR)和存储器数据寄存器(MDR)至少各需要多少位?(2)转移指令的目标地址范围是多少?(3)若操作码 0010B 表示加法操作(助记符为 add),寄存器 R4 和 R5 的编号分别为 100B 和 101B,R4 的内容为 1234H,R5 的内容为 5678H,地址 1234H 中的内容为 5678H,地址 5678H 中的内容为 1234H,则汇编语言为“add(R4), (R5)+”(逗号前为源操作数,逗号后为目的操作数)对应的机器码是什么(用十六进制表示)?该指令执行后,哪些寄存器和
7、存储单元中的内容会改变?改变后的内容是什么?(1)操作码占 4 位,则该指令系统最多可有 24=16 条指令;操作数占 6 位,寻址方式占 3 位,于是寄存器编号占 3 位,则该机最多有 23=8 个通用寄存器;主存容量为 128KB,按字编址,计算机字长为 16 位,划分为 128KB/2B=216 个存储单元,故 MDR 和 MAR 至少各需 16 位。(2)PC 和 Rn 可表示的地址范围均为 0216-1,而主存地址空间为 216,故转移指令的目标地址范围为 0000HFFFFH(0216-1)。(3)汇编语句“add (R4), (R5)+”,对应的机器码为 0010 0011 00
8、01 0101B=2315H。该指令执行后,寄存器 R5 和存储单元 5678H 的内容会改变。执行后,R5 的内容从 5678H变成 5679H。存储单元 5678H 中的内容变成该加法指令计算的结果 5678H+1234H=68ACH。44(12 分)某计算机的主存地址空间大小为 256MB,按字节编址。指令 Cache 和数据 Cache 分离,均有 8 个 Cache 行,每个 Cache 行大小为 64B,数据 Cache 采用直接映射方式。现有两个功能相同的程序 A 和 B,其伪代码如下:程序A:int a256256 int sum_array1() int i,j,sum=0; for(i=0;i256;i+) for(j=0;j算术/逻辑左移 SHL Rd 2*(Rd)-算术右移
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2