嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用-ARM體系結(jié)構(gòu)分析_第1頁(yè)
嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用-ARM體系結(jié)構(gòu)分析_第2頁(yè)
嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用-ARM體系結(jié)構(gòu)分析_第3頁(yè)
嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用-ARM體系結(jié)構(gòu)分析_第4頁(yè)
嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用-ARM體系結(jié)構(gòu)分析_第5頁(yè)
已閱讀5頁(yè),還剩92頁(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)介

本資料起源嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第1頁(yè)嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第2頁(yè)第二講

ARM體系結(jié)構(gòu)嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第3頁(yè)Outline2、ARM體系結(jié)構(gòu)3、ARM編程模型工作狀態(tài)CPU工作模式存放器組織異常內(nèi)存與IO1、嵌入式微處理器嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第4頁(yè)主流嵌入式微處理器當(dāng)前主流嵌入式微處理器系列主要有ARM系列、MIPS系列、PowerPC系列、SuperH系列和X86系列等。屬于這些系列嵌入式微處理器產(chǎn)品很多,有上千種以上。嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第5頁(yè)Units

(millions)Source:AndrewAllison,InsideTheNewComputerIndustry,JanuaryEmbeddedRISCProcessorShipments嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第6頁(yè)32位浪潮到來(lái)Source:SemicoResearchCorp.andSIA/WSTSTotalMCU,bySub-Category(excl.DSP)TotalEmbeddedControlMarketShipmentsbyType總共約26億個(gè)32位處理器付運(yùn),占總數(shù)96億27%ARM為17億個(gè),約占32位總量70%左右嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第7頁(yè)X86系列主要由AMD,Intel,NS,ST等企業(yè)提供,如:Am186/88、Elan520、嵌入式K6,386EX、STPC等。主要應(yīng)用在工業(yè)控制、通信等領(lǐng)域。國(guó)內(nèi)因?yàn)閷?duì)X86體系比較熟悉,得到廣泛應(yīng)用,尤其是嵌入式PC應(yīng)用非常廣泛。嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第8頁(yè)MPC/PPC系列Motorola推出MPC系列,如MPC8XX。IBM推出PPC系列,如PPC4XX。主要應(yīng)用在通信、消費(fèi)電子及工業(yè)控制、軍用裝備等領(lǐng)域。嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第9頁(yè)MPC/PPC系列IBMPowerPC

集成10/100Mbps以太網(wǎng)控制器、串行和并行端口、內(nèi)存控制器以及其它外設(shè)高性能嵌入式處理器。MotorolaMPC

高度綜合SOC設(shè)備,它結(jié)合了PPC微處理器關(guān)鍵功效、通信處理器和單硅成份內(nèi)顯示控制器。這個(gè)設(shè)備能夠在大量電子應(yīng)用中使用,尤其是在低能源、便攜式、圖象捕捉和個(gè)人通信設(shè)備。嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第10頁(yè)技術(shù)0.25微米CMoSSA-12E282Dhrystone2.1MIPS@200MHz375Dhrystone2.1MIPS@266MHz200/100/66/50MHz266/133/66/66MHz晶體數(shù)量480萬(wàn)電源消耗1.1瓦信號(hào)I/O300溫度范圍-40到80度電源供給2.5V(邏輯電路),3.3V(I/O),支持5VI/Os456-Ball,EnhancedPBGA(35mmx35mm)性能頻率(CPU/SDRAM/PCI/EBC)封裝PowerPC405GP技術(shù)規(guī)格*Dhrystone是一個(gè)綜合性基準(zhǔn)測(cè)試程序,它是為了測(cè)試編譯器和CPU處理整數(shù)指令和控制功效有效性,人為地選擇一些“經(jīng)典指令綜合起來(lái)形成測(cè)試程序。

嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第11頁(yè)ARM系列ARM(AdvancedRISCMachine)企業(yè)是一家專門從事芯片IP設(shè)計(jì)與授權(quán)業(yè)務(wù)英國(guó)企業(yè),其產(chǎn)品有ARM內(nèi)核以及各類外圍接口。ARM內(nèi)核是一個(gè)32位RISC微處理器,含有功耗低、性價(jià)比高、代碼密度高等三大特色。當(dāng)前,90%移動(dòng)電話、大量游戲機(jī)、手持PC和機(jī)頂盒等都已采取了ARM處理器,許多一流芯片廠商都是ARM授權(quán)用戶(Licensee),如Intel、Samsung、TI、Motorola、ST等,ARM已成為業(yè)界公認(rèn)嵌入式微處理器標(biāo)準(zhǔn)。嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第12頁(yè)ARMFamilyARM7?FamilyARM9?FamilyARM10?FamilyARM11?Family150DMIPS300DMIPS500DMIPS1000DMIPSARMCortex?FamilyARM720TARM1136JARM1176JZARM1026EARM920T/ARM922TARM926EJCortexAApplicationProcessorARM7TDMIARM1156T2ARM1026EARM946ECortexREmbeddedRTControllerARM7TDMIARM966EARM968ECortexMMicro-controllerARMArchitecture嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第13頁(yè)當(dāng)前主流ARM處理器ARM7世界上最為廣泛使用CPU之一<100MHzARM9100-300MHz1.7BARMPowredshipmentinyearof,31%isARM9based.嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第14頁(yè)ARM11芯片已經(jīng)面世ARM11300-700+MHzSIMD指令擴(kuò)展支持更豐富多媒體應(yīng)用40家授權(quán)芯片企業(yè),一些已開(kāi)始量產(chǎn)FOMAN902iFirstARM11basedphoneOMAP2420i.MX31/i.MX31L嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第15頁(yè)當(dāng)前最快嵌入式處理器最快處理器提供超出DMIPS性能運(yùn)行于1GHz頻率(90nmor65nm制造工藝)功耗小于300mWARMCortexA8ApplicationProcessor嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第16頁(yè)Cortex-M3

實(shí)現(xiàn)$1

ARM芯片ARMCortexArchitectureThumb-2ISA3StagePipeline1.22DMIPS/MHz–30%overARM7TDMI33Kgates–30%smallerthanARM7TDMILuminaryMicroStellaris系列MCU產(chǎn)品售價(jià)僅1美元ARMCortex-M3微控制器內(nèi)核,專門針對(duì)MCU應(yīng)用領(lǐng)域而設(shè)計(jì),突出低成本、低功耗和高效率。嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第17頁(yè)領(lǐng)先嵌入式處理器技術(shù)發(fā)展討論多處理器技術(shù)單處理器技術(shù)性能提升終有一天會(huì)遭遇瓶頸對(duì)嵌入式系統(tǒng)而言,尤其要考慮付出代價(jià)把任務(wù)進(jìn)行并行分解是理想選擇ARMMPcore能夠集成1-4個(gè)ARM11處理器關(guān)鍵是要提供給軟件開(kāi)發(fā)者一個(gè)友好編程界面64位處理器?哪兒是系統(tǒng)性能瓶頸?是需要64位地址還是64位數(shù)據(jù)?嵌入式系統(tǒng)比PC有更加好條件來(lái)處理系統(tǒng)性能和帶寬問(wèn)題PC系統(tǒng)在主板上,擴(kuò)展系統(tǒng)帶寬需要擴(kuò)大每個(gè)組件接口帶寬SoC只需擴(kuò)展片內(nèi)總線,非常輕易實(shí)現(xiàn)AMBA支持8-1024位總線寬度許多SoC設(shè)計(jì)以及ARM處理器內(nèi)部已經(jīng)使用64位數(shù)據(jù)總線嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第18頁(yè)怎樣選擇嵌入式微處理器微處理器內(nèi)核選擇有沒(méi)有MMUOS考慮系統(tǒng)工作頻率芯片存放器容量片內(nèi)外設(shè)考慮實(shí)際應(yīng)用要求接口時(shí)序嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第19頁(yè)Outline2、ARM體系結(jié)構(gòu)3、ARM編程模型工作狀態(tài)CPU工作模式存放器組織異常內(nèi)存與IO1、嵌入式微處理器嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第20頁(yè)圖2.1.1ARM體系結(jié)構(gòu)方框圖嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第21頁(yè)ARM處理器分類結(jié)構(gòu)體系版本(Architecture)ARMv4TARMv5TEARMv6ARMCortex(v7)ProcessorFamilyARM7ARM9ARM10ARM11ARMCortex按應(yīng)用特征分類應(yīng)用處理器

ApplicationProcessor實(shí)時(shí)控制處理器

Real-timeController微控制器

Micro-controller特征:MMU,Cache最快頻率、最高性能、合理功耗特征:MPU,Cache實(shí)時(shí)響應(yīng)、合理性能、較低功耗特征:nosub-memorysystem普通性能、最低成本、極低功耗嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第22頁(yè)ARM體系結(jié)構(gòu)命名規(guī)則ARM{X}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}x——系列y——存放管理/保護(hù)單元z——CacheT——Thumb16位譯碼器D——JTAG調(diào)試器M——快速乘法器I——嵌入式跟蹤宏單元E——增強(qiáng)DSP指令J——JazelleF——向量浮點(diǎn)單元S——可綜合版本,以源代碼形式提供ARM核嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第23頁(yè)v4v5TESA110v4TARM720TARM7TDMI-SARM920TARM940TARM922TARM966E-SARM946E-SARM1020Ev5TEJ/Jazellev6/JazelleARM7EJ-SARM926EJ-SARM1026EJ-SARM11Micro-ArchitectureRoadmapofARMV4/V5/V6嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第24頁(yè)系列對(duì)應(yīng)產(chǎn)品性能特點(diǎn)ARM7系列ARM7TDMI,ARM7TDMI-S,ARM720T,ARM7EJ三級(jí)流水性能:0.9MIPS/MHz,可到達(dá)130MIPs(Dhrystone2.1)

