0

我想编译一个嵌入式“C”代码,它可以选择以最小的功率执行程序,传统编译器针对速度或大小进行了优化。这将意味着编译器将优化地址和数据线上的逻辑切换次数,因为每个切换都会产生电荷泵能量。

4

2 回答 2

0

这是一个值得称赞且实用的目标,具体取决于您的硬件有多新。我认为您无法为较旧的硬件做很多事情。我也不认为优化逻辑切换(以最小化泄漏电流?)除非您的程序非常非常简单且非常小,否则不会给您带来很多好处。你有没有做过任何实验来验证你可以获得显着的收益?

如果您使用更现代的硬件,就处理器和外围设备而言,您可以创建一个可以优化功耗的编译器。现代处理器和外围设备具有能量守恒状态。您可以重写代码以利用这些状态并显着减少能源使用量。此外,您必须考虑您的环境。处理器是一个主要的能源消耗者,尽管针对嵌入式市场的移动处理器(如手机)在减少处理器空闲时间的能源使用方面取得了长足的进步。

我正在就如何编写软件应用程序以提高能源效率的主题发表演讲。我不能把它传给你,因为它还没有出版。我希望在接下来的几个月里写一系列关于同一主题的博客。如果您想在英特尔软件网站上查找我,我已经完成了有关软件和能源效率的其他著作。需要注意的是,我与能源相关的大部分工作都是在英特尔 GP 和 HPC 处理器上进行的。这些原则仍然适用于面向移动和低功耗嵌入式市场的英特尔移动处理器和其他现代处理器架构。

于 2014-09-14T23:58:02.643 回答
0

祝你在这个目标上好运(开发你自己的 C 编译器优化能源;你应该获得博士学位)。您也许可以尝试使用MELT来为此目的定制GCC 。

另见MAGEEC项目;但我想你不应该期望很快找到一个编译器神奇地自动优化低功耗。应该是整个程序的优化。(您可能需要一些辅助的、半自动的优化)。

而且在许多硬件设备中,大部分功率都由 CPU 以外的其他东西消耗。例如,在智能手机中,消耗最多能量的是屏幕和通信(因此您应该优化这些)。事实上,您可能应该降低频率(以某些特定于应用程序的方式)。

于 2014-09-14T14:40:41.067 回答