【发布时间】:2011-06-12 09:31:39
【问题描述】:
一般认为更快的代码会消耗更少的能量,因为您可以将 CPU 置于空闲状态更长的时间,但是当我们谈论能量消耗时,有以下一种可能性:
假设有一个指令序列在 1ms 内执行,在执行过程中平均电流消耗为 40mA。 .你的Vdd是3.3V
所以总能量消耗 = V*I*t = 3.3 * 40*10^-3 * 1*10^-3 焦耳 = 13.2*10^-6 焦耳
在另一种情况下,有一个指令序列在 2ms 内执行,在执行过程中平均电流消耗为 15mA。 .and Vdd 为 3.3V
所以消耗的总能量 = V*I*t = 3.3 * 15*10^-3 * 2*10^-3 焦耳 = 9.9*10^-6 焦耳
所以问题来了。 ...是否有任何架构具有不同的指令集来执行具有不同电流消耗的相同任务?
如果有...那么是否有任何编译器会考虑到这一点并生成节能的代码?
【问题讨论】:
-
一个例子是除以 2 的幂,这可以通过右移来完成。除法和右移都需要 x86 上的一条指令,但我几乎可以肯定右移将使用更简单的电路,从而消耗更少的内存。这是最简单的例子,但我不知道有哪个编译器可以精确优化能耗,也没有任何处理器的数据表隐含提及特定指令的数据消耗。
-
顺便说一句,你看到那些赞成票了吗?那是因为这个问题很好。
标签: compiler-construction computer-architecture energy