ARM體系結(jié)構(gòu)與編程:第2章 ARM體系結(jié)構(gòu)_第1頁
ARM體系結(jié)構(gòu)與編程:第2章 ARM體系結(jié)構(gòu)_第2頁
ARM體系結(jié)構(gòu)與編程:第2章 ARM體系結(jié)構(gòu)_第3頁
ARM體系結(jié)構(gòu)與編程:第2章 ARM體系結(jié)構(gòu)_第4頁
ARM體系結(jié)構(gòu)與編程:第2章 ARM體系結(jié)構(gòu)_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第二章 ARM 體系結(jié)構(gòu)目標(biāo)學(xué)員:嵌入式初級開發(fā)者課程時長:1學(xué)時,45分鐘ARM 體系結(jié)構(gòu)本章目錄1324ARM體系結(jié)構(gòu)的特點(diǎn) ARM流水線 ARM存儲器 I/O管理 5ARM開發(fā)調(diào)試方法 課程目標(biāo)掌握RISC指令集的特點(diǎn)及其RISC指令與CISC指令的區(qū)別掌握基于RISC的ARM體系結(jié)構(gòu)的主要特征;掌握ARM流水線的概念與原理;理解3級流水線的硬件主要組成部分;掌握3級流水線和5級流水線指令執(zhí)行過程了解影響流水線性能的因素;理解ARM在線仿真調(diào)試主要的幾種方法;重點(diǎn)難點(diǎn) RISC和CISC之間主要的區(qū)別 ARM體系結(jié)構(gòu)的主要特征 3級和5級流水線原理 3級流水線的硬件主要組成部分3級和5級

2、流水線指令執(zhí)行過程JTAG仿真調(diào)試和ULINK在線仿真調(diào)試課程目錄1324ARM體系結(jié)構(gòu)的特點(diǎn) ARM流水線 ARM存儲器 I/O管理 5ARM開發(fā)調(diào)試方法 ARM體系結(jié)構(gòu)的特點(diǎn) ARM內(nèi)核采用精簡指令集結(jié)構(gòu)(RISC,reduced Instruction Set Computer)體系結(jié)構(gòu)。 Load/Store體系結(jié)構(gòu) Load/Store體系結(jié)構(gòu)也稱為寄存器/寄存器體系結(jié)構(gòu)或者RR 系統(tǒng)結(jié)構(gòu)。在這類機(jī)器中,操作數(shù)和運(yùn)算結(jié)果不是通過主存儲 器直接取回而是借用大量標(biāo)量和矢量寄存器來取回的。RISC的設(shè)計思想的體現(xiàn): 固定長度指令 固定長度指令使得機(jī)器譯碼變得比較容易。 RISC設(shè)計思想的體

3、現(xiàn)硬聯(lián)控制 RISC機(jī)以硬聯(lián)控制指令為特點(diǎn),而CISC的微代碼指令則相反。與用CISC(常常是可變長度的)指令集來使處理器的語義效率最大相反,簡單指令往往容易被機(jī)器翻譯。 寄存器 RICS處理器擁有更多的通用寄存器,每個寄存器都可存放數(shù)據(jù)或地址。寄存器可為所有的數(shù)據(jù)操作提供快速的局部存儲訪問 。流水線 指令處理過程被拆分為幾個更小的、能夠被流水線并行執(zhí)行的單元,在理想情況下,流水線每周期前進(jìn)一步,可獲得更高的吞吐率。 RISC和CISC之間主要的區(qū)別指標(biāo)RISCCISC指令集一個周期執(zhí)行一條指令,通過簡單指令的組合實現(xiàn)復(fù)雜操作;指令長度固定指令長度不固定,執(zhí)行需要多個周期流水線流水線每周期前進(jìn)

