第二章 ARM技術(shù)概述_第1頁
第二章 ARM技術(shù)概述_第2頁
第二章 ARM技術(shù)概述_第3頁
第二章 ARM技術(shù)概述_第4頁
第二章 ARM技術(shù)概述_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第二章ARM技術(shù)概述

本章將對(duì)ARM技術(shù)進(jìn)行全面論述,通過本章的學(xué)習(xí),使大家對(duì)ARM技術(shù)有個(gè)全面的了解和掌握。

ARM發(fā)展的歷程最近10多年來ARM技術(shù)的突出成果表現(xiàn)在:使用“Thumb”的新型壓縮指令格式,使得應(yīng)用系統(tǒng)開發(fā)可降低系統(tǒng)成本和功耗;ARM9、ARM10、Strong-ARM和ARM11等系列處理器的開發(fā),顯著地提高了ARM的性能,使得ARM技術(shù)在面向高端數(shù)字音、視頻處理等多媒體產(chǎn)品的應(yīng)用中更加廣泛;更好的軟件開發(fā)和調(diào)試環(huán)境,加快用戶產(chǎn)品開發(fā);更為廣泛的產(chǎn)業(yè)聯(lián)盟使得基于ARM的嵌入式應(yīng)用領(lǐng)域更加廣闊;嵌入在復(fù)雜SoC中、基于ARM核的調(diào)試系統(tǒng)代表著當(dāng)今片上調(diào)試技術(shù)的前沿。

ARM發(fā)展的歷程第一片ARM處理器是1983年10月到1985年4月間在位于英國劍橋的AcornComputer公司開發(fā)1990年,為廣泛推廣ARM技術(shù)而成立了獨(dú)立的公司(ARM公司)

20世紀(jì)90年代,ARM快速進(jìn)入世界市場(chǎng),處在半導(dǎo)體產(chǎn)業(yè)鏈上游的上游,采用Chipless和Fabless的生產(chǎn)模式ARM發(fā)展的歷程在ARM的發(fā)展歷程中,從ARM7開始,ARM核被普遍認(rèn)可和廣泛使用1995年StrongARM

問世XScale是下一代StrongARM芯片的發(fā)展基礎(chǔ)ARM10TDMI是ARM處理器核中的高端產(chǎn)品ARM11是ARM家族中性能較強(qiáng)的一個(gè)系列CORTEX

CORTEXARMCortex-A9MPCore處理器,將用于其下一代高性能多服務(wù)網(wǎng)絡(luò)系統(tǒng)平臺(tái);該平臺(tái)將支持在有線和無線網(wǎng)絡(luò)上的語音和數(shù)據(jù)服務(wù),上網(wǎng)本(MID),IPhone中用的都是CortexA系列處理器ContexR和M系列的特點(diǎn)是:smallerandpowerefficient。ARM發(fā)展的歷程2009年第一季度ARM各類型處理器license總體情況Processor

FamilyLicensesCortexTM61ARM11TM70ARM9TM249ARM7TM171Cortex系列內(nèi)各個(gè)小型號(hào)的統(tǒng)計(jì)情況ProcessorLicensesPublicLicenseesCortex-A98NECElectronics,

nVIDIA,

STMicroelectronics,

TexasInstruments,

Toshiba,

MindspeedTechnologiesCortex-A89BroadcomCorporation,

FreescaleSemiconductor,Matsushita,

SamsungElectronics,STMicroelectronics,

TexasInstruments,PMC-SierraCortex-R4(F)14BroadcomCorporation,

TexasInstruments,ToshibaCortex-M328AccentSrl,ActelCorporation,

BroadcomCorporation,Ember,EnergyMicro,

LuminaryMicro,

NXP,

STMicroelectronics,

TexasInstruments,

Toshiba,Zilog,

Cortex-M01NXP,

