第2章 ARM技術(shù)概述_第1頁(yè)
第2章 ARM技術(shù)概述_第2頁(yè)
第2章 ARM技術(shù)概述_第3頁(yè)
第2章 ARM技術(shù)概述_第4頁(yè)
第2章 ARM技術(shù)概述_第5頁(yè)
已閱讀5頁(yè),還剩86頁(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)介

1、第二章第二章 ARM技術(shù)概述技術(shù)概述 本章將對(duì)ARM技術(shù)進(jìn)行全面論述,通過(guò)本章的學(xué)習(xí),使大家對(duì)ARM技術(shù)有個(gè)全面的了解和掌握,建立起以ARM技術(shù)為基礎(chǔ)的嵌入式系統(tǒng)應(yīng)用和以ARM核為基礎(chǔ)的嵌入式SoC芯片設(shè)計(jì)的技術(shù)基礎(chǔ)。 本章的主要內(nèi)容為: 2.1 ARM體系結(jié)構(gòu)的發(fā)展歷史和技術(shù)特征2.3 Thumb技術(shù)介紹2.2 ARM體系結(jié)構(gòu)不同版本的發(fā)展概述2.4 ARM處理器工作狀態(tài)2.5 ARM處理器工作模式2.6 ARM寄存器組成2.7 ARM異常中斷本章的主要內(nèi)容為: 2.8 ARM組織結(jié)構(gòu)簡(jiǎn)介2.9 ARM存儲(chǔ)器接口及存儲(chǔ)器層次2.10 ARM協(xié)處理器2.11 ARM片上總線AMBA2.12 A

2、RM的調(diào)試結(jié)構(gòu) 2.13 ARM核綜述2.14 基于ARM核的芯片選擇 2.1 ARM2.1 ARM體系結(jié)構(gòu)的發(fā)展歷史和技術(shù)特征體系結(jié)構(gòu)的發(fā)展歷史和技術(shù)特征1.1. 2.1.1 ARM2.1.1 ARM發(fā)展的歷程發(fā)展的歷程2.2. 2.1.2 ARM2.1.2 ARM體系結(jié)構(gòu)的技術(shù)特征體系結(jié)構(gòu)的技術(shù)特征 2.1.1ARM2.1.1ARM發(fā)展的歷程發(fā)展的歷程 最近最近10多年來(lái)多年來(lái)ARM技術(shù)的突出成果表現(xiàn)在:技術(shù)的突出成果表現(xiàn)在:“Thumb”的新型壓縮指令新型壓縮指令格式,降低系統(tǒng)成本和功耗;ARM9、ARM10、Strong-ARM和ARM11等系列處理器的開(kāi)發(fā),提高性能,使得在多媒體產(chǎn)品

3、多媒體產(chǎn)品的應(yīng)用中更加廣泛;更好的軟件開(kāi)發(fā)和調(diào)試開(kāi)發(fā)和調(diào)試環(huán)境,加快用戶產(chǎn)品開(kāi)發(fā);更為廣泛的產(chǎn)業(yè)聯(lián)盟使得基于ARM的嵌入式應(yīng)應(yīng)用領(lǐng)域用領(lǐng)域更加廣闊;嵌入在復(fù)雜SoC中、基于ARM核的調(diào)試系統(tǒng)代表著當(dāng)今片上調(diào)試技術(shù)的前沿。 ARM ARM發(fā)展的歷程發(fā)展的歷程第一片ARM處理器是1983年10月到1985年4月間在位于英國(guó)劍橋的Acorn Computer公司開(kāi)發(fā) 1990年,為廣泛推廣ARM技術(shù)而成立了獨(dú)立的公司 20世紀(jì)90年代, ARM快速進(jìn)入世界市場(chǎng) ARM ARM發(fā)展的歷程發(fā)展的歷程在ARM的發(fā)展歷程中,從ARM7開(kāi)始,ARM核被普遍認(rèn)可和廣泛使用 1995年 StrongARM 問(wèn)世

4、XScale是下一代StrongARM芯片的發(fā)展基礎(chǔ) ARM10TDMI是ARM處理器核中的高端產(chǎn)品 ARM11是ARM家族中性能最強(qiáng)的一個(gè)系列 ARM ARM發(fā)展的歷程發(fā)展的歷程ARM技術(shù)還將不斷發(fā)展。在嵌入式領(lǐng)域,ARM已取得了極大的成功,造就了IP核商業(yè)化、市場(chǎng)化的神話。據(jù)最新統(tǒng)計(jì),全球有103家巨型IT公司在采用ARM技術(shù),20家最大的半導(dǎo)體廠商中有19家是ARM的用戶,包括德州儀器,意法半導(dǎo)體,Philips,Intel等。ARM系列芯片已經(jīng)被廣泛的應(yīng)用于移動(dòng)電話、手持式計(jì)算機(jī)以及各種各樣的嵌入式應(yīng)用領(lǐng)域,成為世界上銷量最大的32位微處理器。 2.1.2 2.1.2 ARMARM體系

