武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-05 ARM存儲系統(tǒng)_第1頁
武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-05 ARM存儲系統(tǒng)_第2頁
武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-05 ARM存儲系統(tǒng)_第3頁
武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-05 ARM存儲系統(tǒng)_第4頁
武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-05 ARM存儲系統(tǒng)_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、嵌入式系統(tǒng)教案嵌入式系統(tǒng)教案武漢創(chuàng)維特信息技術(shù)有限公司武漢創(chuàng)維特信息技術(shù)有限公司 2022-6-42提綱ARMARM存儲系統(tǒng)概述存儲系統(tǒng)概述快速上下文切換技術(shù)快速上下文切換技術(shù)高速緩沖區(qū)和寫緩沖區(qū)高速緩沖區(qū)和寫緩沖區(qū)ARMARM存儲器管理單元存儲器管理單元第五章 ARM存儲系統(tǒng)3ARM存儲系統(tǒng)概述q 與其他中低檔單片機(jī)不同,ARM處理器中一般都包含一個(gè)存儲器管理部件,用于對存儲器的管理。q 為了適應(yīng)不同的嵌入式應(yīng)用, ARM存儲系統(tǒng)的體系結(jié)構(gòu)存在很多差別。簡單的可以使用向單片機(jī)系統(tǒng)中使用的平板式地址映射機(jī)制即可;而一些復(fù)雜的系統(tǒng)中則可能包含多種技術(shù)來提供功能強(qiáng)大的存儲系統(tǒng)。ARM存儲系統(tǒng)概述4

2、ARM所使用的存儲系統(tǒng)技術(shù)q 系統(tǒng)中可能包含多種類型的存儲器件,如FLASH、ROM、SDRAM、SRAM等;而且不同類型的存儲器件要求不同的速度、數(shù)據(jù)寬度等;q 通過CACHE和WRITE BUFFER技術(shù)縮小處理器和存儲系統(tǒng)速度差別,從而提高系統(tǒng)性能;q 內(nèi)存管理部件使用內(nèi)存映射技術(shù)實(shí)現(xiàn)虛擬空間到物理空間的映射。q 引入存儲保護(hù)機(jī)制,增強(qiáng)系統(tǒng)的安全性;q 引入一些機(jī)制保證I/O操作映射成內(nèi)存操作后,各種I/O操作能夠得到正確的結(jié)果。ARM存儲系統(tǒng)概述5S3C44B0X存儲器組織示意圖ARM存儲器管理單元6用于存儲管理的系統(tǒng)控制協(xié)處理寄存器CP15q 在基于ARM的嵌入式系統(tǒng)中,存儲系統(tǒng)通常

3、使用CP15來完成存儲器的大部分管理工作;除了CP15之外,在具體的存儲機(jī)制中可能還會用到其他技術(shù)如:頁表技術(shù)等。q CP15可以保護(hù)16個(gè)32位的寄存器,編號015。實(shí)際上對于某些編號的寄存器可能對應(yīng)有多個(gè)物理寄存器,在指令中指定特定的標(biāo)志位來區(qū)分相應(yīng)的寄存器。ARM存儲器管理單元7CP15寄存器列表1寄存器編號寄存器編號基本作用基本作用在在MMUMMU中的作用中的作用0 0IDID編碼(只讀)編碼(只讀)IDID碼和碼和CacheCache類型類型1 1控制位控制位各種控制位各種控制位2 2存儲保護(hù)和控制存儲保護(hù)和控制地址轉(zhuǎn)換表基地址地址轉(zhuǎn)換表基地址3 3存儲保護(hù)和控制存儲保護(hù)和控制域訪問

