基于ARM内核的手持设备SoC

发布时间:2010-7-29 16:42    发布者:lavida
关键词: arm , SoC , 手持设备
随着半导体技术的进步和芯片设计方法—IP重用技术的出现,SoC在消费类电子产品中已经越来越普遍。本课题组去年启动了称为Garfield的SoC项目。Garfield定义为一款面向中低端PDA的嵌入式处理器,支持显示器件接口、存储控制器、通讯控制器和多媒体应用等。多目标圆片(MPW)试验和测试结果表明,Garfield基本达到设计要求,各项性能指标也符合原来的定义。  

在Garfield开发过程中,克服了许多挑战。首先是验证工作,60%以上的开发时间都是用来保证芯片没有功能性问题。其次,低功耗对于电池供电的手持终端而言是一个关键问题,必须采用大量低功耗技术来保证系统不损耗不必要的功率和运行更长的时间。第三,由于ARM7TDMI内核的速度限制和MP3的算法复杂度,MP3软解码无法在基于ARM7TDMI的平台上实现实时播放。因此必须在芯片内包含MP3硬件加速引擎,确认MP3哪一部分的算法需要在硬件加速引擎中实现,这就需要软硬件分割并在系统级评估其性能,使用最少的硬件资源实现MP3的实时播放。  

Garfield结构

其体系结构包括CPU内核、片上总线和其它的外设。

ARM公司不仅提供微处理器内核,还提供各种易用的工具,比如调试工具、软件开发包、原型样机开发包等,其微处理器内核以低功耗见长。目前AMBA最新的版本是AMBA 3.0,但AMBA 2.0的标准相对而言更加成熟,并且有很多成功案例,所以选择AMBA 2.0作为Garfield的片上总线。AMBA包含高速总线AHB和低速总线APB。AHB是为高速、高性能的外设设计的骨干总线,Garfield通过AHB把存储器控制器、内核、片上SRAM、显示控制器、多媒体加速引擎和DMA等模块连接起来。APB是为低速、低功耗的外设设计的,它不提供“突发”模式的数据传输,所有其它不需要高数据带宽的外设都通过APB连接。在AHB和APB之间则通过一个桥(bridge)连接。

在嵌入式微处理器中,外存控制器必须支持多种不同类型的外存。此外,嵌入式设备还经常使用一些卡(比如CF卡、MMC卡等)来备份或者扩展存储器系统。目前市场上还出现了一种不同于传统NOR-Flash结构的NAND-Flash,NAND-Flash具有容量大、便宜等优点,因此支持NAND-Flash有助于降低系统成本,提高竞争力。

尽管纯软件解码的MP3可以在28MHz的ARM7TDMI平台上完成实时解码,但是这类MP3解码程序需要高度优化的解码软件和大容量的零等待存储器。对于Garfield这类面向中低端、低成本手持设备的嵌入式微处理器而言,要集成大容量的片上SRAM是不可能的。而在Garfield中只有20K的片上SRAM用于存储常用的MP3解码子程序、中断服务程序等。MP3解码之后得到的音频数据PCM码通过DMA传输到AC97控制器,最后送到片外的codec中播放音乐。

LCD在嵌入式系统中得到了广泛的应用,所以Garfield支持黑白、灰度和彩色的LCD屏。LCD控制器中内嵌了一个优化的灰度调制算法,因此在较低刷新频率(68Hz)下,也可以消除灰度显示中的“纹波”和“漂移”等不稳定现象。

Garfield支持高速的USB通讯,也支持低速的串口通讯和红外通讯。
  
低功耗

低功耗设计对于电池供电的手持终端而言至关重要。CMOS数字电路的功耗有两类:一是由于电路节点翻转对节点电容充放电引起的动态功耗;二是由于电路漏电流带来的静态功耗。在CMOS电路中,动态功耗是功耗的主要来源,另外系统处于sleep模式下的静态功耗也是影响电池寿命的一个重要因素。为了降低系统动态功耗,必须使得那些不需要翻转的节点尽可能地少翻转以节省功耗。在Garfield中使用了两种降低动态功耗的手段:一是关闭当前不使用的模块并截断其时钟树;二是使用门控时钟降低节点的翻转速率。

