第5、6節(jié)課(第3章第1節(jié))_第1頁
第5、6節(jié)課(第3章第1節(jié))_第2頁
第5、6節(jié)課(第3章第1節(jié))_第3頁
第5、6節(jié)課(第3章第1節(jié))_第4頁
第5、6節(jié)課(第3章第1節(jié))_第5頁
已閱讀5頁,還剩48頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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基本尋址方式 ARM指令集 ARM9TDMI內(nèi)核 ARM9與ARM7的比較 ARM920T核 3.1.1 ARM體系結(jié)構(gòu)的特點(diǎn) ARM即Advanced RISC Machines的縮寫。ARM公司1990 年成立,是設(shè)計(jì)公司。ARM是知識產(chǎn)權(quán)(IP)供應(yīng)商,本身 不生產(chǎn)芯片,靠轉(zhuǎn)讓設(shè)計(jì)許可,由合作伙伴公司來生產(chǎn)各具 特色的芯片。 ARM處理器的3大特點(diǎn)是: 耗電少、成本低、功能強(qiáng); 16位/32位雙指令集; 全球眾多合作伙伴保證供應(yīng)。 ARM處理器為RISC芯片,其簡單的結(jié)構(gòu)使 ARM內(nèi)核非常小,這使得器件的功耗也非常低。

2、 它具有經(jīng)典RISC的特點(diǎn): 大的、統(tǒng)一的寄存器文件; 裝載/保存結(jié)構(gòu),數(shù)據(jù)處理 操作只針對寄存器的 內(nèi)容,而不直接對存儲器進(jìn)行操作; 簡單的尋址模式; 統(tǒng)一和固定長度的指令域,簡化了指令的譯碼, 便于指令流水線設(shè)計(jì)。 3.1.1 ARM體系結(jié)構(gòu)的特點(diǎn) 3.1.1 ARM體系結(jié)構(gòu)的特點(diǎn) ARM體系結(jié)構(gòu)的特點(diǎn): RISC型處理器結(jié)構(gòu) ARM/Thumb指令集 多處理器狀態(tài)模式 (7種處理器模式) 嵌入式在線仿真調(diào)試 靈活和方便的接口 ARM體系結(jié)構(gòu)具有協(xié)處理器接口 ARM處理器核還具有片上總線 AMBA(AHB/ASB/APB) 低電壓低功耗的設(shè)計(jì) 3.1.1 ARM體系結(jié)構(gòu)的特點(diǎn) ARM目前的

3、產(chǎn)品系列: ARM7 ARM9 ARM9E ARM10 SecurCore 通用處理器系列 專門為安全設(shè)備設(shè) 計(jì)的處理器系列 3.1.2 ARM處理器結(jié)構(gòu) ARM的體系結(jié)構(gòu) ARM的流水線結(jié)構(gòu) ARM存儲器結(jié)構(gòu) ARM I/O結(jié)構(gòu) ARM AMBA接口 ARM協(xié)處理器接口 ARM JTAG 調(diào)試接口 1.ARM的體系結(jié)構(gòu) 由32位ALU、31個32 位通用寄存器及6位狀 態(tài)寄存器、328位乘 法器、3232位桶形 移位寄存器、指令譯 碼及控制邏輯、指令 流水線和數(shù)據(jù)/地址寄 存器組成。 v ALU 由兩個操作數(shù)鎖存器、加法器、邏輯功能、結(jié)果及零檢測邏輯構(gòu)成。 ALU的邏輯結(jié)構(gòu) v ALU 每一

4、時鐘周期由雙相時鐘組成。ALU的最小數(shù)據(jù)通路周期由以下組成: 寄存器讀時間; 移位器延遲; ALU延遲; 寄存器寫建立時間; 雙相時鐘間非重疊時間。 ALU的數(shù)據(jù)通路時序 v 桶形移位寄存器 為了減少移位的延遲時間,ARM采用了3232位的桶形移位寄存器。這樣, 可以使左移/右移n位、環(huán)移n位和算術(shù)右移n位等都可以一次完成。 v 高速乘法器 ARM為了提高運(yùn)算速度,采用兩位乘法的方法。兩位 乘法根據(jù)乘數(shù)的2位來實(shí)現(xiàn)“加-移位”運(yùn)算。 乘數(shù)An-1An:00-原部分積S右移2位; 01-原部分積S加被乘數(shù)后右移2位; 10-原部分積S加2倍被乘數(shù)后,右移2位; 11-原部分積S加3倍被乘數(shù)后,右