5、結(jié)構(gòu)的技術(shù)特征體系結(jié)構(gòu)的技術(shù)特征ARM的體系結(jié)構(gòu)采用了若干Berkeley RISC處理器設(shè)計(jì)中的特征 Load/store體系結(jié)構(gòu)固定的32位指令3地址指令格式 也放棄了其它若干Berkeley RISC特征寄存器窗口 延遲轉(zhuǎn)移 所有的指令單周期執(zhí)行 2.2 ARM2.2 ARM體系結(jié)構(gòu)不同版本的發(fā)展概述體系結(jié)構(gòu)不同版本的發(fā)展概述1.2.2.1 ARM體系結(jié)構(gòu)的基本版本2.2.2.2 ARM體系結(jié)構(gòu)的演變3.2.2.3 ARM體系結(jié)構(gòu)的命名規(guī)則 2.2.1ARM體系結(jié)構(gòu)的基本版本版本1,本版本包括下列指令: 乘法指令之外的基本數(shù)據(jù)處理指令基本數(shù)據(jù)處理指令;基于字節(jié),字和多字的存儲(chǔ)器訪問(wèn)操作指

6、令(Load/Store);子程序調(diào)用指令BL在內(nèi)的跳轉(zhuǎn)指令跳轉(zhuǎn)指令;完成系統(tǒng)調(diào)用的軟件中斷指令SWI。 ARM體系結(jié)構(gòu)的基本版本 版本版本2 ,與版本,與版本1相比版本相比版本2(2a)增增加了下列指令:加了下列指令:乘和乘加指令;支持協(xié)處理器的指令;對(duì)于FIQ模式,提供了額外的影子寄存器;SWP指令及SWPB指令。 ARM體系結(jié)構(gòu)的基本版本 版本版本3較以前的版本發(fā)生了大的變化較以前的版本發(fā)生了大的變化地址空間擴(kuò)展到了32位位;分開(kāi)的CPSR和和SPSR,SPSR用于在程序異常中斷時(shí)保存被中斷的程序狀態(tài);增加了未定義未定義和異常中止異常中止兩種異常模式;增加了MRS指令和MSR指令用于完成

7、對(duì)CPSR和SPSR寄存器的讀寫(xiě)。修改了原來(lái)的從異常中返回的指令。 ARM體系結(jié)構(gòu)的基本版本 版本版本4 4。與版本。與版本3 3相比,版本相比,版本4 4增加了下列指令增加了下列指令 有符號(hào)、無(wú)符號(hào)的半字和有符號(hào)字節(jié)的load和store指令。增加了T變種,處理器可以工作于Thumb狀態(tài),在該狀態(tài)下的指令集是16位的Thumb指令集。增加了處理器的特權(quán)模式。在該模式下,使用的是用戶模式下的寄存器。 ARM體系結(jié)構(gòu)的基本版本版本版本5 5主要由兩個(gè)變型版本主要由兩個(gè)變型版本5 5T T、5TE5TE組成組成 相比版本4的變化: 提高了T變種中ARM/Thumb混合使用的效率。增加前導(dǎo)零記數(shù)(C

8、LZ)指令,該指令可使整數(shù)除法和中斷優(yōu)先級(jí)排隊(duì)操作更為有效;增加了BKPT(軟件斷點(diǎn))指令;為協(xié)處理器設(shè)計(jì)提供了更多的可供選擇的指令;更加嚴(yán)格地定義了乘法指令對(duì)條件碼標(biāo)志位的影響。 V6版架構(gòu) V6版架構(gòu)是2001年發(fā)布的,首先在2002年春季發(fā)布的ARM11處理器中使用。此架構(gòu)在V5版基礎(chǔ)上增加了以下功能: THUMBTM:35%代碼壓縮; DSP擴(kuò)充:高性能定點(diǎn)DSP功能; JazelleTM:Java性能優(yōu)化,可提高8倍; Media擴(kuò)充:音/視頻性能優(yōu)化,可提高4倍。 ARM體系結(jié)構(gòu)的基本版本 ARM體系結(jié)構(gòu)的基本版本新架構(gòu)v6在降低耗電量降低耗電量的同時(shí)還強(qiáng)化了圖形處理性能圖形處理性

9、能。追加有效進(jìn)行多媒體處多媒體處理的理的SIMDSIMD功能功能。ARM體系版本6首先在2002年春季發(fā)布的ARM11處理器中使用。除此之外,v6還支持多微處理器內(nèi)核。 ARM體系結(jié)構(gòu)的基本版本ARM體系結(jié)構(gòu)總結(jié) 核核體系結(jié)構(gòu)體系結(jié)構(gòu)ARM1V1ARM2V2ARM2aS,ARM3V2aARM6,ARM600,ARM610V3ARM7,ARM700,ARM710V3ARM7TDMI,ARM710T,ARM720T ARM740TV4TStrong ARM,ARM8,ARM810V4ARM9TDMI,ARM920T,ARM940TV4TARM9E-SV5TEARM10TDMI,ARM1020EV5

