版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第3章 ARM微處理器體系結構與指令集主要內容ARM體系結構的特點ARM微處理器體系結構ARM處理器的工作模式ARM處理器的寄存器組織流水線ARM處理器的存儲ARM處理器的異常 ARM處理器的指令系統(tǒng) ARM處理器的尋址方式 ARM指令集 Thumb指令集3.1 ARM體系結構的特點RISC型處理器結構Thumb指令集多處理器狀態(tài)模式兩種處理器工作狀態(tài)嵌入式在線仿真調試靈活方便的接口低電壓功耗的設計ARM微處理器的特點采用RISC架構的ARM微處理器一般具有如下特點:1、體積小、低功耗、低成本、高性能;3、支持Thumb(16位)/ARM(32位)雙指令集,能很好的兼容8位/16位器件;3、大
2、量使用寄存器,指令執(zhí)行速度更快;4、大多數(shù)數(shù)據(jù)操作都在寄存器中完成;5、尋址方式靈活簡單,執(zhí)行效率高;6、指令長度固定;3.2 ARM處理器體系結構嵌入式處理器的基本結構(1)微處理器是整個系統(tǒng)的核心,通常由3大部分組成:控制單元、算術邏輯單元和寄存器。 算術邏輯單元寄存器控制單元微處理器存儲器輸入輸出嵌入式處理器的基本結構(2)控制單元:主要負責取指、譯碼和取操作數(shù)等基本動作,并發(fā)送主要的控制指令。控制單元中包括兩個重要的寄存器:程序計數(shù)器(PC)和指令寄存器(IR)。程序計數(shù)器用于記錄下一條程序指令在內存中的位置,以便控制單元能到正確的內存位置取指;指令寄存器負責存放被控制單元所取的指令,
3、通過譯碼,產生必要的控制信號送到算術邏輯單元進行相關的數(shù)據(jù)處理工作。嵌入式處理器的基本結構(2)算術邏輯單元:算術邏輯單元分為兩部分,一部分是算術運算單元,主要處理數(shù)值型的數(shù)據(jù),進行數(shù)學運算,如加、減、乘、除或數(shù)值的比較;另一部分是邏輯運算單元,主要處理邏輯運算工作,如AND、OR、XOR或NOT等運算。嵌入式處理器的基本結構(2)寄存器:用于存儲暫時性的數(shù)據(jù)。主要是從存儲器中所得到的數(shù)據(jù)(這些數(shù)據(jù)被送到算術邏輯單元中進行處理)和算術邏輯單元中處理好的數(shù)據(jù)(再進行算術邏輯運行或存入到存儲器中。 3.2.1 ARM處理器的工作狀態(tài)處理器有兩種工作狀態(tài):ARM:32位,執(zhí)行字對準的ARM指令Thu
4、mb:16位,執(zhí)行半字對準的Thumb指令ARM和Thumb之間狀態(tài)的切換不影響處理器的模式或寄存器的內容ARM微處理器:處理器工作狀態(tài)進入Thumb狀態(tài):執(zhí)行BX指令,并設置操作數(shù)寄存器的狀態(tài)(位0)為1。在Thumb狀態(tài)進入異常(IRQ, FIQ, UNDEF, ABORT,SWI etc.),當異常處理返回時自動轉換到Thumb狀態(tài)進入ARM狀態(tài):執(zhí)行BX指令,并設置操作數(shù)寄存器的狀態(tài)(位0)為0。進入異常時,將PC放入異常模式鏈接寄存器中,從異常向量地址開始執(zhí)行也可進入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所對應的物理寄存器都是相同的 這八個寄存器是真正意義上的通用寄存器,ARM體系結構中對它們沒有作任何特殊的假設,它們的功能都是等同的。在中斷或者異常處理程序中一般都需要對這幾個寄存器進行保存。分組寄存器R8R14訪問的物理寄存器取決于當前的處理器模式,若要訪問特定的物理寄存器而不
6、依賴當前的處理器模式,則要使用規(guī)定的名字。 R8-R13各有兩組物理寄存器:一組為FIQ模式,另一組是除FIQ以外的其他模式。R13-R14各有6個分組的物理寄存器,一個用于用戶模式和系統(tǒng)模式,其他5個分別用于5種異常模式。R13(也被稱為SP指針)被用作棧指針,通常在系統(tǒng)初始化時需要對所有模式下的SP指針賦值,當CPU在不同的模式時棧指針會被自動切換成相應模式下的值。R14有兩個用途,一是在調用子程序時用于保存調用返回地址,二是在發(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,當前程序狀態(tài)寄存器),CPSR可在任何運行模式下被訪問,它包括條件標志位、中斷禁止位、當前處理器模式標志位,以及其他一些相關的控制和狀態(tài)位。每一種運行模式下又都有一個專用的物理狀態(tài)寄存器,稱為SPSR(Saved Program Status Register,備份的程序狀態(tài)寄存器),當異常發(fā)生時,SPSR用于保存CPSR的當前值,從異常退出時則可由SPSR來恢復CPSR。由于用戶模式和系統(tǒng)模式不屬于異常
8、模式,他們沒有SPSR,當在這兩種模式下訪問SPSR,結果是未知的。CPSRCPSR(當前程序狀態(tài)寄存器)在所有的模式下都是可以讀寫的,它主要包含:條件標志中斷使能標志當前處理器的模式其它的一些狀態(tài)和控制標志ARM微處理器:程序狀態(tài)寄存器置0表示執(zhí)行32bit的ARM指令置1表示執(zhí)行16bit的Thumb指令 NegativeZeroCarryOverflowIRQ中斷的響應:置1:禁止響應置0:允許響應FIQ中斷的響應:置1:禁止響應置0:允許響應條件標志模式控制位ARM/Thumb控制標志中斷標志ARM微處理器:程序狀態(tài)寄存器模式控制位M0-M4Thumb狀態(tài)下的寄存器組織兩種狀態(tài)下的寄存
9、器組織的關系Thumb狀態(tài)下的寄存器組織與ARM狀態(tài)下的寄存器組織的關系:Thumb狀態(tài)下和ARM狀態(tài)下的R0R7是相同的。Thumb狀態(tài)下和ARM狀態(tài)下的CPSR和所有的SPSR是相同的。Thumb狀態(tài)下的SP對應于ARM狀態(tài)下的R13。Thumb狀態(tài)下的LR對應于ARM狀態(tài)下的R14。 Thumb狀態(tài)下的程序計數(shù)器對應于ARM狀態(tài)下R153.2.3 ARM的工作模式7種CPU模式 CPU模式的轉變:軟件控制異常外部中斷ARM微處理器:CPU模式User模式程序不能訪問有些受保護的資源只能通過異常的形式來改變CPU的當前運行模式特權模式可以存取系統(tǒng)中的任何資源System模式與User模式的
10、運行環(huán)境一樣但是它可以不受任何限制的訪問任何資源該模式主要用于運行系統(tǒng)中的一些特權任務FIQ模式IRQ模式Supervisor模式Abort模式Undefined模式異常模式:主要是在外部中斷或者程序執(zhí)行非法操作時會觸發(fā)3.2.4 流水線1 流水線的概念與原理 處理器按照一系列步驟來執(zhí)行每一條指令,典型的步驟如下: (1)從存儲器讀取指令(fetch); (3)譯碼以鑒別它是屬于哪一條指令(decode); (3)從指令中提取指令的操作數(shù)(這些操作數(shù)往往存在于寄存器中)(reg); (4)將操作數(shù)進行組合以得到結果或存儲器地址(ALU); (5)如果需要,則訪問存儲器以存儲數(shù)據(jù)(mem); (
11、6)將結果寫回到寄存器堆(res)。2 流水線的分類 到ARM7為止的ARM處理器使用簡單的3級流水線,它包括下列流水線級。 (1)取指令(fetch):從寄存器裝載一條指令。 (3)譯碼(decode):識別被執(zhí)行的指令,并為下一個周期準備數(shù)據(jù)通路的控制信號。在這一級,指令占有譯碼邏輯,不占用數(shù)據(jù)通路。 (3)執(zhí)行(excute):處理指令并將結果寫回寄存器。1)3級流水線ARM組織 在ARM9TDMI中使用了典型的5級流水線,5級流水線包括下面的流水線級。 (1)取指令(fetch):從存儲器中取出指令,并將其放入指令流水線。 (3)譯碼(decode):指令被譯碼,從寄存器堆中讀取寄存器
12、操作數(shù)。在寄存器堆中有3個操作數(shù)讀端口,因此,大多數(shù)ARM指令能在1個周期內讀取其操作數(shù)。2)5級流水線ARM組織 (3)執(zhí)行(execute):將其中1個操作數(shù)移位,并在ALU中產生結果。如果指令是Load或Store指令,則在ALU中計算存儲器的地址。 (4)緩沖/數(shù)據(jù)(buffer/data):如果需要則訪問數(shù)據(jù)存儲器,否則ALU只是簡單地緩沖1個時鐘周期。 (5)回寫(write-back):將指令的結果回寫到寄存器堆,包括任何從寄存器讀出的數(shù)據(jù)。 在ARM10中,將流水線的級數(shù)增加到6級,使系統(tǒng)的平均處理能力達到了1.3DMIPS/MHz。 3)6級流水線ARM組織圖3-4 6級流水
13、線指令的執(zhí)行過程3.2.5 異常當正常的程序執(zhí)行流程發(fā)生暫時的停止時,稱之為異常,例如處理一個外部的中斷請求。在處理異常之前,當前處理器的狀態(tài)必須保留,這樣當異常處理完成之后,當前程序可以繼續(xù)執(zhí)行。處理器允許多個異常同時發(fā)生,它們將會按固定的優(yōu)先級進行處理。ARM體系結構中的異常,與8位/16位體系結構的中斷有很大的相似之處,但異常與中斷的概念并不完全等同。1 ARM體系結構所支持的異常類型ARM CPU將引起異常的類型分為7種2 異常優(yōu)先級3 應用程序中的異常處理當系統(tǒng)運行時,異??赡軙S時發(fā)生,為保證在ARM處理器發(fā)生異常時不至于處于未知狀態(tài),在應用程序的設計中,首先要進行異常處理,采用的
14、方式是在異常向量表中的特定位置放置一條跳轉指令,跳轉到異常處理程序,當ARM處理器發(fā)生異常時,程序計數(shù)器PC會被強制設置為對應的異常向量,從而跳轉到異常處理程序,當異常處理完成以后,返回到主程序繼續(xù)執(zhí)行。 異常向量 地 址異 常進入模式0 x0000,0000復位管理模式0 x0000,0004未定義指令未定義模式0 x0000,0008軟件中斷管理模式0 x0000,000C中止(預取指令)中止模式0 x0000,0010中止(數(shù)據(jù))中止模式0 x0000,0014保留保留0 x0000,0018IRQIRQ0 x0000,001CFIQFIQ4 對異常的響應當一個異常出現(xiàn)以后,ARM微處理
15、器會執(zhí)行以下幾步操作 :1、將下一條指令的地址存入相應連接寄存器LR,以便程序在處理異常返回時能從正確的位置重新開始執(zhí)行。 3、將CPSR復制到相應的SPSR中。3、根據(jù)異常類型,強制設置CPSR的運行模式位。 4、強制PC從相關的異常向量地址取下一條指令執(zhí)行,從而跳轉到相應的異常處理程序處。 ARM微處理器:異常當異常出現(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當處理異常返回時,將SPSR傳送到CPSR,R14傳送到PC5 異常返回1、將連接寄存器LR的值減去相應的偏移量后送到PC中。3、將SPSR復制回CPSR中。3、若在進入異常處理時設置了中斷禁止位,要在此清除。6 異常進入/退出時的指令返回指令以前的狀態(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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 唇膏盒產業(yè)深度調研及未來發(fā)展現(xiàn)狀趨勢
- 惡作劇玩具產業(yè)運行及前景預測報告
- 家用油墨輥產業(yè)運行及前景預測報告
- 圣經紙市場發(fā)展預測和趨勢分析
- 套衫產業(yè)規(guī)劃專項研究報告
- 網絡安全服務訓練學習通超星期末考試答案章節(jié)答案2024年
- 后澆帶施工質量控制方案
- 擱板置物架市場需求與消費特點分析
- 2024年大學生黨團知識競賽題庫及答案(共120題)
- 電力企業(yè)安全管理制度流程
- 2024中國海油校園招聘2024人(高頻重點提升專題訓練)共500題附帶答案詳解
- 漢語詞匯與文化智慧樹知到期末考試答案章節(jié)答案2024年浙江師范大學
- TD/T 1061-2021 自然資源價格評估通則(正式版)
- 24春國家開放大學《建筑力學#》形考任務1-4參考答案
- 2023-2024學年教科版三年級上學期科學期中檢測試卷(含答案)
- 2024年北京京能清潔能源電力股份有限公司招聘筆試參考題庫含答案解析
- 2024年湖北省工業(yè)建筑集團招聘筆試參考題庫含答案解析
- 三年級語文上冊第五單元【教材解讀】
- 經緯度計算和轉換工具
- 進境肉類指定口岸建設項目可行性研究報告模板
- Conners兒童行為量表(父母問卷)
評論
0/150
提交評論