新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM存儲器之:存儲管理單元MMU

        ARM存儲器之:存儲管理單元MMU

        作者: 時間:2013-09-30 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/257009.htm

        基于細二級頁表的地址變換過程如圖15.29所示。

        (7)基于二級頁表的地址變換過程

        二級頁表有4種可能的頁表項:

        ·定義64KB頁幀屬性的大(Large)頁表項;

        ·定義4KB頁幀屬性的小(Small)頁表項;

        ·定義1KB頁幀屬性的微(tiny)頁表項;

        ·訪問中止異常的錯誤項。

        系統通過頁表項的最低位[1:0]來確定頁表項的類型。二級頁表的頁表項格式如圖15.30所示。

        當bits[1:0]=0b01時,該頁表項為大頁表項,它包含了一個64KB物理存儲塊的基地址。如果頁表是細二級頁表,那么大頁表項將在表中重復64次;如果頁表是粗二級頁表,那么大頁表項將在表中重復16次。

        圖15.29基于細二級頁表的地址變換過程

        圖15.30二級頁表的頁表項格式

        當bits[1:0]=0b10時,該頁表項為小頁表項,它保存一個4KB物理存儲塊的基地址。如果頁表是細二級頁表,那么小頁表項將在表中重復4次;如果頁表是粗二級頁表,那么大頁表項只需在表中出現1次。

        當bits[1:0]=0b11時,該頁表項為微頁表項,它保存一個1KB物理存儲塊的基地址。如果頁表是細二級頁表,那么微頁表項只需在表中重復1次;微頁表項不會出現在粗二級頁表中,如果出現,那么訪問結果不可預知。

        當bits[1:0]=0b00時,該頁表項產生存儲頁訪問錯誤。錯誤條件會導致預取指中止或數據中止,這取決于具體的存儲器訪問類型。

        (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基于微頁表的地址變換過程

        存儲器相關文章:存儲器原理




        關鍵詞: ARM 存儲管理單元 MMU

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 共和县| 沂南县| 三明市| 黑山县| 温泉县| 清水河县| 蓬溪县| 循化| 化隆| 蒲城县| 百色市| 黄浦区| 鄯善县| 东源县| 涟水县| 积石山| 周宁县| 玛多县| 仪征市| 澜沧| 池州市| 广汉市| 大兴区| 永康市| 盐边县| 临夏市| 五常市| 大冶市| 台江县| 疏附县| 新疆| 怀化市| 昂仁县| 金川县| 徐州市| 邹平县| 长岛县| 西丰县| 临城县| 民丰县| 韩城市|