如何在ARM平台上开发低功耗的软件系统.doc

如何在ARM平台上开发低功耗的软件系统.doc

ID:55281702

大小:209.50 KB

页数:8页

时间:2020-05-09

如何在ARM平台上开发低功耗的软件系统.doc_第1页
如何在ARM平台上开发低功耗的软件系统.doc_第2页
如何在ARM平台上开发低功耗的软件系统.doc_第3页
如何在ARM平台上开发低功耗的软件系统.doc_第4页
如何在ARM平台上开发低功耗的软件系统.doc_第5页
资源描述:

《如何在ARM平台上开发低功耗的软件系统.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、如何在ARM平台上开发低功耗的软件系统我们这些软件工程师都热衷于为我们遇到的问题找出完美的解决方案。但奇怪的是,我们会发现在这个特定的领域,没有一个完美的解决方案。聪明的技巧可能会节省一些功率,但是这个领域是由其他更简单的因素支配的。就象房间里有几头很大的大象,我们必须要先小心翼翼地猎取我们可以看到的大象,然后再花精力去猎捕体型小的动物。在考量某个系统的功耗时,重要的是要弄清楚我们实际测量的对象是什么。我们说的“节省功耗”可能意味着几个方面。它意味着“功率”还是“能量”。实际上,我们既需要功率也需要能量。大多数手持便携式设备

2、均具有以下两个不同的预算:功率预算——它管理着瞬间功耗、避免过热或产生热应力,而能量预算则管理着长期使用的能量总数。而软件则需要满足短期的功率预算和长期的能量预算。很明显,我们可以把任何设备的功耗降低到接近零,只要不让它做任何操作或任何有意义的操作即可!不得已的是,实现有用的功能就需要耗费能量。因此,我们只能在有意义的操作和节能二者中不断采取折衷方案。为了实现所需的功能,我们必须耗能;但我们必须尽量确保以节能的方式来实现这些功能。功耗时间积   有关该主题的学术材料中常用的更好度量方式是采用“功耗时间积”。尽管既没有标准单位

3、也没有具体方法,但是这种度量方式将能耗和性能度量结合到了一起。增加能耗或降低性能会增加功耗时间积的值,因此我们的目标是找出最低的可接受的功耗时间积的值,换句话说,最低的能耗要与允许的时间内所需任务的执行保持一致。能量去哪儿了?所有计算器械均会执行两个基本功能。这两个功能都是必需的,没有这两个功能就不能完成任何有意义的任务。我们首先想到的自然是计算或数据处理。通常,计算是对机器寄存器中保存的值实施的操作。为了尽可能高效地实施计算任务,我们需要在最短的时间内执行最少的指令。最重要的是,高效计算允许以下二选一:要么我们可以早点完成

4、计算去睡觉,要么我们调慢时钟且仍然在规定时间内完成计算任务。这里经常被人忽视的是数据通信(数据移动)。在大多数架构中(ARM采用加载/存储架构,也不例外),数据移动是必需的。如果不将信息从一个位置移动到另一个位置且经常返回原来的位置,用户就无法处理任何信息。例如,内存中的值需要移动到寄存器中进行处理,然后把结果写回到内存中。但是哪个耗用的能量更多呢?最大的偿付在哪儿?图1显示了普遍存在的事实,与程序有关的内存存取操作中有大约60%是指令抓取,另外40%才是数据存取。图1:内存存取分布图2:内存存取能耗图2显示了ARM进行的一

5、些研究。如果执行一条指令的能耗是1,那么,紧耦合存储器(TCM)存取的能耗约为1/25,缓存存取的能耗大约为1/6。而外部RAM存取的能耗则是指令执行能耗的7倍。换言之,对于每次外部RAM存取所用的能耗,我们可以执行7条指令,40次缓存存取或大约170次TCM存取。计算廉价但通信昂贵因此,似乎数据移动要比数据处理更昂贵。因此,第一头大象就是数据效率。我们可以为内存存取的能耗管理提出两个规则。近距离-从能量角度讲,内存越靠近核心,访问内存的相对能耗越低。少存取-减少内存存取次数比减少指令数量更加重要。充分利用片上存储器从我们的

6、能量图可以清楚地看出,TCM是到目前为止系统具有的最高效存储器类型。不是所有的系统均具有ARM称为TCM的存储器(通过专用和优化的接口连接到内核),但是大部分系统至少具有某种片上快速存储器类型。为了便于讨论,我们指的是常见的片上存储器(SPM)。假定SPM单次存取能耗大约是外部RAM存取能耗的1/170,充分利用这种SPM存储器应该是首选。图3:SPM的能量优势图3中的图表显示了简单的“多类”基准,甚至128个字节的SPM区域都可以减少大约一半的功耗。1k字节的存储器最大可减少70%的功耗。本次研究(Marwedel,200

7、4)中采用的方法是从外部RAM到SPM动态重定位代码和数据片段。甚至在按需移动各项开销方面,不仅降低了能耗,性能也提高了大约60%。很显然,我们在某个点上正在损失回报。这种情况下,SPM超过1k时,性能提升幅度变缓,系统总能耗也会稍微升高。在这里,我们实际上在承担这种特定应用无法使用的SPM能耗,因为这种应用程序本身并不够大。您还可以注意到,在结合了所使用的分配算法时,这种特定的应用无法使用小于64字节的SPM区域,因为没有足够小的可用片段与之相配。本次研究中还展示了一个更加成熟的算法,可以在最佳状况下节省能耗可以超过80%

8、。永远做缓存友好的事分析缓存优点有时可能比分析SPM优点更加复杂。一方面,缓存基本上是自我管理的。另一方面,缓存不是对单个存储位置进行操作,而是对固定大小的“线路”进行操作。因此,访问单个可缓存的存储位置可能加载整条线路,从而造成突发的内存存取。如果该附加的数据从未被访问过,则所消耗的能量

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。