10、TEARM11,ARM1156T2-S,ARM1156T2F-S,ARM1176JZ-S,ARM11JZF-SV62.2.2ARM體系結(jié)構(gòu)的演變1)Thumb指令集(T變種) Thumb指令集是把32位的ARM指令集的一個(gè)子集重新編碼后而形成的一個(gè)特殊的16位的指令集 2)長(zhǎng)乘指令(M變種)長(zhǎng)乘指令是一種生成生成6464位相乘結(jié)果位相乘結(jié)果的乘法指令(此指令為ARM指令),M變種增加了兩條長(zhǎng)乘指令 ARM體系結(jié)構(gòu)的演變3)增強(qiáng)型DSP指令(E變種) E變種的ARM體系增加了一些增強(qiáng)處理器對(duì)典型的DSP算法處理能力算法處理能力的附加指令 4)Java加速器Jazelle(J變種) ARM的Jaz

11、elle技術(shù)是Java語(yǔ)言和先進(jìn)的32位RISC芯片完美結(jié)合的產(chǎn)物 5)ARM媒體功能擴(kuò)展(SIMD變種) 2.3 Thumb2.3 Thumb技術(shù)介紹技術(shù)介紹 ARM的RISC體系結(jié)構(gòu)的發(fā)展中已經(jīng)提供了低功耗、小體積、高性能的方案。而為了解決代碼長(zhǎng)度的問(wèn)題,ARM體系結(jié)構(gòu)又增加了變種,開(kāi)發(fā)了一種新的指令體系,這就是Thumb指令集,它是ARM技術(shù)的一大特色。 2.3.1Thumb的技術(shù)概述2.3.2Thumb的技術(shù)實(shí)現(xiàn)2.3.3Thumb技術(shù)的特點(diǎn) 2.3.1Thumb的技術(shù)概述Thumb是ARM體系結(jié)構(gòu)的擴(kuò)展。它有從標(biāo)準(zhǔn)32位ARM指令集抽出來(lái)的36條指令格式,可以重新編成16位的操作碼。

12、很高的代碼密度代碼密度 ARM7TDMI是第一個(gè)支持Thumb的核,編譯器既可以編譯編譯Thumb代碼,又可以編譯ARM代碼 支持Thumb的ARM體系結(jié)構(gòu)的處理器狀狀態(tài)態(tài)可以方便的切換切換、運(yùn)行到Thumb狀態(tài),在該狀態(tài)下指令集是16位的Thumb指令集 2.3.2Thumb技術(shù)的特點(diǎn)在性能和代碼大小之間取得平衡,在需要較低的存儲(chǔ)代碼較低的存儲(chǔ)代碼時(shí)采用Thumb指令系統(tǒng),但有比純粹的16位系統(tǒng)有較高較高的實(shí)現(xiàn)性能性能,因?yàn)閷?shí)際執(zhí)行的是32位指令,用Thumb指令編寫(xiě)最小代碼量的程序,卻取得以ARM代碼執(zhí)行的最好性能 Thumb技術(shù)的特點(diǎn) 與與ARMARM指令集相比指令集相比ThumbThu

13、mb指令集具有指令集具有以下局限以下局限 完成相同的操作,Thumb指令通常需要更多的指令更多的指令,因此在對(duì)系統(tǒng)運(yùn)行時(shí)間要求苛刻的應(yīng)用場(chǎng)合ARM指令集更為適合;Thumb指令集沒(méi)有包含進(jìn)行異常處理時(shí)需要的一些指令,因此在異常中斷時(shí),還是需要使用ARM指令,這種限制決定了Thumb指令需要和ARM指令配合使用配合使用。 2.4 ARM處理器工作狀態(tài) ARM處理器核可以工作在以下2種狀態(tài) ARM狀態(tài)32位,ARM狀態(tài)下執(zhí)行字對(duì)準(zhǔn)字對(duì)準(zhǔn)的32位ARM指令;Thumb狀態(tài)16位,Thumb狀態(tài)下執(zhí)行半字半字對(duì)準(zhǔn)的16位Thumb指令。在Thumb狀態(tài)下,程序計(jì)數(shù)器PC使用位1選擇另一個(gè)半字。 ARM

14、處理器工作狀態(tài) 在程序執(zhí)行的過(guò)程中,處理器可以在兩在程序執(zhí)行的過(guò)程中,處理器可以在兩種狀態(tài)下種狀態(tài)下切換切換 ARM和Thumb之間狀態(tài)的切換不影響處理器的模式或寄存器的內(nèi)容。ARM指令集和Thumb指令集都有相應(yīng)的狀態(tài)切換命令。ARM處理器在開(kāi)始執(zhí)行代碼時(shí),只能處于ARM狀態(tài)。 ARM處理器工作狀態(tài) ARMARM處理器在兩種工作狀態(tài)之間切換方法處理器在兩種工作狀態(tài)之間切換方法進(jìn)入Thumb狀態(tài)當(dāng)操作數(shù)寄存器Rm的狀態(tài)位bit0為1時(shí),執(zhí)行BX Rm指令進(jìn)入Thumb狀態(tài)。如果處理器在Thumb狀態(tài)進(jìn)入異常,則當(dāng)異常處理(IRQ,F(xiàn)IQ,Undef,Abort和SWI)返回時(shí),自動(dòng)切換到Thu

