第6章存儲器系統(tǒng)_第1頁
第6章存儲器系統(tǒng)_第2頁
第6章存儲器系統(tǒng)_第3頁
第6章存儲器系統(tǒng)_第4頁
第6章存儲器系統(tǒng)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、存儲器系統(tǒng)存儲器系統(tǒng)5. 存儲器系統(tǒng)5.1 存儲系統(tǒng)功能概覽存儲系統(tǒng)功能概覽 存儲器映射是預定義的。存儲器映射是預定義的。 CM3的存儲器系統(tǒng)支持所謂的的存儲器系統(tǒng)支持所謂的“位帶位帶”(bit-band)操作。)操作。CM3的存儲器系統(tǒng)支持非對齊訪問和互斥訪問。的存儲器系統(tǒng)支持非對齊訪問和互斥訪問。CM3的存儲器系統(tǒng)支持小端配置和大端配置。的存儲器系統(tǒng)支持小端配置和大端配置。 25. 存儲器系統(tǒng)CM3的的地址空間是地址空間是4GB35.2 存儲器映射存儲器映射GB4 5. 存儲器系統(tǒng)代碼區(qū):程序可以在代碼區(qū)(代碼區(qū):程序可以在代碼區(qū)(512MB););內(nèi)部內(nèi)部SRAM區(qū):大小區(qū):大小512M

2、B,用于讓芯片制造商連接片上的,用于讓芯片制造商連接片上的SRAM,這個區(qū)通過系統(tǒng)總線來訪問。,這個區(qū)通過系統(tǒng)總線來訪問。一個一個1MB的區(qū)間,被稱為的區(qū)間,被稱為“位帶區(qū)位帶區(qū)”。該一個對應的、該一個對應的、32MB的的“位帶別名位帶別名(alias)區(qū)區(qū)”,容納了,容納了8M個個“位變量位變量”。位帶別名區(qū)里面的每個字對應位帶區(qū)的一個比特。位帶別名區(qū)里面的每個字對應位帶區(qū)的一個比特。位帶操作只適用于數(shù)據(jù)訪問,不適用于取指。位帶別名區(qū)。位帶操作只適用于數(shù)據(jù)訪問,不適用于取指。位帶別名區(qū)中的訪問操作是原子的。中的訪問操作是原子的。45.2 存儲器映射存儲器映射5. 存儲器系統(tǒng)片上外設區(qū):一個片

3、上外設區(qū):一個512MB范圍。有一條范圍。有一條32MB的位帶別名,的位帶別名,以便于快捷地訪問外設寄存器,可以方便地訪問各種控制以便于快捷地訪問外設寄存器,可以方便地訪問各種控制位和狀態(tài)位。要注意的是,外設區(qū)內(nèi)不允許執(zhí)行指令。位和狀態(tài)位。要注意的是,外設區(qū)內(nèi)不允許執(zhí)行指令。55.2 存儲器映射存儲器映射5. 存儲器系統(tǒng)片外外設、片外片外外設、片外RAM:兩個:兩個1GB的范圍,分別用于連接外的范圍,分別用于連接外部部RAM和外部設備,它們之中沒有位帶。兩者的區(qū)別在于和外部設備,它們之中沒有位帶。兩者的區(qū)別在于外部外部RAM區(qū)允許執(zhí)行指令,而外部設備區(qū)則不允許。區(qū)允許執(zhí)行指令,而外部設備區(qū)則不

4、允許。 65.2 存儲器映射存儲器映射5. 存儲器系統(tǒng)系統(tǒng)區(qū)系統(tǒng)區(qū)系統(tǒng)級組件,內(nèi)部私有外設總線,外部私有外設總線,以及由系統(tǒng)級組件,內(nèi)部私有外設總線,外部私有外設總線,以及由提供者定義的系統(tǒng)外設。提供者定義的系統(tǒng)外設。私有外設總線有兩條:私有外設總線有兩條: AHB私有外設總線,只用于私有外設總線,只用于CM3內(nèi)部的內(nèi)部的AHB外設(外設(NVIC, FPB, DWT和和ITM)。)。 APB私有外設總線,既用于私有外設總線,既用于CM3內(nèi)部的內(nèi)部的APB設備,也用于內(nèi)設備,也用于內(nèi)核外部設備。核外部設備。CM3允許器件制造商再添加一些片上允許器件制造商再添加一些片上APB外外設到設到APB私

