一,cpu緩存架構

1.level-1 data cache: 一級資料緩存
2.level-1 inst cache: 一級指令緩存
3.MMU: 記憶體管理單元
4.TLB(translation lookaside buffer): 轉換後援緩存
5.level-2 cache:二級緩存
6.level-3 cache:三級緩存
二.處理器讀取資料過程
- CPU根據虛拟位址嘗試從一級緩存(存放的是虛拟位址的索引)中讀取資料;
- 如果一級緩存中查找不到,則需向MMU請求資料;
- MMU從TLB中查找虛拟位址的緩存(換言之,
是負責改進虛拟位址到實體位址轉換速度、存放虛拟位址的緩存);TLB
- 如果TLB中存在該虛拟位址的緩存,則MMU将該虛拟位址轉化為實體位址,如果位址轉換失敗,則發生缺頁(圖中的
分支),由核心進行處理,見上文所述;如果位址轉換成功,則從二級緩存(存放的是實體位址的索引)中讀取;如果二級緩存中也沒有,則需要從三級緩存甚至實體記憶體中請求;fault
- 如果TLB中不存在該虛拟位址的緩存,則MMU從實體記憶體中的轉換表(
,也稱為頁表translation tables
)中擷取,同時存入TLB;(注意,這個操作是硬體實作的,可以由MMU通過硬體直接從實體記憶體中讀取);page tables
- 跳到第4步。