TriadSemiconductorARM發(fā)展的歷程據(jù)最新統(tǒng)計(jì),全球有103家巨型IT公司在采用ARM技術(shù),20家最大的半導(dǎo)體廠商中有19家是ARM的用戶,包括德州儀器,意法半導(dǎo)體,Philips,Intel等。ARM系列芯片已經(jīng)被廣泛的應(yīng)用于移動(dòng)電話、手持式計(jì)算機(jī)以及各種各樣的嵌入式應(yīng)用領(lǐng)域,成為世界上銷量最大的32位微處理器。ARM發(fā)展的歷程目前ARM全球年出貨量為40億,只要是數(shù)碼產(chǎn)品,無論是手機(jī)、數(shù)碼相機(jī),還是游戲機(jī)、導(dǎo)航系統(tǒng),很有可能其中的1/4都含有ARM的處理器。第一個(gè)100億片出貨量,ARM用了17年時(shí)間來完成,接下來的100億片,ARM打算用3年的時(shí)間實(shí)現(xiàn)。ARM體系結(jié)構(gòu)的技術(shù)特征ARM的體系結(jié)構(gòu)采用了若干BerkeleyRISC處理器設(shè)計(jì)中的特征

Load/store體系結(jié)構(gòu)固定的32位指令3地址指令格式

也放棄了其它若干BerkeleyRISC特征寄存器窗口延遲轉(zhuǎn)移所有的指令單周期執(zhí)行ARM體系結(jié)構(gòu)的基本版本ARM體系結(jié)構(gòu)總結(jié)核體系結(jié)構(gòu)ARM1V1ARM2V2ARM2aS,ARM3V2aARM6,ARM600,ARM610V3ARM7,ARM700,ARM710V3ARM7TDMI,ARM710T,ARM720TARM740TV4TStrongARM,ARM8,ARM810V4ARM9TDMI,ARM920T,ARM940TV4TARM9E-SV5TEARM10TDMI,ARM1020EV5TEARM11,ARM1156T2-S,ARM1156T2F-S,ARM1176JZ-S,ARM11JZF-SV6

V7Cortex-M1,SC300,Cortex-M3,Cortex-R4,Cortex-R4F,Cortex-A8,Cortex-A9,ARM體系結(jié)構(gòu)的演變1)Thumb指令集(T變種)

Thumb指令集是把32位的ARM指令集的一個(gè)子集重新編碼后而形成的一個(gè)特殊的16位的指令集

2)長乘指令(M變種)長乘指令是一種生成64位相乘結(jié)果的乘法指令(此指令為ARM指令),M變種增加了兩條長乘指令A(yù)RM體系結(jié)構(gòu)的演變3)增強(qiáng)型DSP指令(E變種)

E變種的ARM體系增加了一些增強(qiáng)處理器對(duì)典型的DSP算法處理能力的附加指令

4)Java加速器Jazelle(J變種)

ARM的Jazelle技術(shù)是Java語言和先進(jìn)的32位RISC芯片完美結(jié)合的產(chǎn)物

5)ARM媒體功能擴(kuò)展(SIMD變種)

ARM體系結(jié)構(gòu)的命名規(guī)則基本字符串ARMv?;咀址鬄锳RM指令集版本號(hào),目前是1-7的數(shù)字字符。ARM指令集版本號(hào)后為表示所含變種的字符。最后使用的字符x表示排除某種功能。ARM7TDMIARM732位ARM體系結(jié)構(gòu)4T版本TThumb16位壓縮指令集D支持片上DebugM增強(qiáng)型MultiplierIEmbeddedICE硬件,支持片上斷點(diǎn)和觀察點(diǎn)Thumb技術(shù)介紹為了解決代碼長度的問題,ARM體系結(jié)構(gòu)增加了T變種,開發(fā)了一種新的指令體系,這就是Thumb指令集。Thumb是ARM體系結(jié)構(gòu)的擴(kuò)展。它從標(biāo)準(zhǔn)32位ARM指令集抽出來的36條指令格式,可以重新編成16位的操作碼。這能帶來很高的代碼密度。在性能和代碼大小之間取得平衡。Thumb的技術(shù)概述ARM7TDMI是第一個(gè)支持Thumb的核支持Thumb的ARM體系結(jié)構(gòu)的處理器狀態(tài)可以方便的切換、運(yùn)行到Thumb狀態(tài),在該狀態(tài)下指令集是16位的Thumb指令集。ARM處理器工作狀態(tài)

