我是一名关注电流消耗的软件工程师。
我知道有一些方法可以减少程序的电流消耗,例如:
使用
hlt
禁用 CPU 直到下一个中断的指令也许避免使用浮点数,这样 FPU 就不会抖动
我想知道是否可以估计单个指令的当前消耗,以便理论编译器可以选择消耗更少功率的指令。现有的编译器通常可以针对速度或大小进行优化,但我从未见过可以针对电流消耗进行优化的编译器。也许没人考虑过,也许没人研究过每一条指令,也许实际上是不可能的。
但考虑例如一些 NMOS 处理器,如早期的 6502。根据我的直觉,从 0xff 中减去 0xff 会比从 0x01 中减去 0x01 消耗更多的功率,因为我认为 ALU 的输入需要更多地预充电。但是,如果有人能告诉我,我对电子产品几乎一无所知,我将不胜感激
a) 我的直觉是正确的
b) 如果您知道 CPU 处于什么状态,那么估计 CPU 指令的当前消耗是很实用的,这样您就可以准确地知道指令在做什么。