首页 文章

MMU和TLB错过了

提问于
浏览
0

假设如下 . 我有一个虚拟内存系统,一个杠杆分页,我有一个MMU,TLB的东西是由软件控制的 .

好吧..所以想象一下我是一个进程,我想在虚拟地址vaddr的RAM中读一个字 .

因此,CPU给出MMU vaddr,MMU检查TLB是否存在具有(假设)vaddr的5个最高有效位的条目 . 如果它在那里......一切正常,它计算物理地址,一切顺利 .

现在..假设它不在TLB中 . 在这种情况下,MMU发出中断(页面错误) . 好的..现在我处于页面错误的处理程序中 .

在PBR(页面基址寄存器)中,我有页表开始的地址 . 我的问题在这里 . 这个地址是实体的吗?我想是的,因为如果它是虚拟的,则意味着两件事:1)必须以某种方式在过程的虚拟地址空间中保留(从未听说过类似的东西)2)如果这个地址不在TLB中,那么就会再次是一个页面错误,我将有一个无限循环 .

关于表中地址的相同问题 . 如果我有两级分页 . 第一级表中的条目中的地址(指向第二级表)在某种程度上是虚拟的还是物理的?

谢谢 .

1 回答

  • 3

    家庭作业?

    在任何情况下,CPU的体系结构手册中都详细描述了这些内容(你甚至没有写过你正在谈论的CPU - x86在TLB未命中时不会产生页面错误) .

相关问题