ARM存儲器之:存儲管理單元MMU
基于細二級頁表的地址變換過程如圖15.29所示。
(7)基于二級頁表的地址變換過程
二級頁表有4種可能的頁表項:
·定義64KB頁幀屬性的大(Large)頁表項;
·定義4KB頁幀屬性的小(Small)頁表項;
·定義1KB頁幀屬性的微(tiny)頁表項;
·訪問中止異常的錯誤項。
系統(tǒng)通過頁表項的最低位[1:0]來確定頁表項的類型。二級頁表的頁表項格式如圖15.30所示。
當bits[1:0]=0b01時,該頁表項為大頁表項,它包含了一個64KB物理存儲塊的基地址。如果頁表是細二級頁表,那么大頁表項將在表中重復64次;如果頁表是粗二級頁表,那么大頁表項將在表中重復16次。
圖15.29基于細二級頁表的地址變換過程
圖15.30二級頁表的頁表項格式
當bits[1:0]=0b10時,該頁表項為小頁表項,它保存一個4KB物理存儲塊的基地址。如果頁表是細二級頁表,那么小頁表項將在表中重復4次;如果頁表是粗二級頁表,那么大頁表項只需在表中出現(xiàn)1次。
當bits[1:0]=0b11時,該頁表項為微頁表項,它保存一個1KB物理存儲塊的基地址。如果頁表是細二級頁表,那么微頁表項只需在表中重復1次;微頁表項不會出現(xiàn)在粗二級頁表中,如果出現(xiàn),那么訪問結果不可預知。
當bits[1:0]=0b00時,該頁表項產(chǎn)生存儲頁訪問錯誤。錯誤條件會導致預取指中止或數(shù)據(jù)中止,這取決于具體的存儲器訪問類型。
(8)大頁表描述符及其地址變換過程
如果二級頁表項bits[1:0]=0b01,說明該頁表項為大頁表項,它不僅包含了一個64KB物理存儲塊基地址,同時還含有4組權限位域以及頁的Cache和寫緩存屬性。每一組訪問權限域代表虛存頁的1/4,這些頁表項可以看成是16KB子頁,以更好的控制64KB頁的訪問權限。
具體定義如表15.26所示。
表15.26 大頁表項中各字段含義
字段 | 含義 |
bits[1:0] | 大頁表項類型標識符 |
bits[3:2] | Cache和寫緩存屬性 |
bits[11:4] | 訪問權限控制位,具體編碼見表15.27。 一個大頁分為4個子頁 AP0子頁0的訪問權限 AP1子頁1的訪問權限 AP2子頁2的訪問權限 AP3子頁3的訪問權限 |
bits[15:12] | 當前未使用,應為0 |
bits[31:16] | 該大頁對應的物理頁幀的基地址的高16位 |
圖15.31說明了基于大頁表的地址變換過程。
圖15.31基于大頁表的地址變換過程
(9)小頁表描述符及其地址變換過程
如果二級頁表項bits[1∶0]=0b10,說明該頁表項為小頁表項,它不僅包含了一個4KB物理存儲塊基地址,同時還含有4組權限位域以及頁的Cache和寫緩存屬性。每一組訪問權限域代表虛存頁的1/4,這些頁表項可以看成是1KB子頁,以更好的控制4KB頁的訪問權限。
頁表項的具體定義如表15.27所示。
表15.27 小頁表項中各字段含義
字段 | 含義 |
bits[1:0] | 小頁表項類型標識符 |
bits[3:2] | Cache和寫緩存屬性 |
bits[11:4] | 訪問權限控制位,具體編碼見表15.22。 一個小頁分為4個子頁 AP0子頁0的訪問權限 AP1子頁1的訪問權限 AP2子頁2的訪問權限 AP3子頁3的訪問權限 |
bits[15:12] | 當前未使用,應為0 |
bits[31:16] | 該小頁對應的物理頁幀的基地址的高20位 |
圖15.32說明了基于小頁表的地址變換過程。
圖15.32基于小頁表的地址變換過程
(10)微頁表描述符及其地址變換過程
如果二級頁表項bits[1∶0]=0b11,該二級頁表項是微頁表項,它提供了一個1KB物理存儲塊的基地址,同時含有一個訪問權限位域以及頁的Cache和寫緩存屬性。微頁表項的具體含義如表15.28所示。
表15.28 微頁表項中各字段含義
字段 | 含義 |
bits[1:0] | 微頁表項類型標識符 |
bits[3:2] | Cache和寫緩存屬性 |
bits[5:4] | 訪問權限控制位,具體編碼見表15.29 |
bits[9:6] | 當前未使用,應為0 |
bits[31:10] | 該微頁對應的物理頁幀的基地址的高22位 |
圖15.33說明了基于微頁表的地址變換過程。
圖15.33基于微頁表的地址變換過程
存儲器相關文章:存儲器原理
評論