1 / 39

嵌入式系统教案

嵌入式系统教案. 祥寶科技股份有限公司. 2014/9/25. 第五章 ARM 儲存系統. 提纲. ARM 儲存系統概述. 1. ARM 記憶體管理單元. 2. 高速緩衝區和寫緩衝區. 3. 快速上下文切換技術. 4. ARM 儲存系統概述. ARM 儲存系統概述. 與其他中低檔單片機不同, ARM 處理器中一般都包含一個記憶體管理部件,用於對記憶體的管理 。 爲了適應不同的嵌入式應用, ARM 儲存系統的體系結構存在很多差別。簡單的可以使用如單片機系統中使用的平板式地址映射機制即可;而一些複雜的系統中則可能包含多種技術來提供功能強大的儲存系統 。.

terrel
Download Presentation

嵌入式系统教案

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 嵌入式系统教案 祥寶科技股份有限公司 2014/9/25

  2. 第五章ARM儲存系統 提纲 ARM儲存系統概述 1 ARM記憶體管理單元 2 高速緩衝區和寫緩衝區 3 快速上下文切換技術 4

  3. ARM儲存系統概述 ARM儲存系統概述 • 與其他中低檔單片機不同,ARM處理器中一般都包含一個記憶體管理部件,用於對記憶體的管理。 • 爲了適應不同的嵌入式應用, ARM儲存系統的體系結構存在很多差別。簡單的可以使用如單片機系統中使用的平板式地址映射機制即可;而一些複雜的系統中則可能包含多種技術來提供功能強大的儲存系統。

  4. ARM儲存系統概述 ARM所使用的儲存系統技術 • 系統中可能包含多種類型的記憶體件,如FLASH、ROM、SDRAM、SRAM等;而且不同類型的記憶體件要求不同的速度、資料寬度等; • 通過CACHE和WRITE BUFFER技術縮小處理器和儲存系統速度差別,從而提高系統性能; • 記憶體管理單元使用記憶體映射技術實現虛擬空間到真實空間的映射。 • 引入儲存保護機制,增強系統的安全性; • 引入一些機制保證I/O操作映射成記憶體操作後,各種I/O操作能夠得到正確的結果。

  5. ARM儲存系統概述 S3C44B0X記憶體組織示意圖

  6. ARM記憶體管理單元 用於儲存管理的系統控制協處理寄存器CP15 • 在基於ARM的嵌入式系統中,儲存系統通常使用CP15來完成記憶體的大部分管理工作;除了CP15之外,在具體的儲存機制中可能還會用到其他技術如:頁表技術等。 • CP15可以保護16個32位的寄存器,編號0-15。實際上對於某些編號的寄存器可能對應有多個物理寄存器,在指令中指定特定的標誌位元來區分相應的寄存器。

  7. 寄存器編號 基本作用 在MMU中的作用 0 ID編碼(唯讀) ID碼和Cache類型 1 控制位 各種控制位元 2 儲存保護和控制 地址轉換表基底位址 3 儲存保護和控制 域存取控制位元 4 儲存保護和控制 保留 5 儲存保護和控制 記憶體失效狀態 6 儲存保護和控制 記憶體失效位址 ARM記憶體管理單元 CP15寄存器列表-1

  8. 寄存器編號 基本作用 在MMU中的作用 7 快取記憶體和寫緩存 快取記憶體和寫緩存控制 8 儲存保護和控制 TLB控制 9 快取記憶體和寫緩存 快取記憶體鎖定 10 儲存保護和控制 TLB锁定 11 保留 12 保留 ARM記憶體管理單元 CP15寄存器列表-2

  9. 寄存器編號 基本作用 在MMU中的作用 13 進程識別字 進程識別字 14 保留 15 因不同設計而異 因不同設計而異 ARM記憶體管理單元 CP15寄存器列表-3

  10. ARM記憶體管理單元 存取CP15寄存器的指令 • 存取CP15寄存器的指令有如下兩條: • MCR Register -> Coprocessor Register • MRC Coprocessor Register -> Register 注意:這兩條指令只能在系統模式下執行;在用戶模式下執行該指令將引起異常。

  11. ARM記憶體管理單元 MCR 存取CP15 • 指令語法 MCR {cond} p15, <op1>, <Rd>,<CRn>,<CRm>{, <op2>} MCR2 p15, <op1>, <Rd>,<CRn>,<CRm>{, <op2>} • OP1爲輔助運算器將執行的操作的代碼。對於CP15來說,該值必須爲0; • Rd爲源寄存器,其值將被傳送到輔助運算器中;該寄存器不能爲PC; • CRn是輔助運算器的目標寄存器,可以是C0-15;是附加的目標寄存器或源運算元寄存器,用於區分同一編號的不同物理寄存器,當指令中不需要附加資訊時要將C0指定爲CRm; • OP2也提供附加資訊,用於區分同一編號的不同物理寄存器,當指令中不需要附加資訊時,可以省略或者將其置0。

  12. ARM記憶體管理單元 MCR存取CP15示例 MCR P15, 0, R4, C1, C0, 0 • 上述指令從ARM寄存器R4中將資料傳送到輔助運算器CP15的寄存器C1中。其中R4爲ARM寄存器,存放源運算元;C1和C0爲輔助運算器寄存器,爲目標寄存器;操作碼1爲0,操作碼附加資訊也爲0。

  13. ARM記憶體管理單元 MRC存取CP15 • 指令语法 MRC {cond} p15, <op1>, <Rd>,<CRn>,<CRm>{, <op2>} MRC2 p15, <op1>, <Rd>,<CRn>,<CRm>{, <op2>} • OP1爲輔助運算器將執行的操作的代碼。對於CP15來說,該值必須爲0; • Rd爲目標寄存器,指令處理的結果將存放在該寄存器中; • CRn是輔助運算器寄存器,存放第一個源運算元; • CRm是附加的源運算元寄存器,用於區分同一編號的不同物理寄存器,當指令中不需要附加資訊時要將C0指定爲CRm; • OP2也提供附加資訊,用於區分同一編號的不同物理寄存器,當指令中不需要附加資訊時,可以省略或者將其置0。

  14. ARM記憶體管理單元 儲存管理單元MMU的作用 • 實現虛擬位址空間到物理儲存空間的映射; • 記憶體存取許可權的控制; • 設置虛擬儲存空間的緩衝特性。 頁表是實現上述功能的一個重要手段,它實際上是位於記憶體中的一個對照表。

  15. ARM記憶體管理單元 記憶體單元的段頁式管理 • 爲了實現不同層次的管理,系統提供了基於段或頁的記憶體存取方式 • 段(section):由1MB 的記憶體塊構成 • 大頁(large page):由64KB 的記憶體塊構成 • 小頁(small page):由4KB 的記憶體塊構成 • 微頁(tiny page):由1KB 的記憶體塊構成

  16. ARM記憶體管理單元 用於儲存管理的頁表 • 地址變換條目:頁表的每一行對應與虛擬位址空間的一個頁,該行同時保含了該虛擬記憶體頁對應的實體記憶體頁的地址、該頁的存取許可權以及緩衝特性等。我們將頁表中的一行稱爲地址變換條目。 • 頁表存放在記憶體中,系統通常有一個寄存器來保存頁表的基底位址。ARM系統中使用的就是CP15的寄存器C2。 • 快表:從虛擬位址到物理位址的轉換實際上就是查詢頁表的過程。由於程式在執行過程中具有局部性,即在一段時間內只是局限在少數幾個單元,爲了加快頁表的查詢速度,在系統中通常使用一個容量更小、速度更快的記憶體件來保存當前需要存取的位址變換條目,這個容量小的頁表又稱作快表(TLB)。

  17. ARM記憶體管理單元 快表的使用 • 更新:當CPU需要存取記憶體時,首先在TLB中查找需要的位址變換條目。若不存在則在記憶體頁表中查詢,並把查詢的結果添加到TLB中。 • 清除:當記憶體中頁表的內容改變或者使用新的頁表時,TLB中的內容需要清空。CP15的寄存器8用於完成該功能。 • 鎖定:可以將一個位址變換條目鎖定在TLB中,以加快存取速度,CP15的寄存器10用於完成該功能。

  18. ARM記憶體管理單元 域(domain)管理 • 域是段、大頁和小頁的集合。ARM 結構支援16 個域。對域的存取由域存取控制寄存器(CP15的寄存器3 )的兩個位欄位控制。因爲每個欄位對存取對應的域的使能非常迅速,所以整個記憶體區間能很快地交換進出虛擬記憶體。這裏支援2 種域存取方式 • 客户:域的用戶(執行程式,存取資料),被形成這個域的節或頁來監督存取許可權。 • 管理者:控制域的行爲(域中的當前段和頁,對域的存取),不被形成這個域的段或頁來監督存取許可權。 • 一個程式可以是一些域的客戶,也是另外一些域的管理者,同時沒有對其他域的存取許可權。這允許對程式存取不同記憶體資源的非常靈活的記憶體保護。

  19. ARM記憶體管理單元 記憶體存取失效管理 • 當記憶體存取失敗時,MMU單元提供了相應的機制用於處理這種情況。CP15的寄存器5和寄存器6用於完成該功能。

  20. .. RR V I Z F R S B L D P W C A M .. 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ARM記憶體管理單元 寄存器1的MMU 控制位 • M(bit[0]) 使能MMU • 0 = 禁止MMU • 1 = 允许MMU • 在沒有MMU 和保護單元的系統上,這個位應該讀出爲0,並忽略寫。 • A(bit[1])使能對齊錯檢查 • 0 = 禁止 • 1 = 允许

  21. ARM記憶體管理單元 禁止和使能MMU • 下面指令使能MMU MRC P15, 0, R0, C1, 0, 0 OR R0, #1 MCR P15, 0, R0, C1, 0, 0 • 下面指令禁止MMU MRC P15, 0, R0, C1, 0, 0 BIC R0, #1 MCR P15, 0, R0, C1, 0, 0

  22. ARM記憶體管理單元 地址變換過程 • 虛擬儲存空間到物理儲存空間的映射是以記憶體塊爲單位進行的。 • 在MMU中採用兩級頁表實現上述地址映射: • 一級頁表中包含有以段爲單位的地址變換條目以及只想二級頁表的指標。一級頁表實現的地址映射粒度較大; • 二級頁表中包含以大頁和小頁爲單位的地址變換條目。其中一種類型的二級表還包含有極小頁爲單位的地址變換條目。

  23. ARM記憶體管理單元 基於一級頁表的地址變換

  24. ARM記憶體管理單元 一級頁表描述符可能的格式

  25. ARM記憶體管理單元 基於段地址的映射示意圖

  26. 高速緩衝區和寫緩衝區 高速緩衝記憶體和寫緩衝區 • 處理器主頻較高,通常爲幾十兆甚至幾百兆,而一般記憶體(DRAM)的儲存周期爲100~200ns。記憶體的速度嚴重制約著系統的性能。 • 高速緩衝記憶體(cache)是一個硬體部件,對我們來說是透明的。Cache與主記憶體間以塊(cache line)爲單位進行資料交換。 • Cache的存取速度遠遠大於主記憶體的速度,記憶體存取的時間局部性決定了採用Cache後,系統的整體性能可以得到大大提高。

  27. 高速緩衝區和寫緩衝區 Cache的工作原理

  28. 高速緩衝區和寫緩衝區 Cache的工作原理 • 在Cache儲存系統中,把Cache和主存劃分爲相同大小的塊。主存位址可以使用塊號(B)和塊內位址(W)兩部分組成。同樣Cache的位址也可以使用塊號(B)和塊內位址(W)兩部分組成。 • 命中率:當CPU存取記憶體時,通過記憶體地址變換部件把地址變換成cache的塊號和塊內地址,如果變換成功(稱爲cache命中),就用得到的cache地址存取cache,從cache中取數;如果變換失敗,則産生cache失效資訊,並用主記憶體的地址存取主記憶體,同時將包含被存取字在內的一整塊都從主記憶體讀出來,裝入到cache中,但如果這時cache已滿,需要採用適當的替換演算法來更新cache。

  29. 高速緩衝區和寫緩衝區 Cache的地址映象和變換方法 • 位址映象指把主存位址空間映象到cache位址空間,具體說就是把存放在主存中的程式按照某種規則裝入到cache中,並建立主存位址到cache位址之間的對應關係。 • 地址變換是指當程式已經裝入到cache中後(形成位址映象),在實際運行過程中,把主存位址如何變換成cache位址。 • 位址映象和變換是密切相關的,演算法需要統一。但所有方法都將主存和cache劃分爲同樣大小的儲存單元(稱爲塊),在進行變換時都是以塊爲單位。 • 地址映象和變換方法包括:全相聯映象、直接映象、組相聯映象三種方法。

  30. 高速緩衝區和寫緩衝區 地址映象和变换方法-全相联映象方式 • 主存中任意一塊可以映射到cache中的任意一塊的位置上。 • 如果cache的塊容量爲C,主存的塊容量爲M,則兩則之間的映象關係有C*M中,如果採用目錄表來存放這些映象關係,目錄表的容量爲C。

  31. 高速緩衝區和寫緩衝區 地址映象和變換方法-直接映象方式 • 這是最簡單也是最直接的方法。主存中一塊只能映象到cache中的一個特定的塊中。 • 假設主存的塊號爲B,cache的塊號爲b,則他們之間的映象關係可以使用下面的公司表示: b = B mode Cb 其中Cb爲cache的塊容量

  32. 高速緩衝區和寫緩衝區 地址映象和變換方法-組相聯映象方式 • 在這種方式下,把主存和cache按照同樣大小劃分成組,每個組都由相同的塊陣列成。這樣,主存的組數要比cache的組數多; • 主存的組與cache的組之間採用直接映象的方式; • 在兩個對應的組之間採用全相聯映象方式。

  33. 高速緩衝區和寫緩衝區 Cache的分類 • 統一/獨立的資料和指令cache 適應獨立的資料和指令cache,可以在同一個時鐘周期中讀取指令和資料,而不需要雙埠的cache。但這時需要保證指令和資料的一致性。 • 寫回和寫通cache 寫回cache指執行寫操作時,被寫的資料只寫入cache,僅當cache需要被替換時才將資料寫入到實際的記憶體中; 寫通則是在指執行寫操作時,同時向cache和記憶體執行寫操作,從而保證資料的一致性。

  34. 高速緩衝區和寫緩衝區 Cache替換演算法 • 隨機替換演算法和輪轉法 • 隨機替換演算法通過一個亂數發生器産生亂數,用新塊將編號爲該亂數的塊進行替換。 • 輪轉法維護一個邏輯的計數器,利用該計數器依次選擇將要被替換出去的cache塊。

  35. 高速緩衝區和寫緩衝區 儲存系統的一致性問題 • 當引入cache機制後,同一位址的資料可能存在多個副本,分別保存在cache中、寫緩衝區中以及主存中。 • 位址映射關係改變造成的不一致; • 指令cache的資料一致性問題; • DMA造成的不一致問題;

  36. 高速緩衝區和寫緩衝區 Cache的編程介面 • 與cache和寫緩衝區相關的寄存器包括CP15中的寄存器C7、寄存器C9以及寄存器C1中的某些位。 • MCR P15, 0, <Rd>, <C1>, <CRm>, <Op2> • MCR P15, 0, <Rd>, <C7>, <CRm>, <Op2> • MCR P15, 0, <Rd>, <C9>, c0, <Op2> • MRC P15, 0, <Rd>, <C1>, <CRm>, <Op2> • MRC P15, 0, <Rd>, <C7>, <CRm>, <Op2> • MRC P15, 0, <Rd>, <C9>, c0, <Op2>

  37. 快速上下文切換技術 快速上下文切換技術 • 快速上下文切換技術通過修改系統中不同進程的虛擬位址,避免在進行進程間切換時造成的虛擬位址到物理位址的重映射,從而提高系統的性能。

  38. 快速上下文切換技術 快速上下文切換技術原理(FCSE) • 如果兩個進程佔用的虛擬位址空間有重疊,系統在這兩個進程之間進行切換時,必須進行虛擬位址到物理位址的重映射,包括重建TLB ,清除cache,整個工作需要帶來巨大的系統開銷。而快速上下文切換技術的引入避免了這種開銷。 • FCSE位於CPU和MMU之間,他的責任就是將不同進程使用的相同的虛擬位址映射爲不同的虛擬空間,使得在上下文切換時無需重建TLB等。 如果兩個進程使用了同樣的虛擬位址空間,則對CPU而言,兩個進程使用了同樣的虛擬位址空間,FCSE機構對各個進程的虛擬位址進行變換,這樣系統中除了CPU之外的部分看到的是經過上下文切換機構變換後的虛擬位址。

  39. 快速上下文切換技術 快速上下文切換技術原理 • 在ARM系統中,4G的虛擬位址空間被分成128個進程空間塊,每個空間塊中可以包含一個進程,該進程可以使用的虛擬位址空間爲0~0x01ff’ffff。 • 編號爲I的進程空間塊中的進程實際使用的虛擬位址空間爲: (I*0x0200’0000)~( I*0x0200’0000 +0x01ffffff)

More Related