5、移2位。 2倍被乘數(shù)可通過將被乘數(shù) 左乘1位來實(shí)現(xiàn); 3倍可看作4-1(11100-1), 故先減1倍被乘數(shù),再加4倍 被乘數(shù)來實(shí)現(xiàn)。 4倍被乘數(shù)的操作實(shí)際上是 在該2位乘數(shù)11的高1位乘數(shù) 加“1”,且此“1”可暫存 在Cout進(jìn)位觸發(fā)器中。 v 高速乘法器 ARM的高速乘法器采用328位的結(jié)構(gòu),內(nèi)部結(jié)構(gòu)如 下: v 浮點(diǎn)部件 浮點(diǎn)部件是作為選件為ARM體系結(jié)構(gòu)選用,F(xiàn)PA10浮點(diǎn)加速器以協(xié)處理器方 式與ARM相連,并通過協(xié)處理器指令的解釋來執(zhí)行。 v 控制器 ARM的控制器采用硬接線的可編程邏輯陣列PLA。輸入端14根,輸出40根,分 散控制Load/Store多路、乘法器、協(xié)處理器以及地

6、址、寄存器、ALU和移位器的控制。 v 寄存器 ARM內(nèi)含37個寄存器,其中: 31個通用32位寄存器 6個狀態(tài)寄存器 3.1.2 ARM處理器結(jié)構(gòu) ARM的體系結(jié)構(gòu) ARM的流水線結(jié)構(gòu) ARM存儲器結(jié)構(gòu) ARM I/O結(jié)構(gòu) ARM AMBA接口 ARM協(xié)處理器接口 ARM JTAG 調(diào)試接口 v 指令執(zhí)行的階段 計(jì)算機(jī)中的1條指令的執(zhí)行可以分若干個階段: 取指,從存儲器中取出指令(fetch); 譯碼,指令譯碼(dec): 取操作數(shù),假定操作數(shù)從寄存器組中取(reg); 執(zhí)行運(yùn)算(ALU); 存儲器訪問,操作數(shù)與存儲器有關(guān)(mem); 結(jié)果寫回寄存器(res)。 v 指令執(zhí)行的階段 流水線的

7、停頓相鄰指令執(zhí)行的數(shù)據(jù)相關(guān)性會產(chǎn)生指令執(zhí)行的停頓。 v 指令執(zhí)行的階段 碰到分支類指令,則會使后面緊接該條指令的幾條指令的執(zhí) 行都無效。 遇到分支指令 v ARM體系結(jié)構(gòu)的3級流水線 ARM7體系結(jié)構(gòu)采用了3級流水線,分為取指,譯碼和執(zhí) 行。下圖是單周期3級流水線的操作示意圖。 v ARM體系結(jié)構(gòu)的3級流水線 由于取指的存儲器訪問和執(zhí)行的數(shù)據(jù)通路占用都是不可同時共享的資源,因 此對多周期指令來說,會產(chǎn)生流水線阻塞。如圖3-12所示下圖的影印框周期都是與 存儲器訪問有關(guān)的。因此在流水線設(shè)計(jì)中不允許重疊 。 v ARM體系結(jié)構(gòu)的5級流水線 5級流水線把存儲器的取指與數(shù)據(jù) 存取分開,增加了I-Cac

8、he和D- Cache以提高存儲器存取的效率, 增加了數(shù)據(jù)寫回的專門通路和寄存 器,以減少數(shù)據(jù)通路沖突。 這樣,5級流水線分為:取指、指 令譯碼、執(zhí)行、數(shù)據(jù)緩存和寫回。 3.1.2 ARM處理器結(jié)構(gòu) ARM的體系結(jié)構(gòu) ARM的流水線結(jié)構(gòu) ARM存儲器結(jié)構(gòu) ARM I/O結(jié)構(gòu) ARM AMBA接口 ARM協(xié)處理器接口 ARM JTAG 調(diào)試接口 v ARM存儲器結(jié)構(gòu) ARM架構(gòu)的處理器,有的帶有指令Cache和數(shù)據(jù)Cache,但片內(nèi)不帶有片內(nèi) RAM和片內(nèi)ROM,系統(tǒng)所需的RAM和ROM須通過總線外接,如下圖。 3.1.2 ARM處理器結(jié)構(gòu) ARM的體系結(jié)構(gòu) ARM的流水線結(jié)構(gòu) ARM存儲器結(jié)構(gòu)

