嵌入式處理器體系結構課_第1頁
嵌入式處理器體系結構課_第2頁
嵌入式處理器體系結構課_第3頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、嵌入式處理器的體系結構寫rfS 廠PCRn第二章嵌入式處理器體系結構講授內容:ARMi理器的編程模型目 錄: 匚數(shù)據(jù)在內核中的移動過程2.內核的工作狀態(tài)與工作模式3.內核中的寄存黠組4.異常中斷5 存儲器格式及數(shù)據(jù)類型&流水線技術處理器內核中數(shù)據(jù)的移動過程數(shù)捌彳指令譯碼器寄存器文件(rfl-r!5)A4Knit B 4(桶形移位器)/XMAC 5L>(地址寄存器卜L-氏抑施器)地址ARM內核的數(shù)據(jù)流模型ARM內核是數(shù)據(jù)(此處的數(shù)據(jù)包括指令和數(shù)據(jù))總線連接的各個功能單元的 集合:1. 數(shù)據(jù)經(jīng)總線進入處理器核,其中的指令在執(zhí)行前被指令譯碼器翻譯;2. ARM采用load/store

2、體系結構將要使用的數(shù)據(jù)加載或移出,數(shù)據(jù)處理只 能在寄存器里進行;3. 數(shù)據(jù)存儲在寄存器文件里 (一組 32位的寄存器存儲體 ) ,大部分指令認為 寄存器中保存的是 32位有符號/無符號數(shù),故數(shù)據(jù)從存儲器加載至寄存器前符號 擴展硬件會把 8/16 位數(shù)轉換為 32 位;4. 典型的ARM指令通常有2個源寄存器(Rm和Rn)和1個目的寄存器(Rd), 源操作數(shù)分別通過內部總線 A和B從寄存器文件中讀出(ARM的一個重要特征是 寄存器Rm可以選擇進入ALU之前是否先經(jīng)過桶形移位器預處理,從而計算較大 范圍的表達式和地址 ) ;5. ALU和MAC乘累加單元)通過A和B得到值計算出結果并將其寫到寄存器

3、 文件中,ALU還會產生一個地址,該地址被保存到地址寄存器并發(fā)送到地址總線 上協(xié)助數(shù)據(jù)的傳輸 (地址加法器自動更新地址寄存器 );6. 處理器連續(xù)執(zhí)行指令直至異?;蛑袛喔淖冋5膱?zhí)行流。二.ARMfct理器的工作狀態(tài)和工作模式1. 處理器的工作狀態(tài)ARM處理器內核支持3種工作狀態(tài):ARM犬態(tài)(32位字對齊的指令)、Thumb 狀態(tài)(16位半字對齊的指令)和Jazelle狀態(tài)(8位指令集,用來加速Java字節(jié)碼 的執(zhí)行) ,某一時刻處理器只能處于其中的一種狀態(tài)中。由于 Jazelle 指令集使 用范圍專一,故一般情況下只討論 ARM和 Thumb兩種指令集。兩種指令集各具特色, 使用的場合也不同

4、, 同一個程序可以同時包含上述兩 種指令集, 因此涉及到二者相互轉換的問題。 程序執(zhí)行過程中, 處理器可通過軟 件或異常處理在兩種狀態(tài)之間切換:特定指令ARM異常 Thumb矚”二異常返回”?使用切換指令在ARMFP Thumb旨令集之間切換(處理器總是從ARM犬態(tài)開 始執(zhí)行代碼)a .執(zhí)行BX指令時,如果操作數(shù)寄存器的狀態(tài)位 bit0=1 ,處理器切換 到Thumb狀態(tài);b .執(zhí)行BX指令時,如果操作數(shù)寄存器的狀態(tài)位 bit0=0 ,處理器切換 至U ARM犬態(tài)。從ARM狀態(tài)進入Thumb狀態(tài)LDR RO, #Thumb func+1BX RO/從Thumb狀態(tài)進入ARM狀態(tài)LDR RO,

5、# ARMfuncBX RO?所有異常處理均在ARM犬態(tài)執(zhí)行2. 處理器的工作模式a概述? ARM的體系結構支持7種工作模式(好似每個人都有幾套不同風格的衣服 來配合不同的場合);?每種工作模式的功能各異、所能訪問的寄存器資源有所不同(特權模式允許對CPSR的完全讀/寫,非特權模式只允許讀但允許對條件標志的寫 );?區(qū)分開不同的工作模式并賦于它們不同的硬件資源為的是不同的情況采 用不同的資源來進行處理,從而避免資源的相互競爭。b工作模式一覽表ARM處理器的工作模式ARM處理器工作模式簡寫用戶模式用戶模式usr特權模式系統(tǒng)模式系統(tǒng)模式sys異常模式外部中斷模式irq快速中斷模式tiq數(shù)據(jù)訪問中止

