请问如何估计CPU功耗
时间:10-02
整理:3721RD
点击:
假设我们设计了一个专用数字电路来实现一种特定的软件算法。
虽然我们的数字电路最快只能跑100MHz (实验室的台式机CPU是2.2GHz),但是计算的run-time还是比CPU上跑C语言代码要短。
我可以用synopsys工具来得出100MHz下的power
有两个问题:
1.请问synopsys得出的是average power吗?我可否用 power*run-time 来估计消耗的 energy?
2.请问有没有什么方法来得到实验室台式机上跑C代码所用到的power和energy? 假如可以知道CPU跑该C代码时的average power,可以用power*run-time来估计energy吗?
(我不需要准确的测量,只是合理一些的估计,最后证明我们的design比CPU省电很多。写文章时吹牛用的)
虽然我们的数字电路最快只能跑100MHz (实验室的台式机CPU是2.2GHz),但是计算的run-time还是比CPU上跑C语言代码要短。
我可以用synopsys工具来得出100MHz下的power
有两个问题:
1.请问synopsys得出的是average power吗?我可否用 power*run-time 来估计消耗的 energy?
2.请问有没有什么方法来得到实验室台式机上跑C代码所用到的power和energy? 假如可以知道CPU跑该C代码时的average power,可以用power*run-time来估计energy吗?
(我不需要准确的测量,只是合理一些的估计,最后证明我们的design比CPU省电很多。写文章时吹牛用的)
请高手们支个招啊,谢谢啊
单个等效电容动态功耗=(1/2) x F x C x V x V;总功耗跟电路门数,工作频率,电压都有关系。
PC上功耗不用比,intel的CPU频率跟电路门数跟你的都不在一个量级,最好跟ARM或DSP这种嵌入式内核比较
不懂。
1. 如果你计算功耗时没有提供翻转文件,那边工具给出的就是average power。你也可以提供一个激励,得到一个翻转文件,然后用PT-PX得到这段激励对应的Power。
2. CPU的功耗估算方法本质上和专用数字电路是一样的。但显然你没有CPU的Verilog代码,所以只能用CPU厂家提供的功耗数据,乘上run-time,得到Power。但不同的程序确实功耗是不一样的,不过作为初步的评估,可以忽略这些因素。
我在网上查了一下,对于i-5 2400 4-core 3.2GHz的CPU,在用一个超级费电的并行benchmark所得到的peak power是95W。
但是我知道不可以用95/4来算单核串行benchmark的peak power,而且这不是我们需要的average power。
据说这个average power也是依赖于特定benchmark的。
请问如何能够不用power meter而通过软件工具或者specsheet来给出一个串行程序的average power的合理估计或者参考?
谢谢大侠了
