第2章ARM處理器和架構_第1頁
第2章ARM處理器和架構_第2頁
第2章ARM處理器和架構_第3頁
第2章ARM處理器和架構_第4頁
第2章ARM處理器和架構_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章ARM處置器和架構提綱1、ARM處置器概述2、ARM9處置器架構3、ARM9處置器內(nèi)存管理4、ARM9異常處置ARM是什么?1、ARM處置器概述ARM公司簡介ARM公司總部位于英國劍橋,全稱AdvancedRISC〔ReducedInstructionSetComputer即精簡指令集計算機〕MachinesARM公司是apple、nokia、Acorn、VLSI、Technology等公司的合資企業(yè)。獨特的知識產(chǎn)權〔IP〕授權方式,本身不直接從事芯片消費,靠轉讓設計答應由協(xié)作公司消費各具特征的芯片。超越200家協(xié)作同伴,包括Intel,IBM,SONY,NEC等ARM設計了大量高性能、廉價、耗能低的RISC處置器、相關技術及軟件。ARM產(chǎn)品簡介ARM處置器ARM處置采用RISC架構,具有高性能、低本錢、低耗能、協(xié)作同伴眾多等特點運用范圍極廣,包括消費電子、工業(yè)控制、通訊系統(tǒng)、網(wǎng)絡系統(tǒng)、軍工工程ARM系列產(chǎn)品ARM7系列ARM9系列ARM9E系列ARM10E系列ARM11系列SecurCore系列Intel的StrongARMIntel的Xscale1.2ARM指令集體系構造版本〔1〕ARM主要采用32位指令集,占據(jù)了32位RISC處置器80%的市場。2021年,ARM的客戶報告了79億ARM處置器出貨量,占有95%的智能手機,90%的硬盤驅動器,40%的數(shù)字電視和機頂盒,15%的單片機,和20%的挪動電腦。從成立至今,總共推出了7個版本的體系構造,不僅引入了Thumb16位指令集,而且在性能上也不斷提高。1.2ARM指令集體系構造版本〔2〕V1版本該版本并未商業(yè)化,而只在原型機ARM1上出現(xiàn)過尋址空間為64M只提供根本的數(shù)據(jù)處置指令,甚至不包含乘法指令提供基于字節(jié)、字、多字的Load/store存儲器訪問指令子程序調(diào)用指令〔BL〕和鏈接指令完成操作系統(tǒng)調(diào)用的軟件中斷指令SWI1.2ARM指令集體系構造版本V2版本是V1版本的擴展,它還包括一個擴展版本v2a。ARM2采用了v2版本,而ARM3那么是v2a架構。支持乘法指令和乘加指令支持協(xié)處置器操作指令對于快中斷〔FIQ〕提供影子存放器支持支持SWP和SWPB指令1.2ARM指令集體系構造版本〔3〕V3版本是ARM被大規(guī)模運用的開場地址空間擴展到32位,而且向前兼容〔除了v3g子版本以外〕26位的地址空間添加CPSR〔CurrentProgramStatusRegister,當前程序形狀存放器〕和SPSR〔SavedProgramStatusRegister,備份程序形狀存放器〕添加了兩條指令:MRS指令和MSR指令添加了中止(Abort)和未定義兩種異常方式改良了從異常前往的指令1.2ARM指令集體系構造版本〔4〕V4版本是被最廣泛運用的ARM體系構造ARM7、ARM9、StrongARM都采用v4架構引入了Thumb形狀添加了系統(tǒng)方式添加了對有符號、無符號半字和有符號字節(jié)的存/取指令1.2ARM指令集體系構造版本〔5〕v5版本ARM9E、ARM10和XScale都采用v5架構。提高了ARM指令集和Thumb指令集的混合運用的效率添加了前導零計數(shù)〔CLZ〕指令引入了軟件斷點(BKPT)指令添加了數(shù)字信號處置指令〔v5TE版〕1.2ARM指令集體系構造版本〔6〕v6版本ARM11處置器采用V6版本具備高性能定點DSP功能引入全新Jazelle技術支持SIMD〔SingleInstructionMultipleData,單指令流多數(shù)據(jù)流〕技術v6支持多微處置器內(nèi)核1.2ARM指令集體系構造版本〔7〕v7版本是目前為止ARM處置器體系構造的最高版本定義了三大系列:“A〞,〞R〞,〞M〞采用了Thunmb-2技術采用NEON技術,即進階SIMD延伸集支持改良的浮點運算支持改良的運轉環(huán)境,以迎合不斷添加的JIT〔JustInTime〕和DAC〔DynamicAdaptiveCompilation〕技術的運用1.2ARM指令集體系構造版本〔8〕2021年10月ARM終于宣布了本人的第一個64位指令集處置器架構“ARMv8〞,引入了一個全新指令集A64。目前的ARMv7架構的主要特性都將在ARMv8架構中得以保管或進一步拓展iphone5s采用A7處置器,A7是全球首款被用于智能手機上的ARM架構64位處置器1.3ARM微處置器系列ARM微處置器以及授權廠商基于ARM體系構造設計的微處置器如今主要有下面幾個系列:ARM7系列,ARM9系列,ARM9E系列,ARM10E系列,ARM11系列,Cortex系列,SecurCore系列,StrongARM系列和XScale系列。其中ARM7、ARM9、ARM9E和ARM10為4個通用途置器系列,每一個系列都提供一套相對獨特的性能來滿足不同運用領域的需求。SecurCore系列專門為平安要求較高的運用設計ARM系列微處理器核特點ARM7ARM7TDMI:整數(shù)處理核ARM7TDMI處理器的可綜合版本;ARM720T:帶MMU的處理器核心,支持操作系統(tǒng);ARM7EJ-S:帶有DSP和JazelleTM技術,能夠實現(xiàn)Java加速功能馮

