嵌入式微處理器第二章_第1頁(yè)
嵌入式微處理器第二章_第2頁(yè)
嵌入式微處理器第二章_第3頁(yè)
嵌入式微處理器第二章_第4頁(yè)
嵌入式微處理器第二章_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第2章嵌入式處理器體系結(jié)構(gòu)

本章先概述當(dāng)今流行的嵌入式處理器核的基本情況,進(jìn)而以ARM核為例介紹嵌入式處理器的體系結(jié)構(gòu)。使大家對(duì)ARM技術(shù)有個(gè)全面的了解和掌握,建立起以ARM技術(shù)為基礎(chǔ)的嵌入式系統(tǒng)應(yīng)用。本章主要內(nèi)容ARM體系結(jié)構(gòu)發(fā)展與技術(shù)特征

2.22.4工作狀態(tài)與工作模式32.3嵌入式處理器內(nèi)核簡(jiǎn)介

32.1ARM處理器寄存器組織2.5ARM處理器的異常中斷

存儲(chǔ)器格式及數(shù)據(jù)類型

2.62.8ARM流水線技術(shù)

32.7ARM處理器內(nèi)核結(jié)構(gòu)(重點(diǎn))

2.1嵌入式處理器內(nèi)核(1)

1.內(nèi)核的含義內(nèi)核是指處理器內(nèi)部核心部件,通常指的是一種設(shè)計(jì)技術(shù),并不是一種芯片,內(nèi)核的設(shè)計(jì)一般追求高速度、低功耗、易于集成。2.典型內(nèi)核

嵌入式領(lǐng)域體系結(jié)構(gòu)全部是RISC指令集的處理器內(nèi)核。盡管都毫不例外的采用RISC結(jié)構(gòu),但各自有各自的優(yōu)勢(shì)和應(yīng)用領(lǐng)域,目前世界上有四大流派的嵌入式處理器內(nèi)核生產(chǎn)廠家及嵌入式處理器內(nèi)核(見下頁(yè)圖)。返回嵌入式處理器內(nèi)核(2)ARM

ARM

公司

MIPS

MIPS

公司

Motorola

Freescale

公司

典型嵌入式處理器內(nèi)核

高低速兼容

外設(shè)接口豐富

應(yīng)用廣泛

內(nèi)置DSP

高速

32/64位

多核集成

低功耗

16/32位

主流產(chǎn)品

PowerPC68K/ColdFire

Motorola

公司

由ARM7的馮·諾依曼體系結(jié)構(gòu)(程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器統(tǒng)一編址)到ARM9的哈佛體系結(jié)構(gòu)(程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器分開獨(dú)立編址)。存儲(chǔ)器結(jié)構(gòu)指令流水線7種不同的版本V1、V2、V3、V4、V5、V6和V7。2.2ARM體系結(jié)構(gòu)的發(fā)展指令流水線由ARM7的3級(jí)到ARM10的6級(jí)。版本架構(gòu)基本性能V1ARM1,基本的數(shù)據(jù)處理指令(無(wú)乘法)、字節(jié)、半字和字的Load/Store指令、轉(zhuǎn)移指令,尋址空間64MB。V2ARM2/ARM3,增加乘法和乘加指令、支持協(xié)處理器操作指令、快速中斷模式、SWP/SWPB的最基本存儲(chǔ)器與寄存器交換指令V3把尋址空間增至32位(4GB),增加了當(dāng)前程序狀態(tài)寄存器CPSR和程序狀態(tài)保存寄存器SPSR以便于異常處理。增加了中止和未定義2種處理器模式.V4引進(jìn)了16位的Thumb指令集,ARM7、ARM9和StrongARM都采用了該版結(jié)構(gòu)V5ARM10和XScale都采用該版架構(gòu),新增指令有帶有鏈接和交換的轉(zhuǎn)移BLX指令、計(jì)數(shù)前導(dǎo)零計(jì)數(shù)CLZ指令、BRK中斷指令、增加了信號(hào)處理指令(V5TE版)。V6包括100%與以前的體系兼容、SIMD媒體擴(kuò)展,使媒體處理速度快1.75倍、改進(jìn)了的內(nèi)存管理,使系統(tǒng)性能提高30%(2001年)V7更高性能、功耗效率和代碼密度的Thumb?-2技術(shù)(2005年),Cortex-A8TM處理器采用的就是V7版的結(jié)構(gòu)返回ARM體系結(jié)構(gòu)的技術(shù)特征(1)

