欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

计组统考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