諾伊曼體系結構;3級流水線成熟的大批量的低功耗的32位RISC處理器,適用于價位低、功耗低的消費類應用。支持16位Thumb指令集典型處理速度為0.9MIPS/MHz,常見的系統(tǒng)主時鐘為20MHz到133MHz指令系統(tǒng)與ARM9系列、ARM9E系列和ARM10系列兼容主頻最高可達到130MHzARM9ARM920T:帶有獨立的16KB數(shù)據(jù)和指令Cache;ARM922T:帶有獨立的8位KB數(shù)據(jù)和指令Cache;ARM940T–包括更小數(shù)據(jù)和指令Cache和一個MPU5級流水線可在0.18μm、0.15μm和0.13μm工藝的硅芯片上實現(xiàn)。支持數(shù)據(jù)Cache和指令Cache增加對32位ARM指令集的支持提供全性能的MMU(MemoryManagementUnit),支持WindowsCE、Linux、PalmOS等多種主流嵌入式操作系統(tǒng)典型處理速度為1.1MIPS/MHzARM9EARM926EJ-S:Jazelle技術,有MMU,可配置的數(shù)據(jù)和指令Cache,TCM接口;ARM946E-S:可配置的數(shù)據(jù)和指令Cache及TCM;ARM966E-S:針對要求高性能和低功耗的可預測的指令執(zhí)行時間的硬實時應用設計ARM968E-S:最小、功耗最小的

ARM9E系列處理器,針對嵌入式實時應用設計;5級流水線ARM9E是針對微控制器、DSP和Java的單處理器解決方案;ARM

Jazelle

技術提供8倍的Java加速性能(ARM926EJ-S);可在0.18μm,0.15μm,0.13μm工藝的硅芯片上實現(xiàn)。使用單一的處理器內(nèi)核,減少了芯片的面積和系統(tǒng)的復雜程度,在0.13μm工藝下最高性能可達到300MIPS(Dhrystone2.1測試標準);支持32位ARM指令集和16位Thumb指令集支持VFP9浮點處理協(xié)處理器增強的DSP處理能力,很適合于那些需要同時使用DSP和微控制器的應用場合

