




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第3章 ARM微處理器體系結(jié)構(gòu)與指令集,主要內(nèi)容,ARM體系結(jié)構(gòu)的特點(diǎn) ARM微處理器體系結(jié)構(gòu) ARM處理器的工作模式 ARM處理器的寄存器組織 流水線(xiàn) ARM處理器的存儲(chǔ) ARM處理器的異常 ARM處理器的指令系統(tǒng) ARM處理器的尋址方式 ARM指令集 Thumb指令集,3.1 ARM體系結(jié)構(gòu)的特點(diǎn),RISC型處理器結(jié)構(gòu) Thumb指令集 多處理器狀態(tài)模式 兩種處理器工作狀態(tài) 嵌入式在線(xiàn)仿真調(diào)試 靈活方便的接口 低電壓功耗的設(shè)計(jì),ARM微處理器的特點(diǎn),采用RISC架構(gòu)的ARM微處理器一般具有如下特點(diǎn): 1、體積小、低功耗、低成本、高性能; 3、支持Thumb(16位)/ARM(32位)雙指令
2、集,能很好的兼容8位/16位器件; 3、大量使用寄存器,指令執(zhí)行速度更快; 4、大多數(shù)數(shù)據(jù)操作都在寄存器中完成; 5、尋址方式靈活簡(jiǎn)單,執(zhí)行效率高; 6、指令長(zhǎng)度固定;,3.2 ARM處理器體系結(jié)構(gòu),嵌入式處理器的基本結(jié)構(gòu)(1),微處理器是整個(gè)系統(tǒng)的核心,通常由3大部分組成:控制單元、算術(shù)邏輯單元和寄存器。,嵌入式處理器的基本結(jié)構(gòu)(2),控制單元:主要負(fù)責(zé)取指、譯碼和取操作數(shù)等基本動(dòng)作,并發(fā)送主要的控制指令。控制單元中包括兩個(gè)重要的寄存器:程序計(jì)數(shù)器(PC)和指令寄存器(IR)。程序計(jì)數(shù)器用于記錄下一條程序指令在內(nèi)存中的位置,以便控制單元能到正確的內(nèi)存位置取指;指令寄存器負(fù)責(zé)存放被控制單元所取
3、的指令,通過(guò)譯碼,產(chǎn)生必要的控制信號(hào)送到算術(shù)邏輯單元進(jìn)行相關(guān)的數(shù)據(jù)處理工作。,嵌入式處理器的基本結(jié)構(gòu)(2),算術(shù)邏輯單元:算術(shù)邏輯單元分為兩部分,一部分是算術(shù)運(yùn)算單元,主要處理數(shù)值型的數(shù)據(jù),進(jìn)行數(shù)學(xué)運(yùn)算,如加、減、乘、除或數(shù)值的比較;另一部分是邏輯運(yùn)算單元,主要處理邏輯運(yùn)算工作,如AND、OR、XOR或NOT等運(yùn)算。,嵌入式處理器的基本結(jié)構(gòu)(2),寄存器:用于存儲(chǔ)暫時(shí)性的數(shù)據(jù)。主要是從存儲(chǔ)器中所得到的數(shù)據(jù)(這些數(shù)據(jù)被送到算術(shù)邏輯單元中進(jìn)行處理)和算術(shù)邏輯單元中處理好的數(shù)據(jù)(再進(jìn)行算術(shù)邏輯運(yùn)行或存入到存儲(chǔ)器中。,3.2.1 ARM處理器的工作狀態(tài),處理器有兩種工作狀態(tài): ARM:32位,執(zhí)行字對(duì)
4、準(zhǔn)的ARM指令 Thumb:16位,執(zhí)行半字對(duì)準(zhǔn)的Thumb指令 ARM和Thumb之間狀態(tài)的切換不影響處理器的模式或寄存器的內(nèi)容,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,SWI etc.),當(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),3.2.2 寄存器組織,ARM處理器有37個(gè)寄存器 30個(gè)通用寄存器
5、:堆棧及其他通用寄存器 6個(gè)狀態(tài)寄存器 1個(gè)PC(程序計(jì)數(shù)器) 這些寄存器不能同時(shí)看到 不同的處理器狀態(tài)和工作模式確定哪些寄存器是對(duì)編程者是可見(jiàn)的,ARM微處理器: ARM State寄存器,1.ARM狀態(tài)下的通用寄存器,通用寄存器包括R0R15,可以分為三類(lèi): 未分組寄存器R0R7; 分組寄存器R8R14 程序計(jì)數(shù)器PC(R15),未分組寄存器R0R7,所有模式下,R0-R7所對(duì)應(yīng)的物理寄存器都是相同的 這八個(gè)寄存器是真正意義上的通用寄存器,ARM體系結(jié)構(gòu)中對(duì)它們沒(méi)有作任何特殊的假設(shè),它們的功能都是等同的。 在中斷或者異常處理程序中一般都需要對(duì)這幾個(gè)寄存器進(jìn)行保存。,分組寄存器R8R14,訪(fǎng)
6、問(wèn)的物理寄存器取決于當(dāng)前的處理器模式,若要訪(fǎng)問(wèn)特定的物理寄存器而不依賴(lài)當(dāng)前的處理器模式,則要使用規(guī)定的名字。 R8-R13各有兩組物理寄存器:一組為FIQ模式,另一組是除FIQ以外的其他模式。 R13-R14各有6個(gè)分組的物理寄存器,一個(gè)用于用戶(hù)模式和系統(tǒng)模式,其他5個(gè)分別用于5種異常模式。 R13(也被稱(chēng)為SP指針)被用作棧指針,通常在系統(tǒng)初始化時(shí)需要對(duì)所有模式下的SP指針賦值,當(dāng)CPU在不同的模式時(shí)棧指針會(huì)被自動(dòng)切換成相應(yīng)模式下的值。 R14有兩個(gè)用途,一是在調(diào)用子程序時(shí)用于保存調(diào)用返回地址,二是在發(fā)生異常時(shí)用于保存異常返回地址。,程序計(jì)數(shù)器PC(R15),用作程序計(jì)數(shù)器(PC),可以被讀
7、寫(xiě) ARM state: bits 1:0為0,bits31:3即為 PC. THUMB state:bit 0為0,bits31:1即為 PC,3.ARM狀態(tài)下的狀態(tài)寄存器R16,寄存器R16用作CPSR(Current Program Status Register,當(dāng)前程序狀態(tài)寄存器),CPSR可在任何運(yùn)行模式下被訪(fǎng)問(wèn),它包括條件標(biāo)志位、中斷禁止位、當(dāng)前處理器模式標(biāo)志位,以及其他一些相關(guān)的控制和狀態(tài)位。 每一種運(yùn)行模式下又都有一個(gè)專(zhuān)用的物理狀態(tài)寄存器,稱(chēng)為SPSR(Saved Program Status Register,備份的程序狀態(tài)寄存器),當(dāng)異常發(fā)生時(shí),SPSR用于保存CPSR的
8、當(dāng)前值,從異常退出時(shí)則可由SPSR來(lái)恢復(fù)CPSR。 由于用戶(hù)模式和系統(tǒng)模式不屬于異常模式,他們沒(méi)有SPSR,當(dāng)在這兩種模式下訪(fǎng)問(wèn)SPSR,結(jié)果是未知的。,CPSR,CPSR(當(dāng)前程序狀態(tài)寄存器)在所有的模式下都是可以讀寫(xiě)的,它主要包含: 條件標(biāo)志 中斷使能標(biāo)志 當(dāng)前處理器的模式 其它的一些狀態(tài)和控制標(biāo)志,ARM微處理器:程序狀態(tài)寄存器,置0表示執(zhí)行32bit的ARM指令 置1表示執(zhí)行16bit的Thumb指令,Negative,Zero,Carry,Overflow,IRQ中斷的響應(yīng): 置1:禁止響應(yīng) 置0:允許響應(yīng),FIQ中斷的響應(yīng): 置1:禁止響應(yīng) 置0:允許響應(yīng),ARM微處理器:程序狀態(tài)
9、寄存器,模式控制位M0-M4,Thumb狀態(tài)下的寄存器組織,兩種狀態(tài)下的寄存器組織的關(guān)系,Thumb狀態(tài)下的寄存器組織與ARM狀態(tài)下的寄存器組織的關(guān)系: Thumb狀態(tài)下和ARM狀態(tài)下的R0R7是相同的。 Thumb狀態(tài)下和ARM狀態(tài)下的CPSR和所有的SPSR是相同的。 Thumb狀態(tài)下的SP對(duì)應(yīng)于ARM狀態(tài)下的R13。 Thumb狀態(tài)下的LR對(duì)應(yīng)于ARM狀態(tài)下的R14。 Thumb狀態(tài)下的程序計(jì)數(shù)器對(duì)應(yīng)于ARM狀態(tài)下R15,3.2.3 ARM的工作模式,7種CPU模式,CPU模式的轉(zhuǎn)變: 軟件控制 異常 外部中斷,ARM微處理器:CPU模式,User模式,程序不能訪(fǎng)問(wèn)有些受保護(hù)的資源,只能
10、通過(guò)異常的形式來(lái)改變CPU的當(dāng)前運(yùn)行模式,特權(quán)模式可以存取系統(tǒng)中的任何資源,System模式,與User模式的運(yùn)行環(huán)境一樣 但是它可以不受任何限制的訪(fǎng)問(wèn)任何資源 該模式主要用于運(yùn)行系統(tǒng)中的一些特權(quán)任務(wù),FIQ模式,IRQ模式,Supervisor模式,Abort模式,Undefined模式,異常模式:主要是在外部中斷或者程序執(zhí)行非法操作時(shí)會(huì)觸發(fā),3.2.4 流水線(xiàn),1 流水線(xiàn)的概念與原理,處理器按照一系列步驟來(lái)執(zhí)行每一條指令,典型的步驟如下: (1)從存儲(chǔ)器讀取指令(fetch); (3)譯碼以鑒別它是屬于哪一條指令(decode); (3)從指令中提取指令的操作數(shù)(這些操作數(shù)往往存在于寄存器
11、中)(reg);,(4)將操作數(shù)進(jìn)行組合以得到結(jié)果或存儲(chǔ)器地址(ALU); (5)如果需要,則訪(fǎng)問(wèn)存儲(chǔ)器以存儲(chǔ)數(shù)據(jù)(mem); (6)將結(jié)果寫(xiě)回到寄存器堆(res)。,2 流水線(xiàn)的分類(lèi),到ARM7為止的ARM處理器使用簡(jiǎn)單的3級(jí)流水線(xiàn),它包括下列流水線(xiàn)級(jí)。 (1)取指令(fetch):從寄存器裝載一條指令。 (3)譯碼(decode):識(shí)別被執(zhí)行的指令,并為下一個(gè)周期準(zhǔn)備數(shù)據(jù)通路的控制信號(hào)。在這一級(jí),指令占有譯碼邏輯,不占用數(shù)據(jù)通路。 (3)執(zhí)行(excute):處理指令并將結(jié)果寫(xiě)回寄存器。,1)3級(jí)流水線(xiàn)ARM組織,在ARM9TDMI中使用了典型的5級(jí)流水線(xiàn),5級(jí)流水線(xiàn)包括下面的流水線(xiàn)級(jí)。
12、(1)取指令(fetch):從存儲(chǔ)器中取出指令,并將其放入指令流水線(xiàn)。 (3)譯碼(decode):指令被譯碼,從寄存器堆中讀取寄存器操作數(shù)。在寄存器堆中有3個(gè)操作數(shù)讀端口,因此,大多數(shù)ARM指令能在1個(gè)周期內(nèi)讀取其操作數(shù)。,2)5級(jí)流水線(xiàn)ARM組織,(3)執(zhí)行(execute):將其中1個(gè)操作數(shù)移位,并在ALU中產(chǎn)生結(jié)果。如果指令是Load或Store指令,則在ALU中計(jì)算存儲(chǔ)器的地址。 (4)緩沖/數(shù)據(jù)(buffer/data):如果需要?jiǎng)t訪(fǎng)問(wèn)數(shù)據(jù)存儲(chǔ)器,否則ALU只是簡(jiǎn)單地緩沖1個(gè)時(shí)鐘周期。 (5)回寫(xiě)(write-back):將指令的結(jié)果回寫(xiě)到寄存器堆,包括任何從寄存器讀出的數(shù)據(jù)。,在
13、ARM10中,將流水線(xiàn)的級(jí)數(shù)增加到6級(jí),使系統(tǒng)的平均處理能力達(dá)到了1.3DMIPS/MHz。,3)6級(jí)流水線(xiàn)ARM組織,圖3-4 6級(jí)流水線(xiàn)指令的執(zhí)行過(guò)程,3.2.5 異常,當(dāng)正常的程序執(zhí)行流程發(fā)生暫時(shí)的停止時(shí),稱(chēng)之為異常,例如處理一個(gè)外部的中斷請(qǐng)求。在處理異常之前,當(dāng)前處理器的狀態(tài)必須保留,這樣當(dāng)異常處理完成之后,當(dāng)前程序可以繼續(xù)執(zhí)行。處理器允許多個(gè)異常同時(shí)發(fā)生,它們將會(huì)按固定的優(yōu)先級(jí)進(jìn)行處理。 ARM體系結(jié)構(gòu)中的異常,與8位/16位體系結(jié)構(gòu)的中斷有很大的相似之處,但異常與中斷的概念并不完全等同。,1 ARM體系結(jié)構(gòu)所支持的異常類(lèi)型,ARM CPU將引起異常的類(lèi)型分為7種,2 異常優(yōu)先級(jí),3
14、 應(yīng)用程序中的異常處理,當(dāng)系統(tǒng)運(yùn)行時(shí),異??赡軙?huì)隨時(shí)發(fā)生,為保證在ARM處理器發(fā)生異常時(shí)不至于處于未知狀態(tài),在應(yīng)用程序的設(shè)計(jì)中,首先要進(jìn)行異常處理,采用的方式是在異常向量表中的特定位置放置一條跳轉(zhuǎn)指令,跳轉(zhuǎn)到異常處理程序,當(dāng)ARM處理器發(fā)生異常時(shí),程序計(jì)數(shù)器PC會(huì)被強(qiáng)制設(shè)置為對(duì)應(yīng)的異常向量,從而跳轉(zhuǎn)到異常處理程序,當(dāng)異常處理完成以后,返回到主程序繼續(xù)執(zhí)行。,異常向量,4 對(duì)異常的響應(yīng),當(dāng)一個(gè)異常出現(xiàn)以后,ARM微處理器會(huì)執(zhí)行以下幾步操作 : 1、將下一條指令的地址存入相應(yīng)連接寄存器LR,以便程序在處理異常返回時(shí)能從正確的位置重新開(kāi)始執(zhí)行。 3、將CPSR復(fù)制到相應(yīng)的SPSR中。 3、根據(jù)異常類(lèi)型,強(qiáng)制設(shè)置CPSR的運(yùn)行模式位。 4、強(qiáng)制PC從相關(guān)的異常向量地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應(yīng)的異常處理程序處。,ARM微處理器:異常,當(dāng)異常出現(xiàn)時(shí),異常模式分組的R14和SPSR用于保存狀態(tài),即: R14_=return link SPSR_=CPSR CPSR4:0=exception mode number CPSR5=0 /*在ARM狀態(tài)執(zhí)行*/ if=Reset or FIQ then CPSR6=1 /*禁止快速中斷*/ CPSR7=1 /*禁止正常中斷*/ PC=exception vector address 當(dāng)處理異常返回時(shí),將S
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度整棟體育場(chǎng)館租賃與賽事運(yùn)營(yíng)合同
- 2025年義烏地區(qū)半導(dǎo)體技術(shù)工程師職位薪酬調(diào)查報(bào)告
- 電工膠帶項(xiàng)目申請(qǐng)報(bào)告可行性研究報(bào)告
- 2025年中國(guó)無(wú)鉛無(wú)鹵素錫膏行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 邵陽(yáng)新源發(fā)制品公司告項(xiàng)目
- 2025年度樁基工程保險(xiǎn)合同范本
- 2025年度車(chē)輛安全檢測(cè)與認(rèn)證機(jī)構(gòu)合作合同
- 木瓜酒行業(yè)市場(chǎng)發(fā)展及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 2025年環(huán)保型油漆生產(chǎn)與銷(xiāo)售合作協(xié)議
- 消光粉生產(chǎn)項(xiàng)目可行性研究報(bào)告申請(qǐng)立項(xiàng)
- 贏的含義員工培訓(xùn)
- 2023年江蘇省五年制專(zhuān)轉(zhuǎn)本英語(yǔ)統(tǒng)考真題(試卷+答案)
- 新時(shí)代核心英語(yǔ)教程寫(xiě)作2教學(xué)課件U8-Exemplification
- 心房撲動(dòng)臨床路徑
- 急診科運(yùn)用PDCA循環(huán)縮短嚴(yán)重創(chuàng)傷病人在搶救室的停留時(shí)間品管圈成果匯報(bào)
- 國(guó)家基本公共衛(wèi)生服務(wù)項(xiàng)目(第三版)培訓(xùn)
- 青工技能振興計(jì)劃青工技能振興計(jì)劃八篇
- 中等專(zhuān)業(yè)學(xué)校畢業(yè)生登記表
- 路緣石安裝一級(jí)安全交底
- 教師教學(xué)常規(guī)管理培訓(xùn)夯實(shí)教學(xué)常規(guī)強(qiáng)化教學(xué)管理PPT教學(xué)課件
- 2023年山東省春季高校招生考試英語(yǔ)試卷試題(含答案)
評(píng)論
0/150
提交評(píng)論