1、嵌入式系统应用与开发第二嵌入式系统应用与开发第二章章ARM架构架构2.1 ARM架构的发展 ARM公司(Advanced RISC Machines Limited)正式成立于1990年。目前,ARM架构处理器已在高性能、低功耗、低成本的嵌入式应用领域占据领先地位,已占有75%左右的市场。ARM架构自诞生至今,已经发生了很大的演变,至今已定义5种不同的版本:1.V11.V1版架构版架构 该版架构只在原型机ARM1出现过,其基本性能:基本的数据处理指令(无乘法)字节、半字和字的LOAD/STORE指令 转移指令,包括子程序调用及链接指令 软件中断指令 寻址空间:64M字节(226)2.V22.V
2、2版架构版架构 该版架构对V1版进行了扩展,如ARM2与ARM3(V2a版)架构,增加了以下功能:乘法和乘加指令 支持协处理器操作指令 快速中断模式 SWP/SWPB的最基本存储器与寄存器交换指令 寻址空间:64M字节3.V33.V3版架构版架构 V3版架构对ARM体系结构作为较大的改动,把寻址空间增至32位(4G字节),增加了当前程序状态寄存器CPSR(Current Program Status Register)和程序状态保存寄存器SPSR(Saved Program Status Register)以便于异常(Exception)的处理。增加了中止(Abort)和未定义二种处理器模式。
3、ARM6就采用该版架构。指令集变化如下:增加了MRS/MSR指令,以访问新增的CPSR/SPSR寄存器 增加了从异常处理返回的指令功能。4.V44.V4版架构版架构 V4版架构是目前应用最广的ARM体系结构,对V3版架构进行了进一步扩充,有的还引进了16位的Thumb指令集,使ARM使用更加灵活。ARM7、ARM8、ARM9和StrongARM都采用该版架构。指令集中增加了以下功能:符号化和非符号化半字及符号化字节的存/取指令 增加了16位Thumb指令集 完善了软件中断SWI指令的功能 处理器系统模式引进特权方式时使用用户寄存器操作 把一些未使用的指令空间捕获为未定义指令5.V55.V5版架
4、构版架构 这是最近推出ARM架构,在V4版基本上增加了一些新的指令,ARM10和XScale都采用该版架构,这些新增指令有:带有链接和交换的转移BLX指令 计数前导零CLZ指令 BRK中断指令 增加了信号处理指令(V5TE版)为协处理器增加更多可选择的指令2.2 ARM架构的特点1.RISC(Reduced Instruction Set Computer)型处理器结构尽量减少复杂功能指令每条指令在单机器周期内执行每条指令都是32bit,具有多种操作功能访问存储空间指令采用LOAD/STORE结构采用cache来提高存/取速度多寄存器结构小知识:RISC体系结构 传统的CISC(Complex
5、 Instruction Set Computer,复杂指令集计算机)结构越来越复杂。在CISC指令集的各种指令中,其使用频率却相差悬殊,大约有20的指令会被反复使用,占整个程序代码的80。而余下的80的指令却不经常使用,在程序设计中只占20,显然,这种结构是不太合理的。指令类型使用指令使用频度 数据传送类43%转/跳控制类23%算术运算类15%比较类13%逻辑运算类5%其他1%表2.1 典型指令使用频度小知识:RISC体系结构(续二)1979年美国加州大学伯克利分校提出了RISC(Reduced Instruction Set Computer,精简指令集计算机)的概念,RISC并非只是简单
6、地去减少指令,而是把着眼点放在了如何使计算机的结构更加简单合理地提高运算速度上。RISC结构优先选取使用频最高的简单指令,避免复杂指令;将指令长度固定,指令格式和寻地方式种类减少;以控制逻辑为主,不用或少用微码控制等措施来达到上述目的。小知识:RISC体系结构(续三)RISC体系结构应具有如下特点:采用固定长度的指令格式,指令归整、简单、基本寻址方式有23种。使用单周期指令,便于流水线操作执行。大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率。现代的CPU往往采用CISC的外围,内部加入了RISC的特性,如超长指令集CPU就是融合了RISC
7、和CISC的优势,成为未来的CPU发展方向之一。小知识:RISC体系结构(续四)2.ThumbThumb指令集指令集 由于RISC型处理器的指令功能相对比较弱,ARM为了弥补此不足,在新型ARM架构(V4T版以上)定义了16位的Thumb指令集。Thumb指令集比通常的8位和16位CISC/RISC处理器具有更好的代码密度,而芯片面积只增加6%。可以使程序存储器更加小。Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省3040以上的存储空间,同时具备32位代码的所有优点。3.多处理器状态模式多处理器状态模式 ARM可以支持用户、快中断、中断、管理、中止、系统和未定义等
8、七种处理器模式,除了用户模式外,其余的均为特权模式。这也是ARM的特色之一,可以大大提高ARM处理器的效率。表2.2 ARM version4 processor modes4.嵌入式在线仿真调试嵌入式在线仿真调试 ARM架构的处理器芯片都嵌入了在线仿真ICERT逻辑,便于通过了JTAG来仿真调试ARM架构芯片。另外,在处理器核中还可以嵌入跟踪宏单元ETM(Embedded Trace Macrocell),用于监控内部总线,实时跟踪指令和数据的执行。5.灵活和方便的接口灵活和方便的接口 ARM架构具有协处理器接口,允许接16个协处理器。ARM处理器核还具有片上总线OCB的AMBA。AMBA定
9、义了三组总线:先进高性能总线AHB、先进系统总线ASB和先进外围总线APB。通过AMBA来方便扩充各种处理器及I/O,可以把DSP、其他处理器和I/O(如VART、定时器和接口等)都集成在一块芯片中。6.低电压低功耗的设计低电压低功耗的设计 ARM架构的设计采用了以下一些措施:降低电源电压,可工作在3.0V以下。减少门的翻转次数,当某个功能电路不需要时禁止门翻转。减少门的数目,即降低芯片的集成度。降低时钟频率2.3 ARM的分类 ARM微处理器目前包括下面几个系列,以及其它厂商基于ARM体系结构的处理器,ARM7系列 ARM9系列 ARM9E系列 ARM10E系列 SecurCore系列 In
10、tel的Xscale Intel的StrongARM1.ARM7微处理器系列ARM7系列微处理器为低功耗的32位RISC处理器,最适合用于对价位和功耗要求较高的消费类应用。ARM7微处理器系列特点:具有嵌入式ICERT逻辑,调试开发方便。极低的功耗,适合对功耗要求较高的应用。能够提供0.9MIPS/MHz的三级流水线结构。代码密度高并兼容16位的Thumb指令集。对操作系统的支持广泛,包括Windows CE、Linux、Palm OS等。指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户的产品升级换代。主频最高可达130MIPS,高速的运算处理能力能胜任绝大多数的复杂应用
11、。ARM7系列微处理器的主要应用领域为:工业控制、Internet设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。ARM7系列微处理器包括如下几种类型的核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其中ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。内核后缀TDMI的基本含义为:T:支持16为压缩指令集Thumb;D:支持片上Debug;M:内嵌硬件乘法器(Multiplier)I:嵌入式ICE,支持片上断点和调 试点;处理器后缀的含义 S S:可综合的软核Softcore E E:具有DSP的功能 J J:Jaze
12、ller,允许直接执行Java字节码2.ARM9微处理器系列ARM9系列微处理器在高性能和低功耗特性方面提供最佳的性能。具有以下特点:5级整数流水线,指令执行效率更高。提供1.1MIPS/MHz的哈佛结构。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA总线接口。全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。MPU支持实时操作系统。支持数据Cache和指令Cache,具有更高的指令和数据处理能力。ARM9系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等。ARM9系列微处理器包
13、含ARM920T、ARM922T和ARM940T三种类型,以适用于不同的应用场合。3.ARM9E微处理器系列ARM9E系列微处理器为可综合处理器,使用单一的处理器内核提供了微控制器、DSP、Java应用系统的解决方案,极大的减少了芯片的面积和系统的复杂程度。ARM9E系列微处理器提供了增强的DSP处理能力,很适合于那些需要同时使用DSP和微控制器的应用场合。ARM9系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。ARM9E系列微处理器包含ARM926EJ-S、ARM946E-S和ARM966E-S三种类型。ARM9E系列微处理器的主要特点如下:支
14、持DSP指令集,适合于需要高速数字信号处理的场合。5级整数流水线,指令执行效率更高。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA总线接口支持VFP9浮点处理协处理器。全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。MPU支持实时操作系统。支持数据Cache和指令Cache,具有更高的指令和数据处理能力。主频最高可达300MIPS。4.ARM10E微处理器系列 ARM10E系列具有高性能、低功耗的特点,由于采用了新的体系结构,与同等的ARM9器件相比较,在同样的时钟频率下,性能提高了近50,同时,ARM10E系列微处理器采
15、用了两种先进的节能方式,使其功耗极低。ARM10E系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统等领域。包含ARM1020E、ARM1022E和ARM1026EJ-S三种类型。ARM10E系列微处理器的主要特点如下:支持DSP指令集,适合于需要高速数字信号处理的场合。6级整数流水线,指令执行效率更高。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA总线接口。支持VFP10浮点处理协处理器。全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。支持数据Cache和指令Cache,具有更高的指令和
16、数据处理能力主频最高可达400MIPS。内嵌并行读/写操作部件。2.4 ARM架构 ARM架构由32位ALU、31个32位通用寄存器及6位状态寄存器、328位乘法器、3232位桶形移位寄存器、指令译码及控制逻辑、指令流水线和数据/地址寄存器组成。图2.1 ARM架构图 1.ALU算术逻辑运算单元 ALU是处理器核心的中心处理部分,实现对数据进行运算处理。由二个操作数锁存器、加法器、逻辑功能、结果及零检测逻辑构成。图2.2 ALU逻辑框图 2.Barrel shifter Barrel shifter 桶形移位寄存器桶形移位寄存器 为了减少移位的延迟时间,ARM采用了3232位的桶形移位寄存器。
17、这样,可以使左移/右移n位、环移n位和算术右移n位等都可以一次完成。图2.3 44位桶形移位寄存器示意图 3.Multiplicator Multiplicator高速乘法器高速乘法器 ARM的高速乘法器采用328位的结构,这样,可以降低集成度,(其相应芯片面积不到并行乘法器的1/3),完成3232位乘法也只需5个时钟周期。图2.4 高速乘法器逻辑框图 4.Float Point Float Point 浮点部件浮点部件 浮点部件是作为选件为ARM架构选用,FPA10浮点加速器是作为协处理器方式与ARM相连,并通过协处理器指令的解释来执行。浮点的LOAD/STORE指令使用频度要达到67%,故
18、FPA10内部也采用LOAD/STORE结构,有八个80位浮点寄存器组,指令执行也采用流水线结构。图2.5 FPA10浮点加速器内部结构框图 5.Controller 控制器控制器 ARM的控制器采用硬接线的可编程逻辑阵列PLA,其输入端14根,输出40根,分散控制LOAD/STORE多路、乘法器、协处理器以及地址、寄存器、ALU和移位器的控制。新型的ARM采用了二块PLA,一块小的快速PLA,用来产生与时间相关的输出;一块大的慢速PLA用来产生其他输出。图2.6 ARM控制逻辑结构图 6.Registers寄存器寄存器 ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄存器包括
19、:a)a)通用寄存器通用寄存器b)包括程序计数器(PC指针),共31个,均为32位的寄存器。分为:c)i.R0R7:与所有处理器模式无关的寄存器,可以用作任何用途。ii.R8R14:与处理器模式有关的寄存器,在不同的模式下,对应到不同的物理寄存器。其中 R13又叫做 sp,一般用于堆栈指针。R14又叫做lr,一般用于保存返回地址。这两个寄存器在每种异常模式下都对应到不同的物理寄存器上,例如lr_irq、lr_svc、lr_fiq 等。iii.R15:又叫做程序计数器,即pc,所有的模式下都使用同一个 pc。b)b)状态寄存器状态寄存器 用以标识CPU的工作状态及程序的运行状态。共6个,均为32
20、位。i.CPSR:当前程序状态寄存器(Current Program Status Register),所有的模式 下都使用同一个 CPSR。ii.SPSR:保存程序状态寄存器(Saved Program Status Register)。每种异常模式下都有自己的SPSR,一共有5种SPSR,即 SPSR_irq、SPSR_fiq、SPSR_svc、SPSR_abt、SPSR_und。usr和sys 态下没有 SPSR。条件码标识 N:负数标识 Z:结果为零标识 C:进位位标识 V:溢出标识 *Q:DSP的溢出/饱和(选用)控制位 I:IRQ中断禁止位 F:FIQ快中断禁止位 T:Thumb位
21、 M4:0:处理器工作模式 ARM处理器又有7种不同的处理器模式,在每一种处理器模式下均有一组相应的寄存器与之对应。即在任意一种处理器模式下,可访问的寄存器包括15个通用寄存器(R0R14)、一至二个状态寄存器和程序计数器。在所有的寄存器中,有些是在7种处理器模式下共用的同一个物理寄存器,而有些寄存器则是在不同的处理器模式下有不同的物理寄存器。2.5 ARM流水线结构Laundry Example Ann,Brian,Cathy,Dave each have one load of clothes to wash,dry,and fold Washer takes 30 minutes Dry
22、er takes 40 minutes“Folder”takes 20 minutesABCDSequential Laundry Sequential laundry takes 6 hours for 4 loads If they learned pipelining,how long would laundry take?ABCD3040 20 3040 20 3040 20 3040 206 PM7891011MidnightTaskOrderTimePipelined Laundry:Start work ASAP Pipelined laundry takes 3.5 hours
23、 for 4 loads ABCD6 PM7891011MidnightTaskOrderTime3040404040 20 Pipelining doesnt help latency of single task,it helps throughput of entire workload Pipeline rate limited by slowest pipeline stage Multiple tasks operating simultaneously using different resources Potential speedup=Number pipe stages U
24、nbalanced lengths of pipe stages reduces speedup Time to“fill”pipeline and time to“drain”it reduces speedup Stall for Dependences计算机中的一条指令的执行可以分若干个阶段:1.取指,从存储器中取出指令(fetch)2.译码,指令译码(dec)3.取操作数,假定操作数从寄存器组中取(reg)4.执行运算(ALU)5.存储器访问,操作数与存储器有关(mem)6.结果写回寄存器(res)图2.8 指令执行流水线 图2.9 流水线的停顿 图2.10 流水线的转移指令的情况 1
25、.ARM三级流水线结构 ARM7架构采用了三级流水线,分为取指,译码和执行。图2.11 ARM单周期三级流水线 图2.12 ARM 多周期三级流水线 2.ARM五级流水线结构 三级流水线阻塞主要产生在存储器访问和数据通路的占用上。因此ARM9及StrongARM架构都采用了五级流水线。把存储器的取指与数据存取分开,同时,还增加了I-Cache和D-Cache以提高存储器存取的效率;其次,增加了数据写回的专门通路和寄存器,以减少数据通路冲突,这样,五级流水线分为:取指、指令译码、执行、数据缓存和写回等。The Five Stages of Load Ifetch:Instruction Fetc
26、h Fetch the instruction from the Instruction Memory Reg/Dec:Registers Fetch and Instruction Decode Exec:Calculate the memory address Mem:Read the data from the Data Memory Wr:Write the data back to the registersStage 1 Stage 2Stage 3 Stage 4Stage 5IfetchReg/DecExecMemWrLoad3.ARM流水线设计 流水线除了加深流水线的深度和加快时钟频率来提高流水线的效率和吞吐率,还需要解决流水线中的结构冲突、数据冲突和控制冲突等流水线冲突问题。a)结构冲突b)解决方法:采用分离式指令Cache和数据Cache。使取指和存储器的数据访问不再发生冲突。同时也解决了相应的数据通路问题。ALU中采用单独加法器来完成地址计算。使执行周期的运算不再产生资源冲突。b)数据冲突 有“写后读RAW”、“写后写WAW”和“读后写 WAR”等几种,主要是RAW。解决方法:定向Forwarding 流水线互锁Pipeline Interlock 编译器的指令调度
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。