计算吞吐量增加促进32位处理器设计
作者: 吉田顺子
Atmel公司新近开发了一款名为AVR32的高性能32位RISC处理器内核,该内核从设计初始就选用了一种指令架构来增加每周期的计算吞吐量。
Atmel公司设计AVR32的目的,就是提供一种处理器,能够以极低功耗(便携式消费类多媒体设备的必要条件)有效完成日益增加的信号处理任务。此外,该内核还能够执行MPU和DSP双重功能,而仅需单一的设计流程和一套开发工具。
AVR32由Atmel公司在挪威的一个20人工程团队所开发。该团队声称,在执行‘差分之和(SAD)’和‘反离散余弦变换(IDCT)’等目标算法时,AVR32每个指令周期的计算吞吐量较ARM11内核提高了35%。这相当于在100MHz的时钟频率下,具备以30帧/秒的速度对QVGA MPEG-4视频解码的能力,如果用ARM11实现的话则需要150到175 MHz的时钟频率。
根据Atmel的说法,AVR32架构代表了一个“众多设计理念的集合”。这个集合包括一个独特的带有硬件分支预测的管线架构、专用DSP硬件(位于微处理器管线内部)以及单指令多数据(SIMD)扩展。
“人们通常通过提高时钟频率并加入更多的门电路来提高微处理器的性能,但是这样的竞赛已经结束。”Atmel挪威公司AVR业务部的执行总监Alf-Egil Bogen说。反之,竞争的新重点是在提高单时钟周期吞吐量的同时,如何使所消耗的功率达到超低。
“我们采取了一种非常学术的做法,通过关注微处理器架构的每一个细节,来达到更高的吞吐量和优化的代码密度。”Atmel挪威公司的芯片设计师Oyvind Strom介绍。
然而,对Atmel公司而言,现在进入32位RISC处理器市场可能有些为时过晚,因为该市场已经被ARM 和美普思科技(MIPS Technologies)等公司所主导。事实上,这些公司的许多处理器产品,也同AVR32一样,正在向“以DSP为导向的特性”转移,Berkeley设计技术公司的总裁Jeff Bier指出。
但是Atmel的工程师却没有为此感到忧虑,他们提到了AVR8的成功,它也是挪威团队开发的成果。AVR8在1990年末期进入市场,迄今为止仍是市场中增长幅度快的8位MCU之一。“我们希望借助AVR32稍稍撼动一下这个行业。”Bogen说。
那么,AVR32与其它的RISC处理器相比有何不同呢?
“从层面来说,AVR32架构与ARM11和MIPS24KEc架构极为类似。”Berkeley设计公司的Bier评论道,“AVR32使用的大部分技术,似乎都可以从面向信号和多媒体处理应用的微处理器中找到。”
32位内核AVR32拥有多条管线
AVR32架构的重要特性包括一个单独的负载/存储管线、带有分支消除(branch folding)的分支预测、SIMD技术(例如借助单指令完成两个16位操作的能力)、一个16/32位指令集(自由混合,无需模式改变),以及执行SAD算法的能力(加速视频压缩)。
“上述特性没有一个是AVR32所独有的。”Bier指出,“但是进一步观察AVR32架构的细节就会发现,其中诸多单元与ARM11和MIPS24KEc有着天壤之别,这些不同为AVR32带来了一些优势。”
例如,因为其管线的工作方式,ARM11和MIPS24KEc存在与某些重要指令相关的多周期延迟。“这为编译者或汇编程序师获得性能带来了挑战。”Bier说,“但是这个问题的难度对AVR32来说小得多。”
更具体地来说,Atmel在其AVR32多管线架构中支持“无序”执行,Strom说。
通常,一条复杂的指令需要多个时钟周期,而且管线在该指令完成之后就处于停顿状态。但是AVR32拥有三条管线,即负载/存储、乘法和算术逻辑单元,它们依据无序的不相关数据执行算术操作。例如,AVR32不是在除法完成之后才中止代码,而是让指令由可用的资源来执行。
“AVR32另一个意义重大的地方在于可以自由混合16位和32位指令。”Bier指出。这点之所以重要是因为并非所有的东西都以32位数据格式出现。如果没有这种混合能力,从一个字中挑选合适的字节就会困难得多。
“在其它一些内核,如ARM1136中,你不得不执行一条模式变化指令才能实现16和32位指令集之间的切换。”Bier说,“这个差别意味着AVR32可以获得更紧凑的代码密度。”
确实,优化的代码密度十分重要。如果需要执行的程序能够减少,那么需要的时钟周期也会减少。此外,高代码密度意味着该代码在高速缓存器中占据较少的空间,这样高速缓存器中就可以存储更多的指令。“这样不仅可以减少高速缓存器丢失数据的可能,还有利于降低成本。”Atmel公司的Bogen补充道,“因为必需的程序存储器减小了。”
Forward Concepts公司的总裁Will Strauss认为AVR32的表现很不赖,他引用了AVR32在EEMBC基准下的性能评估结果来证明其言论。评估结果显示,在需要MPU和DSP双重功能的应用中,AVR32击败了ARM9和ARM11家族。不仅如此,该款器件在代码密度方面的得分也优于ARM1020。
那么将AVR32与TI的Omap解决方案相比结果又如何呢?Strauss指出,TI的Omap平台是一个包含多处理器的芯片(ARM内核+TI DSP),而AVR32则从一开始就针对MPU和DSP设计,而且只需单独一套开发工具。”
但是没有人真正希望Atmel的AVR32打入手机世界。“AVR32不可能在手机领域获得设计胜出,该领域完全由基于ARM的芯片所主导。”Bier表示,“AVR32可能对PMP以及其它低成本消费电子更具吸引力。
面向运算增强型应用的MPU内核
“但是,如果对TI、ADI以及飞思卡尔正在销售的多媒体应用芯片进行观察,你就会发现它们是带有大量现成软件和其它开发基础架构的复杂SoC。”他说,“如果Atmel想为AVR32寻找出路的话,它必须采取相应的措施。”
Atmel计划在AVR32内核基础上推出几个处理器系列。首先会是针对消费类多媒体应用的SoC解决方案,预定产品在这个月就将面世。
虽然AVR32内核在Atmel晶圆厂制造的ASIC中得以使用,但是Atmel表示它不会对其它的生产商发布授权。目前第三方可以通过定制芯片的形式获得内核,但是Atmel将坚持自己生产该器件。
据该公司透露,完整芯片(而不是一个处理器核)的预期售价将在10到17美元之间。
在工具方面,Atmel认为它已经尽全力去优化其开发工具,并尽可能地使现有AVR8 MCU的用户平滑过渡。公司位于挪威的团队已经同瑞典一家的工具公司IAR进行了多年合作。IAR的编译器有助于Atmel测试AVR32的架构并优化其指令集。IAR还对其编译器进行了改进,以便更好地适用于该架构。
此外,AVR8现有的65,000名客户可以继续将他们熟悉的工具(如电路仿真工具JTAGICE mkII)用于AVR32。
AVR32内核支持Linux操作系统。对其它实时操作系统的支持将在客户要求授权的时候再进行添加,Bogen表示。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。