9、 ARM I/O結(jié)構(gòu) ARM AMBA接口 ARM協(xié)處理器接口 ARM JTAG 調(diào)試接口 v ARM I/O結(jié)構(gòu) ARM架構(gòu)中的處理器核和處理器內(nèi)核一般都沒有I/O的部件 和模塊,構(gòu)成ARM架構(gòu)的處理器中的I/O可通過AMBA總線來擴(kuò) 充。 (1)存儲器映像I/O ARM采用存儲器映像I/O的方式,即把I/O端口地址作為特殊的存儲器地址。不 過I/O的輸入/輸出與真正的存儲器讀/寫仍然有所不同:存儲器的單元重復(fù)讀多次 的值是一致的;而I/O設(shè)備的連續(xù)2次輸入,其輸入值可能會有所不同。 (2)直接存儲器存取DMA 在I/O的數(shù)據(jù)流量比較大,中斷處理比較頻繁的場合,會明顯影響系統(tǒng)的性能 。因此,

10、許多系統(tǒng)就采用了直接存儲器存取DMA,這樣,I/O的數(shù)據(jù)塊傳送至存儲 器的緩沖器區(qū)域就不需要處理器介入。而中斷也僅僅出現(xiàn)在出現(xiàn)出錯時或緩沖器 滿時。 (3)中斷IRQ和快速中斷FIQ 一般的ARM沒有DMA的功能,為了提高I/O處理的能力,對于一些要求I/O處 理速率比較高的事件,系統(tǒng)安排快速中斷FIQ(Fast Interrupt),而對其余的I/O源仍 安排一般中斷IRQ。 3.1.2 ARM處理器結(jié)構(gòu) ARM的體系結(jié)構(gòu) ARM的流水線結(jié)構(gòu) ARM存儲器結(jié)構(gòu) ARM I/O結(jié)構(gòu) ARM AMBA接口 ARM協(xié)處理器接口 ARM JTAG 調(diào)試接口 v ARM協(xié)處理器接口 ARM為了便于片上

11、系統(tǒng)SOC的設(shè)計(jì),處理器內(nèi)核盡可能精簡,要增加系統(tǒng) 的功能,可以通過協(xié)處理器來實(shí)現(xiàn)。在邏輯上,ARM可以擴(kuò)展16個協(xié)處理器, 每個協(xié)處理器可有16個寄存器。 協(xié)處理器號功 能 15系統(tǒng)控制 14調(diào)試控制器 138保留 74用戶 30保留 例如,MMU和保護(hù)單元的系統(tǒng)控制都采用CP15協(xié)處理器; JTAG調(diào)試中的協(xié)處理器為CP14,即調(diào)試通信通道DCC(Debug Communication Channel) 。 3.1.2 ARM處理器結(jié)構(gòu) ARM的體系結(jié)構(gòu) ARM的流水線結(jié)構(gòu) ARM存儲器結(jié)構(gòu) ARM I/O結(jié)構(gòu) ARM AMBA接口 ARM協(xié)處理器接口 ARM JTAG 調(diào)試接口 v AR

