用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

嵌入式系统面向低功耗的协同设计

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 23:54:47
【本文由PB创新网为您整理】
摘要:在系统设计中,低功耗系统或低功耗协同设计系统并没作为一个整体在当前的研究中得到充分的重视。本文阐述在系统级设计中功耗的重要性,综述硬件低功耗、软件低功耗和通信低功耗的设计方法,并给出实现低功耗设计的一种可行方法。

    关键词:协同设计 硬件低功耗 软件低功耗 功耗估计

1 概述

对于当今的各种电子设备尤其是嵌入式系统来说,功耗是一个非常重要的问题。系统部件产生的热量和功耗成比例,为解决散热问题而采取的冷却措施进一步增加了整个系统的功耗。为了得到最好的结果,在设计初级阶段就要尽可能地考虑低功耗问题。

由于现在大部分数字系统都利用CMOS电路,因此,本文提出的思路和探讨领域,主要指CMOS电路。在CMOS电路里,功耗由下式决定:

Ptotal=Pstatic+Pshort+CswfV2dd+Pslitching    (1)

式(1)中,第一项静态功耗Pstatic是由漏电流消耗的,是在电路没有正常运转时产生的,对于CMOS电路来说,这个功耗很小;后三项称为动态功耗,javascript:window.open(this.src);" style="cursor:pointer;"/>Pshort是在门电路输出状态发生改变时两个CMOS晶体管同时导通产生的;第三项称为开关功耗,和时钟频率f、供电电压Vdd和开关电容Csw有关;最后一项Pglitching是由电路中不需要的开关动作产生的。从式(1)可以看出,在所有的功耗中,能够改进的部分只有开关功耗。在处理器上绑定任务将影响开关电容,选择不同处理器将影响频率和供电电压。本文所考虑的系统模型包括了常用的大部分结构:硬件部件(ASICs)、微处理器(DSPs、微控制器)、存储器和内部互连网络。这里互连网络不指一条总线,而是指多条总线和点到点的连接,甚至无线连接。

目前,对硬件的功耗估计可以在不同的抽象级别上进行:从慢而精确的门级功耗估计到快但不够精确的算法级估计。折衷速度和功耗、采用流水线技术、关断某些部件、减少开关活性等方法都是系统设计中经常使用的。

软件低功耗是一个较新的问题,主要是针对移动通信、无线通信等数字信号处理器(DSP)应用提出来的。软件功耗优化通常包括以下技术:存储器存取最小化、机器指令的最佳选择、开发处理器的低功耗特性等。软件功耗估计可以在两个基本的抽象级别上进行:在低级别上,门级指令处理系统中利用现有的门级和功耗估计工具;在高级别上,则利用每类指令或指令序列的执行频率来估计功耗。后一级方法不够准确,但比前一种速度快。

由于消耗在总线上的功耗占系统功耗的很大一部分,因此,低功耗通信综合也作为低功耗软件优化的一部分。在总线上,通常是通过采用冗余码编码来减少开关活性从而降低功耗的。

2 协同设计流程

在典型的软硬件协同设计过程中,javascript:window.open(this.src);" style="cursor:pointer;"/>与功耗相关的问题通常是在系统划分成硬件和软件两部分后才开始考虑的。虽然这种方法可以降低功耗,但真正地面向低功耗的协同设计过程则需要从划分开始就要考虑功耗,如图1所示。从设计流程初期就要考虑功耗和控制的原因,可以用下面的例子说明:假定个过程选择用软件来完成,软件的执行时间较长,但输出结果所用的通信时间短,这样就导致了高带宽,并占用总线。但同样的过程如果用硬件来实现,硬件的执行速度更快,从而允许更长的通信时间,并可以选择低功耗的总线编码策略。这样就降低了整个系统的功耗(因为通信过程非常耗能)。

2.1 输入和输出

如图1所示,协同设计过程的输入是系统规范,也就是通常所说的行为方式。通过设计得或自动工具软件可以将这个规范分解成通过虚拟通道通信的子过程。通过软硬件划分,其中一些子过程由硬件综合来实现,而另外的子过程将通过运行在处理器上的软件来完成。虚拟通道通常由总线、点到点的连接、共享存储器或其它类型的内部通信过程来实现。

到目前为止,研究者已提出了一些系统划分方法。每一个子过程是一个通过自动化工具从系统规范中提取的基本模块。个基本模块是一个指令序列,除了第一条或最后一条指令外,不允许跳入和跳出这个指令序列。虚拟通道仅用来完成与进程的上下文(例如存活期的变量)的通信。这种分解方法产生了大量小的子过程和密集的通信过程。另一种方法是由设计者明确地指明各个过程以及各模块之间通信的数据。用后一种方法,子过程的数量得到了控制,但却失去了增强并行性的潜能。将系统分解成通过通道相互通信的子系统以后,就可以得到图2所示的任务图。

图2中,每一个字节是一个子过程。每一条边是有向边,表示各过程之间的数据依赖性。从节点出发的有向边只有满足特定条件时才能完成通信。不同的有向边进入同一任务节点(称为联合节点),表示此任务要从不同的过程接收数据并且只有在数据接收完毕后才开始执行过程。
javascript:window.open(this.src);" style="cursor:pointer;"/>
    2.2 部件的选择和系统分区

设计者对运行软件的处理器、总线的数目和采用仲裁协议的类型通常有一个总体的思路,可以初步决定系统包含部件的数目和类型。最简单的结构就是各种硬件加速器:微处理器、ASIC和通过总线连接的主存。对于更加复杂的系统则需要不同种类的处理器、多个ASIC、各种总线和多种存储器。

一旦部件的数目和类型确定下来,进程就要用ASIC或运行在专用部件上的软件实现。虚拟通道要和总线紧密连接,多个过程能用同一个处理器开且多个通道也可以共享同一总线。根据ASIC的面积和处理器的价格,在保持性能不变的情况下,一个典型分区的目标就是使系统代价最小。在最坏情况下,所有的过程在单一的ASIC上实现;而在理想情况下,处理器在不需要额外硬件的情况下完成所有的工作。

低功耗分区的代价函数在系统上是硬件、软件和通信过程功耗估计的总和。在分区过程中,在满足给定速度面积条件下,这个函数应该达到最小值。

2.3 功耗估计

正如通信过程中的功耗估计一样,对于每一个任务不管用硬件还是软件实现,功耗估计都是非常重要。
javascript:window.open(this.src);" style="cursor:pointer;"/>
   

[1] [2]  下一页

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:8,203.12500 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号