手机处理器的Arm

ARM-高级RISC机器

ARM(Advanced RISC Machines)可以认为是一个公司的名字,是一种微处理器和一种技术的总称。

1991 ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,以ARM技术为知识产权(IP)核心的微处理器,也就是我们通常所说的ARM微处理器,已经遍布工业控制、消费电子产品、通信系统、网络系统、无线系统等产品市场。基于ARM技术的微处理器应用占据了32位RISC微处理器75%以上的市场份额,ARM技术正逐渐渗透到我们生活的方方面面。

ARM公司是一家专门从事基于RISC技术的芯片设计和开发的公司。作为知识产权供应商,不直接从事芯片生产。通过转让设计许可,合作公司生产不同特性的芯片。世界各大半导体厂商从ARM公司购买自己设计的ARM微处理器内核,并根据各自不同的应用领域添加合适的外围电路,从而形成自己的ARM微处理器芯片进入市场。目前,全球有数十家大型半导体公司使用ARM公司的授权,这不仅使ARM技术得到更多第三方工具、制造和软件的支持,而且降低了整个系统的成本,使产品更容易进入市场,被消费者接受,更具竞争力。1.2.1 ARM微处理器的应用领域

到目前为止,ARM微处理器和技术的应用已经深入到几乎每一个领域:

1.工业控制领域:基于ARM核的微控制器芯片作为32位RISC架构,不仅占据了高端微控制器的大部分市场份额,还逐渐延伸到低端微控制器的应用领域。ARM微控制器的低功耗和高性价比对传统的8位/16位微控制器提出了挑战。

2.无线通信领域:目前超过85%的无线通信设备采用了ARM技术,ARM在该领域的地位因其高性能、低成本而日益巩固。

3.网络应用:随着宽带技术的普及,采用ARM技术的ADSL芯片正逐渐获得竞争优势。此外,ARM在语音和视频处理方面进行了优化,得到了广泛的支持,也对DSP的应用领域提出了挑战。

4.消费电子产品:ARM技术广泛应用于流行的数字音频播放器、数字机顶盒和游戏机。

5.成像和安全产品:现在大多数流行的数码相机和打印机都使用ARM技术。手机中的32位SIM智能卡也采用了ARM技术。

此外,ARM微处理器和技术也应用于许多不同的领域,在未来将会得到更广泛的应用。

1.2.2 ARM微处理器的特点

采用RISC架构的ARM微处理器一般具有以下特点:

1,体积小,功耗低,成本低,性能高;

2.支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位设备;

3、大量使用寄存器,指令执行速度更快;

4.大多数数据操作是在寄存器中完成的;

5、寻址方式灵活简单,执行效率高;

6.指令长度是固定的;目前ARM微处理器包括以下系列,以及其他厂商基于ARM架构的处理器。除了ARM架构的共性之外,各个系列的ARM微处理器都有自己的特点和应用领域。

-arm 7系列

-arm 9系列

-arm9e系列

-arm10e系列

-securcore系列

-感兴趣Xscale

-strong利益分支

其中ARM7、ARM9、ARM9E和ARM10是四个通用处理器系列,每个系列都提供了一套相对独特的性能,以满足不同应用领域的需求。SecurCore系列专为具有高安全要求的应用而设计。

下面我们来详细了解一下各种处理器的特点和应用领域。

1.3.1 ARM7微处理器系列

ARM7系列微处理器是一款低功耗的32位RISC处理器,最适合价格和功耗要求较高的消费类应用。ARM7微处理器系列具有以下特点:

-采用嵌入式ICE-RT逻辑,调试开发方便。

-功耗极低,适用于高功耗要求的应用,如便携式产品。

-它可以提供0.9兆位/兆赫的三级流水线结构。

-代码密度高,兼容16位Thumb指令集。

-广泛支持操作系统,包括Windows CE、Linux、Palm OS等。

-指令系统兼容ARM9系列、ARM9E系列和ARM10E系列,方便用户升级产品。

-最高频率可达130 IPS,高速运算处理能力可胜任大部分复杂应用。

ARM7系列微处理器的主要应用领域有:工业控制、互联网设备、网络和调制解调器设备、手机等多媒体和嵌入式应用。

ARM7系列微处理器包括以下类型的内核:ARM7TDMI、ARM7TDMI-S、

ARM720T、ARM7EJ .其中ARM7TMDI是应用最广泛的32位嵌入式RISC处理器,属于低端ARM处理器核心。TDMI的基本含义是:

t:支持16作为压缩指令集Thumb;

d:支持片上调试;

m:嵌入式硬件乘法器。

I:嵌入式ICE,支持片上断点和调试点;

1.3.2 ARM9微处理器系列

ARM9系列微处理器在高性能和低功耗方面提供了最佳性能。具有以下特点:

-5级整数流水线,指令执行效率更高。

-提供1.1MIPS/MHz的哈佛结构。

-支持32位ARM指令集和16位Thumb指令集。

