通常认为,更快的代码会消耗较少的功率,因为您可以将CPU置于空闲状态更长的时间,但是当我们谈论能耗时,可能会出现以下情况:
假设有一条指令序列在1ms内执行,在执行过程中平均电流消耗为40mA。 。并且您的Vdd为3.3V
因此消耗的总能量= V * I * t = 3.3 * 40 * 10 ^ -3 * 1 * 10 ^ -3焦耳= 13.2 * 10 ^ -6焦耳
在另一种情况下,有一条指令序列在2ms内执行,并且在执行过程中平均电流消耗为15mA。 。且Vdd为3.3V
因此消耗的总能量= V * I * t = 3.3 * 15 * 10 ^ -3 * 2 * 10 ^ -3焦耳= 9.9 * 10 ^ -6焦耳
所以问题来了。 ..是否有任何架构具有不同的指令集,以不同的电流消耗执行同一任务?
如果有……那么,有没有编译器考虑到这一点并生成节能的代码?
最佳答案
我什么都不知道,但是我认为使用LLVM之类的编译器框架,通过调整指令调度器的加权算法,应该可以实现。
编辑:FOSDEM上有关于Energy Consumption Analytics in LLVM的讨论。
关于compiler-construction - 有谁知道可以优化代码以降低嵌入式设备能耗的编译器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4746410/