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

下載本文檔

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

文檔簡介

第二章嵌入式微處理器第二章嵌入式微處理器主要內(nèi)容1ARMCPUISA的發(fā)展歷史

2典型ARMCPUCore體系結(jié)構(gòu)3ARM編程模型本章部分內(nèi)容可以參考:http:///主要內(nèi)容1ARMCPUISA的發(fā)展歷史ARM公司成立于1990年11月前身為Acorn計算機(jī)公司主要設(shè)計ARM系列RISC處理器內(nèi)核授權(quán)ARM內(nèi)核給生產(chǎn)和銷售半導(dǎo)體的合作伙伴ARM公司不生產(chǎn)芯片另外也提供基于ARM架構(gòu)的開發(fā)設(shè)計技術(shù)軟件工具,評估板,調(diào)試工具,應(yīng)用軟件,總線架構(gòu),外圍設(shè)備單元,等等ARM公司成立于1990年11月ARMCPUCore概述ARM內(nèi)核是一種32/64位RISC微處理器,具有功耗低、性價比高、代碼密度高等三大特色。ARM處理器具有RISC體系結(jié)構(gòu)的典型特征:體積小、低功耗、低成本、高性能;支持Thumb(16位)/ARM(32位)雙指令集,能很好地兼容8位/16位器件;大量使用寄存器,指令執(zhí)行速度更快;大多數(shù)數(shù)據(jù)操作都在寄存器中完成尋址方式靈活簡單,執(zhí)行效率高指令長度固定所有指令都可以條件執(zhí)行,以增大執(zhí)行吞吐量。ARMCPUCore概述ARM內(nèi)核是一種32/64位RI2.1ARMCPUISA的發(fā)展歷史ARMCPU的指令集體系ISA(即ARMInstructionSetArchitecture)從最初的V1版本發(fā)展到現(xiàn)在,先后出現(xiàn)了V1,V2,V3,V4,V4T,V5TE,V5TEJ,V6,V7,V8等主要的版本。ARMV1~V3版本的處理器未得到大量應(yīng)用,ARM處理器的大量廣泛應(yīng)用是從其V4版本開始的V7系列CPU被稱作CorTex系列到目前V8是最新的版本,

可以選擇64或32執(zhí)行狀態(tài)。64執(zhí)行狀態(tài)針對64位處理技術(shù),引入了一個全新指令集A64,可以存取大虛擬地址空間。2.1ARMCPUISA的發(fā)展歷史ARMCPU的指DevelopmentoftheARMArchitectureHalfwordandsignedhalfword/bytesupportSystemmodeThumbinstructionset(v4T)ImprovedinterworkingCLZSaturatedarithmeticDSPMACinstructionsExtensions: Jazelle(5TEJ)SIMDInstructionsMulti-processingv6MemoryarchitectureUnaligneddatasupportExtensions: Thumb-2(6T2) TrustZone?(6Z) Multicore(6K) Thumbonly(6-M)NotethatimplementationsofthesamearchitecturecanbedifferentCortex-A8-architecturev7-A,witha13-stagepipelineCortex-A9-architecturev7-A,withan8-stagepipelineThumb-2ArchitectureProfiles 7-A

-Applications 7-R-Real-time 7-M-Microcontrollerv4v5v6v7v864bitArchDevelopmentoftheARMArchite---ARMV4ARMV4是目前支持的最老的架構(gòu),是基于32-bit地址空間的32-bit指令集。ARMv4除了支持ARMv3的指令外還擴(kuò)展了:支持halfword的存取支持byte和halfword的符號擴(kuò)展讀支持Thumb指令提供Thumb和Normal狀態(tài)的轉(zhuǎn)換指令進(jìn)一步的明確了會引起Undefined異常的指令對以前的26bits體系結(jié)構(gòu)的CPU不再兼容

---ARMV4ARMV4是目前支持的最老的架構(gòu),是基于3---ARMv4TARMv4T增加了16-bitThumb

指令集,這樣使得編譯器能產(chǎn)生緊湊代碼(相對于32-bit代碼,內(nèi)存能節(jié)省到35%以上)并保持32-bit系統(tǒng)的好處。Thumb在處理器中仍然要擴(kuò)展為標(biāo)準(zhǔn)的32位ARM指令來運(yùn)行。用戶采用16位Thumb指令集最大的好處就是可以獲得更高的代碼密度和降低功耗。---ARMv4TARMv4T增加了16-bitThum---ARMV5TE1999年推出ARMv5TE其增強(qiáng)了Thumb體系,增強(qiáng)的Thumb體系增加了一個新的指令同時改進(jìn)了Thumb/ARM相互作用、編譯能力和混合及匹配ARM與Thumb例程,以更好地平衡代碼空間和性能并在ARMISA上擴(kuò)展了增強(qiáng)的DSP

指令集:

增強(qiáng)的DSP指令包括支持飽和算術(shù)(saturatedarithmetic),并且針對AudioDSP應(yīng)用提高了70%性能。‘E’擴(kuò)展表示在通用的CPU上提供DSP能力。---ARMV5TE1999年推出ARMv5TE其增強(qiáng)了---ARMv5TEJ2000年推出ARMv5TEJ,增加了Jazelle擴(kuò)展以支持Java加速技術(shù)(處理器指令層對JAVA加速)。Jazelle技術(shù)比僅僅基于軟件的JVM性能提高近8倍的性能減少了80%的功耗。---ARMv5TEJ2000年推出ARMv5TEJ,增加---ARMv62001年推出ARMv6,它在許多方面做了改進(jìn)如內(nèi)存系統(tǒng)、異常處理和較好地支持多處理器。SIMD擴(kuò)展使得廣大的軟件應(yīng)用如Video和Audiocodec的性能提高了4倍。Thumb-2和TrustZone技術(shù)也用于ARMv6中。ARMv6第一個實(shí)現(xiàn)是2002年春推出的ARM1136J(F)-STM處理器,2003年又推出了

ARM1156T2(F)-S

和ARM1176JZ(F)-S處理器。---ARMv62001年推出ARMv6,它在許多方面做了---ARMv7ARMv7定義了3種不同的處理器配置(processorprofiles):

ProfileA是面向復(fù)雜、基于虛擬內(nèi)存的OS和應(yīng)用的ProfileR是針對實(shí)時系統(tǒng)的ProfileM是針對低成本應(yīng)用的優(yōu)化的微控制器的。所有ARMv7profiles實(shí)現(xiàn)Thumb-2技術(shù),比純32位代碼少使用31%的內(nèi)存,高出38%的性能。同時還包括了NEON?技術(shù)的擴(kuò)展提高DSP和多媒體處理吞吐量400%