12、M AMBA接口 ARM處理器也可以通過先進(jìn)微控制器總線架構(gòu)AMBA(Advanced Microcontroller Bus Architecture)來擴(kuò)展不同體系架構(gòu)的宏單元及I/O部件。AMBA 事實(shí)上已成為片上總線OCB(On Chip Bus)標(biāo)準(zhǔn)。 AMBA包括以下三類總線: 先進(jìn)高性能總線AHB 先進(jìn)系統(tǒng)總線ASB 先進(jìn)外圍總線APB 3.1.2 ARM處理器結(jié)構(gòu) ARM的體系結(jié)構(gòu) ARM的流水線結(jié)構(gòu) ARM存儲器結(jié)構(gòu) ARM I/O結(jié)構(gòu) ARM AMBA接口 ARM協(xié)處理器接口 ARM JTAG 調(diào)試接口 v JTAG調(diào)試接口的結(jié)構(gòu) 由測試訪問端口TAP(Test Acces

13、s Port)控制器、旁路(Bypass)寄存器、指令寄存器、 數(shù)據(jù)寄存器以及與JTAG接口兼容的ARM架構(gòu)處理器組成。 v JTAG的控制寄存器 測試訪問端口TAP控制器 對嵌入在ARM處理器核內(nèi)部的測試功能電路進(jìn)行訪問控制,是一個同步狀態(tài) 機(jī)。通過測試模式選擇TMS和時鐘信號TCK來控制其狀態(tài)機(jī)。 指令寄存器 是串行移位寄存器,通過它可以串行輸入執(zhí)行各種操作的指令。 數(shù)據(jù)寄存器組 是一組串行移位寄存器。操作指令被串行裝入由當(dāng)前指令所選擇的數(shù)據(jù)寄存 器,隨著操作的進(jìn)行,測試結(jié)果被串行移出。其中: 器件ID寄存器:讀出在芯片內(nèi)固化的ID號。 旁路寄存器:1位移位寄存器,用1個時鐘的延遲把TDI

14、連至TDO,使測試 者在同一電路板測試循環(huán)內(nèi)訪問其他器件。 邊界掃描寄存器(掃描鏈):截取ARM處理器核與芯片引腳之間所有信號, 組成專用的寄存器位。 v JTAG測試信號 TRST:測試復(fù)位輸入信號,測試接口初始化。 TCK:測試時鐘,在TCK時鐘的同步作用下,通過TDI和 TDO引腳串行移入/移出數(shù)據(jù)或指令,同時也為測試訪問端口 TAP控制器的狀態(tài)機(jī)提供時鐘。 TMS:測試模式選擇信號,控制測試接口狀態(tài)機(jī)的操作。 TDI,測試數(shù)據(jù)輸入線,其串行輸入數(shù)據(jù)送至邊界掃描寄存 器或指令寄存器(由TAP控制器的當(dāng)前狀態(tài)及已保存在指令寄 存器中的指令來控制)。 TDO:測試數(shù)據(jù)輸出線,把從邊界掃描鏈采

15、樣的數(shù)據(jù)傳播 至串行測試電路中的下一個芯片。 v TAP狀態(tài)機(jī) 測試訪問端口TAP控 制器是一個16狀態(tài)的有 限狀態(tài)機(jī),為JTAG提 供控制邏輯。狀態(tài)轉(zhuǎn)移 圖如右圖: v JTAG接口控制指令 控制指令用于控制JTAG接口各種操作,控制指令包括公用(Public)指 令和私有(Private)指令。最基本的公用指令有: BYPASS:旁路片上系統(tǒng)邏輯指令,用于未被測試的芯片,即把TDI與 TPO旁路(1個時鐘延遲)。 EXTEST:片外電路測試指令,用于測試電路板上芯片之間的互連。 IDCODE:讀芯片ID碼指令,用于識別電路板上的芯片。此時,ID寄 存器在TDI與TDO引腳之間,在captu

16、re DR狀態(tài)中,芯片的ID復(fù)制至該寄 存器,然后在shift DR狀態(tài)中移出。 INTEST:片內(nèi)測試指令,邊界掃描寄存器位于TDI與TDO引腳之間, 處理器核邏輯輸入和輸出狀態(tài)被該寄存器捕獲和控制。 3.1.3 ARM處理器內(nèi)核 ARM體系結(jié)構(gòu)的處理器內(nèi)核有:ARM7TDMI、 ARM8、ARM9TDMI、ARM10TDMI及ARM11TDMI等。 v ARM7TDMI ARM7TDMI名字原義如下: ARM7 ARM6 32位整數(shù)核的3V兼容的版本; T 16位壓縮指令集Thumb; D 在片調(diào)試(Debug)支持,允許處理器響應(yīng)調(diào) 試請求暫停; M 增強(qiáng)型乘法器(Multiplier)

