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

下載本文檔

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

文檔簡介

1、1ARM微處理器及其硬件體系結(jié)構(gòu)微處理器及其硬件體系結(jié)構(gòu)1.1 硬件基礎(chǔ)硬件基礎(chǔ)1、馮、馮諾依曼體系結(jié)構(gòu)模型諾依曼體系結(jié)構(gòu)模型指令寄存器指令寄存器控制器控制器數(shù)據(jù)通道數(shù)據(jù)通道輸入輸入輸出輸出中央處理器中央處理器存儲器存儲器程序程序指令指令0指令指令1指令指令2指令指令3指令指令4數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)0數(shù)據(jù)數(shù)據(jù)1數(shù)據(jù)數(shù)據(jù)222、馮、馮諾依曼體系的特點諾依曼體系的特點1)數(shù)據(jù)與指令都存儲在存儲器中)數(shù)據(jù)與指令都存儲在存儲器中2)被大多數(shù)計算機(jī)所采用)被大多數(shù)計算機(jī)所采用3)ARM7馮諾依曼體系馮諾依曼體系33、哈佛體系結(jié)構(gòu)、哈佛體系結(jié)構(gòu)指令寄存器指令寄存器控制器控制器數(shù)據(jù)通數(shù)據(jù)通道道輸入輸入輸出輸出中