,并提供浮點(diǎn)支持以滿足下一代3D圖形和游戲以及傳統(tǒng)嵌入式控制應(yīng)用的需要。關(guān)于ARM架構(gòu)發(fā)展可以參考:/guide/145686.html---ARMv7ARMv7定義了3種不同的處理器配置(pr---ARMv82011年11月,ARM公司發(fā)布了新一代處理器架構(gòu)ARMV8,ARM的首個64位架構(gòu)。在繼承了V7架構(gòu)的基礎(chǔ)上,可以選擇64或32執(zhí)行狀態(tài)。64執(zhí)行狀態(tài)針對64位處理技術(shù),引入了一個全新指令集A64,可以存取大虛擬地址空間;運(yùn)用ARMv8指令集的產(chǎn)品:ARM12年十月發(fā)布了Cortex-A53andCortex-A57核心。13年蘋果基于V8架構(gòu)的Apple7使用在了iPhone5S上。---ARMv82011年11月,ARM公司發(fā)布了新一代處ARM/Thumb的命名規(guī)范(Classic命名)由于ARM的每個版本都有一系列的可變版本,其命名規(guī)范(Classic命名)如下:以ARMv開頭ARM指令集的版本號(1-5)可變功能標(biāo)識(T—表示支持Thumb指令,M---表示支持乘法指令,E—增強(qiáng)型DSP指令,J—Java加速器Jazelle,SIMD—ARM媒體功能擴(kuò)展),但是ARMv4和其上的版本缺省都支持M功能,因此ARMv4和其上的版本的標(biāo)識中可以不用標(biāo)識M.如果3中描述的功能不存在,則在該功能標(biāo)識符前加x

ARM/Thumb的命名規(guī)范(Classic命名)由于ARARM處理器命名(Classic命名)采用上述的架構(gòu),形成一系列的處理器。有時候還要區(qū)分處理器核和處理器系列。不過,在這里其實(shí)不用區(qū)分太細(xì),畢竟這是功能的小部分的變化,核心是相同的。

規(guī)則:ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}

x--處理器系列

y--存儲管理/保護(hù)單元

z--cache

T--支持Thumb指令集

D--支持片上調(diào)試

M--支持快速乘法器

I--支持EmbeddedICE,支持嵌入式跟蹤調(diào)試

E--支持增強(qiáng)型DSP指令

J--支持Jazelle

F--具備向量浮點(diǎn)單元VFP

-S--可綜合版本

如ARM7TDMIARM處理器命名(Classic命名)采用上述的架構(gòu),形成ARM處理器的分類(現(xiàn)在常用命名)結(jié)構(gòu)體系版本(Architecture)ARMv4TARMv5TEARMv6ARMCortex(v7)ProcessorFamilyARM7ARM9ARM10ARM11ARMCortex按應(yīng)用特征分類(定義3種不同的處理器配置)應(yīng)用處理器

ApplicationProcessor實(shí)時控制處理器

Real-timeController微控制器

Micro-controller特征:MMU,Cache最快頻率、最高性能、合理功耗特征:MPU,Cache實(shí)時響應(yīng)、合理性能、較低功耗特征:nosub-memorysystem一般性能、最低成本、極低功耗ARM處理器的分類(現(xiàn)在常用命名)結(jié)構(gòu)體系版本(ArchitEmbeddedProcessorsEmbeddedProcessorsEmbeddedProcessorsEmbeddedProcessorsWhicharchitectureisyourprocessor?Whicharchitectureisyourpro作業(yè)二1、查找資料確定自己的手機(jī)的CPU型號,是哪個廠家生產(chǎn)的,CPU是ARM的哪種體系結(jié)構(gòu)版本?CPU有何特別的技術(shù),簡要介紹各種技術(shù)。以及此CPU其它性能指標(biāo)。10月28號晚20點(diǎn)之前交給學(xué)習(xí)委員,學(xué)習(xí)委員統(tǒng)一打包發(fā)給我。超過截止時間則沒有本次作業(yè)成績。作業(yè)文件命名規(guī)則:學(xué)號-姓名-作業(yè)X作業(yè)評分標(biāo)準(zhǔn)大概是從格式排版,到內(nèi)容完整度、深度等方面考核,還有要看是否是經(jīng)過多個資料整理分析的,還是直接復(fù)制一段網(wǎng)上文字的,根據(jù)這些評分。作業(yè)二1、查找資料確定自己的手機(jī)的CPU型號,是哪個廠家生產(chǎn)作業(yè)二作業(yè)二評分標(biāo)準(zhǔn):1、型號、廠家、體系結(jié)構(gòu)版本各10分,共30分2、特別的技術(shù)30分3、性能指標(biāo)25分4、格式及排版10分5、作業(yè)命名規(guī)范5分其中2點(diǎn),你的CPU中包含的特別的技術(shù)要有對應(yīng)的解釋,如Thumb、

NEON、

Jazelle、ARMTrustZone?等。作業(yè)二作業(yè)二評分標(biāo)準(zhǔn):---ARMFamilyARM7?FamilyARM9?FamilyARM10?FamilyARM11?Family150DMIPS300DMIPS500DMIPS1000DMIPSARMCortex?FamilyARM720TARM1136JARM1176JZARM1026EARM920T/ARM922TARM926EJCortexAApplicationProcessorARM7TDMIARM1156T2ARM1026EARM946ECortexREmbeddedRTControllerARM7TDMIARM966EARM968ECortexMMicro-controllerARMArchitecture---ARMFamilyARM7?FamilyARM9已廣泛應(yīng)用的ARM處理器ARM7世界上最為廣泛使用的CPU之一<100MHzARM9100-300MHz已廣泛應(yīng)用的ARM處理器ARM7ARM11芯片ARM11300-700+MHzSIMD指令擴(kuò)展支持更豐富的多媒體應(yīng)用40多家授權(quán)芯片公司FOMAN902iFirstARM11basedphoneOMAP2420i.MX31/i.MX31LARM11芯片ARM11FOMAN902iOMAP242高性能的ARM嵌入式處理器處理器提供超過2DMIPS/MHZ的性能運(yùn)行于1GHz頻率(90nmor65nm制造工藝)功耗小于300mWARMCortexA8ApplicationProcessor高性能的ARM嵌入式處理器處理器提供超過2DMIPS/MHCortex系列處理器(命名及)對比ARMCortexA8ApplicationProcessorCortex系列處理器(命名及)對比ARMCortexACortex-M3實(shí)現(xiàn)$1

ARM芯片ARMCortexArchitectureThumb-2ISA3StagePipeline1.22DMIPS/MHz–30%overARM7TDMI33Kgates–30%smallerthanARM7TDMILuminaryMicro的Stellaris系列MCU產(chǎn)品售價僅1美元ARMCortex-M3微控制器內(nèi)核,專門針對MCU應(yīng)用領(lǐng)域而設(shè)計,突出低成本、低功耗和高效率。Cortex-M3實(shí)現(xiàn)$1ARM芯片ARMCorte生產(chǎn)ARM處理器的主要廠家TI(德州儀器)Omap3430Cortex-A8核600MHz(諾基亞N96)Omap3530Cortex-A8核600MHzARM+DSP雙核Samsung(三星)S5PC100Cortex-A8核600MHz(iPhone3GS和M9都應(yīng)用此芯片)S5PC110/S5PV210Cortex-A8核1GHZFreescale(飛思卡爾)i.MX512/i.MX513/i.MX515Cortex-A8核600MHz~1GHz(在多款上網(wǎng)本中得到應(yīng)用)生產(chǎn)ARM處理器的主要廠家TI(德州儀器)生產(chǎn)ARM處理器的主要廠家Marvell(馬維爾)PXA930800MHzCortex-A8核ARMADA500/600/1000系列SheevaPJ4核心1GHz~1.2GHz(支持ARMv7指令集,架構(gòu)異同)Qualcomm(高通)QSD8650A/QSD8672(Snapdragon系列)1.3G~1.5Gscorpion核心(支持ARMv7指令,架構(gòu)異同)驍龍400系列(

Cortex-A7

)MSM8928-紅米NOTE4GNvidia(英偉達(dá))TegraARM11核700MHzTegra2(下一代產(chǎn)品)CortexA8(或A9)核MTK(聯(lián)發(fā)科MediaTek)MTK

MT6592八核,Cortex-A71.4-2GHZ紅米NOTE生產(chǎn)ARM處理器的主要廠家Marvell(馬維爾)主要內(nèi)容1ARMCPUISA的發(fā)展歷史2典型ARMCPUCore體系結(jié)構(gòu)

3ARM編程模型主要內(nèi)容1ARMCPUISA的發(fā)展歷史2.2典型ARMCPU體系結(jié)構(gòu)——結(jié)構(gòu)特征ARM內(nèi)核采用RISC體系結(jié)構(gòu)。ARM體系結(jié)構(gòu)的主要特征如下:(1)大量的寄存器,并可以用于多種用途。(2)采用Load/Store體系結(jié)構(gòu)。(3)每條指令都條件執(zhí)行。(4)采用多寄存器的Load/Store指令。(5)單周期指令內(nèi)同時完成移位操作和ALU。(6)通過協(xié)處理器指令集來擴(kuò)展ARM指令集。(7)體系支持Thumb指令集2.2典型ARMCPU體系結(jié)構(gòu)——結(jié)構(gòu)特征ARM內(nèi)核采用2.2典型的ARMCPUCore——ARM7TDMI結(jié)構(gòu)2.2典型的ARMCPUCore——ARM7TDMI結(jié)構(gòu)ARM7TDMIThumb架構(gòu)擴(kuò)展,提供兩個獨(dú)立的指令集:ARM指令,均為32位Thumb指令,均為16位兩種運(yùn)行狀態(tài),用來選擇哪個指令集被執(zhí)行內(nèi)核具有Debug擴(kuò)展結(jié)構(gòu)增強(qiáng)乘法器(32x8)支持64位結(jié)果EmbeddedICE邏輯3級流水線馮·諾依曼架構(gòu)CPI(CyclePerInstruction)約為1.9ARM7TDMIThumb架構(gòu)擴(kuò)展,提供兩個獨(dú)立的指令集乘法器指令解碼地址自增器nRESETnMREQSEQABORTnIRQnFIQnRWMAS[1:0]LOCKnCPICPACPBnWAITMCLKnOPCBIGENDISYNCnTRANSnM[4:0]D[31:0]桶移位器32位ALUDBE寫數(shù)據(jù)寄存器讀數(shù)據(jù)寄存器地址寄存器寄存器BankA[31:0]ABE及控制邏輯PCUpdate解碼站指令解壓縮IncrementerPCABusBBusALUBusARM7TDMICore的結(jié)構(gòu)乘法器指令地址nRESETnMREQSEQABORTnIRQARM7TDMI引腳邏輯圖ARM7TDMI引腳邏輯圖ARM7TDMI指令流水線為增加處理器指令流的速度,ARM7系列使用3級流水線。允許多個操作同時處理,而非順序執(zhí)行。

PC指向正被取指的指令,而非正在執(zhí)行的指令。FetchDecodeExecute從存儲器中讀取指令解碼指令中用到的寄存器寄存器讀(從寄存器Bank)移位及ALU操作寄存器寫(到寄存器Bank)PC PCPC-4 PC-2PC-8 PC-4ARM ThumbARM7TDMI指令流水線為增加處理器指令流的速度,ARM7ARM9TDMI指令流水線InstructionFetchShift+ALUMemoryAccessRegWriteRegReadRegDecodeFETCHDECODEEXECUTEMEMORYWRITEARM9TDMIARMorThumb

InstDecodeRegSelectRegReadShiftALURegWriteThumb?ARM

decompressARMdecodeInstructionFetchFETCHDECODEEXECUTEARM7TDMIARM9TDMI指令流水線InstructionShift理想的3級流水線(ARM7TDMI:無訪存操作)理想的3級流水線(ARM7TDMI:無訪存操作)ARM的參有LDR指令流水線ARM的參有LDR指令流水線Cortex-A8的指令流水線(13級)Cortex-A8的指令流水線(13級)本節(jié)重點(diǎn)1、ARM架構(gòu)發(fā)展史

2

3ARM處理器特點(diǎn)ARMISA的版本情況,ISA命名規(guī)則ARM處理器命名規(guī)則:ARM7TDMI1

4ARM處理器分類:M、R、A本節(jié)重點(diǎn)1、ARM架構(gòu)發(fā)展史23ARM處理器特點(diǎn)AR本節(jié)重點(diǎn)2、

ARM典型CPU

2ARM7的結(jié)構(gòu)ARM7的三級流水線1本節(jié)重點(diǎn)2、ARM典型CPU2ARM7的結(jié)構(gòu)ARM7主要內(nèi)容1ARMCPUISA的發(fā)展歷史2典型ARMCPUCore體系結(jié)構(gòu)3ARM編程模型

主要內(nèi)容1ARMCPUISA的發(fā)展歷史2.3.1數(shù)據(jù)寬度(類型)數(shù)據(jù)類型

字節(jié)型數(shù)據(jù)(Byte):數(shù)據(jù)寬度為8bits

半字?jǐn)?shù)據(jù)類型(HalfWord):數(shù)據(jù)寬度為16bits,存取式必須以2字節(jié)對齊的方式

