




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、ARM 9體系結構體系結構嵌入式處理器嵌入式處理器嵌入式處理器概述嵌入式處理器概述v早期的嵌入式系統通常使用普通個人計算機中的通用處理器v近年來,隨著大量先進的微處理器制造技術的發(fā)展,越來越多的嵌入式系統用嵌入式處理器建造,而不是用通用目的的處理器。 這些嵌入式處理器可以大致分為以下幾類: 注重嵌入式處理器的尺寸、能耗和價格。應用于PDA等不注重計算的設備; 注重嵌入式處理器的性能。應用于路由器等計算密集型的設備; 注重嵌入式處理器的性能、尺寸、能耗和價格。應用于蜂窩電話等設備;嵌入式處理器概述嵌入式處理器概述v 嵌入式微處理器是嵌入式系統的核心。目前32位嵌入式微處理器是市場的主流。v 32
2、位嵌入式微處理器市場,我們可以發(fā)現超過100家的芯片供應商和近30種指令體系結構。v 在1996年以前,最成功的嵌入式微處理器是Motorola公司的68000系列。此外還包括其它體系結構,如Intel公司的I960,Motorola公司的Coldfire,Sun公司的Sparc,以及嵌入式X86系列平臺。v 當然,最引人注目的還是ARM公司的ARM系列、MIPS公司的MIPS系列,以及Hitachi公司的SuperH系列ARMARM處理器的使用量處理器的使用量ARM的應用無處不在的應用無處不在ARM公司簡介公司簡介 v 英文全稱:Advanced RISC Machines v 國家:英國(
3、歐洲) v 行業(yè):電子 半導體 微處理器 智能手機 v 總部:英國劍橋 v CEO:沃倫.伊斯特 v 競爭對手:英特爾 v 市場份額 :v 手機處理器90%的市場份額 v 上網本處理器30%的市場份額 v 平板電腦處理器80%的市場份額 ARM產品產品 ARM系列處理器已經被廣泛的應用于移動電話、手持式計算機以及各種各樣的嵌入式應用領域,成為世界上銷量最大的32位微處理器。 據最新統計,全球有103家巨型IT公司在采用ARM技術,20家最大的半導體廠商中有19家是ARM的用戶,包括德州儀器,意法半導體,Philips,Intel等。ARM支持支持OS類型類型 v Linux、WinCE、iOS
4、、Symbianv 2011年1月10日微軟公司宣布,下一版Windows將正式支持ARM處理器,即Windows8支持ARM。這是計算機工業(yè)發(fā)展歷史上的一件大事,標識著x86處理器的主導地位發(fā)生動搖。ARM處理器的3大特點如下:v 小體積、低功耗、成本低、高性能;v 16位/32位雙指令集;v 全球眾多的合作伙伴。當前ARM體系結構的擴充包括:v Thumb:16位指令集,用以改善代碼密度;v DSP:用于DSP應用的算術運算指令集;v Jazeller:允許直接執(zhí)行Java代碼的擴充。ARM處理器系列提供的解決方案包括:v 在無線、消費電子和圖像應用方面的開放平臺;v 存儲、自動化、工業(yè)和
5、網絡應用的嵌入式實時系統;v 智能卡和SIM卡的安全應用。ARM處理器的特點ARM7系列系列v ARM7采用馮諾依曼(Von-Neumann)結構,數據存儲器和程序存儲器使用同一存儲空間,用相同的指令訪問 。此結構也被大多數計算機所采用。v ARM7為三級流水線結構(取指,譯碼,執(zhí)行),平均功耗為0.6mW/MHz,時鐘速度為66MHz,每條指令平均執(zhí)行1.9個時鐘周期。 v ARM7系列微處理器包括如下幾種類型的核:ARM7TDMI、ARM7TDMI-S、 ARM720T、ARM7EJ。v ARM7TMDI是目前使用最廣泛的32位嵌入式RISC處理器,屬低端ARM處理器核。TDMI的基本含義
6、為(對其它系列也適用): T: 支持16為壓縮指令集Thumb,稱為T變種D: 支持片上Debug,稱為D變種M:內嵌硬件乘法器 Multiplier,稱為M變種I: 嵌入式ICE,支持片上斷點和調試,稱為I變種ARM處理器系列ARM7系列產品系列產品 項目項目 型號型號Cache(Ins/Data)MemoryMgtBusThumbDSPJazelle指令指令版本版本ARM7TDMINoNoAHBYesNoNov4TARM7TDMI-SNoNoAHBYesNoNov4TARM720T8KBMMUAHBYesNoNov4TARM7EJNoNoAHBYesYesYesv5TEJARM9系列系列v
7、 ARM7采用的Neumann結構,取指令和取操作數都是通過一條總線分時進行,這樣,在高速運算時,不但不能同時取指令和取操作數,而且還會造成傳輸通道上的瓶頸現象。v ARM9采用哈佛(Harvard)結構,程序存儲器與數據存儲器分開,提供了較大的存儲器帶寬。同時,大多數DSP都采用此結構。v ARM9為五級流水(取指,譯碼,執(zhí)行,緩沖/數據,回寫),平均功耗為0.7mW/MHz。時鐘速度為120MHz-200MHz,每條指令平均執(zhí)行1.5個時鐘周期。v ARM9系列微處理器包含ARM920T、ARM922T和ARM940T三種類型,主要應用在手持產品、視頻電話、PDA、數字消費產品、機頂盒、家
8、用網關等方面。ARM9系列產品系列產品 項目項目 型號型號Cache(Ins/Data)MemoryMgtBusThumbDSPJazelle指令指令版本版本ARM920T16KB/16KBMMUASBYesNoNov4TARM922T8KB/8KBMMUASBYesNoNov4TARM940T4KB/4KBMMUASBYesNoNov4TARM9E系列系列vARM9E系列微處理器包括如下4種類型的核:ARM926EJ-S、ARM946E-S和ARM966E-S,見表2-3。vARM9E系列是一種包含有微控制器、DSP、Java功能的綜合處理器,強化了數字信號處理能力,適用于需要DSP和微控制
9、器結合使用的情況,并且把Thumb技術和DSP都擴展到了ARM指令中,并且具有EmbededICE-RT邏輯,更好地適應了實時系統開發(fā)的需要。同時ARM9E使用了Jazelle增強技術,該技術支持一種新的Java操作狀態(tài),在硬件中執(zhí)行Java字節(jié)碼。ARM9E系列產品系列產品 項目項目 型號型號Cache(Ins/Data)MemoryMgtBusThumbDSPJazelle指令指令版本版本ARM926EJ-S可變MMU2*AHBYesYesYesv5TEJARM946E-S可變MPUAHBYesYesNov5TEARM966E-S無-AHBYesYesNov5TEARM968E-S無DMA
10、AHBYesYesNov5TEARM10系列系列v ARM10系列微處理器包括:ARM1020E和ARM1022E等型號,見表2-4。v ARM10系列采用了新的體系結構,其核心為使用了向量浮點單元,有強大的浮點運算能力,并且增加了Cache容量和總線寬度,并且具有低功耗的特點。 ARM10系列微處理器主要應用于下一代無線設備、視頻消費品等。ARM10系列產品系列產品 項目項目 型號型號Cache(Ins/Data)MemoryMgtBusThumbDSPJazelle指令指令版本版本ARM1020E32KB/32KBMMU2*AHBYesYesNov5TEARM1022E16KB/16KBM
11、MU2*AHBYesYesNov5TEARM1022E可變MPUMMU2*AHBYesYesYesv5TEJARMStrong/Xscale系列系列v StrongARM是采用ARM體系結構高度集成的32位RISC微處理器。它融合了Intel公司的設計技術,以及ARM體系結構的電源效率,其體系結構在軟件上兼容ARMv4,同時又具有Intel技術優(yōu)點。StrongARM是Intel公司為手持消費類電子和移動計算與通信設備生產的嵌入式處理器。采用StrongARM架構的處理器有:SA-1、SA-110、SA-1100、SA1110和IXP1200。v Xscale是基于ARMv5體系結構的解決方案
12、,是一款性能全、性價比高、功耗低的處理器,支持16位的Thumb和DSP指令集,主要應用于數字移動電話、個人數字助理和網絡產品等。 Xscale架構的處理器有:PXA250、PXA255和PXA270等。ARM核核體系結構體系結構ARM1V1ARM2V2ARM2aS,ARM3V2aARM6,ARM600,ARM610V3ARM7,ARM700,ARM710V3ARM7TDMI,ARM710T,ARM720T ARM740TV4TStrong ARM,ARM8,ARM810V4ARM9TDMI,ARM920T,ARM940TV4TARM9E-SV5TEARM10TDMI,ARM1020EV5TE
13、ARM11,ARM1156T2-S,ARM1156T2F-S,ARM1176JZ-S,ARM11JZF-SV6西安電子科技大學電子對抗研究所ARM流水線結構的發(fā)展預取預?。‵etch)譯碼譯碼(Decode)執(zhí)行執(zhí)行(Execute)預取預取(Fetch)譯碼譯碼(Decode)執(zhí)行執(zhí)行(Execute)訪存訪存(Memory)寫入寫入(Write)預取預?。‵etch)譯碼譯碼(Decode)發(fā)送發(fā)送(Issue)預取預?。‵etch)預取預?。‵etch)執(zhí)行執(zhí)行(Execute)訪存訪存(Memory)寫入寫入(Write)譯碼譯碼(Decode)發(fā)送發(fā)送(Issue)執(zhí)行執(zhí)行(Exec
14、ute)轉換轉換(Snny)訪存訪存(Memory)寫入寫入(Write)ARM7ARM9ARM10ARM1121ARM9TDMI流水線的變化InstructionFetch Shift + ALUMemoryAccessRegWriteRegReadRegDecodeFETCHDECODEEXECUTEMEMORYWRITEARM9TDMIARM or ThumbInst DecodeReg SelectRegReadShiftALURegWriteThumbARMdecompressARM decodeInstructionFetchFETCHDECODEEXECUTEARM7TDMIv5
15、級流水線的級流水線的ARM9內核是內核是哈佛哈佛架構架構,擁有,擁有獨立的指令和數據總線;指令和數據的讀獨立的指令和數據總線;指令和數據的讀取可以在同一周期進行;取可以在同一周期進行;v3級流水的級流水的ARM7內核是指令和數據總線復內核是指令和數據總線復用的用的馮馮.諾依曼諾依曼架構架構,指令和數據的讀取不,指令和數據的讀取不能在同一周期進行;能在同一周期進行;v5級流水線設計把寄存器讀取、邏輯運算、級流水線設計把寄存器讀取、邏輯運算、結果回寫分散在不同的流水當中,結果回寫分散在不同的流水當中, 每一級每一級流水的操作簡潔,提升了處理器的主頻。流水的操作簡潔,提升了處理器的主頻。ARM 體系
16、結構簡介體系結構簡介具有片上總線AMBAARM處理器內核可以通過AMBA來擴展不同體系架構的宏單元及I/O部件。AMBA已成為事實上的片上總線OCB(On Chip Bus)標準,它有以下三類v AHB (先進高性能總線):不但支持突發(fā)方式的數據傳送,還支持分離式總線事務處理,以進一步提高總線的利用效率。特別在高性能的ARM架構系統中,AHB有逐步取代ASB的趨勢,例如在ARM1020E處理器核中。v ASB (先進系統總線) :是目前ARM常用的系統總線,用來連接高性能系統模塊,支持突發(fā)(Burst)方式數據傳送。v APB (先進外圍總線) :為外圍宏單元提供了簡單的接口,也可以把APB看
17、作ASB的余部。 采用存儲器映像I/O的方式,即把I/O端口地址作為特殊的存儲器地址; 具有協處理器接口。ARM允許接16個協處理器,如CP15用于系統控制,CP14用于調試控制器; 采用了降低電源電壓,可工作在3.0V以下;減少門的翻轉次數,當某個功能電路不需要時禁止門翻轉;減少門的數目,即降低芯片的集成度;降低時鐘頻率等一些措施降低功耗; 體積小、低成本、高性能西安電子科技大學電子對抗研究所ARM9體系結構v 系列微處理器:包含ARM920T、ARM922T和ARM940T幾種類型,可以在高性能和低功耗特性方面提供最佳的性能。 采用5級整數流水線(取指、譯碼、執(zhí)行、訪存、回寫)級整數流水線
18、(取指、譯碼、執(zhí)行、訪存、回寫)。 提供1.1MIPS/MHz的哈佛結構哈佛結構。 支持數據Cache和指令Cache,具有更高的指令和數據處理能力。 支持32位ARM指令集和16位Thumb指令集。 支持32位的高速AMBA總線接口。 全性能的MMU。 支持Windows CE、Linux、Palm OS、UCOSII 等多種主流嵌入式操作系統。 MPU(內存保護單元)支持實時操作系統。v ARM920T處理器核在ARM9TDMI處理器內核基礎上,增加了分離式的指令Cache和數據Cache,并帶有相應的存儲器管理單元I-MMU和D-MMU、寫緩沖器及AMBA接口等,如圖2.2.3所示。 A
19、RM體系結構簡介圖2.2.3 ARM920T內核結構 ARM體系結構簡介vARM940T處理器核采用了ARM9TDMI處理器內核,是ARM920T處理器核的簡化版本,沒有存儲器管理單元MMU,不支持虛擬存儲器尋址,而是用存儲器保護單元MPU來提供存儲保護和Cache控制。vARM9系列微處理器主要應用于無線通信設備、儀器儀表、安全系統、機頂盒、高端打印機、數字照相機和數字攝像機等。典型產品如Samsung公司的S3C2410A。 ARM微處理器的寄存器結構 ARM微處理器支持7種運行模式,分別為: 1. usr(用戶模式):ARM處理器正常程序執(zhí)行模式。2. fiq(快速中斷模式):用于高速數
20、據傳輸或通道處理 3. irq(外部中斷模式):用于通用的中斷處理 4. svc(管理模式):操作系統使用的保護模式 5. abt (數據訪問終止模式): 當數據或指令預取終止時進入該模式,可用于虛擬存儲及存儲保護。 6. sys(系統模式): 運行具有特權的操作系統任務。 7. und(未定義指令中止模式):當未定義的指令執(zhí)行時進入該模式,可用于支持硬件協處理器的軟件仿真。 注:ARM微處理器的運行模式可以通過軟件改變,也可以通過外部中斷或異常處理改變。大多數的應用程序運行在用戶模式下,當處理器運行在用戶模式下時,某些被保護的系統資源是不能被訪問的。 ARM微處理器的寄存器結構除用戶模式以外
21、,其余的所有6種模式稱之為非用戶模式,或特權模式(Privileged Modes);其中除去用戶模式和系統模式以外的5種又稱為異常模式(Exception Modes),常用于處理中斷或異常,以及需要訪問受保護的系統資源等情況。v ARM處理器在每一種處理器模式下均有一組相應的寄存器與之對應。即在任意一種處理器模式下,可訪問的寄存器包括15個通用寄存器(R0R14)、一至二個狀態(tài)寄存器和程序計數器。在所有的寄存器中,有些是在7種處理器模式下共用的同一個物理寄存器,而有些寄存器則是在不同的處理器模式下有不同的物理寄存器。ARM微處理器的寄存器結構v 處理器工作狀態(tài):處理器工作狀態(tài):ARM處理器
22、有處理器有32位位ARM和和16位位Thumb兩種工兩種工作狀態(tài)。作狀態(tài)。在在32位位ARM狀態(tài)下執(zhí)行狀態(tài)下執(zhí)行字對齊字對齊的的ARM指令,在指令,在16位位Thumb狀態(tài)下執(zhí)行狀態(tài)下執(zhí)行半字對齊半字對齊的的Thumb指令。指令。v 在在Thumb狀態(tài)下,程序計數器狀態(tài)下,程序計數器PC(Program Counter)使用位)使用位1選擇另一個半字。選擇另一個半字。v ARM處理器在兩種工作狀態(tài)之間可以切換,切換不影響處理器處理器在兩種工作狀態(tài)之間可以切換,切換不影響處理器的模式或寄存器的內容。的模式或寄存器的內容。 (1)當操作數寄存器的狀態(tài)位(位)當操作數寄存器的狀態(tài)位(位0)為)為1時
23、,執(zhí)行時,執(zhí)行BX指令指令進入進入Thumb狀態(tài)。狀態(tài)。如果處理器在如果處理器在Thumb狀態(tài)進入異常,則當狀態(tài)進入異常,則當異常處理(異常處理(IRQ、FIQ、Undef、Abort和和SWI)返回時,自動)返回時,自動轉換到轉換到Thumb狀態(tài)。狀態(tài)。 (2)當操作數寄存器的狀態(tài)位(位)當操作數寄存器的狀態(tài)位(位0)為)為0時,執(zhí)行時,執(zhí)行BX指令進入指令進入ARM狀態(tài)狀態(tài)。處理器進行異常處理(。處理器進行異常處理(IRQ、FIQ、Reset、Undef、Abort和和SWI時,把時,把PC放入異常模式鏈接寄放入異常模式鏈接寄存器中。從異常向量地址開始執(zhí)行也可以進入存器中。從異常向量地址開
24、始執(zhí)行也可以進入ARM狀態(tài)。狀態(tài)。ARM微處理器的寄存器結構ARM處理器共有處理器共有37個寄存器個寄存器,被分為若干個組(,被分為若干個組(BANK),),這些寄器包括:這些寄器包括: 31個通用寄存器個通用寄存器,包括程序計數器(,包括程序計數器(PC指針),指針),均為均為32位位的寄存器。的寄存器。 6個狀態(tài)寄存器個狀態(tài)寄存器,用以標識,用以標識CPU的工作狀態(tài)及程序的運行狀的工作狀態(tài)及程序的運行狀態(tài),態(tài),均為均為32位,目前只使用了其中的一部分位,目前只使用了其中的一部分。v ARM處理器的處理器的37個寄存器被安排成部分重疊的組,不能在任何個寄存器被安排成部分重疊的組,不能在任何模
25、式都可以使用,模式都可以使用,寄存器的使用與處理器狀態(tài)和工作模式有關寄存器的使用與處理器狀態(tài)和工作模式有關。如下圖如下圖2.3.1所示,每種處理器模式使用不同的寄存器組。其中所示,每種處理器模式使用不同的寄存器組。其中15個通用寄存器(個通用寄存器(R0R14)、)、1或或2個狀態(tài)寄存器和程序計數個狀態(tài)寄存器和程序計數器是通用的器是通用的。2.3 ARM微處理器的寄存器結構 運行模式運行模式 工作狀態(tài)工作狀態(tài) 寄存器組織寄存器組織 Thumb狀態(tài)的寄存器集狀態(tài)的寄存器集 ARM微處理器的寄存器結構1通用寄存器(通用寄存器(R0R15)可分成:)可分成:不分組寄存器不分組寄存器R0R7、分組、分
26、組寄存器寄存器R8R14和程序計數器和程序計數器R15 三類。三類。(1)不分組寄存器)不分組寄存器R0R7:不分組寄存器不分組寄存器R0R7是真正的通用是真正的通用寄存器,可以工作在所有的處理器模式下,沒有隱含的特殊用途。寄存器,可以工作在所有的處理器模式下,沒有隱含的特殊用途。(2)分組寄存器)分組寄存器R8R14:分組寄存器分組寄存器R8R14取決于當前的處取決于當前的處理器模式,每種模式有專用的分組寄存器用于快速異常處理。理器模式,每種模式有專用的分組寄存器用于快速異常處理。寄存器寄存器R8Rl2可分為兩組物理寄存器:可分為兩組物理寄存器:一組用于一組用于FIQ模式:訪問模式:訪問R8
27、_fiqR12_fiq,允許快速中斷,允許快速中斷處理。處理。另一組用于除另一組用于除FIQ以外的其他模式:訪問以外的其他模式:訪問R8_usrR12_usr,寄存器寄存器R8R12沒有任何指定的特殊用途。沒有任何指定的特殊用途。寄存器寄存器R13R14可分為可分為6個分組的物理寄存器。個分組的物理寄存器。1個用于用個用于用戶模式和系統模式,而其他戶模式和系統模式,而其他5個分別用于個分別用于svc、abt、und、irq和和fiq五種異常模式。訪問時需要指定它們的模式,如:五種異常模式。訪問時需要指定它們的模式,如:R13_mode,R14_mode;其中:;其中:mode可以從可以從usr
28、、svc、abt、und、irq和和fiq六種模式中選取一個。六種模式中選取一個。ARM微處理器的寄存器結構寄存器寄存器R13通常用作堆棧指針通常用作堆棧指針,稱作,稱作SP。每種異常模式都。每種異常模式都有自己的分組有自己的分組R13。通常通常R13應當被初始化成指向異常模式分配的應當被初始化成指向異常模式分配的堆棧堆棧。在入口處,異常處理程序將用到的其他寄存器的值保存到堆。在入口處,異常處理程序將用到的其他寄存器的值保存到堆棧中;返回時,重新將這些值加載到寄存器。這種異常處理方法保棧中;返回時,重新將這些值加載到寄存器。這種異常處理方法保證了異常出現后不會導致執(zhí)行程序的狀態(tài)不可靠。證了異常
29、出現后不會導致執(zhí)行程序的狀態(tài)不可靠。寄存器寄存器R14用作子程序鏈接寄存器,也稱為鏈接寄存器用作子程序鏈接寄存器,也稱為鏈接寄存器LR (Link Register)。當執(zhí)行帶鏈接分支()。當執(zhí)行帶鏈接分支(BL)指令時,得到)指令時,得到R15的備份。的備份。在其他情況下,將在其他情況下,將R14當做通用寄存器。類似地,當中斷當做通用寄存器。類似地,當中斷或異常出現時,或當中斷或異常程序執(zhí)行或異常出現時,或當中斷或異常程序執(zhí)行BL指令時,指令時,相應的分組相應的分組寄存器寄存器R14_svc、R14_irq、R14_fiq、R14_abt和和R14_und用來用來保存保存R15的返回值的返回
30、值。FIQ模式有模式有7個分組的寄存器個分組的寄存器R8R14,映射為,映射為R8_fiqR14_fiq。在。在ARM狀態(tài)下,許多狀態(tài)下,許多FIQ處理沒必要保存任何寄存器。處理沒必要保存任何寄存器。User、IRQ、Supervisor、Abort和和Undefined模式每一種都包含模式每一種都包含兩個分組的寄存器兩個分組的寄存器R13和和R14的映射,允許每種模式都有自己的堆的映射,允許每種模式都有自己的堆棧和鏈接寄存器。棧和鏈接寄存器。ARM微處理器的寄存器結構(3)程序計數器)程序計數器R15:用作程序計數器(用作程序計數器(PC)。)。在在ARM狀態(tài),位狀態(tài),位1:0為為0,位,位
31、31:2保存保存PC。在在Thumb狀態(tài),位狀態(tài),位0為為0,位,位31:1保存保存PC。R15雖然也可用作通用寄存器,但一般不這么使用,雖然也可用作通用寄存器,但一般不這么使用,因為對因為對R15的使用有一些特殊的限制,當違反了這些限制時,程序的執(zhí)的使用有一些特殊的限制,當違反了這些限制時,程序的執(zhí)行結果是未知的。行結果是未知的。 讀程序計數器。指令讀出的讀程序計數器。指令讀出的R15的值是指令地址加上的值是指令地址加上8字節(jié)。字節(jié)。由于由于ARM指令始終是字對齊的,所以讀出結果值的位指令始終是字對齊的,所以讀出結果值的位1:0總是總是0(在(在Thumb狀態(tài)下,情況有所變化)。讀狀態(tài)下,情
32、況有所變化)。讀PC主要用于快速地對臨近的主要用于快速地對臨近的指令和數據進行位置無關尋址,包括程序中的位置無關轉移。指令和數據進行位置無關尋址,包括程序中的位置無關轉移。 寫程序計數器。寫寫程序計數器。寫R15的通常結果是將寫到的通常結果是將寫到R15中的值作為中的值作為指令地址,并以此地址發(fā)生轉移。由于指令地址,并以此地址發(fā)生轉移。由于ARM指令要求字對齊,通常希指令要求字對齊,通常希望寫到望寫到R15中值的位中值的位1:0=0b00。由于由于ARM體系結構采用了多級流水線技術,對于體系結構采用了多級流水線技術,對于ARM指令集而指令集而言,言,PC總是指向當前指令的下兩條指令的地址,即總
33、是指向當前指令的下兩條指令的地址,即PC的值為當前指令的值為當前指令的地址值加的地址值加8字節(jié)。字節(jié)。ARM微處理器的寄存器結構2程序狀態(tài)寄存器程序狀態(tài)寄存器寄存器寄存器R16用作程序狀態(tài)寄存器用作程序狀態(tài)寄存器CPSR(Current Program Status Register,當前程序狀態(tài)寄存器)。,當前程序狀態(tài)寄存器)。在所有處理器模式下都可在所有處理器模式下都可以訪問以訪問CPSR。CPSR包含條件碼標志、中斷禁止位、當前處理器模式包含條件碼標志、中斷禁止位、當前處理器模式以及其他狀態(tài)和控制信息。以及其他狀態(tài)和控制信息。每種異常模式都有一個程序狀態(tài)保存寄存器每種異常模式都有一個程序
34、狀態(tài)保存寄存器SPSR(Saved Program Status Register)。當異常出現)。當異常出現SPSR用于用于保留保留CPSR的狀態(tài)。的狀態(tài)。CPSR和和SPSR的格式如下:的格式如下:(1)條件碼標志)條件碼標志N、Z、C、V(Negative、Zero、Carry、Overflow)均為條件碼標志)均為條件碼標志位(位(Condition Code Flags),它們的內容可被算術或邏輯運算的結),它們的內容可被算術或邏輯運算的結果所改變,并且可以決定某條指令是否被執(zhí)行。果所改變,并且可以決定某條指令是否被執(zhí)行。CPSR中的條件碼標志中的條件碼標志可由大多數指令檢測以決定指
35、令是否執(zhí)行。在可由大多數指令檢測以決定指令是否執(zhí)行。在ARM狀態(tài)下,絕大多數狀態(tài)下,絕大多數的指令都是有條件執(zhí)行的。在的指令都是有條件執(zhí)行的。在Thumb狀態(tài)下,僅有分支指令是有條件狀態(tài)下,僅有分支指令是有條件執(zhí)行的。執(zhí)行的。通常條件碼標志通過執(zhí)行比較指令(通常條件碼標志通過執(zhí)行比較指令(CMN、CMP、TEQ、TST)、一)、一些算術運算、邏輯運算和傳送指令進行修改。些算術運算、邏輯運算和傳送指令進行修改。ARM微處理器的寄存器結構2程序狀態(tài)寄存器程序狀態(tài)寄存器(1)條件碼標志條件碼標志的通常含義如下: N:如果結果是帶符號二進制補碼,那么,若結果為負數,則N=1;若結果為正數或0,則N0。
36、 Z:若指令的結果為0,則置1(通常表示比較的結果為“相等”),否則置0。 C:可用如下4種方法之一設置:一加法(包括比較指令CMN)。若加法產生進位(即無符號溢出),則C置1;否則置0。 一減法(包括比較指令CMP)。若減法產生借位(即無符號溢出),則C置0;否則置1。 一對于結合移位操作的非加法減法指令,C置為移出值的最后1位。 一對于其他非加法減法指令,C通常不改變。 V:可用如下兩種方法設置,即 一對于加法或減法指令,當發(fā)生帶符號溢出時,V置1,認為操作數和結果是補碼形式的帶符號整數。 一對于非加法減法指令,V通常不改變。ARM微處理器的寄存器結構 2程序狀態(tài)寄存器程序狀態(tài)寄存器(1)
37、條件碼標志)條件碼標志(2)控制位)控制位 程序狀態(tài)寄存器程序狀態(tài)寄存器CPSR(Program Status Register)的最低)的最低8位位I、F、T和和M4:0用作控制位用作控制位。當異常出現時改變控制位。處理器在特權模式下時也可。當異常出現時改變控制位。處理器在特權模式下時也可由軟件改變。由軟件改變。a中斷禁止位中斷禁止位 I:置:置1,則禁止,則禁止IRQ中斷中斷; F:置:置1,則禁止,則禁止FIQ中斷。中斷。bT位位 T=0 指示指示ARM執(zhí)行執(zhí)行; T=1 指示指示Thumb執(zhí)行執(zhí)行。c模式控制位模式控制位 M4、M3、M2、Ml和和M0(M4:0)是模式位,決定處理器的
38、工作模式,)是模式位,決定處理器的工作模式,如如下表下表2.3.1所列。所列。并非所有的模式位組合都能定義一種有效的處理器模式。其他組合的結果不可并非所有的模式位組合都能定義一種有效的處理器模式。其他組合的結果不可預知。預知。(3)其他位)其他位 程序狀態(tài)寄存器的其他位保留,用做以后的擴展程序狀態(tài)寄存器的其他位保留,用做以后的擴展。ARM微處理器的寄存器結構M4:0 處理器工作模處理器工作模式式可訪問的寄存器可訪問的寄存器10000 用戶模式用戶模式PC,CPSR,R14R0 10001 FIQ模式模式PC,R7R0,CPSR, SPSR_fiq,R14_fiqR8_fiq 10010 IRQ
39、模式模式PC,R12R0,CPSR, SPSR_irq,R14_irq,R13_irq10011 管理模式管理模式PC,R12R0, CPSR, SPSR_svc,R14_svc,R13_svc10111 中止模式中止模式PC,R12R0, CPSR, SPSR_abt,R14_abt,R13_abt11011 未定義模式未定義模式PC,R12R0, CPSR, SPSR_und,R14_und,R13_und11111 系統模式系統模式PC,R14R0,CPSR(ARM v4及以上版本)及以上版本)ARM微處理器的寄存器結構v Thumb狀態(tài)的寄存器集:如下圖所示,是ARM狀態(tài)下的寄存器集的
40、子集。程序員可以直接訪問8個通用寄存器(R0R7)、PC、SP、LR和CPSR。每種特權模式都有一組SP、LR和SPSR。圖2.3.2 Thumb狀態(tài)下寄存器組織ARM微處理器的寄存器結構ARM微處理器的寄存器結構 Thumb狀態(tài)狀態(tài)R0R7與與ARM狀態(tài)狀態(tài)R0R7是一致的。是一致的。 Thumb狀態(tài)狀態(tài)CPSR和和SPSR與與ARM的狀態(tài)的狀態(tài)CPSR和和SPSR是一是一致的。致的。 Thumb狀態(tài)狀態(tài)SP映射到映射到ARM狀態(tài)狀態(tài)R13。 Thumb狀態(tài)狀態(tài)LR映射到映射到ARM狀態(tài)狀態(tài)R14。 Thumb狀態(tài)狀態(tài)PC映射到映射到ARM狀態(tài)狀態(tài)PC(R15)。)。在在Thumb狀態(tài)下,寄
41、存器狀態(tài)下,寄存器R8R15(高寄存器)并不是(高寄存器)并不是標準寄存器集的一部分。匯編語言編程者訪問它雖有限制,但可標準寄存器集的一部分。匯編語言編程者訪問它雖有限制,但可以將其用做快速暫存存儲器,將以將其用做快速暫存存儲器,將R0R7(Lo-registers,低寄,低寄存器)中的值傳送到存器)中的值傳送到R8R15(Hi-registers,高寄存器)。,高寄存器)。2.3 ARM微處理器的異常處理在一個正常的程序流程執(zhí)行過程中,由內部或外部源產生的在一個正常的程序流程執(zhí)行過程中,由內部或外部源產生的一個事件使正常的程序產生暫時的停止時,稱之為一個事件使正常的程序產生暫時的停止時,稱之
42、為異常異常。異常是。異常是由內部或外部源產生并引起處理器處理一個事件,例如一個外部由內部或外部源產生并引起處理器處理一個事件,例如一個外部的中斷請求。在處理異常之前,當前處理器的狀態(tài)必須保留,當的中斷請求。在處理異常之前,當前處理器的狀態(tài)必須保留,當異常處理完成之后,恢復保留的當前處理器狀態(tài),繼續(xù)執(zhí)行當前異常處理完成之后,恢復保留的當前處理器狀態(tài),繼續(xù)執(zhí)行當前程序。程序。多個異常同時發(fā)生時,處理器將會按固定的優(yōu)先級進行處多個異常同時發(fā)生時,處理器將會按固定的優(yōu)先級進行處理。理。ARM體系結構中的異常,與單片機的中斷有相似之處,但異體系結構中的異常,與單片機的中斷有相似之處,但異常與中斷的概念并
43、不完全等同,例如外部中斷或試圖執(zhí)行未定義常與中斷的概念并不完全等同,例如外部中斷或試圖執(zhí)行未定義指令都會引起異常。指令都會引起異常。v ARM體系結構的異常類型:體系結構的異常類型:ARM體系結構支持體系結構支持7種類型的異常。種類型的異常。異常類型、異常處理模式和優(yōu)先級如下表異常類型、異常處理模式和優(yōu)先級如下表2.4.1所示。所示。異常出現后,強制從異常類型對應的固定存儲器地址開始執(zhí)行程異常出現后,強制從異常類型對應的固定存儲器地址開始執(zhí)行程序序。這些固定的地址稱為。這些固定的地址稱為異常向量異常向量(Exception Vectors)。)。ARM微處理器的異常處理異常類型異常類型異常異常
44、進入模式進入模式地址(異常向量)地址(異常向量)優(yōu)先級優(yōu)先級復位復位復位復位管理模式管理模式0 x0000,00001(最高)(最高)未定義指令未定義指令未定義指令未定義指令未定義模式未定義模式0 x0000,00046(最低)(最低)軟件中斷軟件中斷軟件中斷軟件中斷管理模式管理模式0 x0000,00086(最低)(最低)指令預取中止指令預取中止中止(預取指中止(預取指令)令)中止模式中止模式0 x0000,000C5數據中止數據中止中止(數據)中止(數據)中止模式中止模式0 x0000,00102IRQ(外部中斷請(外部中斷請求)求)IRQIRQ0 x0000,00184FIQ(快速中斷請
45、(快速中斷請求)求)FIQFIQ0 x0000,001C3ARM體系結構的異常類型和異常處理模式體系結構的異常類型和異常處理模式注:可在注:可在1C處存放處存放FIQ服務程序,以提高執(zhí)行速度服務程序,以提高執(zhí)行速度2.3 ARM微處理器的異常處理異常類型的含義:異常類型的含義:(1)復位:)復位:當處理器的復位電平有效時,產生復位異常當處理器的復位電平有效時,產生復位異常,ARM處理處理器立刻停止執(zhí)行當前指令。復位后,器立刻停止執(zhí)行當前指令。復位后,ARM處理器在禁止中斷的管理處理器在禁止中斷的管理模式下,程序跳轉到復位異常處理程序處執(zhí)行(從地址模式下,程序跳轉到復位異常處理程序處執(zhí)行(從地址
46、0 x00000000或或0 xFFFF0000開始執(zhí)行指令)。開始執(zhí)行指令)。(2)未定義指令異常:)未定義指令異常:當當ARM處理器或協處理器遇到不能處理的指處理器或協處理器遇到不能處理的指令時,產生未定義指令異常。令時,產生未定義指令異常。當當ARM處理器執(zhí)行協處理器指令時,處理器執(zhí)行協處理器指令時,它必須等待任一外部協處理器應答后,才能真正執(zhí)行這條指令。若它必須等待任一外部協處理器應答后,才能真正執(zhí)行這條指令。若協處理器沒有響應,就會出現未定義指令異常。若試圖執(zhí)行未定義協處理器沒有響應,就會出現未定義指令異常。若試圖執(zhí)行未定義的指令,也會出現未定義指令異常。未定義指令異??捎糜谠跊]有的
47、指令,也會出現未定義指令異常。未定義指令異??捎糜谠跊]有物理協處理器(硬件)的系統上,對協處理器進行軟件仿真,或在物理協處理器(硬件)的系統上,對協處理器進行軟件仿真,或在軟件仿真時進行指令擴展。軟件仿真時進行指令擴展。(3)軟件中斷異常()軟件中斷異常(SoftWare Interrupt,SWI):):軟件中斷異常由軟件中斷異常由執(zhí)行執(zhí)行SWI指令產生,可使用該異常機制實現系統功能調用,指令產生,可使用該異常機制實現系統功能調用,用于用用于用戶模式下的程序調用特權操作指令,以請求特定的管理(操作系統)戶模式下的程序調用特權操作指令,以請求特定的管理(操作系統)函數。函數。ARM微處理器的異
48、常處理異常類型的含義:異常類型的含義:(4)指令預取中止:)指令預取中止:若處理器預取指令的地址不存在,或該地址不允許若處理器預取指令的地址不存在,或該地址不允許當前指令訪問,當前指令訪問,存儲器會向處理器發(fā)出存儲器中止(存儲器會向處理器發(fā)出存儲器中止(Abort)信號,但)信號,但當預取的指令被執(zhí)行時,才會產生指令預取中止異常。當預取的指令被執(zhí)行時,才會產生指令預取中止異常。(5)數據中止(數據訪問存儲器中止):)數據中止(數據訪問存儲器中止):若處理器數據訪問指令的地址若處理器數據訪問指令的地址不存在,或該地址不允許當前指令訪問時,產生數據中止異常。不存在,或該地址不允許當前指令訪問時,產
49、生數據中止異常。存儲存儲器系統發(fā)出存儲器中止信號。響應數據訪問(加載或存儲)激活中止,器系統發(fā)出存儲器中止信號。響應數據訪問(加載或存儲)激活中止,標記數據為無效。在后面的任何指令或異常改變標記數據為無效。在后面的任何指令或異常改變CPU狀態(tài)之前,數據狀態(tài)之前,數據中止異常發(fā)生。中止異常發(fā)生。(6)外部中斷請求()外部中斷請求(IRQ)異常:)異常:當處理器的外部中斷請求引腳有效,當處理器的外部中斷請求引腳有效,且且CPSR中的中的I位為位為0時,產生時,產生IRQ異常。異常。系統的外設可通過該異常請求系統的外設可通過該異常請求中斷服務。中斷服務。IRQ異常的優(yōu)先級比異常的優(yōu)先級比FIQ異常的
50、低異常的低。當進入。當進入FIQ處理時,會處理時,會屏蔽掉屏蔽掉IRQ異常。異常。(7)快速中斷請求()快速中斷請求(FIQ)異常:)異常:當處理器的快速中斷請求引腳有效,當處理器的快速中斷請求引腳有效,且且CPSR中的中的F位為位為0時,產生時,產生FIQ異常異常。FIQ支持數據傳送和通道處理,支持數據傳送和通道處理,并有足夠的私有寄存器。并有足夠的私有寄存器。ARM微處理器的異常處理異常名稱異常名稱對應模式對應模式正常向量正常向量高地址向量高地址向量復位復位管理管理(svc)(svc)0 x000000000 x000000000 xFFFF00000 xFFFF0000未定義指令未定義指
51、令未定義未定義(und)(und)0 x000000040 x000000040 xFFFF00040 xFFFF0004軟件中斷軟件中斷(SWI)(SWI)管理管理(svc)(svc)0 x000000080 x000000080 xFFFF00080 xFFFF0008指令預取中止指令預取中止(取指令存儲(取指令存儲器中止)器中止)中止中止(abt)(abt)0 x0000000C0 x0000000C0 xFFFF000C0 xFFFF000C數據中止數據中止中止中止(abt)(abt)0 x000000100 x000000100 xFFFF00100 xFFFF0010IRQIRQ(
52、中斷)(中斷)IRQ(irq)IRQ(irq)0 x000000180 x000000180 xFFFF00180 xFFFF0018FIQFIQ(快速中斷)(快速中斷)FIQ(fiq)FIQ(fiq)0 x0000001C0 x0000001C0 xFFFF001C0 xFFFF001CARM9的異常處理模式的異常處理模式ARM9的運行模式的運行模式(用戶模式、系統模式)(用戶模式、系統模式)ARM微處理器的異常處理當一個異常出現以后,當一個異常出現以后,ARM微處理器會執(zhí)行以下幾步操作:微處理器會執(zhí)行以下幾步操作: 將下一條指令的地址存入相應連接寄存器將下一條指令的地址存入相應連接寄存器L
53、R(R14),以便程),以便程序在處理異常返回時能從正確的位置重新開始執(zhí)行。序在處理異常返回時能從正確的位置重新開始執(zhí)行。若異常是從若異常是從ARM狀態(tài)進入,狀態(tài)進入,LR寄存器中保存的是下一條指令的地址(當前寄存器中保存的是下一條指令的地址(當前PC4或或PC8,與異常的類型有關);若異常是從,與異常的類型有關);若異常是從Thumb狀狀態(tài)進入,則在態(tài)進入,則在LR寄存器中保存當前寄存器中保存當前PC的偏移量。的偏移量。 將將CPSR狀態(tài)傳送到相應的狀態(tài)傳送到相應的SPSR中。中。 根據異常類型,強制設置根據異常類型,強制設置CPSR的運行模式位。的運行模式位。 強制強制PC從相關的異常向量
54、地址取下一條指令執(zhí)行,從相關的異常向量地址取下一條指令執(zhí)行,跳轉到相應跳轉到相應的異常處理程序的異常處理程序。還可以設置中斷禁止位,以禁止中斷發(fā)生。還可以設置中斷禁止位,以禁止中斷發(fā)生。注:如果異常發(fā)生時,處理器處于注:如果異常發(fā)生時,處理器處于Thumb狀態(tài),則當異常向量狀態(tài),則當異常向量地址加載入地址加載入PC時,處理器自動切換到時,處理器自動切換到ARM狀態(tài)。狀態(tài)。2.3 ARM微處理器的異常處理異常處理完畢之后,異常處理完畢之后,ARM微處理器會執(zhí)行以下幾步操作從異常返回:微處理器會執(zhí)行以下幾步操作從異常返回: 將連接寄存器將連接寄存器LR的值減去相應的偏移量后送到的值減去相應的偏移量
55、后送到PC中。中。P35第第1條指令:條指令:PC 8 0 x8000;發(fā)生異常;發(fā)生異常第第2條指令:條指令:PC 4 0 x8004 ;程序返回的位置(調整;程序返回的位置(調整LR為為PC 4)第第3條指令:條指令:PC 0 x8008;當前;當前PC(LR) PC 0 x800C;當前;當前PC(LR)例:例:返回指令返回指令 SWI : MOVS PC, LR ;R14_svc, pc 當前指令的下兩條當前指令的下兩條 IRQ :SUBS PC, R14_irq, #4 ;, pc 當前指令的下三條當前指令的下三條 將將SPSR內容送回內容送回CPSR中中。 若在進入異常處理時設置了
56、中斷禁止位,要在此清除。若在進入異常處理時設置了中斷禁止位,要在此清除??梢哉J為應用程序總是從復位異常處理程序開始執(zhí)行的,因此復位異??梢哉J為應用程序總是從復位異常處理程序開始執(zhí)行的,因此復位異常處理程序不需要返回。處理程序不需要返回。ARM微處理器的異常處理應用程序中的異常處理: 在應用程序的設計中,異常處理采用的方式是在異常向量表中的特定位置放置一條跳轉指令,跳轉到異常處理程序。當ARM處理器發(fā)生異常時,程序計數器PC會被強制設置為對應的異常向量,從而跳轉到異常處理程序,當異常處理完成以后,返回到主程序繼續(xù)執(zhí)行。2.4 ARM的存儲器結構1地址空間:地址空間:ARM體系結構使用體系結構使用
57、232個字節(jié)的單一、線性地址空間。將字節(jié)地個字節(jié)的單一、線性地址空間。將字節(jié)地址做為無符號數看待,址做為無符號數看待,范圍為范圍為02321(4G)。注:注:1)目的地址越界時,)目的地址越界時,PC復位為復位為0 x0000 00002)程序順序執(zhí)行:)程序順序執(zhí)行:ARM狀態(tài):狀態(tài):PC寄存器的值寄存器的值 = 當前執(zhí)行指令地址當前執(zhí)行指令地址 + 8Thumb狀態(tài):狀態(tài): PC寄存器的值寄存器的值 = 當前執(zhí)行指令地址當前執(zhí)行指令地址 + 43)分支)分支ARM:目的地址:目的地址 = PC + 偏移量偏移量2存儲器格式:存儲器格式:字或半字的地址由其低地址表示字或半字的地址由其低地址表
58、示對于字對齊的地址對于字對齊的地址A,地址空間規(guī)則要求如下:,地址空間規(guī)則要求如下: 地址位于地址位于A的字由地址為的字由地址為A、A1、A2和和A3的字節(jié)組成;的字節(jié)組成; 地址位于地址位于A的半字由地址為的半字由地址為A和和A1的字節(jié)組成;的字節(jié)組成; 地址位于地址位于A2的半字由地址為的半字由地址為A2和和A3的字節(jié)組成;的字節(jié)組成; 地址位于地址位于A的字由地址為的字由地址為A和和A2的半字組成。的半字組成。ARM存儲系統可以使用小端存儲或者大端存儲兩種方法,大端存儲和存儲系統可以使用小端存儲或者大端存儲兩種方法,大端存儲和小端存儲格式如圖小端存儲格式如圖2.5.1所示。所示。2.4
59、ARM的存儲器結構圖圖2.5.1 大端存儲和小端存儲格式大端存儲和小端存儲格式字或半字的對齊:字或半字的對齊:例半字地址均是偶地址,字地址均是例半字地址均是偶地址,字地址均是4的倍數的倍數ARM的存儲器結構3ARM存儲器結構:存儲器結構:ARM處理器有的帶有指令處理器有的帶有指令Cache和數據和數據Cache,但不帶有片內,但不帶有片內RAM和片內和片內ROM。系統所需的系統所需的RAM和和ROM(包括(包括Flash)都通過總線外接。由于系統的地址范圍較大)都通過總線外接。由于系統的地址范圍較大(2324GB),),有的片內還帶有存儲器管理單元有的片內還帶有存儲器管理單元MMU(Memor
60、y Management Unit)。)。4存儲器映射存儲器映射I/O:存儲器和存儲器和I/O統一編址。統一編址。I/O口使用特定的存儲口使用特定的存儲器地址,當從這些地址加載(用于輸入)或向這些地址存儲(用器地址,當從這些地址加載(用于輸入)或向這些地址存儲(用于輸出)時,完成于輸出)時,完成I/O功能。加載和存儲也可用于執(zhí)行控制功能,功能。加載和存儲也可用于執(zhí)行控制功能,代替或者附加到正常的輸入或輸出功能代替或者附加到正常的輸入或輸出功能S3C2410A簡介v S3C2410A:是是Samsung公司推出的公司推出的16/32位位RISC處理器,主要面向處理器,主要面向高性價比、低功耗的高
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 賣海鮮合同范例
- 雙方出出資合同范例
- 修繕工程服務合同范例
- 單位賣車合同范例
- 加盟標準合同范例
- 人防設備安裝合同范例
- 賣建屋合同范例
- 廚房和衛(wèi)生間裝修合同范例
- 亞克力板材合同范例
- 包裝盒印刷廠合同范例
- GB 15763.4-2009建筑用安全玻璃第4部分:均質鋼化玻璃
- 設備潤滑管理基礎知識培訓教材
- 哈克貝利·費恩歷險記(課堂)課件
- 小班 社會語言 懂禮貌的好寶寶 課件(互動版)
- 四川省生育登記表(樣表)
- 醫(yī)療護理品管圈QCC成果匯報之提高住院病人健康宣教的知曉率(問題解決型)
- DB34-T 4243-2022 智慧醫(yī)院醫(yī)用耗材SPD驗收規(guī)范
- 5.4直線式感應同步器解析課件
- 煤礦“雙回路”供電保障專項整治實施方案
- 航空航天概論(課堂PPT)
- 科教版四年級第二學期自然教學教案
評論
0/150
提交評論