《ARM嵌入式系统原理及应用开发》课件第2章 ARM嵌入式处理器体系结构.ppt

上传人(卖家):momomo 文档编号:8119838 上传时间:2024-12-03 格式:PPT 页数:76 大小:1.37MB
下载 相关 举报
《ARM嵌入式系统原理及应用开发》课件第2章 ARM嵌入式处理器体系结构.ppt_第1页
第1页 / 共76页
《ARM嵌入式系统原理及应用开发》课件第2章 ARM嵌入式处理器体系结构.ppt_第2页
第2页 / 共76页
《ARM嵌入式系统原理及应用开发》课件第2章 ARM嵌入式处理器体系结构.ppt_第3页
第3页 / 共76页
《ARM嵌入式系统原理及应用开发》课件第2章 ARM嵌入式处理器体系结构.ppt_第4页
第4页 / 共76页
《ARM嵌入式系统原理及应用开发》课件第2章 ARM嵌入式处理器体系结构.ppt_第5页
第5页 / 共76页
点击查看更多>>
资源描述

1、12.1 嵌入式处理器内核种类嵌入式处理器内核种类 2.2 ARM体系结构概述体系结构概述 2.3 ARM流水线技术流水线技术 2.4 ARM处理器内核结构处理器内核结构 234 1 MIPS内核内核 MIPS技术公司是一家设计制造高性能、高档次及嵌入式技术公司是一家设计制造高性能、高档次及嵌入式32位和位和64位处理器的厂商,位处理器的厂商,在在RISC处理器方面占有重要地位。处理器方面占有重要地位。1984年,年,MIPS计算机公司成立。计算机公司成立。1992年,年,SGI收购了收购了 MIPS计计算机公司。算机公司。1998年,年,MIPS脱离脱离SGI,成为,成为MIPS技术公司。技

2、术公司。MIPS公司设计公司设计RISC 处理器始于处理器始于20世纪世纪80年代初。年代初。1999年,年,MIPS公司发布公司发布MIPS32和和MIPS64架构标准,为未来架构标准,为未来MIPS处理处理器的开发奠定了基础。新的架构集成了所有原来器的开发奠定了基础。新的架构集成了所有原来MIPS指令集,指令集,并且增加了许多更强大的功能。并且增加了许多更强大的功能。MIPS公司陆续开发了高性能、公司陆续开发了高性能、低功耗的低功耗的32位处理器内核(位处理器内核(core)MIPS32 4Kc与高性能与高性能64位位处理器内核处理器内核MIPS64 5Kc。2000年,年,MIPS公司发

3、布了针对公司发布了针对MIPS32 4Kc的版本以及的版本以及64位位MIPS64 20Kc处理器内核。处理器内核。MIPS内核具有高速、多核集成的特点。内核具有高速、多核集成的特点。5 2 ARM内核内核 ARM内核具有低功耗的特点,内核具有低功耗的特点,ARM内核的设计技术被授内核的设计技术被授权给数百家的半导体厂商,做成不同的权给数百家的半导体厂商,做成不同的SOC芯片。芯片。ARM内核内核在当今最活跃的无线局域网、在当今最活跃的无线局域网、3G、手机终端、手持设备、有、手机终端、手持设备、有线网络通信设备中得以广泛应用,其应用形式是集成到专用芯线网络通信设备中得以广泛应用,其应用形式是

4、集成到专用芯片之中作为控制器。采用片之中作为控制器。采用ARM内核的主要半导体处理器厂商内核的主要半导体处理器厂商韩国三星公司在其面向手持设备和网络设备的处理器上都全面韩国三星公司在其面向手持设备和网络设备的处理器上都全面采用了采用了ARM内核,如内核,如S3C4510B用于用于Gateway等。等。Intel公司从公司从StrongARM到到Xscale处理器家族,都是立足于处理器家族,都是立足于ARM内核并增加了多媒体指令特性,并进一步降低功耗,提内核并增加了多媒体指令特性,并进一步降低功耗,提高速度。高速度。Motorola公司在其手持设备处理器方面从公司在其手持设备处理器方面从68K内

5、核改成了内核改成了ARM内核,从此,手持设备领域成了内核,从此,手持设备领域成了ARM内核的天下。内核的天下。Cirrus Logic公司的公司的EP7312等手持设备处理器增加了等手持设备处理器增加了MP3以及音频处理的功能。以及音频处理的功能。6 3 PowerPC内核内核 PowerPC内核在高速与低功耗之间做了妥协,并集成了极内核在高速与低功耗之间做了妥协,并集成了极其丰富的外围电路接口。其丰富的外围电路接口。PowerPC内核被内核被Motorola公司用于嵌公司用于嵌入式领域,目前已经成为在通信领域使用最广泛的处理器内核。入式领域,目前已经成为在通信领域使用最广泛的处理器内核。中兴

6、通信、华为等也在其通信产品中大量采用中兴通信、华为等也在其通信产品中大量采用Motorola的的PowerPC家族的系列嵌入式处理器。家族的系列嵌入式处理器。MPC860和和MPC8260是其是其最经典的两款最经典的两款PowerPC内核的嵌入式处理器。内核的嵌入式处理器。4 68K/COLDFIRE内核内核 68K/COLDFIRE核被称为业界应用最广的嵌入式处理器内核被称为业界应用最广的嵌入式处理器内核,目前还在不停地更新核,目前还在不停地更新 换代与发展。换代与发展。68K内核是最早在嵌入内核是最早在嵌入式领域广泛应用的内核,其代表芯片是式领域广泛应用的内核,其代表芯片是683600 C

7、OLDFIRE内核内核继承了继承了68K的特点并继续兼容它。的特点并继续兼容它。COLDFIRE内核被植入内核被植入DSP模块、模块、CAN总线模块以及一般嵌入式处理器所集成的外设模块,总线模块以及一般嵌入式处理器所集成的外设模块,从而形成了一系列的嵌入式处理器,在工业控制、机器人研究、从而形成了一系列的嵌入式处理器,在工业控制、机器人研究、家电控制等领域被广泛采用。家电控制等领域被广泛采用。7 ARM处理器采用处理器采用RISC(Reduced Instruction Set Computer)体系结构设计,使用标准的、固定长度的)体系结构设计,使用标准的、固定长度的32位指位指令格式,所有

