Mips 虚拟内存、LRU和页面错误-家庭作业

Mips 虚拟内存、LRU和页面错误-家庭作业,mips,virtual-memory,lru,page-fault,Mips,Virtual Memory,Lru,Page Fault,我一直在做以下程序,感觉它缺少了一些信息,或者a)和b)有点诡计: 循环作为程序的一部分在使用4KB页面的虚拟内存系统上执行。假设使用LRU替换算法来选择需要在内存中替换的页面。标记为“开始”的指令从页面边界开始,循环体包含4601对移位指令(sll和srl) a) 如果内存包含八个4KB帧,在循环执行期间会发生多少页错误 b) 如果内存包含九个4KB帧,在循环执行期间会发生多少页错误 a)和b)不是都有5页错误吗?每次循环时有4602条指令,MIPS指令为4B,页面大小为4KB。4KB/4B=

我一直在做以下程序,感觉它缺少了一些信息,或者a)和b)有点诡计:

循环作为程序的一部分在使用4KB页面的虚拟内存系统上执行。假设使用LRU替换算法来选择需要在内存中替换的页面。标记为“开始”的指令从页面边界开始,循环体包含4601对移位指令(sll和srl)

a) 如果内存包含八个4KB帧,在循环执行期间会发生多少页错误

b) 如果内存包含九个4KB帧,在循环执行期间会发生多少页错误

a)和b)不是都有5页错误吗?每次循环时有4602条指令,MIPS指令为4B,页面大小为4KB。4KB/4B=每页1024条指令,因此首次通过循环:

说明0-1023第0帧页面错误是

说明1024-2047第1帧页面错误是

说明2048-3071第2帧页面错误是

说明3072-4096第3帧页面错误是

说明4096-4602第4帧页面错误是


因此,当我们在第二次交互中回到循环中时,页面还没有被LRU策略替换,因此我们可以再次引用它们。为什么这会改变32次循环迭代的8帧还是9帧?

循环体包含4601对移位指令。除了
addi
bne
指令外,每个循环总共有9204条指令。

我明白了,我可以看出8或9帧的重要性。措辞有点混乱,我认为这意味着前两个指示重复了4600次。我想我应该更仔细地阅读这个问题。谢谢
Start:  addi    $3,$0,32

Loop:   sll $4,$4,1

srl $4,$4,1

...         # previous two instructions are

...         # repeated  4600 times

addi    $3,$3,-1

bne $3,$0,loop