ARM10EARM1020E:帶DSP指令集,在片調(diào)試功能,獨立的32KB數(shù)據(jù)和指令Cache,MMU支持;ARM1022E:與ARM1020E相同,只是獨立的數(shù)據(jù)和指令Cache變?yōu)?6KB;ARM1026EJ-S:同時具有MPU和MMU,可綜合版本;6級流水線;對于3D圖形運算和實時控制采用VFP協(xié)處理器,浮點運算性能最高可達650MFLOPS;優(yōu)化的緩存結構提高了處理器訪問低速存儲器的性能;可在0.18μm,0.15μm,0.13μm工藝的硅芯片上實現(xiàn),在0.13μm工藝下最高性能可達到430MIPS典型處理速度為1.25MIPS/MHz采用了兩種先進的節(jié)能方式ARM11ARM11MPCore:可綜合的多處理器核,1至4個處理器可配置;ARM1136J(F)-S:可配置的數(shù)據(jù)和指令Cache,可提供1.9位的MPEG4編碼加速功能;ARM1156T2(F)-S:帶集成浮點協(xié)處理器,帶內(nèi)存保護單元MPU

;ARM1176JZ(F)-S:帶針對CPU和系統(tǒng)安全架構擴展的TrustZone技術。8級流水線增強的Thumb、Jazelle、DSP擴展支持在0.13μm工藝下最高可達到550MHz支持多媒體指令允許用戶在向要求授權時選擇是否包括浮點處理器內(nèi)核媒體處理能力強,功耗低,特別適合用于無線和消費類電子產(chǎn)品高數(shù)據(jù)吞吐量和高性能適合網(wǎng)絡應用高實時性,能夠滿足高端的嵌入式實時應用系統(tǒng)SecurCoreSC100:第一個32位安全處理器;、SC110:在SC100上增加密鑰協(xié)處理器;SC200:帶Jazelle技術的高級安全處理器;SC210:在SC200上增加密鑰協(xié)處理器SecurCore是專門為智能卡、安全IC提供的32位安全處理器,為電子商務、銀行、網(wǎng)絡、移動多媒體、公共交通提供安全解決方案;體積小、功耗低,代碼壓縮密度高;為快速增長的Java卡平臺提供Java加速功能;提供了完善的32位RISC技術的安全解決方案帶有靈活的保護單元,以確保操作系統(tǒng)和應用數(shù)據(jù)的安全采用軟內(nèi)核技術,防止外部對其進行掃描探測可集成用戶自己的安全特性和其他協(xié)處理器CortexCortex-A:面向應用的微處理器,針對復雜操作系統(tǒng)和應用程序設計;Cortex-R:針對實時系統(tǒng)的嵌入式處理器;Cortex-M:針對成本敏感應用優(yōu)化的深度嵌入式處理器;2004年發(fā)布,提供增強的媒體和數(shù)字處理能力,增加了系統(tǒng)性能;支持ARM、Thumb、Thumb-2指令集;Thumb-2指令集提供了更高的代碼存儲密度,進一步降低成本;分為三個系列:Cortex-A、Cortex-R和Cortex-MCortex-A面向高性能應用,它具有長達13級的流水線,并且可以支持1-4個核Cortex-R面向具有高實時性要求的應用,通常應用于專用集成電路(ASIC),仍然采用8級流水線Cortex-M是全球微控制器的標準,面向對能耗和價格有較高要求的用戶,采用低延遲的3級流水線Intel系列StrongARM:ARMv4體系XScale:ARMv5TE體系,增加MMX指令StrongARM主要應用于手持設備和PDA,5級流水線,具有獨立的數(shù)據(jù)和指令Cache,不支持Thumb指令集,目前已停產(chǎn);由DEC公司設計的,后來在1997年賣給了Intel公司主要有四個型號:SA-110,SA-1100,SA-1110和SA-1500XScale是目前Intel公司主推的高性能嵌入式處理器,分通用處理器、網(wǎng)絡處理器和I/O處理器三類。被廣泛應用于智能手機、PDA領域。全性能、高性價比、低功耗的處理器支持16位的Thumb指令和DSP指令集1.3ARM微處置器系列x86架構與ARM架構對比〔1〕X86ARM體系結構CISCRISC代表公司Intel、AMDNvidia、高通、三星、TI、Marvell、MTK、蘋果寄存器X86指令集只有8個通用寄存器4個數(shù)據(jù)寄存器(EAX、EBX、ECX和EDX),2個變址和指針寄存器(ESI和EDI),2個指針寄存器(ESP和EBP)6個段寄存器(ES、CS、SS、DS、FS和GS),1個指令指針寄存器(EIP),1個標志寄存器(EFlags)37個32位寄存器,其中31個通用寄存器,6個狀態(tài)寄存器x86架構與ARM架構對比〔2〕X86ARM指令格式X86指令的長度是不定的,而且有幾種不同的格式,結果造成X86CPU的解碼工作非常復雜每條指令的長度都是相同的內(nèi)存訪問X86指令可訪問內(nèi)存地址使用LOAD/STORE模式,只有LOAD和STORE指令才能從內(nèi)存中讀取數(shù)據(jù)到寄存器,所有其他指令只對寄存器中的操作數(shù)計算指令集龐大的指令集精簡的指令集成本高低功耗高低x86架構與ARM架構對比〔3〕X86ARM擴展部件的限制X86指令對于各種擴展部件的限制是十分不利的可以支持豐富的擴展部件流水線方面X86指令集的執(zhí)行需要調(diào)用微代碼的一個微程序,在執(zhí)行速度上不如ARM指令集ARM指令的處理過程被拆分成幾個更小的、能夠被流水線并行執(zhí)行的單元。在理想情況下,流水線每周期前進一步,可獲得最高的吞吐率能耗基于X86的CPU在空閑時的表現(xiàn)一般,但在計算密集型工作負載中開始表現(xiàn)出出色的能力基于ARM的CPU在空閑時的表現(xiàn)非常好,但在計算密集型工作負載中開始需要更多的能源在一般應用程序上,我們很難看出x86和ARM架構間的區(qū)別,但在面對復雜任務比如編碼、解碼時,x86架構的優(yōu)勢就顯現(xiàn)出來了x86架構與ARM架構對比〔4〕x86架構與ARM架構對比〔5〕這是首款采用英特爾AtomZ2580處置器的手機,X86架構只需不調(diào)用額外的內(nèi)容,程序普通都不會出現(xiàn)兼容性問題。在評測中發(fā)現(xiàn),同等條件下聯(lián)想K900機身發(fā)熱高于其他手機,電池續(xù)航時間相對于其他幾款手機略顯短隨著RISC處置器在嵌入式領域中大放異彩,傳統(tǒng)的X86系列CISC處置器在Intel公司的積極改良下也抑制了功耗過高的問題,成為一些高性能嵌入式設備的最正確選擇x86架構與ARM架構對比〔6〕1ARM2X863X86和ARM開展到今天,CISC與RISC之間的界限曾經(jīng)不再是那么涇渭清楚,RISC本身的設計正在變得越來越復雜,例如:允許一些特定指令的執(zhí)行周期數(shù)字可變,以降低功耗,減小面積和代碼尺寸?!伯斎徊⒉皇峭耆乐鳦ISC的思緒變復雜〕,由于一切實踐運用的CPU都需求不斷提高性能,所以在體系構造中參與新特點就在所難免。另一方面,原來被以為是CISC體系構造的處置器也吸收了許多RISC的優(yōu)點,比如Pentium處置器在內(nèi)部的實現(xiàn)中也是采用的RISC的架構,復雜的指令在內(nèi)部由微碼分解為多條精簡指令來運轉,但是對于處置器外部來說,為了堅持兼容性還是以CISC風格的指令集展現(xiàn)出來。1.3ARM微處置器系列產(chǎn)量最大的低端電子產(chǎn)品,假設運用ARM公司的處置器授權內(nèi)核,大都采用ARM9內(nèi)核,而ARM9內(nèi)核,是基于ARMv5架構。比較先進的電子產(chǎn)品,大都采用ARM11內(nèi)核,該內(nèi)核是基于ARMv6架構,2001年發(fā)布。少數(shù)最先進的電子產(chǎn)品,如高檔智能手機,大都采用CortexA8或CortexA9內(nèi)核,該內(nèi)核基于ARMv7架構,2006年發(fā)布。2021年上市的高檔智能手機,將采用ARMv7架構的新產(chǎn)品CortexA152、ARM9處置器架構ARM9處置器系列有兩個分支基于v4版本的ARM9,典型的有ARM9TDMI和ARM922T基于v5TE或v5TEJ架構的ARM9E,典型處置器有ARM9EJ-S和ARM926EJ-S等ARM9E處置器有獨立的指令緩存和數(shù)據(jù)緩存〔ICACHE和DCACHE〕,還有TCM部件〔TightlyCoupledMemory,緊致內(nèi)存〕此外ARM9E還支持ETM9技術〔EmbeddedTraceMacrocell,嵌入式跟蹤宏〕由于ARM9E在運用上更廣,后面關于ARM9的引見主要也是圍繞ARM9E系列2.1ARM9存放器〔1〕37個32位存放器31個屬于通用存放器6個為ARM處置器不同任務方式所設立的公用形狀存放器,形狀存放器雖然也是32位的,但是ARM9只運用了其中的14位6個形狀存放器并不是在恣意時候都能運用的,某些存放器在不同的處置器任務方式下有不同的的訪問權限2.1ARM9存放器〔2〕ARM9處置器方式用戶方式(User)快速中斷方式(FIQ)外部中斷方式(IRQ)管理方式(Supervisor)中止方式(Abort)未定義方式(Undef)系統(tǒng)方式(System)七種方式之間可以相互切換特權方式異常方式2.1ARM9存放器〔3〕用戶模式系統(tǒng)模式管理模式中止模式未定義模式外部中斷模式快中斷模式R0R0R0R0R0R0R0R1R1R1R1R1R1R1R2R2R2R2R2R2R2R3R3R3R3R3R3R3R4R4R4R4R4R4R4R5R5R5R5R5R5R5R6R6R6R6R6R6R6R7R7R7R7R7R7R7

