新聞中心

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

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

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

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

        一級頁表和二級頁表的特征如表15.21所示。

        表15.21 一級頁表和二級頁表特征

        類型

        頁表占用的存儲空間

        (單位:KB)

        支持的頁大小

        (單位:KB)

        頁表項數目

        一級頁表

        16

        1024

        4096

        粗二級頁表

        1

        1,4,64

        1024

        細二級頁表

        4

        1,4,64

        256

        (2)傳輸表基地址

        當處理器發出地址請求信號,而其要求的虛擬地址沒有包含在TLB中時,將會初始化一個產生過程。傳輸過程需要的地址轉換表——傳輸表的基地址存放在協處理器寄存器c2中,通過此基地址找到傳輸表,準備一次地址傳輸過程。

        (3)基于一級頁表的地址變換過程

        基于一級頁表的地址變換過程是指從虛擬地址到物理地址的轉換只需要一級頁表就能完成的地址轉換。一級頁表地址轉換過程如圖15.25所示。

        圖15.25一級頁表地址轉換過程

        圖15.25中,CP15寄存器c2中存放的是內存中一級頁表的基地址。因為一級頁表大小為16KB,也就是說,一級頁表是16KB地址對齊的,所以c2中bits[13∶0]=0,bits[31∶14]為內存中頁表基地址。

        CP15的寄存器c2的bits[31∶14]和虛擬地址的bits[31∶20]結合作為一個31位數的高30位值,忽略32位值的最后兩位,可以使用該值從頁表中查到一個4字節的地址頁表項。

        一級頁表支持以下4種類型的頁表項。

        ·1MB段轉換項;

        ·指向細二級頁表的目錄項;

        ·指向粗二級頁表的目錄項;

        ·產生中止異常的錯誤項。

        系統通過頁表項的低兩位bits[1:0]來確定頁表項的類型。頁表項的格式要求二級頁表的地址必須與其頁大小的倍數對齊。一級頁表的各種頁表項的格式如圖15.26所示。

        圖15.26一級頁表項

        如果bits[1:0]=0b10時,該頁表項為段描述符(SectionDescriptor),段描述符定義了對應的1MB的虛擬存儲空間的地址映射關系。

        如果bits[1:0]=0b01時,該頁表項包含了粗二級頁表的物理地址。該粗二級頁表定義了對應的1MB虛擬存儲空間的地址映射關系。它可以實現以大頁和小頁為單位的地址映射。

        如果bits[1:0]=0b11時,該頁表項包含了細二級頁表的物理地址。該細二級頁表定義了對應的1MB虛擬存儲空間的地址映射關系。它可以實現以大頁、小頁和極小頁為單位的地址映射。

        如果bits[1:0]=0b00時,說明此頁表項是一個錯誤頁表項。它將產生一個存儲頁錯誤。錯誤條件會導致預取指令中止或數據中止,這取決于具體的存儲器訪問類型。

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




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

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 塔城市| 黔江区| 阿瓦提县| 尤溪县| 荥经县| 航空| 镇安县| 汉阴县| 毕节市| 灌云县| 静乐县| 平远县| 荥阳市| 宕昌县| 重庆市| 松滋市| 东宁县| 新泰市| 科技| 海城市| 河源市| 昌江| 长泰县| 增城市| 师宗县| 大名县| 宝清县| 泸溪县| 高州市| 从江县| 彭山县| 昌宁县| 揭西县| 河南省| 汝州市| 陈巴尔虎旗| 内黄县| 开原市| 年辖:市辖区| 万山特区| 珠海市|