资源描述
,第,2,章,ARM,体系结构及编程模型,ARM,原理及应用,第二章,ARM,体系结构及编程模型,本章学习内容:,了解,ARM,技术的应用领域,熟悉,ARM,微处理器系列的基本类型和主要特点,理解,ARM,微处理器的工作状态和工作模式,掌握,ARM,微处理器的存储器系统和寄存器组织以及异,常中断的应用。,2.1 ARM,微处理器的特点,2.1.1 ARM,概述,ARM,(,Advanced RISC Machines,,,ARM,),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。,ARM,公司,于,1990,年,11,月在英国剑桥成立,前身为,Acorn,计算机公司;是全球领先的,16/32,位嵌入式,RISC,微处理器解决方案供应商;是知识产权(,IP,)公司,本身不生产芯片,,靠转让设计许可,由合作伙伴公司来生产各具特色的芯片。,目前,全世界有几十家著名的半导体公司都使用,ARM,公司的授权,其中包括,MOTOROLA,、,IBM,、,Intel,、,LG,、,SONY,、,NEC,、,ATMEL,等,从而保证了大量的开发工具和丰富的第三方资源,它们共同保证了基于,ARM,处理器核的设计可以很快投入市场。,ARM,公司已成为移动通信、手持设备、多媒体数字消费嵌入式解决方案的,RISC,标准。,ARM,公司简介,将技术授权给芯片厂商,形成各具特色的,ARM,芯片,.,2.1.2 ARM,体系结构的特点,ARM,处理器为,RISC,(,reduce instruction set computing),芯片,其,简单的结构,使,ARM,内核非常小,这使得器件的功耗也非常低。它具有经典而先进的,RISC,特点:,数据处理操作绝大多数只针对,寄存器,(暂时存储数据,在,CPU,内部,离,cpu,最近,速度最快),的内容,而不直接对,存储器,(内存和外存,在,CPU,外部,存储器能够保存的数据量大),进行操作;通过,load/store,指令,在寄存器和存储器之间传递数据。,简单的寻址模式,;,统一和固定长度,的指令域,(32,位)简化了指令的译码。,具有大量的寄存器,采用,RISC,指令集,低功耗、低成本、高性能,使用大量的寄存器,ARM/THUMB,指令支持,三,/,五级流水线,ARM,微处理器特点,:,采用,RISC,架构的,ARM,处理器一般具有如下特点:,固定长度的指令格式,指令归整、简单、基 本寻址方式有,2,3,种;,使用单周期指令,便于流水线操作执行;,大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载,/,存储指令可以访问存储器,以提高指令的执行效率。,ARM,处理器共有,37,个寄存器,被分为若干个组,这些寄存器包括:,31,个通用寄存器,包括程序计数器(,PC,指针),均为,32,位的寄存器;,6,个状态寄存器,用以标识,CPU,的工作状态及程序的运行状态,均为,32,位。,ARM,微处理器支持两种指令集,ARM,指令集和,Thumb,指令集,ARM,指令为,32,位的长度,,Thumb,指令为,16,位长度,Thumb,指令集为,ARM,指令集的功能子集,但与等价的,ARM,代码相比较,可节省,30,40,以上的存储空间,同时具备,32,位代码的所有优点。,除此以外,,ARM,体系结构还采用了一些特别的技术,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗。,所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。,可用,加载,/,存储指令,批量传输数据,以提高数据的传输效率。,可在一条数据处理指令中同时完成逻辑处理和移位处理。,在循环处理中使用地址的自动增减来提高运行效率。,1,、在同一条数据处理指令中包含算术逻辑处理和移位处理。,如:,ADD R0,R1,R1,LSL#3;,R0=R1+R1*8,2,、使用地址自动增加(减少)来优化程序中的循环。,如:,LDR R0,R1#4 ;,先,R0,R1,,然后自动使,R1+4,3,、,Load/Store,指令可以批量传输数据,效率很高。一条指令就可以完成入栈或出栈操作。,如:,STMFD R13,R4-R6;,将,R4-R6,的内容放入以,R13,为栈基址的连续,3,个单元中,4,、所有指令都可以根据前面指令的执行结果,决定是否执行。,如:,CMP R2,R3;R2,与,R3,相等跳到,loop,,不等则执行,MOV R1,R0,语句,BEQ loop,MOV R1,R0,2.2 ARM,微处理器系列介绍,2.2.1.ARM7,系列,ARM7,采用冯,诺依曼,(,Von-Neumann),结构,(,数据存储器和程序存储器使用同一存储空间,用相同的指令访问,),。此结构也被大多数计算机所采用。,ARM7,为,三级流水线结构,(取指,译码,执行),平均功耗为,0.6mW/MHz,,时钟速度为,66MHz,,每条指令平均执行,1.9,个时钟周期。,ARM,处理器,核,简介,ARM,公司开发了很多系列的,ARM,处理器核,目前最新的系列已经是,ARM11,了,而,ARM6,核以及更早的系列已经很罕见了。目前应用比较广泛的系列是:,ARM7,ARM9,ARM9E,ARM10,SecurCore,Xscale,StrongARM,ARM11E,ARM,处理器,核,简介,ARM7,该系列包括,ARM7TDMI,和扩充了,Jazelle,(,Java,加速器)的,ARM7EJ-S,等等。,高档的单片机,除了,ARM720T,外,都缺少,mmu,(,m,emory,m,anagement,u,nit),不能运行真正的操作系统。,ARM7,系列广泛应用于多媒体和嵌入式设备,包括,Internet,设备、网络和调制解调器设备,以及移动电话、,PDA,等无线设备。,ARM,处理器,核,简介,ARM7,特点,低功耗,0.9MIPS/MHz,(,mips,指每秒百万条指令)的,3,级流水线,结构,32,位,ARM,指令集和,16,位的,Thumb,指令集,主频最高可达,130MIPS,典型芯片,ATMEL,公司,AT91M40800/55800A,;,Samsung,公司的,S3C44B0,/4510B,简介,ARM7,基于,ARM,体系结构,V4,版本,是目前低端的,ARM,核,。具有广泛的应用,其最显著的应用为,数字,移动电话。,ARM7,系列微处理器包括如下几种类型的核:,ARM7TDMI,、,ARM7TDMI-S,、,ARM720T,、,ARM7EJ,。,注意,:,“,ARM,核,”,并不是芯片,,ARM,核与其它部件如,RAM,、,ROM,、片内外设、,GPIO,(,General Purpose I/O,通用的输入输出端口)组合在一起才能构成现实的芯片。,ARM7TDMI,ARM7TMDI,是目前使用最广泛的,32,位嵌入式,RISC,处理器,属低端,ARM,处理器核,;,支持,32,位寻址范围,使用了冯,诺依曼(,Von Neumann,)结构,,指令和数据共用一条,32,位总线。,ARM7TDMI,的后缀意义为:,支持高密度,16,位的,Thumb,指令集;,支持片上调试;,支持,64,位乘法;,支持,EmbededICE,(调试接口),观察硬件;,ARM7,T D M I,表,2-1 ARM7,系列产品,项目,型号,Cache,(,Ins/Data,),Memory,Mgt,Bus,Thumb,DSP,Jazelle,指令,版本,ARM7TDMI,No,No,AHB,Yes,No,No,v4T,ARM7TDMI-S,No,No,AHB,Yes,No,No,v4T,ARM720T,8KB,MMU,AHB,Yes,No,No,v4T,ARM7EJ,No,No,AHB,Yes,Yes,Yes,v5TEJ,2.2.2 ARM9,系列,ARM7,采用的冯,诺依曼,Von Neumann,结构,,,取指令和取操作数都是通过一条总线分时进行,这样,在高速运算时,不但不能同时取指令和取操作数,而且还会造成传输通道上的瓶颈现象。,ARM9,采用哈佛(,Harvard),结构,,,程序存储器与数据存储器分开,提供了较大的存储器带宽。同时,大多数,DSP,都采用此结构。,ARM,处理器,核,简介,ARM9,该系列包括,ARM9TDMI,、,ARM920T,、,ARM940T,。除了兼容,ARM7,系列,而且能够更加灵活的设计。,ARM9,系列主要应用于,无线通信,、仪器仪表、安全系统和机顶盒等领域。,1.1MIPS/MHz,的哈佛结构,,5,级,流水线,32,位,ARM,指令集和,16,位,Thumb,指令集,全性能的,MMU(,存储器管理单元),,支持,Windows CE,、,Linux,、,Palm OS,等多种主流嵌入式操作系统,支持数据,Cache,和指令,Cache,,,具有更高的指令和数据处理能力,ARM,处理器核简介,ARM9,特点,典型芯片,ATMEL,公司,AT91RM9200,;,Samsung,公司的,S3C2410,表,2-2 ARM9,系列产品,项目,型号,Cache,(,Ins/Data,),Memory,Mgt,Bus,Thumb,DSP,Jazelle,指令,版本,ARM920T,16KB/16KB,MMU,ASB,Yes,No,No,v4T,ARM922T,8KB/8KB,MMU,ASB,Yes,No,No,v4T,ARM940T,4KB/4KB,MMU,ASB,Yes,No,No,v4T,表,2-2 ARM9,系列产品,项目,型号,Cache,(,Ins/Data,),Memory,Mgt,Bus,Thumb,DSP,Jazelle,指令,版本,ARM920T,16KB/16KB,MMU,ASB,Yes,No,No,v4T,ARM922T,8KB/8KB,MMU,ASB,Yes,No,No,v4T,ARM940T,4KB/4KB,MMU,ASB,Yes,No,No,v4T,2.2.3.ARM9E,系列,ARM9E,系列微处理器包括如下,4,种类型的核:,ARM926EJ-S,、,ARM946E-S,和,ARM966E-S,,见表,2-3,。,表,2-3 ARM9E,系列产品,项目,型号,Cache,(,Ins/Data,),Memory,Mgt,Bus,Thumb,DSP,Jazelle,指令,版本,ARM926EJ-S,可变,MMU,2*AHB,Yes,Yes,Yes,v5TEJ,ARM946E-S,可变,MPU,AHB,Yes,Yes,No,v5TE,ARM966E-S,无,-,AHB,Yes,Yes,No,v5TE,ARM968E-S,无,DMA,AHB,Yes,Yes,No,v5TE,ARM9E,系列,是一种包含有微控制器、,DSP,、,Java,功能的综合处理器,强化了数字信号处理能力,适用于需要,DSP,和微控制器结合使用的情况,并且把,Thumb,技术和,DSP,都扩展到了,ARM,指令中,并且具有,EmbededICE-RT,逻辑,更好地适应了实时系统开发的需要。同时,ARM9E,使用了,Jazelle,增强技术,该技术支持一种新的,Java,操作状态,在硬件中执行,Java,字节码,.,2.2.4.ARM10E,系列,ARM10,系列微处理器,包括:,ARM1020E,和,ARM1022E,等型号,见表,2-4,。,ARM10,系列,采用了新的体系结构,其核心为使用了向量浮点单元,有强大的浮点运算能力,并且增加了,Cache,容量和总线宽度,并且具有低功耗的特点。,ARM10,系列微处理器,主要应用于下一代无线设备、视频消费品等。,表,2-4 ARM10,系列产品,项目,型号,Cache,(,Ins/Data,),Memory,Mgt,Bus,Thumb,DSP,Jazelle,指令,版本,ARM1020E,32KB/32KB,MMU,2*AHB,Yes,Yes,No,v5TE,ARM1022E,16KB/16KB,MMU,2*AHB,Yes,Yes,No,v5TE,ARM1022E,可变,MMU,2*AHB,Yes,Yes,Yes,v5TEJ,2.2.5.ARM11,系列,ARM,公司在,2003,年,4,月,29,日宣布了其下一代,ARM,架构的,CPU,ARM11,(又名,Jaguar,美洲虎),基于,ARM11,的微处理器具有更强的性能,尤其是多媒体处理能力。,ARM11,微处理器采用,0.13,微米工艺,低端产品运行在,350MHz,500MHz,,高端产品运行在,533,750MHz,,如果将加工工艺减小到,0.10,微米,,那么芯片速度将达,1GHz,。,ARM11,系列微处理器内核最新内核:,ARM1156T2-S,内核、,ARM1156T2F-S,内核、,ARM1176JZ-S,内核和,ARM11JZF-S,内核。,2.2.6.SecurCore,系列,SecurCore,系列微处理器,除了具有,ARM,体系结构各种主要特点外,还在系统安全方面具有如下的特点:,(1),带有灵活的保护单元,确保操作系统和应用数据的安全;,(2),采用软内核技术,防止外部对其进行扫描探测;,(3),可集成用户自己的安全特性和其他协处理器。,该系列处理器主要,针对新兴的安全市场,,以一种全新的安全处理器设计为智能卡和其它安全,IC,(集成电路)开发提供独特的,32,位系统设计,并具有特定反伪造方法,从而有助于防止对硬件和软件的盗版。,2.2.7.ARMStrong/Xscale,系列,StrongARM,是采用,ARM,体系结构高度集成的,32,位,RISC,微处理器。它融合了,Intel,公司的设计技术,以及,ARM,体系结构的电源效率,其体系结构在软件上兼容,ARMv4,,同时又具有,Intel,技术优点。,StrongARM,是,Intrl,公司为手持消费类电子和移动计算与通信设备生产的嵌入式处理器。采用,StrongARM,架构的处理器有:,SA-1,、,SA-110,、,SA-1100,、,SA1110,和,IXP1200,。,Xscale,是基于,ARMv5,体系结构的解决方案,是一款性能全、性价比高、功耗低的处理器,支持,16,位的,Thumb,和,DSP,指令集,主要应用于数字移动电话、个人数字助理和网络产品等。,Xscale,架构的处理器有:,PXA250,、,PXA255,和,PXA270,等。,Xscale,苹果,iPhone,手机,2.2.8.ARM Cortex,系列,ARM Cortex,发布于,2005,年,,ARM Cortex,系列的三款产品全都集成了,Thumb-2,指令集,可满足各种不同的日益增长的市场需求。,ARM Cortex,系列的三款处理器:,1,),ARM Cortex-A,系列,:,针对复杂操作系统以及用户,应用设计的应用处理器;,2,),ARM Cortex-R,系列,:,实时系统专用嵌入式处理器;,3,),ARM Cortex-M,系列,:,针对微控制器和低成本应用,专门优化的深嵌入式处理器。,ARM,体系结构更新,2.2.9.,基于,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,等系列。,5)PHILIPS,飞利浦,/NXP,恩智浦,ARM,单片机,主要是,LPC21xx,LPC22xx,等系列。,6)Intel,公司的,Strong ARM,系列和,XScale,系列。,7)SamSung,公司的,ARM,系列,主要有,S3C44B0X,、,S3C2410X,、,S3C2440X,、,S3C5410X,等系列。,8)TI,公司的,ARM,处理器主要是,OMAP,、,C5470/C5471,等系列。,9)Cirrus Logic,公司的,ARM,处理器系列,主要是,EP9xxx,等系列。,2.2.10 ARM,系列产品命名规则,ARM 926EJ-S,Family number,7,:ARM7,9,:ARM9,10,:ARM10,11,:ARM11,Memory system,2,:Cache,MMU,Process ID,4,:Cache,MPU,6,:Write buffer,no cache,Memory size,0,:Cache size(4-128KB),2,:Reduced cache size,6,:TCM,Synthesizable,Extensions,E,:DSP extension,J,:Jazelle extension,T,:Thumb support,2.3 ARM,体系结构,2.3.1.,体系结构的概念,体系结构也可称为系统结构,指程序员在为特定处理器编制程序时所用到的硬件与软件资源以及它们相互间的连接关系。,体系结构最为重要的是:,处理器所提供的,指令系统和寄存器组,。,2.3 ARM,体系结构,指令系统,分,CISC,(Complex Instruction Set Computer,,复杂指令集计算机,),和,RISC(,Reduced Instruction Set Computer,,精简指令集计算机,),,嵌入式系统中,CPU,一般是,RISC,结构。,在体系结构中,还有,存储器结构,。现在有,2,种:,冯,.,诺依曼结构和哈佛结构。,ARM,处理器是最先进的,目前,,ARM32,位体系结构被公认为业界领先的,32,位嵌入式,RISC,微处理器核,所有,ARM,处理器都共享这一体系结构。,1)RISC,型处理器结构,ARM,采用,RISC,结构,,在简化处理器结构,减少复杂功能指令的同时,提高了处理器的速度。,考虑到处理器与存储器打交道的指令执行时间远远大于在寄存器内操作的指令执行时间,,RISC,型处理器采用了,Load/Store,(加载,/,存储)结构,,即只有,Load/Store,指令可与存储器打交道,其余指令都不允许进行存储器操作。,为了进一步提高指令和数据的存取速度,,RISC,型处理器增加了指令高速缓冲,I-Cache,和数据高速缓冲,D-Cache,及多处理器结构,,使指令的操作尽可能在寄存器之间进行。,只能对寄存器执行算术和逻辑,操作,,Load/Store,体系结构,2)Thumb,指令集,虽然,ARM,处理器本身是,32,位设计,但考虑到,RISC,型处理器的指令功能相对较弱,新型的,ARM,体系结构中定义了,16,位的,Thumb,指令集。,Thumb,指令集比通常的,8/16,位,CISC/RISC,处理器有更好的代码密度,而芯片面积只增加,6%,,却可以使程序存储器更小。,3),多处理器状态模式,ARM,体系结构定义了,7,种处理器模式:用户、快中断、中断、管理、终止、未定义和系统模式,大大提高了,ARM,处理器的效率。,4),两种处理器工作状态,ARM,状态,(,执行,32,位,ARM,指令,),Thumb,状态。,(,执行,16,位,Thumb,指令,),5),嵌入式在线仿真调试,ARM,体系结构的处理器芯片都嵌入了在线仿真,ICE-RT,逻辑,便于通过,JTAG,来仿真调试芯片,省去了价格昂贵的在线仿真器。,6),灵活方便的接口,ARM,体系结构具有协处理器接口,允许接,16,个协处理器。既可以使基本的,ARM,处理器内核尽可能小,方便地扩充,ARM,指令集,也可以通过未定义指令来支持协处理器的软件仿真。,7),低电压功耗的设计,考虑到,ARM,处理器主要用于手持式嵌入式系统中,在设计中就十分注意功耗的设计。,ARM,核,体系结构,ARM1,V1,ARM2,V2,ARM2aS,,,ARM3,V2a,ARM6,,,ARM600,,,ARM610,V3,ARM7,,,ARM700,,,ARM710,V3,ARM7TDMI,,,ARM710T,,,ARM720T ARM740T,V4T,Strong ARM,,,ARM8,,,ARM810,V4,ARM9TDMI,,,ARM920T,,,ARM940T,V4T,ARM9E-S,V5TE,ARM10TDMI,,,ARM1020E,V5TE,ARM11,,,ARM1156T2-S,,,ARM1156T2F-S,,,ARM1176JZ-S,,,ARM11JZF-S,V6,2.3.2 ARM,体系结构,各,ARM,体系结构版本,(,这里主要指,指令集,),目前,ARM,公司定义了,6,种主要的,ARM,指令集体系结构版本,以版本号,V1,V6,表示。,拥有相同指令集版本的,ARM,芯片,虽然出自不同的生产厂商,但它们使用的,指令,和,应用软件,是相互,兼容,的。,各,ARM,体系结构版本,V1,该版本的,ARM,体系结构,只有,26,位的寻址空间,如今现在已经废弃不再使用,没有商业化,其特点为:,基本的数据处理指令,(,加,减,与,或,非,比较)(这个版本不包括乘法);,字节、字和半字加载,/,存储指令;,具有分支指令,包括在子程序调用中使用的分支和链接指令;,在操作系统调用中使用的软件中断指令(,SWI,)。,各,ARM,体系结构版本,V2,同样为,26,位寻址空间,,如今现在已经废弃不再使用,它相对,V1,版本有以下改进:,具有乘法和乘加指令;,支持协处理器,(专门用于进行,辅助运算,的芯片,其本身除了,运算功能,外没有其他功能,因此不能独立工作,必须和,CPU,一起工作),;,快速中断模式,(FIQ),中,提供两个额外备份寄存器;,原子性(不可分割)加载,/,存储指令,SWP,和,SWPB,(见备注)。,各,ARM,体系结构版本,V3,寻址范围扩展到,32,位,:,增加了程序状态保护寄存器,SPSR,;,增加了两种处理器模式(,ARM,和,THUMB,);,修改了,v3,以前用于异常返回指令的功能;,教材有更详细的介绍,各,ARM,体系结构版本,V4,目前大多使用的,arm,核,使用的是,V4t,,,v5te,版本,,它相对,V3,版本作了以下的改进:,增加了半字加载(,LDRH,),/,存储(,STRH,)指令;,增加了字节(,LDRSB/STRSB,)和半字的加载和符号扩展指令(,LDRSH/STRSH,);,增加了,T,变种,,具有可以转换到,Thumb,状态的指令;,增加了新的特权处理器模式。,各,ARM,体系结构版本,V5,在,V4,版本的基础上,对现在指令的定义进行了必要的修正,对,V4,版本的体系结构进行了扩展并增加了指令,具体如下:,改进了,ARM/Thumb,状态之间的切换效率;,允许,T,变种(支持,Thumb,指令集)和非,T,变种一样,使用相同的代码生成技术;,增加前导零计数,(,最高有效位前,0,的个数)指令,CLZ,和软件断点指令,BKPT,;,对乘法指令如何设置标志作了严格的定义。,各,ARM,体系结构版本,V6,ARM,体系版本,6,是,2001,年发布的。其主要特点是增加了,SIMD,(Single Instruction Multiple Data,,单指令多数据流,),功能扩展。它,适合使用电池供电,的高性能的便携式设备,便携式设备一方面需要处理器提供高性能,另一方面又需要低功耗。,ARM,体系版本,6,首先在,2002,年春季发布的,ARM11,处理器中使用。,2.3.3 ARM9,体系结构,比较最常用的是,ARM920T,内核,,ARM920T,结构主要部分有,7,部分构成:,ARM9TDMI,内核,CPU,MMU,Cache,协处理器接口,运行跟踪信息接口,(ETM),JTAG,调试接口,总线接口,ARM9TDMI,体系结构框图,ARM9TDMI CPU,指令接口,数据地址接口,跟踪接口,数据接口,JTAG,接口,指令地址接口,ARM9TDMI,结构框图,ARM920T,体系结构框图,ARM920T,体系结构框图,ARM9TDMI,核性能,0.25,微米的,ARM9TDMI,核在执行,32,位,ARM,代码时的特性综述于下表,3,。,
展开阅读全文