新聞中心

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

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

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

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

        注意

        v6體系結(jié)構(gòu)不包含微頁,如果打算創(chuàng)建一個很容易移植到以后體系結(jié)構(gòu)的系統(tǒng),則建議在該系統(tǒng)中避免使用1KB微頁。

        15.5.6域(domain)和存儲器訪問權(quán)限

        域指的是一些段、大頁或者小頁的集合。編程的中,設(shè)計者最多可以使用16個域,每個域的訪問控制特征由CP15中的c3中的兩位控制。

        CP15中的寄存器c3的格式如圖15.34。

        圖15.34CP15寄存器c3編碼格式

        其中,每兩個位控制一個域的訪問控制特性,其編碼及對應(yīng)的含義如表15.29所示。

        表15.29 域訪問控制字段編碼及含義

        控制位編碼

        訪問類型

        含義

        0b00

        無訪問權(quán)限

        這時訪問該域?qū)a(chǎn)生訪問失效

        0b01

        客戶類型(client)

        根據(jù)頁表中地址變換頁表項的域訪問權(quán)限控制位決定是否允許特定的存儲訪問

        0b10

        保留

        使用該值會產(chǎn)生不可預(yù)知的結(jié)果

        0b11

        管理者權(quán)限(Manager)

        不考慮頁表中頁表項內(nèi)的訪問控制權(quán)限位,所以這種情況下不產(chǎn)生訪問失效

        綜上所述,有兩種不同的控制來管理一個任務(wù)的存儲器訪問權(quán)限。

        ·管理者(manager)用于主控(primarycontrol),不考慮每個段、大頁和小頁的訪問權(quán)限。

        ·客戶(client)使用頁表中的訪問權(quán)限用于次控(secondarycontrol)。

        當(dāng)多個段或者頁從屬于一個域時,這些段或者頁的訪問權(quán)限可以很容易的由域來統(tǒng)一控制。存儲器采用這種管理策略將不同的存儲單元“打包”。

        注意

        即使不使用提供的虛擬存儲功能,仍然可以把這些內(nèi)核用作簡單的存儲保護單元。首先將虛擬存儲空間直接映射到物理存儲空間,然后為每個任務(wù)分配一個不同的域,最后使用這些域來保護睡眠任務(wù)(通過將它們的域訪問設(shè)置成不可訪問)。

        15.5.7與TLB相關(guān)的操作

        (1)清除TLB

        如果操作系統(tǒng)改變了頁表中的數(shù)據(jù),那么緩存在TLB中的轉(zhuǎn)換數(shù)據(jù)可能就不再有效了。存儲器核有一些CP15命令用于清除TLB,從而使TLB中的數(shù)據(jù)作廢。表15.30是一些可用的命令:清除所有TLB數(shù)據(jù),清除指令TLB,清除數(shù)據(jù)TLB,也可以一次只清除一行TLB數(shù)據(jù)。

        表15.30 清除TLB的CP15命令

        命令

        MCR指令

        Rd的值

        支持的內(nèi)核

        使所有TLB無效

        MCRp15,0,Rd,c8,c7,0

        0

        720T、920T、ARM922T、ARM926EJ-S、ARM1022E、ARM1026EJ-S、StrongARM、Xscale

        按行使TLB無效

        MCRp15,0,Rd,c8,c7,1

        要使之無效的虛擬地址

        ARM720T

        使指令TLB無效

        MCRp15,0,Rd,c8,c5,0

        要使之無效的虛擬地址

        ARM920T、ARM922T、ARM926EJ-S、ARM1022E、ARM1026EJ-S、StrongARM、Xscale

        按行使指令TLB無效

        MCRp15,0,Rd,c8,c5,1

        要使之無效的虛擬地址

        ARM920T、ARM922T、ARM926EJ-S、ARM1022E、ARM1026EJ-S、StrongARM、Xscale

        使數(shù)據(jù)TLB無效

        MCRp15,0,Rd,c8,c6,0

        要使之無效的虛擬地址

        ARM920T、ARM922T、ARM926EJ-S、ARM1022E、ARM1026EJ-S、StrongARM、Xscale

        按行使數(shù)據(jù)TLB無效

        MCRp15,0,Rd,c8,c6,1

        要使之無效的虛擬地址

        ARM920T、ARM922T、ARM926EJ-S、ARM1022E、ARM1026EJ-S、StrongARM、Xscale

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




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

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 婺源县| 莱西市| 武城县| 来凤县| 抚顺市| 密云县| 张家港市| 辉县市| 新乡市| 林周县| 马龙县| 永德县| 烟台市| 天长市| 文化| 丽江市| 仙游县| 彝良县| 西平县| 承德县| 瑞丽市| 杭锦旗| 旺苍县| 沙湾县| 安远县| 盐亭县| 天津市| 密山市| 临湘市| 牟定县| 定日县| 麟游县| 武强县| 杭锦旗| 无为县| 榆社县| 牙克石市| 五家渠市| 大荔县| 郓城县| 宁德市|