对于单个周期 CPU 执行 ADD 命令需要多少能量

For a Single Cycle CPU How Much Energy Required For Execution Of ADD Command

问题很明显,如标题所述。我想知道这一点。有专家可以帮忙吗?

好的,这将是一个很长的答案,很长以至于我可以写一篇关于它的文章。奇怪的是,我一直在进行与您的问题密切相关的实验——确定现代处理器的每瓦性能。正如 Paul 和 Sneftel 所指出的,今天任何真正的架构都不可能做到这一点。如果您通过计算栅极泄漏和开关电流、电压等,在给定某种硅技术和某种 ALU 设计的情况下仅查看该指令的执行情况,则您可能可以计算出这一点。但这不是一个有用的值,因为有一些东西总是在任何比 8086 更新的处理器中(从硬件的角度来看)继续进行,并且自从流水线首次出现以来,指令还没有被孤立地执行。

今天,我们有多功能ALU、乱序执行、多流水线、超线程、分支预测、内存层次结构等,这与执行一个ADD命令有什么关系?用于执行一个 ADD 命令的能量不同于执行多个 ADD 命令。如果你围绕它包装一个程序,那么它会变得非常复杂。

答案排序:

让我们看看你能做什么。

  • 统计测量 运行一次又一次给定的添加。请记住,有许多不同类型的加法,例如整数加法、浮点数、双精度、带进位的加法,甚至还有同步加法 (SIMD) 等等。限制:操作系统和其他应用程序始终存在,但如果您知道如何,您可以 运行 在裸机上;因不同的硬件、硅技术、架构等而异;可能没有用,因为它与现实相去甚远,意义不大;测量设备的限制(使用处理器间 PMU,来自墙上的仪表,插入器插座等);内存层次结构;还有更多
  • 统计测量基于 integer/floating-point/double 的工作负载内核。这开始具有一定的意义,因为它对社区有意义。限制:仍然不真实;仍然因架构、硅技术、硬件等而异;测量设备限制;等等
  • 对实际应用进行统计测量。限制:与上述相同,但至少对社区有意义;电源状态在空闲期间发挥作用;潜在的集群问题开始发挥作用。

当我说 "Limits" 时,这只是意味着您需要很好地定义您的答案/实验的约束条件,而不是它没有用。

摘要:可以为一次添加得出一个值,但它不再真正意味着什么。表示任何事物的值要复杂得多,但很有用,需要大量工作才能找到。

顺便说一句,我确实认为这是一个很好且重要的问题 -- 部分原因是它看似简单。