為了從 ARM710a 和 StrongARM SA-110 等處理器獲得最大性能,必須啟用緩存。例如,應用程序可以通過系統上的底層微內核來完成這項工作。但是,如果沒有這樣的內核,應用程序將不得不自己啟用緩存。
ARM 處理器上使用了兩種主要的緩存系統。這些都是:
內存管理單元(例如 ARM610、ARM710a、SA-110)
保護單元(例如 ARM940T)
本應用筆記提供了一些示例代碼,用于在兩種類型的 ARM 處理器上啟用緩存,并概述了 ARMulator 的 PageTables 模塊。它還討論了:
@armasm@ 和 @tasm@ 中的重復組裝
@armasm@ 和 @tasm@ 條件匯編
@armasm@ 和 @tasm@ 中的宏
帶有 C 編譯器的內聯匯編器
內聯函數
內存管理單元 (MMU)
內存管理單元提供完整的虛擬內存系統。有關更完整的說明,請參閱 ARM 體系結構參考手冊 (ARM DDI 0100)。簡而言之,它使用片外頁表向處理器描述:
虛擬到物理地址映射
訪問權限
緩存和寫緩沖區控制。
支持三種頁面大小(1MB、64kB 和 4kB)。(還提供了 16kB 和 1kB 的子頁面用于訪問控制。)“域”的附加系統用于在多線程環境中提供有效的訪問保護。
例如,該系統允許多個具有按需分頁和交換的虛擬地址空間。UNIX 操作系統的風格已經移植到使用這種內存管理單元的 ARM 計算機上。
該系統的優點是:
以細粒度完全控制內存
基于域的保護
虛擬到物理地址轉換。
主要缺點是它需要內存頁表(如果不啟用 MMU,則無法啟用緩存)。
保護單元 (PU)
保護單元為更嵌入式的環境提供訪問和緩存控制。有關更完整的說明,請參閱 ARM940T 數據表 (ARM DDI 0092)。
簡而言之,保護單元有一組片上寄存器,其中包含以下描述:
訪問權限
最多八個(可編程)內存區域的緩存和寫緩沖區控制。
該系統允許在例如嵌入式應用程序中使用基本的內存保護和緩存控制。
該系統的優點是:
訪問控制完全在片上(不需要任何片外表)
提供四級訪問控制、緩存和寫緩沖區控制
對指令和數據緩存的單獨控制。
缺點是:
區域數量少
區域大小和對齊的限制。
例子
內存布局
盡管兩個系統不同,但都使用協處理器 15 來控制系統。兩個系統都有足夠的通用功能來區分正在使用的系統。例如,考慮圖 1 所示的內存映射。
底部的 16MB 內存被標記為可緩存。這是應用程序代碼和堆的基礎。
緊鄰 2GB 的 1MB 內存也被標記為可緩存,因為這是放置堆棧的地方。
其余內存既不可緩存也不可緩沖。真實系統也可能將該內存標記為“不可訪問”(中止生成)。
編輯:hfy
-
ARM處理器
+關注
關注
6文章
360瀏覽量
41798
發布評論請先 登錄
相關推薦
評論