


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、嵌入式處理器的體系結(jié)構(gòu)寫rfS 廠PCRn第二章嵌入式處理器體系結(jié)構(gòu)講授內(nèi)容:ARMi理器的編程模型目 錄: 匚數(shù)據(jù)在內(nèi)核中的移動(dòng)過程2.內(nèi)核的工作狀態(tài)與工作模式3.內(nèi)核中的寄存黠組4.異常中斷5 存儲(chǔ)器格式及數(shù)據(jù)類型&流水線技術(shù)處理器內(nèi)核中數(shù)據(jù)的移動(dòng)過程數(shù)捌彳指令譯碼器寄存器文件(rfl-r!5)A4Knit B 4(桶形移位器)/XMAC 5L>(地址寄存器卜L-氏抑施器)地址ARM內(nèi)核的數(shù)據(jù)流模型ARM內(nèi)核是數(shù)據(jù)(此處的數(shù)據(jù)包括指令和數(shù)據(jù))總線連接的各個(gè)功能單元的 集合:1. 數(shù)據(jù)經(jīng)總線進(jìn)入處理器核,其中的指令在執(zhí)行前被指令譯碼器翻譯;2. ARM采用load/store
2、體系結(jié)構(gòu)將要使用的數(shù)據(jù)加載或移出,數(shù)據(jù)處理只 能在寄存器里進(jìn)行;3. 數(shù)據(jù)存儲(chǔ)在寄存器文件里 (一組 32位的寄存器存儲(chǔ)體 ) ,大部分指令認(rèn)為 寄存器中保存的是 32位有符號(hào)/無符號(hào)數(shù),故數(shù)據(jù)從存儲(chǔ)器加載至寄存器前符號(hào) 擴(kuò)展硬件會(huì)把 8/16 位數(shù)轉(zhuǎn)換為 32 位;4. 典型的ARM指令通常有2個(gè)源寄存器(Rm和Rn)和1個(gè)目的寄存器(Rd), 源操作數(shù)分別通過內(nèi)部總線 A和B從寄存器文件中讀出(ARM的一個(gè)重要特征是 寄存器Rm可以選擇進(jìn)入ALU之前是否先經(jīng)過桶形移位器預(yù)處理,從而計(jì)算較大 范圍的表達(dá)式和地址 ) ;5. ALU和MAC乘累加單元)通過A和B得到值計(jì)算出結(jié)果并將其寫到寄存器
3、 文件中,ALU還會(huì)產(chǎn)生一個(gè)地址,該地址被保存到地址寄存器并發(fā)送到地址總線 上協(xié)助數(shù)據(jù)的傳輸 (地址加法器自動(dòng)更新地址寄存器 );6. 處理器連續(xù)執(zhí)行指令直至異?;蛑袛喔淖冋5膱?zhí)行流。二.ARMfct理器的工作狀態(tài)和工作模式1. 處理器的工作狀態(tài)ARM處理器內(nèi)核支持3種工作狀態(tài):ARM犬態(tài)(32位字對齊的指令)、Thumb 狀態(tài)(16位半字對齊的指令)和Jazelle狀態(tài)(8位指令集,用來加速Java字節(jié)碼 的執(zhí)行) ,某一時(shí)刻處理器只能處于其中的一種狀態(tài)中。由于 Jazelle 指令集使 用范圍專一,故一般情況下只討論 ARM和 Thumb兩種指令集。兩種指令集各具特色, 使用的場合也不同
4、, 同一個(gè)程序可以同時(shí)包含上述兩 種指令集, 因此涉及到二者相互轉(zhuǎn)換的問題。 程序執(zhí)行過程中, 處理器可通過軟 件或異常處理在兩種狀態(tài)之間切換:特定指令A(yù)RM異常 Thumb矚”二異常返回”?使用切換指令在ARMFP Thumb旨令集之間切換(處理器總是從ARM犬態(tài)開 始執(zhí)行代碼)a .執(zhí)行BX指令時(shí),如果操作數(shù)寄存器的狀態(tài)位 bit0=1 ,處理器切換 到Thumb狀態(tài);b .執(zhí)行BX指令時(shí),如果操作數(shù)寄存器的狀態(tài)位 bit0=0 ,處理器切換 至U ARM犬態(tài)。從ARM狀態(tài)進(jìn)入Thumb狀態(tài)LDR RO, #Thumb func+1BX RO/從Thumb狀態(tài)進(jìn)入ARM狀態(tài)LDR RO,
5、# ARMfuncBX RO?所有異常處理均在ARM犬態(tài)執(zhí)行2. 處理器的工作模式a概述? ARM的體系結(jié)構(gòu)支持7種工作模式(好似每個(gè)人都有幾套不同風(fēng)格的衣服 來配合不同的場合);?每種工作模式的功能各異、所能訪問的寄存器資源有所不同(特權(quán)模式允許對CPSR的完全讀/寫,非特權(quán)模式只允許讀但允許對條件標(biāo)志的寫 );?區(qū)分開不同的工作模式并賦于它們不同的硬件資源為的是不同的情況采 用不同的資源來進(jìn)行處理,從而避免資源的相互競爭。b工作模式一覽表ARM處理器的工作模式ARM處理器工作模式簡寫用戶模式用戶模式usr特權(quán)模式系統(tǒng)模式系統(tǒng)模式sys異常模式外部中斷模式irq快速中斷模式tiq數(shù)據(jù)訪問中止
6、模式abt管理者模式SVC未定義指令中止模式und?用戶模式(USR) ARM處理器正常的程序執(zhí)行狀態(tài)?系統(tǒng)模式(SYS)相當(dāng)于一種可以使用操作系統(tǒng)的特權(quán)用戶模式?快速中斷模式(FIQ)用于支持特殊的高速數(shù)據(jù)傳輸與通道處理?外部中斷模式(IRQ)用于通用的中斷處理?管理模式(SVC)操作系統(tǒng)使用的保護(hù)模式?中止模式(ABT)數(shù)據(jù)或指令預(yù)取中止時(shí)進(jìn)入的模式?未定義模式(UND執(zhí)行未定義指令時(shí)進(jìn)入的模式c 相關(guān)寄存器CPSR處理器具體工作在何種工作模式下是由ARM內(nèi)核的cpsr寄存器的特定位控制的(它還有一個(gè)備份寄存器)。標(biāo)志域 狀態(tài)域 擴(kuò)展域控制域位域 |!1IIII!31 30 29 2876
7、5 40NZCVIFTMode通用程序狀態(tài)器位域處理器模武cpsr4:0特權(quán)備注用戶模式10000否不能直接切換到其他模成系統(tǒng)模武IH11足貝和叫以直接切換到其他模式的特權(quán)快速中斷模式10001是發(fā)生F1Q異常響應(yīng)時(shí)進(jìn)入該模式外部中斷模式10() 10發(fā)生IRQ井常響應(yīng)時(shí)進(jìn)入該模式俘理模武IOOU是系統(tǒng)箜位和響應(yīng)時(shí)進(jìn)入中止模式I0HI數(shù)據(jù)或指令預(yù)取中上時(shí)進(jìn)入未定義模式JWH是未定義指令異常響應(yīng)時(shí)進(jìn)入d 工作模式的切換ARM處理器的工作模式在一定的條件下是可以相互轉(zhuǎn)換的,轉(zhuǎn)換方式有兩種:?硬件方式(內(nèi)核響應(yīng)異?;蛑袛?CPSR的內(nèi)容要復(fù)制到SPSR中)?軟件方式(在特權(quán)模式下修改CPSR的模式控
8、制位,不復(fù)制)異常/中斷廠用戶模式嵋丄特權(quán)模式)指令指令注:進(jìn)入用戶模式只能通過揺令實(shí)現(xiàn)而進(jìn)入特權(quán)模式有兩條途徑.三.處理器的寄存器組1. 概述? ARM處理器采用Load/Store體系結(jié)構(gòu),這意味著沒有直接操作存儲(chǔ)器的 指令,數(shù)據(jù)處理只能在寄存器中進(jìn)行,結(jié)果被寫回到存儲(chǔ)器中。存儲(chǔ)器寄存器LDK m. Ml(Load )I DR R3, M2STR R5* IU3(Store)HIR5H3? ARM處理器共有37個(gè)32位的寄存器,其中31個(gè)為通用寄存器,6個(gè)為狀A(yù)RM的奇存器位)/狀態(tài)寄存器'通用寄存器CPSRfl 個(gè))SPSR (§個(gè))I忙(I個(gè))英它通用寄存器未分組寄存
9、器(R(J R7)分組寄存器Z(RSRI4) XR8-R12分為2種RI5-RI4分為石種態(tài)寄存器。這些寄存器不能同時(shí)被訪問,處理器的每種工作狀態(tài)及其工作模式都 對應(yīng)一組可編程訪問的寄存器組。ARM寄存器(共37個(gè))User/svsFF1QIRQSVCUndefAbortR0同同同同同RR2R3RAK5R6R7R8IWJlqR9RO G<RIORIO OqR11Rll_HqR12R12 fiqR13R13_fiqR13_imR13 !jyca1*'R13 ab(R13 uEiilK14RM fiqIU4 irqR1IsvcR14 abtR14 andR15(p 燈同r同同同同CP
10、SR同同1同同同SPSRfiqSPSR irq|SPSK stcSPSRahlSPSKimd2. 詳述a 通用寄存器通用寄存器包括R0-R15,主要用于保存數(shù)據(jù)、地址值和 PC的當(dāng)前值,共分 為 3 類:? 未分組寄存器 (R0-R7)? 分組寄存器 (R8-R14)? 程序計(jì)數(shù)器 PC(R15)a-1. 未分組寄存器對于任何工作模式,R0-R7都指向同一個(gè)物理寄存器。由于不同的工作模式 使用相同的物理寄存器,故可能造成其中的數(shù)據(jù)損壞,在程序設(shè)計(jì)時(shí)要注意。a-2. 分組寄存器每個(gè)分組寄存器都對應(yīng)多個(gè)物理寄存器, 處理器的工作模式不同所訪問的物 理寄存器也不一樣。某種特定模式所對應(yīng)的分組寄存器采
11、用 “寄存器_模式標(biāo)記” 的方式來表示,如 R14_abt。? R8-R12 分別對應(yīng) 2 個(gè)不同的物理寄存器: FIQ 模式下使用物理寄存器 R8_fiq-R12_fiq ,其他模式使用R8-R12(擁有自己獨(dú)立的寄存器使得進(jìn)入 FIQ模 式時(shí)無需將寄存器參數(shù)入站保存,從而加快進(jìn)入中斷處理函數(shù)的速度);? R13-R14分別對應(yīng)6個(gè)不同的物理寄存器:系統(tǒng)上電后的初始化代碼會(huì)初 始化所有模式下的R13,使其指向運(yùn)行該模式時(shí)專用的堆??臻g,用于進(jìn)入異常 處理程序時(shí)保護(hù)現(xiàn)場;R14也稱為鏈接寄存器(Subroutine Link Register) ,當(dāng) 執(zhí)行BL指令時(shí)系統(tǒng)自動(dòng)將PC備份到其中,便
12、于將來的返回,其他情況下可做通 用寄存器。R14的使用方法如下:1.用BL或BLX指令調(diào)用子程序,將PC值自 動(dòng)賦給R14; 2.執(zhí)行完子程序后,再將R14的值復(fù)制到PC實(shí)現(xiàn)子程序的調(diào)用 返回。將R14復(fù)制到PC實(shí)現(xiàn)子程序調(diào)用返回有兩種方式:L MOV PCt LR 或 BX LR2. SIM I I) R13S < Register >, R14 "子程序入口處LDMFD R13!, < Register >, PC / 子程序返回時(shí)a-3.程序狀態(tài)寄存器a-3.1 概述ARM內(nèi)核使用CPSR來監(jiān)視和控制內(nèi)部的操作,它是一個(gè)32位的專用寄存 器。ARM體系結(jié)
13、構(gòu)包括1個(gè)當(dāng)前程序狀態(tài)寄存器(CPSR-Current Program Status Register)和 5 個(gè)備份程序狀態(tài)寄存器(SPSR-Saved Program Status Register)。 每個(gè)異常中斷模式都對應(yīng)一個(gè)SPSR用戶模式和系統(tǒng)模式不是異常中斷模式,因而沒有對應(yīng)的SPSR在任何處理器模式下都可以訪問 CPSR但在用戶模式和 系統(tǒng)模式下訪問SPSF會(huì)帶來不可預(yù)測的后果。a-3.2位域分配圖標(biāo)志域比十狀態(tài)域-擴(kuò)展域- 控制域 ”HII*13128 27 26 25 24 |23 20191610 98 >765 4皿N Z C VQResJ j ReGE3:0|R
14、esE A1 F TMude|4:0|域用途蕉負(fù)標(biāo)志記錄標(biāo)恵設(shè)置操作的結(jié)果L零標(biāo)志,如果標(biāo)志設(shè)置操作的結(jié)果是0則置位C進(jìn)位標(biāo)志,記錄無符號(hào)數(shù)加法溢出、減法無借位、循環(huán)移位V溢岀標(biāo)恚,記錄標(biāo)志設(shè)置操作的有符號(hào)溢岀Q飽和標(biāo)志,一些指令在飽和是設(shè)置該位J】=1說明Jaw執(zhí)行(必須T=")Res保留用于以后的擴(kuò)展”軟件不應(yīng)操作這些位GE|3:0IEADD影響該域E控制數(shù)據(jù)人小端AA=1禁止不明確的數(shù)據(jù)中止I1 = 1禁止1HQ中斷FF=1禁止FIQ中斷TT=1表示Thumb狀態(tài),否則為ARM狀態(tài)Mode當(dāng)前處理器模式?條件標(biāo)志位(N、Z、C、V):其內(nèi)容可以被算術(shù)或邏輯運(yùn)算的結(jié)果改變,并 且
15、可以決定指令的條件執(zhí)行;?控制位(I、F、T、M4:0):發(fā)生異常時(shí)被改變,如果處理器運(yùn)行于特權(quán) 模式也可通過軟件對其進(jìn)行修改;A .1=1則禁止IRQ中斷,F(xiàn)=1則禁止FIQ中斷;B.T=1則ARMv及以上版本的T系列處理器運(yùn)行于Thumb犬態(tài)(對于ARMv5及以上版本的非T系列處理器,當(dāng)T=1時(shí)執(zhí)行下一條指令以引起未定義指令異?保留位:用于ARM版本的擴(kuò)展,對CPSF進(jìn)行修改時(shí)一般采用對特定位的 “位運(yùn)算”來實(shí)現(xiàn),不修改保留位;?在有DSP擴(kuò)展的ARM內(nèi)核中,Q位表示增強(qiáng)的DSP指令是否發(fā)生了溢 出或飽和;a-3.3 說明?條件執(zhí)行:大多數(shù)ARM指令可根據(jù)條件標(biāo)志位進(jìn)行條件執(zhí)行,即在執(zhí)行
16、前處理器比較該條件屬性和 CPSR中的條件標(biāo)志位,如果匹配就執(zhí)行,否則指令 被忽略;?條件屬性作為指令助記符的后綴被編進(jìn)指令,若沒有條件符號(hào)則默認(rèn)為無 條件(ALalways execute執(zhí)行;助記符名 稱條件標(biāo)志位EQ相等Z不相等ZCS/HS進(jìn)位置位/無符號(hào)數(shù)大于或等于CC/LO進(jìn)位清除/無符號(hào)數(shù)小于CMl負(fù)數(shù)NPI.非負(fù)數(shù)nVS溢出VVC無溢出V111無符號(hào)數(shù)大于zCLS無符號(hào)數(shù)小于或等于£或£GE有符號(hào)數(shù)人于或等于NV 或“VLI有符號(hào)輸小于Nw 或 nVGT有符號(hào)數(shù)大于N兀Y或HZYLE有符號(hào)數(shù)小于或等于Z或N甲或nVAL無條件執(zhí)行忽略?條件標(biāo)志的使用:比較指令或
17、帶有后綴 S的ALU操作結(jié)果可以設(shè)置其內(nèi) 容(如SUBS減法指令產(chǎn)生一個(gè)結(jié)果為0的寄存器值,則cspr中的Z標(biāo)志就被置 位),后續(xù)指令可以根據(jù)其內(nèi)容條件執(zhí)行,如“ ADDEQ r1,r2 , r2”表示只有 在cpsr的zero位為1時(shí)才被執(zhí)行;?為了方便閱讀,有的時(shí)候可以使用符號(hào)表示 CPSR的當(dāng)前值:如果某位置 1則用大寫字母表示,否則用小寫字母。3130 2829 2124765 4000100001010 0111IJL111r1nzCvqaJiFtSVCcpsr = nzCvqjiFt_SVC3. Thumb狀態(tài)下的寄存器組織Thumb狀態(tài)下的寄存器集是ARM犬態(tài)下寄存器集的一個(gè)子集
18、,程序可以訪問以下寄存器(缺少了 R8-R12):? 8個(gè)通用寄存器R0-R7?堆棧指針SP?鏈接寄存器LR?程序計(jì)數(shù)器PC?程序狀態(tài)寄存器CPSR和SPSR在Thumb狀態(tài)下,咼位寄存器不是標(biāo)準(zhǔn)寄存器集的一部分, 但可以使用匯編 程序“受限制”地訪問它們,將它們作為快速的暫存器。所謂“受限制”指的是 僅能使用MOV CMP和ADDE條指令對其進(jìn)行操作。四.ARM存儲(chǔ)器接口ARM架構(gòu)的微處理器都不帶片內(nèi) RAMffi ROM系統(tǒng)所需的RAM和ROM都通過 總線與CPU相連。32位的微處理器其最大尋址空間為 4GB ARM體系結(jié)構(gòu)將存儲(chǔ) 器看作是從零地址開始的“字節(jié)”的線性組合。ARM微處理器的寄存器寬度為4個(gè)字節(jié),而存儲(chǔ)器中卻是以字節(jié)為單位組織的,每個(gè)存儲(chǔ)器地址對應(yīng)的是一個(gè)“字節(jié)”,這就導(dǎo)致一個(gè)問題:如何安排與寄 存器對應(yīng)的存儲(chǔ)器中的4個(gè)相鄰字節(jié)?于是,ARM體系結(jié)構(gòu)中用兩種方法存儲(chǔ)數(shù)據(jù):大端模式(數(shù)據(jù)的高位保存在 內(nèi)存的低地址中)和小端模式(數(shù)據(jù)的低位保存在內(nèi)存的低地址中)。設(shè)在存儲(chǔ)器中保存的數(shù)為:int k = 0x
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村土地出租權(quán)屬合同樣本
- 標(biāo)準(zhǔn)貨物銷售合同簡版
- 城市配送服務(wù)合同一覽
- 小學(xué)生種花演講課件
- 影視設(shè)備行業(yè)交流服務(wù)批發(fā)考核試卷
- 廣播電視節(jié)目的心理影響與教育意義考核試卷
- 體育品牌社區(qū)營銷實(shí)操考核試卷
- 家電產(chǎn)品散熱材料與技術(shù)研究考核試卷
- 客運(yùn)站營銷策略考核試卷
- 宴會(huì)管理培訓(xùn)課件
- 廉潔知識(shí)培訓(xùn)課件
- 分布式光伏發(fā)電開發(fā)建設(shè)管理辦法2025
- 《科幻小說賞析與寫作》 課件 -第六章 “外星文明”的善意與惡行-《安德的游戲》
- 《我國的文化安全》課件
- 2025蛇年一上英語寒假作業(yè)
- 建筑行業(yè)新員工試用期考核制度
- 二年級經(jīng)典誦讀社團(tuán)計(jì)劃
- 潔凈室施工組織設(shè)計(jì)方案
- 2025年太倉市文化旅游發(fā)展集團(tuán)限公司及子公司公開招聘12名高頻重點(diǎn)提升(共500題)附帶答案詳解
- 機(jī)械制圖題庫及答案
- 安裝承包合同(2025年)
評論
0/150
提交評論