字?jǐn)?shù)據(jù)類型(Word):數(shù)據(jù)寬度為32bits,存取式必須以4字節(jié)對齊的方式字節(jié)半字字2.3.1數(shù)據(jù)寬度(類型)數(shù)據(jù)類型字節(jié)半字字2.3.2工作狀態(tài)和工作模式——工作狀態(tài)處理器有兩種工作狀態(tài):ARM:32位,執(zhí)行字對準(zhǔn)的ARM指令Thumb:16位,執(zhí)行半字對準(zhǔn)的Thumb指令A(yù)RM和Thumb之間狀態(tài)的切換不影響處理器的模式或寄存器的內(nèi)容2.3.2工作狀態(tài)和工作模式——工作狀態(tài)處理器有兩種工作2.3.2工作狀態(tài)和工作模式——工作狀態(tài)進(jìn)入Thumb狀態(tài):執(zhí)行BX指令,并設(shè)置操作數(shù)寄存器的狀態(tài)(位[0])為1。

在Thumb狀態(tài)進(jìn)入異常(IRQ,FIQ,UNDEF,ABORT,SWIetc.),當(dāng)異常處理返回時自動轉(zhuǎn)換到Thumb狀態(tài)進(jìn)入ARM狀態(tài):執(zhí)行BX指令,并設(shè)置操作數(shù)寄存器的狀態(tài)(位[0])為0。進(jìn)入異常時,將PC放入異常模式鏈接寄存器中,從異常向量地址開始執(zhí)行也可進(jìn)入ARM狀態(tài);從Arm狀態(tài)切換到Thumb狀態(tài)

LDRR0,=Lable+1BXR0;從Thumb狀態(tài)切換到ARM狀態(tài)