15、mb狀態(tài)。進(jìn)入ARM狀態(tài)當(dāng)操作數(shù)寄存器Rm的狀態(tài)位bit0為0時(shí),執(zhí)行BX Rm指令進(jìn)入ARM狀態(tài)。如果處理器進(jìn)行異常處理,在此情況下,把PC放入異常模式鏈接寄存器LR中,從異常向量地址開(kāi)始執(zhí)行也可以進(jìn)入ARM狀態(tài)。 例:例:從從ARM狀態(tài)切換到狀態(tài)切換到Thumb狀態(tài):狀態(tài): LDR R0,=Label+1 ; Label為程序標(biāo)號(hào)為程序標(biāo)號(hào) BX R0從從Thumb狀態(tài)切換到狀態(tài)切換到ARM狀態(tài):狀態(tài): LDR R0,=Label BX R02.5 ARM處理器工作模式 CPSR(當(dāng)前程序狀態(tài)寄存器)的低5位用于定義當(dāng)前操作模式 , 如圖示 ARM處理器工作模式 除用戶模式外的其他除用戶模

16、式外的其他6種模式稱為特權(quán)模式種模式稱為特權(quán)模式 特權(quán)模式中除系統(tǒng)模式以外的特權(quán)模式中除系統(tǒng)模式以外的5種模式又稱為種模式又稱為異常模式,即異常模式,即 FIQ(Fast Interrupt Request)IRQ(Interrupt ReQuest)SVC(Supervisor)中止(Abort)未定義(Undefined)2.6 ARM2.6 ARM寄存器組成寄存器組成 1.2.6.1ARM寄存器組成概述2.2.6.2ARM狀態(tài)下的寄存器組織3.2.6.3Thumb狀態(tài)下的寄存器組織 2.6.1ARM寄存器組成概述 ARM處理器總共有處理器總共有37個(gè)寄存器,可以分為個(gè)寄存器,可以分為以下

17、兩類寄存器以下兩類寄存器 31個(gè)通用寄存器個(gè)通用寄存器 R0R15;R13_svc、R14_svc;R13_abt、R14_abt;R13_und、R14_und;R13_irq、R14_irq;R8_frq-R14_frq。 6個(gè)狀態(tài)寄存器個(gè)狀態(tài)寄存器 CPSR;SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq和SPSR_fiq 2.6.2ARM狀態(tài)下的寄存器組織1)ARM狀態(tài)的寄存器簡(jiǎn)介 ARM狀態(tài)下的寄存器組織 ARM狀態(tài)下的寄存器組織2) ARM狀態(tài)的通用寄存器 不分組寄存器(The unbanked registers):R0R7 分組寄存器(The banke

18、d registers):R8R14 程序計(jì)數(shù)器:R15(PC) ARM狀態(tài)下的寄存器組織 不分組寄存器不分組寄存器R0R7 R0R7是不分組寄存器。這意味著在所有處理器模式下,它們每一個(gè)都訪問(wèn)的是同一個(gè)物理寄存器。它們是真正并且在每種狀態(tài)下都統(tǒng)一的通用寄存器通用寄存器。 未分組寄存器沒(méi)有被系統(tǒng)用于特別的用途,任何可采用通用寄存器的應(yīng)用場(chǎng)合都可以使用未分組寄存器,但必須注意對(duì)同一寄存器在不同模式下不同模式下使用時(shí)的數(shù)據(jù)保護(hù)數(shù)據(jù)保護(hù) ARM狀態(tài)下的寄存器組織 分組寄存器分組寄存器R8-R14 R8-R14 分組寄存器R8-R12FIQ模式分組寄存器R8R12 FIQ以外的分組寄存器R8R12分組

19、寄存器R13、R14寄存器R13通常用做堆棧指針堆棧指針SPSP 每一種異常模式擁有自己的物理寄存器R13;可以保證異常處理程序不會(huì)破壞其中斷程序的運(yùn)行現(xiàn)場(chǎng)。寄存器R14用作子程序鏈接寄存器子程序鏈接寄存器(Link RegisterLR),也稱為L(zhǎng)RLR R14用于子程序調(diào)用時(shí)的用于子程序調(diào)用時(shí)的PC 保存以及異常處理的返回。保存以及異常處理的返回。 ARM狀態(tài)下的寄存器組織 程序計(jì)數(shù)器程序計(jì)數(shù)器R15 R15 寄存器R15被用作程序計(jì)數(shù)器程序計(jì)數(shù)器,也稱為PC R15值的改變將引起程序執(zhí)行順序的變化ARM處理器采用多級(jí)流水線技術(shù),因此保存在R15的程序地址并不是當(dāng)前指令的地址并不是當(dāng)前指令