單周期操作

ARM指令系統(tǒng)中的指令只需要執(zhí)行簡(jiǎn)單的和基本的操作,因此其執(zhí)行過程在一個(gè)機(jī)器周期內(nèi)完成。

采用加載/存儲(chǔ)指令結(jié)構(gòu)

存儲(chǔ)器訪問指令的執(zhí)行時(shí)間長(zhǎng),因此只采用了加載和存儲(chǔ)兩種指令對(duì)存儲(chǔ)器進(jìn)行讀和寫的操作,面向運(yùn)算部件的操作都經(jīng)過加載指令和存儲(chǔ)指令,從存儲(chǔ)器取出后預(yù)先存放到寄存器對(duì)內(nèi),以加快執(zhí)行速度。ARM體系結(jié)構(gòu)的技術(shù)特征(2)固定的32位長(zhǎng)度指令

指令格式固定為32位長(zhǎng)度,使指令譯碼結(jié)構(gòu)簡(jiǎn)單,效率提高。

3地址指令格式

采用三地址指令格式、較多寄存器和對(duì)稱的指令格式便于生成優(yōu)化代碼,降低編譯開銷。

指令流水線技術(shù)

ARM采用多級(jí)流水線技術(shù),以提高指令執(zhí)行的效率。

1.ARM處理器工作狀態(tài)

(1)ARM狀態(tài):ARM工作于32位指令狀態(tài)(2)Thumb狀態(tài):ARM執(zhí)行16位的Thumb指令的狀態(tài)2.ARM處理器工作模式共7種:

用戶模式、快速中斷模式、外部中斷模式、管理模式、中止模式、未定義指令模式以及系統(tǒng)模式詳見附表。2.3ARM工作狀態(tài)與工作模式工作模式功能說(shuō)明可訪問的寄存器CPSR[M4:M0]用戶模式User程序正常執(zhí)行工作模式PC,R14~R0,CPSR10000快速中斷模式FIQ處理高速中斷,用于高速數(shù)據(jù)傳輸或通道處理PC,R14_fiq~R8_fiq,R7~R0,CPSR,SPSR_fiq10001外部中斷模式IRQ用于普通中斷處理PC,R14_irq~R13_irq,R12~R0,CPSR,SPSR_irq10010管理模式SVC操作系統(tǒng)的保護(hù)模式,處理軟中斷SWIPC,R14_svc~R13_svc,R12~R0,CPSR,SPSR_svc10011中止模式ABT處理存儲(chǔ)器故障,實(shí)現(xiàn)虛擬存儲(chǔ)器和存儲(chǔ)器保護(hù)PC,R14_abt~R13_abt,R12~R0,CPSR,SPSR_abt10111未定義指令模式UND處理未定義的指令陷井,用于支持硬件協(xié)處理器仿真PC,R14_und~R13_und,R12~R0,CPSR,SPSR_und11011系統(tǒng)模式SYS運(yùn)行特權(quán)級(jí)的操作系統(tǒng)任務(wù)PC,R14~R0,CPSR11111返回2.4ARM處理器寄存器組織工作于ARM狀態(tài)下,在物理分配上,寄存器被安排成部分重疊的組,每種處理器工作模式使用不同的寄存器,不同模式下寄存器組如圖所示。由圖中得出:

ARM處理器共有37個(gè)寄存器,包括31個(gè)通用寄存器(含PC)和6個(gè)狀態(tài)寄存器。共同點(diǎn)是,一無(wú)論何種模式,R15均作為PC使用;二是CPSR為當(dāng)前程序狀態(tài)寄存器;三是R7~R0為公用的通用寄存器。不同之處在于高端7個(gè)通用寄存器和狀態(tài)寄存器在不同模式下不同。

所有通用寄存器均為32位結(jié)構(gòu)。

返回Thumb狀態(tài)下的寄存器組織

返回模式寄存器用戶模式系統(tǒng)模式管理模式中止模式未定義模式外部中斷模式快速中斷模式通用寄存器R0R1R2R3R4R5R6R7R13(SP)R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14_svcR14_abtR14_undR14_irqR14_fiq程序計(jì)數(shù)器R15(PC)狀態(tài)寄存器CPSR無(wú)SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq狀態(tài)寄存器CPSR