LDRR0,=LableBXR0地址最低位為1,表示切換到Thumb狀態(tài)地址最低位為0,表示切換到ARM狀態(tài)跳轉(zhuǎn)地址標(biāo)號2.3.2工作狀態(tài)和工作模式——工作狀態(tài)進(jìn)入Thumb狀態(tài)作業(yè)三查找資料,撰寫分析說明,回答以下問題:ARM跳轉(zhuǎn)指令有幾種?分析為什么由跳轉(zhuǎn)到Thumb狀態(tài)要用BX指令?為什么地址最后要“+1”?ARM指令是不是對齊的?是什么對齊的?指令為什么需要對齊?有什么好處?說明:可以參考資料,但不能全部直接復(fù)制粘貼,問題回答缺一個扣一個的分,回答不準(zhǔn)確的也扣分。格式亂七八糟的也會扣分。作業(yè)文件命名規(guī)則:學(xué)號-姓名-作業(yè)三作業(yè)三查找資料,撰寫分析說明,回答以下問題:2.3.2工作狀態(tài)和工作模式——工作模式處理器模式說明用戶模式(User)正常程序執(zhí)行模式,用于應(yīng)用程序異常模式(FIQ)快速中斷處理,用于支持高速數(shù)據(jù)傳送或通道處理異常模式(IRQ)用于一般中斷處理異常模式(Supervisor)用于系統(tǒng)初始化或操作系統(tǒng)功能異常模式(Abort)存儲器保護(hù)異常處理異常模式(Undefined)未定義指令異常處理系統(tǒng)模式(System)運(yùn)行特權(quán)操作系統(tǒng)任務(wù)(ARMV4以上版本)監(jiān)控模式(Monitor)可以在安全模式與非安全模式之間進(jìn)行轉(zhuǎn)換Cortex-A8內(nèi)核的處理器模式2.3.2工作狀態(tài)和工作模式——工作模式處理器模式說明用2.3.2工作狀態(tài)和工作模式——工作模式User模式程序不能訪問有些受保護(hù)的資源只能通過異常的形式來改變CPU的當(dāng)前運(yùn)行模式特權(quán)模式可以存取系統(tǒng)中的任何資源System模式與User模式的運(yùn)行環(huán)境一樣但是它可以不受任何限制的訪問任何資源該模式主要用于運(yùn)行系統(tǒng)中的一些特權(quán)任務(wù)FIQ模式IRQ模式Supervisor模式Abort模式Undefined模式異常模式:主要是在外部中斷或者程序執(zhí)行非法操作時會觸發(fā)Monitor模式2.3.2工作狀態(tài)和工作模式——工作模式User模式程序不2.3.3寄存器–ARM寄存器概述ARMCortex-A8處理器有40個32位寄存器寄存器

32個通用寄存器

1個程序計數(shù)器

7個狀態(tài)寄存器這些寄存器不能同時看到不同的處理器狀態(tài)和工作模式確定哪些寄存器是對編程者是可見的。2.3.3寄存器–ARM寄存器概述ARMCortex-AARM微處理器:ARMCortex-A寄存器ARM微處理器:ARMCortex-A寄存器ARM有40個32-Bits長的寄存器:32個通用寄存器(完全通用,用于存放數(shù)據(jù)或地址)1個PC(programcounter)1個CPSR(currentprogramstatusregister)6個SPSR(savedprogramstatusregisters)當(dāng)前處理器的模式?jīng)Q定著哪組寄存器可操作.任何模式都可以存取:相應(yīng)的r0-r12(除FIQ模式外共用-FIQ只共用r0-r7)相應(yīng)的r13(thestackpointer,sp)和r14(thelinkregister,lr)r15(theprogramcounter,pc),所有模式共用。CPSR(currentprogramstatusregister,cpsr),所有模式共用特權(quán)模式(除system模式)還可以存取:相應(yīng)的spsr(savedprogramstatusregister)ARM有40個32-Bits長的寄存器:ARM微處理器:ThumbState寄存器Thumb狀態(tài)寄存器集是ARM狀態(tài)集的子集,程序員可以直接訪問的寄存器為:8個通用寄存器R0~R7;程序計數(shù)器(PC);堆棧指針(SP);鏈接寄存器(LR);有條件訪問程序狀態(tài)寄存器(CPSR)。ARM微處理器:ThumbState寄存器ARM微處理器:ThumbState寄存器ARM微處理器:ThumbState寄存器ARMState與ThumbState寄存器關(guān)系R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

R0

堆棧指針(R13)

連接寄存器(R14)

程序計數(shù)器(R15)

低寄存器高寄存器注意:在發(fā)生異常時,處理器自動進(jìn)入ARM狀態(tài)。ARMState與ThumbState寄存器關(guān)系R1處理器模式與寄存器的關(guān)系異常發(fā)生時伴隨的模式切換意味著,被調(diào)用的異常處理程序會訪問:它自己的堆棧指針(SP_<mode>)它自己的鏈接寄存器(LR_<mode>)它自己的備份程序狀態(tài)寄存器(SPSR_<mode>)如果是FIQ異常處理,5個其它的通用狀態(tài)寄存器(r8_FIQtor12_FIQ)其它寄存器和原來模式下的寄存器是相同的處理器模式與寄存器的關(guān)系異常發(fā)生時伴隨的模式切換意味著,被2.3.3寄存器–通用寄存器通用寄存器是R0-R15的寄存器,分為三類

沒有對應(yīng)影子寄存器的寄存器R0-R7

有對應(yīng)影子寄存器的寄存器R8-R14

程序計數(shù)器R15(或者PC)

影子寄存器是指該寄存器在不同的模式下對應(yīng)的物理寄存器2.3.3寄存器–通用寄存器通用寄存器是R0-R15的寄存2.3.3寄存器–通用寄存器R0-R7所有模式下,R0-R7所對應(yīng)的物理寄存器都是相同的這八個寄存器是真正意義上的通用寄存器,ARM體系結(jié)構(gòu)中對它們沒有作任何特殊的假設(shè),它們的功能都是等同的。在中斷或者異常處理程序中一般都需要對這幾個寄存器進(jìn)行保存。2.3.3寄存器–通用寄存器R0-R72.3.3寄存器–通用寄存器R8-R14訪問的物理寄存器取決于當(dāng)前的處理器模式,若要訪問特定的物理寄存器而不依賴當(dāng)前的處理器模式,則要使用規(guī)定的名字。R8-R12各有兩組物理寄存器:一組為FIQ模式,另一組是除FIQ以外的其他模式。R13-R14各有6個分組的物理寄存器,一個用于用戶模式和系統(tǒng)模式,其他5個分別用于5種異常模式。R13(也被稱為SP指針)被用作棧指針,通常在系統(tǒng)初始化時需要對所有模式下的SP指針賦值,當(dāng)CPU在不同的模式時棧指針會被自動切換成相應(yīng)模式下的值。R14有兩個用途,一是在調(diào)用子程序時用于保存調(diào)用返回地址,二是在發(fā)生異常時用于保存異常返回地址。2.3.3寄存器–通用寄存器R8-R14不同模式下堆棧指針的初始化在系統(tǒng)初始化(即系統(tǒng)復(fù)位)時需要初始化各模式分組的堆棧指針寄存器R13(R13_svc、R13_irq、R13_fiq、R13_abt和R13_und),這樣才能在進(jìn)入不同的模式時自動切換使用不同的堆棧空間。初始化時需注意堆棧指針必須保持8字節(jié)對齊。;中斷模式堆棧的設(shè)置(涉及到CPSR格式和MSR指令)MSRCPSR_c,#0x000000D2;切換到中斷模式LDRR1,=IrqStackMOVSP,R1;設(shè)置中斷模式堆棧指針;快速中斷模式堆棧的設(shè)置MSRCPSR_c,#0x000000D1;切換到快速中斷模式LDRR1,=FiqStackMOVSP,R1;設(shè)置快速中斷模式堆棧指針;中止模式堆棧的設(shè)置......不同模式下堆棧指針的初始化在系統(tǒng)初始化(即系統(tǒng)復(fù)位)時需要初鏈接寄存器R14(LR)---1R14為鏈接寄存器(LR),在結(jié)構(gòu)上有兩個特殊功能:在每種模式下,模式自身的R14版本用于保存子程序返回地址;當(dāng)發(fā)生異常時,將R14對應(yīng)的異常模式版本設(shè)置為異常返回地址(有些異常有一個小的固定偏移量)。鏈接寄存器R14(LR)---1R14為鏈接寄鏈接寄存器R14---2 Lable程序A程序BR14R14寄存器與子程序調(diào)用BLLable地址A???MOVPC,LRR14(地址A)Lable???1.程序A執(zhí)行過程中調(diào)用程序B;操作流程2.程序跳轉(zhuǎn)至標(biāo)號Lable,執(zhí)行程序B。同時硬件將“BLLable”指令的下一條指令所在地址存入R14;3.程序B執(zhí)行最后,將R14寄存器的內(nèi)容放入PC,返回程序A;鏈接寄存器R14---2 Lable程序A程序BR14R14鏈接寄存器R14---3 R14寄存器與異常發(fā)生

