chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>ARM>ARM存儲(chǔ)管理單元MMU詳解

ARM存儲(chǔ)管理單元MMU詳解

2017-10-17 | rar | 0.4 MB | 次下載 | 1積分

資料介紹

 15.5 存儲(chǔ)管理單元MMU
  在創(chuàng)建多任務(wù)嵌入式系統(tǒng)時(shí),最好有一個(gè)簡單的方式來編寫、裝載及運(yùn)行各自獨(dú)立的任務(wù)。目前大多數(shù)的嵌入式系統(tǒng)不再使用自己定制的控制系統(tǒng),而使用操作系統(tǒng)來簡化這個(gè)過程。較高級(jí)的操作系統(tǒng)采用基于硬件的存儲(chǔ)管理單元MMU來實(shí)現(xiàn)上述操作。
  MMU提供的一個(gè)關(guān)鍵服務(wù)是使各個(gè)任務(wù)作為各自獨(dú)立的程序在其自己的私有存儲(chǔ)空間中運(yùn)行。在帶MMU的操作系統(tǒng)控制下,運(yùn)行的任務(wù)無須知道其他與之無關(guān)的任務(wù)的存儲(chǔ)需求情況,這就簡化了各個(gè)任務(wù)的設(shè)計(jì)。
  MMU提供了一些資源以允許使用虛擬存儲(chǔ)器(將系統(tǒng)物理存儲(chǔ)器重新編址,可將其看成一個(gè)獨(dú)立于系統(tǒng)物理存儲(chǔ)器的存儲(chǔ)空間)。MMU作為轉(zhuǎn)換器,將程序和數(shù)據(jù)的虛擬地址(編譯時(shí)的連接地址)轉(zhuǎn)換成實(shí)際的物理地址,即在物理主存中的地址。這個(gè)轉(zhuǎn)換過程允許運(yùn)行的多個(gè)程序使用相同的虛擬地址,而各自存儲(chǔ)在物理存儲(chǔ)器的不同位置。
  這樣存儲(chǔ)器就有兩種類型的地址:虛擬地址和物理地址。虛擬地址由編譯器和連接器在定位程序時(shí)分配;物理地址用來訪問實(shí)際的主存硬件模塊(物理上程序存在的區(qū)域)。
  15.5.1 MMU概述
  內(nèi)存管理單位MMU對(duì)處理器內(nèi)存提供了很好的管理。這種管理主要是通過一個(gè)叫作傳輸表的數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn)的。這個(gè)傳輸表存在于內(nèi)存中,它有多個(gè)稱為Entry的入口,每個(gè)入口定義了存儲(chǔ)空間的一個(gè)頁,頁的大小從1KB到1MB,同時(shí)定義了這些頁的屬性。
  ARM系統(tǒng)中,MMU主要完成以下工作:
 ?、?虛擬存儲(chǔ)空間到物理存儲(chǔ)空間的映射,它能夠?qū)崿F(xiàn)從虛擬地址到物理地址的轉(zhuǎn)換;
 ?、?存儲(chǔ)器訪問權(quán)限的控制;
 ?、?設(shè)置虛擬存儲(chǔ)空間的緩存特性。
  MMU通過它的協(xié)處理器寄存器來確定傳輸表在內(nèi)存中的位置,并通過這些寄存器來向ARM處理器提供內(nèi)存訪問錯(cuò)誤信息
  從虛擬地址到物理地址的變換過程是查詢傳輸表的過程,由于傳輸表放在內(nèi)存中,這個(gè)查詢過程通常代價(jià)很大。這個(gè)訪問時(shí)間通常是1~2個(gè)內(nèi)存周期。為了減少平均內(nèi)存訪問時(shí)間,ARM結(jié)構(gòu)體系中采用一個(gè)容量更小(通常為8~16個(gè)字)、訪問速度和CPU中通用寄存器相當(dāng)?shù)拇鎯?chǔ)器件來存放當(dāng)前訪問需要的地址變換條目,它是一個(gè)小容量的Cache。這個(gè)小容量的頁表Cache稱為TLB(Translation Lookaside Buffer)。
  注意如果系統(tǒng)中使用數(shù)據(jù)和指令統(tǒng)一存儲(chǔ)系統(tǒng),那么TLB也將是統(tǒng)一的。如果系統(tǒng)是數(shù)據(jù)和指令分開的存儲(chǔ)系統(tǒng),那么TLB也將分為數(shù)據(jù)TLB和指令TLB。
  MMU可以將整個(gè)存儲(chǔ)空間分為最多16個(gè)域(domain)。每個(gè)域?qū)?yīng)一定的內(nèi)存區(qū)域,該內(nèi)存區(qū)域具有相同的訪問控制屬性。MMU中寄存器c3用于控制與域有關(guān)的屬性配置。
  表15.20列出了與MMU有關(guān)的協(xié)處理器寄存器及其作用。
  表15.20 與MMU有關(guān)的協(xié)處理器寄存器
  協(xié)處理器寄存器作 用
  c1中某些位配置MMU中的一些操作
  c2保存內(nèi)存中頁表基地址
  c3設(shè)置域訪問權(quán)限
  c4保留
  c5內(nèi)存訪問失效狀態(tài)標(biāo)準(zhǔn)
  c6內(nèi)存訪問失效時(shí)失效地址
  c8控制與清除TLB內(nèi)容相關(guān)的操作
  c10控制與鎖定TLB內(nèi)容相關(guān)的操作
  15.5.2 MMU與MPU
  在ARM體系結(jié)構(gòu)中,MMU將MPU的功能大大地增加,使系統(tǒng)內(nèi)存管理更加靈活、方便。在MPU中引入了“域”的概念來管理內(nèi)存,而且域是在專用寄存器中設(shè)置的。而MMU將域設(shè)置從寄存器移到了內(nèi)存單位,這樣使域的設(shè)置更加靈活,但同時(shí)也增加了系統(tǒng)訪問時(shí)間。
  另外,除了提供內(nèi)存保護(hù)功能外,MMU還增加了虛擬地址到物理地址的映射。在只有MPU的系統(tǒng)中,每個(gè)任務(wù)被編譯和運(yùn)行在彼此不同的、固定的主存地址空間,每個(gè)任務(wù)只能在一個(gè)進(jìn)程空間中運(yùn)行,任何兩個(gè)任務(wù)都不能在主存中有重疊地址。為了運(yùn)行一個(gè)任務(wù),一個(gè)保護(hù)區(qū)域被設(shè)置在固定地址的程序上,以允許任務(wù)訪問由該區(qū)域定義的一段存儲(chǔ)空間。保護(hù)區(qū)域的放置使得該任務(wù)得以運(yùn)行,而其他任務(wù)空間被保護(hù)。
  而使用MMU中虛擬地址到物理地址的映射功能,即使任務(wù)被編譯、連接、運(yùn)行在主存中有重疊地址的區(qū)域中,它們?nèi)匀豢梢赃\(yùn)行。MMU中對(duì)虛存的支持可使構(gòu)建后的嵌入式系統(tǒng)具有多個(gè)虛擬存儲(chǔ)映射和單個(gè)物理存儲(chǔ)器映射。每個(gè)任務(wù)擁有自己的虛擬存儲(chǔ)器映射,以編譯和連接組成此任務(wù)的代碼和數(shù)據(jù)。內(nèi)核層管理各個(gè)任務(wù)在物理存儲(chǔ)器中的放置,使得它們?cè)谖锢泶鎯?chǔ)器中擁有彼此不同的地址,這個(gè)地址與其設(shè)計(jì)時(shí)的虛擬運(yùn)行地址不一樣。
  15.5.3 內(nèi)存訪問過程
  當(dāng)處理器產(chǎn)生一個(gè)內(nèi)存訪問請(qǐng)求時(shí),將傳輸一個(gè)虛擬地址給MMU,MMU首先遍歷TLB(如果使用分離的存儲(chǔ)系統(tǒng),它將分別遍歷數(shù)據(jù)TLB和指令TLB)。如果TLB中不保護(hù)虛擬地址入口(Entry),那么它將轉(zhuǎn)入保存在內(nèi)存中的傳輸主表,來獲得所有訪問地址的物理地址和訪問權(quán)限。一旦訪問成功,它將新的虛擬地址入口(Entry)信息保存在TLB中,以備下次查詢使用。
  當(dāng)?shù)玫搅说刂纷儞Q入口(Entry)后,將進(jìn)行以下操作:
 ?、?根據(jù)入口(Entry)中的C(cachable)控制位和B(Bufferable)控制位決定是否緩存該內(nèi)存訪問結(jié)果。
 ?、?根據(jù)訪問權(quán)限控制位和域訪問控制位確定該內(nèi)存訪問是否被允許。如果該內(nèi)存訪問不被允許,CP15向ARM處理器報(bào)告存儲(chǔ)訪問中止。
 ?、?對(duì)應(yīng)不允許緩存的存儲(chǔ)訪問,直接得到物理地址訪問內(nèi)存。對(duì)于允許緩存的存儲(chǔ)訪問,如果在Cache命中,則忽略物理地址;如果Cache沒有命中,則使用物理地址訪問內(nèi)存,并把該數(shù)據(jù)塊讀到Cache中。
  圖15.23為帶Cache的MMU存儲(chǔ)訪問示意圖。
  ARM存儲(chǔ)管理單元MMU詳解
  圖15.23 帶Cache的MMU存儲(chǔ)訪問示意圖
  15.5.4 MMU的使能與禁止
  MMU的使能/禁止可以通過CP15寄存器的c1的bit[0]來控制。
  · bit[0]=0,MMU禁止。
  · bit[0]=1,MMU使能。
  下面的例子顯示了典型的MMU使能過程。
  【例15.4】典型的MMU使能過程。
  MRC p15,0,r0,c1,0,0
  ORR r0,#01
  MCR p15,0,r0,c1,0,0
  當(dāng)MMU被禁止時(shí),存儲(chǔ)訪問執(zhí)行下列過程。
 ?、?當(dāng)禁止MMU時(shí),存儲(chǔ)系統(tǒng)是否支持Cache和寫緩存,根據(jù)不同芯片設(shè)計(jì)不同而有所不同(ARM公司將設(shè)計(jì)權(quán)交給芯片廠商)。
  · 如果芯片規(guī)定當(dāng)禁止MMU時(shí)禁止Cache和寫緩存,則存儲(chǔ)訪問不考慮C、B控制位。
  · 如果芯片規(guī)定禁止MMU時(shí)使能Cache和寫緩存,則數(shù)據(jù)訪問被視為無Cache(uncachable)和寫緩存(unbufferable)的,即C=0、B=0。讀取指令時(shí),如果系統(tǒng)是統(tǒng)一的TLB,則C=0;如果使用分開的TLB,則C=1。
  ② 存儲(chǔ)訪問不受權(quán)限控制,MMU也不會(huì)產(chǎn)生存儲(chǔ)訪問中止信號(hào)。
 ?、?所有物理地址和虛擬地址相等,即使用平板存儲(chǔ)模式。
  使能/禁止MMU時(shí)需要注意以下幾個(gè)問題。
  · 在使能MMU之前,正確的傳輸表要在內(nèi)存中事先建立,CP15的相關(guān)寄存器必須完成初始化操作。
  · 如果使用的不是平板存儲(chǔ)模式(物理地址和對(duì)應(yīng)虛擬地址相等),在禁止/使能MMU時(shí),虛擬地址和物理地址的對(duì)應(yīng)關(guān)系發(fā)生變化,這時(shí)應(yīng)該清除(Flush)Cache中的當(dāng)前地址變換入口(Entry)。
  · 如果完成禁止/使能MMU的代碼的物理地址和虛擬地址不同,則禁止/使能MMU將帶來很大麻煩,因此建議完成使能/禁止MMU的代碼的物理地址和虛擬地址相同。
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1電子電路原理第七版PDF電子教材免費(fèi)下載
  2. 0.00 MB  |  1490次下載  |  免費(fèi)
  3. 2單片機(jī)典型實(shí)例介紹
  4. 18.19 MB  |  92次下載  |  1 積分
  5. 3S7-200PLC編程實(shí)例詳細(xì)資料
  6. 1.17 MB  |  27次下載  |  1 積分
  7. 4筆記本電腦主板的元件識(shí)別和講解說明
  8. 4.28 MB  |  18次下載  |  4 積分
  9. 5開關(guān)電源原理及各功能電路詳解
  10. 0.38 MB  |  10次下載  |  免費(fèi)
  11. 6基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
  12. 0.11 MB  |  4次下載  |  免費(fèi)
  13. 7藍(lán)牙設(shè)備在嵌入式領(lǐng)域的廣泛應(yīng)用
  14. 0.63 MB  |  3次下載  |  免費(fèi)
  15. 89天練會(huì)電子電路識(shí)圖
  16. 5.91 MB  |  3次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234313次下載  |  免費(fèi)
  3. 2PADS 9.0 2009最新版 -下載
  4. 0.00 MB  |  66304次下載  |  免費(fèi)
  5. 3protel99下載protel99軟件下載(中文版)
  6. 0.00 MB  |  51209次下載  |  免費(fèi)
  7. 4LabView 8.0 專業(yè)版下載 (3CD完整版)
  8. 0.00 MB  |  51043次下載  |  免費(fèi)
  9. 5555集成電路應(yīng)用800例(新編版)
  10. 0.00 MB  |  33562次下載  |  免費(fèi)
  11. 6接口電路圖大全
  12. 未知  |  30320次下載  |  免費(fèi)
  13. 7Multisim 10下載Multisim 10 中文版
  14. 0.00 MB  |  28588次下載  |  免費(fèi)
  15. 8開關(guān)電源設(shè)計(jì)實(shí)例指南
  16. 未知  |  21539次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935053次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537791次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234313次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233045次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191183次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183277次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138039次下載  |  免費(fèi)