4、控制位域訪問控制位4 4存儲保護(hù)和控制存儲保護(hù)和控制保留保留5 5存儲保護(hù)和控制存儲保護(hù)和控制內(nèi)存失效狀態(tài)內(nèi)存失效狀態(tài)6 6存儲保護(hù)和控制存儲保護(hù)和控制內(nèi)存失效地址內(nèi)存失效地址ARM存儲器管理單元8CP15寄存器列表2寄存器編號寄存器編號基本作用基本作用在在MMUMMU中的作用中的作用7 7高速緩存和寫緩高速緩存和寫緩存存高速緩存和寫緩存控高速緩存和寫緩存控制制8 8存儲保護(hù)和控制存儲保護(hù)和控制TLBTLB控制控制9 9高速緩存和寫緩高速緩存和寫緩存存高速緩存鎖定高速緩存鎖定1010存儲保護(hù)和控制存儲保護(hù)和控制TLBTLB鎖定鎖定1111保留保留1212保留保留ARM存儲器管理單元9CP15寄

5、存器列表3寄存器編號寄存器編號基本作用基本作用在在MMUMMU中的作用中的作用1313進(jìn)程標(biāo)識符進(jìn)程標(biāo)識符進(jìn)程標(biāo)識符進(jìn)程標(biāo)識符1414保留保留1515因不同設(shè)計(jì)而異因不同設(shè)計(jì)而異因不同設(shè)計(jì)而異因不同設(shè)計(jì)而異ARM存儲器管理單元10訪問CP15寄存器的指令q 訪問CP15寄存器的指令有如下兩條:q MCRRegister - Coprocessor Registerq MRCCoprocessor Register - Register1. 注意:這兩條指令只能在系統(tǒng)模式下執(zhí)行;在用戶模式下執(zhí)行該指令將引起異常。ARM存儲器管理單元11MCR 訪問CP15q 指令語法 MCR cond p15,

6、 , , MCR cond p15, , , MCR2 p15, , , MCR2 p15, , , q OP1為協(xié)處理器將執(zhí)行的操作的代碼。對于CP15來說,該值必須為0;q Rd為源寄存器,其值將被傳送到協(xié)處理器中;該寄存器不能為PC;q CRn是協(xié)處理器的目標(biāo)寄存器,可以是C0-15;q CRm是附加的目標(biāo)寄存器或源操作數(shù)寄存器,用于區(qū)分同一編號的不同物理寄存器,當(dāng)指令中不需要附加信息時(shí)要將C0指定為CRm;q OP2也提供附加信息,用于區(qū)分同一編號的不同物理寄存器,當(dāng)指令中不需要附加信息時(shí),可以省略或者將其置0。ARM存儲器管理單元12MCR 訪問CP15示例MCRP15, 0, R4

7、, C1, C0, 0q 上述指令從ARM寄存器R4中將數(shù)據(jù)傳送到協(xié)處理器CP15的寄存器C1中。其中R4為ARM寄存器,存放源操作數(shù);C1和C0為協(xié)處理器寄存器,為目標(biāo)寄存器;操作碼1為0,操作碼附加信息也為0。ARM存儲器管理單元13MRC 訪問CP15q 指令語法 MRC cond p15, , , MRC cond p15, , , MRC2 p15, , , MRC2 p15, , , q OP1為協(xié)處理器將執(zhí)行的操作的代碼。對于CP15來說,該值必須為0;q Rd為目標(biāo)寄存器,指令處理的結(jié)果將存放在該寄存器中;q CRn是協(xié)處理器寄存器,存放第一個(gè)源操作數(shù);q CRm是附加的源操作