5、有總線上,它們通過私有總線上,它們通過APB接口來訪問。接口來訪問。75.2 存儲器映射存儲器映射 5. 存儲器系統(tǒng)未用的提供商指定區(qū):可通過系統(tǒng)總線來訪問,但是不允未用的提供商指定區(qū):可通過系統(tǒng)總線來訪問,但是不允許在其中執(zhí)行指令。許在其中執(zhí)行指令。85.2 存儲器映射存儲器映射5. 存儲器系統(tǒng) CM3在定義了存儲器映射之外,還為存儲器的訪問規(guī)定了在定義了存儲器映射之外,還為存儲器的訪問規(guī)定了4種屬種屬性,分別是:性,分別是: 可否緩沖可否緩沖(Bufferable) 可否緩存可否緩存(Cacheable) 可否執(zhí)行可否執(zhí)行(Executable) 可否共享可否共享(Sharable) 95

6、.3 存儲器的各種訪問屬性存儲器的各種訪問屬性寫回(Write Back): 寫入的數(shù)據(jù)先逗留在緩存中,待到必要時再落實到最終目的地,用于改善數(shù)據(jù)傳送的效率,減少對訪問主存儲器的訪問操作。 寫通(Write Through): 寫操作“穿透”中途的緩存,直接落入最終的存儲器目的地址中,使寫操作的結果立即生效。5. 存儲器系統(tǒng)1.代碼區(qū)(代碼區(qū)(0 x0000_0000- 0 x1FFF_FFFF)。該區(qū)是可以執(zhí))。該區(qū)是可以執(zhí)行指令的,緩存屬性為行指令的,緩存屬性為 WT(“寫通寫通”,Write Through),),即不可以緩存。此區(qū)允許布設數(shù)據(jù)存儲器。在此區(qū)上的數(shù)據(jù)即不可以緩存。此區(qū)允許

7、布設數(shù)據(jù)存儲器。在此區(qū)上的數(shù)據(jù)操作是通過數(shù)據(jù)總線接口的(讀數(shù)據(jù)使用操作是通過數(shù)據(jù)總線接口的(讀數(shù)據(jù)使用 D-Code,寫數(shù)據(jù)使,寫數(shù)據(jù)使用用 System),且在此區(qū)上的寫操作是緩沖的。),且在此區(qū)上的寫操作是緩沖的。 2.SRAM區(qū)(區(qū)(0 x2000_0000 0 x3FFF_FFFF)。此區(qū)用于片)。此區(qū)用于片內(nèi)內(nèi)SRAM,寫操作是緩沖的,并且可以選擇,寫操作是緩沖的,并且可以選擇WB-WA(Write Back, Write Allocated)緩存屬性。此區(qū)可以執(zhí)行指令,以允許緩存屬性。此區(qū)可以執(zhí)行指令,以允許把代碼拷貝到內(nèi)存中執(zhí)行把代碼拷貝到內(nèi)存中執(zhí)行常用于固件升級等維護工作。常用