6、模式abt管理者模式SVC未定義指令中止模式und?用戶模式(USR) ARM處理器正常的程序執(zhí)行狀態(tài)?系統(tǒng)模式(SYS)相當于一種可以使用操作系統(tǒng)的特權用戶模式?快速中斷模式(FIQ)用于支持特殊的高速數(shù)據(jù)傳輸與通道處理?外部中斷模式(IRQ)用于通用的中斷處理?管理模式(SVC)操作系統(tǒng)使用的保護模式?中止模式(ABT)數(shù)據(jù)或指令預取中止時進入的模式?未定義模式(UND執(zhí)行未定義指令時進入的模式c 相關寄存器CPSR處理器具體工作在何種工作模式下是由ARM內核的cpsr寄存器的特定位控制的(它還有一個備份寄存器)。標志域 狀態(tài)域 擴展域控制域位域 |!1IIII!31 30 29 2876

7、5 40NZCVIFTMode通用程序狀態(tài)器位域處理器模武cpsr4:0特權備注用戶模式10000否不能直接切換到其他模成系統(tǒng)模武IH11足貝和叫以直接切換到其他模式的特權快速中斷模式10001是發(fā)生F1Q異常響應時進入該模式外部中斷模式10() 10發(fā)生IRQ井常響應時進入該模式俘理模武IOOU是系統(tǒng)箜位和響應時進入中止模式I0HI數(shù)據(jù)或指令預取中上時進入未定義模式JWH是未定義指令異常響應時進入d 工作模式的切換ARM處理器的工作模式在一定的條件下是可以相互轉換的,轉換方式有兩種:?硬件方式(內核響應異常或中斷,CPSR的內容要復制到SPSR中)?軟件方式(在特權模式下修改CPSR的模式控

8、制位,不復制)異常/中斷廠用戶模式嵋丄特權模式)指令指令注:進入用戶模式只能通過揺令實現(xiàn)而進入特權模式有兩條途徑.三.處理器的寄存器組1. 概述? ARM處理器采用Load/Store體系結構,這意味著沒有直接操作存儲器的 指令,數(shù)據(jù)處理只能在寄存器中進行,結果被寫回到存儲器中。存儲器寄存器LDK m. Ml(Load )I DR R3, M2STR R5* IU3(Store)HIR5H3? ARM處理器共有37個32位的寄存器,其中31個為通用寄存器,6個為狀ARM的奇存器位)/狀態(tài)寄存器'通用寄存器CPSRfl 個)SPSR (§個)I忙(I個)英它通用寄存器未分組寄存

9、器(R(J R7)分組寄存器Z(RSRI4) XR8-R12分為2種RI5-RI4分為石種態(tài)寄存器。這些寄存器不能同時被訪問,處理器的每種工作狀態(tài)及其工作模式都 對應一組可編程訪問的寄存器組。ARM寄存器(共37個)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的當前值,共分 為 3 類:? 未分組寄存器 (R0-R7)? 分組寄存器 (R8-R14)? 程序計數(shù)器 PC(R15)a-1. 未分組寄存器對于任何工作模式,R0-R7都指向同一個物理寄存器。由于不同的工作模式 使用相同的物理寄存器,故可能造成其中的數(shù)據(jù)損壞,在程序設計時要注意。a-2. 分組寄存器每個分組寄存器都對應多個物理寄存器, 處理器的工作模式不同所訪問的物 理寄存器也不一樣。某種特定模式所對應的分組寄存器采

11、用 “寄存器_模式標記” 的方式來表示,如 R14_abt。? R8-R12 分別對應 2 個不同的物理寄存器: FIQ 模式下使用物理寄存器 R8_fiq-R12_fiq ,其他模式使用R8-R12(擁有自己獨立的寄存器使得進入 FIQ模 式時無需將寄存器參數(shù)入站保存,從而加快進入中斷處理函數(shù)的速度);? R13-R14分別對應6個不同的物理寄存器:系統(tǒng)上電后的初始化代碼會初 始化所有模式下的R13,使其指向運行該模式時專用的堆棧空間,用于進入異常 處理程序時保護現(xiàn)場;R14也稱為鏈接寄存器(Subroutine Link Register) ,當 執(zhí)行BL指令時系統(tǒng)自動將PC備份到其中,便

12、于將來的返回,其他情況下可做通 用寄存器。R14的使用方法如下:1.用BL或BLX指令調用子程序,將PC值自 動賦給R14; 2.執(zhí)行完子程序后,再將R14的值復制到PC實現(xiàn)子程序的調用 返回。將R14復制到PC實現(xiàn)子程序調用返回有兩種方式:L MOV PCt LR 或 BX LR2. SIM I I) R13S < Register >, R14 "子程序入口處LDMFD R13!, < Register >, PC / 子程序返回時a-3.程序狀態(tài)寄存器a-3.1 概述ARM內核使用CPSR來監(jiān)視和控制內部的操作,它是一個32位的專用寄存 器。ARM體系結

