32位嵌入式微处理器--ARM、MIPS、PowerPC、DSP
由于嵌入式系统的专用型与定制性,与全球PC市场不同,没有一种微处理器或者微处理器公司可以主导嵌入式系统。本文分析了当前市场上主流的一些32位嵌入式微处理器的特点和应用场合,并对其未来发展做一些展望。这里只是按照体系结构分类,不涉及具体的处理器芯片。
一. ARM
ARM处理器是由英国的ARM公司设计的32位RISC处理器。
毫无疑问,ARM芯片是嵌入式微处理器中的佼佼者,是很多数字电子产品的核心。如今95%的手机里面的核心处理器使用的都是ARM芯片,而ARM在整个手持市场上占有90%以上的份额,这是一个惊人的比例。
ARM公司的商业模式:
ARM公司的成功除了其卓越的芯片设计技术以外,还源于其创新的商业模式:提供技术许可的知识产权,而不是制造和销售实际的半导体芯片。ARM将其芯片设计技术(内核、体系扩展、微处理器和系统芯片方案)授权给Intel,Samsung,TI,高通(Qualcomm),意法半导体等半导体制造商,这些厂商拿到ARM内核以后,再设计外围的各种控制器,和ARM核整合成一块SOC芯片,也就是我们看到的市面上的各种芯片,作为用户,我们也许不知道我们使用的是ARM芯片,但是我们可能天天都在感受着ARM芯片带给我们的智能体验。
图1-1 ARM的业务模型
ARM公司正是因为没有自己生产芯片,从而省去了IC制造的巨额成本,因此可以专注于处理器内核设计本身,ARM处理器内核不但性能卓越而且升级速度很快,以适应市场的变化。
由于所有的ARM芯片都采用一个通用的处理器架构,所以相同的软件可以在所有产品中运行,这正是ARM最大的优势,采用ARM芯片无疑可以有效缩短应用程序开发与测试的时间,也降低了研发费用。
ARM生态产业链:
ARM公司通过出售芯片技术授权,建立起新型的微处理器设计、生产和销售商业模式。围绕着芯片设计产业,ARM公司整合了上下游的资源,逐渐形成了一条完整的生态产业链。ARM的合作伙伴包括半导体制造商,开发工具商,应用软件设计商以及培训商等。ARM公司统一了芯片设计的标准,芯片制造商生产的芯片符合统一的接口,为以后的开发提供了很大的方便;工具商专门开发基于ARM芯片的仿真器和开发工具;应用软件设计商开发基于ARM芯片的应用程序,培训商则提供与ARM相关的培训服务。
这样的一套完整的产业链使得ARM芯片的开放性和通用性都很好,很多公司开发嵌入式产品都倾向于选择ARM的芯片,因为软硬件开发都有比较成熟的方案,相关的人才也比较多,可以缩短开发的周期,使得产品能够尽快上市。而作为个人如果想学习嵌入式开发,ARM芯片也是首选的学习对象,相关的学习资料和开发工具都有很多。
目前全球已有超过700家的软硬件系统公司加入了ARM Connected Community,其中中国本土公司的成长很快,目前已经有超过70家加入了ARM生态伙伴系统。
下图为以ARM公司为核心的生态产业链,这个产业链还在不断壮大:
图1-2 以ARM为核心的生态系统
ARM处理器核的技术特点:
采用RISC架构的ARM微处理器一般有如下特点:
- 体积小、功耗低、低成本、高性能;
- 流水线结构;
- 支持Thumb(16位)/ARM(32位)双指令集,能很好兼容8位/16位器件;
- 大量使用寄存器,指令执行速度更快;
- 大多数数据操作都在寄存器中完成;
- 寻址方式灵活,执行效率高;
- 指令长度固定,支持条件执行;
- 具有桶形移位器(barrel shifter),可以提高数学逻辑运算速度,不过也增加了硬件的复杂性,会占用更多的芯片面积;
- AMBA互联总线协议,可以有效地将各个IP组件粘接起来;
- ARM的大部分设计都采用RISC思想,当然它也综合一些CISC的设计理念以达到最佳地性能,所以ARM不是纯粹的RISC架构;
ARM微处理器最新的一些技术特点(以最新的Cortex-A9处理器核为例):
- 高效超标量流水线;
- NEON多媒体处理引擎,加快媒体和信号处理能力;
- 浮点运算单元,显著提高了单精度和双精度标量浮点运算的速度;
- 优化的一级缓存;
- Thumb-2技术,性能上达到传统ARM代码的峰值水平;
- 二级缓存控制器,最高可配置2MB的缓存内存;
- 先进的取指及分支预测技术,避免因访问指令的延时而影响跳转指令的执行;
- 最多支持四条指令Cache Line预取挂起,进一步减少了内存延时的影响,从而促进指令的顺利传输;
- 每个周期内可连续将两到四条指令发送到指令解码,确保充分利用超标量流水线性能;
图1-3 Cortex-A9 架构及单核接口
总而言之:ARM处理器最大的优势就在于体积小、功耗低、价格低廉,并且还能提供相当高的性能,确实是众多嵌入式设备的首选。
ARM处理器的主要应用领域:
下面是ARM处理器的主要应用领域:
- 工业控制领域:基于ARM核的微控制器芯片不但占据了高端微控制器的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,Cortex-M系列就是ARM公司推出的典型低功耗、高性价比32位工控微控制器,向传统的8位/16位微控制器提出了挑战;
- 无线通讯领域:目前大部分无线通讯设备采用了ARM技术,ARM以其高性价比和低成本,在该领域的地位日益巩固;
- 网络应用:随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势,此外,ARM在语音及视频处理上进行了优化,并获得广泛支持,这也对DSP的应用领域提出了挑战;
- 消费类电子产品:ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到了广泛采用;
- 成像和安全产品:现在流行的数码相机和打印机中绝大部分采用ARM技术,手机中的32位SIM智能卡也采用了ARM技术;
ARM未来可能的发展趋势:
下面对ARM未来可能的发展趋势做一些分析:
ARM将在上网本市场和Intel一争高下。尽管Intel用于上网本的ATOM处理器现在占据上网本近80%的市场份额,但是成本低廉综合性能也不弱的ARM芯片大有和Intel一较高下的实力,未来二者可能平分上网本芯片的市场份额;
云计算时代亦是ARM的时代。云计算时代,用户可以在任意位置,使用各种移动终端获取应用服务,计算机的计算能力将不受本地硬件的限制,一台更小尺寸、更轻的上网本或者智能手机一样可以通过网络来完成我们需要的服务,这时ARM芯片的优势就体现出来了,采用ARM芯片的上网本更加省电轻巧;
ARM和Linux紧密结合,整合软硬件解决方案,打造一整套开放平台,目前已经有多款ARM+Android组合的智能手机以及ARM+Ubuntu9.04结合的上网本上市。开放式平台是嵌入式应用的未来,ARM结合自身的生态系统优势,很有可能成为这个平台的主导者;
ARM架构进军服务器市场。尽管现在ARM架构应用在服务器领域还存在一些不足,但是ARM低功耗、低成本等优点还是得到很多服务器厂商的青睐,并且2009年Dell已经推出了基于威盛Nano芯片的低功耗XS11-VX8服务器,其体积相当于一块3.5英寸的硬盘,而且在一个标准2U机箱内放置12台这样的服务器,单服务器的满载功耗在30瓦以内,并在近两年内出货5000多套类似的系统。而ARM的官方站点使用的就是基于Marvell MV78100 SOC的ARM服务器,相信ARM将来会逐步占据服务器市场的一定份额;
ARM将在低端微控制器市场逐步取代传统的8位/16位单片机。ARM的Coretex-M系列是经过优化的专门针对低端控制应用的处理器核,和传统的单片机相比,它的处理能力更将而且更具针对性,并且其价格还非常低廉。
ARM下一代处理器核向多内核架构发展,以提供更强大的运算能力。Cortex-A9处理器就有单核和多核两个架构。
ARM内核与FPGA结合为SOPC(System On a Programmable Chip),打造更灵活的嵌入式系统硬件解决方案。FPGA灵活的硬件设计与处理器的强大软件功能有机地结合在一起,在设计具有复杂算法和控制逻辑的系统时,SOPC的优势非常明显。
二. MIPS
MIPS处理器简介:
MIPS CPU是一种RISC结构的CPU,MIPS起源于一个学术研究项目,该项目的设计小组连同几个半导体厂商合伙人希望能制造出芯片并拿到市场上去卖。结果是该结构得到了工业领域内最大范围的具有影响力的制造商们的支持。从生产专用集成电路核心(ASIC Cores)的厂家(LSI Logic,Toshiba, Philips, NEC)到生产低成本CPU的厂家(NEC, Toshiba,和IDT),从低端64位处理器生产厂家(IDT, NKK, NEC)到高端64位处理器生产厂家(NEC, Toshiba和IDT)。
1984年,MIPS计算机公司成立。1992年,SGI收购了MIPS计算机公司。 1998年,MIPS脱离SGI,成为MIPS技术公司。MIPS技术公司是一家设计制造高性能、高档次及嵌入式32位和64位处理器的厂商,在RISC处理器方面占有重要地位。
MIPS公司设计RISC处理器始于二十世纪八十年代初,1986年推出R2000处理器,1988年推R3000处理器,1991年推出第一款64位商用微处器R4000。之后又陆续推出R8000(于1994年)、R10000(于1996年)和R12000(于1997年)等型号。随后,MIPS公司的战略发生变化,把重点放在嵌入式系统。1999年,MIPS公司发布MIPS32和MIPS64架构标准,为未来MIPS处理器的开发奠定了基础。新的架构集成了所有原来NIPS指令集,并且增加了许多更强大的功能。MIPS公司陆续开发了高性能、低功耗的32位处理器内核(core)MIPS324Kc与高性能64位处理器内核MIPS64 5Kc。2000年,MIPS公司发布了针对MIPS32 4Kc的版本以及64位MIPS 64 20Kc处理器内核。
注意:
MIPS有两种含义,上文中的MIPS是Microprocessor without Interlocked Pipe Stages的缩写,即无互锁流水线级的微处理机,它是一个科研项目的名称;MIPS在计算机科学里还有Million Instructions Per Second,即每秒执行百万(条)指令数,是衡量计算机速度的一个重要指标。
MIPS的商业模式:
MIPS的商业模式和ARM相似,也是研发处理器内核,将知识产权授权给其他公司。我们非常熟悉的国产处理器厂商龙芯就是获得MIPS32和MIPS64架构的授权,借此开发龙芯CPU。
MIPS开展授权模式比ARM要晚,其生态系统的规模和完整性都不如ARM,而且很多MIPS的授权厂商如Broadcom/PMC等都不在处理器核上继续投入了,而反观ARM,除了ARM本身,Qualcomm/Marvel等作为ARM的架构授权者都在积极推动处理器内核的研发,这一点使MIPS在与ARM的竞争中无法占到优势。
MIPS处理器的技术特点:
MIPS处理器主要有以下技术特点:
- MIPS的设计保持纯粹的RISC风格,其设计始终保持简洁性,它倾向于把复杂的工作交给编译器去做。很多大学课程都喜欢选择MIPS体系结构来讲解计算机体系结构。MIPS的设计还是保持着学院派的作风,有一定理想化的色彩,因此到了实际商用领域,不如ARM这种以RISC为主但是也会引入一些CISC设计思想的处理器更具竞争力;
- 占用更小的芯片面积,功耗方面比ARM芯片稍大一些;
- 具有32位和64位两种架构的指令集,而ARM只有32位架构的指令集;
- 核内包含大量寄存器、指令数和字符;
- 可视的流水线延迟间隙;
- 多发射核技术,这种技术将处理器中的闲置处理单元分割出来虚拟为另一个核心,以提高处理单元的利用率,避免了处理单元闲置浪费;
- MIPS是开放式的架构,用户可以在开发的内核中加入自己的指令;
MIPS处理器的主要应用领域:
MIPS处理器主要有以下应用领域:
在数字电视、数字机顶盒、DVD/蓝光播放器、数码相机和宽带客户端等领域MIPS架构处理器应用比例大约为50%;
在家用网络方面,大部分宽带路由器与无线接入点都采用了MIPS架构处理器,MIPS在互联网时代数字家庭的组成中已经占据一定的优势;
MIPS在移动/便携终端领域远不如数字家庭那样神勇,不过采用MIPS处理器的索尼PSP的成功说明MIPS在这个领域大有可为,逐渐兴起的电子书也是MIPS在这个领域的一个突破口;
MIPS在服务器市场也有部分应用,许多在业务上有前瞻性的互联网企业都考虑或已经将MIPS架构平台大量引入数据中心,在灵活满足需求的同时降低愈发夸张的能源及冷却成本;
MIPS处理器面临的困境:
MIPS其实是一款非常优秀的RISC处理器架构,但是由于一些历史原因,错过了一些比较好的发展机遇,导致现在的发展遇到一些困境,主要体现在以下几个方面:
- MIPS构建的生态系统远不如ARM完善,而且这种现状在当前ARM迅猛发展的情况下很难有所改观,在国内,我们很少看到关于MIPS的培训课程,而ARM相关的培训课程则很多,不过一些高校会采用MIPS处理器架构来授课,因为MIPS的设计是开源的;
- MIPS所擅长的多是一些对效能要求远远高于用户体验的领域,这也从侧面反映出该架构下长期缺乏优秀的用户交互系统的窘境;
- MIPS在中国市场授权模式开展地较晚,因此在中国市场的推广远不及ARM;
- MIPS内核平台的开放性不太好,导致目前MIPS开发工具支持不够广泛,这是开发者不愿意看到的,而支持ARM内核的集成开发环境(IDE)、编译器、RTOS、软件仿真器、启动/驱动代码产品也是层出不穷,可以说一条完整的设计链已经形成,进入一种良性循环,所以开发者更倾向于使用ARM芯片;
MIPS未来可能的发展趋势:
下面对MIPS未来可能的发展趋势做一些分析:
- MIPS处理器核将向着硬件多线程方向发展,这与ARM不同,ARM的发展方向是多核处理器;
- MIPS要寻求壮大自己的生态系统,让MIPS处理器支持更多操作系统,与其合作伙伴打造更加开放自由的平台。2009年,MIPS加入了开放嵌入式软件基金会(OESF),这将扩大MIPS的影响力,MIPS也成立了Android解决方案中心,目的就是让更多的厂商采用MIPS+Android的软硬架构来开发电子产品;
- MIPS将借助3.5G或者4G的发展进军无线通讯领域,考虑到未来无线通信协议与Wi-Fi协议愈发相似,在这个时机切入似乎是个不错的选择;
- MIPS会大力布局云时代,MIPS在互联网时代数字家庭的组成中已经占有一定的优势,具备了接入云的基础;
- 在服务器市场,MIPS的优势渐渐体现出来,基于云的应用大大增加了对系统I/O与加解 密运算能力的要求,而这正是许多MIPS架构处理器的强项;
- 在工控领域,MIPS可能不会有什么作为,这一领域还是会被8位单片机和ARM低端芯片占据;
三. PowerPC
Powerpc简介:
PowerPC是由苹果(Apple)公司和IMB以及早期的Motorola(现在的飞思卡尔半导体)组成的联盟(简称为AIM)共同设计的微处理器架构,以对抗在市场上占有压倒优势的x86处理器。
PowerPC是一种RISC多发射体系结构。PowerPC 体系结构规范(PowerPC Architecture Specification)发布于 1993 年,它是一个 64 位规范 ( 也包含 32 位子集 )。几乎所有常规可用的 PowerPC(除了新型号 IBM RS/6000 和所有 IBM pSeries 高端服务器)都是 32 位的。
PowerPC有着广泛应用,从高端服务器CPU到嵌入式CPU,PowerPc在全球通信市场上处于无可争议的领袖地位。
PowerPc的商业模式:
在2006年之前,基于PowerPC架构的CPU一直都只能由IBM和Motorola公司生产,后来Motorola将其半导体部门卖给了飞思卡尔,则变成了由IBM和飞思卡尔生产PowerPC芯片。2006年之后,IBM和飞思卡尔才开放了PowerPC的授权,将PowerPC授权给其他厂商,其授权模式开展的比ARM以及MIPS都要晚的多,PowerPC开放授权之后势必会有更多的厂商加入对其开发的行列,目前的嵌入式市场反映出来的趋势确实是PowerPC芯片凭借其出色的性能和高度整合性正在慢慢侵占原先ARM和MIPS占据主导地位的市场,尤其PowerPC在高端嵌入式设备上的应用更有着绝对的优势。
PowerPC在中国市场也有着不错的表现,尤其是飞思卡尔还在西安设有芯片的研发中心,相信他们会大力推广其PowerPC芯片的应用,估计一些高端嵌入式市场会向PowerPC倾斜。
Powerpc的技术特点:
PowerPC架构具有以下特点:
- 32 个 integer / float registers 组。32 个general-purpose registers(GPRS) 存放整型数据,用于 integer 运算指令。32 个float-pointer registers(FPRS) 存放浮点数据,用于 float 运算指令;
- 指令 load/store 在 GPRS 与 FPRS 之间存取数据;
- 统一定长的精简指令格式易于实现超标量流行线;
- 最多支持 4 个operands,运算结果典型存放在 first operand;
- IEEE-754 标准浮点数,单精度(single-float)和双精度(double-float)指令运算;
- PowerPC 架构允许实现某一功能为特定的硬件平台;
- 用户层指令的存取缺省在 caches 执行。特殊指令跨越 caches 存取;
- 支持 big-endian 和 little-endian 模式;
- 支持 64-bit 地址模式;
Powerpc的应用领域:
PowerPC主要的应用领域如下:
- 苹果公司生产的笔记本、图形工作站、台式机等;
- IBM公司生产的服务器、工作站以及台式机等;
- 用于军工、工控、通信、消费电子以及航天等领域的嵌入式微处理器;
Powerpc的技术优势:
PowerPC虽然在嵌入式微处理器市场上的占有率远不如ARM,但是它比起ARM、MIPS确实有很多技术优势,主要体现在以下几点:
- PowerPC的设计侧重于浮点性能和多处理能力,其多媒体处理能力非常强劲;
- 整合度非常高,目前飞思卡尔(Freescale)的Powerpc处理器集成了USB、PCI、DDR控制器、SATA控制器、千兆网口控制器、CAN控制器、RapidIO以及PCI_Express控制器等,客户无须设计复杂的外围电路,减少设计复杂程度以及物料使用;
- 在硬件上实现通信协议(Ethernet, ATM, IPsec, security, HW acceleration);
综上所述,PowerPc的高性能确实是很多高端嵌入式应用领域的首选,当然PowerPC芯片的价格较高,功耗也比ARM要大,所以手机上从来不用PowerPC的芯片,软件对PowerPC的支持也略显不够。
四. DSP
DSP简介
DSP是微处理器的一种,这种微处理器具有极高的速度。因为这种处理器的应用场合要求极高的实时性。比如通过移动电话进行通话,如果处理速度不快就只能等待对方停止说话,这一方才能通话,如果双方同时通话,因为数字信号处理速度不够快,就只能关闭信号连接。
信号处理的各种运算最基本就是乘法和累加运算,其运算量非常大,这就决定了数字信号处理器的结构和指令系统的特点。
DSP处理器对系统结构和指令进行了特殊设计,使其适于执行DSP算法,编译效率高,指令执行速度也较高。在数字滤波、卷积、FFT、谱分析等方面有着广泛应用。
DSP处理器又分为通用DSP芯片和专用DSP芯片。
DSP的分类:
DSP按照其设计模式可以分为通用DSP芯片和专用DSP芯片:
通用DSP芯片:
通用DSP主要指目前基于CPU架构的、通过软件指令方式完成DSP算法的DSP器件。早期的DSP处理器只有一个乘法器,而现在的DSP处理器(如Ti的TMS320C6000系列),包含有8个乘法器。通用DSP处理器的主要优势是具有良好的通用性和一定的灵活性,有适用于实现各种DSP算法的通用硬件结构和一些特殊的寻址方式。片内Cache容量大,片内RAM大,基本上数据都放在片内RAM就可以了,不需要片外再接RAM,DSP芯片里面集成的外设少,不像ARM那么多,所以它不适于做控制。
专用DSP芯片:
专用DSP芯片直接通过硬件实现各种数字信号处理的算法,如FFT、数字滤波、卷积、光谱分析等相关算法,速度非常快,适用于哪些对速度有着苛刻要求的场合,尤其是军工领域,当然这样的芯片造价很高,而且不具有可编程性。
DSP按照所支持的数据格式可分为:
定点DSP处理器:
使用小数点位置固定的有符号数或者无符号数。定点器件在硬件结构上比浮点器件简单,价格低,速度快;
浮点DSP处理器:
使用带有指数的小数,小数点位置随具体数据不同进行浮动,浮点器件精度高,但成本、功耗相对较高,速度相对定点要慢;
DSP的技术特点:
DSP由于其专门用于数字信号处理,因此具有如下技术特点:
- 芯片内包含多个乘法器;
- 支持专门的寻址模式,如模块(循环)寻址(对实现数字滤波器延时线很有用)、位倒序寻址(对快速傅立叶变换很有用);
- 片内Cache大,有些还具有多级Cache,片内RAM大;
- 单周期可以处理多条乘加操作,即单指令多数据(SIMD);
DSP的应用领域:
- 通用信号处理(卷积、滤波、FFT);
- 图形图像处理;
- 语言语音处理;
- 仪表仪器(频谱分析,数字滤波、地震处理等);
- 自动控制;
- 医疗仪器;
- 国防军事(导航及制导,雷达监测,雷达信号处理,声纳信号处理,保密通信);
- 移动通信;