ARM狀態(tài)32位,ARM狀態(tài)下執(zhí)行字對(duì)準(zhǔn)的32位ARM指令;Thumb狀態(tài)16位,Thumb狀態(tài)下執(zhí)行半字對(duì)準(zhǔn)的16位Thumb指令。ARM處理器工作狀態(tài)

在程序執(zhí)行的過程中,處理器可以在兩種狀態(tài)下切換:

ARM和Thumb之間狀態(tài)的切換不影響處理器的模式或寄存器的內(nèi)容。ARM指令集和Thumb指令集都有相應(yīng)的狀態(tài)切換命令。ARM處理器在開始執(zhí)行代碼時(shí),只能處于ARM狀態(tài)。ARM處理器工作狀態(tài)

進(jìn)入Thumb狀態(tài)當(dāng)操作數(shù)寄存器Rm的狀態(tài)位bit[0]為1時(shí),執(zhí)行BXRm指令進(jìn)入Thumb狀態(tài)。如果處理器在Thumb狀態(tài)進(jìn)入異常,則當(dāng)異常處理返回時(shí),自動(dòng)切換到Thumb狀態(tài)。進(jìn)入ARM狀態(tài)當(dāng)操作數(shù)寄存器Rm的狀態(tài)位bit[0]為0時(shí),執(zhí)行BXRm指令進(jìn)入ARM狀態(tài)。如果處理器進(jìn)行異常處理,在此情況下,把PC放入異常模式鏈接寄存器LR中,從異常向量地址開始執(zhí)行也可以進(jìn)入ARM狀態(tài)。ARM處理器工作模式

CPSR(當(dāng)前程序狀態(tài)寄存器)的低5位用于定義當(dāng)前操作模式,如圖示ARM處理器工作模式

除用戶模式外的其他6種模式稱為特權(quán)模式

特權(quán)模式中除系統(tǒng)模式以外的5種模式又稱為異常模式,即

FIQ(FastInterruptRequest)IRQ(Interrupt

ReQuest)SVC(Supervisor)中止(Abort)未定義(Undefined)ARM寄存器組成概述ARM處理器總共有37個(gè)寄存器,可以分為以下兩類寄存器

31個(gè)通用寄存器

R0~R15;R13_svc、R14_svc;R13_abt、R14_abt;R13_und、R14_und;R13_irq、R14_irq;R8_frq-R14_frq。

6個(gè)狀態(tài)寄存器

CPSR;SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq和SPSR_fiq

ARM狀態(tài)下的寄存器組織1)ARM狀態(tài)的寄存器簡(jiǎn)介

ARM狀態(tài)下的寄存器組織ARM狀態(tài)下的寄存器組織2)ARM狀態(tài)的通用寄存器

不分組寄存器(Theunbankedregisters):R0~R7分組寄存器(Thebankedregisters):R8~R14程序計(jì)數(shù)器:R15(PC)

ARM狀態(tài)下的寄存器組織不分組寄存器R0~R7

R0~R7是不分組寄存器。是真正并且在每種狀態(tài)下都統(tǒng)一的通用寄存器。

未分組寄存器沒有被系統(tǒng)用于特別的用途,任何可采用通用寄存器的應(yīng)用場(chǎng)合都可以使用未分組寄存器,但必須注意對(duì)同一寄存器在不同模式下使用時(shí)的數(shù)據(jù)保護(hù)

ARM狀態(tài)下的寄存器組織分組寄存器R8-R12FIQ模式分組寄存器R8_fiq~R12_fiqFIQ以外的分組寄存器R8~R12

