新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM存儲(chǔ)器之:存儲(chǔ)管理單元MMU

        ARM存儲(chǔ)器之:存儲(chǔ)管理單元MMU

        作者: 時(shí)間:2013-09-30 來(lái)源:網(wǎng)絡(luò) 收藏

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

        (4)段描述符及其地址變換過(guò)程

        如果一級(jí)頁(yè)表頁(yè)表項(xiàng)的bits[1∶0]=0b10,說(shuō)明此頁(yè)表項(xiàng)指向一個(gè)1MB的存儲(chǔ)段。頁(yè)表項(xiàng)的高12位代替虛擬地址的高12位來(lái)產(chǎn)生物理地址。該頁(yè)表項(xiàng)還包含域?qū)傩浴ahche屬性、緩沖器屬性和訪問(wèn)權(quán)限屬性。具體定義如表15.22所示。

        表15.22 段頁(yè)表項(xiàng)中各字段含義

        字段

        含義

        bits[1:0]

        段頁(yè)表項(xiàng)標(biāo)識(shí)

        bits[3:2]

        定義段的Cache和寫緩存屬性

        bit[4]

        生產(chǎn)商定義

        bits[8:5]

        本段所在的域

        bit[9]

        當(dāng)前未被使用,設(shè)置成0

        bits[11:10]

        訪問(wèn)權(quán)限控制AP位,見(jiàn)表15.23

        bits[19:12]

        當(dāng)前未被使用,設(shè)置成0

        bits[31:20]

        該段對(duì)應(yīng)的物理空間基地址的高12位

        表15.23 訪問(wèn)權(quán)限控制位的編碼及其含義

        訪問(wèn)權(quán)限控制AP

        S

        R

        特權(quán)模式

        用戶模式

        0b00

        0

        0

        不可訪問(wèn)

        不可訪問(wèn)

        0b00

        1

        0

        只讀

        不可訪問(wèn)

        0b00

        0

        1

        只讀

        只讀

        0b00

        1

        1

        不可預(yù)知

        不可預(yù)知

        0b01

        X

        X

        讀/寫

        無(wú)訪問(wèn)

        0b10

        X

        X

        讀/寫

        只讀

        0b11

        X

        X

        讀/寫

        讀/寫

        表中S和R位是CP15寄存器c1中的控制位,它們分別對(duì)應(yīng)系統(tǒng)(S)和ROM(R)位。這兩位用來(lái)在不同模式加速系統(tǒng)中訪問(wèn)大的存儲(chǔ)塊。

        設(shè)置S位使得所有頁(yè)具有不可訪問(wèn)權(quán)限,從而允許特權(quán)模式任務(wù)對(duì)頁(yè)有讀訪問(wèn)權(quán)限。因此通過(guò)改變CP15寄存器c1中的一位,所有標(biāo)識(shí)為不可訪問(wèn)的空間一下子變?yōu)榭捎茫恍枰淖兠總€(gè)頁(yè)表項(xiàng)的AP位,節(jié)省了開(kāi)銷。

        改變R位使得所有頁(yè)具有不可訪問(wèn)權(quán)限,因而特權(quán)模式任務(wù)和用戶模式任務(wù)對(duì)頁(yè)都有讀訪問(wèn)權(quán)限。同樣,這一位可以加速對(duì)大塊存儲(chǔ)塊的訪問(wèn),而不需要修改許多頁(yè)表項(xiàng)的值。

        注意

        地址轉(zhuǎn)換過(guò)程中,在物理地址產(chǎn)生之前,將會(huì)按表2.22的編碼對(duì)訪問(wèn)地址的權(quán)限進(jìn)行檢測(cè)。

        基于段的地址變換過(guò)程如圖15.27所示。

        圖15.27基于段的地址變換過(guò)程

        (5)粗二級(jí)頁(yè)表描述符及其地址變換過(guò)程

        如果一級(jí)頁(yè)表項(xiàng)的bits[1∶0]=0b01,說(shuō)明此頁(yè)表項(xiàng)包含一個(gè)粗二級(jí)頁(yè)表首地址指針,同時(shí)還包含一級(jí)頁(yè)表項(xiàng)代表的1MB虛存段的域信息。粗頁(yè)表必須與1KB的倍數(shù)地址對(duì)齊。頁(yè)表項(xiàng)具體定義見(jiàn)表15.24。

        表15.24 粗二級(jí)頁(yè)表項(xiàng)中各字段含義

        字段

        含義

        bits[1:0]

        粗二級(jí)頁(yè)表描述符標(biāo)識(shí)

        bits[4:2]

        生產(chǎn)商定義

        bits[8:5]

        域標(biāo)識(shí)符

        bit[9]

        當(dāng)前未被使用,設(shè)置成0

        bits[31:10]

        粗二級(jí)頁(yè)表基地址,該地址1KB對(duì)齊

        基于粗二級(jí)頁(yè)表的地址變換過(guò)程如圖15.28所示。

        (6)細(xì)二級(jí)頁(yè)表描述符及其地址變換過(guò)程

        如果一級(jí)頁(yè)表項(xiàng)的bits[1:0]=0b11,說(shuō)明此頁(yè)表項(xiàng)包含一個(gè)細(xì)二級(jí)頁(yè)表首地址指針,同時(shí)還包含一級(jí)頁(yè)表項(xiàng)代表的1MB虛存段的域信息。細(xì)頁(yè)表必須與4KB的倍數(shù)地址對(duì)齊。頁(yè)表項(xiàng)具體定義如表15.25所示。

        圖15.28基于粗二級(jí)頁(yè)表的地址變換過(guò)程

        表15.25 細(xì)二級(jí)頁(yè)表項(xiàng)中各字段含義

        字段

        含義

        bits[1:0]

        細(xì)二級(jí)頁(yè)表描述符標(biāo)識(shí)

        bits[4:2]

        生產(chǎn)商定義

        bits[8:5]

        域標(biāo)識(shí)符

        bits[11:9]

        當(dāng)前未被使用,設(shè)置成0

        bits[31:12]

        細(xì)二級(jí)頁(yè)表基地址,該地址4KB對(duì)齊

        存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理




        關(guān)鍵詞: ARM 存儲(chǔ)管理單元 MMU

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 五大连池市| 连城县| 镇平县| 巴里| 济宁市| 雷州市| 图们市| 延边| 滁州市| 长顺县| 高青县| 永宁县| 浪卡子县| 香港| 瑞金市| 涿鹿县| 江华| 象山县| 城固县| 朝阳县| 潮安县| 进贤县| 荔波县| 财经| 德兴市| 兴山县| 邯郸市| 星子县| 高安市| 友谊县| 濮阳市| 黄大仙区| 蒙山县| 旬邑县| 泽普县| 鹤庆县| 英德市| 金寨县| 宝应县| 兰坪| 拉萨市|