请注意,本文编写于 547 天前,最后修改于 547 天前,其中某些信息可能已经过时。
目录
1. CR3寄存器的功能
2. CR3寄存器与TLB的关系
3. CR3寄存器与操作系统的交互
CR3寄存器是x86架构中的一个控制寄存器,用于存储页目录表的物理地址。它在操作系统中起着重要的作用,与内存管理单元(MMU)和转换查找缓冲区(TLB)密切相关。
1. CR3寄存器的功能
- CR3寄存器用于存储页目录表的物理地址,也被称为页目录基址寄存器(PDBR)[1]。
- 在64位机器上,CR3寄存器从32位扩展为64位,用于存储页目录表的物理内存基地址[1]。
- 每当进程切换时,操作系统会将下一个要运行的进程的页目录表物理内存基地址等信息存储到CR3寄存器中[1]。
2. CR3寄存器与TLB的关系
- TLB(转换查找缓冲区)是一个硬件缓存,用于存储最近访问的页表项,以加速地址转换过程[1]。
- 当TLB中不包含所需的页表项时,需要额外的总线周期从内存中读取页表项[1]。
- 当CR3寄存器的值发生改变时,TLB会被刷新,即TLB中的所有页表项都会失效,需要重新加载[2]。
3. CR3寄存器与操作系统的交互
- 每当进程切换时,操作系统需要修改CR3寄存器的内容[1]。
- 在x86架构下,当切换到一个新的进程时,操作系统会将新进程的页目录表物理内存基地址加载到CR3寄存器中[1]。
- 这样做的目的是切换页全局目录以安装一个新的地址空间,并切换内核态堆栈和硬件上下文[1]。
总结:
CR3寄存器是x86架构中的一个控制寄存器,用于存储页目录表的物理地址。它与TLB密切相关,当CR3寄存器的值发生改变时,TLB会被刷新。操作系统在进程切换时需要修改CR3寄存器的内容,以切换页全局目录和硬件上下文。
Learn more:
- X86_64 CR3控制寄存器详解_cr3和pgd的关系-CSDN博客
- 【精选】X86_64 CR3详解_cr3寄存器-CSDN博客
- [转载] 控制寄存器(CR0,CR1,CR2,CR3,CR4) - 舒方小院 - 博客园
本文作者:yowayimono
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA
许可协议。转载请注明出处!