Mips 虚拟内存、LRU和页面错误-家庭作业
我一直在做以下程序,感觉它缺少了一些信息,或者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帧页面错误是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=
因此,当我们在第二次交互中回到循环中时,页面还没有被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