文章
63
粉丝
0
获赞
0
访问
13.4k
(1)数组a所占的空间为24*64*4B=6KB,所以6KB/4KB=2,数组a占比2个页面。由于执行上述程序员段数组a不在主存当中,故会发生2次缺页异常。页故障地址分别是00422000H以及00423000H。
(2)没有时间局部性,因为数组中每个数字只会被访问一次。
(3)32B=2^5B,所以块内地址为A0-A4。因为8KB/32B=2^8,2^8/4=2^6,所以A5-A10用作Cache组号。00422000H+64*4=00422100H,所在主存块对应的Cache组号为08H,对应为组号为8。
(4)因为6KB/32B=192,所以数组占用192块主存块。32B/4B=8,所以每8次访问数组,会产生一次Cache缺失,命中率为7/8=87.5%。由于数组按照行优先的顺序进行存储,当i和j次序调换时,由于6KB<8KB所以数组能完全存储与Cache中,命中率不变为87.5%。
评分及理由
(1)得分及理由(满分3分)
得分:3分
理由:学生正确计算了数组a占用的页面数为2,缺页异常次数为2,并正确给出了两个页故障地址00422000H和00423000H,与标准答案完全一致。
(2)得分及理由(满分2分)
得分:2分
理由:学生正确判断了没有时间局部性,并给出了合理的解释(每个元素只被访问一次),与标准答案一致。
(3)得分及理由(满分4分)
得分:4分
理由:学生正确指出块内地址为A0-A4(低5位),Cache组号为A5-A10(低11位中的高6位),正确计算了a[1][0]的虚拟地址为00422100H,并正确得出Cache组号为8,所有答案与标准答案一致。
(4)得分及理由(满分5分)
得分:4分
理由:学生正确计算了数组a占用192个主存块,正确计算了第一种循环顺序下的Cache命中率为87.5%。但在第二种循环顺序(j在外层)的命中率分析中存在逻辑错误:虽然数组总大小6KB小于Cache数据区8KB,但由于访问顺序变为列优先,会导致频繁的Cache冲突失效,实际命中率会显著下降,而学生错误认为命中率不变。因此扣1分。
题目总分:3+2+4+4=13分
登录后发布评论
暂无评论,来抢沙发