2、央處理中央處理器器程序存儲程序存儲器器指令指令0指令指令1指令指令2數(shù)據(jù)存儲數(shù)據(jù)存儲器器數(shù)據(jù)數(shù)據(jù)0數(shù)據(jù)數(shù)據(jù)1數(shù)據(jù)數(shù)據(jù)2地址地址指令指令地址地址數(shù)據(jù)數(shù)據(jù)44、哈佛體系結(jié)構(gòu)的特點、哈佛體系結(jié)構(gòu)的特點1)程序存儲器與數(shù)據(jù)存儲器分開)程序存儲器與數(shù)據(jù)存儲器分開2)提供了較大的數(shù)存儲器帶寬)提供了較大的數(shù)存儲器帶寬3)適合于數(shù)字信號處理)適合于數(shù)字信號處理4)大多數(shù))大多數(shù)DSP都是哈佛結(jié)構(gòu)都是哈佛結(jié)構(gòu)5)ARM9是哈佛結(jié)構(gòu)是哈佛結(jié)構(gòu)55 5、CISCCISC:復(fù)雜指令集(:復(fù)雜指令集(Complex Instruction Set ComputerComplex Instruction Set Com

3、puter)具有大量的指令和尋址方式具有大量的指令和尋址方式8/28/2原則:原則:80%80%的程序只使用的程序只使用20%20%的指令的指令大多數(shù)程序只使用少量的指令就能夠運行。大多數(shù)程序只使用少量的指令就能夠運行。6 6、RISCRISC:精簡指令集(:精簡指令集(Reduced Instruction Set Computer)Reduced Instruction Set Computer)在通道中只包含最有用的指令在通道中只包含最有用的指令確保數(shù)據(jù)通道快速執(zhí)行每一條指令確保數(shù)據(jù)通道快速執(zhí)行每一條指令使使CPUCPU硬件結(jié)構(gòu)設(shè)計變得更為簡單硬件結(jié)構(gòu)設(shè)計變得更為簡單6n為增加處理器指令

4、流的速度,為增加處理器指令流的速度,ARM7 系列使用系列使用3級流水線級流水線.u允許多個操作同時處理,而非順序執(zhí)行。允許多個操作同時處理,而非順序執(zhí)行。DecodeFetchExecute從存儲器中讀取指令從存儲器中讀取指令解碼指令中用到的寄存器解碼指令中用到的寄存器寄存器讀(從寄存器寄存器讀(從寄存器Bank)移位及移位及ALU操作操作寄存器寫(到寄存器寄存器寫(到寄存器Bank )PCPCPC - 4 PC-2PC - 8 PC - 4ARMThumb!PC指向正被取指的指令,而非正在執(zhí)行的指令!指向正被取指的指令,而非正在執(zhí)行的指令!7、流水線技術(shù):、流水線技術(shù): 幾個指令可以并行執(zhí)

5、行幾個指令可以并行執(zhí)行 提高了提高了CPU的運行效率的運行效率 內(nèi)部信息流要求通暢流動內(nèi)部信息流要求通暢流動 7n該例中用該例中用6個時鐘周期執(zhí)行了個時鐘周期執(zhí)行了6條指令條指令n所有的操作都在寄存器中(單周期執(zhí)行)所有的操作都在寄存器中(單周期執(zhí)行)n指令周期數(shù)指令周期數(shù) (CPI) = 1CycleOperationADDSUBORRANDEORORR123456789FDEFDEFEFDEFDEDFDEWF 取指取指 D 解碼解碼E 執(zhí)行執(zhí)行M8 8、最佳流水線、最佳流水線89、超標(biāo)量執(zhí)行、超標(biāo)量執(zhí)行超標(biāo)量超標(biāo)量CPUCPU采用多條流水線結(jié)構(gòu)采用多條流水線結(jié)構(gòu)執(zhí)行執(zhí)行1預(yù)取預(yù)取指令指令C

6、ACHE譯碼譯碼2譯碼譯碼1執(zhí)行執(zhí)行2執(zhí)行執(zhí)行1預(yù)取預(yù)取譯碼譯碼2譯碼譯碼1執(zhí)行執(zhí)行2流流水水線線1流流水水線線2數(shù)據(jù)數(shù)據(jù)910、高速緩存(、高速緩存(CACHE)1、為什么采用高速緩存、為什么采用高速緩存 微處理器的時鐘頻率比內(nèi)存速度提高快得多,高速緩存可以微處理器的時鐘頻率比內(nèi)存速度提高快得多,高速緩存可以提高內(nèi)存的平均性能。提高內(nèi)存的平均性能。2、高速緩存的工作原理、高速緩存的工作原理 高速緩存是一種小型、快速的存儲器,它保存部分主存內(nèi)容高速緩存是一種小型、快速的存儲器,它保存部分主存內(nèi)容的拷貝。的拷貝。 CPU高速緩存控制器CACHE主存數(shù)據(jù)數(shù)據(jù)地址1011、總線和總線橋總線和總線橋C

7、PU低速設(shè)備橋數(shù)據(jù)高速總線存儲器高速設(shè)備高速設(shè)備低速總線1112、存儲器系統(tǒng)、存儲器系統(tǒng)RAM:隨機(jī)存取存儲器:隨機(jī)存取存儲器 SRAM:靜態(tài)隨機(jī)存儲器:靜態(tài)隨機(jī)存儲器DRAM:動態(tài)隨機(jī)存儲器:動態(tài)隨機(jī)存儲器 1)SRAM比比DRAM快快2)SRAM比比DRAM耗電多耗電多3)DRAM存儲密度比存儲密度比SRAM高得多高得多4)DRAM需要周期性刷新需要周期性刷新ROM:只讀存儲器:只讀存儲器FLASH:閃存:閃存CSR/WAddrDataSRAMCSR/WCASDataRASAddrDRAM121.2 ARM7處理器內(nèi)核處理器內(nèi)核nARM7TDMI 特性特性n3 級流水線級流水線n馮馮.諾依

8、曼架構(gòu)諾依曼架構(gòu)nCPI(Cycle Per Instruction) 約為約為1.9 nT-Thumb 架構(gòu)擴(kuò)展架構(gòu)擴(kuò)展, 提供兩個獨立指令提供兩個獨立指令集:集:nARM 指令,均為指令,均為 32位位nThumb指令,均為指令,均為 16位位nD - 內(nèi)核具有內(nèi)核具有Debug擴(kuò)展結(jié)構(gòu)擴(kuò)展結(jié)構(gòu)nM 增強乘法器增強乘法器 (32x8) 支持支持64位結(jié)果位結(jié)果.nI - EmbeddedICE 邏輯邏輯1、ARM7TDMI處理器處理器131.3 ARM 架構(gòu)架構(gòu)1、數(shù)據(jù)和指令類型、數(shù)據(jù)和指令類型nARM 采用的是采用的是32位架構(gòu)位架構(gòu).n ARM 約定約定:Byte :8 bitsHal

