ARM體系結構-ARM簡介課件_第1頁
ARM體系結構-ARM簡介課件_第2頁
ARM體系結構-ARM簡介課件_第3頁
ARM體系結構-ARM簡介課件_第4頁
ARM體系結構-ARM簡介課件_第5頁
已閱讀5頁,還剩83頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

ARM體系結構ARM體系結構ARMLtdARM-AdvancedRICSMachinesARM即可以認為是公司的名字,也可以認為是對一類微處理器的通稱,也可以認為是一種技術的名字,還可以認為它是一種商業思想,1991年ARM公司成立于英國劍橋,主要出售芯片設計技術的授權ARMLtdARM-AdvancedRICSMacARM公司簡介ARM公司作為32位處理器內核的提供者,擁有100多家辦導體合作伙伴,擁有100多家半導體合作伙伴,ARMcore是目前消費類電子市場中占有量第一的CPU體系ARM是一個CPU內核。ARM公司自己并不生產或銷售芯片,它采用技術授權模式,通過出售芯片技術授權,收取授權費與技術轉讓費隨著ARM、MIPS、ARC等成熟內核的推出,很多過去沒有32位CPU研發能力的半導體公司進入這一行列。ARM公司簡介ARM公司作為32位處理器內核的提供者,擁有ARM全球分布EnglandCambridge,Maidenhead,Sheffield,BlackburnGermanyMunich FranceParis,SophiaAntipolisKoreaSeoulUSSeattle,LosGatos,WalnutCreek,Austin,Boston,SanDiegoAsiaTaiwanJapanShin-Yokohama(Tokyo)ARM全球分布EnglandUSARM合作伙伴ARM合作伙伴ARMLtd世界各大半導體商場商從ARM公司購買其設計的ARM微處理器核,根據各自不同的應用領域,加入適當的外圍電路,從而形成自己的ARM微處理器芯片進入市場。基于ARM技術的微處理器應用約占據了32位RICS微處理器80%以上的市場份額,ARM技術正在逐步滲入到我們生活的各個方面。ARMLtd世界各大半導體商場商從ARM公司購買其設計的A將技術授權給其它芯片廠商形成各具特色的ARM芯片...將技術授權給其它芯片廠商形成各具特色的ARM芯片...ARM微處理器的特點低功耗、低成本、高性能采用RICS指令集使用大量的寄存器ARM/THUMB指令支持三/五級流水線ARM微處理器的特點低功耗、低成本、高性能ARM微處理器的特點采用RICS體系結構

固定長度的指令格式、指令簡單、基本尋找方式有2-3種使用單周期指令,便于流水線操作執行大量使用寄存器,數據處理指令只對寄存器進行操作,只有加載/存儲指令可以訪問存儲器,以提高指令的執行效率大量使用寄存器31個通用寄存器,包括程序計數器(PC指針)均為32位寄存器6個狀態寄存器,用以表示CPU的工作狀態及程序運行狀態,均為32位高效的指令系統ARM處理器支持兩種指令集:ARM指令集和THUMB指令集ARM指令為32位的長度、THUMB指令為16位長度。THUMB指令集為ARM指令集的功能子集,但與等價的ARM代碼相比較,可節省30%-40%以上的存儲空間,同時具備32位代碼的所有優點。ARM微處理器的特點采用RICS體系結構ARM微處理器的特點ARM體系結構還采用一些特別的技術,在保證高性能的前提下盡量縮小芯片的面積,并降低功耗所有的ARM指令都可以根據前面的執行結果決定是否被執行,從而提高指令的執行效率可用加載/存儲指令批量傳輸數據,以提高數據的傳輸效率。可在一條數據處理指令中同時完成邏輯處理和移位功能。在循環處理中使用地址的自動增減來提高運行效率ARM微處理器的特點ARM體系結構還采用一些特別的技術,在保ARMcore的增強結構Thumb指令集主要是在代碼長度和窄帶寬存儲器性能兩方面:因為當在一個16位存儲器系統里面取1條32位指令的時候,需要耗費2個存儲器訪問周期;比之32位的系統,其速度正好大概下降一半左右。而16位指令在32位存儲器系統或16位存儲器系統里的表現基本相同。正是存儲器造成的系統瓶頸導致了這個的差別,除了在窄帶寬系統里面的性能優勢外。Thumb指令的另外一個好處的代碼尺寸。同樣一段C代碼,用Thumb指令編譯的結果,其長度大約只占ARM編譯結果的65%左右,可以明顯地節省空間。在大多數情況下,緊湊的代碼和窄帶寬的存儲器系統,還會帶來功耗上的優勢。Thumb指令集在功能上只是ARM指令集的一個子集,某些功能只能在ARM狀態下執行,如CPSR和協處理器的訪問。進行異常響應時,處理器會自動進入ARM狀態。從系統優化考慮,在寬帶存儲器上不應該放置Thumb代碼,很多窄帶系統具有寬帶的內部存儲器即使是一個單純的Thumb應用系統,也必須加一個匯編的交互頭程序,因為系統總是自動從ARM開始啟動所以,不可避免會產生ARM與Thumb之間的交互問題。ARMcore的增強結構Thumb指令集主要是在代碼長度和ARMcore的增強結構指令流水線注意:執行ADD指令時PC已經指向CMP指令所在位置(即+8的位置)ADDSUBADDCMPSUBADD

