嵌入式系统中外围器件的能耗估算方法

发布者:转眼人老最新更新时间:2012-03-31 来源: 电子工程专辑 关键字:嵌入式系统  外围器件  能耗估算 手机看文章 扫描二维码
随时随地手机看文章

在目前的嵌入式系统中,外围器件是造成大量能耗的主要原因,本文介绍一种精确到每个周期的外围器件的能耗计算方法,利用它可以计算轮询、I/O中断和直接存储器存取(DMA)过程的能耗,由此得出整个软件运行的能耗曲线,让软件设计工程师可确定在程序流中的哪一程序段正在消耗大量的功率,因而可以从软件设计角度优化嵌入式产品设计。

在嵌入式系统中,能量的大部分被音频、视频和无线连接这样的外围器件所消耗,本文介绍了一种精确到每个周期的能耗曲线的测试工具。通过能耗曲线,软件设计工程师可确定在程序流中的哪一程序段正在消耗大量的功率。

 

在处理器和外围器件之间有两种不同类型的通讯协议,即轮询和基于中断的通讯。采用DMA可以使内存和外围器件之间直接访问。各个I/O元件是以不同的运行模式工作的,对于各个模式,每一个周期值的相应能耗可由制造商的数据表中所给的功率及性能值计算出来。下面本文将从能耗优化问题的提出、方法和仿真结果三个方面讨论嵌入式系统中外围器件的能耗估算问题。

能耗优化问题的提出

过去,大量的研究工作仅单独考虑处理器的能耗,在当前的嵌入式系统中,处理器在总能耗预算中占有限的比率,有一些研究工作探讨了处理器和内存之间的存储和通迅系统的能耗优化问题。但是,目前的便携嵌入式系统常运行多媒体应用,该应用需要多种外围器件,像音频和无线连接这样的外围器件对能耗就有很大影响,对于无线连接,其影响可达到总系统能耗的60%。

有人提出了一种用于优化外围器件及其驱动器的方法,他用事件驱动的有限状态机附加约束和综合模式来定义器件驱动器的行为,器件驱动器用给定的约束条件自动合成,其目的是自动建立与器件驱动器无关的平台,该平台可很容易地被映射为专用平台,但是问题在于没有提出考虑了外围器件的系统级能耗仿真器。

本文介绍的能耗驱动的优化方法对外围器件进行精确到每个周期的能耗仿真,用于这类器件的能耗模型由制造商所提供的数据表建立。精确到每个周期的仿真器(cycle accurate simulator)可仿真MP3音频重放或MPEG视频等先进的嵌入式系统的实时应用。本文介绍的能耗曲线能够显示包括外围器件的每个硬件元件(如处理器)上每个软件程序段所消耗的能量,由此得出总的系统能耗曲线。 [page]

能耗估算的方法

 

如图1所示,典型的嵌入式系统由计算机、存储器、外围器件和功率驱动器组成。本文介绍了用于外围器件的通用的精确到每个周期的能耗和性能模型。目前的系统中有两种通常所使用的外围操作类型:1. 在CPU中采用特定的I/O指令来激活外围器件;2. 采用被影射的存储器I/O,此时,一部分地址空间被分配到I/O驱动器,处理器通过读取和写入这些地址和与器件通讯。图2所示为采用不同通讯方案的外围器件的抽象行为。

外围器件有两种方式将信号返回到CPU:轮询和中断。

1. 轮询方式

外围器件将数据写入状态寄存器并且处理器会周期地检查状态寄存器。轮询的优点是易于实现并且处理器始终处于控制状态,其缺点是轮询会导致CPU时间开销大且能耗增加。作为存储器读和状态检查循环中的一个环节,轮询是在一个精确到每个周期的仿真器内实现的,轮询要进行到所需的外围器件状态被满足时才会结束。在这个过程当中CPU一直处于工作状态。

2. 中断方式

当外围器件要占用处理器周期时,外围器件产生I/O中断,其优点在于仅仅当需要的时候,才会占用处理器。相应地需要特殊的硬件来创建和检测中断。此外,对每一个中断,处理器都要存储其状态,这是在具有一个中断程序和一个在仿真器内,延迟被精确到每个周期的仿真器上实现的。在被中断之前,处量器将会处于空闲状态或运行其它的任务。

中断的一个常用案例是直接存储器存取(DMA)。如果处理器正好是内存与外围器件之间的传媒,DMA就非常有帮助,在这样的情况下,DMA可使内存与外围器件直接通信,DMA控制器是通信的主控单元,且通讯在处理器外部完成,当传输完成后处理器再次处于空闲状态。

