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緩存中取出物理地址對應的內容。指針

相關文章
相關標籤/搜索