8、令格式,所有ARM指令都使用指令都使用4位的条件编码来决定指令是否位的条件编码来决定指令是否执行,以解决指令执行的条件判断。从执行,以解决指令执行的条件判断。从ARM7开始采用开始采用32位地位地址空间(此前为址空间(此前为26位地址)。位地址)。ARM7采用采用3级流水线结构,采级流水线结构,采用冯用冯诺依曼体系结构(程序存储器与数据存储器统一编址)。诺依曼体系结构(程序存储器与数据存储器统一编址)。ARM9采用采用5级流水线,采用哈佛体系结构(程序存储器与数级流水线,采用哈佛体系结构(程序存储器与数据存储器分开独立编址)。据存储器分开独立编址)。ARM10采用采用6级流水线。级流水线。AR

9、M架架构自诞生至今,已经发生了很大的演变,至今已定义了构自诞生至今,已经发生了很大的演变,至今已定义了7种不种不同的版本。同的版本。2.2 ARM体系结构概述体系结构概述221 ARM体系结构的发展体系结构的发展8 其中:其中:V4版结构是目前最广泛应用的版结构是目前最广泛应用的ARM体系结构,它对体系结构,它对V3版架构进行了进一步扩充,版架构进行了进一步扩充,有的还引进了有的还引进了16位的位的Thumb指指令集,使令集,使ARM使用更加灵活。使用更加灵活。ARM7、ARM9和和Strong ARM都采用了该版结构。其指令集中增加的功能包括符号都采用了该版结构。其指令集中增加的功能包括符号

10、化和非符号化半字及符号化字节的存化和非符号化半字及符号化字节的存/取指令,增加了取指令,增加了16位位Thumb指令集,完善了软件中断(指令集,完善了软件中断(SWI)指令的功能,处理)指令的功能,处理器系统模式引进特权方式时使用用户寄存器操作,把一些未器系统模式引进特权方式时使用用户寄存器操作,把一些未使用的指令空间捕捉为未定义指令。使用的指令空间捕捉为未定义指令。V5版架构在版架构在V4版基础上增加了一些新的指令。版基础上增加了一些新的指令。ARM10和和XScale都采用该版架构。这些新增指令有带有链接和交换都采用该版架构。这些新增指令有带有链接和交换的转移(的转移(BLX)指令、计数前

11、导零计数()指令、计数前导零计数(CLZ)指令、中断)指令、中断(BRK)指令、信号处理指令()指令、信号处理指令(V5TE版)、为协处理器增版)、为协处理器增加更多可选择的指令。加更多可选择的指令。9 ARM体系架构体系架构V6是是2001年发布的,其基本特点包括年发布的,其基本特点包括100%与以前的体系兼容;与以前的体系兼容;SIMD媒体扩展,使媒体处理速度快媒体扩展,使媒体处理速度快175倍;改进了的内存管理,使系统性能提高倍;改进了的内存管理,使系统性能提高30%;改进了的混合;改进了的混合端(端(Endian)与不对齐数据支持,使得小端系统支持大端数据)与不对齐数据支持,使得小端系