ARM9系列ARM920T,ARM922T

五級(jí)流水,性能:1.1MIPS/MHz,可達(dá)300MIPS(Dhrystone2.1),單32-bitAMBAbus接口,支持MMUARM9E系列ARM926EJ-S,RM946E-S,ARM966E-S,ARM968E-S,ARM996HS

五級(jí)流水,支持DSP指令。性能:1.1MIPS/MHz,可達(dá)300MIPS(Dhrystone2.1),高性能AHB,軟核(softIP)

ARM10系列ARM1020E,ARM1022EARM1026EJ-S

6級(jí)流水支持分支預(yù)測(cè)(branchprediction),支持DSP指令。性能:1.35MIPS/MHz,可達(dá)430+Dhrystone2.1

MIPS,,可選支持高性能浮點(diǎn)操作,雙64位總線接口,內(nèi)部64位數(shù)據(jù)通路嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第25頁(yè)系列對(duì)應(yīng)產(chǎn)品性能特點(diǎn)ARM11系列ARM11MPCore,ARM1136J(F)-S,ARM1156T2(F)-S,ARM1176JZ(F)-S

8級(jí)流水線(9級(jí)ARM1156T2(F)-S),獨(dú)立load-store和arithmetic流水線,支持分支預(yù)測(cè)和返回棧(ReturnStack)。強(qiáng)大ARMv6指令集,支持DSP,SIMD(SingleInstructionMultipleData)擴(kuò)展,支持ARMTrustZone、Thumb-2關(guān)鍵技術(shù)。740Dhrystone2.1MIPS,低功耗0.6mW/MHz(0.13μm,1.2V)Cortex系列Cortex-A8,Cortex-M3,Cortex-R4Cortex-A系列:面向用于復(fù)雜OS和應(yīng)用應(yīng)用處理器(applicationsprocessors),支持ARM,ThumbandThumb-2指令集。Cortex-R系列:面向嵌入式實(shí)時(shí)領(lǐng)域嵌入式處理器,支持ARM,Thumb,和Thumb-2指令集。Cortex-M系列:面向深嵌入式價(jià)格敏感嵌入式處理器,只支持Thumb-2指令集SecurCore系列SecurCoreSC100,SecurCoreSC200用于SmartCard和SecureIC32-bit處理方案。支持ARM和Thumb

指令集,軟核。含有安全特征和低成本安全存放保護(hù)單元

嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第26頁(yè)ARMV4ARMV4是當(dāng)前支持最老架構(gòu),是基于32-bit地址空間32-bit指令集。ARMv4除了支持ARMv3指令外還擴(kuò)展了:支持halfword存取支持byte和halfword符號(hào)擴(kuò)展讀支持Thumb指令提供Thumb和Normal狀態(tài)轉(zhuǎn)換指令深入明確了會(huì)引發(fā)Undefined異常指令對(duì)以前26bits體系結(jié)構(gòu)CPU不再兼容

嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第27頁(yè)ARMv4TARMv4T增加了16-bitThumb

指令集,這么使得編譯器能產(chǎn)生緊湊代碼(相對(duì)于32-bit代碼,內(nèi)存能節(jié)約到35%以上)并保持32-bit系統(tǒng)好處。Thumb在處理器中依然要擴(kuò)展為標(biāo)準(zhǔn)32位ARM指令來(lái)運(yùn)行。用戶采取16位Thumb指令集最大好處就是能夠取得更高代碼密度和降低功耗。嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第28頁(yè)ARMV5TE1999年推出ARMv5TE其增強(qiáng)了Thumb體系,增強(qiáng)Thumb體系增加了一個(gè)新指令同時(shí)改進(jìn)了Thumb/ARM相互作用、編譯能力和混合及匹配ARM與Thumb例程,以更加好地平衡代碼空間和性能并在ARMISA上擴(kuò)展了增強(qiáng)DSP

指令集:

增強(qiáng)DSP指令包含支持飽和算術(shù)(saturatedarithmetic),而且針對(duì)AudioDSP應(yīng)用提升了70%性能?!瓻’擴(kuò)展表示在通用CPU上提供DSP能力。嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第29頁(yè)ARMv5TEJ推出ARMv5TEJ,增加了Jazelle擴(kuò)展以支持Java加速技術(shù)。Jazelle技術(shù)比僅僅基于軟件JVM性能提升近8倍性能降低了80%功耗。嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第30頁(yè)ARMv6推出ARMv6,它在許多方面做了改進(jìn)如內(nèi)存系統(tǒng)、異常處理和很好地支持多處理器。SIMD擴(kuò)展使得廣大軟件應(yīng)用如Video和Audiocodec性能提升了4倍。Thumb-2和TrustZone技術(shù)也用于ARMv6中。ARMv6第一個(gè)實(shí)現(xiàn)是年春推出ARM1136J(F)-STM處理器,20又推出了

ARM1156T2(F)-S

和ARM1176JZ(F)-S處理器。嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第31頁(yè)ARMv7ARMv7定義了3種不一樣處理器配置(processorprofiles):

ProfileA是面向復(fù)雜、基于虛擬內(nèi)存OS和應(yīng)用ProfileR是針對(duì)實(shí)時(shí)系統(tǒng)ProfileM是針對(duì)低成本應(yīng)用優(yōu)化微控制器。全部ARMv7profiles實(shí)現(xiàn)Thumb-2技術(shù),同時(shí)還包含了NEON?技術(shù)擴(kuò)展提升DSP和多媒體處理吞吐量400%

,并提供浮點(diǎn)支持以滿足下一代3D圖形和游戲以及傳統(tǒng)嵌入式控制應(yīng)用需要。嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第32頁(yè)ARM7TDMIThumb架構(gòu)擴(kuò)展,提供兩個(gè)獨(dú)立指令集:ARM指令,均為32位Thumb指令,均為16位兩種運(yùn)行狀態(tài),用來(lái)選擇哪個(gè)指令集被執(zhí)行內(nèi)核含有Debug擴(kuò)展結(jié)構(gòu)增強(qiáng)乘法器(32x8)支持64位結(jié)果EmbeddedICE邏輯3級(jí)流水線馮·諾依曼架構(gòu)CPI(CyclePerInstruction)約為1.9嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第33頁(yè)圖2.2.3ARM720T內(nèi)核結(jié)構(gòu)嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第34頁(yè)圖2.2.1ARM7TDMI內(nèi)核結(jié)構(gòu)嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第35頁(yè)ARM7TDMI指令流水線為增加處理器指令流速度,ARM7系列使用3級(jí)流水線。允許多個(gè)操作同時(shí)處理,而非次序執(zhí)行。

PC指向正被取指指令,而非正在執(zhí)行指令。FetchDecodeExecute從存放器中讀取指令解碼指令中用到存放器存放器讀(從存放器Bank)移位及ALU操作存放器寫(到存放器Bank)PC PCPC-4 PC-2PC-8 PC-4ARM Thumb嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第36頁(yè)ARM7TDMI指令流水線

操作周期 1 2 3 4 56ADDSUBMOVANDORREORCMPRSBFetchDecode。FetchExecuteDecodeFetchExecuteDecodeFetchExecuteDecodeFetchFetchExecuteDecodeExecuteDecodeFetchExecuteDecodeFetch最正確流水線該例中用6個(gè)時(shí)鐘周期執(zhí)行了6條指令

全部操作都在存放器中(單周期執(zhí)行)

指令周期數(shù)(CPI)=1嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第37頁(yè)ARM9TDMIHarvard架構(gòu)增加了可用存放器寬度指令存放器接口數(shù)據(jù)存放器接口能夠?qū)崿F(xiàn)對(duì)指令和數(shù)據(jù)存放器同時(shí)訪問(wèn)5級(jí)流水線實(shí)現(xiàn)了以下改進(jìn):改進(jìn)CPI到~1.5提升了最大時(shí)鐘頻率嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第38頁(yè)ARM9TDMIInstructionFetchShift+ALUMemoryAccessRegWriteRegReadRegDecodeFETCHDECODEEXECUTEMEMORYWRITEARM9TDMIARMorThumb

InstDecodeRegSelectRegReadShiftALURegWriteThumb?ARM