返回

313029282726……876543210NZCVQ保留IFTM4M3M2M1M0模式選擇(表2.2)模式切換1=Thumb模式0=ARM模式F=1禁止快速中斷F=0允許快速中斷快速中斷禁止外部中斷禁止I=1禁止外部中斷I=0允許外部中斷增強(qiáng)DSP指令溢出Q=1DSP指令溢出Q=0

DSP指令無(wú)溢出溢出標(biāo)志進(jìn)借位標(biāo)志全0標(biāo)志符號(hào)標(biāo)志1有效2.5ARM處理器的異常中斷

異常(Exceptions)是由于內(nèi)部或外部事件引起的請(qǐng)求,使處理器去作相應(yīng)處理的事件。有7類:異常類型優(yōu)先級(jí)別工作模式異常向量地址說(shuō)明高端低端復(fù)位RESET1管理模式0XFFFF00000X00000000當(dāng)RESET復(fù)位引腳有效(低電平)時(shí)進(jìn)入該異常未定義的指令UND6未定義指令中止模式0XFFFF00040X00000004當(dāng)前指令未定義時(shí)產(chǎn)生指令異常??衫盟M協(xié)處理器操作。軟件中斷SWI6管理模式0XFFFF00080X00000008用戶定義的中斷指令,可用于用戶模式下的程序調(diào)用特權(quán)操作。指令預(yù)取中止PABT5中止模式0XFFFF000C0X0000000C當(dāng)預(yù)取指令地址不存在時(shí)或該地址不允許當(dāng)前指令訪問時(shí)執(zhí)行指令產(chǎn)生的異常。數(shù)據(jù)訪問中止DABT2中止模式0XFFFF00100X00000010當(dāng)數(shù)據(jù)訪問指令的目標(biāo)地址不存在時(shí)或該地址不允許當(dāng)前指令訪問時(shí)執(zhí)行指令產(chǎn)生的異常外部中斷請(qǐng)求IRQ4外部中斷模式0XFFFF00180X00000018有外部中斷時(shí)發(fā)生異??焖僦袛嗾?qǐng)求FIQ3快速中斷模式0XFFFF001C0X0000001C有快速中斷請(qǐng)求時(shí)發(fā)生的異常優(yōu)先級(jí)???返回異常的中斷響應(yīng)過程

返回1.保護(hù)狀態(tài)標(biāo)志將CPSR的值保存到將要執(zhí)行的異常中斷對(duì)應(yīng)的各自SPSR中(保護(hù)目的,并不是傳統(tǒng)的壓入堆棧的方法)。2.設(shè)置工作模式并禁止中斷(1)設(shè)工作模式(M4:M0的5個(gè)位)(2)禁止中斷(I=1禁止IRQ中斷,F(xiàn)=1禁止FIQ中斷)3.保護(hù)斷點(diǎn)地址將引起異常指令的下一條地址(斷點(diǎn)地址)保存到新的異常工作模式的R14中。4.轉(zhuǎn)入中斷服務(wù)程序入口地址給程序計(jì)數(shù)器PC強(qiáng)制賦值,使轉(zhuǎn)入由表2.3所示的向量地址,以便執(zhí)行相應(yīng)的處理程序。從異常處理程序中返回

1.恢復(fù)原來(lái)被保護(hù)的用戶寄存器。2.將SPSR_mode寄存器值復(fù)制到CPSR中, 使得CPSR從相應(yīng)的SPSR中恢復(fù),以恢 復(fù)被中斷的程序工作狀態(tài)。3.根據(jù)異常類型將PC值恢復(fù)成斷點(diǎn)地 址,以執(zhí)行用戶原來(lái)運(yùn)行著的程序。4.清除CPSR中的中斷(I=0和F=0),開 放外部中斷和快速中斷。返回異常中斷返回的指令示例

返回異常返回指令以前狀態(tài)ARM狀態(tài)Thumb狀態(tài)軟中斷指令SWIMOVSPC,R14_svcPC+4PC+2未定義指令UDEFMOVSPC,R14_undPC+4PC+2快速中斷FIQSUBSPC,R14_fiq,#4PC+4PC+4外部中斷IRQSUBSPC,R14_irq,#4PC+4PC+4預(yù)取中止PABTSUBSPC,R14_abt,#4PC+4PC+4數(shù)據(jù)中止DABTSUBSPC,R14_abt,#8PC+8PC+82.6存儲(chǔ)器格式及數(shù)據(jù)類型(1)