12、统支持大端数据(如(如TCP/IP)。许多)。许多RTOS是小端的,为实时系统改进了中断是小端的,为实时系统改进了中断响应时间,将最坏情况下的响应时间,将最坏情况下的35周期改进到了周期改进到了11个周期。个周期。ARM体系架构体系架构V7是是2005年发布的。它使用了能够带来更年发布的。它使用了能够带来更高性能、功耗低、效率高及代码密度大的高性能、功耗低、效率高及代码密度大的Thumb-2技术。它技术。它首次采用了强大的信号处理扩展集,对首次采用了强大的信号处理扩展集,对H264和和MP3 等媒体等媒体编解码提供加速。编解码提供加速。Cortex-A8TM处理器采用的就是处理器采用的就是V7

13、版的结版的结构。构。1011(1)单周期操作。)单周期操作。ARM指令系统中的指令只需要执行简单的指令系统中的指令只需要执行简单的和基本的操作,因此其执行过程在一个机和基本的操作,因此其执行过程在一个机 器周期内完成。器周期内完成。(2)采用加载)采用加载/存储指令结构。存储指令结构。ARM只采用了加载和存储两种只采用了加载和存储两种指令对存储器进行读和写的操作,面向运算部件的操作都经过加指令对存储器进行读和写的操作,面向运算部件的操作都经过加载指令和存储指令从存储器取出后预先存放到寄存器内,以加快载指令和存储指令从存储器取出后预先存放到寄存器内,以加快执行速度。执行速度。(3)固定的)固定的

14、32位长度指令。位长度指令。ARM指令系统的指令格式固定为指令系统的指令格式固定为32位长度,指令译码结构简单,效率高。位长度,指令译码结构简单,效率高。(4)3地址指令格式。由于编译开销大,需要尽可能优化,因地址指令格式。由于编译开销大,需要尽可能优化,因此采用此采用3地址指令格式,较多寄存器和对称的指令格式便于生成优地址指令格式,较多寄存器和对称的指令格式便于生成优化代码。化代码。(5)指令流水线技术。)指令流水线技术。ARM采用多级流水线技术,以提高指采用多级流水线技术,以提高指令执行的效率;令执行的效率;ARM7采用冯采用冯诺依曼体系结构的诺依曼体系结构的3级指令流水线;级指令流水线;

15、ARM9TDMI采用基于哈佛体系结构的采用基于哈佛体系结构的5级指令流水线技术;级指令流水线技术;ARM10 采用采用6级指令流水线。级指令流水线。222 ARM体系结构的技术特征体系结构的技术特征12 1 ARM处理器工作状态处理器工作状态 1)ARM状态状态 ARM状态是指状态是指ARM工作于工作于32位指令状态,即位指令状态,即32位状态。位状态。所有指令均为所有指令均为32位指令。位指令。2)Thumb状态状态 Thumb状态是指状态是指ARM执行执行16位的位的Thumb指令的状态,即指令的状态,即16位状态。位状态。在有些情况下,如异常处理时,必须是在有些情况下,如异常处理时,必须

16、是ARM状态下的状态下的ARM指令,此时如果原来工作于指令,此时如果原来工作于Thumb状态,必须将其切换状态,必须将其切换到到ARM状态,使之执行状态,使之执行ARM指令。在程序执行的过程中,处指令。在程序执行的过程中,处理器可随时在这两种工作状态间进行切换,切换时并不影响理器可随时在这两种工作状态间进行切换,切换时并不影响处理器的工作模式和相应寄存器中的内容。处理器的工作模式和相应寄存器中的内容。ARM处理器复位后开始执行代码时总是只处于处理器复位后开始执行代码时总是只处于ARM状态,状态,如果需要,则可通过下面的方法切换到如果需要,则可通过下面的方法切换到Thumb状态。状态。223 A

17、RM处理器工作状态与工作模式处理器工作状态与工作模式13 3)ARM与与Thumb间的切换间的切换 (1)由)由ARM状态切换到状态切换到Thumb状态。通过状态。通过BX指令可将指令可将ARM状态切换到状态切换到Thumb状态,即当操作数寄存器的最低位为状态,即当操作数寄存器的最低位为1 时,可执行时,可执行BX指令使微处理器进入指令使微处理器进入Thumb状态。例如:状态。例如:MOV R6,0X16000001 BX R6 在本例中,操作数寄存器在本例中,操作数寄存器R6的最低位为的最低位为1,则执行上述两,则执行上述两条指令时,转移到地址为条指令时,转移到地址为R6&0XFFFFFFF

18、E=0X16000000处的处的Thumb指令。指令。如果如果Thumb状态进入异常处理,则当异常返回时,状态进入异常处理,则当异常返回时,系统系统状态将自动切换到状态将自动切换到Thumb状态。状态。(2)由)由Thumb状态切换到状态切换到ARM状态。通过状态。通过BX指令可将指令可将Thumb状态切换到状态切换到ARM状态,即当操作数寄存器的最低位为状态,即当操作数寄存器的最低位为0时,可执行时,可执行BX指令使微处理器进入指令使微处理器进入ARM状态。当处理器进行状态。当处理器进行异常处理时,则从异常向量地址开始执行,系统将自动进入异常处理时,则从异常向量地址开始执行,系统将自动进入A

