新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM核920T性能優(yōu)化之MMU

ARM核920T性能優(yōu)化之MMU

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



2步頁(yè)表搜索:

如果MMU搜索的是大小為1KB,4KB,16KB或64KB的頁(yè),則頁(yè)表搜索須執(zhí)行2步才能找到地址轉(zhuǎn)換數(shù)據(jù)。

四.域和訪問(wèn)權(quán)限

有兩種不同的控制用來(lái)管理一個(gè)任務(wù)的存儲(chǔ)器訪問(wèn)權(quán)限,:域(domain)用于主控制(primay control),頁(yè)表中的訪問(wèn)權(quán)限用于次控制(secondary control)。有16種不同的域可以分配給虛存的1MB段,并通過(guò)設(shè)置L1主頁(yè)表項(xiàng)(PTE)中的域的有關(guān)位(位域)來(lái)分配給一個(gè)段。

當(dāng)一個(gè)域分配給了一個(gè)段時(shí),它必須遵守分配給這個(gè)域的訪問(wèn)權(quán)限。域的訪問(wèn)權(quán)限在CP15:c3寄存器中分配,它控制處理器核訪問(wèn)虛存段的能力。16個(gè)可用的域,每個(gè)域使用CP15:c3寄存器的2位來(lái)定義訪問(wèn)權(quán)限,域訪問(wèn)位取值及對(duì)應(yīng)的意義如下表所列:







基于頁(yè)表的訪問(wèn)權(quán)限。頁(yè)表項(xiàng)中的AP位決定該頁(yè)的訪問(wèn)權(quán)限。“AP”,“ap3”,“ap2”,“ap1”,“ap0”結(jié)合CP15寄存器C1的R/S位,決定如何進(jìn)行訪問(wèn)權(quán)限檢查。段描述符中的“AP”

控制整個(gè)段(1MB)的訪問(wèn)權(quán)限;大頁(yè)描述符中的每個(gè)“apx”(x為0~3)控制一個(gè)大頁(yè)(64KB)中1/4內(nèi)存的訪問(wèn)權(quán)限,即“ap3”對(duì)應(yīng)大頁(yè)高端的16KB,“ap0”對(duì)應(yīng)大頁(yè)低端的16KB;小頁(yè)描述符與大頁(yè)描述符相似,每個(gè)“apx”控制一個(gè)小頁(yè)(4KB)的1/4內(nèi)存的訪問(wèn)權(quán)限。極小頁(yè)中的“ap”就控制整個(gè)極小頁(yè)1KB的訪問(wèn)權(quán)限。




五.Cache和寫緩沖


六.CP15:c1控制寄存器


七.快速上下文切換擴(kuò)展



快速上下文切換擴(kuò)展FCSE(Fast Context Switch Extension),是MMU中的一個(gè)附加硬件,用于提高ARM嵌入式系統(tǒng)的系統(tǒng)性能。FCSE使得多個(gè)獨(dú)立的任務(wù)可以運(yùn)行在一個(gè)固定的重疊存儲(chǔ)空間中,而上下文切換時(shí)又不需要清理或清除cache,或TLB。如果沒(méi)有FCSE,則從一個(gè)任務(wù)切換到另一個(gè)任務(wù)需要改變虛擬存儲(chǔ)映射。如果涉及兩個(gè)有重疊地址的任務(wù),則保存在cache和TLB中的信息將變?yōu)闊o(wú)效,這樣系統(tǒng)就必須清除cache和TLB中的無(wú)效數(shù)據(jù)。清除這些模塊的過(guò)程使任務(wù)切換增加了很多時(shí)間,因?yàn)閮?nèi)核不僅要清除cache和TLB中的無(wú)效數(shù)據(jù),還要從主存中裝載新的數(shù)據(jù)到cache和TLB。使用FCSE,虛擬存儲(chǔ)管理增加了一次地址轉(zhuǎn)換。FCSE在虛擬地址到達(dá)cache和TLB前,使用一個(gè)特殊的,包含進(jìn)程ID值的重定位寄存器來(lái)修改虛擬地址。把修改之前的虛存地址稱為VA(Virtual Address),把第一次轉(zhuǎn)換之后的地址稱為修改后虛地址MVA(Modified Virtual Address)。這樣,任務(wù)間的切換就不用涉及到改變頁(yè)表,只需簡(jiǎn)單的將新任務(wù)的進(jìn)程ID寫到位于CP15的FCSE進(jìn)程ID寄存器。為了利用FCSE,編譯鏈接所有的任務(wù),使他們都運(yùn)行在虛存的第一個(gè)32MB塊空間,為每個(gè)任務(wù)分配一個(gè)進(jìn)程ID;然后通過(guò)下邊的公式,將每個(gè)任務(wù)放置在修改后虛存的不同32MB分區(qū)中:

MVA = VA +(0x2000000 * 進(jìn)程ID)

下圖是一個(gè)快速上下文切換擴(kuò)展的例子:在一個(gè)3任務(wù)的多任務(wù)環(huán)境中,切換前任務(wù)1運(yùn)行,切換后任務(wù)2運(yùn)行。


關(guān)鍵詞: ARM核920T性能優(yōu)化MM

評(píng)論


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

關(guān)閉