高等学校嵌入式系统设计教材ARM9处理器C语言编程标准教程侯殿有才华编著人民邮电出版社第一章ARM技术简介1.1ARM处理器简介ARM处理器是一种低功耗高性能的32位RISC(精简指令系统)处理器。本章将其从结构入手进行分析,基于目前流行的ARM920T核详细描述其硬件结构和编程。ARM处理器共有31个32位寄存器,而其中16个可以在任何模式下看到。它的指令为简单的加载与存储指令(从内存加载某个值,执行完操作后再将其放回内存)。ARM一个有趣的特点是它所有的指令都带有条件。例如用户可以测试某个寄存器的值,但是直到下次使用同一条件进行测试时,才能有条件地执行这些指令。另一个特征是可以在加载数值的同时进行算术和移位操作。它可以在几种模式下操作,包括通过使用SWI(softwarinterrupt软件中断)指令从用户模式进入到系统模式。ARM处理器是一个综合体,ARM公司自身并不制造微处理器。它们是由ARM的合作伙伴(Intel或LSI)制造。ARM还允许将其处理器通过协处理器接口进行紧耦合。它还包括几种内存管理单元的变种,包括简单的内存保护到复杂的页面层次。ARM微处理器系列包括ARM7系列、ARM9系列、ARM9E系列、ARM10E系列、SecurCode系列和Intel的Xscale。其中,ARM7、ARM9、ARM9E和ARM10E为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。例SecurCore系列专门为安全要求较高的应用而设计。1.1.1ARM7系列微处理器ARM7系列微处理器是低功耗的32位RISC处理器,最适合用于对价位和功耗要求较低的消费类应用。ARM7系列有如下特点:·具有嵌入式ICE—RT(InternetCommunicationsEngine-Route因特网通信)逻辑,调试开发方便。·极低的功耗,适合对功耗要求较低的应用,如便携式产品。·能够提供0.9MIPS(MillionInstructionsPerSecond百万条/秒)/MHz的三级流水线结构。·对操作系统的支持广泛,如WindowsCE、Linux、PalmOS等。·指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户的产品升级换代。·主频最高可达130MHz,高速的运算处理能力能胜任绝大多数的复杂应用。ARM7系列微处理器主要应用于工业控制、Internet设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。ARM7系列微处理器包括如下几种类型的核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其中,ARM7TDMI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。TDMI的基本含义如下:·T支持16位压缩指令集Thumb(ARM体系结构中一种16位的指令集)。·D支持片上Debug。·M内嵌硬件乘法器(Multiplier)。·I嵌入式ICE,支持片上断点和调试点。1.1.2ARM9系列微处理器ARM9系列微处理器在高性能和低功耗特性方面提供最佳的表现。具有以下特点:·5级流水,指令执行效率更高。·提供1.1MIPS/MHz的哈佛结构。·支持32位ARM指令集和16位Thumb指令集。·支持32位的高速AMBA(AdvancedMicrocontrollerBusArchitecture)总线接口。·全性能的MMU,支持WindowsCE、Linux、PalmOS等多种主流嵌入式操作系统。·MPU支持实时操作系统。·支持数据Cache(高速缓冲存储器)和指令Cache,具有更高的指令和数据处理力。ARM9系列微处理器主要应用于无线设备,仪器仪表,安全系统,机顶盒,高端打印机,数字照相机和数字摄像机等。ARM9系列微处理器包括ARM920T、ARM922T和ARM940T三种类型,以适用于不同的应用场合。1.1.3ARM9E系列微处理器ARM9E系列微处理器的主要特点如下:·支持DSP指令集,适合于需要高速数字信号处理的场合。·5级流水线,指令执行效率更高。·支持32位ARM指令集和16位Thumb指令集。·支持32位的高速AMBA总线接口。·支持VFP9浮点处理协处理器。·全性能的MMU,支持众多主流嵌入式操作系统。·支持数据Cache和指令Cache,具有更高的处理能力。·主频最高可达300MHz。ARM9E系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。ARM9E系列微处理器包含ARM926EJ-S、ARM946E-S和ARM966E-S三种类型,以适用于不同的应用场合。1.1.4ARM10E系列微处理器ARM10E系列微处理器的主要特点如下:·支持DSP指令集,适合于需要高速数字信号处理的场合。·6级流水线,指令执行效率更高。·支持32位ARM指令集和16位Thumb指令集。·支持32位的高速AMBA总线接口。·支持VFP10浮点处理协处理器。·全性能的MMU,支持众多主流嵌入式操作系统。·支持数据Chche和指令Chche,具有更高的处理能力。·主频最高可达400MHz。·内嵌并行读/学操作部件。ARM10E系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统等领域。ARM10E系列微处理器包括ARM1020E、ARM1002E和ARM1026JE-S三种类型,以适用于不同的应用场合。1.1.5ARM920T简介ARM920T高缓存处理器是ARM9Thumb系列中高性能的32位单片系统处理器。而ARM920T系列微处理器包含如下几种类型的内核。·ARM9TDMI:只有内核。·ARM940T:由内核、高速缓存和内存保护单元(MPU)组成。·ARM920T:有内核、高速缓存和内存管理单元(MMU)组成。ARM920T提供完善的高性能CPU子系统,包括以下方面:·ARM9TDMIRISC整数CPU。·16K字节指令与16K字节数据缓存。·指令与数据存储器管理单元(MMU)。·写缓冲器。·高级微处理器总线架构(AMBA)总线接口。·ETM(内置追踪宏单元)接口。ARM920T中的ARM9TDMI内核可执行32位ARM及16位Thumb指令集。ARM9TDMI处理器是哈佛结构,有包括取指、译码、执行、存储及写入的5级流水线。ARM920T处理器包括以下两个协处理器。·CP14:控制软件对调试信道的访问。·CP15:系统控制处理器,提供16个额外寄存器来配置与控制缓存、MMU、系统保护、时钟模式及其他系列选项。ARM920T处理器的主要特征如下。·ARM9TDMI内核,ARMv4T架构。·两套指令集:ARM高性能32位指令集和Thumb高代码密度16位指令集。·5级流水线结构,即取指(F)、指令译码(D)、执行(E)、数据存储访问(M)和写寄存器(W)。·16K字节数据缓存,16K字节指令缓存。·写缓冲器:16字的数据缓冲器,4地址的地址缓冲器,软件控制消耗。·标准的ARMv4存储器管理单元(MMU):区域访问许可,允许以1/4页面大小对页面进行访问,16个嵌入域,64个输入指令TLB及64个输入数据TLB。·8位、16位、32位的指令总线与数据总线。1.1.6SecurCore(可靠内核技术)系列微处理器SecurCore系列微处理器除了具有ARM体系结构各种主要特点外,在系统安全方面具有如下特点:.带有灵活的保护单元,确保操作系统和应用数据的安全。.采用软内核技术,防止外部对其进行扫描探测。.可集成用户自己的安全特性。SecurCore系列微处理器主要应用于一些对安全性要求较高的应用产品及应用系统,如电子商务、电子政务、电子银行业务、网络和认证系统等领域。SecurCore系列微处理器包含SecurCoreSC100、SecurCoreSC110、SecurCoreSC200和SecurCourSC210四种类型,以适用于不同的应用场合。1.1.7StrongARM(超强性能ARM技术)系列微处理器IntelStrongARMSA-1100处理器是采用ARM体系结构高度集成的32位RISC微处理器。它融合了Intel公司的设计和处理技术,以及ARM体系结构的电源效率,采用在软件上兼容ARMv4体系结构,同时采用具有Intel技术优点的体系结构。IntelStrongARM处理器是便捷式通信产品和消费类电子产品的理想选择,已成功应用于多家公司的掌上电脑系列产品。1.2ARM体系结构的发展1.2.1ARM体系结构的发展在过去的十年中,ARM处理器经历了从简单的ARM7TDMI内核发展到最新ARM11EJ-S内核,ARM当前有5个产品系列——ARM7、ARM9、ARM9E、ARM10、SecurCore和ARM11。从简单的三级流水线到先进的8级流水线结构。用单个时钟来进行比较,性能差别不大。ARM11是ARM家族中性能最强的一个系列。ARM7TM通常只能在200MHz以下的频率运行;ARM11系列处理器展示了在性能上的巨大提升,首先推出350M~500MHz时钟频率的内核,在未来将上升到1GHz时钟频率。ARM11处理器在提供高性能的同时,也允许在性能和功耗间做权衡以满足某些特殊应用。通过动态调整时钟频率和供应电压,开发者完全可以控制这两者的平衡。在0.13um工艺,1.2v条件下,ARM11处理器的功耗可以低至0.4mW/MHz。ARMv6结构体系:ARM11处理器的超强性能是由一系列的架构特点所决定的。ARMv6是决定性能的基础。总的来说,ARMv6架构通过以下几点来增强处理器的性能:.多媒体处理功能扩展.MPEG4编码/解码加快一倍.音频处理加快一倍.增强的Cache结构.实地址Cache.减少Cache的刷新和重载.减少上下文切换的开销.增强的异常和中断处理.使实时任务的处理更加迅速.使数据共享、软件移植更简单,也有利于节省存储器空间对绝大多数应用来说,ARMv6保持了100%的二进制向下兼容,使用户过去开发的程序可以进一步继承下去。ARMv6保持了所有过去架构中的T(Thumb指令)和E(DSP指令)扩展,使代码压缩和DSP处理特点得到延续;为了加速Java代码执行速度的ARMJazalle技术也继续在ARMv6架构中发挥重要作用。1.2.2ARM11处理器的内核特点ARM11是为了更有效的提高处理器能力而设计的。该系列主要有ARM1136J、ARM1156T2和ARM1176JZ三个内核型号,ARM11处理器使用130nm工艺,在2.2mm芯片面积上和0.24mW/MHz的前提下主频高达500MHz。ARM11处理器以消费产品市场为目标,推出了许多新的技术,包括针对多媒体处理的SIMD(SingleinstructionMultipleData单指令多数据流),用以提高安全性能的TrustZone(通过硬件和软件结合,为片上数据提供安全环境)技术,智能能源管理IEM(In-EarMonitoring耳内监听),以及非常高的、超过2600倍Dhrystone2.1标准(测量处理器的运算能力标准)MIPS(百万条指令/每秒)性能的多处理器技术。上面对几个ARM处理器内核做了简单的介绍。可以注意到,随着处理器内核技术的发展,处理器的速度越来越快,其主要得益于ARM流水线的技术发展。ARM1176JZF-S处理器专门用于包括数字电视、机顶盒、游戏机以及手机在内的家电产品和无线产品。这一处理器采用ARMJava加速技术、ARMTrustZone技术以及一个矢量浮点(VFP)协处理器,为嵌入式3D图像提供强大的加速功能。1.2.3DSP功能DSP(digitalsingnalprocessor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号,