19、RM状态。状态。142.ARM处理器工作模式处理器工作模式15224 ARM处理器寄存器组处理器寄存器组1 ARM状态下的寄存器组状态下的寄存器组16 从表从表23中可以看出,中可以看出,ARM处理器工作在不同模式,使处理器工作在不同模式,使用的寄存器有所不同,共同点是用的寄存器有所不同,共同点是:无论何种模式,无论何种模式,R15均作为均作为PC使用;使用;CPSR为当前程序状态寄存器;为当前程序状态寄存器;R7R0为公用的通为公用的通用寄存器。不同之处在于高端用寄存器。不同之处在于高端7个通用寄存器和状态寄存器在个通用寄存器和状态寄存器在不同模式下不同。不同模式下不同。1)通用寄存器)通用

20、寄存器 通用寄存器有通用寄存器有31个,其中不分组的寄存器有个,其中不分组的寄存器有8个(个(R0R7);在快速中断模式下,);在快速中断模式下,R8R12标有标有fiq,代表快速模式,代表快速模式专用,与其他模式地址重叠,但模式不同,因此寄存器内容专用,与其他模式地址重叠,但模式不同,因此寄存器内容并不冲突,共并不冲突,共2组计组计10个寄存器;个寄存器;R13R14除了用户模式和除了用户模式和系统模式分别为堆栈指针(系统模式分别为堆栈指针(Stack Pointer,SP)和程序链接)和程序链接寄存器(寄存器(Link Register,LR)之外,其他模式下均有自己独)之外,其他模式下均

21、有自己独特的标记方式,是专用于特定模式的寄存器,共特的标记方式,是专用于特定模式的寄存器,共6组计组计12个;个;另外还有作为另外还有作为PC的的R15,这样通用寄存器共,这样通用寄存器共31个。所有通用个。所有通用寄存器均为寄存器均为32位结构。位结构。17 2)状态寄存器)状态寄存器 状态寄存器共状态寄存器共6个,除了共用的个,除了共用的CPSR外还有分组的外还有分组的SPSR(5组共组共5个)。程序状态寄存器的格式如图个)。程序状态寄存器的格式如图21所示,其中条所示,其中条件码标志件码标志4个(个(N,Z,C,V),还有),还有Q标志以及标志以及8个控制位(个控制位(I,F,T,M4M

22、0)。)。图图21 程序状态寄存器格式程序状态寄存器格式18 2Thumb状态下的寄存器组状态下的寄存器组 Thumb状态下的寄存器组是状态下的寄存器组是ARM状态下寄存器组的子集。状态下寄存器组的子集。19 在正常程序执行过程中,每执行一条在正常程序执行过程中,每执行一条ARM指令,指令,PC值加值加4,每执行一条每执行一条Thumb指令,指令,PC值加值加2,程序按顺序正常执行。,程序按顺序正常执行。异常(异常(Exceptions)是指内部或外部事件引起的请求使处)是指内部或外部事件引起的请求使处理器做出相应处理的事件。当发生异常时,系统执行完当前指理器做出相应处理的事件。当发生异常时,

23、系统执行完当前指令后,跳转到相应的异常处理程序人口执行异常处理,异常处令后,跳转到相应的异常处理程序人口执行异常处理,异常处理完,程序返回。理完,程序返回。1ARM异常种类及异常中断向量异常种类及异常中断向量 在在ARM体系结构中,异常中断用来处理软中断、未定义体系结构中,异常中断用来处理软中断、未定义指令陷阱、系统复位及外部中断,共有指令陷阱、系统复位及外部中断,共有7种不同类型的异常中种不同类型的异常中断及其对应的向量地址,见表断及其对应的向量地址,见表250 实现异常向量的定位由实现异常向量的定位由32位地址空间低端的正常地址范围位地址空间低端的正常地址范围0 x000000000 x0

24、000001C决定,但有些决定,但有些ARM允许高端地址允许高端地址0 xFFFF0000 0 xFFFF001C来定位异常向量的地址。来定位异常向量的地址。225 ARM处理器的异常中断处理器的异常中断2021 2异常中断的优先级异常中断的优先级 7种类型的异常分成种类型的异常分成6级,优先级由高到低依次是级,优先级由高到低依次是:(1)复位()复位(RESET)异常;)异常;(2)数据访问中止()数据访问中止(DABT)异常;)异常;(3)快速中断请求()快速中断请求(FIQ)异常;)异常;(4)外部中断请求()外部中断请求(IRQ)异常;)异常;(5)指令预取中止()指令预取中止(FAB

25、T)异常;)异常;(6)软件中断()软件中断(SWI)异常和未定义的指令()异常和未定义的指令(UND)异)异常最低优先级。常最低优先级。复位异常的优先级最高,因此任何情况下,只要进入复复位异常的优先级最高,因此任何情况下,只要进入复位状态,系统无条件地将位状态,系统无条件地将PC指向指向0 x00000000处,去执行系统处,去执行系统第一条指令。通常此处放一条无条件的转移指令,转移到系第一条指令。通常此处放一条无条件的转移指令,转移到系统初始化程序处。统初始化程序处。22 1)解析程序的概念和作用)解析程序的概念和作用 ARM处理器响应中断的时处理器响应中断的时候,总是从固定的地址开始的,

