ARM汇编语言程序设计基础课件第2章ARM体系结构.ppt
《ARM汇编语言程序设计基础课件第2章ARM体系结构.ppt》由会员分享,可在线阅读,更多相关《ARM汇编语言程序设计基础课件第2章ARM体系结构.ppt(120页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第2章章 ARM体系结构体系结构2.1 ARM体系结构简介体系结构简介nARM(Advanced RISC Machines)公司1991年成立于英国剑桥,是专门从事基于RISC技术芯片设计开发的公司,主要出售芯片设计技术的授权,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用ARM公司的授权,使得ARM技术获得了更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产
2、品更容易进入市场,更具有竞争力。目前,ARM微处理器几乎已经深入到工业控制、无线通讯、网络应用、消费类电子产品、成像和安全产品各个领域n采用RISC架构的ARM微处理器一般具有如下特点:n 支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件。Thumb指令集比通常的8位和16位CISC/RISC处理 器具有更好的代码密度;n 指令执行采用3级流水线/5级流水线技术;n 带有指令Cache和数据Cache,大量使用寄存器,指令执行速度更快。大多数数据操作都在寄存器中完成。寻址方式灵活简单,执行效率高。指令长度固定(在ARM状态下是32位,在Thumb状态下是16位)
3、;n 支持大端格式和小端格式两种方法存储字数据;n 支持Byte(字节,8位)、Halfword(半字,16位)和Word(字,32位)三种数据类型。n 支持用户、快中断、中断、管理、中止、系统和未定义等7种处理器模式,除了用户模式外,其余的均为特权模式;n 处理器芯片上都嵌入了在线仿真ICE-RT逻辑,便于通过JTAG来仿真调试ARM体系结构芯片,可以避免使用昂贵的在线仿真器。另外,在处理器核中还可以嵌入跟踪宏单元ETM,用于监控内部总线,实时跟踪指令和数据的执行;n 具有片上总线AMBA(Advanced Micro-controller Bus Architecture)。nAMBA定义
4、了3组总线:先进高性能总线AHB(Advanced High performance Bus);先进系统总线ASB(Advanced System Bus);先进外围总线APB(Advanced Peripheral Bus)。通过AMBA可以方便地扩充各种处理器及I/O,可以把DSP、其他处理器和I/O(如UART、定时器和接口等)都集成在一块芯片中;n 采用存储器映像I/O的方式,即把I/O端口地址作为特殊的存储器地址;n 具有协处理器接口。ARM允许接16个协处理器,如CP15用于系统控制,CP14用于调试控制器;n 采用了降低电源电压,可工作在3.0V以下;减少门的翻转次数,当某个功能
5、电路不需要时禁止门翻转;减少门的数目,即降低芯片的集成度;降低时钟频率等一些措施降低功耗;n 体积小、低成本、高性能。nARM微处理器包括ARM7、ARM9、ARM9E、ARM10E、SecurCore、以及Intel的StrongARM、XScale和其它厂商基于ARM体系结构的 处理器,除了具有ARM体系结构的共同特点以外,每一个系列的ARM微处理器都有各自的特点和应用领域。n一个典型的ARM体系结构方框图如图所示,包含有32位ALU、31个32位通用寄存器及6位状态寄存器、328位乘法器3232位桶形移位寄存器、指令译码及控制逻辑、指令流水线和数据地址寄存器等。图2.1.1 ARM体系结
6、构方框图n1ALUnARM体系结构的ALU与常用的ALU逻辑结构基本相同,由两个操作数锁存器、加法器、逻辑功能、结果及零检测逻辑构成。ALU的最小数据通路周期包含寄存器读时间、移位器延迟、ALU延迟、寄存器写建立时间、双相时钟间非重叠时间等几部分。n2桶形移位寄存器桶形移位寄存器nARM采用了3232位桶形移位寄存器,左移右移n位、环移n位和算术右移n位等都可以一次完成,可以有效的减少移位的延迟时间。在桶形移位寄存器中,所有的输入端通过交叉开关(Crossbar)与所有的输出端相连。交叉开关采用NMOS晶体管来实现。n3高速乘法器高速乘法器nARM为了提高运算速度,采用两位乘法的方法,2位乘法
7、可根据乘数的2位来实现“加移位”运算。ARM的高速乘法器采用328位的结构,完成322位乘法也只需5个时钟周期。n4浮点部件浮点部件n在ARM体系结构中,浮点部件作为选件可根据需要选用,FPA10浮点加速器以协处理器方式与ARM相连,并通过协处理器指令的解释来执行。n浮点的Load/Store指令使用频度要达到67,故FPA10内部也采用Load/Store结构,有8个80位浮点寄存器组,指令执行也采用流水线结构。n5控制器控制器nARM的控制器采用硬接线的可编程逻辑阵列PLA,其输入端有14根、输出端有40根,分散控制Load/Store多路、乘法器、协处理器以及地址、寄存器ALU和移位器。
8、n6寄存器寄存器nARM内含37个寄存器,包括31个通用32位寄存器和6个状态寄存器。2.2 ARM微处理器结构微处理器结构n2.2.1 ARM7微处理器 nARM7系列微处理器包括ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ几种类型。其中,ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,主频最高可达130MIPS,采用能够提供0.9MIPS/MHz的三级流水线结构,内嵌硬件乘法器(Multiplier),支持16为压缩指令集Thumb,嵌入式ICE,支持片上Debug,支持片上断点和调试点。指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,支
9、持Windows CE、Linux、Palm OS等操作系统。典型产品如Samsung公司的S3C4510B。n1ARM7TDMI处理器内核处理器内核nARM7TDMI处理器的内核如图所示。图2.2.1 ARM7TDMI内核结构 nARM7TDMI还提供了存储器接口、MMU接口、协处理器接口和调试接口,以及时钟与总线等控制信号,如图所示。n存储器接口包括了32位地址A31:0、双向32位数据总线D31:0、单向32位数据总线DIN31:0与DOUT31:0、以及存储器访问请求MREQ、地址顺序SEQ、存储器访问控制MAS1:0和数据锁存控制BL3:0等控制信号。nARM7TDMI处理器内核也可
10、以ARM7TDMI-S软核(Softcore)形式向用户提供。同时,提供多种组合选择,例如可以省去嵌入式ICE单元等。图2.2.2 ARM7TDMI的接口n2ARM720T/ARM740T处理器内核处理器内核nARM720T处理器内核是在ARM7TDMI处理器内核基础上,增加8KB的数据与指令Cache,支持段式和页式存储的MMU(Memory Management Unit)、写缓冲器及AMBA(Advanced Microcontroller Bus Architecture)接口而构成,如图所示。nARM740T处理器内核与ARM720T处理器内核相比,结构基本相同,ARM740T处理器
11、核没有存储器管理单元MMU,不支持虚拟存储器寻址,而是用存储器保护单元来提供基本保护和Cache的控制。合适低价格低功耗的嵌入式应用。图2.2.3 ARM720T内核结构 n2.2.2 ARM9微处理器 nARM9系列微处理器包含ARM920T、ARM922T和ARM940T几种类型,可以在高性能和低功耗特性方面提供最佳的性能。采用5级整数流水线,指令执行效率更高。提供1.1MIPS/MHz的哈佛结构。支持数据Cache和指令Cache,具有更高的指令和数据处理能力。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA总线接口。全性能的MMU,支持Windows CE、Li
12、nux、Palm OS等多种主流嵌入式操作系统。MPU支持实时操作系统。nARM920T处理器核在ARM9TDMI处理器内核基础上,增加了分离式的指令Cache和数据Cache,并带有相应的存储器管理单元I-MMU和D-MMU、写缓冲器及AMBA接口等,如图所示。图2.2.4 ARM920T内核结构nARM940T处理器核采用了ARM9TDMI处理器内核,是ARM920T处理器核的简化版本,没有存储器管理单元MMU,不支持虚拟存储器寻址,而是用存储器保护单元来提供存储保护和Cache控制。nARM9系列微处理器主要应用于无线通信设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像
13、机等。典型产品如Samsung公司的S3C2410A。n2.2.3 ARM9E微处理器 nARM9E系列微处理器包含ARM926EJ-S、ARM946E-S和ARM966E-S几种类型,使用单一的处理器内核提供了微控制器、DSP、Java应用系统的解决方案。ARM9E系列微处理器提供了增强的DSP处理能力,很适合于那些需要同时使用DSP和微控制器的应用场合。nARM9E系列微处理器支持DSP指令集,适合于需要高速数字信号处理的场合。ARM9E系列微处理器采用5级整数流水线,支持32位ARM指令集和16位Thumb指令集,支持32位的高速AMBA总线接口,支持VFP9浮点处理协处理器,MMU支持
14、Windows CE、Linux、Palm OS等多种主流嵌入式操作系统,MPU支持实时操作系统,支持数据Cache和指令Cache,主频最高可达300MIPS。nARM9系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。n2.2.4 ARM10E微处理器 nARM10E系列微处理器包含ARM1020E、ARM1022E和ARM1026EJ-S几种类型,由于采用了新的体系结构,与同等的ARM9器件相比较,在同样的时钟频率下,性能提高了近50。同时采用了两种先进的节能方式,使其功耗极低。nARM10E系列微处理器支持DSP指令集,适合于需要高速数字信
15、号处理的场合。采用6级整数流水线,支持32位ARM指令集和16位Thumb指令集,支持32位的高速AMBA总线接口,支持VFP10浮点处理协处理器,MMU支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统,支持数据Cache和指令Cache,内嵌并行读/写操作部件,主频最高可达400MIPS。nARM10E系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统等领域。n2.2.5 SecurCore微处理器 nSecurCore系列微处理器包含SecurCore SC100、SecurCore SC110、SecurCore SC200和
16、SecurCore SC210几种类型,提供了完善的32位RISC技术的安全解决方案。nSecurCore系列微处理器除了具有ARM体系结构各种主要特点外,在系统安全方面:带有灵活的保护单元,以确保操作系统和应用数据的安全;采用软内核技术,防止外部对其进行扫描探测;可集成用户自己的安全特性和其他协处理器。nSecurCore系列微处理器主要应用于如电子商务、电子政务、电子银行业务、网络和认证系统等一些对安全性要求较高的应用产品及应用系统。n2.2.6 StrongARM微处理器 nIntel StrongARM处理器是采用ARM体系结构高度集成的32位RISC微处理器,采用在软件上兼容ARMv
17、4体系结构、同时采用具有Intel技术优点的体系结构。典型产品如SA110 处理器、SA1100、SA1110PDA系统芯片和SA1500多媒体处理器芯片等。例如其中的Intel StrongARM SA-1110 微处理器是一款集成了32位StrongARM RISC处理器核、系统支持逻辑、多通信通道、LCD控制器、存储器和PCMCIA控制器以及通用I/O口的高集成度通信控制器。该处理器最高可在206 MHz下运行。SA-1110有一个大的指令Cache 和数据Cache、内存管理单元(MMU)和读/写缓存。存储器总线可以和包括SDRAM、SMROM 和类似SRAM的许多器件相接。软件与AR
18、M V4结构处理器家族相兼容。nIntel StrongARM处理器是便携式通讯产品和消费类电子产品的理想选择。n2.2.7 XScale微处理器 nIntel XScale微体系结构提供了一种全新的、高性价比、低功耗且基于ARMv5TE体系结构的解决方案,支持16位Thumb指令和DSP扩充。基于XScale技术开发的微处理器,可用于手机、便携式终端(PDA)、网络存储设备、骨干网(BackBone)路由器等。nIntel XScale处理器的处理速度是Intel StrongARM处理速度的两倍,数据Cache的容量从8KB增加到32KB,指令Cache的容量从16KB增加到32KB,微小
19、数据Cache的容量从512B增加到2KB;为了提高指令的执行速度,超级流水线结构由5级增至7级;新增乘/加法器MAC和特定的DSP型协处理器,以提高对多媒体技术的支持;动态电源管理,使XScale处理器的时钟可达1GHz、功耗1.6W,并能达到1200MIPS。nXScale微处理器架构经过专门设计,核心采用了英特尔先进的0.18m工艺技术制造;具备低功耗特性,适用范围从0.1mW1.6W。同时,它的时钟工作频率将接近1GHz。XScale与nStrongARM相比,可大幅降低工作电压并且获得更高的性能。具体来讲,在目前的StrongARM中,在1.55V下可以获得133MHz的工作频率,在
20、2.0V下可以获得206MHz的工作频率;而采用XScale后,在0.75V时工作频率达到150MHz,在1.0V时工作频率可以达到400MHz,在1.65V下工作频率则可高达800MHz。超低功率与高性能的组合使Intel XScale适用于广泛的互联网接入设备,在因特网的各个环节中,从手持互联网设备到互联网基础设施产品,Intel XScale都表现出了令人满意的处理性能。nIntel采用XScale架构的嵌入式处理器典型产品有PXA25x、PXA26x和PXA27x系列。2.3 ARM微处理器的寄存器结构nARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄器包括:n 31个
21、通用寄存器,包括程序计数器(PC指针),均为32位的寄存器。n 6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位,目前只使用了其中的一部分。n2.3.1 处理器运行模式nARM微处理器支持7种运行模式,分别为:n usr(用户模式):ARM处理器正常程序执行模式。n fiq(快速中断模式):用于高速数据传输或通道处理 n irq(外部中断模式):用于通用的中断处理 n svc(管理模式):操作系统使用的保护模式 n abt(数据访问终止模式):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。n sys(系统模式):运行具有特权的操作系统任务。n und(未定义指
22、令中止模式):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。nARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。n大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。n除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式(Privileged Modes);其中除去用户模式和系统模式以外的5种又称为异常模式(Exception Modes),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。nARM处理器在每一种处理器模式下均有一组相应的寄存器与之对应。即在任意一种处理器模式下,可访问
23、的寄存器包括15个通用寄存器(R0R14)、一至二个状态寄存器和程序计数器。在所有的寄存器中,有些是在7种处理器模式下共用的同一个物理寄存器,而有些寄存器则是在不同的处理器模式下有不同的物理寄存器。n2.3.2 处理器工作状态nARM处理器有32位ARM和16位Thumb两种工作状态。在32位ARM状态下执行字对齐的ARM指令,在16位Thumb状态下执行半字对齐的Thumb指令。n在Thumb状态下,程序计数器PC(Program Counter)使用位1选择另一个半字。nARM处理器在两种工作状态之间可以切换,切换不影响处理器的模式或寄存器的内容。n(1)当操作数寄存器的状态位(位0)为1
24、时,执行BX指令进入Thumb状态。如果处理器在Thumb状态进入异常,则当异常处理(IRQ、FIQ、Undef、Abort和SWI)返回时,自动转换到Thumb状态。n(2)当操作数寄存器的状态位(位0)为0时,执行BX指令进入ARM状态,处理器进行异常处理(IRQ、FIQ、Reset、Undef、Abort和SWI)。在此情况下,把PC放入异常模式链接寄存器中。从异常向量地址开始执行也可以进入ARM状态。n2.3.3 ARM处理器的寄存器组织nARM处理器的37个寄存器被安排成部分重叠的组,不能在任何模式都可以使用,寄存器的使用与处理器状态和工作模式有关。如图所示,每种处理器模式使用不同的
25、寄存器组。其中15个通用寄存器(R0R14)、1或2个状态寄存器和程序计数器是通用的。n1通用寄存器通用寄存器n通用寄存器(R0R15)可分成不分组寄存器R0R7、分组寄存器R8R14和程序计数器R15 三类。n(1)不分组寄存器R0R7n不分组寄存器R0R7是真正的通用寄存器,可以工作在所有的处理器模式下,没有隐含的特殊用途。n(2)分组寄存器R8R14n分组寄存器R8R14取决于当前的处理器模式,每种模式有专用的分组寄存器用于快速异常处理。n寄存器R8Rl2可分为两组物理寄存器。一组用于FIQ模式,另一组国用于除FIQ以外的其他模式。第1组访问R8_fiqR12_fiq,允许快速中断处理。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 汇编语言 程序设计 基础 课件 体系结构
限制150内