新聞中心

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

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

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

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

        注意

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

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

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

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

        圖15.34CP15寄存器c3編碼格式

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

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

        控制位編碼

        訪問類型

        含義

        0b00

        無訪問權(quán)限

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

        0b01

        客戶類型(client)

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

        0b10

        保留

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

        0b11

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

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

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

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

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

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

        注意

        即使不使用提供的虛擬存儲功能,仍然可以把這些內(nèi)核用作簡單的存儲保護(hù)單元。首先將虛擬存儲空間直接映射到物理存儲空間,然后為每個(gè)任務(wù)分配一個(gè)不同的域,最后使用這些域來保護(hù)睡眠任務(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)閉
        主站蜘蛛池模板: 耒阳市| 隆林| 克拉玛依市| 吴桥县| 芮城县| 乐至县| 青阳县| 江永县| 南乐县| 南投市| 迁安市| 南充市| 读书| 菏泽市| 富源县| 贡嘎县| 曲水县| 北辰区| 永清县| 秦安县| 涿州市| 喀喇沁旗| 肃北| 蓬溪县| 寿宁县| 玛沁县| 屯门区| 上栗县| 绍兴市| 巴里| 中山市| 满城县| 平昌县| 肃南| 平邑县| 饶平县| 邯郸市| 焦作市| 正安县| 佛学| 翼城县|