版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
微處理器基礎(chǔ)第8章Cortex-M3微處理器
Cortex-M3內(nèi)核概述與ARM7TDMI性能比較ARM7TDMICortex-M3架構(gòu)ARMv4T(馮.若依曼)ARMv7-M(哈佛)ISA支持Thumb/ARMThumb/Thumb-2流水線3級3級+分支預(yù)測中斷FIQ/IRQ240個(gè)物理中斷中斷延時(shí)24—42個(gè)時(shí)鐘周期12個(gè)時(shí)鐘(末尾連鎖僅6個(gè))休眠保護(hù)無內(nèi)置存儲器保護(hù)無8段存儲器保護(hù)單元硬件除法無2—12個(gè)時(shí)鐘周期運(yùn)行速度0.95DMIPS/MHz1.25DMIPS/MHz功耗0.28mW/MHz0.19mW/MHz面積0.62mm2(僅內(nèi)核)0.86mm2(內(nèi)核+外設(shè))Cortex-M3內(nèi)核概述優(yōu)化體系架構(gòu)內(nèi)核基于哈佛結(jié)構(gòu),指令和數(shù)據(jù)可以從存儲器中同時(shí)讀取,對多個(gè)操作可以并行執(zhí)行,加快了應(yīng)用程序執(zhí)行速度。與ARM7TDMI相比,比Thumb指令每兆赫的效率提高70%,比ARM指令提高35%Dhrystone相關(guān)測試的性能值1.25DMIPS0.95DMIPSCortex-M3內(nèi)核概述優(yōu)化指令系統(tǒng)由于Tumb-2指令是Thumb指令的擴(kuò)展,16位和32位指令共存于同一模式下,復(fù)雜性大幅下降,代碼密度和性能均得到提高。具有位操作能力,在汽車應(yīng)用中表現(xiàn)出色,在DFT等DSP運(yùn)算法則的應(yīng)用中非常有用。相關(guān)測試的代碼大小Cortex-M3內(nèi)核概述帶分支預(yù)測的3級流水線Cortex-M3的流水線分為3級,分別為:取指譯碼執(zhí)行取指譯碼執(zhí)行從存儲器裝載一條指令識別將要被執(zhí)行的指令處理指令并將結(jié)果寫回寄存器在譯碼時(shí)進(jìn)行分支預(yù)測,遇跳轉(zhuǎn)指令也不會打斷流水線PC值總是指向正在去取指的指令Cortex-M3內(nèi)核概述指令1指令2指令3指令4…………程序存儲器周期1周期2周期3周期4周期5周期6取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行周期2周期1周期3周期4處理器執(zhí)行一條指令的三個(gè)階段
在第1個(gè)周期,PC指向指令1,此時(shí)指令1進(jìn)入三級流水線的取指階段。1三級流水線結(jié)構(gòu)的指令執(zhí)行順序Cortex-M3內(nèi)核概述指令1指令2指令3指令4…………程序存儲器周期1周期2周期3周期4周期5周期6取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行周期2周期1周期3周期4處理器執(zhí)行一條指令的三個(gè)階段
在第2個(gè)周期,PC指向指令2,此時(shí)指令1進(jìn)入三級流水線的譯碼階段,同時(shí)取出指令2。2三級流水線結(jié)構(gòu)的指令執(zhí)行順序Cortex-M3內(nèi)核概述指令1指令2指令3指令4…………程序存儲器周期1周期2周期3周期4周期5周期6取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行周期2周期1周期3周期4處理器執(zhí)行一條指令的三個(gè)階段
在第3個(gè)周期,PC指向指令3,此時(shí)指令1進(jìn)入三級流水線的執(zhí)行階段,指令2進(jìn)入譯碼階段,取出指令3。3三級流水線結(jié)構(gòu)的指令執(zhí)行順序Cortex-M3內(nèi)核概述指令1指令2指令3指令4…………程序存儲器周期1周期2周期3周期4周期5周期6取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行取指譯碼執(zhí)行周期2周期1周期3周期4處理器執(zhí)行一條指令的三個(gè)階段
在第4個(gè)周期,指令1執(zhí)行完成,指令2和指令3流水線推進(jìn)一級,同時(shí)開始指令4的取指處理。4三級流水線結(jié)構(gòu)的指令執(zhí)行順序Cortex-M3內(nèi)核概述ARM7不帶分支預(yù)測的3級流水線推演過程MOVR0,#00ADDSR0,R0,#1CMPR0,#0x7D0BNE0x00000202BX0X00000300LDRR1,#00……MOVR2,#200x02000x02020x02040x02080x020A0X020C……0x0300地址指令取指譯碼執(zhí)行MOV----step1ADDSMOV--step2CMPADDSMOVstep3BNECMPADDSstep4BXBNECMPstep5LDRBXBNEstep6ADDS----step6執(zhí)行時(shí)遇跳轉(zhuǎn)指令則清空流水線Cortex-M3內(nèi)核概述Cortex-M3帶分支預(yù)測的3級流水線推演過程MOVR0,#00ADDSR0,R0,#1CMPR0,#0x7D0BNE0x00000202BX0X00000300LDRR1,#00……MOVR2,#200x02000x02020x02040x02080x020A0X020C……0x0300地址指令取指譯碼執(zhí)行MOV----step1ADDSMOV--step2CMPADDSMOVstep3BNECMPADDSstep4ADDSBNECMPstep5因?yàn)閹Х种ьA(yù)測,跳轉(zhuǎn)指令在譯碼時(shí)就被識別,取指時(shí)流水線自動加載跳轉(zhuǎn)后地址的指令。CMPADDSBNEstep6BXBNECMPAPSR的Z=0APSR的Z!=0Cortex-M3的內(nèi)部寄存器32位通用寄存器R0R1R2R3R4R5R6R7R8R9R10R11R12R13(SP)R14(LR)R15(PC)XPSRr0~r12,為13個(gè)通用寄存器低寄存器
,r0-r7可以被指定通用寄存器的所有指令訪問高寄存器
,r8-r12可以被指定通用寄存器的所有32位指令訪問,不能被16位指令訪問。SP_processSP_mainCortex-M3的內(nèi)部寄存器分組的堆棧指針(SP)R0R1R2R3R4R5R6R7R8R9R10R11R12R13(SP)R14(LR)R15(PC)XPSRSP_mainSP_process處理模式線程模式可用MSP始終使用MSP也可用PSPCortex-M3的內(nèi)部寄存器鏈接寄存器(LR)R0R1R2R3R4R5R6R7R8R9R10R11R12R13(SP)R14(LR)R15(PC)XPSR鏈接寄存器(LR)在執(zhí)行分支(branch)和鏈接(BL)指令或帶有交換的分支和鏈接指令(BLX)時(shí),LR用于保存PC的返回地址。
主要用于保存子程序的返回地址。
LR也用于異常返回。
Cortex-M3的內(nèi)部寄存器鏈接寄存器(LR)R0R1R2R3R4R5R6R7R8R9R10R11R12R13(SP)R14(LR)R15(PC)XPSRintmain(){......delay();SetLED1();}voiddelay(){......}BL.Wdelay……delay:......BXlr
….0X20F00X20F4地址R14(LR)0X20F40X10F40X10F4執(zhí)行BL指令,LR的值同時(shí)更新Cortex-M3的內(nèi)部寄存器寄存器(PC、XPSR)R0R1R2R3R4R5R6R7R8R9R10R11R12R13(SP)R14(LR)R15(PC)XPSR程序計(jì)數(shù)器(PC)程序計(jì)數(shù)器總是指向正在取指的指令。該寄存器的位0始終為0,因此,指令始終與字或半字邊界對齊。程序狀態(tài)寄存器(XPSR)用于指示程序的運(yùn)行狀態(tài)。程序狀態(tài)寄存器分為3個(gè)子狀態(tài)寄存器:應(yīng)用程序PSR(APSR)中斷狀態(tài)PSR(IPSR)執(zhí)行狀態(tài)PSR(EPSR)這3個(gè)PSR可單獨(dú)反問,也可組合訪問。Cortex-M3的內(nèi)部寄存器程序狀態(tài)寄存器對程序狀態(tài)寄存器的訪問只能使用MRS和MSR指令
MRS<c><q><Rd><spec_reg>MRS從特殊寄存器讀出數(shù)據(jù),并存入一通用寄存器指令碼條件執(zhí)行指示是16位還是32位指令通用寄存器(R0—R15)特殊功能寄存器Cortex-M3的內(nèi)部寄存器MRS<c><q><Rd><spec_reg>程序狀態(tài)寄存器對程序狀態(tài)寄存器的訪問只能使用MRS和MSR指令
MRS從特殊寄存器讀出數(shù)據(jù),并存入一通用寄存器指令碼條件執(zhí)行指示是16位還是32位指令通用寄存器(R0—R15)特殊功能寄存器MRSEQ.WR0,PSPCortex-M3的內(nèi)部寄存器Cortex-M3的內(nèi)部寄存器APSR的位分配負(fù)數(shù)或小于標(biāo)志:1:結(jié)果為負(fù)數(shù)或小于0:結(jié)果為正數(shù)或大于
零標(biāo)志:1:結(jié)果為00:結(jié)果為非0進(jìn)位/借位標(biāo)志:1:進(jìn)位或借位0:沒有進(jìn)位或借位
溢出標(biāo)志:1:溢出0:沒有溢出
粘著飽和(stickysaturation)標(biāo)志某變量達(dá)到上限/下限時(shí)置1
應(yīng)用狀態(tài)寄存器(APSR)3130292827260NZCVQ保留
應(yīng)用狀態(tài)寄存器(APSR)包含條件代碼標(biāo)志。在進(jìn)入異常之前,Cortex-M3處理器將條件代碼標(biāo)志保存在堆棧內(nèi)(硬件壓棧)。您可以使用MSR(2)和MRS(2)指令來訪問APSR。Cortex-M3的內(nèi)部寄存器
中斷狀態(tài)寄存器(IPSR)包含當(dāng)前激活的異常的ISR編號。IPSR的位分配ISRNUMBER基礎(chǔ)級別=0Reset=1NMI=2SVCall=11......31980保留中斷號Cortex-M3的內(nèi)部寄存器執(zhí)行狀態(tài)寄存器(EPSR)為什么需要執(zhí)行狀態(tài)寄存器EPSR?LDM、STM和If-then指令,為多周期指令,如果在執(zhí)行以上多周期指令時(shí)發(fā)生異常,處理器會暫時(shí)停止以上指令的操作,進(jìn)入異常,這時(shí)需要保護(hù)現(xiàn)場。LDM指令STEP1STEP2STEP3STEP4異常異常程序Cortex-M3的內(nèi)部寄存器執(zhí)行狀態(tài)寄存器PSR(EPSR)包含兩個(gè)重疊的區(qū)域:可中斷-可繼續(xù)指令(ICI)區(qū)
多寄存器加載(LDM)和存儲(STM)操作是可中斷的。EPSR的ICI區(qū)用來保存從產(chǎn)生中斷的點(diǎn)繼續(xù)執(zhí)行多寄存器加載和存儲操作時(shí)所必需的信息。If-then狀態(tài)區(qū)
EPSR的IT區(qū)包含了If-Then指令的執(zhí)行狀態(tài)位。注:ICI區(qū)和IT區(qū)是重疊的,因此,If-Then模塊內(nèi)的多寄存器加載或存儲操作不具有可中斷-可繼續(xù)功能。不能直接訪問EPSR,若想修改EPSR必須發(fā)生以下兩個(gè)事件之一:在執(zhí)行LDM或STM指令時(shí)產(chǎn)生一次中斷執(zhí)行If-Then指令Cortex-M3的內(nèi)部寄存器特殊功能寄存器中斷屏蔽寄存器(PRIMASK)相當(dāng)于中斷總開關(guān),為1,所有中斷被屏蔽;為0,中斷能正常響應(yīng)。PRIMASK所有中斷被屏蔽中斷屏蔽寄存器(只有1位)中斷能正常響應(yīng)10Cortex-M3的內(nèi)部寄存器特殊功能寄存器異常屏蔽寄存器(FAULTMASK)相當(dāng)于異??傞_關(guān),為1,除NMI外所有異常被屏蔽;為0,異常能正常響應(yīng)。FAULTMASK除NMI外所有異常被屏蔽異常屏蔽寄存器(只有1位)異常能正常響應(yīng)10Cortex-M3的內(nèi)部寄存器特殊功能寄存器BASEPRI定義屏蔽優(yōu)先級的閥值可屏蔽等于和低于某個(gè)優(yōu)先級的中斷。例如,把BASEPRI設(shè)置為0X40(即2<<5),則2和2以上優(yōu)先級的中斷被屏蔽,只有0和1優(yōu)先級的中斷不被屏蔽。注:BASEPRI與優(yōu)先級分組有關(guān),stellaris系列處理器使用高3位來配置。BASEPRI2優(yōu)先級0優(yōu)先級1優(yōu)先級2優(yōu)先級3優(yōu)先級4….中斷被屏蔽中斷可響應(yīng)Cortex-M3的內(nèi)部寄存器特殊功能寄存器BASEPRI_MAX與BASEPRI為同一寄存器BASEPRI可任意設(shè)置新的優(yōu)先級閥值。BASEPRI_MAX只允許新的閥值比原來的更小,即只能一次次的擴(kuò)大屏蔽范圍。Cortex-M3的內(nèi)部寄存器控制寄存器(CONTROL)CONTROL寄存器由兩個(gè)狀態(tài)位組成:CONTROL[0]CONTROL[1]0特權(quán)模式主堆棧1用戶模式進(jìn)程堆棧功能:定義特權(quán)級別,選擇堆棧指針Cortex-M3的內(nèi)部寄存器特殊用途程序狀態(tài)寄存器寄存器名稱功能編號APSR應(yīng)用狀態(tài)寄存器0IAPSRAPSR和IPSR的組合1EAPSR
APSR和EPSR的組合2XPSRAPSR、EPSR和IPSR的組合3IPSR中斷狀態(tài)寄存器
5EPSR執(zhí)行狀態(tài)寄存器6IEPSRIPSR和EPSR的組合7MSP主堆棧指針8PSP進(jìn)程堆棧指針9PRIMASK中斷屏蔽寄存器16BASEPRI可屏蔽等于和低于某個(gè)優(yōu)先級的中斷17BASEPRI_MAXBASEPRI允許設(shè)置的最大值18FAULTMASK異常屏蔽寄存器19CONTROL控制寄存器20Cortex-M3的編程模式特權(quán)訪問和用戶訪問處理模式線程模式特權(quán)訪問用戶訪問始終特權(quán)訪問兩種模式為處理(handler)模式和線程(thread)模式,這兩種模式是為了區(qū)別正在執(zhí)行代碼的類型。處理模式為異常處理例程的代碼;線程模式為普通應(yīng)用程序的代碼。Cortex-M3的編程模式特權(quán)執(zhí)行可以訪問所有資源。非特權(quán)執(zhí)行時(shí)對有些資源的訪問受到限制或不允許訪問。如部分指令的使用(設(shè)置FAULTMASK和PRIMASK的CPS指令)
對系統(tǒng)控制空間(SCS)的大部分寄存器的訪問。特權(quán)訪問和用戶訪問(非特權(quán)訪問)的區(qū)別FAULTMA
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年常州工業(yè)職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 2025年山東工業(yè)職業(yè)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 2025年山東化工職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 元認(rèn)知策略在高中英語聽力教學(xué)中的應(yīng)用研究
- 三年級數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)及答案
- 2025年安徽體育運(yùn)動職業(yè)技術(shù)學(xué)院高職單招高職單招英語2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025至2030年中國排汽風(fēng)機(jī)數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025年天津城市職業(yè)學(xué)院高職單招高職單招英語2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025年天津醫(yī)學(xué)高等??茖W(xué)校高職單招高職單招英語2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025至2030年中國加固型家用電器整流子數(shù)據(jù)監(jiān)測研究報(bào)告
- 書籍小兵張嘎課件
- 藝術(shù)哲學(xué):美是如何誕生的學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 北京海淀區(qū)2025屆高三下第一次模擬語文試題含解析
- 量子醫(yī)學(xué)治療學(xué)行業(yè)投資機(jī)會分析與策略研究報(bào)告
- 多重耐藥菌病人的管理-(1)課件
- (高清版)TDT 1056-2019 縣級國土資源調(diào)查生產(chǎn)成本定額
- 環(huán)境監(jiān)測對環(huán)境保護(hù)的意義
- 2023年數(shù)學(xué)競賽AMC8試卷(含答案)
- 神經(jīng)外科課件:神經(jīng)外科急重癥
- 2023年十天突破公務(wù)員面試
- 《瘋狂動物城》中英文對照(全本臺詞)
評論
0/150
提交評論