8、數(shù)寄存器,用于區(qū)分同一編號的不同物理寄存器,當(dāng)指令中不需要附加信息時(shí)要將C0指定為CRm;q OP2也提供附加信息,用于區(qū)分同一編號的不同物理寄存器,當(dāng)指令中不需要附加信息時(shí),可以省略或者將其置0。ARM存儲器管理單元14存儲管理單元MMU的作用q 實(shí)現(xiàn)虛擬地址空間到物理存儲空間的映射;q 存儲器訪問權(quán)限的控制;q 設(shè)置虛擬存儲空間的緩沖特性。頁表是實(shí)現(xiàn)上述功能的一個(gè)重要手段,它實(shí)際上是位于內(nèi)存中的一個(gè)對照表。ARM存儲器管理單元15存儲器單元的段頁式管理q 為了實(shí)現(xiàn)不同層次的管理,系統(tǒng)提供了基于段或頁的存儲器訪問方式q 段(section):由1MB 的存儲器塊構(gòu)成qq 大頁(large p

9、age):由64KB 的存儲器塊構(gòu)成q 小頁(small page):由4KB 的存儲器塊構(gòu)成1. 微頁(tiny page):由1KB 的存儲器塊構(gòu)成ARM存儲器管理單元16用于存儲管理的頁表q 地址變換條目:頁表的每一行對應(yīng)與虛擬地址空間的一個(gè)頁,該行同時(shí)保含了該虛擬內(nèi)存頁對應(yīng)的物理內(nèi)存頁的地址、該頁的訪問權(quán)限以及緩沖特性等。我們將頁表中的一行稱為地址變換條目。q 頁表存放在內(nèi)存中,系統(tǒng)通常有一個(gè)寄存器來保存頁表的基地址。ARM系統(tǒng)中使用的就是CP15的寄存器C2。q 快表:從虛擬地址到物理地址的轉(zhuǎn)換實(shí)際上就是查詢頁表的過程。由于程序在執(zhí)行過程中具有局部性,即在一段時(shí)間內(nèi)只是局限在少數(shù)幾個(gè)

10、單元,為了加快頁表的查詢速度,在系統(tǒng)中通常使用一個(gè)容量更小、速度更快的存儲器件來保存當(dāng)前需要訪問的地址變換條目,這個(gè)容量小的頁表又稱作快表(TLB)。ARM存儲器管理單元17快表的使用q 更新:當(dāng)CPU需要訪問內(nèi)存時(shí),首先在TLB中查找需要的地址變換條目。若不存在則在內(nèi)存頁表中查詢,并把查詢的結(jié)果添加到TLB中。q 清除:當(dāng)內(nèi)存中頁表的內(nèi)容改變或者使用新的頁表時(shí),TLB中的內(nèi)容需要清空。CP15的寄存器8用于完成該功能。q 鎖定:可以將一個(gè)地址變換條目鎖定在TLB中,以加快訪問速度,CP15的寄存器10用于完成該功能。ARM存儲器管理單元18域(domain)管理q 域是段、大頁和小頁的集合。

11、ARM 結(jié)構(gòu)支持16 個(gè)域。對域的訪問由域訪問控制寄存器( CP15的寄存器3 )的兩個(gè)位字段控制。因?yàn)槊總€(gè)字段對訪問對應(yīng)的域的使能非常迅速,所以整個(gè)存儲器區(qū)間能很快地交換進(jìn)出虛擬存儲器。這里支持2 種域訪問方式q 客戶:域的用戶(執(zhí)行程序,訪問數(shù)據(jù)),被形成這個(gè)域的節(jié)或頁來監(jiān)督訪問權(quán)限。q 管理者:控制域的行為(域中的當(dāng)前段和頁,對域的訪問),不被形成這個(gè)域的段或頁來監(jiān)督訪問權(quán)限。1. 一個(gè)程序可以是一些域的客戶,也是另外一些域的管理者,同時(shí)沒有對其它域的訪問權(quán)限。這允許對程序訪問不同存儲器資源的非常靈活的存儲器保護(hù)。ARM存儲器管理單元19內(nèi)存訪問失效管理q 當(dāng)存儲器訪問失敗時(shí),MMU單元

12、提供了相應(yīng)的機(jī)制用于處理這種情況。CP15的寄存器5和寄存器6用于完成該功能。ARM存儲器管理單元20寄存器1的MMU 控制位q M(bit0) M(bit0) 使能使能MMUMMU 0 = 0 = 禁止禁止MMUMMU 1 = 1 = 允許允許MMUMMUq 在沒有在沒有MMU MMU 和保護(hù)單元的系統(tǒng)上,這個(gè)位應(yīng)該讀出為和保護(hù)單元的系統(tǒng)上,這個(gè)位應(yīng)該讀出為0 0,并忽略寫。并忽略寫。q A(bit1) A(bit1) 使能對齊錯(cuò)檢查使能對齊錯(cuò)檢查 0 = 0 = 禁止禁止 1 = 1 = 允許允許.RRRRV VI IZ ZF FR RS SB BL LD DP PW WC CA AM M

