軍事應用中的嵌入式系統由于其較長的使用壽命和使用過程中經歷的要求變化,特別容易出現軟件老化,這可能導致性能下降。反過來,這可能會導致昂貴的計劃外硬件升級。避免這些升級的一種方法是對過時的軟件應用優化。
與其他關鍵的實時嵌入式系統不同,軍用航空電子系統的使用壽命長達數十年,在此期間,它們會定期更新。這些定期更新產生于計劃中的變革,也產生于為滿足不斷變化的軍事需求而對業務要求的改變。
變化(在初始設計中無法預測)與多年來發生的升級相結合,不可避免地導致軟件對底層計算平臺的需求增加。這種需求的增加可能導致性能下降和由于時序超支而導致的間歇性故障。避免這種情況的一種方法是頻繁、昂貴的硬件升級。
另一種方法依賴于自動檢測舊軟件中的“時序優化機會”。這種時序優化方法也可以在舊版軟件環境中工作。
軟件老化:神話還是事實?
最初,軟件老化似乎是一種矛盾:一旦編寫了代碼,它就不會物理降級 - 不像硬件,硬件受隨機物理過程的影響,導致組件的性能隨著時間的推移而下降。
當然,前者是基于軟件不會改變的假設。在長期存在的軍事系統中,這可能是一個不真實的假設:作戰需求將發生變化,而這些變化將不可避免地導致軟件老化。
軟件老化影響冗長的項目主要有四個原因:
在很長的項目過程中,建筑設計決策背后的基本原理將消失在時間的迷霧中。
隨著越來越多的決策與原始架構不一致,軟件的原始“形狀”就會丟失。
軟件開發中不斷變化的時尚將把架構拉向不同的方向。
即使使用最好的架構,也不可能提前預測可能需要的所有可能的更改。
這種軟件老化的凈效應是軟件性能會隨著時間的推移而下降。
軟件引起的硬件過時
在過去的四十年中,一個默認的假設是電子/計算性能不可避免地會隨著時間的推移而提高。這種“現實”導致定期硬件升級被內置到軍事系統等長期運行的程序中,目的是利用性能改進。
與這些周期性的性能改進相抵觸的是軟件老化問題:功能要求增加,功能增益很少。當軟件老化導致除了計劃的升級之外還需要額外的硬件升級時,就會發生軟件引起的硬件過時。
推回時間的蹂躪
計劃外升級的替代方法是提高軟件性能,這是通過仔細優化來實現的。在實時系統的情況下,這通常側重于最壞情況下的性能,或軟件執行給定功能所需的最長時間。
在理想情況下,優化可以通過采用現有架構并根據新需求將其重構為更高效的結構來實現。鑒于軟件老化導致軟件架構不可避免的退化,這需要對整個系統進行廣泛的重新開發不太可能是一個可接受的選擇。相反,優化必須是一種更“機會主義”的活動——在沒有對底層架構有深刻理解的情況下識別改進并應用它們。
優化遵循三個主要步驟:
確定貢獻(確定代碼庫中的哪個位置可以集中優化工作)。
優化(確定現有代碼的替代方案)。
沖洗并重復(測量改進,如果有的話,并繼續直到工作完成)。
確定貢獻
在決定將優化工作重點放在何處時,最重要的一個因素是了解每個軟件組件對整體系統性能的貢獻。
這里的“貢獻”用于表示執行特定代碼段所花費的時間百分比。它來自兩個值:代碼段的最長執行時間和執行次數。
查找特定模塊的貢獻依賴于首先通過代碼找到最壞情況的路徑,然后查看每個代碼子程序在該路徑上花費的時間。(請參閱圖 1。
圖1:按子計劃劃分的最壞情況執行時間(WCET)的貢獻。
如圖所示,有些代碼對最壞情況的路徑沒有貢獻,而有些代碼的貢獻很小;第三,還有一些代碼做出了重大貢獻。正是最后一個類別提供了優化的最佳候選者。
不建議嘗試通過手動檢查代碼來確定優化的候選對象,因為這會耗費大量精力,并可能導致浪費優化工作;例如,通過嘗試優化屬于“無貢獻”類別的代碼。最好的方法是通過測量代碼的執行時間來識別優化候選者。
優化,確定替代方案
一旦確定了優化候選對象,下一步就是優化它們。這項活動是整個過程的核心,依賴于工程團隊的技能和經驗。
優化的一個重要來源是在最壞情況下多次執行的模塊。每個可以刪除此類代碼的循環都受益于對整個路徑的乘數效應。
沖洗并重復
進行優化后,有必要再次測量執行時間。此步驟將確定系統現在是否滿足其性能目標。
如果在此階段仍需要進一步改進,則重復識別優化候選者的練習可能會出現新的位置來集中優化工作。
上述三個步驟中的兩個需要測量代碼的最壞情況執行時間。
通常,測量執行時間涉及:
將測量點(也稱為檢測)添加到源代碼。
收集測量值。
分析測量值。
對于大型系統,這很快就會成為一項耗時的活動。通過內部開發的工具支持或通過RapiTime等商業工具,可以大大減少上述三項活動所需的工作量。
將此類工具支持集成到構建-測試過程中意味著可以在每個構建-測試周期中自動進行時序測量。這使設計人員能夠查看優化活動在每一步中的進展情況,而不是等待優化活動結束。
遺留系統呢?
許多需要優化的系統將屬于“遺留系統”類別:其年齡意味著在軟件工具和連接到它們的硬件方面對計算平臺的支持有限。
處理此類系統的一個關鍵方面是時序分析方法的靈活性。例如,可能無法使用新式調試接口或其他特定硬件接口。因此,進行定時測量的方法必須能夠適應可用的設施。同時,必須盡可能減少任何檢測代碼的影響,以避免在測量活動期間耗盡資源(例如,內存或 CPU 容量)。
軍用航空電子系統軟件不可避免地會“老化”,這可能導致昂貴的計劃外硬件升級。另一種方法是優化老化的軟件,這只能通過測量、優化和審查程序來實際執行。
自動測量軟件性能可最大程度地減少所涉及的工作量,并且還允許測量以展示軟件性能的增量改進。
審核編輯:郭婷
-
嵌入式
+關注
關注
5138文章
19524瀏覽量
314655 -
航空電子
+關注
關注
15文章
493瀏覽量
45793
發布評論請先 登錄
硬件輔助驗證(HAV) 對軟件驗證的價值
降低液晶面板修復線的信號延遲及液晶線路修光修復

液晶顯示模組短路修復及相關激光液晶面板線路修復方法

學硬件好還是學軟件好?
AD采樣硬件軟件濾波問題如何解決
RAID 5 硬件與軟件 RAID 的區別
raid 硬件與軟件的區別
斑馬技術:用軟件創造需求,硬件滿足需求


評論