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

入行嵌入式難度大不大?
嵌入式系統(tǒng)開發(fā)圣經(jīng)【干貨】
IAR分析嵌入式系統(tǒng)的市場(chǎng)前景
嵌入式系統(tǒng)中的代碼優(yōu)化與壓縮技術(shù)
如何提高嵌入式代碼質(zhì)量?
自動(dòng)零件分析儀的原理和應(yīng)用
新手怎么學(xué)嵌入式?
什么是嵌入式人工智能

嵌入式系統(tǒng)開發(fā)中的測(cè)試方法 嵌入式系統(tǒng)開發(fā)與AI結(jié)合應(yīng)用
AMD 面向嵌入式系統(tǒng)推出高能效 EPYC 嵌入式 8004 系列
嵌入式系統(tǒng)的未來趨勢(shì)有哪些?
關(guān)于一些有助于優(yōu)化電源設(shè)計(jì)的新型材料
嵌入式C編程常用的異常錯(cuò)誤處理
有助于提高網(wǎng)絡(luò)設(shè)備性能的FRAM SF25C20(MB85RS2MT)

評(píng)論