cpu获得物理内存地址后会做什么?

时间:2018-08-19 18:11:24

标签: memory-management memory-address virtual-memory tlb page-tables

所以我了解到,当cpu查找虚拟地址时,它先查看TLB,然后再查看页表,以获取物理地址(pa),但是我对此感到有些困惑pa。

它是否只是检查每个内存级别的地址,直到被点击?例如:在高速缓存l1中检查pa,如果未命中,则在l2中检查pa,如果未命中,则在l3中,检查pa,如果未命中,则在RAM中检查pa,如果未命中,则从磁盘读取。我尝试使用谷歌搜索并搜索堆栈溢出,但是找不到任何全面或清晰的过程说明。

1 个答案:

答案 0 :(得分:1)

  1. 您的问题暗示了很多困惑。为了开始您的学习过程,我建议您完全忽略缓存。缓存检查完全是一个硬件过程,除非您是CPU设计人员,否则它与编程没有任何关系。

  2. CPU将逻辑地址转换为物理地址。更准确地说,它将逻辑地址转换为物理页面框架,将办公室转换为物理页面框架。

  3. 如果CPU无法将逻辑地址转换为物理地址,则会触发页面错误。

  4. 然后,操作系统的页面错误处理程序将尝试查看相应的页面是否是虚拟的(存储在磁盘上)。如果是这样,则页面错误处理程序将从磁盘加载页面并重新启动导致错误的指令。如果不是,则操作系统会触发某种访问冲突。