微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 如何在ARM平台上开发低功耗的软件系统

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

时间:06-21 来源:互联网 点击:

PM使用与否、组件的电源周期等很大程度上都是操作系统架构和设备驱动程序来专门决定的。但是,应用程序员仍然有很多东西需要考虑。

研究已经表明,设计不良的进程间通信(I P C)会大大增加系统的能耗。一个简单的技术称为“矢量化”进程间通信,这种技术批量处理小的消息并把大量小的消息作为一个大的消息来发送,这样通常可以减少上下文的切换开销。另外,减少进程数量可明显降低进程间通信的需求。需要频繁通信的进程可以合并成一个进程。

在嵌入式Linux中运行的最近研究(Tan, 2003)表明,分析和合理设计进程间通信2 可以潜在改进能耗多达60%。

结论

尽管我已经强调了许多领域仍然属于学术研究范围,但我们现在还是可以做许多工作。结果相对比较简单:减少外部内存存取,减少指令执行,并在不使用某些单元时关掉它们。

在做出这个结论的同时,我想起了2 0 0 9年中期在一次培训课上与客户的一次谈话。这些客户关心如何在包含了N e o n的C or tex-A8平台上实现信号处理算法且想要知道个别指令的确切能耗。我解释说,实际上很多这种信息是未知的,而且不管在什么情况下,很难使用当前的工具得出这些信息。回顾上文,我们已经认识到在捕猎大象的这个长期任务中,这些信息都是无关紧要的。实际上,客户要捕猎的大象与房间中的其他大象相比,非常的小。不管是经过分析还是持续跟踪数据,都可以得出更好的建议,那就是估算每次实现中涉及的数据存取次数和类型。这样,再结合指令计数,可以做出更加明智的选择。与内存存取布置不良相比,个别指令的功耗几乎无关紧要。

我们这些软件开发人员要继续对学术和工具供应商施加压力,让他们在下一代工具中构建出这些功能。这不容易但将会实现。

最后,我必须提醒大家所有这些取决于您所用的系统、平台、应用程序、操作系统、电池和用户。就像俗话说的“优势各有不同”。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top