版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
微處置器系統(tǒng)構(gòu)造與嵌入式系統(tǒng)設(shè)計第七章ARM微處置器編程模型7.1ARM內(nèi)核體系構(gòu)造
7.2ARM編程模型
7.2.1處置器任務(wù)形狀
7.2.2處置器運轉(zhuǎn)方式
7.2.3存放器組織
7.2.4數(shù)據(jù)類型和存儲格式
7.2.5異常
ARM是AdvancedRISCMachines的縮寫,該公司設(shè)計了大量高性能、廉價、耗能低的RISC(精簡指令集)處置器;ARM公司的特點是只設(shè)計而不消費。它將技術(shù)授權(quán)給世界上許多著名的半導(dǎo)體、軟件和OEM廠商,并提供效力。將技術(shù)授權(quán)給其它芯片廠商構(gòu)成各具特征的ARM芯片3ARM的運用領(lǐng)域工業(yè)控制領(lǐng)域過程控制、電力控制、數(shù)控機(jī)床、ABS無線通訊領(lǐng)域基站、帶藍(lán)牙/定位等的手機(jī)/PDA、GPS網(wǎng)絡(luò)運用ADSL、路由器、交換機(jī)、VoIP消費類電子產(chǎn)品DVD、機(jī)頂盒、游戲機(jī)成像產(chǎn)品數(shù)碼相機(jī)、打印機(jī)、錄像機(jī)平安產(chǎn)品ATM機(jī)、POS機(jī)、考勤系統(tǒng)、SIM卡到目前為止,基于ARM技術(shù)的微處置器運用約占據(jù)了32位嵌入式微處置器75%以上的市場份額;全球80%的GSM/3G手機(jī)、99%的CDMA手機(jī)以及絕大多數(shù)PDA產(chǎn)品均采用ARM體系的嵌入式處置器,“掌上計算〞相關(guān)的一切領(lǐng)域皆為其所主宰;4ARM體系構(gòu)造的特點RISC簡單的構(gòu)造使ARM內(nèi)核非常小、功耗低、本錢低一致和固定長度的指令域,簡化了指令的譯碼,便于指令流水線設(shè)計采用裝載/保管構(gòu)造,數(shù)據(jù)處置操作只針對存放器的內(nèi)容,而不直接對存儲器進(jìn)展操作支持Thumb〔16位〕/ARM〔32位〕雙指令集,能很好的兼容8位/16位器件每條數(shù)據(jù)處置指令都對算術(shù)邏輯單元和移位器控制,實現(xiàn)了ALU和移位器的最大利用尋址方式靈敏簡單,執(zhí)行效率高地址自動添加和減少尋址方式,優(yōu)化程序循環(huán)多存放器裝載和存儲指令實現(xiàn)最大數(shù)據(jù)吞吐量一切指令的條件執(zhí)行實現(xiàn)最快速的代碼執(zhí)行5ARM處置器內(nèi)核流水線任務(wù)流程ARM體系構(gòu)造的版本ARM架構(gòu)自誕生至今已開展并定義了V1到V7七種不同的版本V1版架構(gòu)只在原型機(jī)ARM1中出現(xiàn)過支持根本的數(shù)據(jù)處置指令(無乘法)支持字節(jié)、半字和字的LOAD/STORE指令支持轉(zhuǎn)移指令,包括子程序調(diào)用及鏈接指令支持軟件中斷指令SWI尋址空間位64MB〔26位〕yyyy-M-7V2版架構(gòu)已廢棄不再運用支持乘法和乘加指令支持協(xié)處置器操作指令支持根本的存儲器與存放器交換指令SWP/SWPB支持快速中斷方式V3版架構(gòu)已廢棄不再運用尋址范圍擴(kuò)展到4GB〔32位〕快速中斷方式具有兩個以上的分組存放器添加形狀存放器CPSR/SPSR,及從異常處置前往的MSR/MRS指令,便于異常的處置添加了中止和未定義兩種處置器方式y(tǒng)yyy-M-8V4版架構(gòu)目前運用最廣的ARM體系構(gòu)造,ARM7、ARM8、ARM9和StrongARM都采用該版架構(gòu)添加了有/無符號的半字和有符號字節(jié)的Load/Store指令添加了16位Thumb指令集完善了軟件中斷SWI指令的功能添加了處置器的特權(quán)方式V5版架構(gòu)ARM10和XScale都采用該版架構(gòu)改良了ARM/Thumb形狀之間的切換效率;E-加強(qiáng)DSP指令集,包括全部算法操作和16位乘法操作;J-支持新的JAVA,提供字節(jié)代碼執(zhí)行的加速功能添加了帶有鏈接和交換指令BLX添加了計數(shù)前導(dǎo)零指令CLZ添加了軟件斷點指令為協(xié)處置器添加更多可選擇的指令9V6版架構(gòu)ARM11處置器采用該版架構(gòu)添加了多媒體功能擴(kuò)展SIMD,提高了嵌入式運用系統(tǒng)的音、視頻處置才干改良了內(nèi)存管理改良了混合端與不對齊數(shù)據(jù)支持,使得小端系統(tǒng)支持大端數(shù)據(jù)V7版架構(gòu)Cortex-A/M/R系列處置器采用該版架構(gòu)2005年發(fā)布,采用Thumb-2技術(shù)。 M系列→傳統(tǒng)單片機(jī)市場A系列→高端運用途置器市場R系列→實時性控制yyyy-M-10ARM處置器核與體系構(gòu)造的對應(yīng)關(guān)系核體
系
結(jié)
構(gòu)ARM1ARMv1ARM2ARMv2ARM2aS,ARM3ARMv2aARM6,ARM600,ARM610,ARM7,ARM700,ARM710ARMv3StrongARM,ARM8,ARM810ARMv4ARM7TDMI,ARM710T,ARM720T,ARM740T,ARM9TDMI,ARM920T,ARM940TARMv4TARM9E-S,ARM10TDMI,ARM1020EARMv5TEARM1136J(F)-S,ARM1176JZ(F)-S,ARM11MPCorARMv6ARM1156T2(F)-SARMv6T2ARMCortex-M,ARMCortex-R,ARMCortex-AARMv7ARM處置器〔核〕命名規(guī)那么ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}x——系列號y——存儲管理/維護(hù)單元z——CacheT——Thumb指令集D——JTAG調(diào)試器M——快速乘法器I——嵌入式跟蹤宏單元E——加強(qiáng)DSP指令J——Jazelle技術(shù)F——向量浮點單元S——可綜合的內(nèi)核ARM7TDMI-SARM926EJ-SARM966ESARM1022E2:帶MMU4:帶MPU6:無MMU和MPU0:規(guī)范cache2:小cache6:可變cache12ARM芯片、內(nèi)核和CPU的關(guān)系A(chǔ)RMCPU數(shù)據(jù)通路ARMCPU控制邏輯ARM內(nèi)核ARMCPUARM芯片ARM內(nèi)核項目ARM7ARM9ARM10ARM11流水線3568典型頻率MHz80150260335功耗mW/MHz0.060.19(+cache)0.5(+cache)0.4(+cache)性能MIPS/MHz0.971.11.31.2架構(gòu)馮
諾伊曼哈佛哈佛哈佛ARM處置器〔核〕比較ARM系列微處理器核特點ARM7ARM7TDMI:整數(shù)處理核ARM7TDMI處理器的可綜合版本;ARM720T:帶MMU的處理器核心,支持操作系統(tǒng);ARM7EJ-S:帶有DSP和JazelleTM
技術(shù),能夠?qū)崿F(xiàn)Java加速功能馮
諾伊曼體系結(jié)構(gòu);ARM7TDMI是目前應(yīng)用最廣的微處理器核ARM720T帶有MMU和8KB的指令數(shù)據(jù)混合cache;ARM7EJ-執(zhí)行ARMv5TEJ指令,5級流水線,提供Java加速指令,沒有存儲器保護(hù)。ARM9ARM920T:帶有獨立的16KB數(shù)據(jù)和指令Cache;ARM922T:帶有獨立的8位KB數(shù)據(jù)和指令Cache;ARM940T–包括更小數(shù)據(jù)和指令Cache和一個MPU基于ARM9TDMI,帶16位的Thumb指令集,增強(qiáng)代碼密度最多到35%;在0.13μm工藝下最高性能可達(dá)到300MIPS(Dhrystone2.1測試標(biāo)準(zhǔn));集成了數(shù)據(jù)和指令Chche;32位AMBA總線接口的MMU支持;可在0.18μm、0.15μm和0.13μm工藝的硅芯片上實現(xiàn)。ARM處置器〔核〕簡介yyyy-M-16ARM9EARM926EJ-S:Jazelle技術(shù),有MMU,可配置的數(shù)據(jù)和指令Cache,TCM接口;ARM946E-S:可配置的數(shù)據(jù)和指令Cache及TCM;ARM966E-S:針對要求高性能和低功耗的可預(yù)測的指令執(zhí)行時間的硬實時應(yīng)用設(shè)計ARM968E-S:最小、功耗最小的
ARM9E系列處理器,針對嵌入式實時應(yīng)用設(shè)計;ARM9E是針對微控制器、DSP和Java的單處理器解決方案;ARM
Jazelle
技術(shù)提供8倍的Java加速性能(ARM926EJ-S);5-級整數(shù)流水線;在0.13μm工藝下最高性能可達(dá)到300MIPS(Dhrystone2.1測試標(biāo)準(zhǔn));可選擇的
向量浮點單元VFP9協(xié)處理器指令優(yōu)秀海浮點性能,對于3D圖形加速和實時控制可達(dá)到
215MFLOPS。高性能的AHB總線,帶MMU可在0.18μm,0.15μm,0.13μm工藝的硅芯片上實現(xiàn)。ARM10EARM1020E:帶DSP指令集,在片調(diào)試功能,獨立的32KB數(shù)據(jù)和指令Cache,MMU支持;ARM1022E:與ARM1020E相同,只是獨立的數(shù)據(jù)和指令Cache變?yōu)?6KB;ARM1026EJ-S:同時具有MPU和MMU,可綜合版本;帶分支預(yù)測的6級整數(shù)流水線;在0.13μm工藝下最高性能可達(dá)到430MIPS(Dhrystone2.1測試標(biāo)準(zhǔn));對于3D圖形運算和實時控制采用VFP協(xié)處理器,浮點運算性能最高可達(dá)650MFLOPS;雙64位AMBA總線接口和64位內(nèi)部總路線接口;優(yōu)化的緩存結(jié)構(gòu)提高了處理器訪問低速存儲器的性能;可在0.18μm,0.15μm,0.13μm工藝的硅芯片上實現(xiàn)ARM11ARM11MPCore:可綜合的多處理器核,1至4個處理器可配置;ARM1136J(F)-S:可配置的數(shù)據(jù)和指令Cache,可提供1.9位的MPEG4編碼加速功能;ARM1156T2(F)-S:帶集成浮點協(xié)處理器,帶內(nèi)存保護(hù)單元MPU
;ARM1176JZ(F)-S:帶針對CPU和系統(tǒng)安全架構(gòu)擴(kuò)展的TrustZone技術(shù)。增強(qiáng)的Thumb、Jazelle、DSP擴(kuò)展支持;帶片上和系統(tǒng)安全TrustZone技術(shù)支持;在0.13μm工藝下最高可達(dá)到550MHz;MPCore在0.13μm工藝下最高性能可達(dá)到740MIPS(Dhrystone2.1測試標(biāo)準(zhǔn));支持多媒體指令SIMD;采用三種電源模式:全速/待命/休眠集成DMA的TCM低功耗、高性能。SecurCoreSC100:第一個32位安全處理器;、SC110:在SC100上增加密鑰協(xié)處理器;SC200:帶Jazelle技術(shù)的高級安全處理器;SC210:在SC200上增加密鑰協(xié)處理器SecurCore是專門為智能卡、安全I(xiàn)C提供的32位安全處理器,為電子商務(wù)、銀行、網(wǎng)絡(luò)、移動多媒體、公共交通提供安全解決方案;體積小、功耗低,代碼壓縮密度高;為快速增長的Java卡平臺提供Java加速功能;CortexCortex-A:面向應(yīng)用的微處理器,針對復(fù)雜操作系統(tǒng)和應(yīng)用程序設(shè)計;Cortex-R:針對實時系統(tǒng)的嵌入式處理器;Cortex-M:針對成本敏感應(yīng)用優(yōu)化的深度嵌入式處理器;2004年發(fā)布,提供增強(qiáng)的媒體和數(shù)字處理能力,增加了系統(tǒng)性能;支持ARM、Thumb、Thumb-2指令集;Thumb-2指令集提供了更高的代碼存儲密度,進(jìn)一步降低成本;Intel系列(Marvell)StrongARM:ARMv4體系XScale:ARMv5TE體系,增加MMX指令StrongARM主要應(yīng)用于手持設(shè)備和PDA,5級流水線,具有獨立的數(shù)據(jù)和指令Cache,不支持Thumb指令集,目前已停產(chǎn);XScale是目前Intel公司主推的高性能嵌入式處理器,分通用處理器、網(wǎng)絡(luò)處理器和I/O處理器三類。其中通用處理器有PXA25x、PXA26x、PXA27x三個系列,被廣泛應(yīng)用于智能手機(jī)、PDA領(lǐng)域。7.2ARM編程模型
ARM處置器的任務(wù)形狀A(yù)RM形狀執(zhí)行32位字方式的ARM指令Thumb形狀執(zhí)行16位半字方式的Thumb指令(P220)Jazelle形狀執(zhí)行可變長的、以字節(jié)為單位的 Jazelle〔Java〕指令(P220)留意:1.處置器復(fù)位后處于ARM形狀;2.處置器異常處置時進(jìn)入ARM形狀;3.假設(shè)處置器在Thumb形狀進(jìn)入異常,那么異常前往依然自動轉(zhuǎn)換到Thumb形狀;4.形狀切換不影響任務(wù)方式及存放器內(nèi)容。yyyy-M-20ARM處置器任務(wù)形狀的切換運用跳轉(zhuǎn)指令BX可將處置器內(nèi)核在ARM形狀和Thumb形狀之間進(jìn)展切換。;從Arm形狀切換到Thumb形狀LDRR0,=Lable+1BXR0;從Thumb形狀切換到ARM形狀LDRR0,=LableBXR0地址最低位為1,表示切換到Thumb形狀地址最低位為0,表示切換到ARM形狀跳轉(zhuǎn)地址標(biāo)號,最低2bit為0yyyy-M-21處理器模式說明備注用戶(usr)正常程序執(zhí)行模式不能直接切換到其它模式系統(tǒng)(sys)運行操作系統(tǒng)的特權(quán)任務(wù)與用戶模式類似,但具有可以直接切換到其它模式等特權(quán)快中斷(fiq)支持高速數(shù)據(jù)傳輸及通道處理FIQ異常響應(yīng)時進(jìn)入此模式中斷(irq)用于通用中斷處理IRQ異常響應(yīng)時進(jìn)入此模式管理(svc)操作系統(tǒng)保護(hù)模式系統(tǒng)復(fù)位和軟件中斷響應(yīng)時進(jìn)入此模式中止(abt)用于支持虛擬內(nèi)存和/或存儲器保護(hù)在ARM7TDMI沒有大用處未定義(und)支持硬件協(xié)處理器的軟件仿真未定義指令異常響應(yīng)時進(jìn)入此模式ARM處置器的運轉(zhuǎn)方式除用戶方式外,其它方式均為特權(quán)方式。ARM內(nèi)部存放器和一些片內(nèi)外設(shè)在硬件設(shè)計上只允許〔或者可選為只允許〕特權(quán)方式下訪問。此外,特權(quán)方式可以自在的切換處置器方式,而用戶方式不能直接切換到別的方式。未定義(und)中止(abt)管理(svc)中斷(irq)快中斷(fiq)系統(tǒng)(sys)這五種方式稱為異常方式。它們除了可以經(jīng)過程序切換進(jìn)入外,也可以由特定的異常進(jìn)入。每種異常方式都有一些獨立的存放器,以防止異常退出時用戶方式的形狀不可靠。這兩種方式都不能由異常進(jìn)入,而且它們運用完全一樣的存放器組。系統(tǒng)方式是特權(quán)方式,操作系統(tǒng)在該方式下訪問用戶方式的存放器就比較方便,而且操作系統(tǒng)的一些特權(quán)義務(wù)可以運用這個方式訪問一些受控的資源。系統(tǒng)(sys)用戶(usr)寄存器類別寄存器在匯編中的名稱各模式下實際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計數(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無SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq無CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用戶無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形狀各方式下的存放器組織R0~R7為不分組存放器留意:在異常處置中進(jìn)展方式切換時,能夠會破壞存放器中的數(shù)據(jù),需求維護(hù);R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R8~R14為分組存放器。不同處置器方式下它們對應(yīng)不同的物理存放器。R8~R12有一個分組公用于FIQ方式。這樣在發(fā)生FIQ中斷后,可以加速FIQ的處置速度。R14為鏈接存放器LR,具有兩個特殊功能:用于保管子程序前往地址;根據(jù)不同的異常方式保管為異常前往地址〔有些異常有一個小的固定偏移量〕。Lable程序1程序2R14R14〔LR〕存放器與子程序調(diào)用BLLable地址A???MOVPC,LRR14(地址A)Lable???1.程序1執(zhí)行過程中調(diào)用程序2;2.程序跳轉(zhuǎn)至標(biāo)號Lable,執(zhí)行程序2。3.同時硬件將“BLLable〞的下一條指令所在地址存入R14〔LR〕;4.程序2執(zhí)行完后,將R14〔LR〕存放器的內(nèi)容放入PC,前往程序1繼續(xù)執(zhí)行;yyyy-M-241.異常前往地址的處置與子程序調(diào)用類似,都是由硬件自動完成。區(qū)別在于有些異常有一個小常量偏移。2.當(dāng)發(fā)生異常嵌套時,這些異常之間能夠會發(fā)生沖突。如用戶方式下發(fā)生IRQ中斷嵌套時,R14_irq中低級中斷前往主程序的地址將被高級中斷的前往地址所覆蓋;R14〔LR〕存放器與異常處置R14R14_irq用戶方式下的程序0IRQ方式下的程序1……指令m+1...指令m+n指令m地址A地址A未被破壞IRQ方式下的程序2……return指令j+1...指令j+k指令j地址B地址BR14_irq被破壞returnreturn1.執(zhí)行用戶方式下的程序0;2.發(fā)生IRQ中斷后,硬件將帶偏移的前往地址存入IRQ方式下的R14_irq存放器,用戶方式下的R14沒有被破壞;3.IRQ效力程序1執(zhí)行完后,可將R14_irq存放器的內(nèi)容減去偏移量后存入PC,前往之前被中斷的程序;4.假設(shè)在IRQ處置程序中翻開IRQ中斷,并且再次發(fā)生IRQ中斷;5.硬件將前往地址保管在R14_irq存放器中,原來保管的前往地址信息將被覆蓋,呵斥錯誤;6.在程序2前往到程序1,然后在前往到用戶方式下被中斷的程序時,發(fā)生錯誤,將不能正確前往;處理方法是確保R14的對應(yīng)版本在發(fā)生中斷嵌套時不再保管任何有意義的值〔將R14入?!?,或者切換到其它處置器方式下。yyyy-M-25R15〔PC〕存放器的讀操作ARM指令以字為單位,因此R15的最低兩位總是為0;R15的值是處置器正在取指的指令地址。由于有流水線,它與當(dāng)前正在執(zhí)行指令的地址之間存在一個偏移〔對于確定的ARM芯片該值為常量〕。當(dāng)運用指令STR/STM保管R15時,不同芯片中(能夠是三級流水的ARM7或五級流水的ARM9)PC偏移量能夠是8或12,因此需事先計算出該芯片的PC偏移量。MOVR0,PC??????PCPC-4PC-8正在執(zhí)行正在譯碼正在取指流水線、ARM形狀下指令地址程序代碼SUBR1,PC,#4;將正在譯碼的指令的地址保管在R1中STRPC,[R0] ;保管當(dāng)前PC值=正在執(zhí)行的指令的地址+偏移量LDRR0,[R0] ;然后重裝SUBR0,R0,R1;計算偏移量是同一條指令寫入R15的值被當(dāng)作指令地址,程序?qū)倪@個地址處繼續(xù)執(zhí)行〔相當(dāng)于執(zhí)行無條件跳轉(zhuǎn)〕;由于ARM指令以字為邊境,因此寫入R15的值最低兩位通常為0b00。詳細(xì)的規(guī)那么取決于內(nèi)核構(gòu)造的版本:在V3及以下版本中,寫入R15的值的最低兩位被忽略,因此跳轉(zhuǎn)地址由指令的實踐目的地址〔寫入R15的值〕和0xFFFFFFFC相與得到;在V4及以上版本中,寫入R15的值的最低兩位假設(shè)不為0,結(jié)果將不可預(yù)測。R15〔PC〕存放器的寫操作yyyy-M-27NZCV——IM0M1M2M3M4TF—...313029282726876543210程序形狀存放器PSR條件代碼標(biāo)志保管控制位溢出oVerflow進(jìn)/借位擴(kuò)展Carry零Zero負(fù)Negative制止IRQ制止FIQThumb形狀方式ModeNZCVIM0M1M2M3M4TF普通指令帶S后綴時,執(zhí)行結(jié)果會影響條件代碼標(biāo)志;但有一些指令的執(zhí)行總是會影響條件代碼標(biāo)志。一切ARM指令都可由條件域來指定能否需求執(zhí)行,而Thumb指令中只需分支指令可按條件執(zhí)行。每個異常方式還有SPSR用于保管在異常發(fā)生之前的CPSR。CPSR和SPSR可經(jīng)過特殊指令〔MRS/MSR〕進(jìn)展訪問。28M[4:0]模式可見的Thumb狀態(tài)寄存器可見的ARM狀態(tài)寄存器10000用戶R0~R7,SP,LR,PC,CPSRR0~R14,PC,CPSR10001快中斷R0~R7,SP_fiq,LR_fiq,PC,CPSR,SPSR_fiqR0~R7,R8_fiq~R14_fiq,PC,CPSR,SPSR_fiq10010中斷R0~R7,SP_irq,LR_irq,PC,CPSR,SPSR_fiqR0~R12,R13_irq,R14_irq,PC,CPSR,SPSR_irq10011管理R0~R7,SP_svc,LR_svc,PC,CPSR,SPSR_svcR0~R12,R13_svc,R14_svc,PC,CPSR,SPSR_svc10111中止R0~R7,SP_abt,LR_abt,PC,CPSR,SPSR_abtR0~R12,R13_abt,R14_abt,PC,CPSR,SPSR_abt11011未定義R0~R7,SP_und,LR_und,PC,CPSR,SPSR_undR0~R12,R13_und,R14_und,PC,CPSR,SPSR_und11111系統(tǒng)R0~R7,SP,LR,PC,CPSRR0~R14,PC,CPSR程序形狀存放器CPSR方式位設(shè)置表Thumb形狀與ARM形狀的存放器映射關(guān)系
R8
R9
R10
R11
R12
堆棧指針(R13)
銜接存放器(R14)
程序計數(shù)器(R15)
低寄存器高寄存器Thumb形狀下高存放器〔R8~R15〕不是規(guī)范存放器集的一部分,但可以運用MOV、CMP和ADD指令對高存放器操作。30異常exception異常指正常執(zhí)行的程序流因故被暫時中止;ARM支持7種異常類型(P231表7-6)、5種異常方式;假設(shè)同時發(fā)生多個異常,將按優(yōu)先級順序處置;異常類型對應(yīng)異常模式優(yōu)先級復(fù)位Supervisor1(最高優(yōu)先級)數(shù)據(jù)中止Abort2FIQFIQ3IRQIRQ4指令預(yù)取中止Abort5未定義指令Undefined6SWISupervisor7(最低優(yōu)先級)優(yōu)先級降低yyyy-M-31復(fù)位異常Reset當(dāng)nRESET引腳信號變?yōu)榈碗娖匠?,ARM立刻停頓執(zhí)行當(dāng)前指令,產(chǎn)生復(fù)位異常;當(dāng)nRESET再次變?yōu)楦唠娖胶?,ARM處置器執(zhí)行以下操作:1.強(qiáng)迫CPSR中的M[4:0]變?yōu)閎10011,進(jìn)入管理方式;2.置位CPSR中的I和F位;3.清零CPSR中的T位;4.強(qiáng)迫PC從地址0x00開場取第一條指令;5.前往到ARM形狀并恢復(fù)執(zhí)行;yyyy-M-32中止異常Abort中止異常包括指令預(yù)取中止和數(shù)據(jù)中止;預(yù)取中止時,ARM將預(yù)取的指令標(biāo)志為無效,但在指令到達(dá)流水線的執(zhí)行階段時才進(jìn)入異常。假設(shè)指令在流水線中由于發(fā)生分支而沒有被執(zhí)行,中止將不會發(fā)生。數(shù)據(jù)中止時,數(shù)據(jù)訪問被記為無效,中止程序應(yīng)根據(jù)中止緣由作出處置,使數(shù)據(jù)可以被訪問。中止異常表示對存儲器的訪問失敗,這種機(jī)制實踐保證了虛擬存儲技術(shù)的實現(xiàn)。yyyy-M-33中斷異?!睮RQ、FIQ〕中斷懇求〔IRQ〕是一個由nIRQ引腳信號低電平所產(chǎn)生的正常中斷〔nIRQ是內(nèi)核信號,對用戶不可見〕。IRQ的優(yōu)先級低于FIQ,對于FIQ異常它是被屏蔽的。在一個特權(quán)方式中可經(jīng)過置位CPSR中的I位來制止IRQ??焖僦袛鄳┣?FIQ)適用于對一個突發(fā)事件的快速呼應(yīng)。ARM形狀中FIQ方式多設(shè)置了7個分組存放器〔R8_fiq~R14_fiq〕可加速上下文切換的速度。在一個特權(quán)方式中可經(jīng)過置位CPSR中的F位來制止FIQ異常。34中斷延遲當(dāng)允許FIQ中斷時,最壞情況下FIQ的中斷延遲由以下幾部分組成,即①Tsyncmax(懇求經(jīng)過同步器的最長時間)。Tsyncmax為4個處置器周期。②Tldm(最長指令的完成時間)。最長指令是加載包括PC在內(nèi)的一切存放器的LDM指令。在零等待形狀的系統(tǒng)中,Tldm為20個處置器周期。③Texc(數(shù)據(jù)中止異常進(jìn)入時間)。Texc為3個處置器周期。④Tfiq(FIQ進(jìn)入時間)。Tfiq為2個處置器周期??傃舆t是29個處置器周期。在運用40MHz處置器時鐘的系統(tǒng)中,總延遲超越0.7ms。當(dāng)延遲終了時,處置器執(zhí)行在0x1C處的指令。對于最大的IRQ延遲,其計算與FIQ的類似。假設(shè)必需允許FIQ有更高的優(yōu)先級,那么其結(jié)果是,進(jìn)入IRQ處置程序的延遲時間是隨機(jī)的。未定義指令異常當(dāng)ARM處置器遇到一條本人和系統(tǒng)內(nèi)任何協(xié)處置器都無法處置的指令時,將產(chǎn)生未定義指令圈套。軟件可運用這一機(jī)制經(jīng)過模擬未定義的協(xié)處置器指令來擴(kuò)展ARM指令集。yyyy-M-36軟件中斷異?!睸WI〕執(zhí)行指令SWI可進(jìn)入軟件中斷異常;該異常使處置器從用戶方式進(jìn)入管理方式,通常用于懇求一個特定的管理函數(shù)〔即調(diào)用系統(tǒng)功能函數(shù)〕。yyyy-M-37異常向量〔表〕向量地址異常類型進(jìn)入時模式進(jìn)入時I狀態(tài)進(jìn)入時F狀態(tài)0x00000000復(fù)位管理禁止禁止0x00000004未定義指令未定義IF0x00000008軟件中斷(SWI)管理禁止F0x0000000C預(yù)取中止(指令)中止IF0x00000010數(shù)據(jù)中止中止IF0x00000014保留保留——0x00000018IRQ中斷禁止F0x0000001CFIQ快中斷禁止禁止異常發(fā)生時處置器將PC值強(qiáng)迫設(shè)置為對應(yīng)的異常向量;異常向量處通常只存放一條跳轉(zhuǎn)指令,指向真正的異常處置 程序;異常向量表的后面普通緊跟著存放FIQ的異常處置程序,這樣 可以減少一次跳轉(zhuǎn),提高FIQ的呼應(yīng)速度;yyyy-M-38異常呼應(yīng)過程在LR中保管前往地址信息; ARM形狀下將當(dāng)前指令地址加4或加8復(fù)制到LR Thumb形狀下將當(dāng)前指令地址加2、4或加8復(fù)制到LR將CPSR復(fù)制到適當(dāng)?shù)腟PSR中;將CPSR方式位強(qiáng)迫設(shè)置為與異常類型相對應(yīng)的值;強(qiáng)迫PC從相關(guān)的異常向量處取指;注1:中斷異常時置位中斷制止標(biāo)志可以防止不受控制的異常嵌套2:異??偸窃贏RM形狀中處置。假設(shè)處置器處于Thumb形狀時發(fā)生異常,那么異常向量地址裝入PC時會自動切換到ARM形狀。取決于異常類型yyyy-M-39程序AIRQ效力程序系統(tǒng)方式IRQ方式程序存放器組異常呼應(yīng)〔進(jìn)入〕過程1.程序運轉(zhuǎn)用戶程序,假定當(dāng)前處置器形狀為Thumb形狀、允許IRQ中斷;2.用戶程序運轉(zhuǎn)時發(fā)生IRQ中斷,硬件完成以下動作:LR_sysSPSR_irqLR_irqLRPCCPSRSPSRSYS1?0...????MODTFI...NZCV置位I位〔制止IRQ中斷〕清零T位〔進(jìn)入ARM形狀〕設(shè)置MOD位,切換處置器模 式至IRQ方式將前往地址信息存入IRQ 方式的LR存放器將CPSR存放器內(nèi)容存
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業(yè)材料購銷合同案例3篇
- 文物運輸公司招投標(biāo)3篇
- 數(shù)據(jù)交換與信息交換服務(wù)3篇
- 安全騎行責(zé)任如山3篇
- 攔水壩建設(shè)合同范本3篇
- 摩托車買賣協(xié)議書3篇
- 撤銷委托書有哪些影響3篇
- 教育軟件銷售業(yè)務(wù)員合同3篇
- 教育培訓(xùn)勞動合同教學(xué)與課程開發(fā)
- 工程安全責(zé)任書范本3篇
- 電動托盤搬運車操作規(guī)程范文(2篇)
- 教育部中國特色學(xué)徒制課題:基于中國特色學(xué)徒制的“金教師”團(tuán)隊建設(shè)研究
- 政府采購評審專家考試試題庫(完整版)
- 色彩原理與應(yīng)用智慧樹知到期末考試答案章節(jié)答案2024年上海出版印刷高等??茖W(xué)校
- GB/T 34281-2017全民健身活動中心分類配置要求
- 生物信息學(xué)在微生物研究領(lǐng)域中的應(yīng)用
- 分布式光伏發(fā)電項目并網(wǎng)驗收意見單
- 看聽學(xué)一冊單詞大全
- 網(wǎng)站隱私政策模板
- 滬教版生物科學(xué)八年級上冊重點知識點總結(jié)
- 己內(nèi)酰胺的生產(chǎn)工藝.
評論
0/150
提交評論