兩種數(shù)據(jù)存儲(chǔ)格式1.小端模式(Little-endian) 低字節(jié)數(shù)據(jù)放低地址。2.大端模式(Big-endian) 高字節(jié)數(shù)據(jù)放低地址。數(shù)據(jù)31………2423………1615………87………0模式0x1234567812345678小端模式78563412大端模式返回存儲(chǔ)器格式及數(shù)據(jù)類型(2)數(shù)據(jù)類型ARM支持8位、16位和32位三種數(shù)據(jù)類型。如:0x6b0x128c0x12345678其中每一種又支持有符號(hào)數(shù)和無(wú)符號(hào)數(shù),因此認(rèn)為共有6種數(shù)據(jù)類型。ARM還支持其它類型的數(shù)據(jù),如浮點(diǎn)數(shù)的數(shù)據(jù)類型等。

2.7ARM指令流水線技術(shù)指令流水線是RISC結(jié)構(gòu)的一切處理器共同的一個(gè)特點(diǎn),ARM處理器也不例外,但不同的ARM核其流水線級(jí)數(shù)不同。例如:ARM7采用3級(jí)流水線結(jié)構(gòu);ARM9采用5級(jí)流水線結(jié)構(gòu);

ARM10采用6級(jí)流水線結(jié)構(gòu);為何要采用指令流水線技術(shù)?

返回指令流水線技術(shù)的優(yōu)勢(shì)假設(shè)某微處理器以5個(gè)步驟完成一個(gè)指令的執(zhí)行過程時(shí)間片12345678910指令1取指譯碼取數(shù)執(zhí)指回寫指令2取指譯碼取數(shù)執(zhí)指回寫時(shí)間片12345678910指令1取指譯碼取數(shù)執(zhí)指回寫指令2取指譯碼取數(shù)執(zhí)指回寫指令3取指譯碼取數(shù)執(zhí)指回寫指令4取指譯碼取數(shù)執(zhí)指回寫指令5取指譯碼取數(shù)執(zhí)指回寫指令6取指譯碼取數(shù)執(zhí)指回寫無(wú)流水線有流水線返回因此采用指令流水線技術(shù)將大大提高微處理器的運(yùn)行效率

ARM指令流水線級(jí)數(shù)介紹時(shí)間片12345678指令1取指譯碼執(zhí)指指令2取指譯碼執(zhí)指指令3取指譯碼執(zhí)指指令4取指譯碼執(zhí)指指令5取指譯碼執(zhí)指指令6取指譯碼執(zhí)

3級(jí)流水線(如ARM7)時(shí)間片123456789指令1取指譯碼執(zhí)行緩沖回寫指令2取指譯碼執(zhí)行緩沖回寫指令3取指譯碼執(zhí)行緩沖回寫指令4取指譯碼執(zhí)行緩沖回寫指令5取指譯碼執(zhí)行緩沖回寫5級(jí)流水線(如ARM9)采用馮·諾依曼體系結(jié)構(gòu)(程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器統(tǒng)一編址)采用哈佛體系結(jié)構(gòu)(程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器分開獨(dú)立編址)

2.8ARM處理器內(nèi)核ARM處理器核作為基本處理單元,根據(jù)發(fā)展需求還集成了與處理器核密切相關(guān)的功能模塊,如Cache存儲(chǔ)器和存儲(chǔ)器管理MMU硬件,這些基于微處理器核并集成這些IP(IntelligenceProperty)核的標(biāo)準(zhǔn)配置的ARM核都具有基本處理器的配置,這些內(nèi)核稱為處理器核。

RM處理器核當(dāng)前有6個(gè)系列產(chǎn)品如ARM7、ARM9、ARM9E、ARM10E、SecurCore

以及ARM11系列。另外還有IntelXScale

微體系結(jié)構(gòu)和StrongARM結(jié)構(gòu)。

返回ARM處理器內(nèi)核結(jié)構(gòu)

介紹兩種ARM內(nèi)核結(jié)構(gòu):