26、候,总是从固定的地址开始的,而在高级语言环境下开发中断而在高级语言环境下开发中断服务程序时,无法控制固定地服务程序时,无法控制固定地址开始跳转流程。为了使得上址开始跳转流程。为了使得上层应用程序与硬件中断跳转联层应用程序与硬件中断跳转联系起来,需要编写一段中间的系起来,需要编写一段中间的服务程序来进行连接。这样的服务程序来进行连接。这样的服务程序常被称作中断解析程服务程序常被称作中断解析程序。序。常用的中断跳转流程,如常用的中断跳转流程,如图图22所示。所示。图图22 中断跳转流程中断跳转流程232)解析过程示例)解析过程示例图图2 23 3 中断解析示例流程中断解析示例流程243)解析程序的

27、扩展)解析程序的扩展图图2 24 4 中断解析的扩展中断解析的扩展254)向量中断的处理)向量中断的处理图图2 25 5 向量中断解析流程示例向量中断解析流程示例26 4从异常处理程序中返回从异常处理程序中返回 复位异常发生后,由于系统自动从复位异常发生后,由于系统自动从0 x00000000开始重开始重新执行程序,因此复位异常处理新执行程序,因此复位异常处理 程序执行完后无须返回。程序执行完后无须返回。其他所有异常处理完后必须返回到原来程序处向下执行,其他所有异常处理完后必须返回到原来程序处向下执行,为达到为达到 这一目的,需要执行以下操作这一目的,需要执行以下操作:(1)恢复原来被保护的用

28、户寄存器。)恢复原来被保护的用户寄存器。(2)将)将SPSR_mode寄存器值复制到寄存器值复制到CPSR中,使得中,使得CPSR从相应的从相应的SPSR中恢复,以恢复被中断的程序工作状中恢复,以恢复被中断的程序工作状态。态。(3)根据异常类型将)根据异常类型将PC值恢复成断点地址,以执行用值恢复成断点地址,以执行用户原来运行着的程序。户原来运行着的程序。(4)清除)清除CPSR中的中断禁止标志中的中断禁止标志I和和F,开放外部中断,开放外部中断和快速中断。和快速中断。27 不同模式返回用的指令有所不同,下面简要介绍几种异常程不同模式返回用的指令有所不同,下面简要介绍几种异常程序的返回方法。序

29、的返回方法。(1)FIQ(Fast Interrupt Request),即快速中断异常,是),即快速中断异常,是为了支持数据传输或者通道处理而设计的。在为了支持数据传输或者通道处理而设计的。在ARM状态下,系状态下,系统有足够的寄存器,从而可以保障对寄存器保存的需求。统有足够的寄存器,从而可以保障对寄存器保存的需求。若将若将CPSR的的F位设置为位设置为1,则会禁止,则会禁止FIQ中断,若将中断,若将CPSR的的F位清零,位清零,处理器会在指令执行时检查处理器会在指令执行时检查FIQ的输入。注意只有在特权模式下的输入。注意只有在特权模式下才能改变才能改变F位的状态。位的状态。可由外部通过对处

30、理器上的可由外部通过对处理器上的nFIQ引脚输入低电平产生引脚输入低电平产生FIQ。不管是在不管是在ARM状态还是在状态还是在Thumb状态下进入状态下进入FIQ模式,模式,FIQ处理处理程序均会执行以下指令从程序均会执行以下指令从FIQ模式返回模式返回:SUBS PC,R14_fiq,#4 该指令将寄存器该指令将寄存器R14_fiq的值减去的值减去4后,复制到程序计数器后,复制到程序计数器(PC)中,从而实现从异常处理程序中的返回,同时将)中,从而实现从异常处理程序中的返回,同时将SPSR_mode寄存器的内容复制到当前程序状态寄存器(寄存器的内容复制到当前程序状态寄存器(CPSR)中。中。

31、28 (2)IRQ(Interrupt Request)异常属于正常的中断请)异常属于正常的中断请求,可通过对处理器的求,可通过对处理器的nIRQ引脚输入低电平产生。引脚输入低电平产生。IRQ的优的优先级低于先级低于FIQ,当程序执行进入,当程序执行进入FIQ异常时,异常时,IRQ可能被屏蔽。可能被屏蔽。若将若将CPSR的的I位设置为位设置为1,则会禁止,则会禁止IRQ中断,若将中断,若将CPSR的的I位清零,处理器会在指令执行完之前检查位清零,处理器会在指令执行完之前检查IRQ的输入。注意的输入。注意只有在特权模式下才能改变只有在特权模式下才能改变I位的状态。不管是在位的状态。不管是在 AR