取指譯碼執行時間周期1周期2周期3ARM7系列使用3級流水線ARM95級,ARM106級,ARM117級ARMcore的增強結構指令流水線注意:執行ADD指令時P為增加處理器指令流的速度,ARM7系列使用3級流水線.允許多個操作同時處理,比逐條指令執行要快。PC指向正被取指的指令,而非正在執行的指令FetchDecodeExecute從存儲器中讀取指令解碼指令寄存器讀(從寄存器Bank)移位及ALU操作寄存器寫(到寄存器Bank)PC PCPC-4 PC-2PC-8 PC-4ARM ThumbARMcore的增強結構為增加處理器指令流的速度,ARM7系列使用3級流水線.Fe最佳流水線該例中用6個時鐘周期執行了6條指令所有的操作都在寄存器中(單周期執行)指令周期數(CPI)=1

操作周期 1 2 3 4 56ADDSUBMOVANDORREORCMPRSBFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteDecodeExecuteFetchDecodeFetchFetch最佳流水線該例中用6個時鐘周期執行了6條指令操作周期LDR流水線舉例該例中,用6周期執行了4條指令指令周期數(CPI)=1.5周期

操作 1 2 3 4 5 6ADDSUBLDRMOVANDORRFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteDataWritebackFetchDecodeExecuteFetchDecodeFetchLDR流水線舉例該例中,用6周期執行了4條指令周期分支流水線舉例流水線被阻斷注意:內核運行在ARM狀態ARM7的指令周期數(CPI)=1.9周期

12345

0x8000BL0x8FEC0x8004X0x8008XX0x8FECADD0x8FF0SUB0x8FF4MOV地址

操作FetchDecodeExecuteFetchDecodeExecuteFetchDecodeFetchFetchDecodeExecuteLinkretAdjustFetchDecodeFetch分支流水線舉例流水線被阻斷周期12ARMcore的增強結構JAVA加速器SIMD指令集單指令流多數據流(SingleInstructionMultipleData,SIMD)能力使得軟件更有效地完成高性能的媒體應用象聲音和圖像編碼器。ARMv6指令集合中加入了超過60個SIMD指令。加入SIMA指令將使性能提高2倍到4倍。SIMD能力可以完成高端的圖像編碼、語音識別、3D圖像DSP功能擴展(早期控制,不帶乘法和乘加運算)

幾條新的完成16位數據乘法和乘加操作指令實現飽和的有符號數的加減法操作的指令Cache預取指令PLDTRUSTZone技術ARMcore的增強結構JAVA加速器數據和指令類型ARM采用的是32位架構(總線結構).4/8/16/32,主流8/32;8位:控制簡單的低端產品,32位(手機、數碼相機、PDA、通信設備、醫療設備等這些高端產品)ARM約定:Byte: 8bits(最小單位為字節)Halfword:16bits(2byte)(半字必須與2個字節的邊界對準)Word: 32bits(4byte)(字必須與4個字節的邊界對準)大部分ARMcore提供:ARM指令集(32-bit)(執行ARM指令集的狀態稱之為ARM狀態)Thumb指令集(16-bit)(執行Thumb指令集的狀態稱之為Thumb狀態)數據和指令類型ARM采用的是32位架構(總線結構).ARM微處理器:存儲器格式大端的數據存放格式低地址高地址地址A地址A+1地址A+2地址A+3最高有效字節的地址就是該word的地址最高有效字節位于最低地址worda=0xf6

73

4b

cdf6734bcdARM微處理器:存儲器格式大端的數據存放格式低地址高地址地址ARM微處理器:存儲器格式小端的數據格式

低地址高地址地址A地址A+1地址A+2地址A+3最低有效字節的地址就是該word的地址最低有效字節位于最低地址worda=0xf6

73

4b