20、的地址 一些指令對(duì)于R15的用法有一些特殊的要求 PC31:2用于保存地址;用于保存地址;Bit0確定確定BX 跳轉(zhuǎn)到的狀態(tài)。跳轉(zhuǎn)到的狀態(tài)。 ARM狀態(tài)下的寄存器組織3)ARM3)ARM程序狀態(tài)寄存器程序狀態(tài)寄存器所有處理器模式下都可以訪問(wèn)當(dāng)前的程序狀態(tài)寄存器CPSR。CPSR包含條件碼標(biāo)志條件碼標(biāo)志、中斷中斷禁止位禁止位、當(dāng)前處理器模式當(dāng)前處理器模式以及其它狀態(tài)和控狀態(tài)和控制信息制信息。在每種異常模式下異常模式下都有一個(gè)對(duì)應(yīng)的物理寄存器保存程序狀態(tài)寄存器SPSRSPSR。當(dāng)異常出現(xiàn)時(shí),SPSR用于保存CPSR的狀態(tài),以便異常返回后恢復(fù)異常發(fā)生時(shí)的工作狀態(tài)。 ARM狀態(tài)下的寄存器組織CPSR和

21、SPSR的格式 2.6.3Thumb狀態(tài)下的寄存器組織Thumb狀態(tài)下的寄存器集是ARM狀態(tài)下寄存器集的子集。程序員可以直接訪問(wèn)8個(gè)通用的寄存器(R0R7),程序計(jì)數(shù)器PC、堆棧指針SP、連接寄存器LR和當(dāng)前狀態(tài)寄存器CPSR。每一種特權(quán)模式都各有一組SP,LR和SPSR。 2.7 ARM2.7 ARM的異常中斷的異常中斷在ARM體系結(jié)構(gòu)中,異常中斷用來(lái)處理軟件中斷軟件中斷、未定義指令未定義指令陷阱(它不是真正的“意外”事件)及系統(tǒng)復(fù)位復(fù)位功能和外部事件外部事件,這些“不正?!笔录急粍潥w“異常”,因?yàn)樵谔幚砥鞯目刂茩C(jī)制中,它們都使用同樣的流程進(jìn)行異常處理同樣的流程進(jìn)行異常處理。 ARM AR

22、M的異常中斷的異常中斷1.ARM的異常中斷響應(yīng)過(guò)程2.從異常中斷處理程序中返回3.異常中斷向量表4.異常中斷的優(yōu)先級(jí) ARM的異常中斷響應(yīng)過(guò)程ARM處理器對(duì)異常中斷的響應(yīng)過(guò)程如下處理器對(duì)異常中斷的響應(yīng)過(guò)程如下: : 將CPSR的內(nèi)容保存到將要執(zhí)行的異常異常中斷對(duì)應(yīng)的中斷對(duì)應(yīng)的SPSR中 設(shè)置當(dāng)前狀態(tài)寄存器CPSR中的相應(yīng)位位 將引起異常指令的下一條指令的地址保存到新的異常工作模式的R14_mode 給程序計(jì)數(shù)器(PC)強(qiáng)制賦值 ARM的異常中斷響應(yīng)過(guò)程每個(gè)異常模式對(duì)應(yīng)有兩個(gè)寄存器R13_、R14_分別保存相應(yīng)模式下的堆棧指針、返回地址;堆棧指針堆棧指針可用來(lái)定義一個(gè)存儲(chǔ)區(qū)域保存其它用戶寄存器保

23、存其它用戶寄存器,這樣異常處理程序就可以使用這些寄存器。FIQFIQ模式模式還有額外的專用寄存器R8_fiqR12_fiq,使用這些寄存器可以加快快速中斷的處理速度。 ARM處理器對(duì)異常的響應(yīng)過(guò)程:從異常中斷處理程序中返回 從異常中斷處理程序中返回時(shí),需要執(zhí)行從異常中斷處理程序中返回時(shí),需要執(zhí)行以下四個(gè)基本操作以下四個(gè)基本操作1.所有修改過(guò)的用戶寄存器用戶寄存器必須從處理程序的保護(hù)堆棧中恢復(fù)(即出棧出棧)。2.將SPSR_mode寄存器內(nèi)容復(fù)制到CPSR中,使得CPSRCPSR從相應(yīng)的SPSR中恢復(fù)恢復(fù),即恢復(fù)被中斷的程序工作狀態(tài);3.根據(jù)異常類型將PCPC變回到用戶指令流中相應(yīng)指令處(通過(guò)R

24、14_mode )4.最后清除清除CPSR中的中斷禁止中斷禁止標(biāo)志位I/F。 1. 返回地址保存在R14時(shí):MOVS PC,R14 SWI、未定義指令引起SUBS PC,R14,#4 IRQ、FIQ、預(yù)取指中止SUBS PC,R14,#8 數(shù)據(jù)中止引起注意操作碼后的S修飾符。兩種返回處理機(jī)制:2. 返回地址拷貝到堆棧時(shí):LDMFD R13!,(R0-R3,PC)異常中斷向量表中斷向量表中指定了各異常中斷與其處理程序的對(duì)應(yīng)關(guān)系 每個(gè)異常中斷對(duì)應(yīng)的中斷向量表的4個(gè)字節(jié)的空間中存放一個(gè)跳轉(zhuǎn)指令或者一個(gè)向PC寄存器中賦值的數(shù)據(jù)訪問(wèn)指令 存儲(chǔ)器的前8個(gè)字中除了地址0 x00000014之外,全部被用作異