ARM7TDMI和ARM920T

ARM7TDMI是ARM公司最早為業(yè)界普遍認(rèn)可且得到了最為廣泛應(yīng)用的處理器核,特別是在手機(jī)和PDA中,隨著ARM技術(shù)的發(fā)展,它已是目前基本的ARM核。對(duì)存儲(chǔ)器的訪問采用單一32位數(shù)據(jù)總線傳送指令和數(shù)據(jù)即馮·諾依曼體系結(jié)構(gòu)。

ARM920T是在ARM9TDMI內(nèi)核基礎(chǔ)上增加了MMU和Cache部件的通用微處理器內(nèi)核,采用程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器完全獨(dú)立編址的哈佛結(jié)構(gòu)(Harvard)。

ARM核的命名規(guī)則及含義

ARM7TDMI:支持高密度16位的Thumb指令集;支持片上Debug(調(diào)試);支持增強(qiáng)型Multiplier,即64位乘法;支持嵌入式ICE觀察硬件;ARM7TDMI的可綜合(synthesizable)版本(軟核)ARM7TDMI–S系列號(hào)ARM7TDMI內(nèi)核結(jié)構(gòu)

特點(diǎn)(1)采用V4T,支持64位乘法,半字、有符號(hào)字節(jié)存?。?)支持Thumb指令集(3)32×8DSP乘法器(4)32位尋址空間(4GB)(5)支持ICE(6)JTAG測(cè)試端口結(jié)構(gòu)ARM7TDMI主處理器結(jié)構(gòu)

返回ARM7TDMI功能框圖

返回ARM7TDMI重要接口信號(hào)

(1)時(shí)鐘和時(shí)鐘控制類信號(hào) MCLK:主時(shí)鐘信號(hào)輸入。

nWAIT:總線等待信號(hào)輸入,低電平使總線處于等待狀態(tài)。 ECLK:外部時(shí)鐘信號(hào)輸出,由ARM7TMDI向外部提供時(shí)鐘。

nRESET:復(fù)位信號(hào)輸入,低電平使處理器復(fù)位。(2)地址類信號(hào) A[31:0]:32條地址線A31~A0

nRW:讀寫指示,nRW=0讀操作,nRW=1寫操作。 MAS[1:0]:總線寬度:00=字節(jié)01=半字10=字11=保留

nOPC:信息類型,0=操作碼,1=操作數(shù)。

nTRANS:特權(quán)信息,0=用戶級(jí),1=特權(quán)級(jí)。 LOCK:總線封鎖輸出,1=總線封鎖。 TBIT:工作狀態(tài),0=ARM狀態(tài),1=Thumb狀態(tài)。返回ARM7TDMI重要接口信號(hào)續(xù)

返回(3)存儲(chǔ)器請(qǐng)求信號(hào)

nMREQ:存儲(chǔ)器請(qǐng)求信號(hào),低電平有效。 SEQ:存儲(chǔ)器總線周期選擇類型。

nMERQ與SEQ編碼決定當(dāng)前總線周期的類型如表2.4所示。(4)數(shù)據(jù)時(shí)序信號(hào) D[31:0]:雙向32位數(shù)據(jù)總線。 DIN[31:0]:32位數(shù)據(jù)總線輸入。 DOUT[31:0]:32位數(shù)據(jù)總線輸出。ARM7TDMI重要接口信號(hào)續(xù)

返回(3)存儲(chǔ)器請(qǐng)求信號(hào)

nMREQ:存儲(chǔ)器請(qǐng)求信號(hào),低電平有效。 SEQ:存儲(chǔ)器總線周期選擇類型。

nMERQ與SEQ編碼決定當(dāng)前總線周期的類型如表2.4所示。(4)數(shù)據(jù)時(shí)序信號(hào) D[31:0]:雙向32位數(shù)據(jù)總線。 DIN[31:0]:32位數(shù)據(jù)總線輸入。 DOUT[31:0]:32位數(shù)據(jù)總線輸出。表2.4總線操作類型nMREQSEQ總線周期類型00N周期(非順序周期)01S周期(順序周期)10I周期(內(nèi)部周期)11C周期(協(xié)處理器寄存器傳送周期)總線周期類型

返回(1)非順序周期(N周期) N周期是最簡(jiǎn)單的總線周期,本周期地址與

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論