L3:多核共享
内存:多CPU共享
快表存在寄存器中。
CPU寻找页面的过程:
a. 通过虚拟地址获取物理地址
b. 根据物理地址获取数据
获取物理地址
- CPU向MMU发送虚拟地址。
- MMU通过快表查找其物理地址,不命中则通过cache和内存中查找,(如果内存存放的是多级页表的话,还可能在硬盘) 依次查找页表项。
- 将查询的页表项记录到高速缓存中。
- 如果虚拟地址已经分配物理页框,得到了物理地址,并更新快表。接下来进入由MMU根据物理地址获取的数据的步骤。(b)
- 如果虚拟地址没有分配物理页框,触发缺页中断,并进入 缺页中断处理程序:为虚拟页分配物理页框,并更新多级页表及高速缓存。缺页中断程序的最后是:修改CPU寄存器,使得重启导致缺页的指令,从1步骤重新执行。
根据物理地址获取实际数据
- MMU获取物理地址后,查询高速缓存,命中的话CPU直接从高速缓存取数据,不命中的话MMU就去查询内存。
- 从内存获取数据后,通过硬件把数据页记录到高速缓存中。CPU从告诉缓存中取数据。