R8R8R8R8R8R8R8_fiqR9R9R9R9R9R9R9_fiqR10R10R10R10R10R10R10_fiqR11R11R11R11R11R11R11_fiqR12R12R12R12R12R12R12_fiq

R13R13R13_svcR13_abtR13_undR13_irqR13_fiqR14R14R14_svcR14_abtR14_undR14_irqR14_fiq

R15R15R15R15R15R15R15

CPSRCPSRCPSRSPSR_svcCPSRSPSR_abtCPSRSPSR_undCPSRSPSR_irqCPSRSPSR_fiq任務方式下ARM存放器的運用R0-R7稱為不分組存放器,方式切換時,必需進展現(xiàn)場維護R8-R12在六種方式切換時,必需求現(xiàn)場維護R8_fiq--R12_fiq在快速中斷方式切換方式時不需求維護R13普通作為棧指針sp,R14被稱為銜接存放器LR。作用有兩點:1、存放當前子程序的前往地址;2、發(fā)生異常時保管該方式基于PC的前往地址R15是程序計數(shù)器pc,用來保管處置器取指的地址6個形狀存放器包括1個當前程序存放器〔CPSR〕和5個備份形狀存放器〔SPSR〕CPSR一切方式通用,SPSR是處置器進入異常方式時用來保管CPSR存放器內(nèi)容的2.1ARM9存放器〔4〕形狀存放器形狀存放器構造32位會被分成四個域:標志位域f(flagfield),PSR[31:24];形狀域s(statusfield),PSR[23:16];擴展域x(extendfield),PSR[15:8];控制域c(controlfield),PSR[7:0]2.1ARM9存放器〔5〕形狀存放器第31位闡明結果的正負;N=1表示結果為負第30位闡明運算結果;Z=1表示運算結果為0第29位表示進位;C=1闡明產(chǎn)生進位第28位,V=1表示結果的符號位發(fā)生了溢出第27位Q是用來指示DSP指令能否溢出第24位J=1闡明處置器處于Jazalle形狀第7、6位是中斷制止位,I=1制止外部中斷;F=1制止快速中斷第5位反響處置器在那種形狀下運轉,T=0處置器在ARM形狀下;T=1處置器運轉在Thumb形狀下第4-0位稱為方式位,用來表示處置器此時所處的方式,值如下:M[4:0]處理器模式M[4:0]處理器模式10000用戶模式10111數(shù)據(jù)訪問中止模式10001快速中斷模式11011未定義指令中止模式10010外部中斷模式11111系統(tǒng)模式10011管理模式其他的組合會使處置器進入一個無法修復的形狀2.2流水線技術和哈佛體系構造〔1〕一條指令的執(zhí)行可以分為1:取指,2:譯碼,3:取操作數(shù),4:執(zhí)行運算,5:存儲器訪問,6結果寫回存放器ARM7采用的是3級流水線取址譯碼存放器、存儲器的讀寫操作,移位操作、ALU操作FETCHDECODEEXECUTEEXECUTE階段任務量大,需求多個時鐘周期,限制了系統(tǒng)性能2.2流水線技術和哈佛體系構造〔2〕周期1周期2周期3周期4周期5 取指譯碼執(zhí)行 取指譯碼執(zhí)行取指譯碼執(zhí)行三級流水線表示圖2.2流水線技術和哈佛體系構造〔3〕ARM9采用5級流水線取指譯碼和讀取存放器操作數(shù)產(chǎn)生ALU運算結果或存儲器地址存儲器讀寫操作結果寫回寄存器FETCHDECODEEXECUTEMEMORYWRITE流水線級數(shù)的添加減少了每條指令的平均執(zhí)行周期;充分流水化,減少了流水線的停頓2.2流水線技術和哈佛體系構造〔4〕周期1周期2周期3周期4周期5周期6周期7FETCHDECODEEXECUTEMEMORYWRITEFETCHDECODEEXECUTEMEMORYWRITEFETCHDECODEEXECUTEMEMORYWRITE FETCHDECODEEXECUTEMEMORY2.2流水線技術和哈佛體系構造〔5〕2.2流水線技術和哈佛體系構造〔6〕馮·諾依曼體系將數(shù)據(jù)和指令全部存儲在同一個存儲器中,大多數(shù)的計算機采用。包括ARM7哈佛體系中,指令存儲和數(shù)據(jù)存儲是分開的,指令的存取和數(shù)據(jù)的存取經(jīng)過不同的數(shù)據(jù)總線進展指令存放器控制器數(shù)據(jù)通道輸入輸出中央處置器存儲器程序指令0指令1指令2指令3指令4數(shù)據(jù)數(shù)據(jù)0數(shù)據(jù)1數(shù)據(jù)2馮·諾依曼體系構造〔ARM7〕2.2流水線技術和哈佛體系構造〔7〕2.2流水線技術和哈佛體系構造〔8〕指令存放器控制器數(shù)據(jù)通道輸入輸出CPU程序存儲器指令0指令1指令2數(shù)據(jù)存儲器數(shù)據(jù)0數(shù)據(jù)1數(shù)據(jù)2地址指令地址數(shù)據(jù)哈佛體系構造〔ARM9以后〕2.3CP15協(xié)處置器(1)協(xié)處置器需求專門的協(xié)處置器指令來操作ARM可以支持16個協(xié)處置器CP15協(xié)處置器,即系統(tǒng)控制協(xié)處置器(SystemControlCoprocessor)是非常重要的協(xié)處置器用來配置和控制緩存,緊耦合存儲器(TCM),內(nèi)存管理單元(MMU),時鐘方式等CP15提供了16個額外的存放器CP15協(xié)處置器(2)