9、fword :16 bits (2 byte)Word :32 bits (4 byte)n大部分大部分ARM core 提供:提供:ARM 指令集(32-bit) Thumb 指令集(16-bit )nJazelle cores 支持支持 Java bytecode142、處理器工作模式(、處理器工作模式(ARM 有有7個)個)User(用戶模式用戶模式): 非特權(quán)模式,大部分任務(wù)執(zhí)行在這種模式非特權(quán)模式,大部分任務(wù)執(zhí)行在這種模式FIQ(快速中斷模式快速中斷模式): 高優(yōu)先級(高優(yōu)先級(fast) 中斷產(chǎn)生時將會進(jìn)入這種模式中斷產(chǎn)生時將會進(jìn)入這種模式IRQ(中斷模式中斷模式): 低優(yōu)先級(低

10、優(yōu)先級(normal) 中斷產(chǎn)生時將會進(jìn)入這種模式中斷產(chǎn)生時將會進(jìn)入這種模式Supervisor(管理員模式管理員模式): 當(dāng)復(fù)位或軟中斷指令執(zhí)行時將會進(jìn)入這種模式當(dāng)復(fù)位或軟中斷指令執(zhí)行時將會進(jìn)入這種模式Abort(中止模式中止模式): 當(dāng)存取(數(shù)據(jù)和指令)異常時將會進(jìn)入這種模式當(dāng)存?。〝?shù)據(jù)和指令)異常時將會進(jìn)入這種模式Undef(未定義模式未定義模式): 當(dāng)執(zhí)行未定義指令時會進(jìn)入這種模式當(dāng)執(zhí)行未定義指令時會進(jìn)入這種模式System(系統(tǒng)模式系統(tǒng)模式): 使用和使用和User模式相同寄存器集的特權(quán)模式模式相同寄存器集的特權(quán)模式特權(quán)模式特權(quán)模式=異常模式異常模式+ System異常模式異常模式1

11、53、ARM 寄存器寄存器(37)USRr0r1r2r3r4r5r6r7r8r9r10r11r12r15(pc)cpsrr13(sp)r14(lr)當(dāng)前可見寄存器當(dāng)前可見寄存器spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr8r9r10r11r12r13(sp)r14(lr)spsr備用寄存器備用寄存器ABORTFIQIRQSVCUndefr13(sp)r14(lr)30 30 個通用個通用3232位寄存器,位寄存器,1 1 個程序計數(shù)器個程序計數(shù)器PCPC6 6 個狀態(tài)寄存器個狀態(tài)寄存器216Thumb stateLow

12、registersThumb stateHigh registersNote: System模式使用模式使用user模式寄存器集模式寄存器集FIQUsermoder0-r7,r15,andcpsrr8r9r10r11r12r13(sp)r14(lr)spsrUser&Sysr8r9r10r11r12r13(sp)r14(lr)r15(pc)cpsrr0r1r2r3r4r5r6r7IRQr13(sp)r14(lr)spsrUsermoder0-r12r15,andcpsrSVCr13(sp)r14(lr)spsrUsermoder0-r12r15,andcpsrUndefr13(sp)r

13、14(lr)spsrUsermoder0-r12r15,andcpsrAbortr13(sp)r14(lr)spsrUsermoder0-r12r15,andcpsr寄存器組織寄存器組織17ARM 寄存器名稱寄存器名稱nARM 有有37個個32-Bits長的寄存器長的寄存器.n1 個用作個用作PC( program counter)(r15)n1個用作個用作CPSR(current program status register)n5個用作個用作SPSR(saved program status registers)n30 個通用寄存器個通用寄存器n當(dāng)前處理器的模式?jīng)Q定著哪組寄存器可操作當(dāng)前處