4、一步指令的執(zhí)行需要調(diào)用微代碼的一個微程序寄存器更多通用寄存器用于特定目的的專用寄存器Load/Store結(jié)構(gòu)獨(dú)立的Load和Store指令完成數(shù)據(jù)在寄存器和外部存儲器之間的傳輸處理器能夠直接處理存儲器中的數(shù)據(jù)CISC和RISC的區(qū)別CISC:復(fù)雜指令集(Complex Instruction Set Computer)具有大量的指令和尋址方式8/2原則:80%的程序只使用20%的指令大多數(shù)程序只使用少量的指令就能夠運(yùn)行。RISC:精簡指令集(Reduced Instruction Set Computer)在通道中只包含最有用的指令確保數(shù)據(jù)通道快速執(zhí)行每一條指令使CPU硬件結(jié)構(gòu)設(shè)計變得更為簡單

5、 本環(huán)節(jié)主要學(xué)習(xí)RISC及CISC指令集概念及其特點(diǎn),分析了RISC和CISC指令集之間的主要區(qū)別,分析了ARM體系結(jié)構(gòu)的主要特征。 課程目錄1324ARM體系結(jié)構(gòu)的特點(diǎn) ARM流水線 ARM存儲器 I/O管理 5ARM開發(fā)調(diào)試方法 ARM流水線的概念與原理流水線(Pipeline)技術(shù): 有一個明顯的方法可以改善硬件資源的使用率和處理器的吞吐量,這就是當(dāng)前一條指令結(jié)束之前就開始執(zhí)行下一條指令。流水線是RISC處理器執(zhí)行指令時采用的機(jī)制。使用流水線,可在取下一條指令的同時譯碼和執(zhí)行其他指令,從而加快執(zhí)行的速度。可以把流水線看作是汽車生產(chǎn)線,每個階段只完成專門的處理器任務(wù)。ARM對流水線的構(gòu)想:

6、 處理器可以這樣來組織:當(dāng)一條指令剛剛執(zhí)行完步驟1并轉(zhuǎn)向步驟2時,下一條指令就開始執(zhí)行步驟1。從原理上說,這樣的流水線應(yīng)該比沒有重疊的指令執(zhí)行快6倍,但由于硬件結(jié)構(gòu)本身的一些限制,實際情況會比理想狀態(tài)差一些。從1995年以來,ARM公司推出了幾個新的ARM核。它們采用5級流水線和哈佛架構(gòu),獲得了顯著的高性能。例如,ARM9增加了存儲器訪問段和回寫段。到ARM公司在19901995年期間開發(fā)的ARM6和ARM7,ARM整數(shù)處理器核的組織結(jié)構(gòu)變化很小,這些處理器都是采用3集流水線, 流水線的分類 ARM10更是把流水線增加到6級。ARM10的平均處理能力達(dá)到1.3 Dhrystone MISP/M

7、Hz,與ARM7相比,指令吞吐量提供了大約34。3級流水線ARM組織 指令在流水線上的執(zhí)行過程 ARM 3級流水線級取指(fetch)從寄存器裝載一條指令:譯碼(decode)識別被執(zhí)行的指令,并為下一個周期準(zhǔn)備數(shù)據(jù)通路的控制信號。在這一級,指令占有譯碼邏輯,不占用數(shù)據(jù)通路;執(zhí)行(excute)處理指令并將結(jié)果寫回寄存器。3級流水線指令執(zhí)行過程:指令流水線以ARM為例FetchDecodeExecute從存儲器中讀取指令解碼指令寄存器讀(從寄存器Bank)移位及ALU操作寄存器寫(到寄存器Bank )PCPCPC - 4PC-2PC - 8PC - 4ARMThumb為增加處理器指令流的速度,

8、ARM7 系列使用3級流水線.允許多個操作同時處理,比逐條指令執(zhí)行要快。PC指向正被取指的指令,而非正在執(zhí)行的指令 最佳流水線該例中用6個時鐘周期執(zhí)行了6條指令所有的操作都在寄存器中(單周期執(zhí)行)指令周期數(shù) (CPI) = 1 操作周期 1 2 3 45 6 ADD SUB MOV AND ORR EOR CMP RSBFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteDecodeExecuteFetchDecodeFetchFetch指令序列為:ADD r1 r2