寄存器名稱讀/寫C0ID編碼寄存器(IDCode)只讀C0緩存類型寄存器(Cachetype)只讀C0TCM寄存器(TCMstatus)只讀C1控制寄存器(Control)讀寫C2轉換頁表基址寄存器(TranslationTableBase)讀寫C3域訪問控制寄存器(DomainAccessControl)讀寫C4保留C5數(shù)據(jù)異常狀態(tài)寄存器(Datafaultstatus)讀寫C5指令異常狀態(tài)寄存器(Instructionfaultstatus)讀寫C6異常地址寄存器(FaultAddress)讀寫C7緩存操作寄存器(CacheOperation)讀寫C8TLB操作寄存器(TLBOperation)只寫C9緩存鎖定寄存器(Cachelockdown)讀寫C9TCM區(qū)域寄存器(TCMregion)讀寫C10TLB鎖定寄存器(TLBlockdown)讀寫C11保留C12保留C13快速上下文切換擴展進程ID寄存器(FCSEPID)讀寫C13上下文ID寄存器(ContextID)讀寫C14保留C15測試配置寄存器(Testconfiguration)讀寫寄存器編號基本作用0訪問ID編碼寄存器,緩存類型寄存器,TCM狀態(tài)寄存器1指定啟用或禁用緩存和MMU的配置2保存第一級換頁表的基址3域訪問控制寄存器5訪問異常狀態(tài)寄存器(數(shù)據(jù)異常狀態(tài)寄存器和指令異常狀態(tài)寄存器)6保存當數(shù)據(jù)終止發(fā)生時修改的虛擬地址MVA7控制高速緩存和寫緩存8控制TLB9訪問緩存鎖定寄存器和TCM區(qū)域寄存器10TLB鎖定寄存器決定表遍歷硬件是將TLB項放入主TLB還是鎖定TLB13訪問進程ID寄存器15測試配置寄存器,提供特定設備的測試和調(diào)試操作3、ARM9處置器的內(nèi)存管理內(nèi)存管理單元MMU(MemoryManagementUnit)作用有了MMU,才干運用虛擬內(nèi)存構成:一個或一組芯片組成,普通存在于協(xié)處置器中CPU產(chǎn)生的虛擬地址被先送到MMU中,經(jīng)過一定的映射,轉換為物理地址,然后進展相應的讀寫操作控制內(nèi)存的訪問權限MMU中的地址變換過程:經(jīng)過兩級頁表實現(xiàn)。a)一級頁表中包含有以段為單位的地址變換條目以及指向二級頁表的指針。以段為單位的地址變換過程只需求一級頁表。b)二級頁表中包含有以大頁和小頁為單位的地址變換條目。有一種類型的二級頁表還包含有以微小頁為單位的地址變換條目。以頁為單位的地址變換過程需求二級頁表。