32、M状态状态还是在还是在Thumb状态下进入状态下进入IRQ模式,模式,IRQ处理程序均会执行处理程序均会执行以下指令从以下指令从IRQ 模式返回模式返回:SUBS PC,R14_irq,#4 该指令将寄存器该指令将寄存器R14_irq的值减去的值减去4后,复制到程序计数后,复制到程序计数器(器(PC)中,从而实现从异常处理程序中的返回,同时将)中,从而实现从异常处理程序中的返回,同时将SPSR_mode寄存器的内容复制到当前程序状态寄存器寄存器的内容复制到当前程序状态寄存器(CPSR)中。)中。29(3)ABORT(中止)异常意味着对存储器的访问失败。(中止)异常意味着对存储器的访问失败。AR

33、M微处理器在存储器访问周微处理器在存储器访问周 期内检查是否发生中止异常。期内检查是否发生中止异常。中止异常包括以下两种类型:指令预取中止,数据中止。中止异常包括以下两种类型:指令预取中止,数据中止。当指令预取访问存储器失败时,存储器系统向当指令预取访问存储器失败时,存储器系统向ARM处理处理器发出存储器中止(器发出存储器中止(Abort)信)信 号,预取的指令被记为无效。号,预取的指令被记为无效。只有当处理器试图执行无效指令时,指令预取中止异常才会只有当处理器试图执行无效指令时,指令预取中止异常才会发生,如果指令未被执行,如在指令流水线中发生了跳转,发生,如果指令未被执行,如在指令流水线中发

34、生了跳转,则预取指令中止不会发生。若数据中止发生,系统的响应与则预取指令中止不会发生。若数据中止发生,系统的响应与指令的类型有关。指令的类型有关。当确定了中止的原因后,无论是在当确定了中止的原因后,无论是在ARM状态还是在状态还是在Thumb状态,状态,Abort处理程序均会执行以下指令从中止模式处理程序均会执行以下指令从中止模式返回返回:SUBS PC,R14_abt,#4;指令预取中止;指令预取中止 SUBS PC,R14_abt,#8;数据中止;数据中止 该指令恢复该指令恢复PC(从(从R14_abt)和)和CPSR(从(从SPSR_abt)的值,并重新执行中止的指令。的值,并重新执行中

35、止的指令。30 (4)SWI(Software Interrupt)即软件中断,软件中断)即软件中断,软件中断指令用于进入管理模式,常用于请求执行特定的管理功能。指令用于进入管理模式,常用于请求执行特定的管理功能。无论是在无论是在ARM状态还是在状态还是在Thumb状态,软件中断处理程序状态,软件中断处理程序执行以下指令从执行以下指令从SWI模式返回模式返回:MOV PC,R14_svc 该指令恢复该指令恢复PC(从(从R14_svc)和)和CPSR(从(从SPSR_svc)的值,并返回到的值,并返回到SWI的下一条指令。的下一条指令。(5)当当ARM处理器遇到不能处理的指令时,会产生未处理器

36、遇到不能处理的指令时,会产生未定义指令(定义指令(Undefined Instruction)异常。采用这种机制,)异常。采用这种机制,可以通过软件仿真扩展可以通过软件仿真扩展ARM或或Thumb指令集。无论是在指令集。无论是在ARM 状态还是在状态还是在Thumb状态,在仿真未定义指令后,处理状态,在仿真未定义指令后,处理器执行以下程序返回器执行以下程序返回:MOVS PC,R14_und 该指令恢复该指令恢复PC(从(从R14 _ und)和)和CPSR(从(从SPSR _ und)的值,并返回到未定义指令后的下一条指令。的值,并返回到未定义指令后的下一条指令。31 如一个如一个32位字位

37、字0 x12345678,存放的起始地址为,存放的起始地址为0 x00040000,则,则大端格式下大端格式下 0 x00040000单元存放单元存放0 x12,0 x00040001单元存放单元存放0 x34,0 x00040002单元存放单元存放0 x56,而,而 0 x00040003单元存放单元存放0 x78。1ARM存储字数据的格式存储字数据的格式 1)大端格式)大端格式 在大端格式中,在大端格式中,32位字数据的高字节存储在低地址中,而字位字数据的高字节存储在低地址中,而字数据的低字节则存放在高数据的低字节则存放在高 地址中,见表地址中,见表26。226 ARM的存储器格式及数据类