異常發(fā)生時,程序要跳轉(zhuǎn)至異常服務(wù)程序,對返回地址的處理與子程序調(diào)用類似,都是由硬件完成的。區(qū)別在于有些異常有一個小常量的偏移。R14寄存器注意要點(diǎn)

當(dāng)發(fā)生異常嵌套時,這些異常之間可能會發(fā)生沖突。例如:如果用戶在用戶模式下執(zhí)行程序時發(fā)生了IRQ中斷,用戶模式寄存器不會被破壞。但是如果允許在IRQ模式下的中斷處理程序重新使能IRQ中斷,并且發(fā)生了嵌套的IRQ中斷時,外部中斷處理程序保存在R14_irq中的任何值都將被嵌套中斷的返回地址所覆蓋。鏈接寄存器R14---3 R14寄存器與異常發(fā)生鏈接寄存器R14---4 R14寄存器注意要點(diǎn)R14R14_irq用戶模式下的程序IRQ模式下的程序AareturnB...XA地址A地址A1.執(zhí)行用戶模式下的程序;2.發(fā)生IRQ中斷,硬件將某個地址存入IRQ模式下的R14_irq寄存器,用戶模式下的R14沒有被破壞;3.IRQ服務(wù)程序A執(zhí)行完畢,將R14_irq寄存器的內(nèi)容減去某個常量后存入PC,返回之前被中斷的程序;未被破壞鏈接寄存器R14---4 R14寄存器注意要點(diǎn)R14R14_鏈接寄存器R14---4R14寄存器注意要點(diǎn)R14R14_irq用戶模式下的程序IRQ模式下的程序AaB...XA地址A地址A1.執(zhí)行用戶模式下的程序;2.發(fā)生IRQ中斷,硬件將某個地址存入IRQ模式下的R14_irq寄存器,用戶模式下的R14沒有被破壞;3.IRQ服務(wù)程序A執(zhí)行完畢,將R14_irq寄存器的內(nèi)容減去某個常量后存入PC,返回之前被中斷的程序;未被破壞IRQ模式下的程序BareturnB...XA地址B地址B4.如果在IRQ處理程序中打開IRQ中斷,并且再次發(fā)生IRQ中斷,或者調(diào)用子程序;5.硬件將返回地址保存在R14_irq寄存器中,原來保存的返回地址將被覆蓋,造成錯誤;被破壞6.在程序B返回到程序A,然后在返回到用戶模式下被中斷的程序時,發(fā)生錯誤,將不能正確返回;returnreturn

解決辦法是確保R14的對應(yīng)版本在發(fā)生中斷嵌套時不再保存任何有意義的值(將R14入棧),或者切換到其它處理器模式下。鏈接寄存器R14---4R14寄存器注意要點(diǎn)R14R14_i2.3.3寄存器–通用寄存器R15用作程序計數(shù)器(PC),可以被讀寫

讀到的PC的值是PC當(dāng)前值加8(2個指令的長度,三級流水線情況下),寫PC則轉(zhuǎn)移到寫入地址執(zhí)行程序。ARMstate:4字節(jié)對齊,最低兩位bits[1:0]永遠(yuǎn)為0(V4以上版本,V3以下是把寫入值與0XFFFFFFFC與操作)

THUMBstate:2字節(jié)對齊,最低位bit[0]為0注:ARM存儲器按字節(jié)組織2.3.3寄存器–通用寄存器R152.3.3寄存器–程序狀態(tài)寄存器ARM7TDMI內(nèi)核包含1個CPSR(當(dāng)前程序狀態(tài)寄存器)和5個供異常處理程序使用的SPSR。CPSR在所有的模式下都是可以讀寫的,反映了當(dāng)前處理器的狀態(tài),其包含::4個條件標(biāo)志(負(fù)(N)、零(Z)、進(jìn)位(C)和溢出(V))2個中斷使能標(biāo)志5個當(dāng)前處理器的模式編碼位其它的一些狀態(tài)和控制標(biāo)志(ARM/Thumb)2.3.3寄存器–程序狀態(tài)寄存器ARM7TDMI內(nèi)核包含

條件位:N=NegativeresultfromALUZ=ZeroresultfromALUC=ALUoperationCarriedoutorborrowV=ALUoperationoVerflowedQ位:僅ARMv5TE-J架構(gòu)支持指示飽和狀態(tài)J位僅ARMv5TE-J架構(gòu)支持T=0;J=1處理器處于Jazelle狀態(tài)也可以和其他位組合DNM位:DoNotModifyGE[3:0]大于或等于(當(dāng)執(zhí)行SIMD指令時有效)IT[7:2]Thumb2指令的條件執(zhí)行 IF….THEN….指令執(zhí)行狀態(tài)位E位:

大小端控制位,E=0littleendianA位:A=1禁止不精確的數(shù)據(jù)異常中斷禁止位:I=1:禁止IRQ.F=1:禁止FIQTBitT=0;J=0;處理器處于ARM狀態(tài)T=1;J=0處理器處于Thumb狀態(tài)T=1;J=1處理器處于ThumbEE狀態(tài)Mode位:處理器模式位 10000Usermode;10001FIQmode; 10011SVCmode;

10111Abortmode;11011Undfinedmode; 11111Systemmode;

10110Monitormode;10010IRQ2.3.3寄存器–程序狀態(tài)寄存器條件位:2.3.3寄存器–程序狀態(tài)寄存器本節(jié)重點(diǎn)1、ARM編程模型

2

3工作模式:ARM、Thumb工作狀態(tài):7/8種寄存器:數(shù)量(37、40)、名稱、用法1