decompressARMdecodeInstructionFetchFETCHDECODEEXECUTEARM7TDMI流水線嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第39頁(yè)ARM9TDMIARM9TDMIDCacheICacheMMUGLUE外部存放器ARM940T2x4KcachesMPU寫緩沖ARM9xxTARM920T2x16KcachesMMU支持虛擬地址和內(nèi)存保護(hù)寫緩沖帶CacheARM9TDMI嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第40頁(yè)圖2.2.4ARM920T內(nèi)核結(jié)構(gòu)嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第41頁(yè)ARM9E-S系列概述ARM9E基于ARM9TDMI內(nèi)核,有以下擴(kuò)展和增強(qiáng)單周期32x16乘法器EmbeddedICE邏輯RT改進(jìn)ARM/Thumb交互操作新32x16和16x16乘法指令新計(jì)數(shù)到零指令新飽和算術(shù)指令A(yù)RM946E-SARM9E-S內(nèi)核指令和數(shù)據(jù)cache,大小可選擇指令和數(shù)據(jù)RAM,大小可選擇保護(hù)單元AHB總線接口ARM966E-S與ARM946E-S相同,但無(wú)cache嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第42頁(yè)ARM926EJ-S系列概述Jazelle狀態(tài)允許直接執(zhí)行Java8位碼ARM926EJ-SARM9E-S內(nèi)核可配置cache和TCM內(nèi)存管理單元雙重32位AHB總線接口(多層)嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第43頁(yè)ARM10E系列概述v5TE架構(gòu)CPI1.36級(jí)流水線靜態(tài)分支預(yù)測(cè)32kB指令cache和32kB數(shù)據(jù)cache支持“Hitundermiss”非阻塞執(zhí)行單元每七天期64位LDM/STM操作EmbeddedICE邏輯-RT-II支持新VFPv1結(jié)構(gòu)同ARM1020E,除了cache大小為16kB對(duì)SUDL(singleuserdesignlicense)有效ARM1020EARM1022E嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第44頁(yè)ARM9vsARM10流水線對(duì)比嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第45頁(yè)Intel?StrongARM概述ARMV4架構(gòu)(無(wú)Thumb支持)5級(jí)流水線,降低跳轉(zhuǎn)損耗-stagepipeline,reducedbranchpenalty改進(jìn)乘法器(經(jīng)典地比ARM9TDMI快2個(gè)周期)不支持Multi-ICE調(diào)試(JTAG限制在連通性測(cè)試)無(wú)外部協(xié)處理器接口SA-110:

16K指令和數(shù)據(jù)caches,8x16字節(jié)寫緩沖.SA-1100/1110:片上外設(shè),存放器控制器更小cache容量PID存放器(作控制用)指令斷點(diǎn),經(jīng)過(guò)CP15嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第46頁(yè)Intel?XScale?概述V5TE兼容架構(gòu)7-8級(jí)流水線帶統(tǒng)計(jì)分支預(yù)測(cè)32k數(shù)據(jù)和指令Cache,外加2k數(shù)據(jù)Minicache8口寫緩沖,4口填充和追加緩沖完整32位協(xié)處理器接口調(diào)試和性能監(jiān)控邏輯(經(jīng)過(guò)CP14)乘-加模塊(作為CP0)可配置內(nèi)核時(shí)鐘速度100-733MHz,來(lái)自33-66MHz輸入時(shí)鐘異步輸入總線時(shí)鐘可到100MHz(最大總線內(nèi)核時(shí)鐘1/3)嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第47頁(yè)Outline2、ARM體系結(jié)構(gòu)3、ARM編程模型工作狀態(tài)CPU工作模式存放器組織異常內(nèi)存與IO1、嵌入式微處理器嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第48頁(yè)ARM微處理器:編程模型處理器工作狀態(tài)CPU工作模式存放器組織異常內(nèi)存與IO嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第49頁(yè)ARM微處理器:處理器工作狀態(tài)(PROCESSOROPERATINGSTATES)處理器有兩種工作狀態(tài):ARM:32位,執(zhí)行字對(duì)準(zhǔn)ARM指令Thumb:16位,執(zhí)行半字對(duì)準(zhǔn)Thumb指令A(yù)RM和Thumb之間狀態(tài)切換不影響處理器模式或存放器內(nèi)容嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第50頁(yè)ARM微處理器:處理器工作狀態(tài)進(jìn)入Thumb狀態(tài):執(zhí)行BX指令,并設(shè)置操作數(shù)存放器狀態(tài)(位[0])為1。在Thumb狀態(tài)進(jìn)入異常(IRQ,FIQ,UNDEF,ABORT,SWIetc.),當(dāng)異常處理返回時(shí)自動(dòng)轉(zhuǎn)換到Thumb狀態(tài)進(jìn)入ARM狀態(tài):執(zhí)行BX指令,并設(shè)置操作數(shù)存放器狀態(tài)(位[0])為0。進(jìn)入異常時(shí),將PC放入異常模式鏈接存放器中,從異常向量地址開(kāi)始執(zhí)行也可進(jìn)入ARM狀態(tài)嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第51頁(yè)ARM微處理器:處理器工作狀態(tài)Thumb-2

:增加了混合模式能力定義了一個(gè)新32-bit指令集能在傳統(tǒng)16-bit指令運(yùn)行Thumb狀態(tài)下同時(shí)運(yùn)行。這么能在一個(gè)系統(tǒng)中更加好地平衡ARM和Thumb代碼能力,使系統(tǒng)能更加好地利用ARM級(jí)別性能和Thumb代碼密度優(yōu)勢(shì)

嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第52頁(yè)ARM微處理器:存放器格式ARM尋址空間是線性地址空間,為232=4GBytes0to3存放第一個(gè)word,bytes4to7存放第二個(gè)wordARM支持大端(Big-endian)和小端(Little-endian)內(nèi)存數(shù)據(jù)方式,能夠經(jīng)過(guò)硬件方式設(shè)置(沒(méi)有提供軟件方式)端模式嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第53頁(yè)ARM微處理器:存放器格式大端數(shù)據(jù)存放格式低地址高地址地址A地址A+1地址A+2地址A+3最高有效字節(jié)地址就是該word地址最高有效字節(jié)位于最低地址worda=0xf6

73

4b

cdf6734bcd嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第54頁(yè)ARM微處理器:存放器格式小端數(shù)據(jù)格式

低地址高地址地址A地址A+1地址A+2地址A+3最低有效字節(jié)地址就是該word地址最低有效字節(jié)位于最低地址worda=0xf6

73

4b

cdf6734bcd嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第55頁(yè)ARM微處理器:存放器格式大端:小端:0xb32045000xddddddd00xb32045000xddddddd0f6f673734b4bcdcd0000dada實(shí)例變量A:wordA=0xf6734bcd,在內(nèi)存中起始地址為0xb3204500變量B:halfwordB=218,在內(nèi)存中起始地址為0xddddddd0問(wèn)題:halfwordB=218與wordC=218在內(nèi)存中存放方式有何不一樣?請(qǐng)分大端和小端兩種情況說(shuō)明。嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第56頁(yè)ARM微處理器:編程模型數(shù)據(jù)類型約定

字節(jié)型數(shù)據(jù)(Byte):數(shù)據(jù)寬度為8bits

半字?jǐn)?shù)據(jù)類型(HalfWord):數(shù)據(jù)寬度為16bits,存取式必須以2字節(jié)對(duì)齊方式

字?jǐn)?shù)據(jù)類型(Word):數(shù)據(jù)寬度為32bits,存取式必須以4字節(jié)對(duì)齊方式嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第57頁(yè)ARM微處理器:CPU模式(processormode)7種CPU模式CPU模式轉(zhuǎn)變:軟件控制異常外部中止嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第58頁(yè)ARM微處理器:CPU模式User模式程序不能訪問(wèn)有些受保護(hù)資源只能經(jīng)過(guò)異常形式來(lái)改變CPU當(dāng)前運(yùn)行模式特權(quán)模式能夠存取系統(tǒng)中任何資源System模式與User模式運(yùn)行環(huán)境一樣不過(guò)它能夠不受任何限制訪問(wèn)任何資源該模式主要用于運(yùn)行系統(tǒng)中一些特權(quán)任務(wù)FIQ模式IRQ模式Supervisor模式Abort模式Undefined模式異常模式:主要是在外部中止或者程序執(zhí)行非法操作時(shí)會(huì)觸發(fā)嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第59頁(yè)ARM微處理器:存放器組織ARM處理器有37個(gè)存放器

31個(gè)通用存放器:程序計(jì)數(shù)器、堆棧及其它通用存放器

6個(gè)狀態(tài)存放器這些存放器不能同時(shí)看到,同時(shí)只有17個(gè)不一樣處理器狀態(tài)和工作模式確定哪些存放器是對(duì)編程者是可見(jiàn)嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第60頁(yè)嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第61頁(yè)ARM微處理器:ARMState存放器嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第62頁(yè)ARM微處理器:ThumbState存放器嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第63頁(yè)R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

R0

堆棧指針(R13)

連接存放器(R14)

程序計(jì)數(shù)器(R15)

低存放器高存放器ARMState與ThumbState存放器關(guān)系嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第64頁(yè)存放器類別存放器在匯編中名稱各模式下實(shí)際訪問(wèn)存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiq*R9(SB,v6)R9R9_fiq*R10(SL,v7)R10R10_fiq*R11(FP,v8)R11R11_fiq*R12(IP)R12R12_fiq*R13(SP)R13R13_svc*R13_abt*R13_und*R13_irq*R13_fiq*R14(LR)R14R14_svc*R14_abt*R14_und*R14_irq*R14_fiq*R15(PC)R15狀態(tài)存放器R16(CPSR)CPSRSPSR無(wú)SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM狀態(tài)各模式下存放器嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第65頁(yè)存放器類別存放器在匯編中名稱各模式下實(shí)際訪問(wèn)存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)存放器CPSRCPSRSPSR無(wú)SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM狀態(tài)各模式下存放器SPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_svcCPSRR15R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0全部37個(gè)存放器,分成兩大類:31個(gè)通用32位存放器;6個(gè)狀態(tài)存放器。嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第66頁(yè)存放器類別存放器在匯編中名稱各模式下實(shí)際訪問(wèn)存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)存放器CPSRCPSRSPSR無(wú)SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq無(wú)CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用戶無(wú)CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0系統(tǒng)SPSR_svcCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R4R3R2R1R0管理SPSR_abtCPSRR15R14_abtR13_abtR12R11R10R9R8R7R6R5R4R3R2R1R0中止SPSR_undCPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4R3R2R1R0未定義SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R7R6R5R4R3R2R1R0中止SPSR_fiqCPSRR15R14_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中止ARM狀態(tài)各模式下能夠訪問(wèn)存放器嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第67頁(yè)存放器類別存放器在匯編中名稱各模式下實(shí)際訪問(wèn)存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)存放器CPSRCPSRSPSR無(wú)SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq普通通用存放器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0

