文章
7
粉丝
0
获赞
0
访问
924
1)x,y数组都只访问一次,因此时间局部性差,但因为是按行访问,空间局部性好
2)float的数据大小为4B ,且主存块大小为16B,故每个主存块占4位且存储4个元素。数组x存放在块的起始位置,因此每个Cache块或者主存块都是存放4个元素。因此可以对单个块分析。因为程序会同时用到x和y两个数组,且是紧密存放。x对应的cache行为0,1。y对应的是0,1因此访问x元素之后,在访问y,cache第0行被替换为y。反复8次,因此命中率为0。
3)32B/8B =4 个cache块,因此共有2组 每组2个cache行。每个cache行存放的是2个元素。x和y都会分别指向每行的0,1分组。且所有过程相同,因此每组只有第一次不命中,共2个元素,因此命中率50%
4)因为程序会同时用到x和y两个数组,且是紧密存放。x对应的cache行为0,1,0。y对应的是1,0。因此x和y交替访问cache。每次过程相同,一次过程访问8个元素,x和y个不命中一次,因此命中率 为 75%
评分及理由
(1)得分及理由(满分2分)
得分:2分
理由:学生正确指出了数组x和y的时间局部性差(每个元素只被访问一次),空间局部性好(按行访问),与标准答案完全一致。
(2)得分及理由(满分3分)
得分:3分
理由:学生正确分析了Cache的直接映射方式、主存块大小与元素存储的关系,并准确说明了x和y数组的Cache行冲突导致命中率为0%,逻辑和结论与标准答案一致。
(3)得分及理由(满分3分)
得分:3分
理由:学生正确分析了2-路组相联映射的Cache结构,说明了每组可容纳两个数组元素,并得出命中率为50%的结论,与标准答案一致。
(4)得分及理由(满分3分)
得分:3分
理由:学生正确分析了数组x定义为float[12]时Cache行的分布情况,说明了x和y数组的Cache行不冲突,并计算出命中率为75%,与标准答案一致。
题目总分:2+3+3+3=11分
登录后发布评论
暂无评论,来抢沙发