《第二章ARM体系结构资料教程》由会员分享,可在线阅读,更多相关《第二章ARM体系结构资料教程(74页珍藏版)》请在金锄头文库上搜索。
1、1.ARM简介 2.ARM7TDMI 3.ARM的模块、内核和功能框图 4.ARM处理器状态 5.ARM处理器模式,ARM7体系结构,6.ARM内部寄存器 7.当前程序状态寄存器 8.ARM体系的异常、中断及其向量表 9.ARM体系的存储系统,2.1 ARM简介,ARM公司简介,ARM是Advanced RISC Machines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC (精简指令集)处理器。 公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。,2.1 ARM简介,ARM公司简介,将技术授权给其它
2、芯片厂商,形成各具特色的ARM芯片,2.1 ARM简介,为了使ARM能够更好地满足嵌入式应用的需要,ARM体系结构还有以下特点:,每条数据处理指令可同时包含算术逻辑单元(ALU)的运算和移位处理,实现ALU和移位器的最大利用; 使用地址自增和自减的寻址方式优化程序循环; 装载/保存指令对数据的批量传输,实现最大数据吞吐量; 大多数指令的条件执行,实现最快速的代码执行。,ARM体系结构,2.1 ARM简介,常用ARM处理器系列,ARM公司开发了很多系列的ARM处理器核,目前最新的系列是Cortex,而ARM6核以及更早的系列已经很罕见了。当前应用比较多的ARM处理器核系列有:,2.1 ARM简介
3、,ARM Cortex系列简介,基于ARMv7版本的ARM Cortex系列产品由A、R、M三个系列组成,具体分类延续了一直以来ARM面向具体应用设计CPU的思路。,ARM Cortex,2.1 ARM简介,CortexTM-M3处理器简介,该处理器是首款基于ARMv7-M架构的处理器,采用了纯Thumb2指令的执行方式,具有极高的运算能力和中断相应能力。 Cortex-M3主要应用于汽车车身系统,工业控制系统和无线网络等对功耗和成本敏感的嵌入式应用领域。目前最便宜的基于该内核的ARM单片机售价为1美元。,2.1 ARM简介,CortexTM-R4处理器简介,该处理器是首款基于ARMv7架构的
4、高级嵌入式处理器,其主要目标为产量巨大的高级嵌入式应用系统,如硬盘,喷墨式打印机,以及汽车安全系统等等。,CortexTM-R4F处理器简介,该处理器在CortexTM-R4处理器的基础上加入了代码错误校正(ECC)技术,浮点运算单元(FPU)以及DMA综合配置的能力,增强了处理器在存储器保护单元、缓存、紧密耦合存储器、DMA访问以及调试方面的能力。,2.1 ARM简介,CortexTM-A8处理器简介,该处理器是ARM公司所开发的基于ARMv7架构的首款应用级处理器,其特色是运用了可增加代码密度和加强性能的技术、可支持多媒体以及信号处理能力的NEONTM技术、以及能够支持Java和其他文字代
5、码语言的提前和即时编译的JazelleRTC技术。 众多先进的技术使其适用于家电以及电子行业等各种高端的应用领域。,2.1 ARM简介,ARM7系列简介,该系列包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T和扩充了Jazelle的ARM7EJ-S。该系列处理器提供Thumb 16位压缩指令集和EmbededICE软件调试方式,适用于更大规模的SoC设计中。 ARM7系列广泛应用于多媒体和嵌入式设备,包括Internet设备、网络和调制解调器设备,以及移动电话、PDA等无线设备。,2.1 ARM简介,该系列包括ARM9TDMI、ARM920T和带有高速缓存处
6、理器宏单元的ARM940T。除了兼容ARM7系列,而且能够更加灵活的设计。 ARM9系列主要应用于引擎管理、仪器仪表、安全系统和机顶盒等领域。,ARM9系列简介,2.1 ARM简介,该系列为含有DSP指令集的综合处理器,包括ARM926EJ-S、带有高速缓存处理器宏单元的ARM966E-S/ARM946E-S。其内核在ARM7处理器内核的基础上使用了Jazelle增强技术,该技术支持一种新的Java操作状态,允许在硬件中执行Java字节码。 ARM9E系列主要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。,ARM9E系列简介,2.1 ARM简介,ARM10E系
7、列简介,该系列包括ARM1020E和ARM1020E处理器核,其核心在于使用向量浮点(VFP)单元VFP10提供高性能的浮点解决方案,从而极大提高了处理器的整型和浮点运算性能。 可以用于视频游戏机和高性能打印机等场合。,2.1 ARM简介,Xscale简介,Intel Xscale微控制器则提供全性能、高性价比、低功耗的解决方案,支持16位Thumb指令并集成数字信号处理(DSP)指令。 主要应用于手提式通讯和消费电子类设备。,1.ARM简介 2.ARM7TDMI 3.ARM的模块、内核和功能框图 4.ARM处理器状态 5.ARM处理器模式,ARM7体系结构,6.ARM内部寄存器 7.当前程序
8、状态寄存器 8.ARM体系的异常、中断及其向量表 9.ARM体系的存储系统,2.2 ARM7TDMI,简介,ARM7TDMI是基于ARM体系结构V4版本的低端ARM核。 其弥补了ARM6很难在低于5V电压下稳定工作的不足,还增加了后缀所对应的功能:,注意:“ARM核”并非芯片,ARM核与其它部件如RAM、ROM、片内外设组合在一起才能构成现实的芯片。,2.2 ARM7TDMI,存储器的字与半字,从偶数地址开始的连续2个字节构成一个半字; 以能被4整除的地址开始的连续4个字节构成一个字; ARM指令的长度刚好是一个字,Thumb指令的长度刚好是一个半字。,2.2 ARM7TDMI,如果一个数据是
9、从偶地址开始的连续存储,那么它就是半字对齐,否则就是非半字对齐; 如果一个数据是以能被4整除的地址开始的连续存储,那么它就是字对齐,否则就是非字对齐。,存储器的存储方式,2.2 ARM7TDMI,三级流水线,ARM处理器使用流水线来增加处理器指令流的速度,这样可使几个操作同时进行,并使处理和存储器系统连续操作,能提供0.9MIPS/MHz的指令执行速度。,ARM7TDMI的流水线分3级,分别为:,取指,译码,执行,正常操作过程中,在执行一条指令的同时对下一条(第二条)指令进行译码,并将第三条指令从存储器中取出。,在ARM状态下,流水线上各指令的地址为:,在Thumb状态下,流水线上各指令的地址
10、为:,2.2 ARM7TDMI,三级流水线结构的指令执行顺序,周期2,周期1,周期3,周期4,处理器执行一条指令的三个阶段,执行ADD PC,PC,#4指令后,PC的值为多少?,2.2 ARM7TDMI,思考题,ADD,程序计数器R15(PC)总是指向“正在取指”的指令,而不是指向“正在执行”的指令或“正在译码”的指令。,一般来说,人们习惯性约定将“正在执行”的指令作为参考点,则: PC值当前程序执行位置8 注:ARM状态时,每条指令为4字节长。,PC指向0 x4000地址,取指ADD指令。,PC指向0 x4004地址,译码ADD指令。,PC指向0 x4008地址,执行ADD指令,所以指令执行
11、的结果为: PC=PC+40 x400840 x400C。,1.ARM简介 2.ARM7TDMI 3.ARM的模块、内核和功能框图 4.ARM处理器状态 5.ARM处理器模式,ARM7体系结构,6.ARM内部寄存器 7.当前程序状态寄存器 8.ARM体系的异常、中断及其向量表 9.ARM体系的存储系统,2.3 ARM模块框图,CPU协处理接口信号,EmbedICE硬件仿真功能模块,片上调试系统,读写总线,2.3 ARM内核框图,2.3 ARM功能框图,总线控制,1.ARM简介 2.ARM7TDMI 3.ARM的模块、内核和功能框图 4.ARM处理器状态 5.ARM处理器模式,ARM7体系结构,
12、6.ARM内部寄存器 7.当前程序状态寄存器 8.ARM体系的异常、中断及其向量表 9.ARM体系的存储系统,2.4 ARM处理器状态,处理器状态,ARM7TDMI处理器内核包含2套指令系统,分别为ARM指令集和Thumb指令,并且各自对应1种处理器的状态: ARM状态:32位,处理器执行字方式的ARM指令,处理器默认为此状态; Thumb状态:16位,处理器执行半字方式的Thumb指令。,注意:两个状态之间的切换并不影响处理器模式或寄存器内容。,2.4 ARM处理器状态,状态切换的一个例子,使用BX指令将ARM内核的操作状态在ARM状态和Thumb状态之间进行切换。,ARM指令集,Thumb
13、 指令集,CODE32 LDRR0, =Lable+1 BX R0 CODE16 Lable MOV R1, #12,CODE16 LDR R0, =Lable BX R0 CODE32 LableMOV R1, #10,执行完BX指令,处理器切换到Thumb状态,开始执行Thumb指令,程序代码,指令集关系,从ARM状态切换到Thumb状态的程序代码如下:,从Thumb状态切换到ARM状态的程序代码如下:,执行完BX指令,处理器切换到ARM状态,开始执行ARM指令,1.ARM简介 2.ARM7TDMI 3.ARM的模块、内核和功能框图 4.ARM处理器状态 5.ARM处理器模式,ARM7体系
14、结构,6.ARM内部寄存器 7.当前程序状态寄存器 8.ARM体系的异常、中断及其向量表 9.ARM体系的存储系统,2.5 ARM处理器模式,简介,ARM体系结构支持7种处理器模式,分别为:用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。这样的好处是可以更好的支持操作系统并提高工作效率。ARM7TDMI完全支持这七种模式。,除用户模式外,其它模式均为特权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。,处理器模式,这两种模式都不能由异常进入,想要进入必须
15、修改CPSR,而且它们使用完全相同的寄存器组。系统模式是特权模式,不受用户模式的限制。操作系统在该模式下访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。,这五种模式称为异常模式。它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。,何时进入异常模式,具体规定如下: 处理器复位之后进入管理模式,操作系统内核通常处于管理模式; 当处理器访问存储器失败时,进入数据访问中止模式; 当处理器遇到没有定义或不支持的指令时,进入未定义模式; 中断
16、模式与快速中断模式分别对ARM处理器2种不同级别的中断作出响应。,1.ARM简介 2.ARM7TDMI 3.ARM的模块、内核和功能框图 4.ARM处理器状态 5.ARM处理器模式,ARM7体系结构,6.ARM内部寄存器 7.当前程序状态寄存器 8.ARM体系的异常、中断及其向量表 9.ARM体系的存储系统,2.6 ARM内部寄存器,简介,在ARM处理器内部共有37个用户可访问的寄存器,分别为31个通用32位寄存器和6个状态寄存器。,ARM处理器共有7种不同的处理器模式,每种模式都有一组相应的寄存器组,最多可以18个活动的寄存器。,ARM状态各模式下的寄存器,所有的37个寄存器,分成两大类: 31个通用32位寄存器; 6个状态寄存器。,ARM状态各模式下可以访问的寄存器,未分组的通用寄存器,寄存器R0R7为未分组的通用寄存器,它们在任何处理器模式都对应于相同的32位物理寄存器。,第一类分组的通用寄存器,寄存器R8R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