在匯編語(yǔ)言中存放器R0~R13為保留數(shù)據(jù)或地址值通用存放器。它們是完全通用存放器,不會(huì)被體系結(jié)構(gòu)作為特殊用途,而且可用于任何使用通用存放器指令。嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第68頁(yè)存放器類別存放器在匯編中名稱各模式下實(shí)際訪問(wèn)存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)存放器CPSRCPSRSPSR無(wú)SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq普通通用存放器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0

其中R0~R7為未分組存放器,也就是說(shuō)對(duì)于任何處理器模式,這些存放器都對(duì)應(yīng)于相同32位物理存放器。嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第69頁(yè)存放器類別存放器在匯編中名稱各模式下實(shí)際訪問(wèn)存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)存放器CPSRCPSRSPSR無(wú)SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq普通通用存放器R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8

存放器R8~R14為分組存放器。它們所對(duì)應(yīng)物理存放器取決于當(dāng)前處理器模式,幾乎全部允許使用通用存放器指令都允許使用分組存放器嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第70頁(yè)存放器類別存放器在匯編中名稱各模式下實(shí)際訪問(wèn)存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)存放器CPSRCPSRSPSR無(wú)SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq普通通用存放器R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8

存放器R8~R12有兩個(gè)分組物理存放器。一個(gè)用于除FIQ模式之外全部存放器模式,另一個(gè)用于FIQ模式。這么在發(fā)生FIQ中止后,能夠加速FIQ處理速度。嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第71頁(yè)存放器類別存放器在匯編中名稱各模式下實(shí)際訪問(wèn)存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)存放器CPSRCPSRSPSR無(wú)SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq普通通用存放器

存放器R13、R14分別有6個(gè)分組物理存放器。一個(gè)用于用戶和系統(tǒng)模式,其余5個(gè)分別用于5種異常模式。R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第72頁(yè)存放器類別存放器在匯編中名稱各模式下實(shí)際訪問(wèn)存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)存放器CPSRCPSRSPSR無(wú)SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq堆棧指針存放器R13(SP)

存放器R13常作為堆棧指針(SP)。在ARM指令集當(dāng)中,沒(méi)有以特殊方式使用R13指令或其它功效,只是習(xí)慣上都這么使用。不過(guò)在Thumb指令集中存在使用R13指令。嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第73頁(yè)存放器類別存放器在匯編中名稱各模式下實(shí)際訪問(wèn)存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)存放器CPSRCPSRSPSR無(wú)SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq鏈接存放器R14(LR)R14為鏈接存放器(LR),在結(jié)構(gòu)上有兩個(gè)特殊功效:在每種模式下,模式本身R14版本用于保留子程序返回地址;當(dāng)發(fā)生異常時(shí),將R14對(duì)應(yīng)異常模式版本設(shè)置為異常返回地址(有些異常有一個(gè)小固定偏移量)。嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第74頁(yè)存放器類別存放器在匯編中名稱各模式下實(shí)際訪問(wèn)存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計(jì)數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)存放器CPSRCPSRSPSR無(wú)SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq程序計(jì)數(shù)器R15(PC)