25、常矢量地址 異常中斷的優(yōu)先級(jí) 當(dāng)幾個(gè)異常中斷同時(shí)發(fā)生時(shí),在當(dāng)幾個(gè)異常中斷同時(shí)發(fā)生時(shí),在ARM中通中通過(guò)給各異常中斷賦予一定的優(yōu)先級(jí)來(lái)實(shí)現(xiàn)處理過(guò)給各異常中斷賦予一定的優(yōu)先級(jí)來(lái)實(shí)現(xiàn)處理次序次序 復(fù)位(最高優(yōu)先級(jí));數(shù)據(jù)異常中止;FIQ;IRQ;預(yù)取指異常中止;SWI、未定義指令(包括缺協(xié)處理器)。 異常中斷例子:異常中斷例子: 1.整個(gè)地址空間的起始位置(地址整個(gè)地址空間的起始位置(地址0 x00000000開(kāi)始)有以下指令,開(kāi)始)有以下指令,一旦發(fā)生外部中斷請(qǐng)求,一旦發(fā)生外部中斷請(qǐng)求,處理器首先自動(dòng)保存當(dāng)前狀態(tài)(處理器首先自動(dòng)保存當(dāng)前狀態(tài)(PC-R14,CPSR-SPSR),),進(jìn)入外部中斷模式

26、,接著執(zhí)行地址進(jìn)入外部中斷模式,接著執(zhí)行地址0 x00000018處的指令,即處的指令,即b IRQ_SVC_HANDLER跳轉(zhuǎn)到標(biāo)號(hào)跳轉(zhuǎn)到標(biāo)號(hào)IRQ_SVC_HANDLER處開(kāi)始執(zhí)行。處開(kāi)始執(zhí)行。 b SYS_RST_HANDLER;對(duì)對(duì)0 x00000000bUDF_INS_HANDLER;0 x00000004bSWI_SVC_HANDLER;應(yīng)應(yīng)0 x00000008bINS_ABT_HANDLER;0 x0000000cbDAT_ABT_HANDLER;地地0 x00000010b.;bIRQ_SVC_HANDLER;址址0 x00000018bFIQ_SVC_HANDLER;0 x

27、0000001c 異常中斷異常中斷(2) 2. IRQ_SVC_HANDLER處的代碼為:處的代碼為: IRQ_SVC_HANDLERsub lr, lr, #4stmfdsp!, r0-r3, lrldr r0, =IRQ_SVC_Vectorldr pc, r0 處理器將通用寄存器和返回地址壓入堆棧,接著處理器將通用寄存器和返回地址壓入堆棧,接著跳 轉(zhuǎn) 到 外 部 中 斷 請(qǐng) 求 的 中 斷 服 務(wù) 程 序 中 。跳 轉(zhuǎn) 到 外 部 中 斷 請(qǐng) 求 的 中 斷 服 務(wù) 程 序 中 。IRQ_SVC_Vector為外部中斷請(qǐng)求的中斷向量。為外部中斷請(qǐng)求的中斷向量。2.8 ARM2.8 ARM

28、典型流水線技術(shù)簡(jiǎn)介典型流水線技術(shù)簡(jiǎn)介 1.2.8.1三級(jí)流水線ARM的組織2.2.8.2五級(jí)流水線ARM的組織 2.8.1三級(jí)流水線ARM的組織 1)ARM的的3級(jí)流水線介紹級(jí)流水線介紹 到ARM7為止的ARM處理器使用的簡(jiǎn)單3級(jí)流水線分別為 取指級(jí) 譯碼級(jí) 執(zhí)行級(jí) 三級(jí)流水線ARM的組織2)ARM 3級(jí)流水線下級(jí)流水線下PC的行為的行為 在3級(jí)流水線的執(zhí)行過(guò)程中,當(dāng)通過(guò)R15寄存器直接訪問(wèn)PC時(shí),必須考慮到此時(shí)流水線的執(zhí)行過(guò)程的真實(shí)情況 三級(jí)流水線的PC行為2.8.2五級(jí)流水線ARM的組織2.9 ARM2.9 ARM存儲(chǔ)器接口及存儲(chǔ)器層次存儲(chǔ)器接口及存儲(chǔ)器層次 多級(jí)存儲(chǔ)器: 包括一個(gè)容量容量

29、小但速度速度快的從存儲(chǔ)器和一個(gè)容量大但速度慢的主存儲(chǔ)器,外部行為象一個(gè)即大又快的存儲(chǔ)器。 如Cache,自動(dòng)保存處理器經(jīng)常用到的指令和數(shù)據(jù)的拷貝。ARMARM存儲(chǔ)器接口及存儲(chǔ)器層次存儲(chǔ)器接口及存儲(chǔ)器層次 1.2.9.1ARM存儲(chǔ)數(shù)據(jù)類型和存儲(chǔ)格式2.2.9.2ARM的存儲(chǔ)器層次簡(jiǎn)介2.9.1ARM存儲(chǔ)數(shù)據(jù)類型和存儲(chǔ)格式 ARM處理器支持以下處理器支持以下6種數(shù)據(jù)類型種數(shù)據(jù)類型 8位有符號(hào)和無(wú)符號(hào)字節(jié)。16位有符號(hào)和無(wú)符號(hào)半字,它們以兩字節(jié)的邊界定位。32位有符號(hào)和無(wú)符號(hào)字,它們以4字節(jié)的邊界定位。 ARM存儲(chǔ)數(shù)據(jù)類型和存儲(chǔ)格式存儲(chǔ)器組織 在以字節(jié)為單位尋址的存儲(chǔ)器中有“小端”和“大端”兩種方式