cdf6734bcdLPC2000小端通常是ARM處理器的缺省格式。ARM微處理器:存儲器格式小端的數據格式低地址高地址地址AARM微處理器:處理器工作狀態(PROCESSOROPERATINGSTATES)處理器有兩種工作狀態:ARM:32位,執行字對準的ARM指令Thumb:16位,執行半字對準的Thumb指令ARM和Thumb之間狀態的切換不影響處理器的模式或寄存器的內容,狀態切換開銷幾乎為0.;從Arm狀態切換到Thumb狀態LDRR0,=Lable+1BXR0;從Thumb狀態切換到ARM狀態LDRR0,=LableBXR0LableADDR0,R1,R2地址最低位為1,表示切換到Thumb狀態地址最低位為0,表示切換到ARM狀態跳轉地址標號(偶數)ARM微處理器:處理器工作狀態(PROCESSOROPERARM微處理器:處理器工作狀態進入Thumb狀態:執行BX指令,并設置操作數寄存器的狀態(位[0])為1。在Thumb狀態進入異常(IRQ,FIQ,UNDEF,ABORT,SWIetc.),當異常處理返回時自動轉換到Thumb狀態進入ARM狀態:執行BX指令,并設置操作數寄存器的狀態(位[0])為0。進入異常時,將PC放入異常模式鏈接寄存器中,從異常向量地址開始執行也可進入ARM狀態BXRmARM微處理器:處理器工作狀態進入Thumb狀態:BXRmARM狀態和Thumb狀態的切換;從ARM狀態轉變為Thumb狀態CODE32LDRR0,=Label+1BXR0;從ThumbARM狀態轉變為ARM狀態CODE16LDRR0,=LabelBXR0ARM狀態和Thumb狀態的切換;從ARM狀態轉變為Thum例子CODE32adr r0,Tstart+1

bx r0 nopCODE16Tstart mov r0,#10 mov r1,#3 bl doadd

stop b stopdoadd add r0,r0,r1

bx

lr

end 例子CODE32ARM微處理器:處理器工作狀態(PROCESSOROPERATINGSTATES)Thumb代碼所需的存儲空間約為ARM代碼的60%-70%。Thumb代碼使用的指令數比ARM的代碼多30%-40%。若使用32位的存儲器,ARM代碼比Thumb代碼快約40%若使用16位的存儲器,Thumb代碼比ARM代碼快約40%-50%與ARM代碼相比較,使用Thumb代碼,存儲器的功耗會降低約30%系統性能有較高要求,應用32位的存儲系統與ARM指令集;對系統的成本和功耗有較高要求,則應使用16位的存儲系統和Thumb指令集;兩者可結合使用ARM微處理器:處理器工作狀態(PROCESSOROPERARM體系結構版本ARM體系結構從最初開發到現在有了巨大的改進,并仍在完善和發展。為了清楚的表達每個ARM應用實例所使用的指令集,ARM公司定義了6種主要的ARM指令集體系結構版本,以版本號V1~V8表示。ARM體系結構版本ARM體系結構從最初開發到現在有了巨大的ARMV4ARMV4是目前支持的最老的架構,是基于32-bit地址空間的32-bit指令集。ARMv4除了支持ARMv3的指令外還擴展了:支持halfword的存取支持byte和halfword的符號擴展讀支持Thumb指令提供Thumb和Normal狀態的轉換指令進一步的明確了會引起Undefined異常的指令對以前的26bits體系結構的CPU不再兼容

ARMV4ARMV4是目前支持的最老的架構,是基于32-bARMv4TARMv4T增加了16-bitThumb

指令集,這樣使得編譯器能產生緊湊代碼(相對于32-bit代碼,內存能節省到35%以上)并保持32-bit系統的好處。Thumb在處理器中仍然要擴展為標準的32位ARM指令來運行。用戶采用16位Thumb指令集最大的好處就是可以獲得更高的代碼密度和降低功耗。ARMv4TARMv4T增加了16-bitThumb

指令ARMV5TE1999年推出ARMv5TE其增強了Thumb體系,增強的Thumb體系增加了一個新的指令同時改進了Thumb/ARM相互作用、編譯能力和混合及匹配ARM與Thumb例程,以更好地平衡代碼空間和性能并在ARMISA上擴展了增強的DSP

指令集:

增強的DSP指令包括支持飽和算術(saturatedarithmetic),并且針對AudioDSP應用提高了70%性能。‘E’擴展表示在通用的CPU上提供DSP能力。ARMV5TE1999年推出ARMv5TE其增強了ThumARMv5TEJ2000年推出ARMv5TEJ,增加了Jazelle擴展以支持Java加速技術。Jazelle狀態下允許直接運行java8位碼.Java字節碼8-bits獨立架構的指令集。Jazelle用硬件執行大多數的字節碼Jazelle技術比僅僅基于軟件的JVM性能提高近8倍的性能減少了80%的功耗。

ARMJazelle(ARM發布的java硬件加速虛擬機優化技術,目的是為了提高java應用的啟動運行及反應速度)ARMv5TEJ2000年推出ARMv5TEJ,增加了JazARMv62001年推出ARMv6,它在許多方面做了改進如內存系統、異常處理和較好地支持多處理器。SIMD擴展使得廣大的軟件應用如Video和Audiocodec的性能提高了4倍。Thumb-2和TrustZone技術也用于ARMv6中。ARMv6第一個實現是2002年春推出的ARM1136J(F)-STM處理器,2003年又推出了

ARM1156T2(F)-S

和ARM1176JZ(F)-S處理器。ARMv62001年推出ARMv6,它在許多方面做了改進如內ARMv7ARMv7定義了3種不同的處理器配置(processorprofiles):ProfileA是面向復雜、基于虛擬內存的OS和應用的(2G)ProfileR是針對實時系統的ProfileM是針對低成本應用的優化的微控制器的(50M)所有ARMv7profiles實現Thumb-2技術,同時還包括了NEON?技術的擴展提高DSP和多媒體處理吞吐量400%

,并提供浮點支持以滿足下一代3D圖形和游戲以及傳統嵌入式控制應用的需要。ARMv7ARMv7定義了3種不同的處理器配置(procesARMv8ARMv8-A

將64位架構支持引入ARM架構中,其中包括:

64位通用寄存器、SP(堆棧指針)和

PC(程序計數器)64

位數據處理和擴展的虛擬尋址兩種主要執行狀態:AArch64

-64位執行狀態AArch32

-32位執行狀態ARMv8ARMv8-A

將64位架構支持引入ARMARM處理器的分類結構體系版本(Architecture)ARMv4TARMv5TEARMv6ARMCortex(v7)ProcessorFamilyARM7ARM9ARM10ARM11ARMCortex按應用特征分類應用處理器

ApplicationProcessor實時控制處理器

Real-timeController微控制器

Micro-controller特征:MMU,Cache最快頻率、最高性能、合理功耗特征:MPU,Cache實時響應、合理性能、較低功耗特征:nosub-memorysystem一般性能、最低成本、極低功耗ARM處理器的分類結構體系版本(Architecture)PARM發展SA-110ARM7TDMI4T1Halfwordandsignedhalfword/bytesupportSystemmodeThumbinstructionset24ARM9TDMISA-1110ARM720TARM940TImprovedARM/ThumbInterworkingCLZ5TESaturatedmathsDSPmultiply-accumulateinstructionsXScaleARM1020EARM9E-SARM966E-S3EarlyARMarchitecturesARM9EJ-S5TEJARM7EJ-SARM926EJ-SJazelleJavabytecode

execution6ARM1136EJ-SARM1026EJ-SSIMDInstructionsMulti-processingV6Memoryarchitecture(VMSA)UnaligneddatasupportV7架構;cortexARM發展SA-110ARM7TDMI4T1Halfwordv4v5TESA110v4TARM720TARM7TDMI-SARM920TARM940TARM922TARM966E-SARM946E-SARM1020Ev5TEJ/Jazellev6/JazelleARM7EJ-SARM926EJ-SARM1026EJ-SARM11Micro-ArchitectureRoadmapofARMV4/V5/V6v4v5TESA110v4TARM720TARM7TDMIARMFamilyARM7?FamilyARM9?FamilyARM10?FamilyARM11?Family150DMIPS300DMIPS500DMIPS1000DMIPSARMCortex?FamilyARM720TARM1136JARM1176JZARM1026EARM920T/ARM922TARM926EJCortexAApplicationProcessorARM7TDMIARM1156T2ARM1026EARM946ECortexREmbeddedRTControllerARM7TDMIARM966EARM968ECortexMMicro-controllerARMArchitectureARMFamilyARM7?FamilyARM9?Fa系列相應產品性能特點ARM7系列ARM7TDMI,ARM7TDMI-S,ARM720T,ARM7EJ三級流水性能:0.9MIPS/MHz,可達到130MIPs(Dhrystone2.1)

ARM9系列ARM920T,ARM922T

五級流水,性能:1.1MIPS/MHz,可達300MIPS(Dhrystone2.1),單32-bitAMBAbus接口,支持MMUARM9E系列ARM926EJ-S,RM946E-S,ARM966E-S,ARM968E-S,ARM996HS

五級流水,支持DSP指令。性能:1.1MIPS/MHz,可達300MIPS(Dhrystone2.1),高性能AHB,軟核(softIP)

ARM10系列ARM1020E,ARM1022EARM1026EJ-S

6級流水支持分支預測(branchprediction),支持DSP指令。性能:1.35MIPS/MHz,可達430+Dhrystone2.1

MIPS,,可選支持高性能浮點操作,雙64位總線接口,內部64位數據通路系列相應產品性能特點ARM7ARM7TDMI,ARM7TDM系列相應產品性能特點ARM11系列ARM11MPCore,ARM1136J(F)-S,ARM1156T2(F)-S,ARM1176JZ(F)-S

8級流水線(9級ARM1156T2(F)-S),獨立的load-store和arithmetic流水線,支持分支預測和返回棧(ReturnStack)。強大的ARMv6指令集,支持DSP,SIMD(SingleInstructionMultipleData)擴展,支持ARMTrustZone、Thumb-2核心技術。740Dhrystone2.1MIPS,低功耗0.6mW/MHz(0.13μm,1.2V)Cortex系列Cortex-A8,Cortex-M3,Cortex-R4Cortex-A系列:面向用于復雜OS和應用的應用處理器(applicationsprocessors),支持ARM,ThumbandThumb-2指令集。Cortex-R系列:面向嵌入式實時領域的嵌入式處理器,支持ARM,Thumb,和Thumb-2指令集。Cortex-M系列:面向深嵌入式價格敏感的嵌入式處理器,只支持Thumb-2指令集SecurCore系列SecurCoreSC100,SecurCoreSC200用于SmartCard和SecureIC的32-bit解決方案。支持ARM和Thumb

指令集,軟核。具有安全特征和低成本安全存儲保護單元

系列相應產品性能特點ARM11ARM11MPCore,8級主流ARM處理器ARM7世界上最為廣泛使用的CPU之一<100MHz(一般)ARM9100-300MHz1.7BARMPowredshipmentinyearof2005,31%isARM9based.主流ARM處理器ARM71.7BARMPowredshARM11芯片ARM11300-700+MHzSIMD指令擴展支持更豐富的多媒體應用40家授權芯片公司,一些已開始量產FOMAN902iFirstARM11basedphoneOMAP2420ARM11300-700+MHzSIMD指令擴展支持更豐富的多媒體應用ARM11芯片ARM11FOMAN902iOMAP242Cortex-M3

實現$1

ARM芯片ARMCortexArchitectureThumb-2ISA3StagePipeline1.22DMIPS/MHz–30%overARM7TDMI33Kgates–30%smallerthanARM7TDMILuminaryMicro的Stellaris系列MCU產品售價僅1美元ARMCortex-M3微控制器內核,專門針對MCU應用領域而設計,突出低成本、低功耗和高效率。Cortex-M3實現$1ARM芯片ARMCorte最快的處理器提供超過2000DMIPS的性能運行于1GHz頻率(90nmor65nm制造工藝)功耗小于300mWARMCortexA8ApplicationProcessor最快的處理器提供超過2000DMIPS的性能ARMCoARM7TDMI-SThumb架構擴展,提供兩個獨立的指令集:ARM指令,均為32位Thumb指令,均為16位兩種運行狀態,用來選擇哪個指令集被執行內核具有Debug擴展結構,片上調試增強乘法器(32x8)支持64位乘法EmbeddedICE觀察硬件3級流水線馮·諾依曼架構CPI(CyclePerInstruction)約為1.9V4T版本‘E’擴展表示在通用的CPU上提供DSP能力V5,V6后續默認TDMIJ,支持JavaARM7TDMI的可綜合(synthesizable)版本(軟核)ARM7TDMI-SThumb架構擴展,提供兩個獨立的指ARM體系結構ARM體系結構ARMLtdARM-AdvancedRICSMachinesARM即可以認為是公司的名字,也可以認為是對一類微處理器的通稱,也可以認為是一種技術的名字,還可以認為它是一種商業思想,1991年ARM公司成立于英國劍橋,主要出售芯片設計技術的授權ARMLtdARM-AdvancedRICSMacARM公司簡介ARM公司作為32位處理器內核的提供者,擁有100多家辦導體合作伙伴,擁有100多家半導體合作伙伴,ARMcore是目前消費類電子市場中占有量第一的CPU體系ARM是一個CPU內核。ARM公司自己并不生產或銷售芯片,它采用技術授權模式,通過出售芯片技術授權,收取授權費與技術轉讓費隨著ARM、MIPS、ARC等成熟內核的推出,很多過去沒有32位CPU研發能力的半導體公司進入這一行列。ARM公司簡介ARM公司作為32位處理器內核的提供者,擁有ARM全球分布EnglandCambridge,Maidenhead,Sheffield,BlackburnGermanyMunich FranceParis,SophiaAntipolisKoreaSeoulUSSeattle,LosGatos,WalnutCreek,Austin,Boston,SanDiegoAsiaTaiwanJapanShin-Yokohama(Tokyo)ARM全球分布EnglandUSARM合作伙伴ARM合作伙伴ARMLtd世界各大半導體商場商從ARM公司購買其設計的ARM微處理器核,根據各自不同的應用領域,加入適當的外圍電路,從而形成自己的ARM微處理器芯片進入市場。基于ARM技術的微處理器應用約占據了32位RICS微處理器80%以上的市場份額,ARM技術正在逐步滲入到我們生活的各個方面。ARMLtd世界各大半導體商場商從ARM公司購買其設計的A將技術授權給其它芯片廠商形成各具特色的ARM芯片...將技術授權給其它芯片廠商形成各具特色的ARM芯片...ARM微處理器的特點低功耗、低成本、高性能采用RICS指令集使用大量的寄存器ARM/THUMB指令支持三/五級流水線ARM微處理器的特點低功耗、低成本、高性能ARM微處理器的特點采用RICS體系結構

固定長度的指令格式、指令簡單、基本尋找方式有2-3種使用單周期指令,便于流水線操作執行大量使用寄存器,數據處理指令只對寄存器進行操作,只有加載/存儲指令可以訪問存儲器,以提高指令的執行效率大量使用寄存器31個通用寄存器,包括程序計數器(PC指針)均為32位寄存器6個狀態寄存器,用以表示CPU的工作狀態及程序運行狀態,均為32位高效的指令系統ARM處理器支持兩種指令集:ARM指令集和THUMB指令集ARM指令為32位的長度、THUMB指令為16位長度。THUMB指令集為ARM指令集的功能子集,但與等價的ARM代碼相比較,可節省30%-40%以上的存儲空間,同時具備32位代碼的所有優點。ARM微處理器的特點采用RICS體系結構ARM微處理器的特點ARM體系結構還采用一些特別的技術,在保證高性能的前提下盡量縮小芯片的面積,并降低功耗所有的ARM指令都可以根據前面的執行結果決定是否被執行,從而提高指令的執行效率可用加載/存儲指令批量傳輸數據,以提高數據的傳輸效率。可在一條數據處理指令中同時完成邏輯處理和移位功能。在循環處理中使用地址的自動增減來提高運行效率ARM微處理器的特點ARM體系結構還采用一些特別的技術,在保ARMcore的增強結構Thumb指令集主要是在代碼長度和窄帶寬存儲器性能兩方面:因為當在一個16位存儲器系統里面取1條32位指令的時候,需要耗費2個存儲器訪問周期;比之32位的系統,其速度正好大概下降一半左右。而16位指令在32位存儲器系統或16位存儲器系統里的表現基本相同。正是存儲器造成的系統瓶頸導致了這個的差別,除了在窄帶寬系統里面的性能優勢外。Thumb指令的另外一個好處的代碼尺寸。同樣一段C代碼,用Thumb指令編譯的結果,其長度大約只占ARM編譯結果的65%左右,可以明顯地節省空間。在大多數情況下,緊湊的代碼和窄帶寬的存儲器系統,還會帶來功耗上的優勢。Thumb指令集在功能上只是ARM指令集的一個子集,某些功能只能在ARM狀態下執行,如CPSR和協處理器的訪問。進行異常響應時,處理器會自動進入ARM狀態。從系統優化考慮,在寬帶存儲器上不應該放置Thumb代碼,很多窄帶系統具有寬帶的內部存儲器即使是一個單純的Thumb應用系統,也必須加一個匯編的交互頭程序,因為系統總是自動從ARM開始啟動所以,不可避免會產生ARM與Thumb之間的交互問題。ARMcore的增強結構Thumb指令集主要是在代碼長度和ARMcore的增強結構指令流水線注意:執行ADD指令時PC已經指向CMP指令所在位置(即+8的位置)ADDSUBADDCMPSUBADD

取指譯碼執行時間周期1周期2周期3ARM7系列使用3級流水線ARM95級,ARM106級,ARM117級ARMcore的增強結構指令流水線注意:執行ADD指令時P為增加處理器指令流的速度,ARM7系列使用3級流水線.允許多個操作同時處理,比逐條指令執行要快。PC指向正被取指的指令,而非正在執行的指令FetchDecodeExecute從存儲器中讀取指令解碼指令寄存器讀(從寄存器Bank)移位及ALU操作寄存器寫(到寄存器Bank)PC PCPC-4 PC-2PC-8 PC-4ARM ThumbARMcore的增強結構為增加處理器指令流的速度,ARM7系列使用3級流水線.Fe最佳流水線該例中用6個時鐘周期執行了6條指令所有的操作都在寄存器中(單周期執行)指令周期數(CPI)=1

操作周期 1 2 3 4 56ADDSUBMOVANDORREORCMPRSBFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteDecodeExecuteFetchDecodeFetchFetch最佳流水線該例中用6個時鐘周期執行了6條指令操作周期LDR流水線舉例該例中,用6周期執行了4條指令指令周期數(CPI)=1.5周期

操作 1 2 3 4 5 6ADDSUBLDRMOVANDORRFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteDataWritebackFetchDecodeExecuteFetchDecodeFetchLDR流水線舉例該例中,用6周期執行了4條指令周期分支流水線舉例流水線被阻斷注意:內核運行在ARM狀態ARM7的指令周期數(CPI)=1.9周期

12345

0x8000BL0x8FEC0x8004X0x8008XX0x8FECADD0x8FF0SUB0x8FF4MOV地址

操作FetchDecodeExecuteFetchDecodeExecuteFetchDecodeFetchFetchDecodeExecuteLinkretAdjustFetchDecodeFetch分支流水線舉例流水線被阻斷周期12ARMcore的增強結構JAVA加速器SIMD指令集單指令流多數據流(SingleInstructionMultipleData,SIMD)能力使得軟件更有效地完成高性能的媒體應用象聲音和圖像編碼器。ARMv6指令集合中加入了超過60個SIMD指令。加入SIMA指令將使性能提高2倍到4倍。SIMD能力可以完成高端的圖像編碼、語音識別、3D圖像DSP功能擴展(早期控制,不帶乘法和乘加運算)

幾條新的完成16位數據乘法和乘加操作指令實現飽和的有符號數的加減法操作的指令Cache預取指令PLDTRUSTZone技術ARMcore的增強結構JAVA加速器數據和指令類型ARM采用的是32位架構(總線結構).4/8/16/32,主流8/32;8位:控制簡單的低端產品,32位(手機、數碼相機、PDA、通信設備、醫療設備等這些高端產品)ARM約定:Byte: 8bits(最小單位為字節)Halfword:16bits(2byte)(半字必須與2個字節的邊界對準)Word: 32bits(4byte)(字必須與4個字節的邊界對準)大部分ARMcore提供:ARM指令集(32-bit)(執行ARM指令集的狀態稱之為ARM狀態)Thumb指令集(16-bit)(執行Thumb指令集的狀態稱之為Thumb狀態)數據和指令類型ARM采用的是32位架構(總線結構).ARM微處理器:存儲器格式大端的數據存放格式低地址高地址地址A地址A+1地址A+2地址A+3最高有效字節的地址就是該word的地址最高有效字節位于最低地址worda=0xf6

73

4b

cdf6734bcdARM微處理器:存儲器格式大端的數據存放格式低地址高地址地址ARM微處理器:存儲器格式小端的數據格式

低地址高地址地址A地址A+1地址A+2地址A+3最低有效字節的地址就是該word的地址最低有效字節位于最低地址worda=0xf6

73

4b

cdf6734bcdLPC2000小端通常是ARM處理器的缺省格式。ARM微處理器:存儲器格式小端的數據格式低地址高地址地址AARM微處理器:處理器工作狀態(PROCESSOROPERATINGSTATES)處理器有兩種工作狀態:ARM:32位,執行字對準的ARM指令Thumb:16位,執行半字對準的Thumb指令ARM和Thumb之間狀態的切換不影響處理器的模式或寄存器的內容,狀態切換開銷幾乎為0.;從Arm狀態切換到Thumb狀態LDRR0,=Lable+1BXR0;從Thumb狀態切換到ARM狀態LDRR0,=LableBXR0LableADDR0,R1,R2地址最低位為1,表示切換到Thumb狀態地址最低位為0,表示切換到ARM狀態跳轉地址標號(偶數)ARM微處理器:處理器工作狀態(PROCESSOROPERARM微處理器:處理器工作狀態進入Thumb狀態:執行BX指令,并設置操作數寄存器的狀態(位[0])為1。在Thumb狀態進入異常(IRQ,FIQ,UNDEF,ABORT,SWIetc.),當異常處理返回時自動轉換到Thumb狀態進入ARM狀態:執行BX指令,并設置操作數寄存器的狀態(位[0])為0。進入異常時,將PC放入異常模式鏈接寄存器中,從異常向量地址開始執行也可進入ARM狀態BXRmARM微處理器:處理器工作狀態進入Thumb狀態:BXRmARM狀態和Thumb狀態的切換;從ARM狀態轉變為Thumb狀態CODE32LDRR0,=Label+1BXR0;從ThumbARM狀態轉變為ARM狀態CODE16LDRR0,=LabelBXR0ARM狀態和Thumb狀態的切換;從ARM狀態轉變為Thum例子CODE32adr r0,Tstart+1

bx r0 nopCODE16Tstart mov r0,#10 mov r1,#3 bl doadd

stop b stopdoadd add r0,r0,r1

bx

lr

end 例子CODE32ARM微處理器:處理器工作狀態(PROCESSOROPERATINGSTATES)Thumb代碼所需的存儲空間約為ARM代碼的60%-70%。Thumb代碼使用的指令數比ARM的代碼多30%-40%。若使用32位的存儲器,ARM代碼比Thumb代碼快約40%若使用16位的存儲器,Thumb代碼比ARM代碼快約40%-50%與ARM代碼相比較,使用Thumb代碼,存儲器的功耗會降低約30%系統性能有較高要求,應用32位的存儲系統與ARM指令集;對系統的成本和功耗有較高要求,則應使用16位的存儲系統和Thumb指令集;兩者可結合使用ARM微處理器:處理器工作狀態(PROCESSOROPERARM體系結構版本ARM體系結構從最初開發到現在有了巨大的改進,并仍在完善和發展。為了清楚的表達每個ARM應用實例所使用的指令集,ARM公司定義了6種主要的ARM指令集體系結構版本,以版本號V1~V8表示。ARM體系結構版本ARM體系結構從最初開發到現在有了巨大的ARMV4ARMV4是目前支持的最老的架構,是基于32-bit地址空間的32-bit指令集。ARMv4除了支持ARMv3的指令外還擴展了:支持halfword的存取支持byte和halfword的符號擴展讀支持Thumb指令提供Thumb和Normal狀態的轉換指令進一步的明確了會引起Undefined異常的指令對以前的26bits體系結構的CPU不再兼容

ARMV4ARMV4是目前支持的最老的架構,是基于32-bARMv4TARMv4T增加了16-bitThumb

指令集,這樣使得編譯器能產生緊湊代碼(相對于32-bit代碼,內存能節省到35%以上)并保持32-bit系統的好處。Thumb在處理器中仍然要擴展為標準的32位ARM指令來運行。用戶采用16位Thumb指令集最大的好處就是可以獲得更高的代碼密度和降低功耗。ARMv4TARMv4T增加了16-bitThumb

指令ARMV5TE1999年推出ARMv5TE其增強了Thumb體系,增強的Thumb體系增加了一個新的指令同時改進了Thumb/ARM相互作用、編譯能力和混合及匹配ARM與Thumb例程,以更好地平衡代碼空間和性能并在ARMISA上擴展了增強的DSP

指令集:

增強的DSP指令包括支持飽和算術(saturatedarithmetic),并且針對AudioDSP應用提高了70%性能。‘E’擴展表示在通用的CPU上提供DSP能力。ARMV5TE1999年推出ARMv5TE其增強了ThumARMv5TEJ2000年推出ARMv5TEJ,增加了Jazelle擴展以支持Java加速技術。Jazelle狀態下允許直接運行java8位碼.Java字節碼8-bits獨立架構的指令集。Jazelle用硬件執行大多數的字節碼Jazelle技術比僅僅基于軟件的JVM性能提高近8倍的性能減少了80%的功耗。

ARMJazelle(ARM發布的java硬件加速虛擬機優化技術,目的是為了提高java應用的啟動運行及反應速度)ARMv5TEJ2000年推出ARMv5TEJ,增加了JazARMv62001年推出ARMv6,它在許多方面做了改進如內存系統、異常處理和較好地支持多處理器。SIMD擴展使得廣大的軟件應用如Video和Audiocodec的性能提高了4倍。Thumb-2和TrustZone技術也用于ARMv6中。ARMv6第一個實現是2002年春推出的ARM1136J(F)-STM處理器,2003年又推出了

ARM1156T2(F)-S

和ARM1176JZ(F)-S處理器。ARMv62001年推出ARMv6,它在許多方面做了改進如內ARMv7ARMv7定義了3種不同的處理器配置(processorprofiles):ProfileA是面向復雜、基于虛擬內存的OS和應用的(2G)ProfileR是針對實時系統的ProfileM是針對低成本應用的優化的微控制器的(50M)所有ARMv7profiles實現Thumb-2技術,同時還包括了NEON?技術的擴展提高DSP和多媒體處理吞吐量400%

,并提供浮點支持以滿足下一代3D圖形和游戲以及傳統嵌入式控制應用的需要。ARMv7ARMv7定義了3種不同的處理器配置(procesARMv8ARMv8-A

將64位架構支持引入ARM架構中,其中包括:

64位通用寄存器、SP(堆棧指針)和

PC(程序計數器)64

位數據處理和擴展的虛擬尋址兩種主要執行狀態:AArch64

-64位執行狀態AArch32

-32位執行狀態ARMv8ARMv8-A

將64位架構支持引入ARMARM處理器的分類結構體系版本(Architecture)ARMv4TARMv5TEARMv6ARMCortex(v7)ProcessorFamilyARM7ARM9ARM10ARM11ARMCortex按應用特征分類應用處理器

ApplicationProcessor實時控制處理器

Real-timeController微控制器

Micro-controller特征:MMU,Cache最快頻率、最高性能、合理功耗特征:MPU,Cache實時響應、合理性能、較低功耗特征:nosub-memorysystem一般性能、最低成本、極低功耗ARM處理器的分類結構體系版本(Architecture)PARM發展SA-110ARM7TDMI4T1Halfwordandsignedhalfword/bytesupportSystemmodeThumbinstructionset24ARM9TDMISA-1110ARM720TARM940TImprovedARM/ThumbInterworkingCLZ5TESaturatedmathsDSPmultiply-accumulateinstructionsXScaleARM1020EARM9E-SARM966E-S3EarlyARMarchitecturesARM9EJ-S5TEJARM7EJ-SARM926EJ-SJazelleJavabytecode

execution6ARM1136EJ-SARM1026EJ-SSIMDInstructionsMulti-processingV6Memoryarchitecture(VMSA)UnaligneddatasupportV7架構;cortexARM發展SA-110ARM7TDMI4T1Halfwordv4v5TESA110v4TARM720TARM7TDMI-SARM920TARM940TARM922TARM966E-SARM946E-SARM1020Ev5TEJ/Jazellev6/JazelleARM7EJ-SARM926EJ-SARM1026EJ-SARM11Micro-ArchitectureRoadmapofARMV4/V5/V6v4v5TESA110v4TARM720TARM7TDMIARMFamilyARM7?FamilyARM9?FamilyARM10?FamilyARM11?Family150DMIPS300DMIPS500DMIPS1000DMIPSARMCortex?FamilyARM720TARM1136JARM1176JZARM1026EARM920T/ARM922TARM926EJCortexAApplicationProcessorARM7TDMIARM1156T2ARM1026EARM946ECortexREmbeddedRTControllerARM7TDMIARM966EARM968ECortexMMicro-controllerARMArchitectureARMFamilyARM7?FamilyARM9?Fa系列相應產品性能特點ARM7系列ARM7T

溫馨提示

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

評論

0/150

提交評論