计组统考2015选择16
程序员文章站
2022-04-02 11:38:02
复习计组存储系统这块时碰到了这个题(2015.16)假定编译器将赋值语句”x = x+3”转换成指令”add xaddr,3”,其中xaddr是x对应的存储单元地址。若执行该指令的计算机采用页式虚拟存储管理方式,并配有相应的TLB,且Cache使用直写(Write Through)方式,则完成该指令功能需要访问主存的次数至少是()我也是天真的选择了2次,但是正确的答案是1次这个题迷惑性还是挺大的,我来谈谈我的对这个1次的答案的理解吧,如有不对还请指出。首先我们先要明确这个指令要做什么。取数、运算、...
复习计组存储系统这块时碰到了这个题
(2015.16)假定编译器将赋值语句”x = x+3”转换成指令”add xaddr,3”,其中xaddr是x对应的存储单元地址。若执行该指令的计算机采用页式虚拟存储管理方式,并配有相应的TLB,且Cache使用直写(Write Through)方式,则完成该指令功能需要访问主存的次数至少是()
我也是天真的选择了2次,但是正确的答案是1次
这个题迷惑性还是挺大的,我来谈谈我的对这个1次的答案的理解吧,如有不对还请指出。
首先我们先要明确这个指令要做什么。取数、运算、写回。
取指令之后会根据x的地址去内存中取出x的数值。此时如果指令所在的页位于TLB中,则无需访问内存,直接根据TLB中的实页号去找相应的页。
因为有cache的存在,所以会先访问cache,此时如果要寻找的页位于cache,则无需访问内存,直接在cache中取出x的值。
取出x的值并运算完后,通过写直通法进行写入,因为写直通法是cache和内存一起写入,所以此时必须要访问一次内存,所以答案是1次。
这里有人提到了写缓存,严格来讲这个题目不是非常严谨。题干里没有说写缓存是否能用,如果有写缓存,则执行这条指令的时候其实是不用访问内存的,但是这里应该是默认了不用写缓冲。
本文地址:https://blog.csdn.net/Boooooil/article/details/107433486
上一篇: 做老师最大的乐趣
推荐阅读