38、型的存储器格式及数据类型32 如同样是一个如同样是一个32位字位字0 x12345678,存放的起始地址为,存放的起始地址为0 x00040000,则小端格式下,则小端格式下 0 x00040000单元存放单元存放0 x78,0 x00040001单元存放单元存放0 x56,0 x00040002单元存放单元存放0 x34,而,而 0 x00040003单元存放单元存放0 x12。2)小端格式)小端格式 在小端格式中,在小端格式中,32位字数据的高字节存放在高地址中,而低位字数据的高字节存放在高地址中,而低字节存放在低地址中。字节存放在低地址中。33 2ARM微处理器数据类型微处理器数据类型

39、ARM微处理器中支持字节(微处理器中支持字节(8位)、半字(位)、半字(16位)、字(位)、字(32位)位)3种数据类型,其中字需要种数据类型,其中字需要4字节对齐(地址的低两位为字节对齐(地址的低两位为0)、半字需)、半字需要要2字节对齐(地址的最低位为字节对齐(地址的最低位为0)。每一种又支持有符号数和无符)。每一种又支持有符号数和无符号数,因此认为共有号数,因此认为共有6种数据类型。种数据类型。ARM微处理器的指令长度可以是微处理器的指令长度可以是32位(在位(在ARM状态下),也可状态下),也可以为以为16位(在位(在Thumb状态下)。如果是状态下)。如果是ARM指令,则必须固定长度

40、,指令,则必须固定长度,使用使用32位指令,且必须以字为边界对齐;如果是位指令,且必须以字为边界对齐;如果是Thumb指令,则指指令,则指令长度为令长度为16位,必须以位,必须以2字节为对齐。字节为对齐。必须指出的是,除了数据传送指令支持较短的字节和半字的数必须指出的是,除了数据传送指令支持较短的字节和半字的数据类型外,在据类型外,在ARM内部所有的操作都是面向内部所有的操作都是面向32位操作数的。当从储位操作数的。当从储存器调用一个字节或半字时,根据指令对数据的操作类型,将其无存器调用一个字节或半字时,根据指令对数据的操作类型,将其无符号或有符合的符合自动扩展成符号或有符合的符合自动扩展成3

41、2位,进而作为位,进而作为32位数据在内部进位数据在内部进行处理。行处理。34 所谓流水线电路,就是将一个电路系统或电路系统的大所谓流水线电路,就是将一个电路系统或电路系统的大的数据处理电路模块分成几个小的数据处理电路模块,并且的数据处理电路模块分成几个小的数据处理电路模块,并且沿着数据通路引入流水锁存器,这样就可以减小有效关键路沿着数据通路引入流水锁存器,这样就可以减小有效关键路径,从而提高系统的时钟速度或采样速度,或者可以在同样径,从而提高系统的时钟速度或采样速度,或者可以在同样的速度下降低功耗。而电路中的关键路径,是指数据流图的速度下降低功耗。而电路中的关键路径,是指数据流图DFG中具有

42、零延时的所有路径中,具有最长运算时间的路径。中具有零延时的所有路径中,具有最长运算时间的路径。一个流水线电路系统的速度(或时钟周期),由任意两一个流水线电路系统的速度(或时钟周期),由任意两个锁存器间、或一个输入与一个锁存器间、或一个锁存器和个锁存器间、或一个输入与一个锁存器间、或一个锁存器和一个输出间、或输入与输出之间路径中最长的路径限定。而一个输出间、或输入与输出之间路径中最长的路径限定。而这个最长的路径或这个最长的路径或“关键路径关键路径”可以通过在电路系统中适当可以通过在电路系统中适当的插入流水线锁存器来减小。的插入流水线锁存器来减小。23 ARM流水线技术流水线技术231 流水线电路

43、设计基础知识流水线电路设计基础知识35 在一个在一个M级流水线系统中,从输入到输出的任一路径上的级流水线系统中,从输入到输出的任一路径上的延时元件数目是(延时元件数目是(M-1),它要大于在原始时序电路中同一路),它要大于在原始时序电路中同一路径上的延时元件数。若要使电路正常工作,相邻的两个寄存器径上的延时元件数。若要使电路正常工作,相邻的两个寄存器之间路径的时延应小于寄存器的时钟信号之间路径的时延应小于寄存器的时钟信号CLK的周期的周期 Tclk,亦即流水线锁存器的时钟周期亦即流水线锁存器的时钟周期Tclk应大于所有功能部件中的最应大于所有功能部件中的最长执行时间。同时要使流水线电路正常工作

44、,并且系统处理速长执行时间。同时要使流水线电路正常工作,并且系统处理速度尽可能快,流水线数据通路上的各个功能部件的执行时间因度尽可能快,流水线数据通路上的各个功能部件的执行时间因尽可能均衡。尽可能均衡。【例例21】分别设计一个无流水线和有流水线的三阶有限冲激分别设计一个无流水线和有流水线的三阶有限冲激响应(响应(FIR)数字滤波器的实现电路,并分析各自电路系统的速度)数字滤波器的实现电路,并分析各自电路系统的速度(或时钟周期)。(或时钟周期)。考虑三阶有限冲激响应(考虑三阶有限冲激响应(FIR)数字滤波器)数字滤波器 其框图实现如图其框图实现如图2.6,流水线实现是通过引入两个附加锁存器而得到