當ARM要訪問存儲器時,MMU先查找TLB〔TranslationLookasideBuffer,旁路轉換緩沖)中的虛擬地址表。假設TLB中沒有虛擬地址的入口,那么轉換表遍歷硬件會從存放在內(nèi)存的轉換表中獲得轉換和訪問器權限。一旦取到,這些信息將被放到TLB中,這時訪問存儲器的TLB入口就拿到了?!?.

C〔高速緩存〕和B〔緩沖〕位被用來控制高速緩存和寫緩沖,并決議能否高速緩存?!布僭O系統(tǒng)中沒有高速緩存和寫緩沖,那么對應的位將被忽略〕

2.

訪問權限和域位用來控制訪問能否被允許。假設不允許,那么MMU將向ARM處置器發(fā)送一個存儲器異常;否那么訪問將被允許進展。

3.

對沒有高速緩存的系統(tǒng)〔包括在沒有高速緩存系統(tǒng)中的一切存儲器訪問〕,物理地址將被用作主存儲器訪問的地址。對有高速緩存的系統(tǒng),在高速緩存沒有選中的情況下,物理地址將被用行取(line

fetch)的地址。假設選中了高速緩存,那么物理地址將被忽略?!?.2ARM9內(nèi)存管理〔1〕 CPU產(chǎn)生的虛擬地址 快速上下文切換擴展FCSE(FastContextSwitchExtension)

