虚拟内存

虚拟寻址

绝大部分计算机采取的寻址方式

CPU提供虚拟地址,MMU内存管理单元翻译虚拟地址到物理地址进行寻址

虚拟地址空间:系统可以调整其大小,通过页表建立与物理地址空间的映射关系

物理地址空间:系统主存的地址范围

MMU内存管理单元

虚拟地址组成:虚拟页号+虚拟页偏移量

虚拟页号:指出该数据所在地址所属的页

虚拟页偏移量:指出数据所在页下的精确位置

虚拟地址转物理地址:

  1. 根据页表基址寄存器找到页表首地址

  2. 根据虚拟页号找到对应页表项,第一次访存

    • 若对应页表项的有效位为0,则由MMU发出缺页异常

    • 若对应页表项的有效位为1,则找到物理页号

  3. 物理页号加上虚拟页偏移量即得物理地址

  4. 根据物理地址获取数据,第二次访存

在没有TLB的情况下,一次翻译需要访存两次

TLB快表

将页表项高速缓存集成在CPU中,即TLB快表

加快了翻译地址的速度,如果TLB命中则从两次访存简化为一次(获取数据的那一次)

若TLB未命中,则需去内存查找页表

上述的虚拟页号进一步细分为TLBT与TLBI两个部分。TLBI指出属于哪个块群,TLBT指出在该块群的具体位置

image-20221221131648654

注意与Cache的区别,CPU查找Cache使用的是物理地址查TLB使用的是虚拟地址

Licensed under CC BY-NC-SA 4.0 转载请注明出处!
总有些事情高于其他
Built with Hugo
主题 StackJimmy 设计
本站访客数人次 总访问量 本文阅读量