新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM核920T性能優化之MMU

        ARM核920T性能優化之MMU

        作者: 時間:2016-12-02 來源:網絡 收藏



        2步頁表搜索:

        如果MMU搜索的是大小為1KB,4KB,16KB或64KB的頁,則頁表搜索須執行2步才能找到地址轉換數據。

        四.域和訪問權限

        有兩種不同的控制用來管理一個任務的存儲器訪問權限,:域(domain)用于主控制(primay control),頁表中的訪問權限用于次控制(secondary control)。有16種不同的域可以分配給虛存的1MB段,并通過設置L1主頁表項(PTE)中的域的有關位(位域)來分配給一個段。

        當一個域分配給了一個段時,它必須遵守分配給這個域的訪問權限。域的訪問權限在CP15:c3寄存器中分配,它控制處理器核訪問虛存段的能力。16個可用的域,每個域使用CP15:c3寄存器的2位來定義訪問權限,域訪問位取值及對應的意義如下表所列:







        基于頁表的訪問權限。頁表項中的AP位決定該頁的訪問權限。“AP”,“ap3”,“ap2”,“ap1”,“ap0”結合CP15寄存器C1的R/S位,決定如何進行訪問權限檢查。段描述符中的“AP”

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




        五.Cache和寫緩沖


        六.CP15:c1控制寄存器


        七.快速上下文切換擴展



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

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

        下圖是一個快速上下文切換擴展的例子:在一個3任務的多任務環境中,切換前任務1運行,切換后任務2運行。


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 彭山县| 钟山县| 苍山县| 巩留县| 丽江市| 安阳县| 德钦县| 和顺县| 青州市| 京山县| 施秉县| 彩票| 涿州市| 安远县| 邹平县| 射洪县| 林周县| 夹江县| 岳阳市| 监利县| 丰镇市| 平乡县| 志丹县| 柳江县| 岢岚县| 宝清县| 福泉市| 瑞金市| 山阳县| 广宁县| 饶河县| 钟山县| 葵青区| 饶平县| 奉新县| 镇安县| 和林格尔县| 沙田区| 庆元县| 宿州市| 肥城市|