




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
信息與通信嵌入式系統(tǒng)Chapter嵌入式硬件系統(tǒng)基礎(chǔ)第1頁/共199頁第二章
嵌入式硬件系統(tǒng)基礎(chǔ)第2頁/共199頁主要內(nèi)容嵌入式硬件系統(tǒng)基本組成嵌入式微處理器嵌入式系統(tǒng)總線嵌入式存儲系統(tǒng)第3頁/共199頁第一節(jié)
嵌入式硬件系統(tǒng)基本組成第4頁/共199頁
嵌入式系統(tǒng)的硬件是以包含嵌入式微處理器的SoC為核心,主要由SoC、總線、存儲器、輸入/輸出接口和設(shè)備組成。嵌入式微處理器為核心的SoC總線存儲器輸入/輸出接口和設(shè)備
第5頁/共199頁嵌入式微處理器每個(gè)嵌入式系統(tǒng)至少包含一個(gè)嵌入式微處理器嵌入式微處理器體系結(jié)構(gòu)可采用馮?諾依曼(VonNeumann)結(jié)構(gòu)或哈佛(Harvard)結(jié)構(gòu)地址數(shù)據(jù)主存儲器MOVr8,#8CPUPC指令程序存儲器CPUPC地址數(shù)據(jù)存儲器MOVr8,#8地址數(shù)據(jù)馮?諾依曼結(jié)構(gòu)哈佛結(jié)構(gòu)指令和數(shù)據(jù)存放在同一存儲空間中,統(tǒng)一編址指令和數(shù)據(jù)通過同一總線訪問程序和數(shù)據(jù)存儲在不同的存儲空間中兩條總線(程序總線和數(shù)據(jù)總線),數(shù)據(jù)的吞吐率提高了一倍第6頁/共199頁嵌入式微處理器傳統(tǒng)的微處理器采用的馮·諾依曼結(jié)構(gòu)將指令和數(shù)據(jù)存放在同一存儲空間中,統(tǒng)一編址,指令和數(shù)據(jù)通過同一總線訪問。哈佛結(jié)構(gòu)則是不同于馮·諾依曼結(jié)構(gòu)的一種并行體系結(jié)構(gòu),其主要特點(diǎn)是程序和數(shù)據(jù)存儲在不同的存儲空間中,即程序存儲器和數(shù)據(jù)存儲器是兩個(gè)相互獨(dú)立的存儲器,每個(gè)存儲器獨(dú)立編制、獨(dú)立訪問。與之相對應(yīng)的是系統(tǒng)中設(shè)置的兩條總線(程序總線和數(shù)據(jù)總線),從而使數(shù)據(jù)的吞吐率提高了一倍。第7頁/共199頁嵌入式微處理器嵌入式微處理器的指令系統(tǒng)可采用精簡指令集系統(tǒng)RISC(ReducedInstructionSetComputer)或復(fù)雜指令集系統(tǒng)CISC(ComplexInstructionSetComputer)
CISCRISC價(jià)格由硬件完成部分軟件功能,硬件復(fù)雜性增加,芯片成本高由軟件完成部分硬件功能,軟件復(fù)雜性增加,芯片成本低性能減少代碼尺寸,增加指令的執(zhí)行周期數(shù)使用流水線降低指令的執(zhí)行周期數(shù),增加代碼尺寸指令集大量的混雜型指令集,有簡單快速的指令,也有復(fù)雜的多周期指令,符合HLL(highlevellanguage)簡單的單周期指令,在匯編指令方面有相應(yīng)的CISC微代碼指令高級語言支持硬件完成軟件完成尋址模式復(fù)雜的尋址模式,支持內(nèi)存到內(nèi)存尋址簡單的尋址模式,僅允許LOAD和STORE指令存取內(nèi)存,其它所有的操作都基于寄存器到寄存器控制單元微碼直接執(zhí)行寄存器數(shù)目寄存器較少寄存器較多第8頁/共199頁嵌入式微處理器嵌入式微處理器有許多不同的體系,即使在同一體系中也可能具有不同的時(shí)鐘速度和總線數(shù)據(jù)寬度、集成不同的外部接口和設(shè)備。據(jù)不完全統(tǒng)計(jì),目前全世界嵌入式微處理器的品種總量已經(jīng)超過千種,有幾十種嵌入式微處理器體系,主流的體系有ARM、MIPS、PowerPC、SH、X86等。第9頁/共199頁總線嵌入式系統(tǒng)的總線可分為:片內(nèi)總線:與嵌入式微處理器集成在一起,如:AMBA、AVALON、OCP、WISHBONE等片外并行總線:如:PCI、ISA等片外串行總線:UART、SPI、I2C、USB等片內(nèi)總線的選擇取決于CPUCore片外總線的選擇取決于應(yīng)用第10頁/共199頁存儲器嵌入式系統(tǒng)的存儲器包括主存和外存。大多數(shù)嵌入式系統(tǒng)的代碼和數(shù)據(jù)都存儲在處理器可直接訪問的存儲空間即主存中。系統(tǒng)上電后在主存中的代碼直接運(yùn)行。主存儲器的特點(diǎn)是速度快,一般采用ROM、EPROM、NorFlash、SRAM、DRAM等存儲器件。第11頁/共199頁存儲器目前有些嵌入式系統(tǒng)除了主存外,還有外存。外存是處理器不能直接訪問的存儲器,用來存放各種信息,相對主存而言具有價(jià)格低、容量大的特點(diǎn)。在嵌入式系統(tǒng)中除部分采用硬盤外,大多數(shù)采用電子盤做外存,電子盤的主要種類有:NandFlashSD(SecureDigital)CompactFlashU盤SmartMediaMemoryStickMultiMediaCardDOC(DiskOnChip等第12頁/共199頁輸入/輸出接口和設(shè)備嵌入式系統(tǒng)的大多數(shù)輸入/輸出接口和部分設(shè)備已經(jīng)與嵌入式微處理器集成在一起。輸入/輸出接口和設(shè)備主要包括:中斷控制器、DMA、串行和并行接口定時(shí)器(Timers)、計(jì)數(shù)器(counters)、看門狗(watchdogtimers)、RTC、UARTs、PWM(Pulsewidthmodulator)AD/DA、顯示器、鍵盤和網(wǎng)絡(luò)等。
第13頁/共199頁第二節(jié)
嵌入式微處理器嵌入式微處理器的發(fā)展嵌入式微處理器的分類嵌入式微處理器的特點(diǎn)主流的嵌入式微處理器—— (ARM,MIPS,SH,PowerPC,x86)第14頁/共199頁
20世紀(jì)80年代中后期20世紀(jì)90年代初期20世紀(jì)90年代中后期21世紀(jì)初期制作工藝1-0.8m0.8-0.5m0.5–0.35m0.25-0.13m主頻<33MHz<100MHz<200MHz<600MHz晶體管個(gè)數(shù)>500K>2M>5M>22M位數(shù)4/8/16bit4/8/16/32bit4/8/16/32bit4/8/16/32/64b嵌入式微處理器的發(fā)展第15頁/共199頁嵌入式微處理器的分類嵌入式微處理器種類繁多,按位數(shù)可分為4位、8位、16位、32位和64位。按用途來分,嵌入式微處理器可分為嵌入式DSP和通用的嵌入式微處理器兩種:嵌入式DSP:專用于數(shù)字信號處理,采用哈佛結(jié)構(gòu)和一系列措施保證數(shù)字信號的處理速度,如對FFT(快速傅立葉變換)的專門優(yōu)化。通用的嵌入式微處理器:一般是集成了通用微處理器的核、總線、外圍接口和設(shè)備的SOC芯片,有些還將DSP作為協(xié)處理器集成。
第16頁/共199頁嵌入式微處理器的特點(diǎn)體系結(jié)構(gòu)指令集性能功耗和管理成本集成度基礎(chǔ)是通用微處理器與通用微處理器相比的區(qū)別:體積小、重量輕成本低、功耗低工作溫度寬抗電磁干擾、可靠性強(qiáng)第17頁/共199頁ExternalMemoryCPUAddressDataCacheBusInterfaceWriteBufferMMU/MPURRWWWW(R/W)
外設(shè)如USB、LCD
控制器等擴(kuò)展芯片內(nèi)核(core)處理器存儲器子系統(tǒng)SoC的片內(nèi)外設(shè)系統(tǒng)的片外設(shè)備處理器(Processor)芯片(SoC)系統(tǒng)(System)嵌入式微處理器的集成度符合嵌入式系統(tǒng)的低成本和低功耗需求第18頁/共199頁嵌入式微處理器的集成度嵌入式微處理器是面向應(yīng)用的,其片內(nèi)所包含的組件的數(shù)目和種類是由它的市場定位決定的。在最普通的情況下,嵌入式微處理器包括:片內(nèi)存儲器:部分嵌入式微處理器外部存儲器的控制器,外設(shè)接口(串口,并口)LCD控制器:面向終端類應(yīng)用的嵌入式微處理器中斷控制器,DMA控制器,協(xié)處理器定時(shí)器,A/D、D/A轉(zhuǎn)換器多媒體加速器:當(dāng)高級圖形功能需要時(shí)總線其他標(biāo)準(zhǔn)接口或外設(shè)返回第19頁/共199頁嵌入式微處理器的體系結(jié)構(gòu)算術(shù)格式(ArithmeticFormat)由于低成本和低功耗的限制,大多數(shù)的嵌入式微處理器使用定點(diǎn)運(yùn)算(fixed-pointarithmetic)當(dāng)嵌入式系統(tǒng)中需要使用浮點(diǎn)運(yùn)算時(shí),可采用軟件模擬的方式實(shí)現(xiàn)浮點(diǎn)運(yùn)算,只不過這樣要占用更多的處理器時(shí)間。
功能單元(FunctionalUnits)通常包括不止一個(gè)的功能單元,典型的是包含一個(gè)ALU、移位器和MAC,處理器通常用一條指令完成乘法操作。
流水線(Pipeline)通常采用單周期執(zhí)行指令,可能導(dǎo)致比較長的流水線
返回第20頁/共199頁嵌入式微處理器的指令集為滿足應(yīng)用領(lǐng)域的需要,嵌入式微處理器的指令集一般要針對特定領(lǐng)域的應(yīng)用進(jìn)行剪裁和擴(kuò)充。目前很多應(yīng)用系統(tǒng)需要類似于DSP的數(shù)字處理功能。這些指令主要有:乘加(MAC)操作:它在一個(gè)周期中執(zhí)行了一次乘法運(yùn)算和一次加法運(yùn)算。SIMD類操作:允許使用一條指令進(jìn)行多個(gè)并行數(shù)據(jù)流的計(jì)算。零開銷的循環(huán)指令:采用硬件方式減少了循環(huán)的開銷。僅使用兩條指令實(shí)現(xiàn)一個(gè)循環(huán),一條是循環(huán)的開始并提供循環(huán)次數(shù),另一條是循環(huán)體。多媒體加速指令:像素處理、多邊形、3D操作等指令。
返回第21頁/共199頁嵌入式微處理器的性能低端(低價(jià),低性能)一般低端嵌入式微處理器的性能最多達(dá)到50MIPS,應(yīng)用在對性能要求不高但對價(jià)格和功耗有嚴(yán)格要求的應(yīng)用系統(tǒng)中。
中檔,低功耗中檔的嵌入式微處理器可達(dá)到較好的性能(如150MIPS左右),采用增加時(shí)鐘頻率、加深流水深度、增加Cache及一些額外的功能塊來提高性能,并保持低功耗。
高端第22頁/共199頁嵌入式微處理器的性能高端嵌入式微處理器用于高強(qiáng)度計(jì)算的應(yīng)用,使用不同的方法來達(dá)到更高的并行度單指令執(zhí)行乘法操作:通過加入額外的功能單元和擴(kuò)展指令集,使許多操作能在一個(gè)單一的周期內(nèi)并行執(zhí)行。每個(gè)周期執(zhí)行多條指令:桌面和服務(wù)器的超標(biāo)量處理器都支持單周期多條指令執(zhí)行,在嵌入式領(lǐng)域通常使用VLIW(verylargeinstructionword)來實(shí)現(xiàn),這樣只需較少的硬件,總體價(jià)格會更低些。例如TI的TMS320C6201芯片,通過使用VLIW方法,能在每個(gè)周期同時(shí)執(zhí)行8條獨(dú)立的32位指令。使用多處理器:采用多處理器的方式滿足應(yīng)用系統(tǒng)的更高要求。一些嵌入式微處理器采用特殊的硬件支持多處理器。如TI的OMAP730包括了三個(gè)處理器核ARM9、ARM7、DSP。返回第23頁/共199頁嵌入式微處理器的功耗管理大多數(shù)嵌入式系統(tǒng)有功耗的限制(特別是電池供電的系統(tǒng)),它們不支持使用風(fēng)扇和其他冷卻設(shè)備。
降低工作電壓:1.8v、1.2v甚至更低,而且這個(gè)數(shù)值一直在下降。提供不同的時(shí)鐘頻率:通過軟件設(shè)置不同的時(shí)鐘分頻。關(guān)閉暫時(shí)不使用的功能塊:如果某功能塊在一個(gè)周期內(nèi)不使用,就可以被完全關(guān)閉,以節(jié)約能量。
第24頁/共199頁嵌入式微處理器的功耗管理提供功耗管理機(jī)制
運(yùn)行模式(RunningMode):處理器處于全速運(yùn)行狀態(tài)下。待命模式(StandbyMode):處理器不執(zhí)行指令,所有存儲的信息是可用的,處理器能在幾個(gè)周期內(nèi)返回運(yùn)行模式。時(shí)鐘關(guān)閉模式(clock-offmode):時(shí)鐘完全停止,要退出這個(gè)模式系統(tǒng)需要重新啟動。影響功耗的其他因素還有總線(特別是總線轉(zhuǎn)換器,可以采用特殊的技術(shù)使它的功耗最?。┖痛鎯ζ黝愋偷拇笮。ㄈ绻褂肈RAM,它需要不斷的刷新)。為了使功耗最小,總線和存儲器要保持在應(yīng)用系統(tǒng)可接受的最小規(guī)模。
返回第25頁/共199頁嵌入式微處理器的成本為降低價(jià)格,需要在嵌入式微處理器的設(shè)計(jì)中考慮不同的折衷方案。處理器的價(jià)格受如下因素影響:處理器的特點(diǎn):功能塊的數(shù)目、總線類型等。片上存儲器的大小。芯片的引腳數(shù)和封裝形式:如PQFP(PlasticQuadFlatPackage)通常比BGA(BallGridArrayPackage)便宜。芯片大?。╠iesize):取決于制造的工藝水平。代碼密度(codedensity):代碼存儲器的大小將影響價(jià)格,不同種類的處理器結(jié)構(gòu)(CISC/RISC/VLIW)有不同的代碼密度。第26頁/共199頁主流的嵌入式微處理器目前主流的嵌入式微處理器系列主要有:ARM系列MIPS系列PowerPC系列SuperH系列等。屬于這些系列的嵌入式微處理器產(chǎn)品很多,有上千種以上。第27頁/共199頁Units
(millions)Source:AndrewAllison,InsideTheNewComputerIndustry,January2001EmbeddedRISCProcessorShipments第28頁/共199頁32位浪潮的到來Source:SemicoResearchCorp.andSIA/WSTSTotalMCU,bySub-Category(excl.DSP)TotalEmbeddedControlMarketShipmentsbyType總共約26億個(gè)32位處理器付運(yùn),占總數(shù)96億的27%2005年ARM為17億個(gè),約占32位總量的70%左右第29頁/共199頁X86系列主要由AMD,Intel,NS,ST等公司提供,如:Am186/88、Elan520、嵌入式K6,386EX、STPC等。主要應(yīng)用在工業(yè)控制、通信等領(lǐng)域。國內(nèi)由于對X86體系比較熟悉,得到廣泛應(yīng)用,特別是嵌入式PC的應(yīng)用非常廣泛。第30頁/共199頁Intel?Atom?processorZ5xxbuiltonanew45-nanometerHi-klowpowermicro-architectureand45nmprocesstechnology—thefirstgenerationoflowpowerIA-32micro-architecturespeciallydesignedforthenewclassofMobileInternetDevices(MIDs).IntheIntel?Centrino?Atom?processortechnologyplatform,theIntel?Atom?processorZ5xxseriessupportstheIntel?SystemControllerHub(IntelSCH),asingle-chipcomponentdesignforlow-power.Thisdocumentcontainselectrical,mechanicalandthermalspecificationsforthefollowingprocessors:Intel?Atom?processorZ540,Z530,Z520,Z510,andZ500第31頁/共199頁Intel?Atom?processorZ5xxbuiltonanew45-nanometerHi-klowpowermicro-architectureand45nmprocesstechnology—thefirstgenerationoflowpowerIA-32micro-architecturespeciallydesignedforthenewclassofMobileInternetDevices(MIDs).IntheIntel?Centrino?Atom?processortechnologyplatform,theIntel?Atom?processorZ5xxseriessupportstheIntel?SystemControllerHub(IntelSCH),asingle-chipcomponentdesignforlow-power.Thisdocumentcontainselectrical,mechanicalandthermalspecificationsforthefollowingprocessors:Intel?Atom?processorZ540,Z530,Z520,Z510,andZ500第32頁/共199頁Intel?Atom?processorZ5xxbuiltonanew45-nanometerHi-klowpowermicro-architectureand45nmprocesstechnology—thefirstgenerationoflowpowerIA-32micro-architecturespeciallydesignedforthenewclassofMobileInternetDevices(MIDs).
IntheIntel?Centrino?Atom?processortechnologyplatform,theIntel?Atom?processorZ5xxseriessupportstheIntel?SystemControllerHub(IntelSCH),asingle-chipcomponentdesignforlow-power.Thisdocumentcontainselectrical,mechanicalandthermalspecificationsforthefollowingprocessors:Intel?Atom?processorZ540,Z530,Z520,Z510,andZ500第33頁/共199頁Intel?Atom?processorZ5xxNewsingle-coreprocessorformobiledevicesofferingenhancedperformanceOndie,primary32-kBinstructionscacheand24-kBwrite-backdatacache100-MHzand133-MHzSource-Synchronousfrontsidebus(FSB)100MHz:Intel?Atom?processorZ500133MHz:Intel?Atom?processorZ540,Z530,Z520,andZ510SupportsHyper-ThreadingTechnology2-threadsOndie512-kB,8-wayL2cacheSupportforIA32-bitarchitectureIntel?VirtualizationTechnology(Intel?VT)Intel?StreamingSIMDExtensions2and3(Intel?SSE2andIntel?SSE3)andSupplementalStreamingSIMDExtensions3(SSSE3)support第34頁/共199頁MPC/PPC系列Motorola推出的MPC系列,如MPC8XX。IBM推出PPC系列,如PPC4XX。主要應(yīng)用在通信、消費(fèi)電子及工業(yè)控制、軍用裝備等領(lǐng)域。第35頁/共199頁MPC/PPC系列IBMPowerPC
集成10/100Mbps以太網(wǎng)控制器、串行和并行端口、內(nèi)存控制器以及其它外設(shè)的高性能嵌入式處理器。MotorolaMPC
高度綜合的SOC設(shè)備,它結(jié)合了PPC微處理器核心的功能、通信處理器和單硅成分內(nèi)的顯示控制器。這個(gè)設(shè)備可以在大量的電子應(yīng)用中使用,特別是在低能源、便攜式、圖象捕捉和個(gè)人通信設(shè)備。第36頁/共199頁技術(shù)0.25微米CMoSSA-12E282Dhrystone2.1MIPS@200MHz375Dhrystone2.1MIPS@266MHz200/100/66/50MHz266/133/66/66MHz晶體數(shù)量480萬電源消耗1.1瓦信號I/O300溫度范圍-40到80度電源供應(yīng)2.5V(邏輯電路),3.3V(I/O),支持5VI/Os456-Ball,EnhancedPBGA(35mmx35mm)性能頻率(CPU/SDRAM/PCI/EBC)封裝PowerPC405GP技術(shù)規(guī)格*Dhrystone是一個(gè)綜合性的基準(zhǔn)測試程序,它是為了測試編譯器和CPU處理整數(shù)指令和控制功能的有效性,人為地選擇一些“典型指令綜合起來形成的測試程序。
第37頁/共199頁ARM系列ARM(AdvancedRISCMachine)公司是一家專門從事芯片IP設(shè)計(jì)與授權(quán)業(yè)務(wù)的英國公司,其產(chǎn)品有ARM內(nèi)核以及各類外圍接口。ARM內(nèi)核是一種32位RISC微處理器,具有功耗低、性價(jià)比高、代碼密度高等三大特色。目前,90%的移動電話、大量的游戲機(jī)、手持PC和機(jī)頂盒等都已采用了ARM處理器,許多一流的芯片廠商都是ARM的授權(quán)用戶(Licensee),如Intel、Samsung、TI、Motorola、ST等,ARM已成為業(yè)界公認(rèn)的嵌入式微處理器標(biāo)準(zhǔn)。第38頁/共199頁ARM處理器的分類結(jié)構(gòu)體系版本(Architecture)ARMv4TARMv5TEARMv6ARMCortex(v7)ProcessorFamilyARM7ARM9ARM10ARM11ARMCortex按應(yīng)用特征分類應(yīng)用處理器
ApplicationProcessor實(shí)時(shí)控制處理器
Real-timeController微控制器
Micro-controller特征:MMU,Cache最快頻率、最高性能、合理功耗特征:MPU,Cache實(shí)時(shí)響應(yīng)、合理性能、較低功耗特征:nosub-memorysystem一般性能、最低成本、極低功耗第39頁/共199頁v4v5TESA110v4TARM720TARM7TDMI-SARM920TARM940TARM922TARM966E-SARM946E-SARM1020Ev5TEJ/Jazellev6/JazelleARM7EJ-SARM926EJ-SARM1026EJ-SARM11Micro-ArchitectureRoadmapofARMV4/V5/V6
基于32-bit地址空間的32-bit指令集
增加16-bitThumb
指令集,使得編譯器能產(chǎn)生緊湊代碼(內(nèi)存能節(jié)省到35%以上)Thumb在處理器中仍然要擴(kuò)展為標(biāo)準(zhǔn)的32位ARM指令來運(yùn)行。采用16位Thumb指令集最大的好處就是可以獲得更高的代碼密度和降低功耗。1999年推出增強(qiáng)了Thumb體系:以更好地平衡代碼空間和性能并在ARMISA上擴(kuò)展了增強(qiáng)的DSP
指令集:‘E’擴(kuò)展表示在通用的CPU上提供DSP能力。2000年推出,增加了Jazelle擴(kuò)展以支持Java加速技術(shù)。Jazelle技術(shù)比僅僅基于軟件的JVM性能提高近8倍的性能減少了80%的功耗。2001年推出,它在許多方面做了改進(jìn)如內(nèi)存系統(tǒng)、異常處理和較好地支持多處理器。SIMD擴(kuò)展使得廣大的軟件應(yīng)用如Video和Audiocodec的性能提高了4倍。Thumb-2和TrustZone技術(shù)也用于ARMv6中。第40頁/共199頁ARMv7(Cortex)ARMv7定義了3種不同的處理器配置(processorprofiles):
ProfileA是面向復(fù)雜、基于虛擬內(nèi)存的OS和應(yīng)用的ProfileR是針對實(shí)時(shí)系統(tǒng)的ProfileM是針對低成本應(yīng)用的優(yōu)化的微控制器的。所有ARMv7profiles實(shí)現(xiàn)Thumb-2技術(shù),同時(shí)還包括了NEON?技術(shù)的擴(kuò)展提高DSP和多媒體處理吞吐量400%
,并提供浮點(diǎn)支持以滿足下一代3D圖形和游戲以及傳統(tǒng)嵌入式控制應(yīng)用的需要。第41頁/共199頁ARMFamilyARM7?FamilyARM9?FamilyARM10?FamilyARM11?Family150DMIPS300DMIPS500DMIPS1000DMIPSARMCortex?FamilyARM720TARM1136JARM1176JZARM1026EARM920T/ARM922TARM926EJCortexAApplicationProcessorARM7TDMIARM1156T2ARM1026EARM946ECortexREmbeddedRTControllerARM7TDMIARM966EARM968ECortexMMicro-controllerARMArchitecture第42頁/共199頁當(dāng)前的主流ARM處理器ARM7世界上最為廣泛使用的CPU之一<100MHzARM9100-300MHz1.7BARMPowredshipmentinyearof2005,31%isARM9based.第43頁/共199頁ARM11芯片已經(jīng)面世ARM11300-700+MHzSIMD指令擴(kuò)展支持更豐富的多媒體應(yīng)用40家授權(quán)芯片公司,一些已開始量產(chǎn)FOMAN902iFirstARM11basedphoneOMAP2420i.MX31/i.MX31L第44頁/共199頁目前最快的嵌入式處理器最快的處理器提供超過2000DMIPS的性能運(yùn)行于1GHz頻率(90nmor65nm制造工藝)功耗小于300mWARMCortexA8ApplicationProcessor第45頁/共199頁Cortex-M3實(shí)現(xiàn)$1
ARM芯片ARMCortexArchitectureThumb-2ISA3StagePipeline1.22DMIPS/MHz–30%overARM7TDMI33Kgates–30%smallerthanARM7TDMILuminaryMicro的Stellaris系列MCU產(chǎn)品售價(jià)僅1美元ARMCortex-M3微控制器內(nèi)核,專門針對MCU應(yīng)用領(lǐng)域而設(shè)計(jì),突出低成本、低功耗和高效率。第46頁/共199頁領(lǐng)先嵌入式處理器技術(shù)發(fā)展討論多處理器技術(shù)單處理器技術(shù)的性能提升終有一天會遭遇瓶頸對嵌入式系統(tǒng)而言,尤其要考慮付出的代價(jià)把任務(wù)進(jìn)行并行分解是理想的選擇ARMMPcore可以集成1-4個(gè)ARM11處理器關(guān)鍵是要提供給軟件開發(fā)者一個(gè)友好的編程界面64位處理器?哪兒是系統(tǒng)性能瓶頸?是需要64位地址還是64位數(shù)據(jù)?嵌入式系統(tǒng)比PC有更好的條件來解決系統(tǒng)性能和帶寬問題PC系統(tǒng)在主板上,擴(kuò)展系統(tǒng)帶寬需要擴(kuò)大每個(gè)組件的接口帶寬SoC只需擴(kuò)展片內(nèi)總線,非常容易實(shí)現(xiàn)AMBA支持8-1024位總線寬度許多SoC設(shè)計(jì)以及ARM處理器內(nèi)部已經(jīng)使用64位數(shù)據(jù)總線第47頁/共199頁系列相應(yīng)產(chǎn)品性能特點(diǎn)ARM7系列ARM7TDMI,ARM7TDMI-S,ARM720T,ARM7EJ三級流水性能:0.9MIPS/MHz,可達(dá)到130MIPs(Dhrystone2.1)
ARM9系列ARM920T,ARM922T
五級流水,性能:1.1MIPS/MHz,可達(dá)300MIPS(Dhrystone2.1),單32-bitAMBAbus接口,支持MMUARM9E系列ARM926EJ-S,RM946E-S,ARM966E-S,ARM968E-S,ARM996HS
五級流水,支持DSP指令。性能:1.1MIPS/MHz,可達(dá)300MIPS(Dhrystone2.1),高性能AHB,軟核(softIP)
ARM10系列ARM1020E,ARM1022EARM1026EJ-S
六級流水支持分支預(yù)測(branchprediction),支持DSP指令。性能:1.35MIPS/MHz,可達(dá)430+Dhrystone2.1
MIPS,可選支持高性能浮點(diǎn)操作,雙64位總線接口,內(nèi)部64位數(shù)據(jù)通路Dhrystone是一個(gè)綜合性的基準(zhǔn)測試程序,它是為了測試編譯器和CPU處理整數(shù)指令和控制功能的有效性,人為地選擇一些典型指令綜合起來形成的測試程序。第48頁/共199頁系列相應(yīng)產(chǎn)品性能特點(diǎn)ARM11系列ARM11MPCore,ARM1136J(F)-S,ARM1156T2(F)-S,ARM1176JZ(F)-S
八級流水線(九級ARM1156T2(F)-S):獨(dú)立的load-store和arithmetic流水線,支持分支預(yù)測和返回棧(ReturnStack)。強(qiáng)大的ARMv6指令集:支持DSP,SIMD(SingleInstructionMultipleData)擴(kuò)展,支持ARMTrustZone、Thumb-2核心技術(shù)。740Dhrystone2.1MIPS,低功耗0.6mW/MHz(0.13μm,1.2V)Cortex系列Cortex-A8,Cortex-M3,Cortex-R4Cortex-A系列:面向用于復(fù)雜OS和應(yīng)用的應(yīng)用處理器(applicationsprocessors),支持ARM,ThumbandThumb-2指令集。Cortex-R系列:面向嵌入式實(shí)時(shí)領(lǐng)域的嵌入式處理器,支持ARM,Thumb,和Thumb-2指令集。Cortex-M系列:面向深嵌入式價(jià)格敏感的嵌入式處理器,只支持Thumb-2指令集SecurCore系列SecurCoreSC100,SecurCoreSC200用于SmartCard和SecureIC的32-bit解決方案。支持ARM和Thumb
指令集,軟核。具有安全特征和低成本安全存儲保護(hù)單元
第49頁/共199頁Onchip
RAM基于ARM的系統(tǒng)舉例ARM
ProcessorcoreAMBAAHBExternal
MemoryInterfaceAPB
BridgeAMBAAPBInterrupt
ControllerARM
PrimecellPeripheralsGPIODMA
PortClocksand
ResetControllerARM核深度嵌入于SoC中通過JTAG口進(jìn)行外部調(diào)試設(shè)計(jì)既有外部內(nèi)存又有內(nèi)部內(nèi)存支持不同的內(nèi)存寬度、速度和大小包含一個(gè)中斷控制器內(nèi)核只支持兩種中斷包含Primecell外設(shè)需要從ARM公司取得授權(quán)用AMBA相連的器件(AdvancedMicrocontrollerBusArchitecture)DEBUGnIRQnFIQFLASHSDRAMARMbasedSoC第50頁/共199頁高速緩存內(nèi)核術(shù)語MPU–
內(nèi)存保護(hù)單元控制內(nèi)存訪問權(quán)限控制內(nèi)存區(qū)域的屬性(cacheable,bufferable)MMU–
內(nèi)存管理單元具有MPU的所有特性另外提供虛擬地址到物理地址的轉(zhuǎn)換Cache(高速緩存)快速的本地內(nèi)存存放最近被訪問過的內(nèi)存的副本TCM–
緊耦合內(nèi)存快速的本地內(nèi)存特定的地址范圍Writebuffer(寫緩存區(qū))減少了寫數(shù)據(jù)到外部內(nèi)存的次數(shù)ARM9EIntegerCoreCacheMemorySystemTCMWritebufferMMU
orMPUBUSInterfaceControl
CoprocessorARM926EJ-ScoreFastcoreclockdomainSystemonChipSlowerbusclockdomain第51頁/共199頁ARM7TDMIThumb架構(gòu)擴(kuò)展,提供兩個(gè)獨(dú)立的指令集:ARM指令,均為32位Thumb指令,均為16位兩種運(yùn)行狀態(tài),用來選擇哪個(gè)指令集被執(zhí)行內(nèi)核具有Debug擴(kuò)展結(jié)構(gòu)增強(qiáng)乘法器(32x8)支持64位結(jié)果EmbeddedICE邏輯3級流水線馮·諾依曼架構(gòu)CPI(CyclePerInstruction)約為1.9第52頁/共199頁ARM7TDMIARM7TDMI內(nèi)核MCLKnIRQnFIQnRESETBUSENBIGENDISYNCnWAITVDDVSSAPEDBE協(xié)處理器接口存儲器管理存儲器接口ABORTnOPCCPBCPAnCPInTRANSnM[4:0]MAS[1:0]nRWnMREQLOCKSEQnENOUTA[31:0]DOUT[31:0]DIN[31:0]D[31:0]電源總線控制時(shí)鐘配置中斷內(nèi)核信號第53頁/共199頁ARM7TDMIARM7TDMI內(nèi)核TAP
控制器JTAG接口數(shù)據(jù)總線控制信號地址總線BUSSplitterEmbeddedICE邏輯方框圖第54頁/共199頁乘法器指令解碼地址自增器nRESETnMREQSEQABORTnIRQnFIQnRWMAS[1:0]LOCKnCPICPACPBnWAITMCLKnOPCBIGENDISYNCnTRANSnM[4:0]D[31:0]桶移位器32位ALUDBE寫數(shù)據(jù)寄存器讀數(shù)據(jù)寄存器地址寄存器寄存器BankA[31:0]ABE及控制邏輯PCUpdate解碼站指令解壓縮IncrementerPCABusBBusALUBusARM7TDMI內(nèi)核第55頁/共199頁ARM7TDMI指令流水線為增加處理器指令流的速度,ARM7系列使用3級流水線。允許多個(gè)操作同時(shí)處理,而非順序執(zhí)行。
PC指向正被取指的指令,而非正在執(zhí)行的指令。FetchDecodeExecute從存儲器中讀取指令解碼指令中用到的寄存器寄存器讀(從寄存器Bank)移位及ALU操作寄存器寫(到寄存器Bank)PC PCPC-4 PC-2PC-8 PC-4ARM Thumb第56頁/共199頁ARM7TDMI指令流水線
操作周期 1 2 3 4 56ADDSUBMOVANDORREORCMPRSBFetchDecode。FetchExecuteDecodeFetchExecuteDecodeFetchExecuteDecodeFetchFetchExecuteDecodeExecuteDecodeFetchExecuteDecodeFetch最佳流水線該例中用6個(gè)時(shí)鐘周期執(zhí)行了6條指令
所有的操作都在寄存器中(單周期執(zhí)行)
指令周期數(shù)(CPI)=1第57頁/共199頁ARM7TDMIARM7TDMI內(nèi)核地址地址數(shù)據(jù)讀AMBA
接口寫緩沖MMU數(shù)據(jù)寫數(shù)據(jù)ARM7xxT控制邏輯CacheAMBA總線接口JTAG和非AMBA信號CP15帶Cache的ARM7TDMIARM710T8K統(tǒng)一的cache完整的內(nèi)存管理單元(MMU),支持虛擬地址和存儲器保護(hù)寫緩沖ARM720T同ARM710T,但支持WinCEARM740T8K統(tǒng)一的cache內(nèi)存管理單元寫緩沖第58頁/共199頁WriteBuffer:當(dāng)數(shù)據(jù)寫到WriteBuffer后不需要CPU的任何干預(yù)而由WriteBuffer控制邏輯自動的將數(shù)據(jù)寫到最終的地方;Cache的回寫則需要CPU的干預(yù)。WriteBuffer較小,通常只有幾十個(gè)字節(jié)。ReadBuffer:當(dāng)讀數(shù)據(jù)時(shí)ReadBuffer自動多讀取一些字節(jié),但是不占用CPU的總線時(shí)間,所以能加快讀數(shù)據(jù)的速度;當(dāng)使用Cache時(shí)如果要從內(nèi)存中讀取數(shù)據(jù)則每個(gè)數(shù)據(jù)都會占用CPU的時(shí)間,這是與ReadBuffer的最大不同點(diǎn)。ReadBuffer較小,通常只有幾十個(gè)字節(jié)。Cache與Buffer的區(qū)別第59頁/共199頁ARM9TDMIHarvard架構(gòu)增加了可用的存儲器寬度指令存儲器接口數(shù)據(jù)存儲器接口可以實(shí)現(xiàn)對指令和數(shù)據(jù)存儲器的同時(shí)訪問5級流水線實(shí)現(xiàn)了以下改進(jìn):改進(jìn)CPI到~1.5提高了最大時(shí)鐘頻率第60頁/共199頁ARM9TDMIInstructionFetchShift+ALUMemoryAccessRegWriteRegReadRegDecodeFETCHDECODEEXECUTEMEMORYWRITEARM9TDMIARMorThumb
InstDecodeRegSelectRegReadShiftALURegWriteThumb?ARM
decompressARMdecodeInstructionFetchFETCHDECODEEXECUTEARM7TDMI流水線第61頁/共199頁ARM9TDMIARM9TDMIDCacheICacheMMUGLUE外部存儲器ARM940T2x4KcachesMPU寫緩沖ARM9xxTARM920T2x16KcachesMMU支持虛擬地址和內(nèi)存保護(hù)寫緩沖帶Cache的ARM9TDMI第62頁/共199頁ARM9E-S系列概述ARM9E基于ARM9TDMI內(nèi)核,有以下擴(kuò)展和增強(qiáng)單周期32x16乘法器EmbeddedICE邏輯RT改進(jìn)的ARM/Thumb交互操作新的32x16和16x16乘法指令新的計(jì)數(shù)到零指令新的飽和算術(shù)指令A(yù)RM946E-SARM9E-S內(nèi)核指令和數(shù)據(jù)cache,大小可選擇指令和數(shù)據(jù)RAM,大小可選擇保護(hù)單元AHB總線接口ARM966E-S與ARM946E-S相似,但無cache第63頁/共199頁ARM926EJ-S系列概述Jazelle狀態(tài)允許直接執(zhí)行Java8位碼ARM926EJ-SARM9E-S內(nèi)核可配置的cache和TCM內(nèi)存管理單元雙重
32位AHB總線接口(多層)第64頁/共199頁ARM10E系列概述v5TE架構(gòu)CPI1.36級流水線靜態(tài)分支預(yù)測32kB指令cache和32kB數(shù)據(jù)cache支持“Hitundermiss”非阻塞的執(zhí)行單元每周期64位的LDM/STM操作EmbeddedICE邏輯-RT-II支持新的VFPv1結(jié)構(gòu)同ARM1020E,除了cache大小為16kB對SUDL(singleuserdesignlicense)有效ARM1020EARM1022E第65頁/共199頁ARM9vsARM10流水線的對比第66頁/共199頁Intel?StrongARM概述ARMV4架構(gòu)(無Thumb支持)5級流水線,降低跳轉(zhuǎn)損耗-stagepipeline,reducedbranchpenalty改進(jìn)的乘法器(典型地比ARM9TDMI快2個(gè)周期)不支持Multi-ICE調(diào)試(JTAG限制在連通性測試)無外部協(xié)處理器接口SA-110:
16K指令和數(shù)據(jù)caches,8x16字節(jié)寫緩沖.SA-1100/1110:片上外設(shè),存儲器控制器更小的cache容量PID寄存器指令斷點(diǎn),通過CP15第67頁/共199頁Intel?XScale?概述V5TE兼容架構(gòu)7-8級流水線帶統(tǒng)計(jì)分支預(yù)測32k的數(shù)據(jù)和指令Cache,外加2k的數(shù)據(jù)Minicache8口寫緩沖,4口填充和追加緩沖完整的32位協(xié)處理器接口調(diào)試和性能監(jiān)控邏輯(通過CP14)乘-加模塊(作為CP0)可配置的內(nèi)核時(shí)鐘速度100-733MHz,來自33-66MHz輸入時(shí)鐘異步輸入總線時(shí)鐘可到100MHz(最大總線內(nèi)核時(shí)鐘的1/3)第68頁/共199頁ARM微處理器:編程模型數(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é)對齊的方式
第69頁/共199頁ARM微處理器:CPU模式(processormode)7種CPU模式CPU模式的轉(zhuǎn)變:軟件控制異常外部中斷第70頁/共199頁ARM微處理器:CPU模式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í)行非法操作時(shí)會觸發(fā)第71頁/共199頁ARM微處理器:處理器工作狀態(tài)(PROCESSOROPERATINGSTATES)處理器有兩種工作狀態(tài):ARM:32位,執(zhí)行字對準(zhǔn)的ARM指令Thumb:16位,執(zhí)行半字對準(zhǔn)的Thumb指令A(yù)RM和Thumb之間狀態(tài)的切換不影響處理器的模式或寄存器的內(nèi)容第72頁/共199頁ARM微處理器:處理器工作狀態(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)異常處理返回時(shí)自動轉(zhuǎn)換到Thumb狀態(tài)進(jìn)入ARM狀態(tài):執(zhí)行BX指令,并設(shè)置操作數(shù)寄存器的狀態(tài)(位[0])為0。進(jìn)入異常時(shí),將PC放入異常模式鏈接寄存器中,從異常向量地址開始執(zhí)行也可進(jìn)入ARM狀態(tài)第73頁/共199頁ARM微處理器:處理器工作狀態(tài)Thumb-2
:增加了混合模式能力定義了一個(gè)新的32-bit指令集能在傳統(tǒng)的16-bit指令運(yùn)行的Thumb狀態(tài)下同時(shí)運(yùn)行。這樣能在一個(gè)系統(tǒng)中更好地平衡ARM和Thumb代碼的能力,使系統(tǒng)能更好地利用ARM級別的性能和Thumb代碼的密度的優(yōu)勢
第74頁/共199頁ARM微處理器:寄存器ARM處理器有37個(gè)寄存器
31個(gè)通用寄存器:程序計(jì)數(shù)器、堆棧及其他通用寄存器
6個(gè)狀態(tài)寄存器這些寄存器不能同時(shí)看到不同的處理器狀態(tài)和工作模式確定哪些寄存器是對編程者是可見的第75頁/共199頁ARM寄存器集(ARMState)r0r1r2r3r4r5r6r7r8r9r10r11r12r15(pc)cpsrr13(sp)r14(lr)Usermodespsrr13(sp)r14(lr)IRQFIQr8r9r10r11r12r13(sp)r14(lr)spsrspsrr13(sp)r14(lr)Undefspsrr13(sp)r14(lr)Abortspsrr13(sp)r14(lr)SVC當(dāng)前模式BankedoutregistersARM有37個(gè)寄存器,都是32位寬
這些寄存器的子集只能在相應(yīng)模式被訪問第76頁/共199頁ARM微處理器:ARMState寄存器第77頁/共199頁ARM微處理器:ThumbState寄存器第78頁/共199頁ARMState與ThumbState寄存器關(guān)系第79頁/共199頁ARM微處理器:通用寄存器通用寄存器是R0-R15的寄存器,分為三類
沒有對應(yīng)影子寄存器的寄存器R0-R7
有對應(yīng)影子寄存器的寄存器R8-R14
程序計(jì)數(shù)器R15(或者PC)
影子寄存器是指該寄存器在不同的模式下對應(yīng)的物理寄存器第80頁/共199頁ARM微處理器:通用寄存器R0-R7所有模式下,R0-R7所對應(yīng)的物理寄存器都是相同的這八個(gè)寄存器是真正意義上的通用寄存器,ARM體系結(jié)構(gòu)中對它們沒有作任何特殊的假設(shè),它們的功能都是等同的。在中斷或者異常處理程序中一般都需要對這幾個(gè)寄存器進(jìn)行保存。第81頁/共199頁ARM微處理器:通用寄存器R8-R14訪問的物理寄存器取決于當(dāng)前的處理器模式,若要訪問特定的物理寄存器而不依賴當(dāng)前的處理器模式,則要使用規(guī)定的名字。R8-R12各有兩組物理寄存器:一組為FIQ模式,另一組是除FIQ以外的其他模式。R13-R14各有6個(gè)分組的物理寄存器,一個(gè)用于用戶模式和系統(tǒng)模式,其他5個(gè)分別用于5種異常模式。R13(也被稱為SP指針)被用作棧指針,通常在系統(tǒng)初始化時(shí)需要對所有模式下的SP指針賦值,當(dāng)CPU在不同的模式時(shí)棧指針會被自動切換成相應(yīng)模式下的值。R14有兩個(gè)用途,一是在調(diào)用子程序時(shí)用于保存調(diào)用返回地址,二是在發(fā)生異常時(shí)用于保存異常返回地址。第82頁/共199頁ARM微處理器:通用寄存器R15用作程序計(jì)數(shù)器(PC),可以被讀寫ARMstate:bits[1:0]為0,bits[31:2]即為PCTHUMBstate:bit[0]為0,bits[31:1]即為PC第83頁/共199頁ARM微處理器:程序狀態(tài)寄存器CPSR(當(dāng)前程序狀態(tài)寄存器)在所有的模式下都是可以讀寫的,它主要包含:條件標(biāo)志中斷使能標(biāo)志當(dāng)前處理器的模式其它的一些狀態(tài)和控制標(biāo)志第84頁/共199頁ARM微處理器:程序狀態(tài)寄存器置0表示執(zhí)行32bit的ARM指令置1表示執(zhí)行16bit的Thumb指令NegativeZeroCarryOverflowIRQ中斷的響應(yīng):置1:禁止響應(yīng)置0:允許響應(yīng)FIQ中斷的響應(yīng):置1:禁止響應(yīng)置0:允許響應(yīng)條件標(biāo)志模式控制位ARM/Thumb控制標(biāo)志中斷標(biāo)志第85頁/共199頁程序狀態(tài)寄存器
條件標(biāo)志位N=ALU產(chǎn)生負(fù)數(shù)結(jié)果Z=ALU產(chǎn)生結(jié)果是0C=ALU操作產(chǎn)生進(jìn)位或借位V=ALU結(jié)果溢出溢出標(biāo)志–Q標(biāo)志只在5TE架構(gòu)及以后被定義表示飽和是否產(chǎn)生J位只在5TEJ架構(gòu)及以后被定義J=1:處理器處于Jazelle態(tài)中斷關(guān)閉位I=1:關(guān)閉IRQF=1:關(guān)閉FIQT位T=0:處理器處于ARM態(tài)T=1:處理器處于Thumb態(tài)在4T架構(gòu)被引入模式位指定了處理器當(dāng)前模式fsxc2731NZCVQ2867IFTmode1623
15
54024
UndefinedJV6新引入的GE[3:0]
被一些SIMD指令使用E
位控制讀取/存儲的大小端A
位關(guān)閉不準(zhǔn)確的數(shù)據(jù)異常中斷IT[abcde]
用于Thumb2指令組的條件執(zhí)行108919
GE[3:0]EA
ITcond_abcde第86頁/共199頁ARM微處理器:程序狀態(tài)寄存器模式控制位M0-M4第87頁/共199頁ARM指令集所有的指令長度都是32位/許多指令都在一個(gè)單獨(dú)周期內(nèi)執(zhí)行指令是條件執(zhí)行的Load(加載)/store(存儲)架構(gòu)
數(shù)據(jù)處理指令示例
SUBr0,r1,#5ADDr2,r3,r3,LSL#2ANDSr4,r4,#0x20ADDEQr5,r5,r6分支指令示例
B<Label>內(nèi)存訪問指令示例
LDRr0,[r1]STRNEBr2,[r3,r4]STMFDsp!,{r4-r8,lr}r0=r1-5r2=r3+(r3*4)r4=r4AND0x20(setflags)IFEQconditiontruer5=r5+r6BranchforwardsorbackwardsrelativetocurrentPC(+/-32MBrange)
Loadwordataddressr1intor0IFNEconditiontrue,storebottombyteofr2toaddressr3+r4Storeregistersr4tor8andlronstack.Thenupdatestackpointer第88頁/共199頁Thumb指令集Thumb是一個(gè)16位的指令集對C代碼的緊密度做了優(yōu)化(大約是ARM代碼大小的65%)對窄內(nèi)存的性能進(jìn)行了提高是ARM指令集的功能子集對大多數(shù)的Thumb指令而言沒有使用條件執(zhí)行標(biāo)志一直都是置位的源寄存器和目標(biāo)寄存器是相同的只使用了低端寄存器常量有大小的限制沒有使用內(nèi)嵌桶型移位器(inlinebarrelshifter)通過使用BX指令來切換ARM態(tài)和Thumb態(tài)Thumb不是一個(gè)“常規(guī)”的指令集!對指令的約束有時(shí)是不一致的一般由編譯器生成,而不是手動編寫代碼第89頁/共199頁ARM和Thumb的性能對比05000100001500020000250003000035000Dhrystone2.1/sec@20MHzonARM7TDMIARMThumb32bit16bit16bitwith32bitstack內(nèi)存寬度(0等待狀態(tài))第90頁/共199頁Thumb-2指令集Thumb-2主要是對Thumb指令集架構(gòu)(ISA)的擴(kuò)展指令增加了32位指令實(shí)現(xiàn)了幾乎所有的ARM指令集架構(gòu)的功能保留了完整的16位Thumb指令集ARM1156T2-S和Cortex系列支持Thumb-2Cortex-M3只支持Thumb-2!設(shè)計(jì)目標(biāo):以Thumb的指令密度達(dá)到ARM的性能不需要手動選擇指令集減少了剖析代碼和理解執(zhí)行方式的需求編譯器可以自動地選擇16位和32位指令的混合可以訪問ARM態(tài)的行為異??梢灾苯犹幚砜梢栽L問協(xié)處理器可以完成v5TE的高級數(shù)據(jù)處理?xiàng)l件執(zhí)行可以通過If-Then(IT)指令1-4條緊接指令可以條件性地執(zhí)行第91頁/共199頁Thumb2的性能/密集度性能代碼密度100%ARMcode100%ThumbcodeRandommix‘Profiled’mixThumb-2第92頁/共199頁指令流執(zhí)行單元ARMThumb譯碼階段執(zhí)行階段取指階段JazelleJazelle使得ARM核可以執(zhí)行8位的Java字節(jié)碼95%的字節(jié)碼可以用硬件執(zhí)行(典型)普通JVM: 0.7Caffeinemarks/MHzARM9EJ: 5.5
Caffeinemarks/MHz功耗效率顯著提高相比ARM9E,ARM9EJ-S多了大約12K個(gè)額外的門電路ARMJTEK(JavaTechnologyEnablingKit)提供了支持代碼當(dāng)處理器在Jazelle態(tài)執(zhí)行時(shí):所有的指令都是8位寬處理器進(jìn)行字訪問一次讀4條指令Jazelle第93頁/共199頁ARM微處理器:異常異常是由內(nèi)部或者外部原因引起的,當(dāng)異常發(fā)生時(shí)CPU將暫停執(zhí)行當(dāng)前指令自動到指定的向量地址讀取指令并且執(zhí)行。在X86上,當(dāng)有異常發(fā)生時(shí)CPU是到指定的向量地址讀取要執(zhí)行的程序的地址而ARM是到向量地址的地方讀取指令,也就是ARM的向量地址處存放的是一條指令(一般是一條跳轉(zhuǎn)指令)
第94頁/共199頁ARM微處理器:異常X86體系的中斷跳轉(zhuǎn)
內(nèi)存地址IDT表0x00000x00040x00080x000c0x0010中斷服務(wù)程序入口地址ISR_addr.....0x003f40x003f80x003fcISR(){
保存現(xiàn)場 中斷處理 恢復(fù)現(xiàn)場}中斷到來,傳入中斷號。CPU根據(jù)(中斷號×4)找尋內(nèi)存地址將相應(yīng)內(nèi)存地址中的isr_addr加載到PC,實(shí)現(xiàn)程序跳轉(zhuǎn)第95頁/共199頁ARM微處理器:異常ARM中斷的跳轉(zhuǎn)0x00000000LDRPC,Reset_Addr0x00000004LDRPC,Undefined_Addr0x00000008LDRPC,SWI_Addr0x0000000cLDRPC,Prefetch_Addr0x00000010LDRPC,Abort_Addr0x00000014NOP0x00000018LDRPC,IRQ_ISR_Addr0x0000001cLDRPC,FIQ_ISR_Addr內(nèi)存地址 異常向量表IRQ_ISR(){…..判斷中斷源…….}觸發(fā)IRQ的設(shè)備處理程序Device(){……..}在X86中,根據(jù)中斷號得出的中斷處理程序已經(jīng)判斷了中斷源,而在ARM中,IRQ只是一類中斷的總稱,還需要具體判斷觸發(fā)IRQ的是哪個(gè)設(shè)備!第96頁/共199頁ARM微處理器:異常ARMCPU將引起異常的類型分為7種第97頁/共199頁ARM微處理器:異常當(dāng)異常出現(xiàn)時(shí),異常模式分組的R14和SPSR用于保存狀態(tài),即:
R14_<exception_mode>=returnlinkSPSR_<exception_mode>=CPSRCPSR[4:0]=exceptionmodenumberCPSR[5]=0/*在ARM狀態(tài)執(zhí)行*/if<exception_mode>==ResetorFIQthenCPSR[6]=1/*禁止快速中斷*/CPSR[7]=1/*禁止正常中斷*/PC=exceptionvectoraddress當(dāng)處理異常返回時(shí),將SPSR傳送到CPSR,R14傳送到PC第98頁/共199頁ARM微處理器:異常Reset:CPU被復(fù)位后,進(jìn)入SupervisorMode并且禁止FIQ和IRQ。UndefinedInstructions:CPU執(zhí)行一條未被定義的指令時(shí)就會觸發(fā)該異常。這種機(jī)制可以用于通過軟件仿真的方式擴(kuò)展THUMBorARM指令集。SWI:軟中斷(SWI)是執(zhí)行SWI指令時(shí)觸發(fā)的,該異常主要用于OS的系統(tǒng)調(diào)用。第99頁/共199頁ARM微處理器:異常PrefetchAbort:CPU在讀取指令時(shí)發(fā)生讀內(nèi)存錯(cuò)誤并且該指令又要被執(zhí)行則觸發(fā)該異常;如果只是在讀取指令時(shí)發(fā)生了內(nèi)存錯(cuò)誤而該指令又未被執(zhí)行則不會觸發(fā)該異常。DataAbort:當(dāng)CPU在讀寫數(shù)據(jù)時(shí),如果發(fā)生錯(cuò)誤則觸發(fā)該異常。第100頁/共199頁ARM微處理器:異常IRQ:當(dāng)外部IRQ輸入請求發(fā)生時(shí)(IRQ中斷已經(jīng)被使能),觸發(fā)該異常。FIQ:FIQ通常被用于快速傳輸數(shù)據(jù)。當(dāng)外部FIQ輸入請求發(fā)生時(shí)(FIQ中斷已經(jīng)被使能),觸發(fā)該異常。第101頁/共199頁ARM微處理器:異常異常的優(yōu)先級第102頁/共199頁ARM微處理器:內(nèi)存和I/OARM的尋址空間是線性的地址空間,為232=4GBytes0to3存儲第一個(gè)word,bytes4to7存儲第二個(gè)word大小端決定了寄存器的內(nèi)容和內(nèi)存內(nèi)容的格式關(guān)聯(lián)ARM寄存器是字(4字節(jié))寬ARM是按照字節(jié)順序來尋址內(nèi)存的ARM支持大端(Big-endian)和小端(Little-endian)的內(nèi)存數(shù)據(jù)方式,可以通過硬件的方式設(shè)置端模式,也可以通過軟件的方式來設(shè)置(V6版本以上)第103頁/共199頁大端的數(shù)據(jù)存放格式低地址高地址地址A地址A+1地址A+2地址A+3最高有效字節(jié)的地址就是該word的地址最高有效字節(jié)位于最低地址worda=0xf6
73
4b
cdf6734bcdARM微處理器:內(nèi)存和I/O最高有效字節(jié):Mostsignificantbyte最低有效字節(jié):Leastsignificantbyte第104頁/共199頁小端的數(shù)據(jù)格式
低地址高地址地址A地址A+1地址A+2地址A+3最低有效字節(jié)的地址就是該word的地址最低有效字節(jié)位于最低地址worda=0xf6
73
4b
cdf6734bcd最高有效字節(jié):Mostsignificantbyte最低有效字節(jié):LeastsignificantbyteARM微處理器:內(nèi)存和I/O第105頁/共199頁ARM微處理器:內(nèi)存和I/O大端:小端:0xb32045000xddddddd00xb32045000xddddddd0f6f673734b4bcdcddada0000實(shí)例變量A:wordA=0xf6734bcd,在內(nèi)存中的起始地址為0xb3204500變量B:halfwordB=218,在內(nèi)存中的起始地址為0xddddddd0問題:halfwordB=218與wordC=218在內(nèi)存中的存放方式有何不同?請分大端和小端兩種情況說明。第106頁/共199頁ARM微處理器:內(nèi)存和I/O數(shù)據(jù)信息狀態(tài)信息控制信息數(shù)字量模擬量開關(guān)量連續(xù)幾位二進(jìn)制形式表示的數(shù)或字符。如鍵盤輸入的信息以及打
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園實(shí)習(xí)老師聘用合同協(xié)議
- 區(qū)域戰(zhàn)略合作框架合同
- 房屋買賣合同補(bǔ)充協(xié)議書
- 企業(yè)短期借款合同協(xié)議
- 裝飾裝修材料供需合同范本
- 廣告公司員工培訓(xùn)合同范本
- 水資源綜合利用工程合同書
- 道路交通事故雙方和解合同書
- 農(nóng)業(yè)觀光園土地租賃合同
- 小學(xué)生每日教育課件
- 2024年蘇州職業(yè)大學(xué)高職單招職業(yè)適應(yīng)性測試歷年參考題庫含答案解析
- 2025年江蘇蘇州市常熟市交通公有資產(chǎn)經(jīng)營有限公司招聘筆試參考題庫附帶答案詳解
- 中國民用航空飛行學(xué)院《大學(xué)數(shù)學(xué)(二)》2023-2024學(xué)年第一學(xué)期期末試卷
- ESG新政與國有企業(yè)ESG發(fā)展
- 幼兒園案例分析 意大利貝納通托兒所
- QC080000管理手冊與程序文件
- 廣西河池市(2024年-2025年小學(xué)六年級語文)部編版小升初模擬(下學(xué)期)試卷及答案
- 2024年小學(xué)人教版一年級數(shù)學(xué)上冊教學(xué)工作總結(jié)
- 【人教版化學(xué)】選擇性必修1 知識點(diǎn)默寫小紙條(答案背誦版)
- 航司旅游業(yè)智能化客戶服務(wù)與管理系統(tǒng)方案
- 家居業(yè)之戰(zhàn)略全解析
評論
0/150
提交評論