43.(11分)某计算机字长为16q位,主存地址空间大小为128KB,按字编址,采用字长指令格式,指令名字段定义如下:

转移指令采用相对寻址方式,相对偏移是用补码表示,寻址方式定义如下:
Ms/Md |
寻址方式 |
助记符 |
含义 |
000B |
寄存器直接 |
Rn |
操作数=(Rn) |
001B |
寄存器间接 |
(Rn) |
操作数=((Rn)) |
010B |
寄存器间接、自增 |
(Rn)+ |
操作数=((Rn)),(Rn)+1→Rn |
011B |
相对 |
D(Rn) |
转移目标地址=(PC)+(Rn) |
注:
(X)表示有储蓄地址X或寄存器X的内容,请回答下列问题:
(1)该指令系统最多可有多少条指令?该计算机最多有多少个通用寄存器?存储器地址寄存器(MDR)至少各需多少位?
(2)转移指令的目标地址范围是多少?
(3)若操作码0010B表示加法操作(助记符为a d d),寄存器R4和R5的编号分别为100B和101B,R4的内容为1 2 3 4 H,R5的内容为5 6 7 8 H,地址1 2 3 4 H中的内容为5 6 7 8 H中的内容为1 2 3 4 H,则汇编语言为a d d(R4).(R5)+(逗号前原操作数,都号后为目的操作数)对应的机器码是什么(用十六进制表示)?该指令执行后,哪些寄存器和存储单元的内容会改变?改变后的内容是什么?
解答:
该题的考点是指令系统设计,注意操作位数与指令条数的关系,地址码与寄存器数的关系,指令字长与MOR的关系,存储容量与MAR的关系,注意补码计算的偏移地址。
44.(12分)某计算机的主存地址空间为256MB,按字节编址,指令Cache分离‘均有8个Cache行,每个Cache行的大小为64MB,数据Cache采用直接映射方式,现有两个功能相同的程序A和B,其伪代码如下所示:

假定int 类型数据用32位补码表示,程序编译时i,j, sum 均分配在寄存器中,数据a按行优先方式存放,其地址为320(十进制数),请回答下列问题,要求说明理由或给出计算过程。
(1)、若不考虑用于cache一致性维护和替换算法的控制位,则数据Cache的总容量是多少?
(2)、要组元素a[0][31]和a[1][1]各自所在的主存块对应的Cache行号分别是多少(Cache行号从0开始)?
(3)、程序A和B的数据访问命令中各是多少?那个程序的执行时间更短?
简答:考点:Cache容量计算,直接映射方式的地址计算,以及命中率计算(行优先遍历与列优先遍历命中率分别很大)
[本文共有 6 页,当前是第 5 页] <<上一页 下一页>>