arm嵌入式原理技术及应用ch.ppt
《arm嵌入式原理技术及应用ch.ppt》由会员分享,可在线阅读,更多相关《arm嵌入式原理技术及应用ch.ppt(130页珍藏版)》请在三一办公上搜索。
1、2023/7/5,2010.12,陈 赜,ARM嵌入式技术原理与应用,2023/7/5,第二章 ARM体系结构及编程模型,2023/7/5,了解ARM技术的应用领域 熟悉ARM微处理器系列的基本类型和主要特点 理解ARM微处理器的工作状态和工作模式 掌握ARM微处理器的存储器系统和寄存器组织以及异常中断的应用。,2023/7/5,2.1 ARM微处理器的特点,ARM(Advanced RISC Machines,ARM)既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。,2023/7/5,ARM公司于1990年11月在英国剑桥成立,前身为Acorn计算机
2、公司。ARM公司是全球领先的16/32位嵌入式RISC微处理器解决方案供应商。ARM公司是知识产权(IP)公司,本身不生产芯片,靠转让设计许可,由合作伙伴公司来生产各具特色的芯片。,2023/7/5,目前,全世界有几十家著名的半导体公司都使用ARM公司的授权,其中包括MOTOROLA、IBM、Intel、LG、SONY、NEC、ATMEL等,从而保证了大量的开发工具和丰富的第三方资源,它们共同保证了基于ARM处理器核的设计可以很快投入市场。ARM公司已成为移动通信、手持设备、多媒体数字消费嵌入式解决方案的RISC标准。,2023/7/5,采用RISC指令集,低功耗、低成本、高性能,使用大量的寄
3、存器,ARM/THUMB指令支持,三/五级流水线,ARM微处理器特点:,2023/7/5,采用RISC架构的ARM处理器一般具有如下特点:,固定长度的指令格式,指令归整、简单、基 本寻址方式有23种;,使用单周期指令,便于流水线操作执行;,大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率。,2023/7/5,ARM 处理器共有37个寄存器,被分为若干个组,这些寄存器包括:,31个通用寄存器,包括程序计数器(PC 指针),均为32位的寄存器;,6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位。,2023/7/5,ARM微处
4、理器支持两种指令集 ARM指令集和Thumb指令集,ARM指令为32位的长度,Thumb指令为16位长度 Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省3040以上的存储空间,同时具备32位代码的所有优点。,2023/7/5,除此以外,ARM体系结构还采用了一些特别的技术,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗。,所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。,可用加载/存储指令批量传输数据,以提高数据的传输效率。,可在一条数据处理指令中同时完成逻辑处理和移位处理。,在循环处理中使用地址的自动增减来提高运行效率。,2023/7
5、/5,2.2 ARM微处理器系列介绍,1.ARM7系列 ARM7采用冯诺依曼(Von-Neumann)结构,数据存储器和程序存储器使用同一存储空间,用相同的指令访问。此结构也被大多数计算机所采用。ARM7为三级流水线结构(取指,译码,执行),平均功耗为0.6mW/MHz,时钟速度为66MHz,每条指令平均执行1.9个时钟周期。,2023/7/5,ARM7系列微处理器包括如下几种类型的核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。TDMI的基本含义为(对其它系列也适用):T:支持16为
6、压缩指令集Thumb,称为T变种D:支持片上Debug,称为D变种M:内嵌硬件乘法器 Multiplier,称为M变种I:嵌入式ICE,支持片上断点和调试,称为I变种,2023/7/5,表2-1 ARM7系列产品,2023/7/5,2.ARM9系列ARM7采用的冯诺依曼 Von Neumann结构,取指令和取操作数都是通过一条总线分时进行,这样,在高速运算时,不但不能同时取指令和取操作数,而且还会造成传输通道上的瓶颈现象。ARM9采用哈佛(Harvard)结构,程序存储器与数据存储器分开,提供了较大的存储器带宽。同时,大多数DSP都采用此结构。,2023/7/5,ARM9为五级流水(取指,译码
7、,执行,缓冲/数据,回写),平均功耗为0.7mW/MHz。时钟速度为120MHz-200MHz,每条指令平均执行1.5个时钟周期。ARM9系列微处理器包含ARM920T、ARM922T和ARM940T三种类型,主要应用在手持产品、视频电话、PDA、数字消费产品、机顶盒、家用网关等方面。,2023/7/5,表2-2 ARM9系列产品,2023/7/5,3.ARM9E系列 ARM9E系列微处理器包括如下4种类型的核:ARM926EJ-S、ARM946E-S和ARM966E-S,见表2-3。,2023/7/5,表2-3 ARM9E系列产品,2023/7/5,ARM9E系列是一种包含有微控制器、DSP
8、、Java功能的综合处理器,强化了数字信号处理能力,适用于需要DSP和微控制器结合使用的情况,并且把Thumb技术和DSP都扩展到了ARM指令中,并且具有EmbededICE-RT逻辑,更好地适应了实时系统开发的需要。同时ARM9E使用了Jazelle增强技术,该技术支持一种新的Java操作状态,在硬件中执行Java字节码。,2023/7/5,4.ARM10系列 ARM10系列微处理器包括:ARM1020E和ARM1022E等型号,见表2-4。ARM10系列采用了新的体系结构,其核心为使用了向量浮点单元,有强大的浮点运算能力,并且增加了Cache容量和总线宽度,并且具有低功耗的特点。ARM10
9、系列微处理器主要应用于下一代无线设备、视频消费品等。,2023/7/5,表2-4 ARM10系列产品,2023/7/5,5.ARMStrong/Xscale系列 StrongARM是采用ARM体系结构高度集成的32位RISC微处理器。它融合了Intrl公司的设计技术,以及ARM体系结构的电源效率,其体系结构在软件上兼容ARMv4,同时又具有Intel技术优点。,2023/7/5,StrongARM是Intrl公司为手持消费类电子和移动计算与通信设备生产的嵌入式处理器。采用StrongARM架构的处理器有:SA-1、SA-110、SA-1100、SA1110和IXP1200。Xscale是基于A
10、RMv5体系结构的解决方案,是一款性能全、性价比高、功耗低的处理器,支持16位的Thumb和DSP指令集,主要应用于数字移动电话、个人数字助理和网络产品等。Xscale架构的处理器有:PXA250、PXA255和PXA270等。,2023/7/5,6.ARM11系列 ARM11系列微处理器内核最新内核:ARM1156T2-S内核、ARM1156T2F-S内核、ARM1176JZ-S内核和ARM11JZF-S内核。,2023/7/5,7.SecurCore系列 SecurCore系列微处理器除了具有ARM体系结构各种主要特点外,还在系统安全方面具有如下的特点:(1)带有灵活的保护单元,确保操作系
11、统和应用数据的安全;(2)采用软内核技术,防止外部对其进行扫描探测;(3)可集成用户自己的安全特性和其他协处理器。,2023/7/5,8.ARM Cortex 系列 ARM Cortex发布于2005年,ARM Cortex系列的三款产品全都集成了Thumb-2 指令集,可满足各种不同的日益增长的市场需求。ARM Cortex系列的三款处理器:1)ARM Cortex-A 系列:针对复杂操作系统以及用户应用设计的应用处理器;2)ARM Cortex-R系列:实时系统专用嵌入式处理器;3)ARM Cortex-M系列:针对微控制器和低成本应用专门优化的深嵌入式处理器。,2023/7/5,9.基于
12、32位ARM核微处理器基于32位ARM核微处理器的主要公司有:1)ST(意法半导体)公司32位ARM核微处理器。主要有:STR7、STR9和STM32系列。2)Freescale公司32位微控制器与处理器,主要是MCF52xx系列。3)OKI公司 32位ARM7DMI核微处理器,主要是ML67xx系列。4)ATMEL 公司微控制器,主要是AT91FR、AT91M、AT91RM、AT91SAM等系列。,2023/7/5,5)PHILIPS飞利浦/NXP恩智浦 ARM单片机,主要是LPC21xx,LPC22xx等系列。6)Intel 公司的Strong ARM 系列和XScale 系列。7)Sam
13、Sung 公司的ARM系列,主要有S3C44B0X、S3C2410X、S3C2440X、S3C5410X等系列。8)TI公司的ARM 处理器主要是OMAP、C5470/C5471等系列。9)Cirrus Logic公司的ARM 处理器系列,主要是EP9xxx等系列。,2023/7/5,ARM系列产品命名规则,2023/7/5,1.ARM体系结构的特点,总体思想 在不牺牲性能的同时,尽量简化处理器。同时从体系结构的层面上灵活支持处理器扩展。这种简化和开放的思路使得ARM处理器采用了很简单的结构来实现。,2.3 ARM体系结构,2023/7/5,ARM处理器是最先进的 目前,ARM32位体系结构被
14、公认为业界领先的32位嵌入式RISC微处理器核,所有ARM处理器都共享这一体系结构。,2023/7/5,1)RISC型处理器结构ARM采用RISC结构,在简化处理器结构,减少复杂功能指令的同时,提高了处理器的速度。考虑到处理器与存储器打交道的指令执行时间远远大于在寄存器内操作的指令执行时间,RISC型处理器采用了Load/Store(加载/存储)结构,即只有Load/Store指令可与存储器打交道,其余指令都不允许进行存储器操作。,2023/7/5,为了进一步提高指令和数据的存取速度,RISC型处理器增加了指令高速缓冲I-Cache和数据高速缓冲D-Cache及多处理器结构,使指令的操作尽可能
15、在寄存器之间进行。,2023/7/5,只能对寄存器执行算术和逻辑操作,Load/Store体系结构,2023/7/5,2)Thumb指令集虽然ARM处理器本身是32位设计,但考虑到RISC型处理器的指令功能相对较弱,新型的ARM体系结构中定义了16位的Thumb指令集。Thumb指令集比通常的8/16位CISC/RISC处理器有更好的代码密度,而芯片面积只增加6%,却可以使程序存储器更小。,2023/7/5,3)多处理器状态模式ARM体系结构定义了7种处理器模式:用户、快中断、中断、管理、终止、未定义和系统模式,大大提高了ARM处理器的效率。4)两种处理器工作状态ARM状态(执行32位ARM指
16、令)Thumb状态。(执行16位Thumb指令),2023/7/5,5)嵌入式在线仿真调试ARM体系结构的处理器芯片都嵌入了在线仿真ICE-RT逻辑,便于通过JTAG来仿真调试芯片,省去了价格昂贵的在线仿真器。,2023/7/5,6)灵活方便的接口ARM体系结构具有协处理器接口,允许接16个协处理器。既可以使基本的ARM处理器内核尽可能小,方便地扩充ARM指令集,也可以通过未定义指令来支持协处理器的软件仿真。7)低电压功耗的设计考虑到ARM处理器主要用于手持式嵌入式系统中,在设计中就十分注意功耗的设计。,2023/7/5,2023/7/5,2.ARM9体系结构比较最常用的是ARM920T内核,
17、ARM920T结构主要部分有7部分构成:ARM9TDMI内核CPU MMU Cache 协处理器接口 运行跟踪信息接口(ETM)JTAG调试接口 总线接口,2023/7/5,ARM9TDMI体系结构框图,2023/7/5,ARM920T体系结构框图,2023/7/5,ARM920T体系结构框图,2023/7/5,ARM9TDMI核性能,0.25微米的ARM9TDMI核在执行32位ARM代码时的特性综述于下表3。核的版图示于下页图。,2023/7/5,2.4 ARM流水线结构,1.流水线技术概述 流水线方式 是把一个重复的过程分解为若干个子过程,每个子过程可以与其他子过程同时进行。由于这种工作方
18、式与工厂中的生产流水线十分相似,因此,把它称为流水线工作方式。,2023/7/5,处理器按照一系列步骤来执行每一条指令。典型的步骤为:1)从存储器读取指令(fetch)2)译码以鉴别它是哪一类指令(dec)3)从寄存器组取得所需的操作数(reg)4)将操作数进行组合以得到结果或存储器地址(exe)5)如果需要,则访问存储器存取数据(mem)6)将结果回写到寄存器组(res),2023/7/5,2.ARM7的三级流水线1取指:从程序存储器中取指令,放入指令流水线。(占用存储器访问操作)2译码:指令译码。(占用译码逻辑)3执行:执行指令/读写REG。(占用ALU及数据路径),2023/7/5,下图
19、为3个单周期指令在流水线上的情况。一条指令有3个时钟周期的执行时间,但吞吐量是每个周期1条指令。,t,123,PC值如何计算?,PC 指向处于读取级的指令地址,而不是处于执行级的指令地址PC=当前执行指令地址+8,ARM单周期指令的3级流水线操作,2023/7/5,优秀的流水线结构,2023/7/5,3.ARM9TDMI的五级流水线,ARM7TDMI与ARM9TDMI流水线比较,2023/7/5,4.ARM7和ARM9流水线比较 5级流水线的ARM9内核是哈佛架构,拥有独立的指令和数据总线;指令和数据的读取可以在同一周期进行;3级流水的ARM7内核是指令和数据总线复用的冯.诺依曼架构,指令和数
20、据的读取不能在同一周期进行;5级流水线设计把寄存器读取、逻辑运算、结果回写分散在不同的流水当中,每一级流水的操作简洁,提升了处理器的主频。,2023/7/5,随着流水线深度(级数)的增加,每一段的工作量被削减了,这使得处理器可以工作在更高的频率,同时改进了处理器的性能;负面作用是增加了系统的延时,即内核在执行一条指令前,需要更多的周期来填充流水线;流水线级数的增加也意味着在某些段之间会产生数据相关。,2023/7/5,ARM处理器性能比较,2023/7/5,25 ARM总线结构,ARM微控制器使用的是AMBA总线体系结构AMBA(Advanced Microcontroller Bus Arc
21、hitecture)是ARM公司公布的总线标准,先进的AMBA规范定义了三种总线:,2023/7/5,AHB总线(Advanced High-performance Bus):用于连接高性能系统模块。它支持突发数据传输方式及单个数据传输方式,所有时序 参考同一个时钟沿。ASB总线(Advanced System Bus):用于连接高性能系统模块,它支持突发数据传输模式。APB总线(Advance Peripheral Bus):是一个简单接口支持低性能的外围接口。,2023/7/5,从编程的角度看,ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:,ARM状态,此时处理器执行32位的
22、字对齐的ARM指令;,Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。,ARM处理器有两种工作状态和7种工作模式。,26 ARM微处理器的工作状态与模式,1.ARM处理器的两种工作状态,2023/7/5,THUMB指令是ARM指令的子集,可以相互调用,只要遵循一定的调用规则,Thumb指令与ARM指令的时间效率和空间效率关系为:,存储空间约为ARM代码的6070,指令数比ARM代码多约3040,存储器为32位时ARM代码比Thumb代码快约40,存储器为16位时Thumb比ARM代码快约4050,使用Thumb代码,存储器的功耗会降低约30,2023/7/5,ARM指令集和T
23、humb指令集均有切换处理器状态的指令,并可在两种工作状态之间切换,,在开始执行代码时,应该处于ARM状态。,状态切换方法,两种状态可以切换 程序执行过程中,通过执行带状态切换的分支指令BX,随时在两种工作状态之间进行切换。并且,处理器工作状态的转变,并不影响处理器的工作模式和相应寄存器中的内容。,2023/7/5,进入Thumb状态,当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态。此为主动切换。,当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切换到Thumb状态。
24、此为自动切换。,2023/7/5,切换到ARM状态,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。,有两种情况ARM处理器自动切换到Thumb状态。,(1)执行BX指令,当操作数寄存器的位0为0时,则微处理器从Thumb状态切换到ARM状态。(2)当处理器在Thumb状态时发生异常(如IRQ、FIQ、Undef等),则处理器从Thumb状态自动切换到ARM状态进行异常处理,2023/7/5,例:状态切换程序;从ARM状态切换到Thumb状态LDRR0,=Lable+1BXR0;从Thumb状态切换到ARM状态LDRR0
25、,=LableBXR0注意:ARM和Thumb之间状态的切换不影响处理器的模式或寄存器的内容。ARM处理器在开始执行代码时,只能处于ARM状态。,2023/7/5,1)处理器模式,用户模式(usr):ARM处理器正常的程序执行状态,大部分任务执行在这种模式。,快速中断模式(fiq):当一个高优先级(fast)中断产生时将会进入这种模式,用于高速数据传输或通道处理,外部中断模式(irq):当一个低优先级(normal)中断产生时将会进入这种模式。用于通用的中断处理,2.ARM处理器的工作模式,2023/7/5,管理模式(svc):当复位或软中断指令执行时将会进入这种模式,供操作系统使用的一种保护
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- arm 嵌入式 原理 技术 应用 ch
链接地址:https://www.31ppt.com/p-5415674.html