当系统没有用户进程需要服务时,系统会处于停顿(idle)状态,但此时系统仍然会消耗大量的无用功耗。Garfield使用四种功耗模式(normal, idle, slow和sleep),根据系统应用,系统会选择进入不同的功耗模式以节省功耗。如果当前应用需要复杂的计算或者控制,Garfield会进入normal模式,此时所有工作模块通过一个高速时钟(来自于PLL)来同步其操作。当系统处于该模式下时,由于高速的节点翻转,系统可能消耗大量的动态功耗。如果系统认为已经在相当长时间内没有用户任务需要处理,Garfield则会进入idle模式,关闭ARM7TDMI内核,但是其它工作模块(如LCD,触摸屏等)仍然打开。idle模式除了节省内核功耗外,更重要的是由于内核关闭,它能节省大量的外存功耗。如果系统有一些经常性但计算量较轻的任务,系统可以进入slow模式,在此模式下,Garfield使用一个外部晶体振荡器产生的低速时钟(10MHz)。slow模式对于某些应用来说非常有用,可以保证系统接收信息但又不消耗很多功耗。如果系统长时间没有用户任务, Garfield将进入sleep模式,此时除了实时时钟(RTC)和功耗管理单元(PMU)之外的其它模块都将被关闭,因此仅仅消耗RTC、PMU的动态功耗和芯片的静态功耗。功耗分析结果表明:时钟树要消耗大量的功耗,因此时钟树应该在源头加入门控以尽可能地降低功耗。

门控时钟是一个可以有效降低系统功耗的技术,它通过抑制触发器时钟输入端的翻转来降低电路功耗。Synopsys公司的Power Compiler可以自动在门级插入门控电路,它能自动识别RTL描述中的寄存器组(有相同使能信号的寄存器),并使该寄存器组的时钟信号门控。显然如果门控更多的寄存器,则节省功耗也就越多。如果RTL描述中的寄存器组组织得比较有规则,如总线接口和FIFO,则Power Compiler会优化得很好。门控时钟的另外一个好处是会使芯片面积减小。当门控时钟技术降低功耗和面积开销的同时,它可能引起系统性能下降。  

MP3优化

高音质的MP3浮点软解码需要大量的计算,一般来说会使用浮点协处理器(FPU)来完成实时解码。但是在嵌入式应用中,FPU意味着大量的芯片面积开销和系统成本增加。因此必须将浮点的MP3解码算法变为定点算法,使之能够在一个整数内核上运行。

MP3解码算法包括:Huffman解码、反量化、反锯齿波、立体声解码、离散余弦变换和子带合成。除了Huffman解码之外, 其它几个子程序都需要复杂的浮点运算,所有这些浮点运算在ARM7TDMI的开发环境下都将被编译、链接到浮点库中。表格1显示浮点MP3解码算法需要大量的计算时间,不适合在嵌入式环境下应用。

浮点变量F可以由一个整数I及其指数NF来表示,因此浮点运算就可以表示为整数计算及其移位,比如两个浮点数的乘法就可以表示为两个整数乘法以及移位(如式2所示)。ARM指令集可以在一个节拍内实现运算和移位操作,因此ARM内核可以高效地执行这类运算。定点运算的精度不仅依赖于浮点变量本身、也依赖于移位的位数。如果该浮点数太大并左移了过多的位数,则其整数表达式就会溢出,否则可能降低运算结果精度。显然定点解码算法会带来噪声而降低音乐音质(音质可通过式3来评估),因此选择合适的NF对于获得高质量的音乐极为重要。经过反复的优化与折中,选取NF=24,可以达到87dB,接近CD音质。

经过定点转换,MP3定点算法只需要原来浮点算法的20%左右,但仍需要50ms才能解完一帧音乐(一帧音乐长26ms),因此它依然不能实现实时解码。Garfield中集成了一个MP3的硬件加速引擎(MMA)以实现MP3的实时解码,因此存在两个问题:一是如何分割MP3算法,哪一部分的计算要用硬件来实现;二是解码性能必须可以在高层评估、分析。

ARMulator是ARM公司提供的一个指令级模拟器,它可以在PC上模拟ARM各种处理器内核和其它外设。尽管ARMulator不是完全节拍精度的模拟器,但是对于没有Cache的处理器核(比如ARM7 TDMI)已足够精确。
本文地址:https://www.eechina.com/thread-17820-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表