嵌入式軟件的能耗優(yōu)化
技術(shù)動力:
開發(fā)由電池供電的設(shè)備,尤其是對設(shè)備的待機或操作時間要求比較嚴格的系統(tǒng),例如移動電話,降低系統(tǒng)整體的能耗變得越來越重要。 因此采取全面的措施來降低電池能量的消耗是設(shè)計電池供電設(shè)備的重要部分。
典型的節(jié)能措施包括:
1 選擇有節(jié)能屬性的元件
2 提高系統(tǒng)集成度
3 調(diào)整CPU主頻
4 調(diào)整電源供給
5 選擇帶節(jié)能屬性的、高速緩沖存儲器和片上內(nèi)存的微控制器
然而,只有通過軟件全程的控制各個消耗電池能量的組件,充分的發(fā)揮其硬件的節(jié)能屬性,才能達到最佳的節(jié)能效果。能耗是電流,電壓和時間的乘積,控制軟件對這幾個參數(shù)都有很大的影響。因此,軟件工程師需要經(jīng)常不斷的嘗試確定這三個參數(shù)在不同的操作模式下的最佳配置,以達到最佳的節(jié)能目的。例如工程師可能會問自己如下的問題:
1 微處理器是否工作在正確的節(jié)能模式
2 程序變更會如何影響系統(tǒng)的能耗
3 是否會出現(xiàn)任何未預料的能耗峰值
回答諸如此類的問題,需要一個測試裝置。該裝置需要可以測量、記錄和分析控制軟件的程序和數(shù)據(jù)流程,以及電流和電壓梯度。同時也可以以一種簡單的方式把所有的記錄信息相互關(guān)聯(lián)起來。 在2007年嵌入式世界年會上,作為全球第一款嵌入式軟件能耗分析工具生產(chǎn)廠商,勞特巴赫展示了一個強有力且易用的解決方案成功的解決了上述的所有問題。
技術(shù)要求:
為了可以定位出每行代碼的能耗量,需要收集如下的數(shù)據(jù)信息:
1 控制軟件的程序流,可以采用帶有實時跟蹤能力的調(diào)試器(PowerDebug)來采集該信息
2 程序運行時的電流和電壓梯度,帶有模擬/數(shù)字探頭的邏輯分析設(shè)備是比較適合此目的的測量設(shè)備。
有了這些數(shù)據(jù),主要的任務就在于如何才能把程序流、電流和電壓梯度的信息關(guān)聯(lián)起來。但是如果使用來自不同設(shè)備生產(chǎn)廠商的設(shè)備,即使可以把相關(guān)信息關(guān)聯(lián)起來,實際操作也將是十分復雜的,綜合數(shù)據(jù)的分析和統(tǒng)計同樣也是相當困難。
勞特巴赫嵌入式軟件能耗分析技術(shù)的創(chuàng)新核心就是提供上述問題的解決方案,并且開發(fā)出了適當?shù)模子玫男畔@示和分析方法。
解決方案:
勞特巴赫嵌入式軟件能耗測量方案,包括一個調(diào)試器模塊(PowerDebug)、實時跟蹤模塊(PowerTrace)和一個邏輯分析模塊(PowerIntergrator),每個模塊都集成了一個精確的時間計數(shù)器,所有模塊的記數(shù)器在程序開始時進行同步。每個模塊的記錄都有對應時間戳,因此各個模塊的記錄都可以通過時間戳關(guān)聯(lián)起來。這樣,就可以確定每行代碼的能耗。
為了獲取電流和電壓梯度數(shù)據(jù),TRACE32 PowerTrace II (跟蹤模塊) 或者 PowerIntegrator(邏輯分析模塊) 可以通過新型的Trace32 AnalogProbe 模塊擴展實現(xiàn)如下功能:
1 實時記錄4條電壓通道和3條電流通道信息
2 針對電流、電壓或能耗的限制值和測量范圍實時生成觸發(fā)事件
為了測量電流,在被測電路上需要一個分流電阻。該電阻上的壓降取決于電阻的大小和通過該電阻的電流。Trace32 AnalogProbe 可以測量/記錄分流電阻上的電壓值。這是一種種被許多評估平臺普遍采用和支持的測量方式。
電流、電壓和分流電阻阻值都可以通過如下用戶界面進行控制。由電流和電壓計算得出的能耗也可以在該用戶窗口進行控制,另外,用戶可以將電壓設(shè)置為固定值進行計算。
電流,電壓和能耗可以以表格和基于時間的曲線圖表示出來。所有基于時間的信息(程序流,圖表,電流,電壓,能耗)都能通過跟蹤信息同步起來。如果在其中一個窗口中選中/標記某一位置,其他所有窗口都自動的刷新窗口內(nèi)容,相應時間位置信息也被選中/標記出來。
在如下實例中,8 LEDs 被依次點亮,然后產(chǎn)生一個正弦電壓。如下面的電流-時間曲線圖(1)繪制出了電流值隨時間變化的波形,正弦電壓曲線如圖(2)所示。如果在電流圖(1)、電壓圖(2)或程序流圖(3)中,用黑色的垂直跟蹤線選中/標記函數(shù)“LED3_on“,系統(tǒng)會自動更新“Trace.List“窗口(4)中信息,顯示出相對應的記錄,并且就通過藍色水平條標記出來。
每次程序中止后,Trace32 軟件會自動對記錄信息進行統(tǒng)計分析,統(tǒng)計各個執(zhí)行函數(shù)消耗能量的最小值,最大值和平均值。以及每個函數(shù)絕對能耗及其占總能耗的百分比。通過這些統(tǒng)計數(shù)據(jù),可以方便地定位出耗能最大的程序代碼/函數(shù)。
數(shù)據(jù)統(tǒng)計分析可以顯示出每個函數(shù)運行時的耗能量。如下圖(5)可以清楚地看出函數(shù)“LED8_on“運行(所有LEDs都被點亮)時系統(tǒng)耗能量最大。
作為附加的功能,勞特巴赫還提供了觸發(fā)單元,可以通過定義電流、電壓或能量的限制值或范圍來定義觸發(fā)事件。這些觸發(fā)事件可以被觸發(fā)單元用來啟動和中止跟蹤記錄(Selective trace)的控制,或者用這些觸發(fā)信號中止程序的運行。這樣工程師可以方便快速的定位出相關(guān)參數(shù)出現(xiàn)峰值的原因。
總結(jié):
勞特巴赫完整的嵌入式軟件能耗分析測量方案為研發(fā)工程師檢測/定位程序代碼和系統(tǒng)電流/能耗之間的相互關(guān)系提供了一個強有力的、易用的工具。上述的新特性都已經(jīng)集成在當前的軟件環(huán)境中。相關(guān)的分析硬件也可以方便地在原有工具上通過擴展實現(xiàn)。同全球重要移動電話生產(chǎn)廠商長期緊密的合作,確保了勞特巴赫工具的實際應用效果。通過集成新的創(chuàng)新方案,勞特巴赫再一次在嵌入式處理器開發(fā)工具領(lǐng)域證實了其創(chuàng)新能力。Trace32 AnalogProbe作為新型的解決方案擴展模塊,可集成于既有的勞特巴赫模塊化開發(fā)工具的系統(tǒng)中,為客戶現(xiàn)有的TRACE32工具增添了新的價值。
評論