30、存儲(chǔ)字,這兩種方式是根據(jù)最低有效字節(jié)與相鄰較高有效字節(jié)相比是存放在較低的還是較高的地址來(lái)劃分的,兩種存儲(chǔ)方式如圖所示。 2.9.2ARM的存儲(chǔ)器層次簡(jiǎn)介一寄存器組訪問(wèn)時(shí)間為幾個(gè)ns 一片上RAM 與寄存器組具有同級(jí)讀寫(xiě)速度,簡(jiǎn)單、便宜、功耗低一片上Cache 訪問(wèn)時(shí)間大概為10ns一主存儲(chǔ)器訪問(wèn)時(shí)間大概為50ns一硬盤(pán) 訪問(wèn)時(shí)間為幾十msMMU2、存儲(chǔ)器映射的輸入/輸出 在ARM系統(tǒng)中,I/O操作通常被映射成存儲(chǔ)器操作。 但是,對(duì)于存儲(chǔ)器映射的I/O空間的操作,不能使用Cache技術(shù)。 1.在ARM系統(tǒng)中,存儲(chǔ)管理單元MMU主要完成工作:虛擬存儲(chǔ)空間到物理存儲(chǔ)空間的映射。在虛擬存儲(chǔ)空間到物理存

31、儲(chǔ)空間的映射。在ARMARM中采用了頁(yè)中采用了頁(yè)式虛擬存儲(chǔ)管理。式虛擬存儲(chǔ)管理。引入頁(yè)表的概念引入頁(yè)表的概念存儲(chǔ)器訪問(wèn)權(quán)限的控制。存儲(chǔ)器訪問(wèn)權(quán)限的控制。 設(shè)置虛擬存儲(chǔ)空間的緩沖的特性設(shè)置虛擬存儲(chǔ)空間的緩沖的特性。2.10 ARM2.10 ARM協(xié)處理器協(xié)處理器 ARM通過(guò)增加硬件協(xié)處理器來(lái)支持對(duì)其指令集的通用擴(kuò)展,通過(guò)未定義指令陷阱支持這些協(xié)處理器的軟件仿真。簡(jiǎn)單的ARM核提供板級(jí)協(xié)處理器接口,因此協(xié)處理器可以作為一個(gè)獨(dú)立的元件接入。最常使用的協(xié)處理器是用于控制片上功能的,例如控制ARM720上的高速緩存Cache和存儲(chǔ)器管理單元MMU等。ARM也開(kāi)發(fā)了,也可以支持。ARM體系結(jié)構(gòu)支持通過(guò)增加

32、協(xié)處理器來(lái)擴(kuò)展指令集的機(jī)制。 2.11 ARM ARM片上總線片上總線AMBAAMBA 先進(jìn)的微控制器總線體系結(jié)構(gòu)先進(jìn)的微控制器總線體系結(jié)構(gòu)AMBA是是ARM公司公布的總線標(biāo)準(zhǔn)公司公布的總線標(biāo)準(zhǔn) AHB(Advanced High-performance Bus):用于連接高性能系統(tǒng)模塊。它支持突發(fā)數(shù)據(jù)傳輸方式及單個(gè)數(shù)據(jù)傳輸方式,所有時(shí)序參考同一個(gè)時(shí)鐘沿。ASB(Advanced System Bus):用于連接高性能系統(tǒng)模塊,它支持突發(fā)數(shù)據(jù)傳輸模式。是較早的系統(tǒng)總線。APB(Advance Peripheral Bus):是一個(gè)簡(jiǎn)單接口支持低性能的外圍接口。 片上總線的使用使得片上不同IP核

33、的連接實(shí)現(xiàn)標(biāo)準(zhǔn)化。Soc的設(shè)計(jì)需求。2.12 ARM ARM的調(diào)試結(jié)構(gòu)的調(diào)試結(jié)構(gòu) 嵌入式調(diào)試 采用在線仿真器ICE調(diào)試處理器核 ARM調(diào)試硬件 目標(biāo)系統(tǒng)與主機(jī)之間通過(guò)擴(kuò)展JTAG測(cè)試端口的功能來(lái)實(shí)現(xiàn)通信。EmbeddedICE EmbeddedICE調(diào)試結(jié)構(gòu)一種基于JTAG的ARM內(nèi)核調(diào)試通道。2.13 ARM核綜述核綜述 在高性能的32位嵌入式SoC設(shè)計(jì)設(shè)計(jì)中,幾乎都是以ARM作為處理器核作為處理器核。ARM核已是現(xiàn)在嵌入式SoC系統(tǒng)芯片的核心,也是現(xiàn)代嵌入式系統(tǒng)發(fā)展的方向。 ARM處理器處理器核作為基本處理單元基本處理單元,根據(jù)發(fā)展需求還集成集成了與處理器核密切相關(guān)的功能模塊,如Cache

