文章
60
粉丝
0
获赞
0
访问
3.8k
页大小4KB,所以页内偏移量位12位,主存还有20位作为页目录号和页号。push的虚拟地址是00401000,ret指令的虚拟地址是0040104A.
转换成二进制,push=0000 0000 0100 0000 0001 0000 0000 0000B
转换成二进制, ret=0000 0000 0100 0000 0001 0000 0100 1010B,二者前20位都一样,所以push和ret在同一页中。
64/4=16组,主存块大小64B=块内地址占9位。Cache组号占4位,Cache行号占6位。32-4-6-9=13位,这13位表示tag。在32位主存地址中高13位表示tag,后面6位表示Cache行号,再后面4位表示Cache组号,最低的9位表示块内地址。
16行call指令的虚拟地址为00401025H。转换成二进制位0000 0000 0100 0000 0001 0000 0010 0101B表示组号的4位是1000B所以在第8组命中。
评分及理由
(1)得分及理由(满分2分)
学生正确判断了push和ret指令在同一页中,理由充分(前20位相同),得2分。
(2)得分及理由(满分2分)
学生错误计算块内地址位数(应为6位而非9位),导致后续地址划分全部错误。但正确计算了Cache组号位数(4位)。扣1分,得1分。
(3)得分及理由(满分1分)
因第二问计算错误,标记位计算错误(应为22位而非13位)。但思路正确(高位作为标记)。扣0.5分,得0.5分。
(4)得分及理由(满分2分)
学生错误计算call指令的组号(应为0组而非8组),因块内地址位数错误导致组号提取位置错误。但正确给出了指令地址。扣1分,得1分。
题目总分:2+1+0.5+1=4.5分
登录后发布评论
暂无评论,来抢沙发