17.TLB
我們只想讀4個字節,但我們要經過如下的步驟
讀取 4 字節的PDE 讀取 4 字節的 PTE 讀取 4 字節(int 占用4字節)的物理內存在 10-10-12 分頁模式下,CPU 每次要訪問額外的訪問 8 字節內存數據才能讀取到數據
讀取 8 字節 PDPTE 讀取 8 字節 PDE 讀取 8 字節 PTE 讀取 4 字節的物理內存在2-9-9-12 分頁模式下,需要額外的訪問 24 字節內存數據才能讀取到數據。
還有可能出現四個字節不在同一個物理頁上的情況,這樣效率就會變得非常低,所以出現了快表:TLB(Translation Lookaside Buffer)
0x12345678如果已經拆分過,TLB表就會記錄下次要用的時候直接找TLB,如果沒有就只能經過如上的步驟。
- 為了提高效率,只能做記錄。
 - TLB是CPU內部做的表,來記錄這些東西,這個表格是CPU內部的,和寄存器一樣快
 - 因為是在CPU 中開辟空間,容量不能太大
 
如果 TLB 滿了, LRU 統計信息就會把不經常使用的那一條抹掉,把新值寫上。
操作系統的高2G映射基本不變,如果Cr3改了, TLB刷新重建高2G以上很浪費。
 所以PDE和PTE中有個G位,如果G位為1刷新TLB時將不會刷新PDE/PTE的 G位為1的頁,
 當TLB滿了,根據統計信息將不常用的地址廢棄,最近最常用的保留…[
TLB種類
 TLB在X86體系的CPU里的實際應用最早是從Intel的486CPU開始的,在X86體系的CPU里邊,一般都設有如下4組TLB:
如果你的CPU只有一核,那就只有一組TLB
- 第一組:緩存一般頁表(4K字節頁面)的指令頁表緩存(Instruction-TLB) ;
 - 第二組:緩存一般頁表(4K字節頁面)的數據頁表緩存(Data-TLB);
 - 第三組:緩存大尺寸頁表(2M/4M字節頁面)的指令頁表緩存(Instruction-TLB) ;
 - 第四組:緩存大尺寸頁表(2M/4M字節頁面)的數據頁表緩存(Instruction-TLB)
 
感受TLB的存在
作者:–Allen–
 來源:CSDN
 原文:https://blog.csdn.net/q1007729991/article/details/53000410?utm_source=copy
 版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
總結
                            
                        - 上一篇: 16.PAE分页实验
 - 下一篇: 18.中断与异常