13、構包括1個當前程序狀態(tài)寄存器(CPSR-Current Program Status Register)和 5 個備份程序狀態(tài)寄存器(SPSR-Saved Program Status Register)。 每個異常中斷模式都對應一個SPSR用戶模式和系統(tǒng)模式不是異常中斷模式,因而沒有對應的SPSR在任何處理器模式下都可以訪問 CPSR但在用戶模式和 系統(tǒng)模式下訪問SPSF會帶來不可預測的后果。a-3.2位域分配圖標志域比十狀態(tài)域-擴展域- 控制域 ”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|域用途蕉負標志記錄標恵設置操作的結果L零標志,如果標志設置操作的結果是0則置位C進位標志,記錄無符號數(shù)加法溢出、減法無借位、循環(huán)移位V溢岀標恚,記錄標志設置操作的有符號溢岀Q飽和標志,一些指令在飽和是設置該位J】=1說明Jaw執(zhí)行(必須T=")Res保留用于以后的擴展”軟件不應操作這些位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當前處理器模式?條件標志位(N、Z、C、V):其內容可以被算術或邏輯運算的結果改變,并 且

15、可以決定指令的條件執(zhí)行;?控制位(I、F、T、M4:0):發(fā)生異常時被改變,如果處理器運行于特權 模式也可通過軟件對其進行修改;A .1=1則禁止IRQ中斷,F(xiàn)=1則禁止FIQ中斷;B.T=1則ARMv及以上版本的T系列處理器運行于Thumb犬態(tài)(對于ARMv5及以上版本的非T系列處理器,當T=1時執(zhí)行下一條指令以引起未定義指令異?保留位:用于ARM版本的擴展,對CPSF進行修改時一般采用對特定位的 “位運算”來實現(xiàn),不修改保留位;?在有DSP擴展的ARM內核中,Q位表示增強的DSP指令是否發(fā)生了溢 出或飽和;a-3.3 說明?條件執(zhí)行:大多數(shù)ARM指令可根據(jù)條件標志位進行條件執(zhí)行,即在執(zhí)行

16、前處理器比較該條件屬性和 CPSR中的條件標志位,如果匹配就執(zhí)行,否則指令 被忽略;?條件屬性作為指令助記符的后綴被編進指令,若沒有條件符號則默認為無 條件(ALalways execute執(zhí)行;助記符名 稱條件標志位EQ相等Z不相等ZCS/HS進位置位/無符號數(shù)大于或等于CC/LO進位清除/無符號數(shù)小于CMl負數(shù)NPI.非負數(shù)nVS溢出VVC無溢出V111無符號數(shù)大于zCLS無符號數(shù)小于或等于£或£GE有符號數(shù)人于或等于NV 或“VLI有符號輸小于Nw 或 nVGT有符號數(shù)大于N兀Y或HZYLE有符號數(shù)小于或等于Z或N甲或nVAL無條件執(zhí)行忽略?條件標志的使用:比較指令或

17、帶有后綴 S的ALU操作結果可以設置其內 容(如SUBS減法指令產生一個結果為0的寄存器值,則cspr中的Z標志就被置 位),后續(xù)指令可以根據(jù)其內容條件執(zhí)行,如“ ADDEQ r1,r2 , r2”表示只有 在cpsr的zero位為1時才被執(zhí)行;?為了方便閱讀,有的時候可以使用符號表示 CPSR的當前值:如果某位置 1則用大寫字母表示,否則用小寫字母。3130 2829 2124765 4000100001010 0111IJL111r1nzCvqaJiFtSVCcpsr = nzCvqjiFt_SVC3. Thumb狀態(tài)下的寄存器組織Thumb狀態(tài)下的寄存器集是ARM犬態(tài)下寄存器集的一個子集

18、,程序可以訪問以下寄存器(缺少了 R8-R12):? 8個通用寄存器R0-R7?堆棧指針SP?鏈接寄存器LR?程序計數(shù)器PC?程序狀態(tài)寄存器CPSR和SPSR在Thumb狀態(tài)下,咼位寄存器不是標準寄存器集的一部分, 但可以使用匯編 程序“受限制”地訪問它們,將它們作為快速的暫存器。所謂“受限制”指的是 僅能使用MOV CMP和ADDE條指令對其進行操作。四.ARM存儲器接口ARM架構的微處理器都不帶片內 RAMffi ROM系統(tǒng)所需的RAM和ROM都通過 總線與CPU相連。32位的微處理器其最大尋址空間為 4GB ARM體系結構將存儲 器看作是從零地址開始的“字節(jié)”的線性組合。ARM微處理器的寄存器寬度為4個字節(jié),而存儲器中卻是以字節(jié)為單位組織的,每個存儲器地址對應的是一個“字節(jié)”,這就導致一個問題:如何安排與寄 存器對應的存儲器中的4個相鄰字節(jié)?于是,ARM體系結構中用兩種方法存儲數(shù)據(jù):大端模式(數(shù)據(jù)的高位保存在 內存的低地址中)和小端模式(數(shù)據(jù)的低位保存在內存的低地址中)。設在存儲器中保存的數(shù)為:int k = 0x

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論