ARM微處理器的結(jié)構(gòu).ppt
《ARM微處理器的結(jié)構(gòu).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《ARM微處理器的結(jié)構(gòu).ppt(42頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
ARM處理器編程模型,第2章,本章目標(biāo),了解ARM的結(jié)構(gòu)特點(diǎn)了解ARM的編程的工作模式了解ARM的內(nèi)部資源了解ARM異常的處理機(jī)制,本章結(jié)構(gòu),,,,ARM狀態(tài)下寄存器,Thumb狀態(tài)下寄存器,寄存器組織,,,,ARM微處理器的工作模式,,,ARM微處理器編程模型,ARM微處理器的工作狀態(tài),,程序狀態(tài)寄存器,數(shù)據(jù)存儲(chǔ)格式,指令長(zhǎng)度及數(shù)據(jù)結(jié)構(gòu),,,異常,,,,,對(duì)異常的響應(yīng),從異常返回,,,異常類型,,2-1ARM微處理器的工作狀態(tài),處理器狀態(tài):ARM處理器內(nèi)核包含2套指令系統(tǒng),分別為ARM指令集和Thumb指令,并且各自對(duì)應(yīng)1種處理器的狀態(tài):ARM狀態(tài):32位,處理器執(zhí)行字方式的ARM指令,處理器默認(rèn)為此狀態(tài);Thumb狀態(tài):16位,處理器執(zhí)行半字方式的Thumb指令。兩個(gè)狀態(tài)之間的切換并不影響處理器模式或寄存器內(nèi)容。,,狀態(tài)切換的一個(gè)例子,使用BX指令將ARM內(nèi)核的操作狀態(tài)在ARM狀態(tài)和Thumb狀態(tài)之間進(jìn)行切換。,ARM指令集,Thumb指令集,,CODE32LDRR0,=Lable+1BXR0CODE16LableMOVR1,#12,CODE16LDRR0,=LableBXR0CODE32LableMOVR1,#10,執(zhí)行完BX指令,處理器切換到Thumb狀態(tài),開(kāi)始執(zhí)行Thumb指令,程序代碼,指令集關(guān)系,從ARM狀態(tài)切換到Thumb狀態(tài)的程序代碼如下:,從Thumb狀態(tài)切換到ARM狀態(tài)的程序代碼如下:,執(zhí)行完BX指令,處理器切換到ARM狀態(tài),開(kāi)始執(zhí)行ARM指令,2-1ARM微處理器的工作狀態(tài),ARM體系結(jié)構(gòu)支持7種處理器模式,分別為:用戶模式、快中斷模式、中斷模式、管理模式、中止模式、未定義模式和系統(tǒng)模式。這樣的好處是可以更好的支持操作系統(tǒng)并提高工作效率。ARM完全支持這七種模式。,2-2寄存器工作模式,,除用戶模式外,其它模式均為特權(quán)模式。ARM內(nèi)部寄存器和一些片內(nèi)外設(shè)在硬件設(shè)計(jì)上只允許(或者可選為只允許)特權(quán)模式下訪問(wèn)。此外,特權(quán)模式可以自由的切換處理器模式,而用戶模式不能直接切換到別的模式。,,,,處理器模式,這兩種模式都不能由異常進(jìn)入,想要進(jìn)入必須修改CPSR,而且它們使用完全相同的寄存器組。系統(tǒng)模式是特權(quán)模式,不受用戶模式的限制。操作系統(tǒng)在該模式下訪問(wèn)用戶模式的寄存器就比較方便,而且操作系統(tǒng)的一些特權(quán)任務(wù)可以使用這個(gè)模式訪問(wèn)一些受控的資源。,這五種模式稱為異常模式。它們除了可以通過(guò)程序切換進(jìn)入外,也可以由特定的異常進(jìn)入。當(dāng)特定的異常出現(xiàn)時(shí),處理器進(jìn)入相應(yīng)的模式。每種異常模式都有一些獨(dú)立的寄存器,以避免異常退出時(shí)用戶模式的狀態(tài)不可靠。,何時(shí)進(jìn)入異常模式,具體規(guī)定如下:處理器復(fù)位之后進(jìn)入管理模式,操作系統(tǒng)內(nèi)核通常處于管理模式;當(dāng)處理器訪問(wèn)存儲(chǔ)器失敗時(shí),進(jìn)入數(shù)據(jù)訪問(wèn)中止模式;當(dāng)處理器遇到?jīng)]有定義或不支持的指令時(shí),進(jìn)入未定義模式;中斷模式與快速中斷模式分別對(duì)ARM處理器2種不同級(jí)別的中斷作出響應(yīng)。,2-2寄存器工作模式,階段小結(jié),ARM9處理器支持的7種寄存器工作模式,2-3寄存器組織,ARM9處理器內(nèi)部寄存器組織:在ARM9處理器內(nèi)部有37個(gè)用戶可見(jiàn)的寄存器。在不同的工作模式和處理器狀態(tài)下,程序員可以訪問(wèn)的寄存器也不盡相同。,ARM狀態(tài)各模式下的寄存器,2-3-1ARM狀態(tài)下的寄存器組織,所有的37個(gè)寄存器,分成兩大類:31個(gè)通用32位寄存器;6個(gè)狀態(tài)寄存器。,2-3-1ARM狀態(tài)下的寄存器組織,2-3-1ARM狀態(tài)下的寄存器組織,在匯編語(yǔ)言中寄存器R0~R13為保存數(shù)據(jù)或地址值的通用寄存器。它們是完全通用的寄存器,不會(huì)被體系結(jié)構(gòu)作為特殊用途,并且可用于任何使用通用寄存器的指令。,2-3-1ARM狀態(tài)下的寄存器組織,其中R0~R7為未分組的寄存器,也就是說(shuō)對(duì)于任何處理器模式,這些寄存器都對(duì)應(yīng)于相同的32位物理寄存器。,2-3-1ARM狀態(tài)下的寄存器組織,寄存器R8~R14為分組寄存器。它們所對(duì)應(yīng)的物理寄存器取決于當(dāng)前的處理器模式,幾乎所有允許使用通用寄存器的指令都允許使用分組寄存器,2-3-1ARM狀態(tài)下的寄存器組織,,,寄存器R8~R12有兩個(gè)分組的物理寄存器。一個(gè)用于除FIQ模式之外的所有寄存器模式,另一個(gè)用于FIQ模式。這樣在發(fā)生FIQ中斷后,可以加速FIQ的處理速度。,2-3-1ARM狀態(tài)下的寄存器組織,,,寄存器R13、R14分別有6個(gè)分組的物理寄存器。一個(gè)用于用戶和系統(tǒng)模式,其余5個(gè)分別用于5種異常模式。,2-3-1ARM狀態(tài)下的寄存器組織,,,寄存器R13常作為堆棧指針(SP)。在ARM指令集當(dāng)中,沒(méi)有以特殊方式使用R13的指令或其它功能,只是習(xí)慣上都這樣使用。但是在Thumb指令集中存在使用R13的指令。,2-3-1ARM狀態(tài)下的寄存器組織,,,R14為鏈接寄存器(LR),在結(jié)構(gòu)上有兩個(gè)特殊功能:在每種模式下,模式自身的R14版本用于保存子程序返回地址;當(dāng)發(fā)生異常時(shí),將R14對(duì)應(yīng)的異常模式版本設(shè)置為異常返回地址(有些異常有一個(gè)小的固定偏移量)。,2-3-1ARM狀態(tài)下的寄存器組織,在Thumb狀態(tài)各模式下實(shí)際訪問(wèn)的寄存器,Thumb狀態(tài)寄存器集是ARM狀態(tài)集的子集,程序員可以直接訪問(wèn)的寄存器為:8個(gè)通用寄存器R0~R7;程序計(jì)數(shù)器(PC);堆棧指針(SP);鏈接寄存器(LR);當(dāng)前程序狀態(tài)寄存器(CPSR)。,2-3-2Thumb狀態(tài)下的寄存器組織,,在Thumb狀態(tài)各模式下的寄存器,,,,未分組的通用寄存器,第二類分組的通用寄存器,在匯編語(yǔ)言中寄存器R0~R7為通用寄存器,對(duì)于任何處理器模式,它們中的每一個(gè)都對(duì)應(yīng)于相同的32為物理寄存器。,堆棧指針SP對(duì)應(yīng)ARM狀態(tài)的寄存器R13。每個(gè)異常模式都有其自身的SP分組版本,SP通常指向各異常模式所專用的堆棧。注意:在發(fā)生異常時(shí),處理器自動(dòng)進(jìn)入ARM狀態(tài)。,鏈接寄存器LR對(duì)應(yīng)ARM狀態(tài)寄存器R14。注意:在發(fā)生異常時(shí),處理器自動(dòng)進(jìn)入ARM狀態(tài)。,2-3-2Thumb狀態(tài)下的寄存器組織,ARM狀態(tài),,Thumb寄存器在ARM狀態(tài)寄存器上的映射,Thumb狀態(tài),在Thumb狀態(tài)中,高端寄存器的訪問(wèn)是受到限制的,只有MOV、CMP和ADD指令可以對(duì)其訪問(wèn),2-3-2Thumb狀態(tài)下的寄存器組織,,,,,,狀態(tài)切換過(guò)程,,,程序在正常運(yùn)行的過(guò)程中,復(fù)位事件產(chǎn)生,導(dǎo)致系統(tǒng)復(fù)位。,2-3-2Thumb狀態(tài)下的寄存器組織,簡(jiǎn)介,ARM內(nèi)核包含1個(gè)CPSR和5個(gè)僅供異常處理程序使用的SPSR。CPSR反映當(dāng)前處理器的狀態(tài),其包含:4個(gè)條件代碼標(biāo)志(負(fù)標(biāo)志N、零標(biāo)志Z、進(jìn)位標(biāo)志C和溢出標(biāo)志V);2個(gè)中斷禁止位(IRQ禁止與FIQ禁止);5個(gè)對(duì)當(dāng)前處理器模式進(jìn)行編碼的位(M[4:0]);1個(gè)用于指示當(dāng)前執(zhí)行指令的位(ARM指令還是Thumb指令)。,2-3-3程序狀態(tài)寄存器CPSR,程序狀態(tài)寄存器的格式,條件代碼標(biāo)志,保留,控制位,溢出標(biāo)志,進(jìn)位或借位擴(kuò)展,零,負(fù)或小于,IRQ禁止,FIQ禁止,狀態(tài)位,模式位,N,Z,C,V,I,T,F,2-3-3程序狀態(tài)寄存器CPSR,條件代碼標(biāo)志,各標(biāo)志位的含義如下:負(fù)標(biāo)志N:運(yùn)算結(jié)果的第31位值,記錄標(biāo)志設(shè)置操作的結(jié)果;零標(biāo)志Z:如果標(biāo)志設(shè)置的操作為0,則置位;進(jìn)位標(biāo)志C:記錄無(wú)符號(hào)加法溢出,減法無(wú)借位,循環(huán)移位;溢出標(biāo)志V:記錄標(biāo)志設(shè)置操作的有符號(hào)溢出。,2-3-3程序狀態(tài)寄存器CPSR,警告:絕對(duì)不要強(qiáng)制改變CPSR寄存器中的控制位T。如果這樣做,處理器將進(jìn)入一個(gè)無(wú)法預(yù)測(cè)的狀態(tài)。,控制位,1、中斷禁止控制位I和F;,2、處理器狀態(tài)位T;,3、處理器模式位M0~M4。,注意:不是所有模式位的組合都定義了有效的處理器模式,如果將非法值寫(xiě)入M[4:0]中,處理器將進(jìn)入一個(gè)無(wú)法恢復(fù)的模式。,2-3-3程序狀態(tài)寄存器CPSR,保留位,CPSR中的保留位被保留將來(lái)使用。當(dāng)改變CPSR標(biāo)志和控制位時(shí),請(qǐng)確認(rèn)沒(méi)有改變這些保留位。另外,確保程序不依賴于包含特定值的保留位,因?yàn)閷?lái)的處理器可能會(huì)將這些位設(shè)置為1或者0。,2-3-3程序狀態(tài)寄存器CPSR,2-4ARM體系結(jié)構(gòu)的數(shù)據(jù)存儲(chǔ)格式,注意:ARM體系結(jié)構(gòu)較新的版本對(duì)這兩種數(shù)據(jù)存儲(chǔ)方式都支持。某些較老的版本只支持小字節(jié)序存儲(chǔ)方式,編程的時(shí)候需要注意。,處理器用于存儲(chǔ)數(shù)據(jù)的方式有兩種,分別為大字節(jié)序格式和小字節(jié)序格式:大字節(jié)序格式:字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在低地址中,而字?jǐn)?shù)據(jù)的低字節(jié)則存放在高地址中。小字節(jié)序格式:字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在高地址中,而字?jǐn)?shù)據(jù)的低字節(jié)則存放在低地址中。,存儲(chǔ)器格式,存儲(chǔ)器系統(tǒng)有兩種映射機(jī)制:小端存儲(chǔ)器系統(tǒng):在小端格式中,數(shù)據(jù)的高字節(jié)存放在高地址中。大端存儲(chǔ)器系統(tǒng):在大端格式中,數(shù)據(jù)的高字節(jié)存放在低地址中。,0 x120 x340 x560 x78,0 x780 x560 x340 x12,2-4ARM體系結(jié)構(gòu)的數(shù)據(jù)存儲(chǔ)格式,2-5指令長(zhǎng)度及數(shù)據(jù)類型,ARM9處理器指令長(zhǎng)度:在ARM狀態(tài)下,ARM微處理器的指令長(zhǎng)度是32位;在Thumb狀態(tài)下,指令長(zhǎng)度為16位。ARM9處理器數(shù)據(jù)類型:ARM微處理器中支持字節(jié)(8位)、半字(16位)、字(32位)三種數(shù)據(jù)類型,其中,字需要4字節(jié)對(duì)齊(地址的低兩位為0)、半字需要2字節(jié)對(duì)齊(地址的最低位為0)。,如果一個(gè)數(shù)據(jù)是從偶地址開(kāi)始的連續(xù)存儲(chǔ),那么它就是半字對(duì)齊,否則就是非半字對(duì)齊;如果一個(gè)數(shù)據(jù)是以能被4整除的地址開(kāi)始的連續(xù)存儲(chǔ),那么它就是字對(duì)齊,否則就是非字對(duì)齊。,存儲(chǔ)器的存儲(chǔ)方式,2-5指令長(zhǎng)度及數(shù)據(jù)類型,2-6異常,簡(jiǎn)介:只要正常的程序流被暫時(shí)中止,處理器將進(jìn)入異常模式。例如響應(yīng)一個(gè)來(lái)自外設(shè)的中斷。在處理異常之前,ARM9內(nèi)核保存當(dāng)前的處理器狀態(tài)(CPSR->SPSR),這樣當(dāng)處理程序結(jié)束時(shí)可以恢復(fù)執(zhí)行原來(lái)的程序(SPSR->CPSR)。,2-6-1ARM所支持的異常,,2-6-1ARM所支持的異常,,IRQ(InterruptRequest):中斷請(qǐng)求(IRQ)異常是一個(gè)由nIRQ輸入端的低電平所產(chǎn)生的正常中斷。IRQ的優(yōu)先級(jí)低于FIQ。對(duì)于FIQ序列它是被屏蔽的。任何時(shí)候在一個(gè)特權(quán)模式下,都可通過(guò)置位CPSR中的I位來(lái)禁止IRQ。不管異常入口是來(lái)自ARM狀態(tài)還是Thumb狀態(tài),IRQ處理程序都會(huì)通過(guò)執(zhí)行下面的指令從中斷返回:,SUBSPC,R14_irq,#4,2-6-1ARM所支持的異常,,IRQ(InterruptRequest):,,,FIQ,IRQ,(Reserved),DataAbort,PrefetchAbort,SoftwareInterrupt,UndefinedInstruction,Reset,,2-6-1ARM所支持的異常,,FIQ(FastInterruptRequest):快速中斷請(qǐng)求(FIQ)適用于對(duì)一個(gè)突發(fā)事件的快速響應(yīng),這得益于在ARM狀態(tài)中,快中斷模式有8個(gè)專用的寄存器可用來(lái)滿足寄存器保護(hù)的需要(這可以加速上下文切換的速度)。不管異常入口是來(lái)自ARM狀態(tài)還是Thumb狀態(tài),F(xiàn)IQ處理程序都會(huì)通過(guò)執(zhí)行下面的指令從中斷返回:在一個(gè)特權(quán)模式中,可以通過(guò)置位CPSR中的F位來(lái)禁止FIQ異常。,SUBSPC,R14_fiq,#4,2-6-2對(duì)異常的響應(yīng)(進(jìn)入異常),在異常發(fā)生后,ARM9內(nèi)核會(huì)作以下工作:在LR中保存當(dāng)前執(zhí)行指令的下一條指令的地址,即:LR=PC-4;將CPSR復(fù)制到適當(dāng)?shù)腟PSR中;將CPSR模式位強(qiáng)制設(shè)置為與異常類型相對(duì)應(yīng)的值;強(qiáng)制PC從相關(guān)的異常向量處取指。ARM9內(nèi)核在處理中斷異常時(shí)置位中斷禁止標(biāo)志,這樣可以防止不受控制的異常嵌套。,,BackAddr,JumpAddr,,,,“?”表示對(duì)該位不關(guān)心,2-6-2對(duì)異常的響應(yīng)(進(jìn)入異常),進(jìn)入異常過(guò)程:1.程序在系統(tǒng)模式下運(yùn)行用戶程序,允許IRQ中斷;將CPSR寄存器內(nèi)容存入IRQ模式的SPSR寄存器置位I位(禁止IRQ中斷)清零T位(進(jìn)入ARM狀態(tài))設(shè)置MOD位,切換處理器模式至IRQ模式將下一條指令的地址存入IRQ模式的LR寄存器將跳轉(zhuǎn)地址存入PC,實(shí)現(xiàn)跳轉(zhuǎn),2-6-3從異常返回(退出異常),當(dāng)異常結(jié)束時(shí),異常處理程序必須:將LR(R14)中的值減去偏移量后存入PC,偏移量根據(jù)異常的類型而有所不同;將SPSR的值復(fù)制回CPSR;清零在入口置位的中斷禁止標(biāo)志。,,BackAddr,JumpAddr,,return,,,BackAddr-4,“?”表示對(duì)該位不關(guān)心,2-6-3從異常返回(退出異常),在異常處理結(jié)束后,異常處理程序完成以下動(dòng)作:將SPSR寄存器的值復(fù)制回CPSR寄存器;將LR寄存的值減去一個(gè)常量后復(fù)制到PC寄存器,跳轉(zhuǎn)到被中斷的用戶程序。,本章總結(jié),,,,ARM狀態(tài)下寄存器,Thumb狀態(tài)下寄存器,寄存器組織,,,,ARM微處理器的工作模式,,,ARM微處理器編程模型,ARM微處理器的工作狀態(tài),,程序狀態(tài)寄存器,數(shù)據(jù)存儲(chǔ)格式,指令長(zhǎng)度及數(shù)據(jù)結(jié)構(gòu),,,異常,,,,,對(duì)異常的響應(yīng),從異常返回,,,異常類型,,- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- ARM 微處理器 結(jié)構(gòu)
鏈接地址:http://zhongcaozhi.com.cn/p-3388319.html