陸地、海洋和空中軍事嵌入式系統的持續成功取決于修改系統以滿足新興需求的能力。隨著時間的推移,對基于軟件的系統累積的修改會導致該系統的性能下降。最終,由此產生的性能下降使系統開發人員可以選擇放棄計劃的新功能或更換硬件并接受早期過時。還有另一種選擇。自動性能測量和時序分析技術為開發人員提供了優化累積修改導致的大部分性能下降的工具,從而避免放棄功能或過早過時。
軍事嵌入式系統在其生命周期中通常會多次增強。其中許多增強功能都是軟件更新。隨著時間的推移,軟件更新累積起來增加了對計算平臺的需求。這可能導致硬件的功能不足以滿足應用程序需求,并可能導致間歇性故障。
然后,系統開發人員面臨著艱難的選擇,要么放棄計劃的新功能,導致功能衰減,要么更換硬件(即早期過時)。
一個可行的替代方案需要確定高影響、低風險的策略來優化軟件,從而最大限度地延長計算平臺的使用壽命。此替代方案包括自動性能測量和時序分析。
性能問題
軍用嵌入式系統,尤其是航空電子系統,如BAE系統鷹的任務控制計算機,通常是實時嵌入式系統。實時系統是不同的,因為它們的正確行為既取決于其操作在邏輯上是否正確,也取決于執行這些操作的時間。開發這些系統的工程師必須能夠提供令人信服的證據,證明軟件始終在其時間限制內執行。
軟件的本質意味著每次執行時,它都可能采用不同的代碼路徑,從而導致不同的執行時間。即使以相同的方式使用系統,內部狀態的差異也可能意味著用戶看到的執行時間差異很大。正因為如此,完全有可能在不發現任何時序問題的情況下嚴格測試軟件,然后在實際使用中遇到導致重大時序問題的情況。因此,為了確保系統始終滿足其執行時間,有必要建立其最壞情況執行時間(WCET),這也是DO-178B的考慮因素。
查找最壞情況的執行時間
測量是一種通常用來獲得實時系統定時行為置信度的方法。為了測量時序,工程師通常將檢測點放在他們想要測量的代碼段的開頭和結尾。這些點通過切換輸出端口(通過示波器或邏輯分析儀監控)或通過讀取片內定時器并將生成的時間戳記錄在存儲器中來記錄經過的時間。
遺憾的是,這些高水位線可能無法反映代碼執行所需的最長時間。當測試尚未執行通過代碼的最長路徑時,就會發生這種情況,如圖 1 所示。運行兩個測試,如圖 1 所示,由綠色路徑和藍色路徑表示。從這些測試中觀察到的執行時間分別為 110 和 85。盡管這些測試執行了軟件中的所有代碼,但仍有第三條路徑(以紅色顯示),其執行時間為 140,使其成為最長路徑。
圖1:執行路徑:高水位線可能不反映代碼執行可能需要的最長時間。當測試尚未執行通過代碼的最長路徑時,會發生這種情況。
此示例表明,僅執行所有代碼不足以執行最長路徑。對于非平凡的代碼,很難設計出肯定會使代碼沿著最長路徑行駛的測試。通過在代碼中的每個決策點添加檢測點,可以避免這種情況。每當執行檢測點時,都會記錄其 ID 和時間戳。在系統上運行一系列測試會導致創建計時跟蹤。將跟蹤中的計時信息與有關代碼結構的信息相結合,可以查找有關軟件計時行為的信息,包括 WCET 的預測。
對于可能涉及數百萬行代碼的典型軍事應用,手動檢測程序將非常費力;此外,通常生成的跟蹤數據量使得手動嘗試將跟蹤數據與程序結構信息相結合變得不可行。幸運的是,程序檢測、跟蹤處理、將跟蹤數據與程序結構信息相結合以及數據挖掘/表示等任務都可以實現自動化。Rapita Systems 的 RapiTime 是一種自動化性能測量和時序分析技術,有助于解決獲取以 C、C++ 或 Ada 實現的大型軍事嵌入式系統的詳細時序信息的挑戰。
性能優化
了解 WCET 只是解決方案的一部分:當面臨軟件組件超出其執行時間預算的問題時,必須采取系統、科學的方法來優化組件的性能。
軟件性能優化需要回答三個問題:
優化的最佳位置在哪里?
建議的優化是否在改進?
可以做出多大的改進?
優化的最佳位置在哪里?
在典型的復雜應用中:
(1)大多數子程序實際上并不處于最壞情況的路徑上;它們對最壞情況的執行時間沒有任何貢獻。優化這些子計劃根本不會減少WCET。
(2)許多子計劃對WCET的貢獻很小,因此不能代表優化的良好候選者。優化這些子計劃所付出的努力不會構成對資源的有效利用。
(3)少數子計劃占整個WCET的很大一部分(圖2)。因此,子程序是優化的潛在候選者。
圖2:分項計劃對整個WCET的累計貢獻
通過檢查WCET信息,工程師可以輕松識別相對較少的組件,在這些組件中,優化可能會對整體最壞情況的執行時間產生重大影響。
我在改進事情嗎?
有時,試圖通過猜測最壞情況的熱點在哪里,優化該代碼,然后查看效果來縮短分析過程是很誘人的。然而,軟件優化的經驗告訴我們,即使是對他們的代碼有深入了解的高技能軟件工程師,如果不訪問詳細的時間信息,也幾乎不可能確定WCET的重要貢獻者,從而確定優化的最佳候選者。
通常看起來如此明顯 - “一定是進行所有這些浮點計算的代碼部分是優化的最佳候選者” - 而實際上,一些看似無害的賦值隱藏了一個幾乎占用所有時間的內存副本。這個問題的答案很簡單:不要猜測,測量。然后重復測量以量化改進(或缺乏改進)。
可以做出多大的改進?
表 1 顯示了通過簡單的軟件優化過程可以獲得的最壞情況執行時間的改進水平。這些結果是使用RapiTime技術在BAE系統鷹的任務計算機上提供詳細的計時信息來實現的。這些優化導致WCET總體下降了23%。
表 1:BAE系統鷹任務計算機的優化改進
WCET 和性能優化的好處
在軍事嵌入式系統修改期間訪問自動性能測量和詳細的時序分析可以為開發人員提供許多優勢:
1. 采用系統科學的方法獲取系統定時行為的信心。
2. 有關最壞情況執行時間的詳細信息可以快速確定優化的候選對象。
3. 自動測量可以評估候選優化的有效性。
能夠進行最佳時序優化意味著避免不必要地過時硬件,并消除放棄計劃的新功能或更換硬件并接受早期過時的需求。
審核編輯:郭婷
-
嵌入式
+關注
關注
5096文章
19194瀏覽量
308131 -
存儲器
+關注
關注
38文章
7533瀏覽量
164449 -
計算機
+關注
關注
19文章
7551瀏覽量
88761
發布評論請先 登錄
相關推薦
如何提高嵌入式代碼質量?
自動零件分析儀的原理和應用
新手怎么學嵌入式?
嵌入式系統開發中的測試方法 嵌入式系統開發與AI結合應用
AMD 面向嵌入式系統推出高能效 EPYC 嵌入式 8004 系列
嵌入式系統的未來趨勢有哪些?
嵌入式C編程常用的異常錯誤處理
嵌入式熱門領域有哪些?
愛普生的高精度傳感技術有助于監控自動化
![愛普生的高精度傳感技術<b class='flag-5'>有助于</b>監控<b class='flag-5'>自動</b>化](https://file1.elecfans.com/web2/M00/F4/6A/wKgaomZ81B-AB5NTAACm9DkpDgw565.png)
評論