我们实现了一个通用存储器映射外围器件能耗模型,因为目前系统实现中存储器映射I/O的应用非常普遍。此外,还实现了处理器与外围器件间的轮询、基于中断的通讯和DMA通信。处围器件的能耗与性能模型被输入到ARMulator ,它是一种商用ARM处理器的性能仿真器。向ARMulator增加新的模块的时候,设计工程师必需为每一个系统元件创建简单的精确到每个周期的功能和性能模型,然后,应用软件可由所提供的编译器交叉编译,并且编译后的软件被载入仿真器,从而取得性能统计信息,要加入每个元件的精确到每个周期的模型,能耗模型是以元件制造商所提供的数据表为根据创建的。我们引用了Simunic et. al. 提出的能耗模型。

仿真器结构如图1所示。在每个周期中,ARMulator向外部模块发送有关处理器状态、数据和地址总线值的信息。处理器周期可分为两组:1. 当处理器正在运行的工作周期;2. 当处理器正在等待内存和外围器件访问的空闲周期。利用由ARMulator提供的有关处理器状态、地址和数据总线的信息,每个模块确定其状态和在该状态下的能耗。每一个总线的开关行为以每个周期为单位来计算。总线上的能耗以总线电容和开关行为来计算。两种功率器件都由功效表来计算能耗。如等式1所示,每一个周期的总能耗是各个元件能耗值的总和。





 

能耗和性能Profiler工具用于获取特殊硬件单元及总系统的每个软件程序段的能耗的分布情况。在每个周期中, Profiler工具决定当前执行程序并将这一周期与前一周期间的能耗添加到该程序段的能耗中。Profiler工具周期频率在代码执行前由用户确定。最后,Profiler以百分数形式报告能耗分布情况。[page]

外围器件的能耗估算

下面以一个在仿真器中实现的外围系统为例,说明如何估算能耗分布的情况,该仿真器由一个作为I/O控制器的协处理器和一个作为音频模块的ADC转换器组成,它们结合在一起来驱动如麦克风或扬声器这样的音频器件。这些外围器件是便携式MP3拨放器这样的嵌入式系统中的典型配置。

1. I/O 控制器

I/O 控制器接收来自处理器的数据并把它转换为外围器件硬件所需的格式。在某些系统中,协处理器的作用是I/O控制器,在其它情况中用现场可编程阵列(FPGA) 或 ASIC,甚至在一些情况下用主处理器担任I/O控制器的功能。I/O控制器可与DMA直接通讯,以减少内联开关行为,并把主处理器释放出来处理其它任务。I/O控制器的高级模型如图3所示。

在模型中,协处理器队列可与处理器、内存和位于队列与音频/视频器件间的通讯信道进行通讯。当内存访问完成,协处理器将产生一个中断来激活处理器。如果操作正在记录到内存上,DMA控制等待直到FIFO被填充到一个用户定义的门限值,然后使用突发存取模式将数据写入到存储器。当系统正利用DMA从存储器播放音频/视频数据时,存储器把一串数据写入FIFO。通过突发存取模式可以减少总线操作时间,也减少了地址总线上的能耗。

I/O控制器能耗模型由制造商所给的数据表所产生。协处理器的有两种电源模式:激活和空闲模式。采用数据表中的电源电压和电流信息,由等式2可求得每个模式的等效电容值:





 

在激活模式中,通过这个电容可由等式3计算每个周期的能耗:





 

 

当不访问外围器件时,协处理器处于空闲模式。此时,可由等式4计算出每个协处理器周期的协处理器能耗:





 

 

Ncoproc是总线频率与协处理器频率的比率。 [page]

2. 音频模块

音频器件有待机、数模和模数转换三种工作模式。对于每一个模式,都要用器件的电源电压、电流和时钟频率来计算相应的电容。用于计算电容的等式与等式2相似。用于每个模式的每个周期能耗是通过等式5加以计算的:





 

Naud是总线频率与音频器件时钟频率的比率。

造成能耗大的另一个因素是语音器件,这些器件包括扬声器、耳机和麦克风。它们的模型是一个电容或一个电阻或两者的并联。等式6显示语音器件上每个音频采样的能耗:





 

 

Rdev 和 Cdev是语音器件的电阻和电容参数,faudio 是音频频率, △V是连续采样之间的电压差,Vsample是采样的电压,等式7为Vsample的计算公式:





 

在数模或模数转换器中模拟电压与数字数据值成比例,在等式7中给出了由数字采样值dsample计算相应的模拟电压的公式。音频模块与I/O控制器之间互联的能耗损失通过互联电容、电压和开关频率来计算的。如果互联的长度是已知的,可通过硬件平台的材料特性来计算出电容。每个采样的开关频率由每个周期上仿真器来获得。等式8表明每个音频采样所产生的互联能耗:





