2016-02-14 31 views
-2

有沒有一種方法可以估算ARM CPU上程序的能耗?在嵌入式系統中,能耗是最重要的參數之一,我想知道程序員是否有可能大致瞭解需要多少能量來運行該程序?如何估算ARM平臺上的程序所消耗的能量?

例如,由於對多個週期中執行的ARM CPU分割我想,使用分裂一個代碼將消耗更多的能量比不代碼。但是這種再生是非常直觀的,有沒有更好的方法來確定CPU執行代碼時消耗的能量?

+0

哪個平臺?我的手臂芯片甚至沒有電池。它運行在太陽能電池板上,如果太陽能不可用,則使用手提電箱。 –

+0

arm使內核不是芯片,儘管你知道的唯一方法就是採用特定的芯片和電路板和軟件來測量功耗,沒有別的辦法。 –

+0

有一篇關於計算能量/指令的舊ARM內核的文章,以及編譯器可以爲其優化的想法。對於大多數現代ARM CPU和系統來說,這不是一個因素。 DDR和其他外圍設備通常會使CPU變得更加矮小。 'div'和'mul'可能是由一張大桌子來完成的,這個大桌子需要大量的硅片,但是沒有太多的能量。對於多週期'mul',其計算時間長且需要更多能量。很大程度上取決於用於確切能量的晶體管。 –

回答

1

我不認爲有任何ARM特有的技巧在這裏(和「ARM」涵蓋了許許多多不同的東西反正)。您通常會查看您使用的各種不同電源狀態(運行,睡眠等)中的當前消耗情況,然後估計每個狀態花費的時間比例。這可以讓你計算平均電流/功率。

它通常不會太大的意義說「這個指令使用了大量的電能」 - 你可能反而更在乎的是「的指令序列花費了大量的時間來運行,所以我不能讓快回去睡吧'。

1

最近你會用現成的工具,得到的是類似http://ds.arm.com/ds-5/optimize/arm-energy-probe/

一般電池的運行系統具有通過sysfs的條目暴露,並能提供多少電流經過的電量計東西。認爲它像智能手機電池/充電指示器。這些通常不是可靠的,很難與確切的應用程序運行時間相關聯,但可能會給你一個粗略的估計。

相關問題