虚拟内存
虚拟寻址
绝大部分计算机采取的寻址方式
CPU提供虚拟地址,MMU内存管理单元翻译虚拟地址到物理地址进行寻址
虚拟地址空间:系统可以调整其大小,通过页表建立与物理地址空间的映射关系
物理地址空间:系统主存的地址范围
MMU内存管理单元
虚拟地址组成:虚拟页号+虚拟页偏移量
虚拟页号:指出该数据所在地址所属的页
虚拟页偏移量:指出数据所在页下的精确位置
虚拟地址转物理地址:
-
根据页表基址寄存器找到页表首地址
-
根据虚拟页号找到对应页表项,第一次访存
-
若对应页表项的有效位为0,则由MMU发出缺页异常
-
若对应页表项的有效位为1,则找到物理页号
-
-
物理页号加上虚拟页偏移量即得物理地址
-
根据物理地址获取数据,第二次访存
在没有TLB的情况下,一次翻译需要访存两次
TLB快表
将页表项高速缓存集成在CPU中,即TLB快表
加快了翻译地址的速度,如果TLB命中则从两次访存简化为一次(获取数据的那一次)
若TLB未命中,则需去内存查找页表
上述的虚拟页号进一步细分为TLBT与TLBI两个部分。TLBI指出属于哪个块群,TLBT指出在该块群的具体位置
注意与Cache的区别,CPU查找Cache使用的是物理地址,查TLB使用的是虚拟地址