【DSP开发技术】影响高性能DSP功耗的因素及其优化方法
影响高性能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的典型静态功耗在总功耗中所占的比例。
对于最新的基于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功耗的因素及其优化方法的更多相关文章
- DSP开发资源总结,经典书籍,论坛
OMAP4开发资源总结: 一.TI OMAP4官网介绍: http://www.ti.com.cn/general/cn/docs/wtbu/wtbuproductcontent.tsp?templa ...
- Android开发技术周报183学习记录
Android开发技术周报183学习记录 教程 Android性能优化来龙去脉总结 记录 一.性能问题常见 内存泄漏.频繁GC.耗电问题.OOM问题. 二.导致性能问题的原因 1.人为在ui线程中做了 ...
- 【DSP开发】解读TI的KeyStone II云技术应用
最近,德州仪器(TI)公司推出6款最新KeyStone II多核SoC,助力云应用.TI公司多核DSP中国市场开发经理蒋亚坚先生向媒体讲解了这6款KeyStone II新产品的特点与目标应用. ...
- 【DSP开发】德州仪器达芬奇五年之路七宗罪,嵌入式处理器架构之争决战2012
芯片是产业链上游重要的一个环节,一颗小小的芯片具有极高的技术含量和价值,半导体行业每年都会有一个各大厂商营业额的排名,除去2009年,常年盘踞在前三名位置的分别是英特尔,三星半导体和德州仪器,英特尔凭 ...
- DSP开发笔记一
前言 本笔记首先对DSP的特点及其选型进行了描述,然后重点记录DSP开发环境的搭建及基础工程示例,对为DSP开发新手有一定的指导作用. 1. DSP简介 1.1 主要特点 在一个指令周期内可完成一 ...
- 【ARM-Linux开发】【DSP开发】AM5728介绍
AM5728 Sitara Processors 1. 介绍 1.1 AM572x概述 AM572x是高性能,Sitara器件.以28nm技术集成: 结构设计主要考虑嵌入式应用,包括工业通讯,人 ...
- 【DSP开发】gel文件编写
以下转载自:http://blog.csdn.net/henhen2002/article/details/4573447 GEL--通用扩展语言,无类型语言,只有int类型,当CCS运行时首先执行这 ...
- 【DSP开发】【计算机视觉】TI 视觉软件开发套件ADAS
关键字:TI 视觉软件开发套件 ADAS 日前,德州仪器 (TI) 宣布推出其视觉软件开发套件(SDK),从而为开发人员提供了一款灵活的框架.一组丰富齐全的硬件设备驱动程序和一套适用的开发工具,可 ...
- Davinci DM6446开发攻略——DSP开发工程建立
前段时间一直忙一个项目,同时在生活上时时提防和抵抗中国地沟油.国外核心转基因调和油.大豆油.色拉油.大米玉米.可怕的喂药鱼.药水泡农药喷无虫咬的青菜,所以没时间打理自己的博客,让开发攻略停顿了一段时间 ...
随机推荐
- gRPC 到 JSON 代理生成器 grpc-gateway
grpc-gateway是protoc的插件,它读取protobuf服务定义并生成反向代理服务器,该服务将RESTful HTTP API转换为gRPC. 这个服务是根据你的服务定义中的google. ...
- Python 15__屏幕抓取
- npm源管理
1. 安装淘宝镜像 为了提高npm的安装速度,可以使用淘宝镜像. 使用淘宝镜像的方法有两种: 1. npm install -g cnpm --registry=https://registry.np ...
- pyecharts v1 版本 学习笔记 饼图,玫瑰图
饼图: 普通案例 from example.commons import Faker from pyecharts import options as opts from pyecharts.char ...
- python基础-跨域问题
跨域 -- 浏览器的同源策略 阻止ajax请求 不阻止src请求 -- jsonp -- 我们利用src发送请求 -- core -- class MyCore(MiddlewareMixin): d ...
- 【概率论】3-2:连续分布(Continuous Distributions)
title: [概率论]3-2:连续分布(Continuous Distributions) categories: Mathematic Probability keywords: Continuo ...
- 浅谈神经网络中的bias
1.什么是bias? 偏置单元(bias unit),在有些资料里也称为偏置项(bias term)或者截距项(intercept term),它其实就是函数的截距,与线性方程 y=wx+b 中的 b ...
- [python]打印异常信息的不同方式
异常捕获 try: execpt Exception as e: print(str(e)) 打印异常信息的方式 1.str(e) 返回字符串类型,只给出异常信息,不包括异常信息的类型,如1/0的异常 ...
- C# 窗体 类似framest 左侧点击右侧显示 左侧菜单右侧显示
首先托一个splitContainer调节大小位置 然后进行再新创建一个窗体名为add 在左侧拖入button按钮 进入代码阶段 更改属性 public Main() { InitializeComp ...
- springboot+mybatis+druid+sqlite/mysql/oracle
搭建springboot+mybatis+druid+sqlite/mysql/oracle附带测试 1.版本 springboot2.1.6 jdk1.8 2.最简springboot环境 http ...