MMU

虛擬地址MVAFCSE是MMU的一個附加硬件,位于CPU和MMU之間,它根據(jù)CP15協(xié)處置器的c3的值把虛擬地址轉換為修正的虛擬地址(MVA)保證每個進程的虛擬空間不會有重合,防止在進展進程切換時呵斥虛擬地址到物理地址的重映射3.2ARM9內(nèi)存管理〔2〕訪問轉換表的一級描畫符MVATTBRModifiedVirtualAddressTTBR轉換表基址存放器,即CP15協(xié)處置器的c2存放器。它指向物理內(nèi)存中的轉換表每段描畫1MB的虛擬內(nèi)存,共4096表項,總尋址空間4GB3.2ARM9內(nèi)存管理〔3〕一級描畫符頁表項類型決議位[1:0]段映射在經(jīng)過這一步后便能能得到最后的物理地址。3.2ARM9內(nèi)存管理〔4〕段描畫符格式段描畫符位含義2-63.2ARM9內(nèi)存管理〔5〕D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0域訪問控制存放器C3值含義描述00不允許訪問任何訪問都會產(chǎn)生域錯位01用戶所有訪問需要審核相應的段描述符或頁描述符的訪問權限位(AP)10保留這是一種保留的情況?,F(xiàn)階段它和00情況下是一樣的,即訪問便產(chǎn)生錯誤11管理員所有訪問不必檢測訪問權限位域控制定義3.2ARM9內(nèi)存管理〔6〕APSR特權權限用戶權限0000不允許訪問不允許訪問0010只讀不允許訪問0001只讀只讀0011不可預測不可預測01XX讀寫不允許訪問10XX讀寫只讀11XX讀寫讀寫訪問權限位AP3.2ARM9內(nèi)存管理〔7〕3.2ARM9內(nèi)存管理〔8〕根據(jù)粗頁表訪問大頁面3.2ARM9內(nèi)存管理〔8〕31 1098543210粗頁表描畫符格式Coarsepagetablebaseaddress[31::12]二級描述符的基地址[9][3:2]恒為0[8:5]這些位指定的16個可能的領域之一[4]恒為1[1:0]必須為01,表示這是段粗頁表描述符二級描畫符位含義3.2ARM9內(nèi)存管理〔9〕31 121198543210[1:0]第二級描述符類型00出錯01大頁面描述符,頁表大小為64KB10小頁面描述符,頁表大小為4KB11微小頁面描述符,頁表大小為1KB細頁表格式二級描畫符頁表項類型決議位[1:0]3.2ARM9內(nèi)存管理〔10〕31 16151211109876543210二級描畫符格式位數(shù)描述大頁面小頁面微小頁面[31:16][31:12][31:10]這些位是相應頁表物理地址的基地址[15:12][9:6]恒為0[11:4][11:4][5:4]訪問權限位[3:2][3:2][3:2]C被置1時為寫通模式(write-through)B被置1時為寫回模式(write-back)但C和B同時只能一個被置1[1:0][1:0][1:0]指示二級描述符表象的類型二級描畫符位含義04、ARM9異常異常(Exception)是指任何打斷處置器正常執(zhí)行過程,迫使處置器轉換到特權形狀執(zhí)行特定指令的事件。中斷(Interrupt)是異常的一種,通常情況下會將它與異步異常等同對待,這曾經(jīng)是一種被廣泛采用的用法。4.1ARM9異常〔2〕ARM總共有7種處置器異常:復位(Reset)異常:復位可以經(jīng)過按下復位鍵產(chǎn)生Reset信號實現(xiàn);也可以經(jīng)過指令轉跳到復位異常中斷處置程序實現(xiàn),這種方式稱為軟復位未定義指令(UndefinedInstruction)異常:當處置器或協(xié)處置器不能識別當前指令時,會產(chǎn)生未定義指令中斷軟件中斷(SWI)異常:這是由用戶定義的中斷指令,通常用于提供系統(tǒng)調(diào)用接口4.1ARM9異?!?〕指令預取中止(PrefetchAbort)異常:假設預取指令的地址不存在或不允許訪問,會產(chǎn)生預取中止異常數(shù)據(jù)訪問中止(DataAbort)異常:假設懇求數(shù)據(jù)的地址不存在或不允許訪問,會產(chǎn)生數(shù)據(jù)訪問異常外部中斷懇求(IRQ):IRQ信號被觸發(fā)且CPSR存放器I位清零時會產(chǎn)生該中斷快中斷懇求(FIQ):FIQ信號被觸發(fā)且CPSR存放器F位清零時會產(chǎn)生該中斷4.1ARM9異常〔4〕異常發(fā)生后,處置器會進入5種異常方式中一種并處置該異常復位異常和軟件中斷異常時,處置器進入管理(Supervisor)方式未定義指令異常時,處置器進入未定義(Undef)方式指令預取中止異常和數(shù)據(jù)訪問中止異常時時,處置器進入中止(Abort)方式外部中斷懇求時,處置器進入外部中斷(IRQ)方式快中斷懇求時,處置器進入快中斷(FIQ)方式4.2ARM9異常處置向量表異常向量地址及處置優(yōu)先級向量地址異常優(yōu)先級0x00復位異常10x04未定義指令異常60x08軟件中斷60x0C指令預取中止異常50x10數(shù)據(jù)訪問

溫馨提示

  • 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

提交評論