测试实例

为检验上述方法,我们以一个音频器件驱动器为例。器件驱动器可以记录和播放语音。当记录(播放)时,器件驱动器通过轮询接收 (发送)来自外围器件的数据。轮询完成后确定在I/O控制器队列是否为空的(不是满的)。如果不是空的(不是满的),处理器则从队列读取(写入)一个数据。如是队列是空的(满的),处理器就继续检查队列直到队列中存在一些数据(空间)。持续这个过程,直到所有的采样被记录(播放)才结束。

 

能耗曲线描绘工具显示(表1)了持续的队列状态检查所耗费的能量。能耗曲线表明:默认音频驱动器仅有3%的能量用于音频数据传输,而96%的能量浪费在轮询上。此外,采用处理器作为媒介来在存储器和器件间发送数据会产生额外的总线开关动作,因此,要重新设计了这个器件驱动器。

新的器件驱动器运用DMA在存储器与I/O控制器之间进行通信。当操作完成或当DMA访问的数据极限达到时,以中断方式通知处理器。表2所示的能耗曲线描绘工具显示结果表明:几乎所有的系统能耗都消耗在实际的DMA数据传输当中。

本文小结

本文介绍了一种用于估算在嵌入式系统中外围器件能耗曲线的方法。我们开发了一种精确到每个周期的仿真器和Profiler工具来估算外围器件的能耗。Profiler工具可使驱动器软件最优化。仿真表明:外围器件与嵌入式系统的其它部分的通讯的能耗占总系统的能耗的70- 75%,通过改变I/O控制器、主CPU和存储器之间的通讯协议,可以使音频驱动器的能耗减少了57%。

关键字:嵌入式系统  外围器件  能耗估算 引用地址:嵌入式系统中外围器件的能耗估算方法

上一篇:基于J2ME的嵌入式移动数据库应用系统设计
下一篇:MOXA嵌入式计算机在变电站综合自动化中的解决方案

推荐阅读最新更新时间:2024-05-02 21:59

基于GPRS的嵌入式系统远程监控和升级
   通用分组无线服务技术GPRS(General Packet Radio Service)是一种移动数据业务,该技术能满足日常网络行为,具有广域覆盖、高速传输等优点。野外作业的数据采集嵌入式系统工作于偏远无人地区,通常这些采集系统基于GPRS无线网络来传输远程数据,但系统的维护和升级受到距离和环境的较大限制,不但成本高,而且周期长。  为实现远程监测和升级野外作业嵌入式系统,本文提出一种基于GPRS网络、以电子邮件为载体的嵌入式系统远程监控和升级方案,达到远程修改系统参数、索取系统自检报告、索取指定数据文件和升级系统主控程序等目的,实现嵌入式系统的远程监控与升级。    与目前大多数嵌入式系统远程监控和升级的途径相比,
[嵌入式]
基于QT/E的ARM/DSP嵌入式系统的直流电机监控界面的设计与实现
   摘要:以嵌入式微处理器ARM&DSP主从控制模式下设计直流电机控制系统,重点介绍基于QT/Embedded设计的直流电机监控系统界面,包括串口通讯和电机控制。搭建基于嵌入式操作系统Linux的开发环境,采用C++语言进行应用程序界面的开发,根据基于串口的应用层协议,实现主从控制器间的数据通信。并完成Linux操作系统的移植,通过触摸屏实现人机交互。 关键词:S3C2440; TMS320F2812 :Linux;QT/Embedded;直流电机;图形化用户界面 0 引言     嵌入式技术在机器人控制领域应用广泛,它集中了机械工程、自动化控制以及人工智能等多门学科的最新科研成果,已经成为当前科技研究和应用的焦点与重心。而机器