4特殊寄存器:CPSR、R14、R15ATPCS5本節(jié)重點(diǎn)1、ARM編程模型23工作模式:ARM、Th處理器模式說明用戶模式(User)正常程序執(zhí)行模式,用于應(yīng)用程序異常模式(FIQ)快速中斷處理,用于支持高速數(shù)據(jù)傳送或通道處理異常模式(IRQ)用于一般中斷處理異常模式(Supervisor)用于系統(tǒng)初始化或操作系統(tǒng)功能異常模式(Abort)存儲器保護(hù)異常處理異常模式(Undefined)未定義指令異常處理系統(tǒng)模式(System)運(yùn)行特權(quán)操作系統(tǒng)任務(wù)(ARMV4以上版本)監(jiān)控模式(Monitor)可以在安全模式與非安全模式之間進(jìn)行轉(zhuǎn)換ARMCortex-A8工作模式——小結(jié)復(fù)習(xí)ARM有8種基本模式每種模式都有自己的堆棧空間和可以訪問的寄存器子集某些操作只能在特權(quán)模式下進(jìn)行處理器模式說明用戶模式(User)正常程序執(zhí)行模式,用于應(yīng)用Cortex-A8RegisterFile——小結(jié)復(fù)習(xí)Cortex-A8RegisterFile——小結(jié)復(fù)1)說出ARM可以工作的模式名字。2)CortexA8ARM核有多少個寄存器?3)PC和LR寄存器的別名?4)R13別名是什么?5)在復(fù)位后,ARM處理器處于何種模式、何種狀態(tài)?6)CPSR的哪2位反映了處理器的狀態(tài)?7)所有的Thumb指令采取什么對齊方式?8)ARM有哪幾個異常源。9)當(dāng)IRQ中斷發(fā)生嵌套時,是否有可能發(fā)生中斷返回錯誤,何種情況下會發(fā)生?如何避免?練習(xí)題“ARM工作模式與寄存器”1)說出ARM可以工作的模式名字。練習(xí)題“ARM工作模式與寄72本章重點(diǎn)1、ARM架構(gòu)發(fā)展史

2

3ARM處理器特點(diǎn)ARMISA的版本情況,ISA命名規(guī)則ARM處理器命名規(guī)則:ARM7TDMI1

4ARM處理器分類:M、R、A本章重點(diǎn)1、ARM架構(gòu)發(fā)展史23ARM處理器特點(diǎn)AR本章重點(diǎn)2、

ARM典型CPU

2ARM7的結(jié)構(gòu)ARM7的三級流水線1本章重點(diǎn)2、ARM典型CPU2ARM7的結(jié)構(gòu)ARM7本章重點(diǎn)3、ARM編程模型

2

3工作模式:ARM、Thumb工作狀態(tài):7/8種寄存器:數(shù)量(37、40)、名稱、用法1本章重點(diǎn)3、ARM編程模型23工作模式:ARM、Th,謝謝!,謝謝!第二章嵌入式微處理器第二章嵌入式微處理器主要內(nèi)容1ARMCPUISA的發(fā)展歷史

2典型ARMCPUCore體系結(jié)構(gòu)3ARM編程模型本章部分內(nèi)容可以參考:http:///主要內(nèi)容1ARMCPUISA的發(fā)展歷史ARM公司成立于1990年11月前身為Acorn計算機(jī)公司主要設(shè)計ARM系列RISC處理器內(nèi)核授權(quán)ARM內(nèi)核給生產(chǎn)和銷售半導(dǎo)體的合作伙伴ARM公司不生產(chǎn)芯片另外也提供基于ARM架構(gòu)的開發(fā)設(shè)計技術(shù)軟件工具,評估板,調(diào)試工具,應(yīng)用軟件,總線架構(gòu),外圍設(shè)備單元,等等ARM公司成立于1990年11月ARMCPUCore概述ARM內(nèi)核是一種32/64位RISC微處理器,具有功耗低、性價比高、代碼密度高等三大特色。ARM處理器具有RISC體系結(jié)構(gòu)的典型特征:體積小、低功耗、低成本、高性能;支持Thumb(16位)/ARM(32位)雙指令集,能很好地兼容8位/16位器件;大量使用寄存器,指令執(zhí)行速度更快;大多數(shù)數(shù)據(jù)操作都在寄存器中完成尋址方式靈活簡單,執(zhí)行效率高指令長度固定所有指令都可以條件執(zhí)行,以增大執(zhí)行吞吐量。ARMCPUCore概述ARM內(nèi)核是一種32/64位RI2.1ARMCPUISA的發(fā)展歷史ARMCPU的指令集體系ISA(即ARMInstructionSetArchitecture)從最初的V1版本發(fā)展到現(xiàn)在,先后出現(xiàn)了V1,V2,V3,V4,V4T,V5TE,V5TEJ,V6,V7,V8等主要的版本。ARMV1~V3版本的處理器未得到大量應(yīng)用,ARM處理器的大量廣泛應(yīng)用是從其V4版本開始的V7系列CPU被稱作CorTex系列到目前V8是最新的版本,

可以選擇64或32執(zhí)行狀態(tài)。64執(zhí)行狀態(tài)針對64位處理技術(shù),引入了一個全新指令集A64,可以存取大虛擬地址空間。2.1ARMCPUISA的發(fā)展歷史ARMCPU的指DevelopmentoftheARMArchitectureHalfwordandsignedhalfword/bytesupportSystemmodeThumbinstructionset(v4T)ImprovedinterworkingCLZSaturatedarithmeticDSPMACinstructionsExtensions: Jazelle(5TEJ)SIMDInstructionsMulti-processingv6MemoryarchitectureUnaligneddatasupportExtensions: Thumb-2(6T2) TrustZone?(6Z) Multicore(6K) Thumbonly(6-M)NotethatimplementationsofthesamearchitecturecanbedifferentCortex-A8-architecturev7-A,witha13-stagepipelineCortex-A9-architecturev7-A,withan8-stagepipelineThumb-2ArchitectureProfiles 7-A

-Applications 7-R-Real-time 7-M-Microcontrollerv4v5v6v7v864bitArchDevelopmentoftheARMArchite---ARMV4ARMV4是目前支持的最老的架構(gòu),是基于32-bit地址空間的32-bit指令集。ARMv4除了支持ARMv3的指令外還擴(kuò)展了:支持halfword的存取支持byte和halfword的符號擴(kuò)展讀支持Thumb指令提供Thumb和Normal狀態(tài)的轉(zhuǎn)換指令進(jìn)一步的明確了會引起Undefined異常的指令對以前的26bits體系結(jié)構(gòu)的CPU不再兼容

---ARMV4ARMV4是目前支持的最老的架構(gòu),是基于3---ARMv4TARMv4T增加了16-bitThumb

指令集,這樣使得編譯器能產(chǎn)生緊湊代碼(相對于32-bit代碼,內(nèi)存能節(jié)省到35%以上)并保持32-bit系統(tǒng)的好處。Thumb在處理器中仍然要擴(kuò)展為標(biāo)準(zhǔn)的32位ARM指令來運(yùn)行。用戶采用16位Thumb指令集最大的好處就是可以獲得更高的代碼密度和降低功耗。---ARMv4TARMv4T增加了16-bitThum---ARMV5TE1999年推出ARMv5TE其增強(qiáng)了Thumb體系,增強(qiáng)的Thumb體系增加了一個新的指令同時改進(jìn)了Thumb/ARM相互作用、編譯能力和混合及匹配ARM與Thumb例程,以更好地平衡代碼空間和性能并在ARMISA上擴(kuò)展了增強(qiáng)的DSP

指令集:

增強(qiáng)的DSP指令包括支持飽和算術(shù)(saturatedarithmetic),并且針對AudioDSP應(yīng)用提高了70%性能。‘E’擴(kuò)展表示在通用的CPU上提供DSP能力。---ARMV5TE1999年推出ARMv5TE其增強(qiáng)了---ARMv5TEJ2000年推出ARMv5TEJ,增加了Jazelle擴(kuò)展以支持Java加速技術(shù)(處理器指令層對JAVA加速)。Jazelle技術(shù)比僅僅基于軟件的JVM性能提高近8倍的性能減少了80%的功耗。---ARMv5TEJ2000年推出ARMv5TEJ,增加---ARMv62001年推出ARMv6,它在許多方面做了改進(jìn)如內(nèi)存系統(tǒng)、異常處理和較好地支持多處理器。SIMD擴(kuò)展使得廣大的軟件應(yīng)用如Video和Audiocodec的性能提高了4倍。Thumb-2和TrustZone技術(shù)也用于ARMv6中。ARMv6第一個實(shí)現(xiàn)是2002年春推出的ARM1136J(F)-STM處理器,2003年又推出了

