影响高性能DSP功耗的因素及其优化方法

德州仪器DSP技术应用工程师 冯华亮

摘要

本文讨论影响高性能DSP功耗的因素,介绍一些DSP功耗的优化方法。 随着嵌入式应用需求的不断提高,DSP的速度也不断提高。现在常见的高性能DSP速度已达到1GHz,TI(Texas Instruments)的TMS320C6455最高速度已达到1.2GHz。然而,DSP的功耗也随着DSP的速度提升而快速增加。DSP功耗越来越成为DSP工程师关注的重要问题。 另外,1.2GHz目前几乎是DSP速度的上限,主要原因还是功耗的限制。更高速度DSP所带来的高功耗的负面影响已超过了其在性能方面带来的好处。基于这个原因,现在普遍采用的提高DSP性能的技术是在单芯片内集成更多的核,而不是单纯提高单核的运行速度。

影响DSP功耗的因素

数字电路的功耗不外乎两种:一种是动态功耗,消耗于逻辑的转换;另一种是静态功耗,由于CMOS晶体管存在的各种泄漏造成。对于较老的DSP,或者说基于大于130nm工艺的DSP,静态功耗可以忽略不计;但随着工艺不断精微,静态功耗所占的比例越来越大。

静态功耗

TI在DSP功耗方面一直处于业界领先的地位,下表列出了TI一些基于不同工艺的DSP的典型静态功耗在总功耗中所占的比例。

DSP 工艺 静态功耗所占比例
TMS320C6201 180nm <1%
TMS320C6416 130nm 11%
TMS320C6455 90nm 24%
 

对于最新的基于65nm工艺的DSP,静态功耗所占的比例达到50%左右。另外,静态功耗也受DSP工作温度的影响,下图列出TMS320C6455在不同温度下的静态功耗。

从上图可以看出,随着工作温度上升,静态功耗呈指数级上升,这使得静态功耗在总功耗中所占的比例进一步提高。另外,值得注意的是,温度升高会增加功耗,而功耗增加又使芯片温度进一步升高,温度和功耗这种互相助长的特性使得DSP散热系统的设计显得更为重要。

动态功耗

当门发生逻辑状态转换并产生内部结点充电所需的开关电流以及P通道及N通道同时暂态开启引起直通电流时,就会出现动态功耗。通过以下公式可以估算其近似值:

其中,Cpd为动态电容,F为开关频率,Vcc为电源电压。上述关系中包含两个重要概念:动态功耗与开关频率呈线性关系,与电源电压呈二次关系。下图列出了TMS320C6455在不同工作频率下的典型功耗。

另外,最大安全开关频率往往取决于电源电压,所以这两者是相互关联的。以TMS320C6455为例,当工作频率小于或等于850MHz时,其要求的核电压为1.2V;而当工作频率大于850MHz时,其核电压必须为1.25V。

DSP功耗优化方法

静态功耗主要取决于芯片的设计和工艺。而实际应用中可采取的主要优化方法是控制温度。常见的散热方法包括散热片和风扇。对于高功耗DSP,散热片是低成本而且有效的散热方式;而风扇的使用则需要仔细考虑更多的因素,如风扇的尺寸,位置,成本及可靠性等等。

优化动态功耗的方法则比较多。在不影响系统性能的前提下,通过降低电压和频率就可能大大降低动态功耗。不过,降低CPU时钟速率也会成比例地延长执行该任务集的时间,因此必须仔细分析应用以确保满足其实时需求。

电压的调节需要特殊的可配置电源的支持,这可能会增加系统的成本;频率的调节则可利用DSP内部自带的可编程PLL来实现,配置不同的倍频系数即可得到不同的频率。为了实现电压/频率的调节,DSP上的软件需要实时监控DSP的负载,根据负载选择功耗最小而又能满足实时处理要求的电压/频率配置。

在DSP电压/频率一定的情况下,DSP动态功耗还受DSP使用率的影响。通常可采用以下方法来降低DSP使用率:

1. 关闭不需要或暂时不使用的外设。例如,TMS320C6455 DSP上,所以的外设模块的时钟都可以通过软件关闭或打开。

2. 空闲时,将DSP置于低功耗或睡眠模式。例如,在TMS320C6455 DSP上可以通过执行IDLE指令来实现。处于IDLE状态的DSP可被任何中断事件唤醒。因此,在等待处理数据时,为了节省功耗,应避免采用查询方式,而采用IDLE与中断结合的方式。

3. 不访问存储器时将其置于低功耗或睡眠模式。例如,TMS320C6455 DSP上,所有片内存储器都可通过软件使其处于低功耗模式,而任何对内存的访问又可使其自动恢复到正常工作模式。外部扩展SDRAM也支持自刷新模式以节省功耗。

为了更进一步降低DSP功耗,还有一些细节值得注意:

1. 充分利用Cache或其它技术减少存储器的访问。例如,TMS320C6455的SPLOOP Buffer和16-bit压缩指令可以减少代码的大小及访问频率。访问外部扩展存储器的功耗往往比访问内部存储器高得多,尽量将频繁访问的数据放在片内,以减少外部存储器的访问。另外,外部SDRAM往往基于突发(Burst)的方式访问,即使你只需要一个字节,存储器也可能会存取8个字,所以对SDRAM的要尽量采用连续大块的访问方式。

2. 优化软件,减小程序大小从而减少存储器的访问,减少代码执行时间从而降低DSP使用率。

3. 某些不用的DSP管脚允许被悬空,但通过合适的上拉或下拉将其置于确定的电平可减少由于状态不确定而导致的漏电流。

4. 某些用于调试目地的信号管脚,如TMS320C6455的输出时钟,在调试完成后可将其关闭。

【DSP开发技术】影响高性能DSP功耗的因素及其优化方法的更多相关文章

  1. DSP开发资源总结,经典书籍,论坛

    OMAP4开发资源总结: 一.TI OMAP4官网介绍: http://www.ti.com.cn/general/cn/docs/wtbu/wtbuproductcontent.tsp?templa ...

  2. Android开发技术周报183学习记录

    Android开发技术周报183学习记录 教程 Android性能优化来龙去脉总结 记录 一.性能问题常见 内存泄漏.频繁GC.耗电问题.OOM问题. 二.导致性能问题的原因 1.人为在ui线程中做了 ...

  3. 【DSP开发】解读TI的KeyStone II云技术应用

    最近,德州仪器(TI)公司推出6款最新KeyStone II多核SoC,助力云应用.TI公司多核DSP中国市场开发经理蒋亚坚先生向媒体讲解了这6款KeyStone II新产品的特点与目标应用.     ...

  4. 【DSP开发】德州仪器达芬奇五年之路七宗罪,嵌入式处理器架构之争决战2012

    芯片是产业链上游重要的一个环节,一颗小小的芯片具有极高的技术含量和价值,半导体行业每年都会有一个各大厂商营业额的排名,除去2009年,常年盘踞在前三名位置的分别是英特尔,三星半导体和德州仪器,英特尔凭 ...

  5. DSP开发笔记一

    前言 ​ 本笔记首先对DSP的特点及其选型进行了描述,然后重点记录DSP开发环境的搭建及基础工程示例,对为DSP开发新手有一定的指导作用. 1. DSP简介 1.1 主要特点 在一个指令周期内可完成一 ...

  6. 【ARM-Linux开发】【DSP开发】AM5728介绍

    AM5728 Sitara Processors 1.    介绍 1.1 AM572x概述 AM572x是高性能,Sitara器件.以28nm技术集成: 结构设计主要考虑嵌入式应用,包括工业通讯,人 ...

  7. 【DSP开发】gel文件编写

    以下转载自:http://blog.csdn.net/henhen2002/article/details/4573447 GEL--通用扩展语言,无类型语言,只有int类型,当CCS运行时首先执行这 ...

  8. 【DSP开发】【计算机视觉】TI 视觉软件开发套件ADAS

    关键字:TI  视觉软件开发套件  ADAS 日前,德州仪器 (TI) 宣布推出其视觉软件开发套件(SDK),从而为开发人员提供了一款灵活的框架.一组丰富齐全的硬件设备驱动程序和一套适用的开发工具,可 ...

  9. Davinci DM6446开发攻略——DSP开发工程建立

    前段时间一直忙一个项目,同时在生活上时时提防和抵抗中国地沟油.国外核心转基因调和油.大豆油.色拉油.大米玉米.可怕的喂药鱼.药水泡农药喷无虫咬的青菜,所以没时间打理自己的博客,让开发攻略停顿了一段时间 ...

随机推荐

  1. 设置easyUI-dialog窗口居中显示

    默认情况下应该是在屏幕居中显示的.但是有的时候没有居中只要重新纠正下就可以了 $('#add_dialog').dialog('open'); //打开添加对话框 $('#add_dialog').w ...

  2. Tensorflow2.0学习(一)

    站长资讯平台:今天学习一下Tensorflow2.0 的基础 核心库,@tf.function ,可以方便的将动态图的语言,变成静态图,在某种程度上进行计算加速 TensorFlow Lite Ten ...

  3. [Google Guava] 1.3-常见Object方法

    原文链接 译者: 沈义扬 equals 当一个对象中的字段可以为null时,实现Object.equals方法会很痛苦,因为不得不分别对它们进行null检查.使用Objects.equal帮助你执行n ...

  4. jquery 下载

    jquery下载所有版本(实时更新) 摘自:http://www.jq22.com/jquery-info122 插件描述:jquery下载,实时更新jquery1.2到最新3.2.1所有版本下载 j ...

  5. Linux下升级php版本

    查看php版本的信息 vim  ./lib/phps.sh 设置权限   chmod 755 ./lib/phps.sh 下载版本  ./lib/phps.sh  7.1.4  查看版本 php -v ...

  6. About IndexDB

    http://blog.csdn.net/bd_zengxinxin/article/details/7758317 HTML5 - Storage 客户端存储 http://html5demos.t ...

  7. 「NOI 2018」归程「Kruskal 重构树」

    题解 Kruskal重构树:每次一条边连接两个集合,建一个新点,点权为该边边权:把这两个集合的根连向新点. 性质:(如果求的是最大生成树)叶子结点是图中实际结点:叶子到根路径上点权递减:两点间lca的 ...

  8. php安装扩展的地址

    1 查看扩展 phpinfo  or extention_loads  or php -m 下载扩展地址 http://pecl.php.net     or http://windows.php.n ...

  9. saltstack运维工具

    salt介绍 saltstack是由thomas Hatch于2011年创建的一个开源项目,设计初衷是为了实现一个快速的远程执行系统. salt强大吗 系统管理员日常会进行大量的重复性操作,例如安装软 ...

  10. 黑马vue---46、vue使用过渡类名实现动画

    黑马vue---46.vue使用过渡类名实现动画 一.总结 一句话总结: vue动画的过渡类名的时间点中没有设置样式的话就是默认的样式 使用 transition 元素,把 需要被动画控制的元素,包裹 ...