14、理器的模式?jīng)Q定著哪組寄存器可操作. 任何模式都可以存?。喝魏文J蕉伎梢源嫒。?n相應(yīng)的相應(yīng)的r0-r12子集子集n相應(yīng)的相應(yīng)的 r13 (the stack pointer, sp) and r14 (the link register, lr)n相應(yīng)的相應(yīng)的 r15 ( the program counter, pc)n相應(yīng)的相應(yīng)的CPSR(current program status register, cpsr)n特權(quán)模式特權(quán)模式 (除除system模式的異常模式模式的異常模式) 還可以存?。贿€可以存?。籲相應(yīng)的相應(yīng)的 spsr (saved program status registe

15、r)184、程序狀態(tài)寄存器、程序狀態(tài)寄存器n 條件位:條件位:uN = Negative result from ALU uZ = Zero result from ALUuC = ALU operation Carried outuV = ALU operation oVerflowednQ 位:位:u僅僅ARM 5TE/J架構(gòu)支持架構(gòu)支持u指示飽和狀態(tài)指示飽和狀態(tài)nJ 位位u僅僅ARM 5TE/J架構(gòu)支持架構(gòu)支持uJ = 1: 處理器處于處理器處于Jazelle狀態(tài)狀態(tài)n中斷禁止位:中斷禁止位:uI = 1: 禁止禁止 IRQ.uF = 1: 禁止禁止 FIQ.nT Bitu僅僅ARM x

16、T架構(gòu)支持架構(gòu)支持uT = 0: 處理器處于處理器處于 ARM 狀態(tài)狀態(tài)uT = 1: 處理器處于處理器處于 Thumb 狀狀態(tài)態(tài)nMode位:位:u處理器模式位處理器模式位2731N Z C V Q2867I F T mode1623 815 54024fsxc U n d e f i n e dJ說明說明195、程序指針、程序指針PC (r15)n當(dāng)處理器執(zhí)行在當(dāng)處理器執(zhí)行在ARM狀態(tài)狀態(tài):所有指令所有指令 32 bits 寬寬所有指令必須所有指令必須 word 對齊對齊所以所以 pc值由值由bits 31:2決定決定, bits 1:0 未定義未定義 (所以指令不能所以指令不能halfw

17、ord / byte對齊對齊).n當(dāng)處理器執(zhí)行在當(dāng)處理器執(zhí)行在Thumb狀態(tài)狀態(tài):所有指令所有指令 16 bits 寬寬所有指令必須所有指令必須 halfword 對齊對齊所以所以 pc值由值由bits 31:1決定決定, bits 0 未定義未定義 (所以指令不能所以指令不能 byte對齊對齊).n當(dāng)處理器執(zhí)行在當(dāng)處理器執(zhí)行在Jazelle狀態(tài)狀態(tài):所有指令所有指令 8 bits 寬寬處理器執(zhí)行處理器執(zhí)行 word 存取一次取存取一次取4條指令條指令206 6、存儲器模式、存儲器模式l大端模式大端模式( (高對低)高對低)u最高位最高位字節(jié)保存在字節(jié)保存在最低位地址最低位地址u字由最低位字節(jié)

18、的字節(jié)地址尋址字由最低位字節(jié)的字節(jié)地址尋址3124 2316 158 70 字地址字地址89101184567401230 低地址低地址 高地址高地址l小端模式(低對低)小端模式(低對低)u最低位最低位字節(jié)保存在字節(jié)保存在最低位地址最低位地址u字由最低位字節(jié)的字節(jié)地址尋址字由最低位字節(jié)的字節(jié)地址尋址3124 2316 158 70字地址字地址11109887654432100 低地址低地址 高地址高地址211.4 異常異常1、什么是異常?、什么是異常? 內(nèi)部或外部中斷源產(chǎn)生并引起處理器處理一個事件,如外部內(nèi)部或外部中斷源產(chǎn)生并引起處理器處理一個事件,如外部中斷或試圖執(zhí)行未定義指令都會引起異常。

19、中斷或試圖執(zhí)行未定義指令都會引起異常。 處理異常之前必須保留處理器的狀態(tài)處理異常之前必須保留處理器的狀態(tài)2 2、異常類型、異常類型 FIQ (Fast Interrupt ReQuest)FIQ (Fast Interrupt ReQuest) IRQ(Interrupt ReQuest) IRQ(Interrupt ReQuest) 未定義指令未定義指令 預(yù)取中止預(yù)取中止 數(shù)據(jù)中止數(shù)據(jù)中止 復(fù)位復(fù)位 軟件中斷軟件中斷Software interruptSoftware interrupt 通過軟件中斷產(chǎn)生通過軟件中斷產(chǎn)生 進(jìn)行管理員模式中獲得進(jìn)行管理員模式中獲得 通常要求特殊的管理功能,如操

