內存管理 —— 地址翻譯

地址翻譯主要包括兩個階段:一個是虛實地址轉換,另一個是存取數據。

慢表(Page):放在主存中的頁表,頁表只能存放在主存中。

快表(TLB):放在告訴緩衝存儲器的頁表項。

在這裏插入圖片描述

一、虛實地址轉換


(1)根據虛擬地址的 TLB 標記索引(若採用全相聯映射,則沒有索引)TLB 中是否有對應的頁表項

  1. 若存在對應的頁表項,且有效位(即裝入位)爲1,則將頁表項中的實頁號和頁內地址拼接,得到實地址
  2. 若存在對應的頁表項,但有效位(即裝入位)爲0,則頁面不在主存中,產生缺頁中斷,需要將目標頁面調入內存再由CPU重新訪問
  3. 若不存在對應的頁表項,則進入步驟(2)

(2)根據 虛擬頁號內存中的頁表 是否有對應的頁表項

  1. 若存在對應的頁表項,且有效位(即裝入位)爲1,則將頁表項中的實頁號和頁內地址拼接,得到實地址
  2. 若存在對應的頁表項,但有效位(即裝入位)爲0,則頁面不在主存中,產生缺頁中斷,需要將目標頁面調入內存再由CPU重新訪問
  3. 若不存在對應的頁表項,則產生錯誤

二、存取數據


(1)根據實地址的 Cache標記索引(若採用全相聯映射,則沒有索引)Cache 中是否有對應的數據

  1. 若有效位爲1,可知該塊在 Cache 中,根據偏移量(塊內地址)可以找到對應的數據
  2. 若有效位爲0,則該塊不在 Cache 中,進入步驟(2)

(2)根據實地址的 物理頁號內存 中是否有對應的數據

  1. 根據 頁內偏移 一定可以找到對應的數據

三、實例


題目

設某系統滿足以下條件:

  • 有一個TLB與一個 data Cache
  • 存儲器以字節爲編址單位
  • 虛擬地址14位
  • 物理地址12位
  • 頁面大小爲64B
  • TLB爲四路組相聯,共有16個條目
  • data Cache是物理尋址、直接映射的,行大小爲4B,共有16組

TLB、頁表、 Cache內容如 表3.2、表3.3 及 表3.4 所示

在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
寫出訪問地址爲0x03d4、0x00f和0x0229的過程。

步驟一

在這裏插入圖片描述

步驟二:虛擬地址 → 實地址

在這裏插入圖片描述

步驟三:存取數據

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章