17、,與以前處理器 相比性能更高,產(chǎn)生全64位結(jié)果; I 嵌入式ICE硬件提供片上斷點(diǎn)和調(diào)試點(diǎn)支持。 v ARM7TDMI 體系結(jié)構(gòu)圖 v ARM7TDMI 引腳圖 采用了3級流水線結(jié)構(gòu),指令執(zhí)行分為取指、譯碼和執(zhí)行等3個階段; 運(yùn)算器能實(shí)現(xiàn)32位整數(shù)運(yùn)算; 采用了高效的乘法器,用328位乘法器實(shí)現(xiàn)3232位乘法(結(jié)果為64位)。 采用v4T版指令,支持16位Thumb指令集; 嵌入式ICE(Embedded-ICE)模塊為ARM7TDMI提供了片內(nèi)調(diào)試功能。同時通 過JTAG接口可以很方便地用PC主機(jī)對ARM7TDMI進(jìn)行開發(fā)和調(diào)試。 還提供了存儲器接口、MMU接口、協(xié)處理器接口和調(diào)試接口,以及

18、時鐘與總 線等控制信號。 v ARM7TDMI 主要特點(diǎn) v ARM7TDMI 主要性能指標(biāo) 工藝:0.35m(新近采用0.25m); 金屬布線:3層; 電壓:3.3V(新近采用1.2V、0.9V); 管子數(shù):74209只; 內(nèi)核芯片面積:2.1mm2; 時鐘:066MHz; MIPS:66; 功耗:87mW; MIPS/W:690(采用0.25m工藝,0.9V電壓,可達(dá)1 200MIPS/W)。 v ARM9TDMI 主要性能指標(biāo) 工藝:025m(0.18m); 金屬布線:3層; 電壓:2.5V(1.2V); 管子數(shù):11 100只; 核芯片面積:2.1mm2; 時鐘:0200MHz; MI

19、PS:220; 功耗:150mW; MIPS/W:1 500。 v ARM9TDMI 流水線結(jié)構(gòu) ARM9TDMI處理器內(nèi)核采用了5級流水線。 v ARM9TDMI 主要特點(diǎn) 采用指令和數(shù)據(jù)分離訪問的方式,即采用了指令Cache和數(shù)據(jù) Cache。 用專門硬件來直接完成ARM與Thumb指令的譯碼。 ARM9TDMI也有協(xié)處理器接口,允許在芯片增加浮點(diǎn)、數(shù)字 信號處理或其他專用的協(xié)處理器。ARM9TDMI也提供相應(yīng)的軟 核。ARM9E-S是具有DSP功能的能執(zhí)行v5TE版ARM指令的 ARM9TDMI軟核,當(dāng)然其芯片面積要增加30。 在ARM9流水線設(shè)計(jì)中,增加專用流水段用于存儲器訪問和 將結(jié)

20、果寫回到寄存器組。而且,寄存器讀也移到譯碼段。這些 改變通過減少在單一時鐘周期內(nèi)操作最大的邏輯數(shù)目,允許更 高的時鐘頻率。 v ARM10TDMI ARM10TDMI在系統(tǒng)結(jié)構(gòu)上主要采用增加時鐘速率和減少每條指令平均時鐘周 期數(shù)CPI(Clock Per Instruction)兩大措施,以同樣的工藝,同樣的芯片面積,在性能 上2倍于ARM9TDMI。 ARM10TDMI采用提高時鐘速率、6級流水線、分支預(yù)測邏輯、64位存儲器和 無阻塞的存/取邏輯等措施,使ARM10TDMI的性能得到很大提高,是目前高檔 ARM體系結(jié)構(gòu)的處理器內(nèi)核。 流水線結(jié)構(gòu) 3.1.4 ARM處理器核 在最基本的ARM處理器內(nèi)核基礎(chǔ)上,可增加Cache、 存儲器管理單元MMU、協(xié)處理器CP15、AMBA接口以及 EMT宏單元等,構(gòu)成ARM處理器核。 以ARM7TDMI處理器內(nèi)核為基礎(chǔ)的有: ARM720T處理器核 ARM740T處理器核 以ARM9TDMI處理器內(nèi)核為基礎(chǔ)的有: ARM

溫馨提示

  • 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

提交評論