ARM狀態(tài)下的寄存器組織分組寄存器R13、R14異常模式下的R13、R14R13_<mode>R14_<mode><mode>從svc、abt、und、irq和fiq中選取ARM狀態(tài)下的寄存器組織寄存器R13通常用做堆棧指針SP

寄存器R14用作子程序鏈接寄存器(LinkRegister-LR),也稱為LR子程序入口:STMFDSP!,{<registers>,LR}子程序返回:LDMFDSP!,{<registers>,PC}MOVPC,LRBXLR

ARM狀態(tài)下的寄存器組織程序計(jì)數(shù)器R15寄存器R15被用作程序計(jì)數(shù)器,也稱為PC。

R15值的改變將引起程序執(zhí)行順序的變化,這有可能引起程序執(zhí)行中出現(xiàn)一些不可預(yù)料的結(jié)果。

ARM處理器采用多級(jí)流水線技術(shù),因此保存在R15的程序地址并不是當(dāng)前指令的地址。ARM狀態(tài)下的寄存器組織3)ARM程序狀態(tài)寄存器當(dāng)前的程序狀態(tài)寄存器CPSR。CPSR包含條件碼標(biāo)志、中斷禁止位、當(dāng)前處理器模式以及其它狀態(tài)和控制信息。在每種異常模式下都有程序狀態(tài)保存寄存器SPSR。當(dāng)異常出現(xiàn)時(shí),SPSR用于保存CPSR的狀態(tài),以便異常返回后恢復(fù)異常發(fā)生時(shí)的工作狀態(tài)。ARM狀態(tài)下的寄存器組織CPSR和SPSR的格式Thumb狀態(tài)下的寄存器組織Thumb狀態(tài)下的寄存器集是ARM狀態(tài)下寄存器集的子集。包括8個(gè)通用的寄存器(R0~R7),程序計(jì)數(shù)器PC、堆棧指針SP、鏈接寄存器LR和當(dāng)前狀態(tài)寄存器CPSR。每一種特權(quán)模式都各有一組SP,LR和SPSR。

ARM的異常中斷在ARM體系結(jié)構(gòu)中,異常中斷用來處理軟件中斷、未定義指令陷阱及系統(tǒng)復(fù)位功能和外部事件,這些“不正?!笔录急粍潥w“異?!?,因?yàn)樵谔幚砥鞯目刂茩C(jī)制中,它們都使用同樣的流程進(jìn)行異常處理。

ARM的異常中斷ARM的異常中斷響應(yīng)過程 從異常中斷處理程序中返回 異常中斷向量表 異常中斷的優(yōu)先級(jí)

ARM的異常中斷響應(yīng)過程ARM處理器對(duì)異常中斷的響應(yīng)過程如下

CPSRSPSR_mode設(shè)置CPSR中的相應(yīng)位

將引起異常指令的下一條指令的地址保存到R14_mode中給程序計(jì)數(shù)器(PC)強(qiáng)制賦值,從相應(yīng)的矢量地址開始執(zhí)行中斷處理程序

ARM的異常中斷響應(yīng)過程R14_<exception_mode>=returnlinkSPSR_<exception_mode>=CPSRCPSR[4:0]=exceptionmodenumberCPSR[5]=0CPSR[7]=1if<exception_mode>=ResetorFIQthenCPSR[6]=1PC=exceptionvectoraddress從異常中斷處理程序中返回從異常中斷處理程序中返回時(shí),需要執(zhí)行以下四個(gè)基本操作

所有修改過的用戶寄存器必須從處理程序的保護(hù)堆棧中恢復(fù)(即出棧)。SPSR_modeCPSR根據(jù)異常類型將PC變回到用戶指令流中相應(yīng)指令處

MOVSPC,R14(SWI或未定義指令陷阱)SUBSPC,R14,#4(IRQ,FIQ或預(yù)取值中止)SUBSPC,R14,#8(數(shù)據(jù)中止返回)最后清除CPSR中的中斷禁止標(biāo)志位I/F。