8、于固件升級等維護工作。 105.3 存儲器的各種訪問屬性存儲器的各種訪問屬性5. 存儲器系統(tǒng)3.片上外設區(qū)片上外設區(qū)(0 x4000_0000 0 x5FFF_FFFF)。該區(qū)用于片。該區(qū)用于片上外設,因此是不可緩存的,也不可以在此區(qū)執(zhí)行指令。上外設,因此是不可緩存的,也不可以在此區(qū)執(zhí)行指令。 4.外部外部RAM區(qū)的前半段(區(qū)的前半段(0 x6000_0000 - 0 x7FFF_FFFF)。)。該區(qū)可用于布設片上該區(qū)可用于布設片上RAM或片外或片外RAM,可緩存(緩存屬性為,可緩存(緩存屬性為WB-WA),并且可以執(zhí)行指令。),并且可以執(zhí)行指令。 5.外部外部RAM區(qū)的后半段(區(qū)的后半段(0

9、 x8000_0000 0 x9FFF_FFFF)。除了不可緩存。除了不可緩存(WT)外,同前半段。外,同前半段。 115.3 存儲器的各種訪問屬性存儲器的各種訪問屬性5. 存儲器系統(tǒng)6.外部外設區(qū)的前半段外部外設區(qū)的前半段(0 xA000_0000 0 xBFFF_FFFF)。用于。用于片外外設的寄存器,也用于多核系統(tǒng)中的共享內(nèi)存(需要嚴格片外外設的寄存器,也用于多核系統(tǒng)中的共享內(nèi)存(需要嚴格按順序操作,即不可緩沖)。該區(qū)也是個不可執(zhí)行區(qū)。按順序操作,即不可緩沖)。該區(qū)也是個不可執(zhí)行區(qū)。 7.外部外設區(qū)的后半段外部外設區(qū)的后半段(0 xC000_0000 0 xDFFF_FFFF)。目前。目

10、前與前半段的功能完全一致。與前半段的功能完全一致。 8.系統(tǒng)區(qū)系統(tǒng)區(qū)(0 xE000_0000 0 xFFFF_FFFF)。此區(qū)是私有外設和。此區(qū)是私有外設和供應商指定功能區(qū)。此區(qū)不可執(zhí)行代碼。系統(tǒng)區(qū)涉及到很多關供應商指定功能區(qū)。此區(qū)不可執(zhí)行代碼。系統(tǒng)區(qū)涉及到很多關鍵部位,因此訪問都是嚴格序列化的(不可緩存,不可緩沖)鍵部位,因此訪問都是嚴格序列化的(不可緩存,不可緩沖)。而供應商指定功能區(qū)則是可以緩存和緩沖的。而供應商指定功能區(qū)則是可以緩存和緩沖的。 125.3 存儲器的各種訪問屬性存儲器的各種訪問屬性5. 存儲器系統(tǒng) CM3有一個缺省的存儲訪問許可,它能防止使用戶代碼訪有一個缺省的存儲訪問

11、許可,它能防止使用戶代碼訪問系統(tǒng)控制存儲空間,保護問系統(tǒng)控制存儲空間,保護NVIC、MPU 等關鍵部件。當?shù)汝P鍵部件。當沒有配備沒有配備MPU,或配備了,或配備了MPU,但是,但是MPU被除能時,缺省被除能時,缺省訪問許可生效。訪問許可生效。 當一個用戶級訪問被阻止時,會立即產(chǎn)生一個總線當一個用戶級訪問被阻止時,會立即產(chǎn)生一個總線fault。135.4 存儲器的缺省訪問許可存儲器的缺省訪問許可5. 存儲器系統(tǒng)存儲器區(qū)域 地址范圍 用戶級許可權限 代碼區(qū) 0000_0000 1FFF_FFFF 無限制 片內(nèi)SRAM 2000_0000 3FFF_FFFF 無限制 片上外設 4000_0000 5

12、FFF_FFFF 無限制 外部RAM 6000_0000 9FFF_FFFF 無限制 外部外設 A000_0000 DFFF_FFFF 無限制 ITM E000_0000 E000_0FFF 可以讀。對于寫操作,除了用戶級下允許時的stimulus端口外,全部忽略 DWT E000_1000 E000_1FFF 阻止訪問,訪問會引發(fā)一個總線fault FPB E000_2000 E000_3FFF 阻止訪問,訪問會引發(fā)一個總線fault NVIC E000_E000 E000_EFFF 阻止訪問,訪問會引發(fā)一個總線fault。但有個例外:軟件觸發(fā)中斷寄存器可以被編程為允許用戶級訪問。 內(nèi)部PP

13、B E000_F000 E003_FFFF 阻止訪問,訪問會引發(fā)一個總線fault TPIU E004_0000 E004_0FFF 阻止訪問,訪問會引發(fā)一個總線fault ETM E004_1000 E004_1FFF 阻止訪問,訪問會引發(fā)一個總線fault 外部PPB E004_2000 E004_2FFF 阻止訪問,訪問會引發(fā)一個總線fault ROM表 E00F_F000 E00F_FFFF 阻止訪問,訪問會引發(fā)一個總線fault 供應商指定 E010_0000 FFFF_FFFF 無限制 145.4 存儲器的缺省訪問許可存儲器的缺省訪問許可5. 存儲器系統(tǒng)在在 CM3中,有兩個區(qū)中實

14、現(xiàn)了位帶。中,有兩個區(qū)中實現(xiàn)了位帶。一個是一個是SRAM區(qū)的最低區(qū)的最低1MB范圍,第二個則是片內(nèi)外設區(qū)的最范圍,第二個則是片內(nèi)外設區(qū)的最低低1MB范圍。這兩個位帶中的地址除了可以像普通的范圍。這兩個位帶中的地址除了可以像普通的 RAM 一樣使用外,它們還都有自己的一樣使用外,它們還都有自己的“位帶別名區(qū)位帶別名區(qū)”,位帶別名,位帶別名區(qū)把每個比特膨脹成一個區(qū)把每個比特膨脹成一個 32 位的字??赏ㄟ^位帶別名區(qū)訪問位的字。可通過位帶別名區(qū)訪問這些字時,就可以達到訪問原始比特的目的。這些字時,就可以達到訪問原始比特的目的。位帶區(qū):位帶區(qū): 支持位帶操作的地址區(qū)支持位帶操作的地址區(qū) 位帶別名:位帶