9、SUB r3 r2MOV r1 r3 STR 流水線舉例該例中,用6周期執(zhí)行了4條指令指令周期數(shù) (CPI) = 1.5 周期 操作123456 ADD SUB STR MOV AND ORRFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteDataWritebackFetchDecodeExecuteFetchDecodeFetch分支流水線舉例流水線被阻斷注意:內(nèi)核運(yùn)行在ARM狀態(tài)周期 1 2 3 4 5 0 x8000 BL 0 x8004 X0 x8008 XX0 x8FEC ADD0 x8FF0 SUB0 x8FF4 MOV地

10、址 操作FetchDecodeExecuteFetchDecodeExecuteFetchDecodeFetchFetchDecodeExecuteLinkretAdjustFetchDecodeFetch流水線下程序計數(shù)器PC的使用情況 指令序列為:0 x8000 LDR pc,pc,00 x8004 NOP0 x8008 DCD jumpAdress當(dāng)指令LDR處于執(zhí)行階段時,pcaddress8 即,0 x8008。提高流水線性能的方案 指定ARM7為止,在ARM核中使用的3級流水線的性價比是很高的。但是,為了得到更高的性能,需要重新考慮處理器的組織結(jié)構(gòu) 提高流水線性能的方案:第一,可以

11、提高時鐘頻率。時鐘頻率的提供,必然引起指令執(zhí)行周期的縮短,所以要求簡化流水線每一級的邏輯,因而流水線的級數(shù)就有增加。第二,減少每條指令的平均指令周期數(shù)CPI。這就要求重新考慮3級流水線ARM中多于1個流水線周期的實現(xiàn)方法,以便使其占有較少的周期;或者減少因指令相關(guān)造成的流水線停頓,也可以將兩者結(jié)合起來。方案結(jié)果 較高性能的ARM核使用了5級流水線,而且具有分開的指令和數(shù)據(jù)存儲器。把指令的執(zhí)行分割為5部分而不是3部分,這就在每個時鐘周期內(nèi)必須完成的工作量,進(jìn)而可以使用更高的時鐘頻率,分開的指令和數(shù)據(jù)存儲器使核的CPI明顯減少。 典型的5級流水線 5級流水線級取指(fetch)從存儲器中取出指令,

12、并將其放入指令流水線;譯碼(decode)指令被譯碼,從寄存器堆中讀取寄存器操作數(shù)。在寄存器堆中有3個操作數(shù)讀端口;執(zhí)行(execute)將其中一個操作數(shù)移位,并在ALU中產(chǎn)生結(jié)果。如果指令是Load或Store指令,則在ALU中計算存儲器的地址;緩沖/數(shù)據(jù)(buffer/data):如果需要則訪問數(shù)據(jù)存儲器;否則ALU只是簡單的緩沖一個時鐘周期;回寫(write-back):將指令的結(jié)果回寫到寄存器堆,包括任何從寄存器讀出的數(shù)據(jù)。影響流水線性能的因素 互鎖: 在典型的程序處理過程中,經(jīng)常會遇到這樣的情形,即一條指令的結(jié)果被用做下一條指令的操作數(shù)。LDR r0,r0,#0ADD r0,r0,r

13、1在5級流水線上產(chǎn)生互鎖跳轉(zhuǎn)指令 : 跳轉(zhuǎn)指令也會破壞流水線的行為,因為后續(xù)指令的取指步驟受到跳轉(zhuǎn)目標(biāo)計算的影響,因而必須推遲。 本環(huán)節(jié)主要學(xué)習(xí)ARM為了提高性能采用了流水線機(jī)制,著重介紹了3級流水線的硬件主要組成部分:處理器狀態(tài)的寄存器堆、桶形移位寄存器、ALU 地址寄存器、數(shù)據(jù)輸出寄存器、指令譯碼器和相關(guān)的控制邏輯。然后分別講述了3級和5級流水線的執(zhí)行過程及其影響流水線性能的因素。 課程目錄1324ARM體系結(jié)構(gòu)的特點(diǎn) ARM流水線 ARM存儲器 I/O管理 5ARM開發(fā)調(diào)試方法 ARM存儲器 在ARM體系結(jié)構(gòu)中可使用的存儲管理策略包括:多類型的存儲單元(可以使用SDRAM、FLASH等)