20、作系統(tǒng)支持通常要求特殊的管理功能,如操作系統(tǒng)支持223 3、異常優(yōu)先級、異常優(yōu)先級Reset (highest priority)Reset (highest priority)(2) Data abort(2) Data abort(3) FIQ(3) FIQ(4) IRQ(4) IRQ(5) Prefetch abort(5) Prefetch abort(6) (6) 未定義指令未定義指令, Software interrupt (, Software interrupt (最低優(yōu)先級最低優(yōu)先級) )l只要產(chǎn)生異常就會導(dǎo)致正常的程序流程被臨時停止只要產(chǎn)生異常就會導(dǎo)致正常的程序流程被臨時停

21、止, ,例如外圍例如外圍中斷服務(wù)程序中斷服務(wù)程序l在異常被處理前在異常被處理前, ,當(dāng)前的處理器狀態(tài)必須被保存當(dāng)前的處理器狀態(tài)必須被保存, ,以便處理程以便處理程序完成后序完成后, ,最后的程序可以被恢復(fù)最后的程序可以被恢復(fù). .234 4、異常向量、異常向量245、進(jìn)入異常的操作進(jìn)入異常的操作l在相應(yīng)的鏈接寄存器在相應(yīng)的鏈接寄存器LR LR (r14)(r14)中保存下一條指令的地址中保存下一條指令的地址l將將CPSRCPSR復(fù)制到相應(yīng)的復(fù)制到相應(yīng)的SPSRSPSR中中l(wèi)強制使強制使CPSRCPSR模式位置成對應(yīng)異常類型的值模式位置成對應(yīng)異常類型的值l強制使程序計數(shù)器指向相應(yīng)異常向量強制使程

22、序計數(shù)器指向相應(yīng)異常向量, ,取下一條指令取下一條指令25例子例子: : 用戶模式到用戶模式到 IRQIRQ模式再到模式再到FIQFIQ模式模式FIQUsermoder0-r7,r15,andcpsrr8r9r10r11r12r13(sp)r14(lr)spsrUser&Sysr8r9r10r11r12r13(sp)r14(lr)r15(pc)cpsrr0r1r2r3r4r5r6r7IRQr13(sp)r14(lr)spsrUsermoder0-r12r15,andcpsr發(fā)生異常發(fā)生異常發(fā)生異常發(fā)生異常從異常返回從異常返回從異常返回從異常返回從異常返回時從異常返回時需要手動恢復(fù)需要手

23、動恢復(fù)PC和和CPSR產(chǎn)生異常時自產(chǎn)生異常時自動保存動保存PC和和CPSR266、退出異常的操作退出異常的操作l將將LRLR寄存器中的值減去相應(yīng)的偏移量送到寄存器中的值減去相應(yīng)的偏移量送到PCPC中中l(wèi)將將 SPSR SPSR 復(fù)制回復(fù)制回 CPSRCPSRl清除禁止中斷標(biāo)志清除禁止中斷標(biāo)志, ,如果它被設(shè)置成使能如果它被設(shè)置成使能271)取指令()取指令(Instruction Fetch):TF2)指令譯碼()指令譯碼(Instruction Decode):):TD3)執(zhí)行指令()執(zhí)行指令(Instruction Execute):):TE4)存儲()存儲(Storage):):TS一般

24、指令的執(zhí)行周期一般指令的執(zhí)行周期T每條指令的執(zhí)行周期:每條指令的執(zhí)行周期:T= TF+TD+TE+TS28程序狀態(tài)寄存器程序狀態(tài)寄存器PSRPSR的模式位的模式位29字節(jié)訪問字節(jié)訪問(字節(jié)對齊字節(jié)對齊)半字訪問半字訪問(半字對齊半字對齊)字訪問字訪問(字對齊字對齊)3210765402468ace089abcdef48c對齊對齊301) 說出說出ARM可以工作的模式名字??梢怨ぷ鞯哪J矫?。2) ARM核有多少個寄存器?核有多少個寄存器?3) 什么寄存器用于存儲什么寄存器用于存儲PC和連接寄存器?和連接寄存器?4) R13通常用來存儲什么?通常用來存儲什么?7) CPSR的哪一位反映了處理器的狀態(tài)?的哪一位反映

溫馨提示

  • 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

提交評論