存放器R15為程序計(jì)數(shù)器(PC),它指向正在取指地址。能夠認(rèn)為它是一個(gè)通用存放器,不過(guò)對(duì)于它使用有許多與指令相關(guān)限制或特殊情況。假如R15使用方式超出了這些限制,那么結(jié)果將是不可預(yù)測(cè)。嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第75頁(yè)ARM微處理器:通用存放器R15用作程序計(jì)數(shù)器(PC),能夠被讀寫ARMstate:bits[1:0]為0,bits[31:2]即為PC.THUMBstate:bit[0]為0,bits[31:1]即為PC嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第76頁(yè)ARM微處理器:程序狀態(tài)存放器CPSR(當(dāng)前途序狀態(tài)存放器)在全部模式下都是能夠讀寫,它主要包含:條件標(biāo)志中止使能標(biāo)志當(dāng)前處理器模式其它一些狀態(tài)和控制標(biāo)志嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第77頁(yè)ARM微處理器:程序狀態(tài)存放器置0表示執(zhí)行32bitARM指令置1表示執(zhí)行16bitThumb指令NegativeZeroCarryOverflowIRQ中止響應(yīng):置1:禁止響應(yīng)置0:允許響應(yīng)FIQ中止響應(yīng):置1:禁止響應(yīng)置0:允許響應(yīng)條件標(biāo)志模式控制位ARM/Thumb控制標(biāo)志中止標(biāo)志嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第78頁(yè)ARM微處理器:程序狀態(tài)存放器模式控制位M0-M4嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第79頁(yè)ARM微處理器:異常異常是由內(nèi)部或者外部原因引發(fā),當(dāng)異常發(fā)生時(shí)CPU將暫停執(zhí)行當(dāng)前指令自動(dòng)到指定向量地址讀取指令而且執(zhí)行。在X86上,當(dāng)有異常發(fā)生時(shí)CPU是到指定向量地址讀取要執(zhí)行程序地址而ARM是到向量地址地方讀取指令,也就是ARM向量地址處存放是一條指令(普通是一條跳轉(zhuǎn)指令)嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第80頁(yè)ARM微處理器:異常ARMCPU將引發(fā)異常類型分為7種嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第81頁(yè)ARM微處理器:異常當(dāng)異常出現(xiàn)時(shí),異常模式分組R14和SPSR用于保留狀態(tài),即:

R14_<exception_mode>=returnlinkSPSR_<exception_mode>=CPSRCPSR[4:0]=exceptionmodenumberCPSR[5]=0/*在ARM狀態(tài)執(zhí)行*/if<exception_mode>==ResetorFIQthenCPSR[6]=1/*禁止快速中止*/CPSR[7]=1/*禁止正常中止*/PC=exceptionvectoraddress當(dāng)處理異常返回時(shí),將SPSR傳送到CPSR,R14傳送到PC嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第82頁(yè)異常優(yōu)先級(jí)嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第83頁(yè)異常向量嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第84頁(yè)VectorTable異常處理當(dāng)異常產(chǎn)生時(shí),ARMcore:拷貝CPSR到SPSR_<mode>設(shè)置適當(dāng)CPSR位:改變處理器狀態(tài)進(jìn)入ARM態(tài)改變處理器模式進(jìn)入對(duì)應(yīng)異常模式設(shè)置中止禁止位禁止對(duì)應(yīng)中止(如需要)保留返回地址到LR_<mode>設(shè)置PC為對(duì)應(yīng)異常向量返回時(shí),異常處理需要:從SPSR_<mode>恢復(fù)CPSR從LR_<mode>恢復(fù)PCNote:這些操作只能在ARM態(tài)執(zhí)行.Vectortablecanbeat

0xFFFF0000onARM720T

andonARM9/10familydevicesFIQIRQ(Reserved)DataAbortPrefetchAbortSoftwareInterruptUndefinedInstructionReset0x1C0x180x140x100x0C0x080x040x0085嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第85頁(yè)進(jìn)入異常操作R14_<Exception_Mode>=ReturnLinkSPSR_<Exception_Mode>=CPSRCPSR[4:0]=ExceptionModeNumberCPSR[5]=0;當(dāng)運(yùn)行于ARM狀態(tài)時(shí)IF<Exception_Mode>==ResetorFIQthen;當(dāng)響應(yīng)FIQ異常時(shí),禁止新FIQ異常

CPSR[6]=1;

CPSR[7]=1;PC=ExceptionVectorAddress嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第86頁(yè)當(dāng)異常結(jié)束時(shí),異常處理程序必須:1.將LR(R14)中值減去偏移量后存入PC,偏移量依據(jù)異常類型而有所不一樣;2.將SPSR值復(fù)制回CPSR;3.清零在入口置位中止禁止標(biāo)志。注:恢復(fù)CPSR動(dòng)作會(huì)將T、F和I位自動(dòng)恢復(fù)為異常發(fā)生前值。退出異常嵌入式系統(tǒng)及開(kāi)發(fā)應(yīng)用--ARM體系結(jié)構(gòu)分析第87頁(yè)例子:用戶模式到

FIQ模式*spsr_fiqcpsrr7r4r5r2r1r0r3r6r15(pc)r14_fiqr13_fiqr12_fiqr10_fiqr11_fiqr9_fiqr8_fiqr14(lr)r13(sp)r12r10r11r9r8用戶模式CPSR復(fù)制到

FIQ模式

SPSRcpsrr15(pc)r14(lr)r13(sp)r12r10r11r9r8r7r4r5r2r1r0r3r6r14_fiqr13_fiqr12_fiqr10_fiqr11_fiqr9_fiqr8_f

溫馨提示

  • 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)論