-支持32位高速AMBA总线接口。

嵌入式操作系统。

-MPU支持实时操作系统。

-支持数据缓存和指令缓存,具有更高的指令和数据处理能力。

ARM9系列微处理器主要应用于无线设备、仪器仪表、安防系统、机顶盒、高端打印机、数码相机和数码摄像机。

ARM9系列微处理器包括ARM920T、ARM922T、ARM940T三种型号,适用于不同的应用。

1.3.3 ARM9E微处理器系列

ARM9E系列微处理器是集成处理器,利用单个处理器内核为微控制器、DSP和Java应用系统提供解决方案,大大降低了芯片面积和系统复杂度。ARM9E系列微处理器提供增强的DSP处理能力,非常适合那些需要同时使用DSP和微控制器的应用。

ARM9E系列微处理器的主要特性如下:

-支持DSP指令集,适用于需要高速数字信号处理的场合。

-5级整数流水线,指令执行效率更高。

-支持32位ARM指令集和16位Thumb指令集。

-支持32位高速AMBA总线接口。

-支持VFP9浮点处理协处理器。

-MPU支持实时操作系统。

-支持数据缓存和指令缓存,具有更高的指令和数据处理能力。

-主频最高可达300兆。

ARM9系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。

ARM9E系列微处理器包括ARM926EJ-S、ARM946E-S、ARM966E-S三种型号,适用于不同的应用场合。

1.3.4 ARM10E微处理器系列

ARM10E系列微处理器具有高性能、低功耗的特点。与同等的ARM9器件相比,ARM10E系列的微处理器由于采用了新的架构,在相同的时钟频率下性能提升了近50%。同时,ARM10e系列的微处理器采用了两种先进的节能方式,使其功耗极低。

ARM10E系列微处理器的主要特性如下:

-支持DSP指令集,适用于需要高速数字信号处理的场合。

-6级整数流水线,指令执行效率更高。

-支持32位ARM指令集和16位Thumb指令集。

-支持32位高速AMBA总线接口。

-支持VFP10浮点处理协处理器。

-全性能MMU,支持Windows CE、Linux、Palm OS等主流嵌入式操作系统。

-支持数据缓存和指令缓存,具有更高的指令和数据处理能力。

-主频最高可达400兆。

-嵌入式并行读/写操作单元。

ARM10E系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统等领域。

ARM10E系列的微处理器包括ARM1020E、ARM1022E、ARM1026EJ-S三种型号,适用于不同的应用场合。

1.3.5 SecurCore微处理器系列

SecurCore系列微处理器专为安全需求而设计,采用32位RISC技术,提供完美的安全解决方案。因此,除了ARM架构的低功耗和高性能,SecurCore系列微处理器还有其独特的优势,即它们提供了对安全解决方案的支持。

除了ARM架构的主要特性,SecurCore系列微处理器在系统安全性方面还具有以下特性:

-具有灵活的保护单元,确保操作系统和应用程序数据的安全。

-采用软内核技术,防止外部扫描和检测。

-可以集成用户自己的安全特性和其他协处理器。

SecurCore系列微处理器主要应用于一些安全性要求较高的应用产品和应用系统,如电子商务、电子政务、电子银行业务、网络和认证系统等。

SecurCore系列微处理器包括四种类型:SecurCore SC100、SecurCore SC110、SecurCore SC200和SecurCore SC210,适用于不同的应用。

1.3.6 StrongARM微处理器系列

英特尔ARM SA-1100处理器是一款高度集成的32位RISC微处理器,采用ARM架构。它结合了Inter公司的设计和处理技术以及ARM架构的功耗效率,在软件上采用了兼容ARMv4架构的架构,具有Intel技术的优势。

英特尔StrongARM处理器是便携式通讯产品和消费电子产品的理想选择,已成功应用于多家公司的掌上电脑系列产品。

1.3.7 Xscale处理器

Xscale处理器是基于ARMv5TE架构的解决方案,是一款全性能、高性价比、低功耗的处理器。支持16位Thumb指令和DSP指令集,已应用于数字手机、个人数字助理和网络产品。

Xscale处理器是目前Inter主推的ARM微处理器。1.4.1 RISC架构

传统的CISC(Complex Instruction Set Computer)结构有其固有的缺点,即随着计算机技术的发展,新的复杂指令集不断推出。为了支持这些新指令,计算机体系结构将变得越来越复杂。但是,在CISC指令集的各种指令中,它们的使用频率差别很大,大约有20%的指令会被重复使用,占整个程序代码的80%。而剩下的80%指令不常使用,在编程中只占20%。显然,这种结构并不合理。

基于以上的不合理性,1979年加州大学伯克利分校提出了RISC(精简指令集计算机)的概念。RISC不是简单的减少指令,而是着眼于如何使计算机结构更加简单合理来提高运算速度。RISC架构优先选择频率最高的简单指令,避免复杂指令;指令长度固定,减少了指令格式和寻址方式的种类;控制逻辑为主,不使用或少使用微码控制等措施来达到上述目的。

