我想制作一个嵌入式"C"代码编译,它可以选择以最小的功率执行程序,传统编译器可以优化速度或大小。这意味着编译器将优化地址和数据线上的逻辑切换次数,因为每个切换都会泵送能量。
祝你在这个目标上好运(开发自己的C编译器优化能源;你应该获得博士学位)。您也许可以尝试使用MELT来定制GCC。
另见MAGEEC项目;但我想你不应该指望很快就能找到一个神奇的、自动优化低功耗的编译器。它应该是一个完整的程序优化。(您可能需要一些辅助的、半自动的优化)。
在许多硬件设备中,大部分功率都被CPU消耗掉了。例如,在智能手机中,屏幕和通信消耗的能量最大(所以你应该优化这些)。事实上,您可能应该降低频率(以某种特定于应用程序的方式)。
这是一个值得称赞的目标,而且很实用,这取决于你的硬件有多新。我认为你对旧硬件做不了什么。我也不认为优化逻辑切换(以最大限度地减少漏电流?)会给你带来很多好处,除非你的程序非常非常简单,非常非常小。你有没有做过任何实验来验证你可以获得显著的收益?
如果你使用的是更现代的硬件,在处理器和外围设备方面,你可以创建一个可以优化功耗的编译器。现代处理器和外围设备具有节能状态。您可以重写代码以利用这些状态,并显著减少能源使用。此外,你必须考虑你的环境。处理器是一个主要的能源消耗者,尽管以嵌入式市场为目标的移动处理器,如手机,在减少处理器空闲时间的能源使用方面取得了长足进步。
我将发表一篇关于如何编写节能软件应用程序的演讲。我不能把它传给你,因为它还没有出版。我希望在接下来的几个月里写一系列关于同一主题的博客。如果你想在英特尔软件网站上找我,我还写过其他关于软件和能源效率的文章。需要注意的是,我的大部分能源相关工作都是在英特尔GP和HPC处理器上进行的。这些原则仍然适用于英特尔移动处理器和其他面向移动和低功耗嵌入式市场的现代处理器体系结构。