15、別名: 對別名地址的訪問最終會變換成對位帶區(qū)的訪問對別名地址的訪問最終會變換成對位帶區(qū)的訪問155.5 位帶操作位帶操作5. 存儲器系統(tǒng)165.5 位帶操作位帶操作5. 存儲器系統(tǒng)舉例:欲設置地址舉例:欲設置地址0 x2000_0000中的比特中的比特2,則使用位帶操,則使用位帶操作的設置過程作的設置過程 寫數(shù)據(jù)到位帶別名區(qū)寫數(shù)據(jù)到位帶別名區(qū)175.5 位帶操作位帶操作5. 存儲器系統(tǒng)舉例:欲設置地址舉例:欲設置地址0 x2000_0000中的比特中的比特2,則使用位帶操,則使用位帶操作的設置過程作的設置過程 從位帶別名區(qū)中讀取比特從位帶別名區(qū)中讀取比特185.5 位帶操作位帶操作5. 存儲器

16、系統(tǒng)舉一個例子:舉一個例子: 1.在地址在地址0 x20000000處寫入處寫入0 x3355AACC 2.讀取地址讀取地址0 x22000008。本次讀訪問將讀取。本次讀訪問將讀取0 x20000000,并提取比特并提取比特2,值為,值為1。 3.往地址往地址0 x22000008處寫處寫0。本次操作將被映射成對地址。本次操作將被映射成對地址0 x20000000的的“讀改寫讀改寫”操作(原子的),把比特操作(原子的),把比特2清清0。 4.現(xiàn)在再讀取現(xiàn)在再讀取0 x20000000,將返回,將返回0 x3355AAC8(bit2已已清零)。清零)。 位帶別名區(qū)的字只有位帶別名區(qū)的字只有LS

17、B有意義。另外,在訪問位帶別名區(qū)時有意義。另外,在訪問位帶別名區(qū)時,不管使用哪一種長度的數(shù)據(jù)傳送指令(字,不管使用哪一種長度的數(shù)據(jù)傳送指令(字/半字半字/字節(jié)),都字節(jié)),都把地址對齊到字的邊界上,否則會產(chǎn)生不可預料的結果。把地址對齊到字的邊界上,否則會產(chǎn)生不可預料的結果。 195. 存儲器系統(tǒng)在位帶區(qū)中,每個比特都映射到別名地址區(qū)的一個字在位帶區(qū)中,每個比特都映射到別名地址區(qū)的一個字這是這是個只有個只有LSB才有效的字。才有效的字。當一個別名地址被訪問時,會先把該地址變換成位帶地址。對當一個別名地址被訪問時,會先把該地址變換成位帶地址。對于讀操作,讀取位帶地址中的一個字,再把需要的位右移到于

18、讀操作,讀取位帶地址中的一個字,再把需要的位右移到LSB,并把,并把LSB返回。對于寫操作,把需要寫的位左移至對應返回。對于寫操作,把需要寫的位左移至對應的位序號處,然后執(zhí)行一個原子的的位序號處,然后執(zhí)行一個原子的“讀改寫讀改寫”過程。過程。 205.5 位帶操作位帶操作5. 存儲器系統(tǒng)215.5 位帶操作位帶操作5. 存儲器系統(tǒng)位帶操作的優(yōu)越性位帶操作的優(yōu)越性 使代碼更簡潔使代碼更簡潔 用于實現(xiàn)共享資源在任務間的用于實現(xiàn)共享資源在任務間的“互鎖互鎖”訪問。訪問。 225.5 位帶操作位帶操作5. 存儲器系統(tǒng)多任務的共享資源必須滿足一次只有一個任務訪問它多任務的共享資源必須滿足一次只有一個任務訪問它亦即所謂的亦即所謂的“原子操作原子操作”。以前的讀改寫需要。以前的讀改寫需要 3 條指條指令,導致這中間留有兩個能被中斷的空當。于是可能會出令,導致這中間留有兩個能被中斷的空當。于是可能會出現(xiàn)紊亂危象:現(xiàn)紊亂危象:23ISR 5

溫馨提示

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

評論

0/150

提交評論