Compiler construction 编译器c代码,优化低功耗

Compiler construction 编译器c代码,优化低功耗,compiler-construction,energy,Compiler Construction,Energy,我想做一个嵌入式“C”代码编译,它可以选择以最小的功耗执行程序,传统的编译器可以优化速度或大小。这意味着编译器将优化地址线和数据线上的逻辑切换次数,因为每个切换都会激发能量 祝你在这个目标上好运(开发你自己的C编译器,优化能源;你应该获得博士学位)。您或许可以尝试使用来为此进行自定义 另见项目;但我想你不应该期望很快就能找到一个神奇的、自动优化低功耗的编译器。它应该是一个完整的程序优化。(您可能需要一些辅助的、半自动的优化) 在许多硬件设备中,大部分的能量都被CPU消耗掉了。例如,在智能手机中,

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

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

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


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

这是一个值得称赞的目标,并且根据您的硬件的最新情况而定。我认为你不能为旧的硬件做太多。我也不认为优化逻辑切换(以最小化泄漏电流?)会给你带来很多好处,除非你的程序非常简单和非常小。你是否做过任何实验来验证你是否能获得显著的收益

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


我正在做一个关于如何编写节能软件应用程序的演讲。我不能把它传给你,因为它还没有出版。我希望在接下来的几个月里就同一主题写一系列博客。如果你想在英特尔软件网站上找我,我还写过其他关于软件和能源效率的文章。作为警告,我大部分与能源相关的工作都是在英特尔GP和HPC处理器上进行的。这些原则仍然适用于英特尔移动处理器和其他面向移动和低功耗嵌入式市场的现代处理器体系结构

这对你很好,你的问题是什么?编译器只能对它给出的代码做这么多-通过优化你的代码,你可能可以实现更大的功耗降低-不必要的计算和I/O越少,你使用的功耗就越小。作为一个起点,如果我有一个从32到0的程序,我想减少所需的能量;下面的程序2将功耗分散在微处理器周围,因为最低有效位没有被重击!。我可能也可以将我的CPU时钟速度从5Ghz提高到50Ghz,因为没有LSB振荡!(x=32;x!=0;x--)的程序1;程序2–同样的事情。x=0x8000000;do{x=x>>1;}当(x)–gary 33分钟前作为起点时,我需要一个微控制器硅的模拟模型–内部磁道电容和泄漏电流–以及一个带跟踪内存的完整调试仿真器。我将跟踪文件放入仿真模型,运行程序的理论功率以焦耳为单位计算。然后我可以调整我的程序代码以消除明显的浪费;b=0x5555;c=0xaaaa;优化后,代码行已四处移动:a=0xaaaa;c=0xaaaa;b=0x5555;