14、;Caches;寫緩存;虛擬內(nèi)存地址。實現(xiàn)對存儲系統(tǒng)管理的幾種方法:使能Cache,加快存儲器的訪問速度;啟動虛擬地址到物理地址的映射;使用“域管理”策略,對存儲單元的訪問進(jìn)行保護(hù);對I/O映射地址空間的訪問加以限制。課程目錄1324ARM體系結(jié)構(gòu)的特點(diǎn) ARM流水線 ARM存儲器 I/O管理 5ARM開發(fā)調(diào)試方法 I/O管理 外圍設(shè)備(如串行線控制器)中包含一些寄存器。在存儲器映射系統(tǒng)中,這些寄存器就像特定地址的存儲器一樣。(在其他的系統(tǒng)組織中,I/O功能可能與存儲器件有不同的尋址空間) 存儲器映射I/O : ARM系統(tǒng)完成I/O功能的標(biāo)準(zhǔn)方法是使用存儲器映射I/O。這種方法使用特定的存儲器

15、地址。當(dāng)從這些地址加載或向這些地址存儲時,它們提供I/O功能 課程目錄1324ARM體系結(jié)構(gòu)的特點(diǎn) ARM流水線 ARM存儲器 I/O管理 5ARM開發(fā)調(diào)試方法 ARM開發(fā)調(diào)試方法 用戶選用ARM處理器開發(fā)嵌入式系統(tǒng)時,選擇合適的開發(fā)工具可以加快開發(fā)進(jìn)度,節(jié)省開發(fā)成本。因此一套含有編輯軟件、編譯軟件、匯編軟件、鏈接軟件、調(diào)試軟件、工程管理及函數(shù)庫的集成開發(fā)環(huán)境(IDE)一般來說是必不可少的,如ARM公司的RealView開發(fā)環(huán)境。至于嵌入式實時操作系統(tǒng)、評估板等其他開發(fā)工具則可以根據(jù)應(yīng)用軟件規(guī)模和開發(fā)計劃選用。指令集模擬器大多數(shù)調(diào)試工具都提供Simulator功能目前常見的調(diào)試方法有以下幾種:

16、指令集模擬器 部分集成開發(fā)環(huán)境提供了指令集模擬器,可方便用戶在PC機(jī)上完成一部分簡單的調(diào)試工作,但是由于指令集模擬器與真實的硬件環(huán)境相差很大 優(yōu)點(diǎn):簡單方便,不需要目標(biāo)板,成本低缺點(diǎn):功能非常有限,無法實時調(diào)試駐留監(jiān)控軟件 駐留監(jiān)控軟件(Resident Monitors)是一段運(yùn)行在目標(biāo)板上的程 序,集成開發(fā)環(huán)境中的調(diào)試軟件通過以太網(wǎng)口、并行端口、串行 端口等通訊端口與駐留監(jiān)控軟件進(jìn)行交互。優(yōu)點(diǎn):純軟件,價格較低,簡單,軟件調(diào)試能力較強(qiáng)缺點(diǎn):需要事先燒制Monitor(往往需多次試驗才能成功)且目標(biāo)板工作正常,功能有限,特別是硬件調(diào)試能力較差。PCTargetMonitor串口駐留監(jiān)控軟件

17、JTAG仿真調(diào)試JTAG仿真調(diào)試 JTAG仿真器也稱為JTAG調(diào)試器,是通過ARM芯片的JTAG邊界掃描口進(jìn) 行調(diào)試的設(shè)備。JTAG仿真器比較便宜,連接比較方便,通過現(xiàn)有的 JTAG邊界掃描口與 ARM CPU 核通信。TargetPC接口BDM/JTAG Debugger基于ULINK在線仿真器源程序編譯器目標(biāo)文件鏈接器可重定位程序定位器可執(zhí)行文件基于ULINK在線仿真器 在線仿真器使用仿真頭完全取代目標(biāo)板上的CPU,可以完全仿真ARM芯片的行為,提供更加深入的調(diào)試功能。 本書將基于這種調(diào)試方式,利用ULINK2和MDK倆大法寶和讀者一起深入學(xué)習(xí)ARM單片機(jī)。本章小節(jié) 本章主要介紹了RISC指令集的特征,RISC與CISC

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論