13、.141413131212111110109 98 87 76 65 54 43 32 21 10 0ARM存儲器管理單元21禁止和使能MMUq 下面指令使能MMUMRCP15, 0, R0, C1, 0, 0ORR0, #1MCRP15, 0, R0, C1, 0, 0q 下面指令禁止MMUMRCP15, 0, R0, C1, 0, 0BICR0, #1MCRP15, 0, R0, C1, 0, 0ARM存儲器管理單元22地址變換過程q 虛擬存儲空間到物理存儲空間的映射是以內(nèi)存塊為單位進(jìn)行的。q 在MMU中采用兩級頁表實(shí)現(xiàn)上述地址映射:q 一級頁表中包含有以段為單位的地址變換條目以及只想二級

14、頁表的指針。一級頁表實(shí)現(xiàn)的地址映射粒度較大;1. 二級頁表中包含以大頁和小頁為單位的地址變換條目。其中一種類型的二級表還包含有極小頁為單位的地址變換條目。ARM存儲器管理單元23基于一級頁表的地址變換ARM存儲器管理單元24一級頁表描述符可能的格式ARM存儲器管理單元25基于段地址的映射示意圖ARM存儲器管理單元26高速緩沖存儲器和寫緩沖區(qū)q 處理器主頻較高,通常為幾十兆甚至幾百兆,而一般存儲器(DRAM)的存儲周期為100200ns。存儲器的速度嚴(yán)重制約著系統(tǒng)的性能。q 高速緩沖存儲器(cache)是一個(gè)硬件部件,對我們來說是透明的。Cache與主存儲器間以塊(cache line)為單位進(jìn)

15、行數(shù)據(jù)交換。q Cache的存取速度遠(yuǎn)遠(yuǎn)大于主存儲器的速度,存儲器訪問的時(shí)間局部性決定了采用Cache后,系統(tǒng)的整體性能可以得到大大提高。高速緩沖區(qū)和寫緩沖區(qū)27Cache的工作原理塊 號 B 塊 內(nèi) 地 址主 存 cache 地 址 變 換塊 號 B 塊 內(nèi) 地 址cache 替 換策 略Cache主 存 儲 器命中未 命 中替 換 塊裝 入 塊已滿未滿虛 擬 地 址高速緩沖區(qū)和寫緩沖區(qū)28Cache的工作原理q 在Cache存儲系統(tǒng)中,把Cache和主存劃分為相同大小的塊。主存地址可以使用塊號(B)和塊內(nèi)地址(W)兩部分組成。同樣Cache的地址也可以使用塊號(B)和塊內(nèi)地址(W)兩部分組

16、成。q 命中率:當(dāng)CPU訪問存儲器時(shí),通過存儲器地址變換部件把地址變換成cache的塊號和塊內(nèi)地址,如果變換成功(稱為cache命中),就用得到的cache地址訪問cache,從cache中取數(shù);如果變換失敗,則產(chǎn)生cache失效信息,并用主存儲器的地址訪問主存儲器,同時(shí)將包含被訪問字在內(nèi)的一整塊都從主存儲器讀出來,裝入到cache中,但如果這時(shí)cache已滿,需要采用適當(dāng)?shù)奶鎿Q算法來更新cache。高速緩沖區(qū)和寫緩沖區(qū)29Cache的地址映象和變換方法q 地址映象指把主存地址空間映象到cache地址空間,具體說就是把存放在主存中的程序按照某種規(guī)則裝入到cache中,并建立主存地址到cache

