实施对 R1 操作(该操作能够是任意某一操作码),但这一指令序列不能被一条指令(假定存在这条
指令)替换。
11.试比较下面 4 种不一样类型指令结构存放效率:
(1) 累加型:全部操作全部在单个寄存器和单个内存地址之间进行
(2) 存放器-存放器型:每个指令 3 个操作数全部在内存中进行
(3) 堆栈型:全部操作全部在栈顶进行。只有 push 和 pop 操作会访问内存,其它指令实施时全部会删
除栈中操作数,然后写入实施结果。
(4) 通用寄存器型:全部操作全部在寄存器中进行。这些寄存器-寄存器指令中每个指令全部包含 3 个
操作数。通用寄存器一共有 16 个,寄存器标志符占 4 位长。
为比较存放效率,我们对以上 4 种指令集作了以下约定:
操作码占一个字节(8 位)
内存地址占 2 个字节(16 位)
操作数占 4 字节(32 位)
全部指令长度全部以整数个字节计算
另外,还假定访问内存不使用其它优化方法,变量 A、B、C 和 D 初值全部已经放在内存中。
针对以上 4 种不一样指令系统,回复下列问题:
(1) 分别用汇编指令写出下面 3 个赋值语句:
A = B + C;
B = A + C;
D = A – B;
(2) 分别计算所实施指令字节数和转移内存数据字节数,并指出假如依据代码大小来计算话,哪种结
构效率是最高?假如按需要总内存带宽(代码+数据)来计算,又是哪种结构效率最高?
12.考虑为 DLX 结构计算机增加一个新寻址模式。即使得地址模式增加两个寄存器和一个 11 位长带
符号偏移量来得到有效地址。这么,编译器就会用新寻址模式来替换
ADD R1, R1, R2
LW Rd, 0(R1) (或是 Store 指令)
假如已知在 DLX 结构计算机上对测得部分程序 load 和 store 指令分别平均占 26%和 9%,在此基础上,
计算:
(1) 假定 10%load 和 store 指令能够用新寻址模式替换,那么采取新寻址模式后指令计数和采取前之比
为多少?
(2) 假如新寻址模式使得时钟周期增加 5%,那么采取了新寻址模式机器和未采取新寻址模式机器相比,
哪种机器会愈加快部分,快多少?
评论0
最新资源