異常中斷向量表中斷向量表中指定了各異常中斷與其處理程序的對(duì)應(yīng)關(guān)系

每個(gè)異常中斷對(duì)應(yīng)的中斷向量表的4個(gè)字節(jié)的空間中存放一個(gè)跳轉(zhuǎn)指令或者一個(gè)向PC寄存器中賦值的數(shù)據(jù)訪問指令

存儲(chǔ)器的前8個(gè)字中除了地址0x00000014之外,全部被用作異常矢量地址

異常中斷的優(yōu)先級(jí)當(dāng)幾個(gè)異常中斷同時(shí)發(fā)生時(shí),在ARM中通過給各異常中斷賦予一定的優(yōu)先級(jí)來實(shí)現(xiàn)處理次序

復(fù)位(最高優(yōu)先級(jí));數(shù)據(jù)異常中止;FIQ;IRQ;預(yù)取指異常中止;SWI,未定義指令(包括缺協(xié)處理器)。

ARM典型流水線技術(shù)簡(jiǎn)介

三級(jí)流水線ARM的組織 五級(jí)流水線ARM的組織

流水線模擬

Ann,Brian,Cathy,Dave

各有一袋衣服需要洗滌Washertakes30minutesDryertakes30minutesFoldertakes30minutesPackingtakes30minutesABCD順序執(zhí)行的結(jié)果30TaskOrderTimeA30303030B303030C30303030D303030306PM78910111212AM耗時(shí):8小時(shí)122AM6PM78910111Time30ACDB303030303030TaskOrder流水線執(zhí)行結(jié)果耗時(shí):3.5小時(shí)流水線操作關(guān)鍵思想:將一個(gè)完整的任務(wù)分解成可順序執(zhí)行的子任務(wù)模塊

給每個(gè)模塊分配一個(gè)流水線寄存器1ns200ps200ps200ps200ps200psPipelineRegister流水線操作為什么要進(jìn)行流水線操作?可加快重復(fù)運(yùn)算的速度!1nsNon-pipelined:1operationfinishesevery1ns200ps200ps200ps200ps200psPipelined:1operationfinishesevery200ps執(zhí)行時(shí)間:1ns吞吐率:200ps一條指令三級(jí)流水線ARM的組織1)ARM的3級(jí)流水線介紹

到ARM7為止的ARM處理器使用的簡(jiǎn)單3級(jí)流水線分別為

取指級(jí)

譯碼級(jí)

執(zhí)行級(jí)

五級(jí)流水線ARM的組織執(zhí)行程序時(shí)間的計(jì)算公式提高時(shí)鐘頻率。減少每條指令的平均時(shí)鐘周期數(shù)CPI使用5級(jí)流水線具有分開的指令和數(shù)據(jù)存儲(chǔ)器。五級(jí)流水線ARM的組織使用5級(jí)流水線的ARM處理器包含下面5個(gè)流水線級(jí)

取指

譯碼

執(zhí)行

緩沖\數(shù)據(jù)

回寫

3級(jí)流水線下PC的行為在3級(jí)流水線的執(zhí)行過程中,當(dāng)通過R15寄存器直接訪問PC時(shí),必須考慮到此時(shí)流水線的執(zhí)行過程的真實(shí)情況

三級(jí)流水線的PC行為ARM存儲(chǔ)器接口及存儲(chǔ)器層次

容量大速度高2級(jí)存儲(chǔ)器包括一個(gè)容量小但速度快的從存儲(chǔ)器(Cache)和一個(gè)容量大但速度慢的主存儲(chǔ)器。2級(jí)存儲(chǔ)器多級(jí)存儲(chǔ)器

(Cache、主存、硬盤)ARM的存儲(chǔ)器層次簡(jiǎn)介寄存器組——存儲(chǔ)器層次的頂層,訪問時(shí)間幾個(gè)ns片上RAM——具有

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論