17、地址之間的對應(yīng)關(guān)系。q 地址變換是指當(dāng)程序已經(jīng)裝入到cache中后(形成地址映象),在實(shí)際運(yùn)行過程中,把主存地址如何變換成cache地址。q 地址映象和變換是密切相關(guān)的,算法需要統(tǒng)一。但所有方法都將主存和cache劃分為同樣大小的存儲單元(稱為塊),在進(jìn)行變換時(shí)都是以塊為單位。q 地址映象和變換方法包括:全相聯(lián)映象、直接映象、組相聯(lián)映象三種方法。高速緩沖區(qū)和寫緩沖區(qū)30地址映象和變換方法全相聯(lián)映象方式q 主存中任意一塊可以映射到cache中的任意一塊的位置上。q 如果cache的塊容量為C,主存的塊容量為M,則兩則之間的映象關(guān)系有C*M中,如果采用目錄表來存放這些映象關(guān)系,目錄表的容量為C。高

18、速緩沖區(qū)和寫緩沖區(qū)31地址映象和變換方法直接映象方式q 這是最簡單也是最直接的方法。主存中一塊只能映象到cache中的一個(gè)特定的塊中。q 假設(shè)主存的塊號為B,cache的塊號為b,則他們之間的映象關(guān)系可以使用下面的公司表示:b B mode Cb其中Cb為cache的塊容量高速緩沖區(qū)和寫緩沖區(qū)32地址映象和變換方法組相聯(lián)映象方式q 在這種方式下,把主存和cache按照同樣大小劃分成組,每個(gè)組都由相同的塊數(shù)組成。這樣,主存的組數(shù)要比cache的組數(shù)多;q 主存的組與cache的組之間采用直接映象的方式;q 在兩個(gè)對應(yīng)的組之間采用全相聯(lián)映象方式。高速緩沖區(qū)和寫緩沖區(qū)33Cache的分類q 統(tǒng)一/獨(dú)

19、立的數(shù)據(jù)和指令cache適應(yīng)獨(dú)立的數(shù)據(jù)和指令cache,可以在同一個(gè)時(shí)鐘周期中讀取指令和數(shù)據(jù),而不需要雙端口的cache。但這時(shí)需要保證指令和數(shù)據(jù)的一致性。q 寫回和寫通cache寫回cache指執(zhí)行寫操作時(shí),被寫的數(shù)據(jù)只寫入cache,僅當(dāng)cache需要被替換時(shí)才將數(shù)據(jù)寫入到實(shí)際的存儲器中;寫通則是在指執(zhí)行寫操作時(shí),同時(shí)向cache和存儲器執(zhí)行寫操作,從而保證數(shù)據(jù)的一致性。高速緩沖區(qū)和寫緩沖區(qū)34Cache替換算法q 隨機(jī)替換算法和輪轉(zhuǎn)法q 隨機(jī)替換算法通過一個(gè)隨機(jī)數(shù)發(fā)生器產(chǎn)生隨機(jī)數(shù),用新塊將編號為該隨機(jī)數(shù)的塊進(jìn)行替換。q 輪轉(zhuǎn)法維護(hù)一個(gè)邏輯的計(jì)數(shù)器,利用該計(jì)數(shù)器依次選擇將要被替換出去的cache塊。高速緩沖區(qū)和寫緩沖區(qū)35存儲系統(tǒng)的一致性問題q 當(dāng)引入cache機(jī)制后,同一地址的數(shù)據(jù)可能存在多個(gè)副本,分別保存在cache中、寫緩沖區(qū)中以及主存中。q 地址映射關(guān)系改變造成的不一致;q 指令cache的數(shù)據(jù)一致性問題;1. DMA造成的不一致問題;高速緩沖區(qū)和寫緩沖區(qū)36Cache的編程接口q 與cache和寫緩沖區(qū)相關(guān)的寄存器包括CP15中的寄存器C7、寄存器C9以及寄存器C1中的某些位。q MCR P15, 0, , , , q MCR P15, 0, , ,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論