基于ARM内核的手持设备SoC
扫描二维码
随时随地手机看文章
摘??? 要:本文研究并开发了一款针对手持设备、内嵌arm7tdmi内核的系统芯片。在设计这款芯片的过程中,mp3算法的软硬件分割和芯片的低功耗设计是主要挑战。本文介绍了该系统芯片的结构,并着重介绍了软硬件分割和低功耗设计技术。
关键词:系统芯片;低功耗;arm;mp3引言
随着半导体技术的进步和芯片设计方法—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模式对于某些应用来说非常