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

下載本文檔

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

文檔簡(jiǎn)介

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

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

ARM9E系列處理器,針對(duì)嵌入式實(shí)時(shí)應(yīng)用設(shè)計(jì);5級(jí)流水線ARM9E是針對(duì)微控制器、DSP和Java的單處理器解決方案;ARM

Jazelle

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

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

;ARM1176JZ(F)-S:帶針對(duì)CPU和系統(tǒng)安全架構(gòu)擴(kuò)展的TrustZone技術(shù)。8級(jí)流水線增強(qiáng)的Thumb、Jazelle、DSP擴(kuò)展支持在0.13μm工藝下最高可達(dá)到550MHz支持多媒體指令允許用戶在向要求授權(quán)時(shí)選擇是否包括浮點(diǎn)處理器內(nèi)核媒體處理能力強(qiáng),功耗低,特別適合用于無(wú)線和消費(fèi)類電子產(chǎn)品高數(shù)據(jù)吞吐量和高性能適合網(wǎng)絡(luò)應(yīng)用高實(shí)時(shí)性,能夠滿足高端的嵌入式實(shí)時(shí)應(yīng)用系統(tǒng)SecurCoreSC100:第一個(gè)32位安全處理器;、SC110:在SC100上增加密鑰協(xié)處理器;SC200:帶Jazelle技術(shù)的高級(jí)安全處理器;SC210:在SC200上增加密鑰協(xié)處理器SecurCore是專門(mén)為智能卡、安全I(xiàn)C提供的32位安全處理器,為電子商務(wù)、銀行、網(wǎng)絡(luò)、移動(dòng)多媒體、公共交通提供安全解決方案;體積小、功耗低,代碼壓縮密度高;為快速增長(zhǎng)的Java卡平臺(tái)提供Java加速功能;提供了完善的32位RISC技術(shù)的安全解決方案帶有靈活的保護(hù)單元,以確保操作系統(tǒng)和應(yīng)用數(shù)據(jù)的安全采用軟內(nèi)核技術(shù),防止外部對(duì)其進(jìn)行掃描探測(cè)可集成用戶自己的安全特性和其他協(xié)處理器CortexCortex-A:面向應(yīng)用的微處理器,針對(duì)復(fù)雜操作系統(tǒng)和應(yīng)用程序設(shè)計(jì);Cortex-R:針對(duì)實(shí)時(shí)系統(tǒng)的嵌入式處理器;Cortex-M:針對(duì)成本敏感應(yīng)用優(yōu)化的深度嵌入式處理器;2004年發(fā)布,提供增強(qiáng)的媒體和數(shù)字處理能力,增加了系統(tǒng)性能;支持ARM、Thumb、Thumb-2指令集;Thumb-2指令集提供了更高的代碼存儲(chǔ)密度,進(jìn)一步降低成本;分為三個(gè)系列:Cortex-A、Cortex-R和Cortex-MCortex-A面向高性能應(yīng)用,它具有長(zhǎng)達(dá)13級(jí)的流水線,并且可以支持1-4個(gè)核Cortex-R面向具有高實(shí)時(shí)性要求的應(yīng)用,通常應(yīng)用于專用集成電路(ASIC),仍然采用8級(jí)流水線Cortex-M是全球微控制器的標(biāo)準(zhǔn),面向?qū)δ芎暮蛢r(jià)格有較高要求的用戶,采用低延遲的3級(jí)流水線Intel系列StrongARM:ARMv4體系XScale:ARMv5TE體系,增加MMX指令StrongARM主要應(yīng)用于手持設(shè)備和PDA,5級(jí)流水線,具有獨(dú)立的數(shù)據(jù)和指令Cache,不支持Thumb指令集,目前已停產(chǎn);由DEC公司設(shè)計(jì)的,后來(lái)在1997年賣(mài)給了Intel公司主要有四個(gè)型號(hào):SA-110,SA-1100,SA-1110和SA-1500XScale是目前Intel公司主推的高性能嵌入式處理器,分通用處理器、網(wǎng)絡(luò)處理器和I/O處理器三類。被廣泛應(yīng)用于智能手機(jī)、PDA領(lǐng)域。全性能、高性價(jià)比、低功耗的處理器支持16位的Thumb指令和DSP指令集1.3ARM微處置器系列x86架構(gòu)與ARM架構(gòu)對(duì)比〔1〕X86ARM體系結(jié)構(gòu)CISCRISC代表公司Intel、AMDNvidia、高通、三星、TI、Marvell、MTK、蘋(píng)果寄存器X86指令集只有8個(gè)通用寄存器4個(gè)數(shù)據(jù)寄存器(EAX、EBX、ECX和EDX),2個(gè)變址和指針寄存器(ESI和EDI),2個(gè)指針寄存器(ESP和EBP)6個(gè)段寄存器(ES、CS、SS、DS、FS和GS),1個(gè)指令指針寄存器(EIP),1個(gè)標(biāo)志寄存器(EFlags)37個(gè)32位寄存器,其中31個(gè)通用寄存器,6個(gè)狀態(tài)寄存器x86架構(gòu)與ARM架構(gòu)對(duì)比〔2〕X86ARM指令格式X86指令的長(zhǎng)度是不定的,而且有幾種不同的格式,結(jié)果造成X86CPU的解碼工作非常復(fù)雜每條指令的長(zhǎng)度都是相同的內(nèi)存訪問(wèn)X86指令可訪問(wèn)內(nèi)存地址使用LOAD/STORE模式,只有LOAD和STORE指令才能從內(nèi)存中讀取數(shù)據(jù)到寄存器,所有其他指令只對(duì)寄存器中的操作數(shù)計(jì)算指令集龐大的指令集精簡(jiǎn)的指令集成本高低功耗高低x86架構(gòu)與ARM架構(gòu)對(duì)比〔3〕X86ARM擴(kuò)展部件的限制X86指令對(duì)于各種擴(kuò)展部件的限制是十分不利的可以支持豐富的擴(kuò)展部件流水線方面X86指令集的執(zhí)行需要調(diào)用微代碼的一個(gè)微程序,在執(zhí)行速度上不如ARM指令集ARM指令的處理過(guò)程被拆分成幾個(gè)更小的、能夠被流水線并行執(zhí)行的單元。在理想情況下,流水線每周期前進(jìn)一步,可獲得最高的吞吐率能耗基于X86的CPU在空閑時(shí)的表現(xiàn)一般,但在計(jì)算密集型工作負(fù)載中開(kāi)始表現(xiàn)出出色的能力基于ARM的CPU在空閑時(shí)的表現(xiàn)非常好,但在計(jì)算密集型工作負(fù)載中開(kāi)始需要更多的能源在一般應(yīng)用程序上,我們很難看出x86和ARM架構(gòu)間的區(qū)別,但在面對(duì)復(fù)雜任務(wù)比如編碼、解碼時(shí),x86架構(gòu)的優(yōu)勢(shì)就顯現(xiàn)出來(lái)了x86架構(gòu)與ARM架構(gòu)對(duì)比〔4〕x86架構(gòu)與ARM架構(gòu)對(duì)比〔5〕這是首款采用英特爾AtomZ2580處置器的手機(jī),X86架構(gòu)只需不調(diào)用額外的內(nèi)容,程序普通都不會(huì)出現(xiàn)兼容性問(wèn)題。在評(píng)測(cè)中發(fā)現(xiàn),同等條件下聯(lián)想K900機(jī)身發(fā)熱高于其他手機(jī),電池續(xù)航時(shí)間相對(duì)于其他幾款手機(jī)略顯短隨著RISC處置器在嵌入式領(lǐng)域中大放異彩,傳統(tǒng)的X86系列CISC處置器在Intel公司的積極改良下也抑制了功耗過(guò)高的問(wèn)題,成為一些高性能嵌入式設(shè)備的最正確選擇x86架構(gòu)與ARM架構(gòu)對(duì)比〔6〕1ARM2X863X86和ARM開(kāi)展到今天,CISC與RISC之間的界限曾經(jīng)不再是那么涇渭清楚,RISC本身的設(shè)計(jì)正在變得越來(lái)越復(fù)雜,例如:允許一些特定指令的執(zhí)行周期數(shù)字可變,以降低功耗,減小面積和代碼尺寸?!伯?dāng)然并不是完全依著CISC的思緒變復(fù)雜〕,由于一切實(shí)踐運(yùn)用的CPU都需求不斷提高性能,所以在體系構(gòu)造中參與新特點(diǎn)就在所難免。另一方面,原來(lái)被以為是CISC體系構(gòu)造的處置器也吸收了許多RISC的優(yōu)點(diǎn),比如Pentium處置器在內(nèi)部的實(shí)現(xiàn)中也是采用的RISC的架構(gòu),復(fù)雜的指令在內(nèi)部由微碼分解為多條精簡(jiǎn)指令來(lái)運(yùn)轉(zhuǎn),但是對(duì)于處置器外部來(lái)說(shuō),為了堅(jiān)持兼容性還是以CISC風(fēng)格的指令集展現(xiàn)出來(lái)。1.3ARM微處置器系列產(chǎn)量最大的低端電子產(chǎn)品,假設(shè)運(yùn)用ARM公司的處置器授權(quán)內(nèi)核,大都采用ARM9內(nèi)核,而ARM9內(nèi)核,是基于ARMv5架構(gòu)。比較先進(jìn)的電子產(chǎn)品,大都采用ARM11內(nèi)核,該內(nèi)核是基于ARMv6架構(gòu),2001年發(fā)布。少數(shù)最先進(jìn)的電子產(chǎn)品,如高檔智能手機(jī),大都采用CortexA8或CortexA9內(nèi)核,該內(nèi)核基于ARMv7架構(gòu),2006年發(fā)布。2021年上市的高檔智能手機(jī),將采用ARMv7架構(gòu)的新產(chǎn)品CortexA152、ARM9處置器架構(gòu)ARM9處置器系列有兩個(gè)分支基于v4版本的ARM9,典型的有ARM9TDMI和ARM922T基于v5TE或v5TEJ架構(gòu)的ARM9E,典型處置器有ARM9EJ-S和ARM926EJ-S等ARM9E處置器有獨(dú)立的指令緩存和數(shù)據(jù)緩存〔ICACHE和DCACHE〕,還有TCM部件〔TightlyCoupledMemory,緊致內(nèi)存〕此外ARM9E還支持ETM9技術(shù)〔EmbeddedTraceMacrocell,嵌入式跟蹤宏〕由于ARM9E在運(yùn)用上更廣,后面關(guān)于ARM9的引見(jiàn)主要也是圍繞ARM9E系列2.1ARM9存放器〔1〕37個(gè)32位存放器31個(gè)屬于通用存放器6個(gè)為ARM處置器不同任務(wù)方式所設(shè)立的公用形狀存放器,形狀存放器雖然也是32位的,但是ARM9只運(yùn)用了其中的14位6個(gè)形狀存放器并不是在恣意時(shí)候都能運(yùn)用的,某些存放器在不同的處置器任務(wù)方式下有不同的的訪問(wèn)權(quán)限2.1ARM9存放器〔2〕ARM9處置器方式用戶方式(User)快速中斷方式(FIQ)外部中斷方式(IRQ)管理方式(Supervisor)中止方式(Abort)未定義方式(Undef)系統(tǒng)方式(System)七種方式之間可以相互切換特權(quán)方式異常方式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任務(wù)方式下ARM存放器的運(yùn)用R0-R7稱為不分組存放器,方式切換時(shí),必需進(jìn)展現(xiàn)場(chǎng)維護(hù)R8-R12在六種方式切換時(shí),必需求現(xiàn)場(chǎng)維護(hù)R8_fiq--R12_fiq在快速中斷方式切換方式時(shí)不需求維護(hù)R13普通作為棧指針sp,R14被稱為銜接存放器LR。作用有兩點(diǎn):1、存放當(dāng)前子程序的前往地址;2、發(fā)生異常時(shí)保管該方式基于PC的前往地址R15是程序計(jì)數(shù)器pc,用來(lái)保管處置器取指的地址6個(gè)形狀存放器包括1個(gè)當(dāng)前程序存放器〔CPSR〕和5個(gè)備份形狀存放器〔SPSR〕CPSR一切方式通用,SPSR是處置器進(jìn)入異常方式時(shí)用來(lái)保管CPSR存放器內(nèi)容的2.1ARM9存放器〔4〕形狀存放器形狀存放器構(gòu)造32位會(huì)被分成四個(gè)域:標(biāo)志位域f(flagfield),PSR[31:24];形狀域s(statusfield),PSR[23:16];擴(kuò)展域x(extendfield),PSR[15:8];控制域c(controlfield),PSR[7:0]2.1ARM9存放器〔5〕形狀存放器第31位闡明結(jié)果的正負(fù);N=1表示結(jié)果為負(fù)第30位闡明運(yùn)算結(jié)果;Z=1表示運(yùn)算結(jié)果為0第29位表示進(jìn)位;C=1闡明產(chǎn)生進(jìn)位第28位,V=1表示結(jié)果的符號(hào)位發(fā)生了溢出第27位Q是用來(lái)指示DSP指令能否溢出第24位J=1闡明處置器處于Jazalle形狀第7、6位是中斷制止位,I=1制止外部中斷;F=1制止快速中斷第5位反響處置器在那種形狀下運(yùn)轉(zhuǎn),T=0處置器在ARM形狀下;T=1處置器運(yùn)轉(zhuǎn)在Thumb形狀下第4-0位稱為方式位,用來(lái)表示處置器此時(shí)所處的方式,值如下:M[4:0]處理器模式M[4:0]處理器模式10000用戶模式10111數(shù)據(jù)訪問(wèn)中止模式10001快速中斷模式11011未定義指令中止模式10010外部中斷模式11111系統(tǒng)模式10011管理模式其他的組合會(huì)使處置器進(jìn)入一個(gè)無(wú)法修復(fù)的形狀2.2流水線技術(shù)和哈佛體系構(gòu)造〔1〕一條指令的執(zhí)行可以分為1:取指,2:譯碼,3:取操作數(shù),4:執(zhí)行運(yùn)算,5:存儲(chǔ)器訪問(wèn),6結(jié)果寫(xiě)回存放器ARM7采用的是3級(jí)流水線取址譯碼存放器、存儲(chǔ)器的讀寫(xiě)操作,移位操作、ALU操作FETCHDECODEEXECUTEEXECUTE階段任務(wù)量大,需求多個(gè)時(shí)鐘周期,限制了系統(tǒng)性能2.2流水線技術(shù)和哈佛體系構(gòu)造〔2〕周期1周期2周期3周期4周期5 取指譯碼執(zhí)行 取指譯碼執(zhí)行取指譯碼執(zhí)行三級(jí)流水線表示圖2.2流水線技術(shù)和哈佛體系構(gòu)造〔3〕ARM9采用5級(jí)流水線取指譯碼和讀取存放器操作數(shù)產(chǎn)生ALU運(yùn)算結(jié)果或存儲(chǔ)器地址存儲(chǔ)器讀寫(xiě)操作結(jié)果寫(xiě)回寄存器FETCHDECODEEXECUTEMEMORYWRITE流水線級(jí)數(shù)的添加減少了每條指令的平均執(zhí)行周期;充分流水化,減少了流水線的停頓2.2流水線技術(shù)和哈佛體系構(gòu)造〔4〕周期1周期2周期3周期4周期5周期6周期7FETCHDECODEEXECUTEMEMORYWRITEFETCHDECODEEXECUTEMEMORYWRITEFETCHDECODEEXECUTEMEMORYWRITE FETCHDECODEEXECUTEMEMORY2.2流水線技術(shù)和哈佛體系構(gòu)造〔5〕2.2流水線技術(shù)和哈佛體系構(gòu)造〔6〕馮·諾依曼體系將數(shù)據(jù)和指令全部存儲(chǔ)在同一個(gè)存儲(chǔ)器中,大多數(shù)的計(jì)算機(jī)采用。包括ARM7哈佛體系中,指令存儲(chǔ)和數(shù)據(jù)存儲(chǔ)是分開(kāi)的,指令的存取和數(shù)據(jù)的存取經(jīng)過(guò)不同的數(shù)據(jù)總線進(jìn)展指令存放器控制器數(shù)據(jù)通道輸入輸出中央處置器存儲(chǔ)器程序指令0指令1指令2指令3指令4數(shù)據(jù)數(shù)據(jù)0數(shù)據(jù)1數(shù)據(jù)2馮·諾依曼體系構(gòu)造〔ARM7〕2.2流水線技術(shù)和哈佛體系構(gòu)造〔7〕2.2流水線技術(shù)和哈佛體系構(gòu)造〔8〕指令存放器控制器數(shù)據(jù)通道輸入輸出CPU程序存儲(chǔ)器指令0指令1指令2數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)0數(shù)據(jù)1數(shù)據(jù)2地址指令地址數(shù)據(jù)哈佛體系構(gòu)造〔ARM9以后〕2.3CP15協(xié)處置器(1)協(xié)處置器需求專門(mén)的協(xié)處置器指令來(lái)操作ARM可以支持16個(gè)協(xié)處置器CP15協(xié)處置器,即系統(tǒng)控制協(xié)處置器(SystemControlCoprocessor)是非常重要的協(xié)處置器用來(lái)配置和控制緩存,緊耦合存儲(chǔ)器(TCM),內(nèi)存管理單元(MMU),時(shí)鐘方式等CP15提供了16個(gè)額外的存放器CP15協(xié)處置器(2)

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

當(dāng)ARM要訪問(wèn)存儲(chǔ)器時(shí),MMU先查找TLB〔TranslationLookasideBuffer,旁路轉(zhuǎn)換緩沖)中的虛擬地址表。假設(shè)TLB中沒(méi)有虛擬地址的入口,那么轉(zhuǎn)換表遍歷硬件會(huì)從存放在內(nèi)存的轉(zhuǎn)換表中獲得轉(zhuǎn)換和訪問(wèn)器權(quán)限。一旦取到,這些信息將被放到TLB中,這時(shí)訪問(wèn)存儲(chǔ)器的TLB入口就拿到了。〔1.

C〔高速緩存〕和B〔緩沖〕位被用來(lái)控制高速緩存和寫(xiě)緩沖,并決議能否高速緩存?!布僭O(shè)系統(tǒng)中沒(méi)有高速緩存和寫(xiě)緩沖,那么對(duì)應(yīng)的位將被忽略〕

2.

訪問(wèn)權(quán)限和域位用來(lái)控制訪問(wèn)能否被允許。假設(shè)不允許,那么MMU將向ARM處置器發(fā)送一個(gè)存儲(chǔ)器異常;否那么訪問(wèn)將被允許進(jìn)展。

3.

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

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

MMU

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論