45、的,如图流水线实现是通过引入两个附加锁存器而得到的,如图2.7所示。所示。36图2.7 三阶流水线FIR滤波器图2.6 三阶FIR滤波器3738232 微处理器指令流水线处理微处理器指令流水线处理3940233 ARM的的3级指令流水线级指令流水线41 由于由于ARM7本身的局限性,不可能同时访问程序存储器和数据本身的局限性,不可能同时访问程序存储器和数据存储器,因此指令流水线出现间断现象在多周期操作下不可避免的。存储器,因此指令流水线出现间断现象在多周期操作下不可避免的。这就要求合适的存储结构,这就要求合适的存储结构,ARM9TDMI使用了程序存储器和数据存使用了程序存储器和数据存储器分开独

46、立编址的哈佛结构,并采用储器分开独立编址的哈佛结构,并采用5级指令流水线,即取指、译级指令流水线,即取指、译码、执指、缓冲及写回。码、执指、缓冲及写回。5级流水线的操作如图级流水线的操作如图214所示。所示。234 ARM的的5级指令流水线级指令流水线42 ARM 体系结构目前被公认为业界领先的体系结构目前被公认为业界领先的32位嵌入式位嵌入式RISC微处理器结构。微处理器结构。ARM处理器内核当前有处理器内核当前有6个系列产品,即个系列产品,即ARM7、ARM9、ARM9E、ARM10E、SecurCORE以及以及ARM11系列。另外还有系列。另外还有Intel Xscale微体系结构和微体

47、系结构和StrongARM结构。结构。在高性能的在高性能的32位嵌入式片上系统设计中,几乎都是以位嵌入式片上系统设计中,几乎都是以ARM作为处理器核。作为处理器核。ARM核已经是现在嵌入式核已经是现在嵌入式SOC系统芯片系统芯片的核心,也是现代嵌入式系统发展的方向。的核心,也是现代嵌入式系统发展的方向。ARM处理器核作处理器核作为基本处理单元,根据发展需求还集成了与处理器核密切相关为基本处理单元,根据发展需求还集成了与处理器核密切相关的功能模块,这些基于微处理器核并集成这些的功能模块,这些基于微处理器核并集成这些IP核的标准配置核的标准配置的的ARM核都具有基本处理器的配置,这些内核称为处理器

48、核。核都具有基本处理器的配置,这些内核称为处理器核。ARM核与其它部件组合在一起才能构成实际的芯片。核与其它部件组合在一起才能构成实际的芯片。24 ARM处理器内核结构处理器内核结构241 ARM 处理器内核概述处理器内核概述43图图215 ARM核的命名规则及含义核的命名规则及含义44 ARM7TDMI是是ARM7系列成员中应用最为广泛的系列成员中应用最为广泛的32位高性能嵌位高性能嵌入式入式RISC处理器内核,其指令系统有处理器内核,其指令系统有32位的位的ARM指令集和指令集和16位的位的Thumb指令集。指令集。ARM7TDMI使用使用3级指令流水线技术,对存储器的级指令流水线技术,对

49、存储器的访问采用单一访问采用单一32位数据总线传送指令和数据。只有加载、存储和交位数据总线传送指令和数据。只有加载、存储和交换指令可以访问存储器中的数据。数据可以是换指令可以访问存储器中的数据。数据可以是8位(字节),位(字节),16位位(半字)和(半字)和32位位字),字必须以字),字必须以4字节(字节(32位)为边界对齐,半位)为边界对齐,半字必须以字必须以2字节(字节(16位)为边界对齐。位)为边界对齐。ARM7TDM工采用工采用32位寻址位寻址空间、空间、32位移位寄存器和位移位寄存器和32位位ALU以及以及32位存储器传送。位存储器传送。1 ARM7TDMI的特点的特点 (1)采用)

50、采用ARM体系结构版本体系结构版本4T,支持,支持64位乘法、半字、有符位乘法、半字、有符号字节存取;号字节存取;(2)支持)支持Thumb指令集,可降低系统开销;指令集,可降低系统开销;(3)采用)采用328 DSP乘法器;乘法器;(4)具有)具有32位寻址空间位寻址空间4GB线性地址空间;线性地址空间;(5)包含了嵌入式在线仿真器模块,以支持嵌入式系统调试;)包含了嵌入式在线仿真器模块,以支持嵌入式系统调试;(6)JTAG控制逻辑被认为是处理器核的一部分。控制逻辑被认为是处理器核的一部分。242 ARM7TDMI处理器内核处理器内核45 2 ARM7TDMI处理器内核结构及功能处理器内核结

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《ARM嵌入式系统原理及应用开发》课件第2章 ARM嵌入式处理器体系结构.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|