ARM1156T2(F)-S

和ARM1176JZ(F)-S處理器。---ARMv62001年推出ARMv6,它在許多方面做了---ARMv7ARMv7定義了3種不同的處理器配置(processorprofiles):

ProfileA是面向復(fù)雜、基于虛擬內(nèi)存的OS和應(yīng)用的ProfileR是針對實(shí)時系統(tǒng)的ProfileM是針對低成本應(yīng)用的優(yōu)化的微控制器的。所有ARMv7profiles實(shí)現(xiàn)Thumb-2技術(shù),比純32位代碼少使用31%的內(nèi)存,高出38%的性能。同時還包括了NEON?技術(shù)的擴(kuò)展提高DSP和多媒體處理吞吐量400%

,并提供浮點(diǎn)支持以滿足下一代3D圖形和游戲以及傳統(tǒng)嵌入式控制應(yīng)用的需要。關(guān)于ARM架構(gòu)發(fā)展可以參考:/guide/145686.html---ARMv7ARMv7定義了3種不同的處理器配置(pr---ARMv82011年11月,ARM公司發(fā)布了新一代處理器架構(gòu)ARMV8,ARM的首個64位架構(gòu)。在繼承了V7架構(gòu)的基礎(chǔ)上,可以選擇64或32執(zhí)行狀態(tài)。64執(zhí)行狀態(tài)針對64位處理技術(shù),引入了一個全新指令集A64,可以存取大虛擬地址空間;運(yùn)用ARMv8指令集的產(chǎn)品:ARM12年十月發(fā)布了Cortex-A53andCortex-A57核心。13年蘋果基于V8架構(gòu)的Apple7使用在了iPhone5S上。---ARMv82011年11月,ARM公司發(fā)布了新一代處ARM/Thumb的命名規(guī)范(Classic命名)由于ARM的每個版本都有一系列的可變版本,其命名規(guī)范(Classic命名)如下:以ARMv開頭ARM指令集的版本號(1-5)可變功能標(biāo)識(T—表示支持Thumb指令,M---表示支持乘法指令,E—增強(qiáng)型DSP指令,J—Java加速器Jazelle,SIMD—ARM媒體功能擴(kuò)展),但是ARMv4和其上的版本缺省都支持M功能,因此ARMv4和其上的版本的標(biāo)識中可以不用標(biāo)識M.如果3中描述的功能不存在,則在該功能標(biāo)識符前加x

ARM/Thumb的命名規(guī)范(Classic命名)由于ARARM處理器命名(Classic命名)采用上述的架構(gòu),形成一系列的處理器。有時候還要區(qū)分處理器核和處理器系列。不過,在這里其實(shí)不用區(qū)分太細(xì),畢竟這是功能的小部分的變化,核心是相同的。

規(guī)則:ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}

x--處理器系列

y--存儲管理/保護(hù)單元

z--cache

T--支持Thumb指令集

D--支持片上調(diào)試

M--支持快速乘法器

I--支持EmbeddedICE,支持嵌入式跟蹤調(diào)試

E--支持增強(qiáng)型DSP指令

J--支持Jazelle

F--具備向量浮點(diǎn)單元VFP

-S--可綜合版本

如ARM7TDMIARM處理器命名(Classic命名)采用上述的架構(gòu),形成ARM處理器的分類(現(xiàn)在常用命名)結(jié)構(gòu)體系版本(Architecture)ARMv4TARMv5TEARMv6ARMCortex(v7)ProcessorFamilyARM7ARM9ARM10ARM11ARMCortex按應(yīng)用特征分類(定義3種不同的處理器配置)應(yīng)用處理器

ApplicationProcessor實(shí)時控制處理器

Real-timeController微控制器

