TLB和CPU缓存

TLB

若是每次应用程序访问一个线性地址都须要先解析(查PDT,PTT)那么效率十分低,为了提升执行效率CPU在CPU内部创建了一个TLB表,此表和寄存器同样访问速度极高。其会记录线性地址和物理地址之间的对应关系,这样之后当程序在访问此线性地址时就直接访问对应的物理地址了。缓存

由于每个进程都有对应的CR3寄存器,指向不一样的页目录表或也目录指针表,当CR3变化时(进程切换)其对应的线性地址与物理地址的映射也变了。因此会将TLB刷新,可是对于高2GB的地址而言,其对应的TLB并不会刷新由于通常高2GB地址是不变的。高2GB对应的PDE或PTE的G位为1,代表其在CR3切换时并不会刷新TLB中对应的项。3d

INVLPG     //特权指令,能够清除TLB

cpu缓存

CPU缓存是创建 物理地址和内容之间的联系,因此当应用程序访问数据时能够先从TLB中获得对应线性地址的物理地址,再从CPU缓存中取出物理地址对应的内容。指针

相关文章
相关标签/搜索