到目前为止,RISC体系结构还没有严格的定义。一般认为,RISC体系结构应该具有以下特征:

-采用定长指令格式,指令有2 ~ 3种基本寻址方式。

-单周期指令用于促进流水线操作的执行。

-使用了大量的寄存器。数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率。

此外,ARM架构还采用了一些特殊的技术,在保证高性能的前提下,尽量减小芯片面积,降低功耗:

-所有指令都可以根据之前的执行结果来执行,从而提高指令的执行效率。

-加载/存储指令可用于批量传输数据,提高数据传输效率。

-逻辑处理和移位处理可以在一条数据处理指令中同时完成。

-在循环处理中使用地址的自动增减来提高操作效率。

当然,与CISC架构相比,RISC架构虽然有上述优势,但绝不能认为RISC架构可以取代CISC架构。其实RISC和CISC各有优势,界限也不是那么明显。现代CPU往往采用CISC的外围,融入RISC的特点。比如超长指令集CPU,结合了RISC和CISC的优点,成为未来CPU发展方向之一。

1.4.2 ARM微处理器的寄存器结构

ARM处理器中有37个寄存器,分为几个存储体。这些寄存器包括:

-31通用寄存器,包括程序计数器(PC指针),都是32位寄存器。

-6个状态寄存器,都是32位,用来标识CPU的工作状态和程序的运行状态,目前只使用了一部分。

同时ARM处理器有七种不同的处理器模式,每种处理器模式都有一组对应的寄存器。即在任何处理器模式下,可访问的寄存器包括15个通用寄存器(R0 ~ R14)、一个或两个状态寄存器和程序计数器。在所有的寄存器中,有些是在七种处理器模式下共享的同一个物理寄存器,而有些则在不同的处理器模式下有不同的物理寄存器。

ARM处理器的寄存器结构将在后续章节中详细介绍。

1.4.3 ARM微处理器的指令结构

在较新的架构中,ARM微处理器支持两种指令集:ARM指令集和Thumb指令集。其中ARM指令长32位,Thumb指令长16位。Thumb指令集是ARM指令集的子集,但与等效的ARM代码相比,它可以节省30% ~ 40%以上的存储空间,并具有32位代码的所有优点。

ARM处理器的指令结构将在后面的章节中详细描述。鉴于ARM微处理器的诸多优势,随着国内外嵌入式应用领域的逐步发展,ARM微处理器必将获得广泛的关注和应用。但是ARM微处理器的内核结构有十几种,芯片厂商有几十家,内部功能配置组合千变万化,给开发者选择方案带来了一定的难度。因此,有必要对ARM芯片做一些比较研究。

本文从应用角度出发,简要论述了选择ARM微处理器时应考虑的主要问题。

ARM微处理器内核的选择

从上述内容可以看出,ARM微处理器包含了一系列的内核结构,以适应不同的应用领域。如果用户希望使用WinCE或标准Linux等操作系统来减少软件开发时间,则需要选择ARM720T以上具有MMU(内存管理单元)功能的ARM芯片,ARM920T、ARM922T、ARM946T和Strong-ARM都具有MMU功能。而ARM7TDMI没有MMU,不支持Windows CE和标准Linux。但也有uCLinux等不需要MMU支持的操作系统在ARM7TDMI硬件平台上运行。事实上,uCLinux已经成功移植到多种没有MMU的微处理器平台上,并且在稳定性等方面都有出色的表现。

本书讨论的S3C4510B是一款没有MMU的ARM微处理器,uCLinux操作系统可以在上面运行。

系统的工作频率

系统的工作频率很大程度上决定了ARM微处理器的处理能力。ARM7系列微处理器的典型处理速度为0.9 MPs/MHz,ARM7芯片系统的常用主时钟为20MHz-133MHz,ARM9系列微处理器的典型处理速度为1.1 MPs/MHz,ARM9系统的常用主时钟频率为100MHz-233MHz,ARM6544。不同的芯片处理时钟的方式不同。有的芯片只需要一个主时钟频率,有的内部时钟控制器可以分别为ARM核和USB、UART、DSP、音频等功能部件提供不同频率的时钟。

片内存储器的容量

大多数ARM微处理器的片内存储容量都很小,这就要求用户在设计系统时需要扩展存储器。但有些芯片的片内存储空间相对较大,比如ATMEL的AT91F40162,其片内程序存储空间高达2MB。用户在设计系统时可以考虑这种类型,以简化系统的设计。

片内外围电路的选择

除了ARM微处理器内核,几乎所有的ARM芯片都根据其不同的应用领域扩展了相关的功能模块,并集成在芯片中。我们称之为片上外围电路,如USB接口、IIS接口、LCD控制器、键盘接口、RTC、ADC和DAC、DSP协处理器等。设计人员应该分析系统的需求,尽可能使用片上外围电路来完成所需的功能,这样既可以简化系统的设计,又可以改善系统。