Micro-controller特征:MMU,Cache最快頻率、最高性能、合理功耗特征:MPU,Cache實(shí)時響應(yīng)、合理性能、較低功耗特征:nosub-memorysystem一般性能、最低成本、極低功耗ARM處理器的分類(現(xiàn)在常用命名)結(jié)構(gòu)體系版本(ArchitEmbeddedProcessorsEmbeddedProcessorsEmbeddedProcessorsEmbeddedProcessorsWhicharchitectureisyourprocessor?Whicharchitectureisyourpro作業(yè)二1、查找資料確定自己的手機(jī)的CPU型號,是哪個廠家生產(chǎn)的,CPU是ARM的哪種體系結(jié)構(gòu)版本?CPU有何特別的技術(shù),簡要介紹各種技術(shù)。以及此CPU其它性能指標(biāo)。10月28號晚20點(diǎn)之前交給學(xué)習(xí)委員,學(xué)習(xí)委員統(tǒng)一打包發(fā)給我。超過截止時間則沒有本次作業(yè)成績。作業(yè)文件命名規(guī)則:學(xué)號-姓名-作業(yè)X作業(yè)評分標(biāo)準(zhǔn)大概是從格式排版,到內(nèi)容完整度、深度等方面考核,還有要看是否是經(jīng)過多個資料整理分析的,還是直接復(fù)制一段網(wǎng)上文字的,根據(jù)這些評分。作業(yè)二1、查找資料確定自己的手機(jī)的CPU型號,是哪個廠家生產(chǎn)作業(yè)二作業(yè)二評分標(biāo)準(zhǔn):1、型號、廠家、體系結(jié)構(gòu)版本各10分,共30分2、特別的技術(shù)30分3、性能指標(biāo)25分4、格式及排版10分5、作業(yè)命名規(guī)范5分其中2點(diǎn),你的CPU中包含的特別的技術(shù)要有對應(yīng)的解釋,如Thumb、

NEON、

Jazelle、ARMTrustZone?等。作業(yè)二作業(yè)二評分標(biāo)準(zhǔn):---ARMFamilyARM7?FamilyARM9?FamilyARM10?FamilyARM11?Family150DMIPS300DMIPS500DMIPS1000DMIPSARMCortex?FamilyARM720TARM1136JARM1176JZARM1026EARM920T/ARM922TARM926EJCortexAApplicationProcessorARM7TDMIARM1156T2ARM1026EARM946ECortexREmbeddedRTControllerARM7TDMIARM966EARM968ECortexMMicro-controllerARMArchitecture---ARMFamilyARM7?FamilyARM9已廣泛應(yīng)用的ARM處理器ARM7世界上最為廣泛使用的CPU之一<100MHzARM9100-300MHz已廣泛應(yīng)用的ARM處理器ARM7ARM11芯片ARM11300-700+MHzSIMD指令擴(kuò)展支持更豐富的多媒體應(yīng)用40多家授權(quán)芯片公司FOMAN902iFirstARM11basedphoneOMAP2420i.MX31/i.MX31LARM11芯片ARM11FOMAN902iOMAP242高性能的ARM嵌入式處理器處理器提供超過2DMIPS/MHZ的性能運(yùn)行于1GHz頻率(90nmor65nm制造工藝)功耗小于300mWARMCortexA8ApplicationProcessor高性能的ARM嵌入式處理器處理器提供超過2DMIPS/MHCortex系列處理器(命名及)對比ARMCortexA8ApplicationProcessorCortex系列處理器(命名及)對比ARMCortexACortex-M3實(shí)現(xiàn)$1

ARM芯片ARMCortexArchitectureThumb-2ISA3StagePipeline1.22DMIPS/MHz–30%overARM7TDMI33Kgates–30%smallerthanARM7TDMILuminaryMicro的Stellaris系列MCU產(chǎn)品售價僅1美元ARMCortex-M3微控制器內(nèi)核,專門針對MCU應(yīng)用領(lǐng)域而設(shè)計,突出低成本、低功耗和高效率。Cortex-M3實(shí)現(xiàn)$1ARM芯片ARMCorte生產(chǎn)ARM處理器的主要廠家TI(德州儀器)Omap3430Cortex-A8核600MHz(諾基亞N96)Omap3530Cortex-A8核600MHzARM+DSP雙核Samsung(三星)S5PC100Cortex-A8核600MHz(iPhone3GS和M9都應(yīng)用此芯片)S5PC110/S5PV210Cortex-A8核1GHZFreescale(飛思卡爾)i.MX512/i.MX513/i.MX515Cortex-A8核600MHz~1GHz(在多款上網(wǎng)本中得到應(yīng)用)生產(chǎn)ARM處理器的主要廠家TI(德州儀器)生產(chǎn)ARM處理器的主要廠家Marvell(馬維爾)PXA930800MHzCortex-A8核ARMADA500/600/1000系列SheevaPJ4核心1GHz~1.2GHz(支持ARMv7指令集,架構(gòu)異同)Qualcomm(高通)QSD8650A/QSD8672(Snapdragon系列)1.3G~1.5Gscorpion核心(支持ARMv7指令,架構(gòu)異同)驍龍400系列(

Cortex-A7

)MSM8928-紅米NOTE4GNvidia(英偉達(dá))TegraARM11核700MHzTegra2(下一代產(chǎn)品)CortexA8(或A9)核MTK(聯(lián)發(fā)科MediaTek)MTK

MT6592八核,Cortex-A71.4-2GHZ紅米NOTE生產(chǎn)ARM處理器的主要廠家Marvell(馬維爾)主要內(nèi)容1ARMCPUISA的發(fā)展歷史2典型ARMCPUCore體系結(jié)構(gòu)

3ARM編程模型主要內(nèi)容1ARMCPUISA的發(fā)展歷史2.2典型ARMCPU體系結(jié)構(gòu)——結(jié)構(gòu)特征ARM內(nèi)核采用RISC體系結(jié)構(gòu)。ARM體系結(jié)構(gòu)的主要特征如下:(1)大量的寄存器,并可以用于多種用途。(2)采用Load/Store體系結(jié)構(gòu)。(3)每條指令都條件執(zhí)行。(4)采用多寄存器的Load/Store指令。(5)單周期指令內(nèi)同時完成移位操作和ALU。(6)通過協(xié)處理器指令集來擴(kuò)展ARM指令集。(7)體系支持Thumb指令集2.2典型ARMCPU體系結(jié)構(gòu)——結(jié)構(gòu)特征ARM內(nèi)核采用2.2典型的ARMCPUCore——ARM7TDMI結(jié)構(gòu)2.2典型的ARMCPUCore——ARM7TDMI結(jié)構(gòu)ARM7TDMIThumb架構(gòu)擴(kuò)展,提供兩個獨(dú)立的指令集:ARM指令,均為32位Thumb指令,均為16位兩種運(yùn)行狀態(tài),用來選擇哪個指令集被執(zhí)行內(nèi)核具有Debug擴(kuò)展結(jié)構(gòu)增強(qiáng)乘法器(32x8)支持64位結(jié)果EmbeddedICE邏輯3級流水線馮·諾依曼架構(gòu)CPI(CyclePerInstruction)約為1.9ARM7TDMIThumb架構(gòu)擴(kuò)展,提供兩個獨(dú)立的指令集乘法器指令解碼地址自增器nRESETnMREQSEQABORTnIRQnFIQnRWMAS[1:0]LOCKnCPICPACPBnWAITMCLKnOPCBIGENDISYNCnTRANSnM[4:0]D[31:0]桶移位器32位ALUDBE寫數(shù)據(jù)寄存器讀數(shù)據(jù)寄存器地址寄存器寄存器BankA[31:0]ABE及控制邏輯PCUpdate解碼站指令解壓縮IncrementerPCABusBBusALUBusARM7TDMICore的結(jié)構(gòu)乘法器指令地址nRESETnMREQSEQABORTnIRQARM7TDMI引腳邏輯圖ARM7TDMI引腳邏輯圖ARM7TDMI指令流水線為增加處理器指令流的速度,ARM7系列使用3級流水線。允許多個操作同時處理,而非順序執(zhí)行。

PC指向正被取指的指令,而非正在執(zhí)行的指令。FetchDecodeExecute從存儲器中讀取指令解碼指令中用到的寄存器寄存器讀(從寄存器Bank)移位及ALU操作寄存器寫(到寄存器Bank)PC PCPC-4 PC-2PC-8 PC-4ARM ThumbARM7TDMI指令流水線為增加處理器指令流的速度,ARM7ARM9TDMI指令流水線InstructionFetchShift+ALUMemoryAccessRegWriteRegReadRegDecodeFETCHDECODEEXECUTEMEMORYWRITEARM9TDMIARMorThumb

InstDecodeRegSelectRegReadShiftALURegWriteThumb?ARM

decompressARMdecodeInstructionFetchFETCHDECODEEXECUTEARM7TDMIARM9TDMI指令流水線InstructionShift理想的3級流水線(ARM7TDMI:無訪存操作)理想的3級流水線(ARM7TDMI:無訪存操作)ARM的參有LDR指令流水線ARM的參有LDR指令流水線Cortex-A8的指令流水線(13級)Cortex-A8的指令流水線(13級)本節(jié)重點(diǎn)1、ARM架構(gòu)發(fā)展史

2

3ARM處理器特點(diǎn)ARMISA的版本情況,ISA命名規(guī)則ARM處理器命名規(guī)則:ARM7TDMI1

4ARM處理器分類:M、R、A本節(jié)重點(diǎn)1、ARM架構(gòu)發(fā)展史23ARM處理器特點(diǎn)AR本節(jié)重點(diǎn)2、

ARM典型CPU

2ARM7的結(jié)構(gòu)ARM7的三級流水線1本節(jié)重點(diǎn)2、ARM典型CPU2ARM7的結(jié)構(gòu)ARM7主要內(nèi)容1ARMCPUISA的發(fā)展歷史2典型ARMCPUCore體系結(jié)構(gòu)3ARM編程模型

主要內(nèi)容1ARMCPUISA的發(fā)展歷史2.3.1數(shù)據(jù)寬度(類型)數(shù)據(jù)類型

字節(jié)型數(shù)據(jù)(Byte):數(shù)據(jù)寬度為8bits

半字?jǐn)?shù)據(jù)類型(HalfWord):數(shù)據(jù)寬度為16bits,存取式必須以2字節(jié)對齊的方式

字?jǐn)?shù)據(jù)類型(Word):數(shù)據(jù)寬度為32bits,存取式必須以4字節(jié)對齊的方式字節(jié)半字字2.3.1數(shù)據(jù)寬度(類型)數(shù)據(jù)類型字節(jié)半字字2.3.2工作狀態(tài)和工作模式——工作狀態(tài)處理器有兩種工作狀態(tài):ARM:32位

溫馨提示

  • 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

提交評論