版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
ARM架構(gòu)
2AgendaARM公司簡介 ARM特點 編程模式
指令集
系統(tǒng)設(shè)計ARMLtd成立于1990年11月前身為Acorn計算機公司AdvanceRISCMachine(ARM)主要設(shè)計ARM系列RISC處理器內(nèi)核授權(quán)ARM內(nèi)核給生產(chǎn)和銷售半導(dǎo)體的合作伙伴ARM公司不生產(chǎn)芯片IP(IntelligenceProperty)另外也提供基于ARM架構(gòu)的開發(fā)設(shè)計技術(shù)軟件工具,評估板,調(diào)試工具,應(yīng)用軟件,總線架構(gòu),外圍設(shè)備單元,等等ARMPartnershipModel6AgendaARM公司簡介
ARM特點 編程模式
指令集
系統(tǒng)設(shè)計RISC架構(gòu)簡介1979年美國加州大學(xué)伯克利分校提出了RISC(ReducedInstructionSetComputer,精簡指令集電腦)的概念,把著眼點放在了如何使電腦的結(jié)構(gòu)更加簡單合理地提高運算速度上。RISC結(jié)構(gòu)優(yōu)先選取使用頻最高的簡單指令,避免復(fù)雜指令;將指令長度固定,指令格式和尋地方式種類減少;以控制邏輯為主,不用或少用微碼控制等措施來達到上述目的。到目前為止,RISC架構(gòu)也還沒有嚴(yán)格的定義,一般認(rèn)為,RISC架構(gòu)應(yīng)具有如下特點:采用固定長度的指令格式,指令歸整、簡單、基本定址方式有2~3種。使用單周期指令,便于管線操作執(zhí)行。大量使用寄存器,數(shù)據(jù)處理指令只對寄存器進行操作,只有載入/存儲指令可以存取記憶體,以提高指令的執(zhí)行效率。CISC與RISC比較傳統(tǒng)的CISC(ComplexInstructionSetComputer,復(fù)雜指令集電腦)結(jié)構(gòu)有其固有的缺點,即隨著電腦技術(shù)的發(fā)展而不斷引入新的復(fù)雜的指令集,為支援這些新增的指令,電腦的架構(gòu)會越來越復(fù)雜,然而,在CISC指令集的各種指令中,其使用頻率卻相差懸殊,大約有20%的指令會被反復(fù)使用,占整個程式碼的80%。而余下的80%的指令卻不經(jīng)常使用,在程式設(shè)計中只占20%,顯然,這種結(jié)構(gòu)是不太合理的。ARM微處器特點采用RISC架構(gòu)的ARM微處理器一般具有如下特點:體積小、低功耗、低成本、高性能。支援Thumb(16位)/ARM(32位元)雙指令集,能很好的相容8位/16位器件。大量使用暫存器,指令執(zhí)行速度更快。大多數(shù)資料操作都在暫存器中完成。定址方式靈活簡單,執(zhí)行效率高。指令長度固定。10AgendaARM公司簡介 ARM特點
編程模式
指令集
系統(tǒng)設(shè)計數(shù)據(jù)和指令類型ARM采用的是32位架構(gòu).ARM約定:Byte: 8bitsHalfword:16bits(2byte)Word: 32bits(4byte)大部分ARMcore提供:ARM指令集(32-bit)Thumb指令集(T變種)(16-bit)Jazellecores支持Javabytecode(J變種,4TEJ)12處理器工作模式ARM有7個基本工作模式:User:非特權(quán)模式,大部分任務(wù)執(zhí)行在這種模式正常程序執(zhí)行的模式FIQ:當(dāng)一個高優(yōu)先級(fast)中斷產(chǎn)生時將會進入這種模式高速數(shù)據(jù)傳輸和通道處理IRQ:當(dāng)一個低優(yōu)先級(normal)中斷產(chǎn)生時將會進入這種模式通常的中斷處理Supervisor:當(dāng)復(fù)位或軟中斷指令執(zhí)行時將會進入這種模式供操作系統(tǒng)使用的一種保護模式Abort:當(dāng)存取異常時將會進入這種模式虛擬存儲及存儲保護Undef:當(dāng)執(zhí)行未定義指令時會進入這種模式軟件仿真硬件協(xié)處理器System:使用和User模式相同寄存器集的特權(quán)模式特權(quán)級的操作系統(tǒng)任務(wù)r0r1r2r3r4r5r6r7r8r9r10r11r12r13(sp)r14(lr)r15(pc)cpsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr8r9r10r11r12r13(sp)r14(lr)spsrFIQIRQSVCUndefAbortUserModer0r1r2r3r4r5r6r7r8r9r10r11r12r13(sp)r14(lr)r15(pc)cpsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr8r9r10r11r12r13(sp)r14(lr)spsrCurrentVisibleRegistersBankedoutRegistersFIQIRQSVCUndefAbortr0r1r2r3r4r5r6r7r15(pc)cpsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr8r9r10r11r12r13(sp)r14(lr)spsrCurrentVisibleRegistersBankedoutRegistersUserIRQSVCUndefAbortr8r9r10r11r12r13(sp)r14(lr)FIQModeIRQModer0r1r2r3r4r5r6r7r8r9r10r11r12r15(pc)cpsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr8r9r10r11r12r13(sp)r14(lr)spsrCurrentVisibleRegistersBankedoutRegistersUserFIQSVCUndefAbortr13(sp)r14(lr)UndefModer0r1r2r3r4r5r6r7r8r9r10r11r12r15(pc)cpsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr8r9r10r11r12r13(sp)r14(lr)spsrCurrentVisibleRegistersBankedoutRegistersUserFIQIRQSVCAbortr13(sp)r14(lr)SVCModer0r1r2r3r4r5r6r7r8r9r10r11r12r15(pc)cpsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr8r9r10r11r12r13(sp)r14(lr)spsrCurrentVisibleRegistersBankedoutRegistersUserFIQIRQUndefAbortr13(sp)r14(lr)AbortModer0r1r2r3r4r5r6r7r8r9r10r11r12r15(pc)cpsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr8r9r10r11r12r13(sp)r14(lr)spsr當(dāng)前可見寄存器備用寄存器UserFIQIRQSVCUndefr13(sp)r14(lr)ARM寄存器寄存器組織概要User
mode
r0-r7,
r15,
and
cpsrr8r9r10r11r12r13(sp)r14(lr)spsrFIQr8r9r10r11r12r13(sp)r14(lr)r15(pc)cpsrr0r1r2r3r4r5r6r7Userr13(sp)r14(lr)spsrIRQUser
mode
r0-r12,
r15,
and
cpsrr13(sp)r14(lr)spsrUndefUser
mode
r0-r12,
r15,
and
cpsrr13(sp)r14(lr)spsrSVCUser
mode
r0-r12,
r15,
and
cpsrr13(sp)r14(lr)spsrAbortUser
mode
r0-r12,
r15,
and
cpsrThumbstateLowregistersThumbstateHighregistersNote:System模式使用user模式寄存器集15ARM寄存器ARM有37個32-Bits長的寄存器.1個用作PC(programcounter)1個用作CPSR(currentprogramstatusregister)5個用作SPSR(savedprogramstatusregisters)30個通用寄存器當(dāng)前處理器的模式?jīng)Q定著哪組寄存器可操作.任何模式都可以存取:相應(yīng)的r0-r12子集相應(yīng)的r13(thestackpointer,sp)andr14(thelinkregister,lr)相應(yīng)的r15
(
theprogramcounter,pc)相應(yīng)的CPSR(currentprogramstatusregister,cpsr)特權(quán)模式(除system模式)還可以存??;相應(yīng)的spsr(savedprogramstatusregister)程序狀態(tài)寄存器條件位:N=
1-結(jié)果為負(fù),0-結(jié)果為正或0Z=1-結(jié)果為0,0-結(jié)果不為0C=1-進位,0-借位V=1-結(jié)果溢出,0結(jié)果沒溢出Q位:僅ARM5TE/J架構(gòu)支持指示增強型DSP指令是否溢出J位僅ARM5TE/J架構(gòu)支持J=1:處理器處于Jazelle狀態(tài)中斷禁止位:I=1:禁止IRQ.F=1:禁止FIQ.TBit僅ARMxT架構(gòu)支持T=0:處理器處于ARM狀態(tài)T=1:處理器處于Thumb狀態(tài)Mode位(處理器模式位):0b10000 User0b10001 FIQ0b10010 IRQ0b10011 Supervisor0b10111 Abort0b11011 Undefined0b11111 System2731NZCVQ2867IFTmode1623
815
54024fsxc
UndefinedJ17當(dāng)處理器執(zhí)行在ARM狀態(tài):所有指令32bits寬所有指令必須word對齊所以pc值由bits[31:2]決定,bits[1:0]未定義(所以指令不能halfword/byte對齊).當(dāng)處理器執(zhí)行在Thumb狀態(tài):所有指令16bits寬所有指令必須halfword對齊所以pc值由bits[31:1]決定,bits[0]未定義(所以指令不能byte對齊).當(dāng)處理器執(zhí)行在Jazelle狀態(tài):所有指令8bits寬處理器執(zhí)行word存取一次取4條指令程序指針PC(r15)18VectorTable異常處理當(dāng)異常產(chǎn)生時,ARMcore:拷貝CPSR到SPSR_<mode>設(shè)置適當(dāng)?shù)腃PSR位:改變處理器狀態(tài)進入ARM態(tài)改變處理器模式進入相應(yīng)的異常模式設(shè)置中斷禁止位禁止相應(yīng)中斷(如果需要)保存返回地址到LR_<mode>設(shè)置PC為相應(yīng)的異常向量返回時,異常處理需要:從SPSR_<mode>恢復(fù)CPSR從LR_<mode>恢復(fù)PCNote:這些操作只能在ARM態(tài)執(zhí)行.Vectortablecanbeat
0xFFFF0000onARM720T
andonARM9/10familydevicesFIQIRQ(Reserved)DataAbortPrefetchAbortSoftwareInterruptUndefinedInstructionReset0x1C0x180x140x100x0C0x080x040x0019TheARM可以用little/bigendian格式存取數(shù)據(jù).
r0=0x11223344STRr0,[r1]LDRBr2,[r1]r1=0x100Memory32100123ByteLane312423161587011223344312423161587011223344312423161587011223344312423161587000000044312423161587000000011LittleendianBigendianR2=0x44R2=0x11Formoreinformation,see:“ApplicationNote61:BigandLittleEndianByteAddressing”字節(jié)順序ARM發(fā)展SA-110ARM7TDMI4T1支持Halfword和signedhalfword/byte和Systemmode支持Thumb指令集24ARM9TDMISA-1110ARM720TARM940T改良的ARM/Thumb交互作用以及CLZ指令5TESaturatedmathsDSPmultiply-accumulateinstructionsXScaleARM1020EARM9E-SARM966E-S3早期的ARMsARM9EJ-S5TEJARM7EJ-SARM926EJ-SJazelle支持Java字節(jié)碼
6ARM11SIMDSISIMDMDSSIMDARM7系列簡介ARM7系列微處理器的主要應(yīng)用領(lǐng)域為:工業(yè)控制、Internet設(shè)備、網(wǎng)絡(luò)和資料機設(shè)備、移動電話等多種多媒體和嵌入式應(yīng)用。ARM7系列微處理器包括如下幾種類型的核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其中,ARM7TMDI是目前使用最廣泛的32位嵌入式RISC處理器,屬低端ARM處理器核。TDMI的基本含義為:T:支援16為壓縮指令集Thumb。D:支持片上Debug。M:內(nèi)嵌硬體乘法器(Multiplier)。I:嵌入式ICE,支持片上中斷點和除錯點。ARM9系列簡介ARM9系列微處理器在高性能和低功耗特性方面提供最佳的性能。ARM9系列微處理器包含ARM920T、ARM922T和ARM940T三種類型,以適用于不同的應(yīng)用場合。ARM9具有以下特點:5級整數(shù)管線,指令執(zhí)行效率更高。提供1.1MIPS/MHz的哈佛結(jié)構(gòu)。支援32位元ARM指令集和16位元Thumb指令集。支援32位元的高速AMBA總線接口。全性能的MMU,支援WindowsCE、Linux、PalmOS等多種主流嵌入式作業(yè)系統(tǒng)。MPU支援即時操作系統(tǒng)。支持?jǐn)?shù)據(jù)Cache和指令Cache,具有更高的指令和數(shù)據(jù)處理能力。
ARM10E系列簡介ARM10E系列微處理器具有高性能、低功耗的特點,由于采用了新的架構(gòu),與同等的ARM9器件相比較,在同樣的時鐘頻率下,性能提高了近50%,同時,ARM10E系列微處理器采用了兩種先進的節(jié)能方式,使其功耗極低。ARM10E系列微處理器的主要特點如下:支援DSP指令集,適合于需要高速數(shù)位信號處理的場合。6級整數(shù)管線,指令執(zhí)行效率更高。支援32位元ARM指令集和16位元Thumb指令集。支援32位元的高速AMBA總線接口。支援VFP10浮點處理輔助運算器。全性能的MMU,支援WindowsCE、Linux、PalmOS等多種主流嵌入式操作系統(tǒng)。支持?jǐn)?shù)據(jù)Cache和指令Cache,具有更高的指令和數(shù)據(jù)處理能力主頻最高可達400MIPS。內(nèi)嵌并行讀/寫操作元件。30AgendaARM公司簡介 ARM特點 編程模式
指令集
系統(tǒng)設(shè)計ARM指令集所有ARM指令均為32-bits長大部分為單周期指令所有指令都可以條件執(zhí)行采用Load/Store架構(gòu)
數(shù)據(jù)處理指令:
SUBr0,r1,#5 ;r1-5->r0 ADDr2,r3,r3,LSL#2 ;R3x4+r3->r2ANDSr4,r4,#0x20 ;r4+0x20->r4,更新條件碼標(biāo)志位ADDEQr5,r5,r6 ;r5+r6->r5(條件-相等)存儲器存取指令:
LDRr0,[r1],#4 ;r1+4->r0
STRNEBr2,[r3,r4] ;NE符合-將r2低8位數(shù)寫到[r3+r4]內(nèi)存單元
LDRSHr5,[r6,#8]!;[r6+8]->r5(半字節(jié)),r5中高16位設(shè)置成該字節(jié)的符號位
STMFDsp!,{r0,r2-r7,r10} ;出棧ARM跳轉(zhuǎn)分支指令B<label>PC±32Mbyte.BL<子程序>保存返回地址到LR返回時從LR恢復(fù)PC對于non-leaf函數(shù),LR必須壓棧保存STMFDsp!,{regs,lr}:BLfunc2:LDMFDsp!,{regs,pc}func1func2::BLfunc1:::::::MOVpc,lr協(xié)處理器多達16個可定義協(xié)處理器,用唯一的ID來標(biāo)示擴充ARM指令集通常用作ARM“internalfunctions”(例如:cp15通常用作ARMcache控制器)通常系統(tǒng)設(shè)計的時候最好用內(nèi)存映射外設(shè)容易實現(xiàn)HandshakingsignalsARMcoreCoprocessorXCoprocessorYDatabusFDEFDEFDEThumb指令集Thumb是一個16-bits指令集優(yōu)化代碼密度(~65%ofARM)提高窄內(nèi)存操作性能是ARM指令集的一個功能子集ARM/Thumb轉(zhuǎn)換使用BX
指令015310ADDSr2,r2,#1ADDr2,#132-bitsARM指令16-bitsThumb指令對于有編譯器產(chǎn)生的絕大多數(shù)指令:
條件執(zhí)行不可用
源和目的寄存器相同
只有低端寄存器可用
常量大小受限制
內(nèi)嵌的桶形移位不可用ARM/Thumb性能分析05000100001500020000250003000030000Dhrystone2.1/sec@20MHzARMThumb32bit16bit16bitwith32bitstack存儲器寬度(zerowaitstate)指令流執(zhí)行單元ARMThumb解碼階段執(zhí)行階段預(yù)取階段JazelleJazelleJazelle使得ARMcores執(zhí)行8-bit的Java字節(jié)碼95%的字節(jié)碼執(zhí)行使用hardware(typical)NormalJVM: 1.0Caffeinemarks/MHzARM9EJ: 5.5Caffeinemarks/MHz更高的性能增加的門電路<12K(ARM9EJ-S同ARM9E-S比較)ARMJTEK(JavaTechnologyEnablingKit)提供支持代碼37AgendaARM公司簡介 ARM特點 編程模式
指令集
系統(tǒng)設(shè)計38基于ARM的系統(tǒng)示例16bitRAM8bitROM32bitRAMARMCoreI/O外設(shè)中斷控制器nFIQnIRQAMBA總線BridgeTimerOn-chipRAMARMInterruptControllerRemap/PauseTICArbiterBusInterfaceExternalROMExternalRAMReset系統(tǒng)總線片內(nèi)外設(shè)總線AMBAAdvancedMicrocontrollerBusArchitectureADKCompleteAMBADesignKitACTAMBAComplianceTestbenchPrimeCellARM’sAMBAcompliantperipheralsAHBorASBAPBExternalBusInterfaceDecoder選擇ARM處理器的準(zhǔn)則1)ARM微處理器核心的選擇 如果希望使用WinCE或標(biāo)準(zhǔn)Linux等操作系統(tǒng)以減少軟件開發(fā)時間,就需要選擇ARM720T以上帶有MMU(MemoryManagementUnit)功能的ARM晶片。 ARM720T、ARM920T、ARM922T、ARM946T、Strong-ARM都帶有MMU功能。 而ARM7TDMI則沒有MMU,不支持WindowsCE和標(biāo)準(zhǔn)Linux,但目前有uCLinux等不需要MMU支持的操作系統(tǒng)可執(zhí)行于ARM7TDMI硬件平臺上。2)系統(tǒng)的工作頻率 系統(tǒng)的工作頻率在很大程度上決定了ARM微處理器的處理能力。 ARM7系列微處理器的典型處理速度為0.9MIPS/MHz,常見的ARM7晶片系統(tǒng)主時鐘為20MHz-133MHz。 ARM9系列微處理器的典型處理速度為1.1MIPS/MHz,常見的ARM9的系統(tǒng)主時脈頻率為100MHz-233MHz,ARM10最高可以達到700MHz。選擇ARM處理器的準(zhǔn)則3)晶片內(nèi)部存儲器的容量 大多數(shù)的ARM微處理器晶片內(nèi)部存儲器的容量都不太大。 如ATMEL的AT91F40162就具有高達2MB的晶片內(nèi)部程序存儲空間。4)晶片內(nèi)部外設(shè)接口電路的選擇 我們稱之為晶片內(nèi)部外設(shè)接口電路,如USB接口、LCD控制器、鍵盤接口、RTC、ADC和DAC、DSP輔助運算器等,設(shè)計者應(yīng)分析系統(tǒng)的需求,盡可能采用晶片內(nèi)部接口電路完成所需的功能,這樣既可簡化系統(tǒng)的設(shè)計,同時提高系統(tǒng)的可靠性。ARMDeveloperSuite1.2ADS1.2是為嵌入式ARM開發(fā)而設(shè)計的一整套軟件開發(fā)工具從最初的軟件原型到最終優(yōu)化的ROM代碼。ADS1.2發(fā)布于2001的12月份支持的主機系統(tǒng)IBMcompatiblePCswith
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025四川建筑安全員-B證考試題庫附答案
- 2025天津市安全員《A證》考試題庫及答案
- 《it推動商業(yè)變革》課件
- 大匠文化精神課件(增)
- 多項式與多項式相乘的課件
- 【物理課件】測定金屬的電阻率 練習(xí)使用螺旋測微器課件
- 江蘇省無錫市2024-2025學(xué)年高二上學(xué)期期終教學(xué)質(zhì)量調(diào)研測試歷史試卷(含答案)
- 單位管理制度展示大全【職員管理】十篇
- 單位管理制度收錄大全【員工管理】十篇
- 單位管理制度收錄大合集人事管理篇
- 上海市2024-2025學(xué)年高一語文下學(xué)期期末試題含解析
- 國家電網(wǎng)招聘之財務(wù)會計類題庫含完整答案(必刷)
- 建筑物拆除的拆除工廠考核試卷
- 廣東省深圳市2023-2024學(xué)年高二上學(xué)期期末測試英語試卷(含答案)
- 2024年手術(shù)室?guī)Ы坦ぷ饔媱潣颖荆?篇)
- 人教版一年級數(shù)學(xué)2024版上冊期末測評(提優(yōu)卷一)(含答案)
- 醫(yī)療護理員理論知識考核試題題庫及答案
- 保安服務(wù)招投標(biāo)書范本(兩篇)2024
- 湖北省荊州市八縣市區(qū)2023-2024學(xué)年高二上學(xué)期1月期末聯(lián)考數(shù)學(xué)試題 附答案
- 遼寧省沈陽市五校協(xié)作體2024-2025學(xué)年高二上學(xué)期11月期中考試語文試題(含答案)
- 保密知識培訓(xùn)
評論
0/150
提交評論