版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第3章 ARM微處理器體系結(jié)構(gòu)與指令集主要內(nèi)容ARM體系結(jié)構(gòu)的特點ARM微處理器體系結(jié)構(gòu)ARM處理器的工作模式ARM處理器的寄存器組織流水線ARM處理器的存儲ARM處理器的異常 ARM處理器的指令系統(tǒng) ARM處理器的尋址方式 ARM指令集 Thumb指令集3.1 ARM體系結(jié)構(gòu)的特點RISC型處理器結(jié)構(gòu)Thumb指令集多處理器狀態(tài)模式兩種處理器工作狀態(tài)嵌入式在線仿真調(diào)試靈活方便的接口低電壓功耗的設(shè)計ARM微處理器的特點采用RISC架構(gòu)的ARM微處理器一般具有如下特點:1、體積小、低功耗、低成本、高性能;3、支持Thumb(16位)/ARM(32位)雙指令集,能很好的兼容8位/16位器件;3、大
2、量使用寄存器,指令執(zhí)行速度更快;4、大多數(shù)數(shù)據(jù)操作都在寄存器中完成;5、尋址方式靈活簡單,執(zhí)行效率高;6、指令長度固定;3.2 ARM處理器體系結(jié)構(gòu)嵌入式處理器的基本結(jié)構(gòu)(1)微處理器是整個系統(tǒng)的核心,通常由3大部分組成:控制單元、算術(shù)邏輯單元和寄存器。 算術(shù)邏輯單元寄存器控制單元微處理器存儲器輸入輸出嵌入式處理器的基本結(jié)構(gòu)(2)控制單元:主要負(fù)責(zé)取指、譯碼和取操作數(shù)等基本動作,并發(fā)送主要的控制指令??刂茊卧邪▋蓚€重要的寄存器:程序計數(shù)器(PC)和指令寄存器(IR)。程序計數(shù)器用于記錄下一條程序指令在內(nèi)存中的位置,以便控制單元能到正確的內(nèi)存位置取指;指令寄存器負(fù)責(zé)存放被控制單元所取的指令,
3、通過譯碼,產(chǎn)生必要的控制信號送到算術(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)寄存器:用于存儲暫時性的數(shù)據(jù)。主要是從存儲器中所得到的數(shù)據(jù)(這些數(shù)據(jù)被送到算術(shù)邏輯單元中進(jìn)行處理)和算術(shù)邏輯單元中處理好的數(shù)據(jù)(再進(jìn)行算術(shù)邏輯運(yùn)行或存入到存儲器中。 3.2.1 ARM處理器的工作狀態(tài)處理器有兩種工作狀態(tài):ARM:32位,執(zhí)行字對準(zhǔn)的ARM指令Thu
4、mb:16位,執(zhí)行半字對準(zhǔn)的Thumb指令A(yù)RM和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)異常處理返回時自動轉(zhuǎn)換到Thumb狀態(tài)進(jìn)入ARM狀態(tài):執(zhí)行BX指令,并設(shè)置操作數(shù)寄存器的狀態(tài)(位0)為0。進(jìn)入異常時,將PC放入異常模式鏈接寄存器中,從異常向量地址開始執(zhí)行也可進(jìn)入ARM狀態(tài)3.2.2 寄存器組織ARM處理器有37個寄存器 30個通用寄存器:堆棧及其他通用寄存器 6個狀態(tài)寄存器 1
5、個PC(程序計數(shù)器)這些寄存器不能同時看到不同的處理器狀態(tài)和工作模式確定哪些寄存器是對編程者是可見的ARM微處理器: ARM State寄存器1.ARM狀態(tài)下的通用寄存器通用寄存器包括R0R15,可以分為三類:未分組寄存器R0R7;分組寄存器R8R14程序計數(shù)器PC(R15)未分組寄存器R0R7 所有模式下,R0-R7所對應(yīng)的物理寄存器都是相同的 這八個寄存器是真正意義上的通用寄存器,ARM體系結(jié)構(gòu)中對它們沒有作任何特殊的假設(shè),它們的功能都是等同的。在中斷或者異常處理程序中一般都需要對這幾個寄存器進(jìn)行保存。分組寄存器R8R14訪問的物理寄存器取決于當(dāng)前的處理器模式,若要訪問特定的物理寄存器而不
6、依賴當(dāng)前的處理器模式,則要使用規(guī)定的名字。 R8-R13各有兩組物理寄存器:一組為FIQ模式,另一組是除FIQ以外的其他模式。R13-R14各有6個分組的物理寄存器,一個用于用戶模式和系統(tǒng)模式,其他5個分別用于5種異常模式。R13(也被稱為SP指針)被用作棧指針,通常在系統(tǒng)初始化時需要對所有模式下的SP指針賦值,當(dāng)CPU在不同的模式時棧指針會被自動切換成相應(yīng)模式下的值。R14有兩個用途,一是在調(diào)用子程序時用于保存調(diào)用返回地址,二是在發(fā)生異常時用于保存異常返回地址。程序計數(shù)器PC(R15)用作程序計數(shù)器(PC),可以被讀寫ARM state: bits 1:0為0,bits31:3即為 PC.
7、THUMB state:bit 0為0,bits31:1即為 PC3.ARM狀態(tài)下的狀態(tài)寄存器R16 寄存器R16用作CPSR(Current Program Status Register,當(dāng)前程序狀態(tài)寄存器),CPSR可在任何運(yùn)行模式下被訪問,它包括條件標(biāo)志位、中斷禁止位、當(dāng)前處理器模式標(biāo)志位,以及其他一些相關(guān)的控制和狀態(tài)位。每一種運(yùn)行模式下又都有一個專用的物理狀態(tài)寄存器,稱為SPSR(Saved Program Status Register,備份的程序狀態(tài)寄存器),當(dāng)異常發(fā)生時,SPSR用于保存CPSR的當(dāng)前值,從異常退出時則可由SPSR來恢復(fù)CPSR。由于用戶模式和系統(tǒng)模式不屬于異常
8、模式,他們沒有SPSR,當(dāng)在這兩種模式下訪問SPSR,結(jié)果是未知的。CPSRCPSR(當(dāng)前程序狀態(tài)寄存器)在所有的模式下都是可以讀寫的,它主要包含:條件標(biāo)志中斷使能標(biāo)志當(dāng)前處理器的模式其它的一些狀態(tài)和控制標(biāo)志ARM微處理器:程序狀態(tài)寄存器置0表示執(zhí)行32bit的ARM指令置1表示執(zhí)行16bit的Thumb指令 NegativeZeroCarryOverflowIRQ中斷的響應(yīng):置1:禁止響應(yīng)置0:允許響應(yīng)FIQ中斷的響應(yīng):置1:禁止響應(yīng)置0:允許響應(yīng)條件標(biāo)志模式控制位ARM/Thumb控制標(biāo)志中斷標(biāo)志ARM微處理器:程序狀態(tài)寄存器模式控制位M0-M4Thumb狀態(tài)下的寄存器組織兩種狀態(tài)下的寄存
9、器組織的關(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對應(yīng)于ARM狀態(tài)下的R13。Thumb狀態(tài)下的LR對應(yīng)于ARM狀態(tài)下的R14。 Thumb狀態(tài)下的程序計數(shù)器對應(yīng)于ARM狀態(tài)下R153.2.3 ARM的工作模式7種CPU模式 CPU模式的轉(zhuǎn)變:軟件控制異常外部中斷ARM微處理器:CPU模式User模式程序不能訪問有些受保護(hù)的資源只能通過異常的形式來改變CPU的當(dāng)前運(yùn)行模式特權(quán)模式可以存取系統(tǒng)中的任何資源System模式與User模式的
10、運(yùn)行環(huán)境一樣但是它可以不受任何限制的訪問任何資源該模式主要用于運(yùn)行系統(tǒng)中的一些特權(quán)任務(wù)FIQ模式IRQ模式Supervisor模式Abort模式Undefined模式異常模式:主要是在外部中斷或者程序執(zhí)行非法操作時會觸發(fā)3.2.4 流水線1 流水線的概念與原理 處理器按照一系列步驟來執(zhí)行每一條指令,典型的步驟如下: (1)從存儲器讀取指令(fetch); (3)譯碼以鑒別它是屬于哪一條指令(decode); (3)從指令中提取指令的操作數(shù)(這些操作數(shù)往往存在于寄存器中)(reg); (4)將操作數(shù)進(jìn)行組合以得到結(jié)果或存儲器地址(ALU); (5)如果需要,則訪問存儲器以存儲數(shù)據(jù)(mem); (
11、6)將結(jié)果寫回到寄存器堆(res)。2 流水線的分類 到ARM7為止的ARM處理器使用簡單的3級流水線,它包括下列流水線級。 (1)取指令(fetch):從寄存器裝載一條指令。 (3)譯碼(decode):識別被執(zhí)行的指令,并為下一個周期準(zhǔn)備數(shù)據(jù)通路的控制信號。在這一級,指令占有譯碼邏輯,不占用數(shù)據(jù)通路。 (3)執(zhí)行(excute):處理指令并將結(jié)果寫回寄存器。1)3級流水線ARM組織 在ARM9TDMI中使用了典型的5級流水線,5級流水線包括下面的流水線級。 (1)取指令(fetch):從存儲器中取出指令,并將其放入指令流水線。 (3)譯碼(decode):指令被譯碼,從寄存器堆中讀取寄存器
12、操作數(shù)。在寄存器堆中有3個操作數(shù)讀端口,因此,大多數(shù)ARM指令能在1個周期內(nèi)讀取其操作數(shù)。2)5級流水線ARM組織 (3)執(zhí)行(execute):將其中1個操作數(shù)移位,并在ALU中產(chǎn)生結(jié)果。如果指令是Load或Store指令,則在ALU中計算存儲器的地址。 (4)緩沖/數(shù)據(jù)(buffer/data):如果需要則訪問數(shù)據(jù)存儲器,否則ALU只是簡單地緩沖1個時鐘周期。 (5)回寫(write-back):將指令的結(jié)果回寫到寄存器堆,包括任何從寄存器讀出的數(shù)據(jù)。 在ARM10中,將流水線的級數(shù)增加到6級,使系統(tǒng)的平均處理能力達(dá)到了1.3DMIPS/MHz。 3)6級流水線ARM組織圖3-4 6級流水
13、線指令的執(zhí)行過程3.2.5 異常當(dāng)正常的程序執(zhí)行流程發(fā)生暫時的停止時,稱之為異常,例如處理一個外部的中斷請求。在處理異常之前,當(dāng)前處理器的狀態(tài)必須保留,這樣當(dāng)異常處理完成之后,當(dāng)前程序可以繼續(xù)執(zhí)行。處理器允許多個異常同時發(fā)生,它們將會按固定的優(yōu)先級進(jìn)行處理。ARM體系結(jié)構(gòu)中的異常,與8位/16位體系結(jié)構(gòu)的中斷有很大的相似之處,但異常與中斷的概念并不完全等同。1 ARM體系結(jié)構(gòu)所支持的異常類型ARM CPU將引起異常的類型分為7種2 異常優(yōu)先級3 應(yīng)用程序中的異常處理當(dāng)系統(tǒng)運(yùn)行時,異??赡軙S時發(fā)生,為保證在ARM處理器發(fā)生異常時不至于處于未知狀態(tài),在應(yīng)用程序的設(shè)計中,首先要進(jìn)行異常處理,采用的
14、方式是在異常向量表中的特定位置放置一條跳轉(zhuǎn)指令,跳轉(zhuǎn)到異常處理程序,當(dāng)ARM處理器發(fā)生異常時,程序計數(shù)器PC會被強(qiáng)制設(shè)置為對應(yīng)的異常向量,從而跳轉(zhuǎn)到異常處理程序,當(dāng)異常處理完成以后,返回到主程序繼續(xù)執(zhí)行。 異常向量 地 址異 常進(jìn)入模式0 x0000,0000復(fù)位管理模式0 x0000,0004未定義指令未定義模式0 x0000,0008軟件中斷管理模式0 x0000,000C中止(預(yù)取指令)中止模式0 x0000,0010中止(數(shù)據(jù))中止模式0 x0000,0014保留保留0 x0000,0018IRQIRQ0 x0000,001CFIQFIQ4 對異常的響應(yīng)當(dāng)一個異常出現(xiàn)以后,ARM微處理
15、器會執(zhí)行以下幾步操作 :1、將下一條指令的地址存入相應(yīng)連接寄存器LR,以便程序在處理異常返回時能從正確的位置重新開始執(zhí)行。 3、將CPSR復(fù)制到相應(yīng)的SPSR中。3、根據(jù)異常類型,強(qiáng)制設(shè)置CPSR的運(yùn)行模式位。 4、強(qiáng)制PC從相關(guān)的異常向量地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應(yīng)的異常處理程序處。 ARM微處理器:異常當(dāng)異常出現(xiàn)時,異常模式分組的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)處理異常返回時,將SPSR傳送到CPSR,R14傳送到PC5 異常返回1、將連接寄存器LR的值減去相應(yīng)的偏移量后送到PC中。3、將SPSR復(fù)制回CPSR中。3、若在進(jìn)入異常處理時設(shè)置了中斷禁止位,要在此清除。6 異常進(jìn)入/退出時的指令返回指令以前的狀態(tài)注意ARM R14_xThumb R14_xBLMOV PC,R14PC4PC31SWIMOVS PC,R14_svcPC4PC31UDEFMOVS PC
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 隴南聚脲地坪施工方案
- 精銑刨施工方案
- 2025年投資經(jīng)理借貸合同風(fēng)險評估與預(yù)警服務(wù)協(xié)議3篇
- 2025年度金融科技公司IT工程師勞動合同規(guī)范2篇
- 2024年全球供應(yīng)鏈優(yōu)化合作合同
- 2025年度邊坡整治危巖處治工程勞務(wù)分包合同范本6篇
- 2025年度網(wǎng)絡(luò)推廣合同:甲方企業(yè)與乙方網(wǎng)絡(luò)營銷公司關(guān)于網(wǎng)絡(luò)推廣的具體條款3篇
- 2024年起縐尼絲紡面料項目可行性研究報告
- 2025年度重點單位消防安全責(zé)任書簽訂合同協(xié)議3篇
- 2025-2030年(全新版)中國萊賽爾纖維行業(yè)發(fā)展現(xiàn)狀規(guī)劃研究報告
- 張家界喀斯特地貌
- 讓學(xué)生看見你的愛
- 銷售禮盒營銷方案
- 領(lǐng)導(dǎo)溝通的藝術(shù)
- 發(fā)生用藥錯誤應(yīng)急預(yù)案
- 南潯至臨安公路(南潯至練市段)公路工程環(huán)境影響報告
- 綠色貸款培訓(xùn)課件
- 大學(xué)生預(yù)征對象登記表(樣表)
- 主管部門審核意見三篇
- 初中數(shù)學(xué)校本教材(完整版)
- 父母教育方式對幼兒社會性發(fā)展影響的研究
評論
0/150
提交評論