




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第3章ARM體系構(gòu)造1第3章ARM體系構(gòu)造3.1ARM微處置器根底3.2ARM的內(nèi)核系列3.3ARM微處置器的指令系統(tǒng)3.4ARM內(nèi)存管理單元23.1ARM微處置器根底ARM的運轉(zhuǎn)方式ARM的任務(wù)形狀A(yù)RM的存放器組織ARM的異常ARM的存儲器格式ARM的特點和優(yōu)勢3ARM的運轉(zhuǎn)方式ARM微處置器支持7種運轉(zhuǎn)方式,分別為:用戶方式〔usr〕:ARM處置器正常的程序執(zhí)行形狀快速中斷方式〔fiq〕:用于高速數(shù)據(jù)傳輸或通道處置中斷方式〔irq〕:用于通用的中斷處置管理方式〔svc〕:操作系統(tǒng)運用的維護方式終止方式〔abt〕:當(dāng)數(shù)據(jù)或指令預(yù)取終止時進入該方式,可用于虛擬存儲及存儲維護。系統(tǒng)方式〔sys〕:運轉(zhuǎn)具有特權(quán)的操作系統(tǒng)義務(wù)。未定義方式〔und〕:當(dāng)未定義的指令執(zhí)行時進入該方式,可用于支持硬件協(xié)處置器的軟件仿真。4ARM的任務(wù)形狀
ARM微處置器的任務(wù)形狀普通有兩種,并可在兩種形狀之間切換:ARM形狀,此時處置器執(zhí)行32位的字對齊的ARM指令Thumb形狀,此時處置器執(zhí)行16位的、半字對齊的Thumb指令5ARM的存放器組織
ARM微處置器共有37個32位存放器,其中31個為通用存放器,6個為形狀存放器。但是這些存放器不能被同時訪問。在某種時辰,通用存放器R14~R0、程序計數(shù)器PC、一個或兩個形狀存放器都是可訪問的。6ARM的存放器組織7ARM的存放器組織8ARM的存放器組織9ARM的存放器組織PSR存放器的各個位:中斷制止位I、FThumb標(biāo)志位運轉(zhuǎn)方式位M[4:0]10ARM的存放器組織M[4:0]處理器模式0b10000用戶模式0b10001FIQ0b10010IRQ0b10011管理模式0b10111終止模式0b11011未定義模式0b11111系統(tǒng)模式形狀存放器方式位的含義11ARM的異常異常類型具體含義復(fù)位(Reset)當(dāng)處理器的復(fù)位電平有效時,產(chǎn)生復(fù)位異常,程序跳轉(zhuǎn)到復(fù)位異常處理程序處執(zhí)行。未定義指令(Undefined)當(dāng)ARM處理器或協(xié)處理器遇到不能處理的指令時,產(chǎn)生未定義指令異常。可使用該異常機制進行軟件仿真。軟件中斷(SWI)該異常由執(zhí)行SWI指令產(chǎn)生,可用于用戶模式下的程序調(diào)用特權(quán)操作指令。可使用該異常機制實現(xiàn)系統(tǒng)功能調(diào)用。指令預(yù)取終止(PrefetchAbort)若處理器預(yù)取指令的地址不存在,或該地址不允許當(dāng)前指令訪問,存儲器會向處理器發(fā)出終止信號,但當(dāng)預(yù)取的指令被執(zhí)行時,才會產(chǎn)生指令預(yù)取終止異常。數(shù)據(jù)終止(DataAbort)若處理器數(shù)據(jù)訪問指令的地址不存在,或該地址不允許當(dāng)前指令訪問時,產(chǎn)生數(shù)據(jù)終止異常。外部中斷請求(IRQ)當(dāng)處理器的外部中斷請求引腳有效,且CPSR中的I位為0時,產(chǎn)生IRQ異常。系統(tǒng)的外設(shè)可通過該異常請求中斷服務(wù)。快速中斷請求(FIQ)當(dāng)處理器的快速中斷請求引腳有效,且CPSR中的F位為0時,產(chǎn)生FIQ異常。12ARM的異常返回指令以前的狀態(tài)ARMThumbBLMOVPC,R14PC+4PC+2SWIMOVSPC,R14_svcPC+4PC+2UDEFMOVSPC,R14_undPC+4PC+2FIQSUBSPC,R14_fiq,#4PC+4PC+4IRQSUBSPC,R14_irq,#4PC+4PC+4PABTSUBSPC,R14_abt,#4PC+4PC+4DABTSUBSPC,R14_abt,#8PC+8PC+813ARM的異常1〔最高〕復(fù)位2數(shù)據(jù)終止3FIQ4IRQ5預(yù)取指令終止6〔最低〕未定義指令、SWIARM異常的優(yōu)先級14ARM的存儲器格式ARM體系構(gòu)造將存儲器看作是從零地址開場的字節(jié)的線性組合。從第0字節(jié)到第3字節(jié)放置第一個存儲的字?jǐn)?shù)據(jù),從第4個字節(jié)到第7個字節(jié)放置第二個存儲的字?jǐn)?shù)據(jù),依次陳列。作為32位的微處置器,ARM體系構(gòu)造所支持的最大尋址空間為4GB〔32位〕。ARM體系構(gòu)造可以用兩種方法存儲字?jǐn)?shù)據(jù),稱之為大端格式和小端格式。15ARM的存儲器格式大端格式16ARM的存儲器格式小端格式。17ARM的特點和優(yōu)勢1.內(nèi)核編程體系多種方式的切換眾多的通用存放器32位地址/數(shù)據(jù)操作指令集中的特殊功能高效的C和C++編譯器硬件乘法器Thumb指令集E加強DSP指令Jazzle技術(shù)2.協(xié)處置器MMUMPUVFP3.AMBA(先進控制器總線體系)4.嵌入式ICE、低功耗、小體積183.2ARM的內(nèi)核系列ARM內(nèi)核分類與系列ARM體系構(gòu)造版本19ARM內(nèi)核分類與系列ARM內(nèi)核系列ARM7系列ARM9系列ARM9E系列ARM10E系列SecurCore系列StrongARM/XscaleARM11系列Cortex20ARM內(nèi)核分類與系列1994-2004年發(fā)布的ARM內(nèi)核21ARM內(nèi)核分類與系列處置器內(nèi)核內(nèi)核分類ARM7 ARM7DMI(-S) ARM720T ARM7EJ-SARM9 ARM920T ARM922TARM9E ARM926EJ-S ARM946E-S ARM966E-S ARM968E-SARM10EARM1020E ARM1022E ARM1026EJ-S處置器內(nèi)核 內(nèi)核分類ARM11 ARM1J(F)-S ARM1156T2(F)-S ARM1176JZ(F)-SSecurCoreSC100 SC110 SC200 SC210StrongARM Xscale 22ARM7內(nèi)核ARM7TDMIARM7TDMI-SARM720TARM7EJ-S23ARM9內(nèi)核ARM920TARM922T24ARM9E內(nèi)核
ARM926EJ-SARM946E-SARM966E-SARM968E-S25ARM10E內(nèi)核
ARM1020EARM1026EJ-S26ARM11內(nèi)核
ARM1J(F)-SARM1156T2(F)-SARM1176JZ(F)-S27SecurCore內(nèi)核
SC100/SC110SC200/SC21028其他ARM內(nèi)核
StrongARMIntelXScaleCortexARMCortexA〔運用內(nèi)核〕ARMCortexR〔實時內(nèi)核〕ARMCortexM〔微控制器〕29ARM體系構(gòu)造版本
ARMV1體系是最初的版本,只需26位的尋址空間,沒有乘法指令,最終也沒有商業(yè)化。ARMV2體系與V1體系同為26位尋址空間具有乘法和乘加指令,支持協(xié)處置器。ARMV3體系的尋址范圍擴展到32位,具有乘法和乘加指令,支持協(xié)處置器。ARMV4體系添加了半字存儲操作,對調(diào)試的支持以及支持嵌入的ICE。ARMV5體系添加了DSP指令支持和對Java指令的支持。ARMV6體系添加了媒體指令,ARMv6指令集合中參與了超越60條SIMD單指令多數(shù)據(jù)指令。ARMV7體系定義了三種獨立的內(nèi)核型--A〔運用領(lǐng)域〕,R〔實時領(lǐng)域〕,M〔控制領(lǐng)域〕。303.2ARM微處置器的指令系統(tǒng)ARM指令系統(tǒng)的概述ARM的尋址方式ARM的指令集Thumb的指令集31ARM指令系統(tǒng)的概述ARM微處置器指令是加載/存儲型的,即指令集僅能處置存放器中的數(shù)據(jù),處置結(jié)果都要放回存放器中,對系統(tǒng)存儲器的訪問那么需求專門的加載/存儲指令來完成ARM指令集分為六類:跳轉(zhuǎn)指令數(shù)據(jù)處置指令程序形狀存放器〔PSR〕處置指令加載/存儲指令協(xié)處置器指令異常產(chǎn)生指令32ARM指令系統(tǒng)的概述助記符指令功能描述ADC帶進位加法指令A(yù)DD加法指令A(yù)ND邏輯與指令B跳轉(zhuǎn)指令BIC位清零指令BL帶返回的跳轉(zhuǎn)指令BLX帶返回和狀態(tài)切換的跳轉(zhuǎn)指令BX帶狀態(tài)切換的跳轉(zhuǎn)指令CDP協(xié)處理器數(shù)據(jù)操作指令CMN比較反值指令CMP比較指令EOR異或指令LDC存儲器到協(xié)處理器的數(shù)據(jù)傳輸指令LDM加載多個寄存器指令LDR存儲器到寄存器的數(shù)據(jù)傳輸指令MCR從ARMMLA乘加運算指令MOV數(shù)據(jù)傳送指令
助記符指令功能描述MRC從協(xié)處理器寄存器到ARMMRS傳送CPSRMSR傳送通用寄存器到CPSRMUL32MLA32MVN數(shù)據(jù)取反傳送指令ORR邏輯或指令RSB逆向減法指令RSC帶借位的逆向減法指令SBC帶借位減法指令STC協(xié)處理器寄存器寫入存儲器指令STM批量內(nèi)存字寫入指令STR寄存器到存儲器的數(shù)據(jù)傳輸指令SUB減法指令SWI軟件中斷指令SWP交換指令TEQ相等測試指令TST位測試指令33ARM指令的格式一條典型的ARM指令編碼格式為:Cond001OpcodeSRnRdOperand2011121516192021242527283178一條典型的ARM指令語法格式為:<Opcode>{<cond>}{s}<Rd>,<Rn>{,<Operand2>}Opcode:指令操作碼。cond:指令的條件碼。S:決議指令的操作能否影響cpsr的值。Rd:目的存放器編碼。Rn:包含第一個操作數(shù)的存放器編碼。Operand2:第2操作數(shù)。34條件執(zhí)行每條ARM指令包含4位條件碼域<cond>,它占用指令編碼的最高四位[31:28]。條件編碼共24=16種,其中,15種用于指令的條件碼。每種條件碼用2個英文縮寫字符表示。ARM處置器根據(jù)指令的執(zhí)行條件能否滿足,決議當(dāng)前指令能否執(zhí)行。只需在cpsr中的條件標(biāo)志位滿足指定的條件時,指令才會被執(zhí)行。不符合條件的代碼依然占用一個時鐘周期〔相當(dāng)于一個NOP指令〕。書寫時,條件碼的位置在指令助記符的后面〔因此也稱為條件后綴。〕,例如: MOVEQR0,R1;35ARM指令系統(tǒng)的概述
條件碼助記符后綴標(biāo)志含義0000EQZ置位相等0001NEZ清零不相等0010CSC置位無符號數(shù)大于或等于0011CCC清零無符號數(shù)小于0100MIN置位負數(shù)0101PLN清零正數(shù)或零0110VSV置位溢出0111VCV清零未溢出1000HIC置位無符號數(shù)大于1001LSC清零無符號數(shù)小于或等于1010GEN等于V帶符號數(shù)大于或等于1011LTN不等于V帶符號數(shù)小于1100GTZ清零且(N等于V)帶符號數(shù)大于1101LEZ置位或(N不等于V)帶符號數(shù)小于或等于1110AL忽略無條件執(zhí)行36ARM的尋址方式-1立刻尋址立刻尋址也叫立刻數(shù)尋址,這是一種特殊的尋址方式,操作數(shù)本身就在指令中給出,只需取出指令也就取到了操作數(shù)。這個操作數(shù)被稱為立刻數(shù),對應(yīng)的尋址方式也就叫做立刻尋址。例如以下指令:ADDR0,R0,#1;R0←R0+1ADDR0,R0,#0x3f;R0←R0+0x3f在以上兩條指令中,第二個源操作數(shù)即為立刻數(shù),要求以“#〞為前綴,對于以十六進制表示的立刻數(shù),還要求在“#〞后加上“0x〞或“&〞。37ARM的尋址方式-2存放器尋址存放器尋址就是利用存放器中的數(shù)值作為操作數(shù),這種尋址方式是各類微處置器經(jīng)常采用的一種方式,也是一種執(zhí)行效率較高的尋址方式。以下指令:ADDR0,R1,R2;R0←R1+R2該指令的執(zhí)行效果是將存放器R1和R2的內(nèi)容相加,其結(jié)果存放在存放器R0中。38ARM的尋址方式-3存放器間接尋址 存放器間接尋址就是以存放器中的值作為操作數(shù)的地址,而操作數(shù)本身存放在存儲器中。例如以下指令: LDRR0,[R1];R0←[R1] STRR0,[R1];[R1]←R0 第一條指令將以R1的值為地址的存儲器中的數(shù)據(jù)傳送到R0中。 第二條指令將R0的值傳送到以R1的值為地址的存儲器中。39ARM的尋址方式-4基址變址尋址 基址變址尋址就是將存放器〔該存放器普通稱作基址存放器〕的內(nèi)容與指令中給出的地址偏移量相加,從而得到一個操作數(shù)的有效地址。變址尋址方式常用于訪問某基地址附近的地址單元。采用變址尋址方式的指令常見有以下幾種方式,如下所示: LDRR0,[R1,#4];R0←[R1+4] LDRR0,[R1,#4]!;R0←[R1+4]、R1←R1+4 LDRR0,[R1],#4;R0←[R1]、R1←R1+4 LDRR0,[R1,R2];R0←[R1+R2] 在第一條指令中,將存放器R1的內(nèi)容加上4構(gòu)成操作數(shù)的有效地址,從而獲得操作數(shù)存入存放器R0中。在第二條指令中,將存放器R1的內(nèi)容加上4構(gòu)成操作數(shù)的有效地址,從而獲得操作數(shù)存入存放器R0中,然后,R1的內(nèi)容自增4個字節(jié)。留意:“!〞表示數(shù)據(jù)傳輸終了后,更新基址存放器的值,但基址存放器不能為R15—PC。40ARM的尋址方式-5多存放器尋址 采用多存放器尋址方式,一條指令可以完成多個存放器值的傳送。這種尋址方式可以用一條指令完成傳送最多16個通用存放器的值。以下指令: LDMIAR0,{R1,R2,R3,R4};R1←[R0] ;R2←[R0+4] ;R3←[R0+8] ;R4←[R0+12] 該指令的后綴IA表示在每次執(zhí)行完加載/存儲操作后,R0按字長度添加,因此,指令可將延續(xù)存儲單元的值傳送到R1~R4。41ARM的尋址方式-6跳轉(zhuǎn)尋址相對尋址以程序計數(shù)器PC當(dāng)前值為基地址,指令中的標(biāo)號作為偏移量,將兩者相加之后得到操作數(shù)的有效地址。例如:BL NEXT ;跳轉(zhuǎn)到子程序NEXT處執(zhí)行…….NEXT…….MOVPC,LR ;從子程序中前往42ARM的尋址方式-7堆棧尋址 堆棧是一種數(shù)據(jù)構(gòu)造,按先進后出〔FirstInLastOut,F(xiàn)ILO〕的方式任務(wù),運用一個稱作堆棧指針的公用存放器指示當(dāng)前的操作位置,堆棧指針總是指向棧頂。 當(dāng)堆棧指針指向最后壓入堆棧的數(shù)據(jù)時,稱為滿堆棧〔FullStack〕,而當(dāng)堆棧指針指向下一個將要放入數(shù)據(jù)的空位置時,稱為空堆棧〔EmptyStack〕。同時,根據(jù)堆棧的生成方式,又可以分為遞增堆棧〔AscendingStack〕和遞減堆棧〔DecendingStack〕,當(dāng)堆棧由低地址向高地址生成時,稱為遞增堆棧,當(dāng)堆棧由高地址向低地址生成時,稱為遞減堆棧。留意:不要以為空堆棧就是沒有內(nèi)容的堆棧,滿堆棧就是沒有空間的堆棧。43ARM尋址方式總結(jié)ARM的尋址方式采用加載/存儲方式,因此沒有直接在內(nèi)存中處置數(shù)據(jù)的尋址方式。ARM尋址的字加載-存儲尋址是4字節(jié)對齊,半字加載是2字節(jié)對齊,不對齊不能訪問。ARM多存放器的尋址方式可以加快某些程序的執(zhí)行效率。留意:以上ARM尋址方式是適用于一切ARM體系的,包括ARM7的馮.諾依曼構(gòu)造和ARM9及以上的哈佛構(gòu)造。44ARM指令集同一個體系的ARM內(nèi)核的指令集是一樣的,但是每條指令運轉(zhuǎn)的時間能夠不同。45ARM指令集:跳轉(zhuǎn)指令跳轉(zhuǎn)實現(xiàn)的兩種方法:1〕運用專門的跳轉(zhuǎn)指令2〕直接向PC寫入跳轉(zhuǎn)地址〔保管斷點,4GB延續(xù)線性地址空間〕ARM指令集中的跳轉(zhuǎn)指令可以完成從當(dāng)前指令向前或向后的32MB的地址空間的跳轉(zhuǎn),包括以下4條指令:B跳轉(zhuǎn)指令,例如:BLabel;程序無條件跳轉(zhuǎn)至Label處BL帶前往的跳轉(zhuǎn)指令BLX帶前往和形狀切換的跳轉(zhuǎn)指令BX帶形狀切換的跳轉(zhuǎn)指令46ARM指令集:數(shù)據(jù)處置指令傳送指令:存放器之間數(shù)據(jù)傳輸MOV數(shù)據(jù)傳送指令MVN數(shù)據(jù)取反傳送指令比較指令:不保管結(jié)果,只更新CPSR,即使不加S也自動更新CMP比較指令CMN反值比較指令TST位測試指令TEQ相等測試指令算術(shù)指令:保管結(jié)果,更新CPSR標(biāo)志位ADD加法指令A(yù)DC帶進位加法指令SUB減法指令SBC帶借位減法指令RSB逆向減法指令RSC帶借位的逆向減法指令A(yù)ND邏輯與指令ORR邏輯或指令EOR邏輯異或指令BIC位去除指令47ARM指令集:乘法指令乘法指令與乘加指令:MUL32位乘法指令MLA32位乘加指令SMULL64位有符號數(shù)乘法指令SMLAL64位有符號數(shù)乘加指令UMULL64位無符號數(shù)乘法指令UMLAL64位無符號數(shù)乘加指令例如:MLASR0,R1,R2,R3;什么意思呢???R0=R1XR2+R3,同時設(shè)置CPSR相關(guān)條件標(biāo)志位48加載/存儲指令–存放器存儲器之間傳送數(shù)據(jù)單存放器加載存儲指令:LDR字?jǐn)?shù)據(jù)加載指令LDRB字節(jié)數(shù)據(jù)加載指令LDRH半字?jǐn)?shù)據(jù)加載指令STR字?jǐn)?shù)據(jù)存儲指令STRB字節(jié)數(shù)據(jù)存儲指令STRH半字?jǐn)?shù)據(jù)存儲指令LDRSB有符號的字節(jié)加載LDRSH有符號的半字加載多存放器加載存儲指令:LDM多字節(jié)加載指令STM多字節(jié)存儲指令I(lǐng)A:每次傳送后地址+4IB:每次傳送前地址+4DA:每次傳送后地址-4DB:每次傳送前地址-4FD:滿遞減堆棧ED:空遞減堆棧FA:滿遞增堆棧EA:空遞增堆棧加載指令:用于存儲器中的數(shù)據(jù)傳送到存放器存儲指令:用于存放器中的數(shù)據(jù)傳送到存儲器交換指令:存儲器與存放器之間交換數(shù)據(jù),如:SWP、SWPB塊復(fù)制相關(guān)堆棧操作相關(guān)思索:STRR0,[R1],#8STRR0,[R1,#8]STMFDR13!,{R0,R4-R12,LR}LDMFDR13!,{R0,R4-R12,PC}49程序形狀存放器指令A(yù)RM微處置器支持程序形狀存放器訪問指令,用于在程序形狀存放器和通用存放器之間傳送數(shù)據(jù),程序形狀存放器訪問指令包括以下兩條:MRS程序形狀存放器到通用存放器的數(shù)據(jù)傳送指令MSR通用存放器到程序形狀存放器的數(shù)據(jù)傳送指令思索:MSRCPSR_c,R0 ;什么意思????50ARM的協(xié)處置器指令主要用于ARM處置器初始化ARM協(xié)處置器的數(shù)據(jù)處置操作,以及在ARM處置器的存放器和協(xié)處置器的存放器之間傳送數(shù)據(jù),和在ARM協(xié)處置器的存放器和存儲器之間傳送數(shù)據(jù)。ARM協(xié)處置器指令包括以下5條:CDP協(xié)處置器數(shù)操作指令LDC協(xié)處置器數(shù)據(jù)加載指令STC協(xié)處置器數(shù)據(jù)存儲指令MCRARM處置器存放器到協(xié)處置器存放器的數(shù)據(jù)傳送指令MRC協(xié)處置器存放器到ARM處置器存放器的數(shù)據(jù)傳送指令A(yù)RM指令集:協(xié)處置器指令〔選修〕51異常產(chǎn)生指令〔選修〕ARM微處置器所支持的異常指令有如下兩條:—SWI軟件中斷指令SWI指令用于產(chǎn)生軟件中斷,在控制方式中用于進入管理員方式,以便用戶程序能調(diào)用操作系統(tǒng)的系統(tǒng)例程。操作系統(tǒng)在SWI的異常處置程序中提供相應(yīng)的系統(tǒng)效力,指令中24位的立刻數(shù)指定用戶程序調(diào)用系統(tǒng)例程的類型。指令例如:SWI0x02;該指令調(diào)用操作系統(tǒng)編號為02的系統(tǒng)例程。—BKPT斷點中斷指令BKPT指令的格式為:BKPT16位的立刻數(shù)BKPT指令產(chǎn)生軟件斷點中斷,可用于程序的調(diào)試。52AREAHelloW,CODE,READONLY;聲明代碼區(qū)SWI_WriteCEQU&0;輸出r0中的字符SWI_ExitEQU&11;程序終了ENTRY;代碼入口STARTADRr1,TEXT;r1“HelloWorld〞LOOPLDRBr0,[r1],#1;讀取下一字節(jié)CMPr0,#0;檢查文本終點SWINESWI_WriteC;假設(shè)非終點,那么打印BNELOOP;并前往LOOPSWISWI_Exit;執(zhí)行終了TEXT=“HelloWorld〞,&0a,&0d,0END;程序終了Example:HelloARMWorld!53Thumb指令集 為兼容數(shù)據(jù)總線寬度為16位的運用系統(tǒng),ARM體系構(gòu)造除了支持執(zhí)行效率很高的32位ARM指令集以外,同時支持16位的Thumb指令集。Thumb指令集是ARM指令集的一個子集,允許指令編碼為16位的長度。與等價的32位代碼相比較,Thumb指令集在保管32代碼優(yōu)勢的同時,大大的節(jié)省了系統(tǒng)的存儲空間。一切的Thumb指令都有對應(yīng)的ARM指令,而且Thumb的編程模型也對應(yīng)于ARM的編程模型,按照規(guī)那么編程時可實現(xiàn)相互調(diào)用。Thumb指令集的數(shù)據(jù)處置指令操作數(shù)是32位,指令地址也是32位,但是大多數(shù)Thumb指令是無條件執(zhí)行的,并且大多數(shù)Thumb數(shù)據(jù)處置指令的目的存放器與其中一個源存放器一樣。54運轉(zhuǎn)速度和存儲器空間的比較Thumb代碼所需的存儲空間約為ARM代碼的60%~70%Thumb代碼運用的指令數(shù)比ARM代碼多約30%~40%假設(shè)運用32位的存儲器,ARM代碼比Thumb代碼快約40%假設(shè)運用16位的存儲器,Thumb代碼比ARM代碼快約40%~50%與ARM代碼相比較,運用Thumb代碼,存儲器的功耗會降低約30%55Thumb指令集和ARM指令集區(qū)別1、分支指令程序相對轉(zhuǎn)移,特別是條件轉(zhuǎn)移與ARM代碼下的轉(zhuǎn)移相比,在范圍上受更多的限制,轉(zhuǎn)向子程序是無條件的轉(zhuǎn)移。2、數(shù)據(jù)處置指令數(shù)據(jù)處置指令是對通用存放器進展操作。在大多數(shù)情況下,操作的結(jié)果須放入其中一個操作數(shù)存放器中,而不是第三個存放器中。數(shù)據(jù)處置操作比ARM形狀的更少。訪問存放器R8-R15外,遭到一定的限制。Thumb指令移位和ALU操作分開〔ARM只需一條指令〕Thumb對R0~R7數(shù)據(jù)處置總是更新cpsr標(biāo)志位〔同功能ARM只需加S后綴才可以〕。除CMP指令外對R8~R15操作均不改動標(biāo)志位。56Thumb指令集3、單存放器加載和存儲指令在Thumb形狀下,單存放器加載和存儲指令只能訪問存放器R0-R7。4、多存放器加載和存儲指令LDM和STM指令可以將任何范圍為R0-R7的存放器子集加載或存儲。PUSH和POP指令運用堆棧指令R13作為基址實現(xiàn)滿遞減堆棧。除R0-R7外,PUSH指令還可以存儲銜接存放器R14,并且POP指令可以加載程序指令PC。Thumb指令集沒有協(xié)處置器指令、信號量指令及訪問CPSR或SPSR的指令,沒有乘加指令及64位乘法指令等,且第二操作的數(shù)遭到限制;573.4ARM內(nèi)存管理單元ARMMMU概述ARMMMU的功能ARMMMU的操作ARMMMU的地址轉(zhuǎn)換58ARMMMU概述MMU是內(nèi)存管理單元〔MemoryManagementUnit〕的縮寫。MMU在處置器中實現(xiàn)內(nèi)存管理的功能,完成物理地址到虛擬地址的映射。MMU本身有少量存儲空間存放從虛擬地址到物理地址的匹配表。此表稱作TLB(轉(zhuǎn)換旁置緩沖區(qū))。一切數(shù)據(jù)懇求都送往MMU,由MMU決議數(shù)據(jù)是在RAM內(nèi)還是在大容量存儲器設(shè)備內(nèi)。假設(shè)數(shù)據(jù)不在存儲空間內(nèi),MMU將產(chǎn)生頁面錯誤中斷。在通常情況下,MMU的兩個主要功能是:1.將虛地址轉(zhuǎn)換成物理地址2.控制內(nèi)存的訪問權(quán)限MMU封鎖時,虛地址直接輸出到物理地址總線。59ARMMMU的功能CP15的主要管理和配置功能如下; 頁表 TLB〔轉(zhuǎn)換旁路緩沖器〕 域和訪問權(quán)限 Cache和寫緩沖器 快速上下文切換60ARMMMU的功能CP15協(xié)處置器的功能模塊:功能使用寄存器全局控制寄存器0、1MMU寄存器2、3、4、5、6、8,10以及寄存器1中的部分MPU寄存器2、3、5、6以及寄存器1中的部分Cache和WriteBuffer寄存器7、9FSCE寄存器13測試和時鐘控制寄存器15保留寄存器11、12、1461ARMMMU的操作MMU的功能相關(guān)的CP15中存放器的描畫寄存器主要操作R1使能/禁止MMU、cache、寫緩沖R2設(shè)置變換表基地址(16k對齊)R3設(shè)置16個域的訪問權(quán)限R8操作TLB功能(無效統(tǒng)一TLB、無效指令或數(shù)據(jù)TLB)62當(dāng)MMU被制止的時候存儲器按如下處置:根據(jù)詳細的情況決議能否允許Cache和寫緩沖沒有存儲區(qū)訪問的權(quán)限,MMU也不會產(chǎn)生異常信號物理地址的虛擬地址一樣,即平板〔flataddressmapping〕地址映射方式ARMMMU的操作63R1控制存放器〔類型:ARMv3:只寫,ARMv4:讀寫〕M(位[0]):允許MMUA(位[1]):允許定位缺點檢測C(位[2]):允許數(shù)據(jù)Cache或者一致CacheW(位[3]):允許寫緩沖P(位[4]):從26-32位異常處置〔異常程序地址位數(shù)〕D(位[5]):從26-32位地址區(qū)域〔26位地址異常檢查使能〕L(位[6]):至上一次中止區(qū)域〔終止模型選擇〕B(位[7]):從小端到大端S(位[8]):修正MMU系統(tǒng)ARMMMU的操作RR64R(位[9]):ROM維護形狀F(位[10]):控制外協(xié)處置器通訊速度Z(位[11]):允許分支預(yù)測I(位[12]):允許指令CacheV(位[13]):向量地址(從0x00000000-0x0000001C到0xFFFF0000-0xFFFF001C)RR(位[14]):控制Cache置換算法〔淘汰算法類型選擇〕L4(位[15]):對于ARMv5以后版本,控制向后兼容〔Thumb2〕位[31:16]:保管留意:對于MMU,其實只和CP15的存放器的0、1、8、9位有關(guān)ARMMMU的操作65 R2地址變換表基址存放器〔類型:ARMv3:只寫,ARMv4:讀寫〕位[31:14]:變換表基地址,定位界限為16KBARMMMU的操作66 R3域訪問控制存放器:〔類型:ARMv3:只寫,ARMv4:讀寫〕數(shù)據(jù)的含義如下:00不允許訪問,任何訪問將產(chǎn)生域錯誤01客戶〔Client〕運用域,根據(jù)段和頁描畫符的訪問權(quán)限檢驗10保管11管理〔Manager〕運用域,不檢查訪問答應(yīng)位,任何都不會產(chǎn)生域錯誤ARMMMU的操作67R5缺點形狀存放器:〔類型:ARMv3:只讀,ARMv4:讀寫〕Bit[8]:0Bits[7:4]:當(dāng)錯誤發(fā)生時,確定16個域中(D15–D0)哪個被訪問。Bits[3:0]:指出試圖訪問的類型ARMMMU的操作68 R6缺點地址存放器:〔類型:ARMv3:只讀,ARMv4:讀寫〕上一次數(shù)據(jù)存取中止的地址ARMMMU的操作69功能如下所示:無效指令TLB無效指令單一入口無效整個數(shù)據(jù)TLB無效數(shù)據(jù)單一入口功能opcode2CRmData指令無效所有TLB01110MCRp15,0,Rd,c8,c7,0無效單一入口1111虛擬地址MCRp15,0,Rd,c8,c7,1無效整個指令TLB01010MCRp15,0,Rd,c8,c5,0無效指令單一入口1101虛擬地址MCRp15,0,Rd,c8,c5,1無效整個數(shù)據(jù)TLB01100MCRp15,0,Rd,c8,c6,0無效數(shù)據(jù)單一入口1110虛擬地址MCRp15,0,Rd,c8,c6,1R8TLB功能存放器〔類型:只寫〕:用來執(zhí)行TLB的操作ARM
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年農(nóng)業(yè)物聯(lián)網(wǎng)在農(nóng)產(chǎn)品產(chǎn)量與品質(zhì)同步提升中的應(yīng)用效果報告
- 2025年農(nóng)業(yè)物聯(lián)網(wǎng)在病蟲害智能識別與防治中的應(yīng)用報告
- 2025年農(nóng)業(yè)物聯(lián)網(wǎng)精準(zhǔn)種植技術(shù)應(yīng)用現(xiàn)狀與發(fā)展趨勢分析
- 網(wǎng)絡(luò)家電測評題目及答案
- 顱腦損傷康復(fù)期護理常規(guī)講課件
- 眼科門診護理課件
- 第21課《古代詩歌五首》課件-2024-2025學(xué)年統(tǒng)編版語文七年級下冊
- 大數(shù)據(jù)背景下學(xué)生學(xué)習(xí)成果評估的研究與應(yīng)用
- 浙江工商大學(xué)《語師范生創(chuàng)新》2023-2024學(xué)年第二學(xué)期期末試卷
- 新疆科信職業(yè)技術(shù)學(xué)院《數(shù)據(jù)采集與清洗》2023-2024學(xué)年第二學(xué)期期末試卷
- 民法典案例解讀PPT
- 安全生產(chǎn)知識應(yīng)知應(yīng)會
- 質(zhì) 量 管 理 體 系 認 證審核報告(模板)
- 腫瘤科新護士入科培訓(xùn)和護理常規(guī)
- 體育器材采購設(shè)備清單
- 第4章 頜位(雙語)
- 二手車鑒定評估報告書最終
- 電影場記表(雙機位)
- 塔吊負荷試驗方案
- 電子商務(wù)專業(yè)“產(chǎn)教融合、五雙并行”人才培養(yǎng) 模式的實踐研究課題論文開題結(jié)題中期研究報告(經(jīng)驗交流)
- 購買社區(qū)基本公共養(yǎng)老、青少年活動服務(wù)實施方案
評論
0/150
提交評論