34、存儲(chǔ)器存儲(chǔ)器和存儲(chǔ)器管理MMU硬件,這些基于微處理器核并集成這些IP核的標(biāo)準(zhǔn)配置的ARM核都具有基本“CPU”的配置,通常還集成有AMBA接口。這些內(nèi)核稱為CPU核。 ARM核綜述核綜述 ARM處理器核當(dāng)前有處理器核當(dāng)前有6 個(gè)系列產(chǎn)品:個(gè)系列產(chǎn)品:ARM7 ARM9ARM9E ARM10E,SecurCore ARM11Intel公司推出的:公司推出的:StrongARM XScale ARM核綜述核綜述 1.2.13.1 ARM7系列核介紹2.2.13.2 ARM9系列核介紹 3.2.13.3 ARM10系列核4.2.13.4 StrongARM和XScale系列核5.2.13.5 Sec

35、urCore系列核 2.13.1ARM7系列核介紹 ARM7TDMI是是ARM公司最早為業(yè)界普遍認(rèn)可且公司最早為業(yè)界普遍認(rèn)可且得到了最為廣泛應(yīng)用的處理器核,特別是在手機(jī)和得到了最為廣泛應(yīng)用的處理器核,特別是在手機(jī)和PDA中,隨著中,隨著ARM技術(shù)的發(fā)展,它已是目前最低端技術(shù)的發(fā)展,它已是目前最低端的的ARM核。核。ARM7:32位位ARM體系結(jié)構(gòu)體系結(jié)構(gòu)4T版本;版本;T:“Thumb”16位壓縮指令集;位壓縮指令集;D:支持片上支持片上Debug(調(diào)試),使處理器能夠停止以調(diào)試),使處理器能夠停止以響應(yīng)調(diào)試請(qǐng)求;響應(yīng)調(diào)試請(qǐng)求;M:增強(qiáng)型增強(qiáng)型Multiplier,與前代相比具有較高的性能與前

36、代相比具有較高的性能且產(chǎn)生且產(chǎn)生64位的結(jié)果;位的結(jié)果;I:“EmbeddedICE”硬件以支持片上斷點(diǎn)和觀察點(diǎn)。硬件以支持片上斷點(diǎn)和觀察點(diǎn)。ARM7系列核介紹 1 1)ARM7TDMIARM7TDMI組織結(jié)構(gòu),重要的特性有:組織結(jié)構(gòu),重要的特性有:ARM體系結(jié)構(gòu)版本4T;支持Thumb指令集,可降低系統(tǒng)開(kāi)銷;328 DSP 乘法器;32位尋址空間- 4GB 線性地址空間;它包含了EmbeddedICE模塊以支持嵌入式系統(tǒng)調(diào)試;JTAG控制邏輯被認(rèn)為是處理器核的一部分;廣泛的ARM和第三方支持,并與 ARM9 Thumb 系列 ARM10 Thumb 系列和StrongARM處理器相兼容。 A

37、RM7系列核介紹 2 2)ARM7TDMIARM7TDMI硬件接口硬件接口 按接口信號(hào)的功能劃分為存儲(chǔ)器接口、MMU接口、片上調(diào)試、JTAG邊界掃描擴(kuò)展以及時(shí)鐘接口等十四類接口信號(hào)。各接口信號(hào)包括接口信號(hào)和接口控制信號(hào) ARM7TDMI核的外圍硬件接口信號(hào)圖 ARM7系列核介紹 3)ARM7TDMI應(yīng)用應(yīng)用在存儲(chǔ)器配置較簡(jiǎn)單的系統(tǒng)中廣泛應(yīng)用,最為成功的典型例子是手機(jī)、PDA,在此應(yīng)用中,成為用于控制和用戶接口功能的事實(shí)上的標(biāo)準(zhǔn)處理器。2.13.2ARM9系列核介紹一ARM9TDMI將流水線的級(jí)數(shù)從ARM7TDMI的3級(jí)增加到5級(jí),并使用分開(kāi)的指令與數(shù)據(jù)存儲(chǔ)器的Harvard體系結(jié)構(gòu)。ARM9TDMI的性能在相同工藝條件下近似達(dá)到ARM7TDMI兩倍 ARM9系列核介紹 1)ARM9TDMI技術(shù)特點(diǎn)技術(shù)特點(diǎn) 支持Thumb指令集;含有EmbeddedICE模塊支持片上調(diào)試;通過(guò)采用5級(jí)流水線以增加最高時(shí)鐘速率;分開(kāi)的指令與數(shù)據(jù)存儲(chǔ)器端口以改善CPI,提高處理器性能。 ARM9系列核介紹 2)ARM9TDMI組織組織 ARM9TDMI使用數(shù)據(jù)路徑中的ALU來(lái)計(jì)算轉(zhuǎn)移目標(biāo)地址。 ARM9系列核

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論