[工业控制]
基于QT/E的ARM/DSP<font color='red'>嵌入式系统</font>的直流电机监控界面的设计与实现
基于CPCI的嵌入式系统的电源设计
嵌入式 系统广泛应用于 控制 和通信领域。而这些系统运行速度高,系统较复杂,常常集成超大规模 FPGA 器件、DSP器件、DDR存储器以及各种 接口 电路 。这对 电源 的输出电压值、功耗、电压精度、上电顺序以及 电源 完整性提出更高的要求。这里介绍一种基于CPCI的 嵌入式 单板计算机电源的设计方案。该设计主要应用于航空设备和军用车载设备。 2 系统电源需求分析与器件造型 图1为系统整体结构框图。该系统由CPU和与其相连的DDR储存器、PCI接口、时钟、电源、EBC 总线 以及外部接口电路组成。CPU采用AMCC公司的PowerPC 440EPx。 2.1 系统电源需求 该系统电源较复杂,有多达8种不同的电源电压值,
[电源管理]
基于物联网的嵌入式以太网终端平台设计与实现
物联网是在互联网的基础上,将用户与物品或者物品与物品用互联网进行连接,并通过互联网进行信息交换和通信的一种概念。物联网主要通过信息采集设备以及能够将这些信息采集设备接入互联网的终端平台来实现。近年来,嵌入式系统以其功能完善,设计方案灵活,功耗可控制等特点,已广泛应用于生活、商业、医疗以及工业等各个领域。比起通用计算机来,嵌入式系统具有针对性更强、体积更 小,成本更低等优点,是物联网领域应用设计的首选方案。对于一些数据量不大,传输速率要求不高的应用,要考虑用较低的成本实现最可靠的物联网服务。 一. 平台硬件设计 1.1 平台结构及原理 该平台采用ATMEL公司AT91SAM7X512处理器作为主控芯片,该处理器内部集成了以太
[单片机]
基于物联网的嵌入式以太网终端平台设计与实现
嵌入式系统的VxWorks安全性问题研究
引 言     实时嵌入式系统与网络的结合以及高可信覆盖网络的发展使得嵌入式实时操作系统的安全性问题日益突出。提高实时嵌入式系统的安全性和可靠性是未来实时嵌入式系统发展的重要方向之一。VxWorks是一个运行在目标机上的高性能、可裁剪的嵌入式实时操作系统。该系统以其良好的可靠性和卓越的实时性被广泛应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中。VxWorks系统在安全方面未作任何处理。针对这一问题,本文在分析现有嵌入式安全操作系统构建原理及技术的基础上,提出了VxWorks安全内核,实现了基于多策略的强制访问控制等安全机制。测试表明,该安全内核不仅增强了VxWorks系统的安全性,而且对其实时性的影响较小。
[嵌入式]
在FPGA中植入嵌入式系统
就像杂技表演需要平衡一样,电子产品的开发同样需要在尽量嵌入更多智能设计和创建、实现并测试应用程序所需的时间之间寻找平衡。电子设计不断朝抽象度更高的方向发展,以确保能有效解决越来越复杂的设计问题。 在采用 微处理器 和数字设计的范例中,可以将一些设计从硬连接器件转移到易于移植和易于更新的软件领域,这样就可以在一个“软”环境中处理复杂问题。在整个设计过程中,“软”环境一直都很灵活且容易改变。 如今,由于可编程器件(如 FPGA )容量大、性能高、成本相对较低的特性,这种平衡又在发生变化,以前硬件设计元素(如处理器及其外围器件和逻辑块)也可以转移到软领域(图1)。因此,在整个开发周期内,灵活性可能更大,更改关键设计也更加方便,比如可以
[应用]
嵌入式系统中可配置式GPIO模拟SPI总线方法
在嵌入式系统处理器中有相当一部分处理器不带SPI接口,但基丁SPI接口的设备非常丰富,此外,SPI设备的不同以及处理器对GPIO口位寻址是否支持各处理器各有不同,因而不同处理器中软件模拟GPIO也各不相同。若能提供一种通用可配置可移植的GPIO模拟SPI总线的驱动则能很方便快捷的访问SPI设备,从而提高整个嵌入式系统的开发效率。本文针对GPIO口位寻址与否给出方面,给出了一种可配置GPIO模拟SPI总线的方法并详细介绍了其设计与实现过程,且具有代码小可移植性强使用方便等特点。 1 GPIO规范 SPI是一个全双工的串行接口。它设计成可以在一个给定总线上处理多个互联的主机和从机。在一定数据传输过程中,接口上只能有一个丰机和一个从
[工业控制]
C语言嵌入式系统编程修炼之五:键盘操作!
处理功能键   功能键的问题在于,用户界面并非固定的,用户功能键的选择将使屏幕画面处于不同的显示状态下。例如,主画面如图1: 图1 主画面   当用户在设置XX上按下Enter键之后,画面就切换到了设置XX的界面,如图2: 图2 切换到设置XX画面   程序如何判断用户处于哪一画面,并在该画面的程序状态下调用对应的功能键处理函数,而且保证良好的结构,是一个值得思考的问题。   让我们来看看WIN32编程中用到的 窗口 概念,当消息(message)被发送给不同窗口的时候,该窗口的消息处理函数(是一个callback函数)最终被调用,而在该窗口的
[单片机]
C语言<font color='red'>嵌入式系统</font>编程修炼之五:键盘操作!
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved