文章
27
粉丝
0
获赞
0
访问
965
(1)因为主存块大小为64B,所以块内地址为64=2^6=6位。8路组相联映射方式所以有3位表示组号。又因为主存地址为32位,通过直写方式不需要脏位(修改位)LRU替换算法必须要有1位LRU位。因此每一行中的标记位占:32-6-3-1=22位。LRU位占1位。
(2)008000C0H对应二进制为:0000 0000 1000 0000 0000 0000 1100 0000B,组号为011B即第3组。程序刚开始执行时,Cache没有映射所以缺失一次,并把数组s映射到Cache的第3组。因为数据区容量32KB,8路组相联映射,所以每组数据容量4KB。执行程序过程中因为采用了直写写策略所以执行“s[k]=2*s[k];”时都要把修改的s[k]
的值写进主存和Cache中,又因为每组数据容量4KB,s和k为int型,占4B。所以一组可以容纳1024个s变量。所以访问数组s的数据Cache缺失次数为1次。
(3)CPU读取主存单元00010003H中的指令,00010003H对应二进制是0000 0000 0000 0001 0000 0000 000 0011B,先访问Cache0号组,查看有无指令的副本的标志位。若标志位为0则缺失,CPU访问主存单元00010003H中的指令并复制一份到Cache中。
评分及理由
(1)得分及理由(满分3分)
学生答案中,标记位计算错误(应为20位,学生计算为22位),LRU位计算错误(应为3位,学生计算为1位),但正确指出没有修改位。标记位和LRU位各错一处,扣2分。得1分。
(2)得分及理由(满分3分)
学生答案中,组号计算错误(应为0组,学生计算为3组),缺失次数计算错误(应为64次,学生计算为1次),且对Cache映射和访问过程的理解存在根本性错误。思路和结果均错误,扣3分。得0分。
(3)得分及理由(满分4分)
学生答案中,正确指出Cache初始为空会导致缺失,并描述了缺失时从主存读取指令并更新Cache的过程。但未明确说明地址划分(组号应为0)和标记位更新细节,描述不够完整。扣1分。得3分。
题目总分:1+0+3=4分
登录后发布评论
暂无评论,来抢沙发