1.首先,在討論映射之前要先補充邏輯地址、物理地址、cache行的概念
邏輯地址(虛地址)由虛頁號和頁內地址組成。其中虛頁號包含虛頁號以及頁表索引;
物理地址(實地址)由物理塊號和塊內地址組成。其中塊號又包含tag以及cache索引;
cache行包括tag、標記位、數據。詳見另一篇帖子 https://www.cnblogs.com/zhengmq2010/p/13662884.html
2.含快表的二級頁表查找
圖中的頁和塊表達意思一致
2.1快表未命中
1.首先判斷頁號對應頁表長度是否越界;
2.未發生越界,則通過頁表首地址和行號計算得出頁表中對應的項(由此可以看出頁表的頁號是可以省略的);
3.若為多級頁表,則重復步驟2;
4.若不缺頁,則用找到的塊號2與邏輯地址中的頁號組成物理地址。
其中,訪問一次頁表時,訪問一次內存。當頁表缺失時,需要進行一個I/O導入所需頁面。
2.2快表命中
情況與訪問頁表相似,但快表中多了一個頁號項,作用與cache中的tag一樣。當快表的中的頁號項與邏輯地址提供的頁號一致時則命中。
3 訪問cache
以直接映射為例
1.用行號找到cache中對應的項;
2.對比tag與有效位,僅當tag相同且有效位=1時,cache命中;
3.若cache未命中,則從主存中寫入對應的項(涉及寫策略)。