0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

軟件引起的硬件過時:重大修復(fù)

星星科技指導(dǎo)員 ? 來源:嵌入式計(jì)算設(shè)計(jì) ? 作者:DR. ANDREW COOMBES ? 2022-11-08 15:06 ? 次閱讀

軍事應(yīng)用中的嵌入式系統(tǒng)由于其較長的使用壽命和使用過程中經(jīng)歷的要求變化,特別容易出現(xiàn)軟件老化,這可能導(dǎo)致性能下降。反過來,這可能會導(dǎo)致昂貴的計(jì)劃外硬件升級。避免這些升級的一種方法是對過時的軟件應(yīng)用優(yōu)化。

與其他關(guān)鍵的實(shí)時嵌入式系統(tǒng)不同,軍用航空電子系統(tǒng)的使用壽命長達(dá)數(shù)十年,在此期間,它們會定期更新。這些定期更新產(chǎn)生于計(jì)劃中的變革,也產(chǎn)生于為滿足不斷變化的軍事需求而對業(yè)務(wù)要求的改變。

變化(在初始設(shè)計(jì)中無法預(yù)測)與多年來發(fā)生的升級相結(jié)合,不可避免地導(dǎo)致軟件對底層計(jì)算平臺的需求增加。這種需求的增加可能導(dǎo)致性能下降和由于時序超支而導(dǎo)致的間歇性故障。避免這種情況的一種方法是頻繁、昂貴的硬件升級。

另一種方法依賴于自動檢測舊軟件中的“時序優(yōu)化機(jī)會”。這種時序優(yōu)化方法也可以在舊版軟件環(huán)境中工作。

軟件老化:神話還是事實(shí)?

最初,軟件老化似乎是一種矛盾:一旦編寫了代碼,它就不會物理降級 - 不像硬件,硬件受隨機(jī)物理過程的影響,導(dǎo)致組件的性能隨著時間的推移而下降。

當(dāng)然,前者是基于軟件不會改變的假設(shè)。在長期存在的軍事系統(tǒng)中,這可能是一個不真實(shí)的假設(shè):作戰(zhàn)需求將發(fā)生變化,而這些變化將不可避免地導(dǎo)致軟件老化。

軟件老化影響冗長的項(xiàng)目主要有四個原因:

在很長的項(xiàng)目過程中,建筑設(shè)計(jì)決策背后的基本原理將消失在時間的迷霧中。

隨著越來越多的決策與原始架構(gòu)不一致,軟件的原始“形狀”就會丟失。

軟件開發(fā)中不斷變化的時尚將把架構(gòu)拉向不同的方向。

即使使用最好的架構(gòu),也不可能提前預(yù)測可能需要的所有可能的更改。

這種軟件老化的凈效應(yīng)是軟件性能會隨著時間的推移而下降。

軟件引起的硬件過時

在過去的四十年中,一個默認(rèn)的假設(shè)是電子/計(jì)算性能不可避免地會隨著時間的推移而提高。這種“現(xiàn)實(shí)”導(dǎo)致定期硬件升級被內(nèi)置到軍事系統(tǒng)等長期運(yùn)行的程序中,目的是利用性能改進(jìn)。

與這些周期性的性能改進(jìn)相抵觸的是軟件老化問題:功能要求增加,功能增益很少。當(dāng)軟件老化導(dǎo)致除了計(jì)劃的升級之外還需要額外的硬件升級時,就會發(fā)生軟件引起的硬件過時。

推回時間的蹂躪

計(jì)劃外升級的替代方法是提高軟件性能,這是通過仔細(xì)優(yōu)化來實(shí)現(xiàn)的。在實(shí)時系統(tǒng)的情況下,這通常側(cè)重于最壞情況下的性能,或軟件執(zhí)行給定功能所需的最長時間。

在理想情況下,優(yōu)化可以通過采用現(xiàn)有架構(gòu)并根據(jù)新需求將其重構(gòu)為更高效的結(jié)構(gòu)來實(shí)現(xiàn)。鑒于軟件老化導(dǎo)致軟件架構(gòu)不可避免的退化,這需要對整個系統(tǒng)進(jìn)行廣泛的重新開發(fā)不太可能是一個可接受的選擇。相反,優(yōu)化必須是一種更“機(jī)會主義”的活動——在沒有對底層架構(gòu)有深刻理解的情況下識別改進(jìn)并應(yīng)用它們。

優(yōu)化遵循三個主要步驟:

確定貢獻(xiàn)(確定代碼庫中的哪個位置可以集中優(yōu)化工作)。

優(yōu)化(確定現(xiàn)有代碼的替代方案)。

沖洗并重復(fù)(測量改進(jìn),如果有的話,并繼續(xù)直到工作完成)。

確定貢獻(xiàn)

在決定將優(yōu)化工作重點(diǎn)放在何處時,最重要的一個因素是了解每個軟件組件對整體系統(tǒng)性能的貢獻(xiàn)。

這里的“貢獻(xiàn)”用于表示執(zhí)行特定代碼段所花費(fèi)的時間百分比。它來自兩個值:代碼段的最長執(zhí)行時間和執(zhí)行次數(shù)。

查找特定模塊的貢獻(xiàn)依賴于首先通過代碼找到最壞情況的路徑,然后查看每個代碼子程序在該路徑上花費(fèi)的時間。(請參閱圖 1。

圖1:按子計(jì)劃劃分的最壞情況執(zhí)行時間(WCET)的貢獻(xiàn)。

pYYBAGNqABCAS02yAABfw-8yZI0273.jpg

如圖所示,有些代碼對最壞情況的路徑?jīng)]有貢獻(xiàn),而有些代碼的貢獻(xiàn)很小;第三,還有一些代碼做出了重大貢獻(xiàn)。正是最后一個類別提供了優(yōu)化的最佳候選者。

不建議嘗試通過手動檢查代碼來確定優(yōu)化的候選對象,因?yàn)檫@會耗費(fèi)大量精力,并可能導(dǎo)致浪費(fèi)優(yōu)化工作;例如,通過嘗試優(yōu)化屬于“無貢獻(xiàn)”類別的代碼。最好的方法是通過測量代碼的執(zhí)行時間來識別優(yōu)化候選者。

優(yōu)化,確定替代方案

一旦確定了優(yōu)化候選對象,下一步就是優(yōu)化它們。這項(xiàng)活動是整個過程的核心,依賴于工程團(tuán)隊(duì)的技能和經(jīng)驗(yàn)。

優(yōu)化的一個重要來源是在最壞情況下多次執(zhí)行的模塊。每個可以刪除此類代碼的循環(huán)都受益于對整個路徑的乘數(shù)效應(yīng)。

沖洗并重復(fù)

進(jìn)行優(yōu)化后,有必要再次測量執(zhí)行時間。此步驟將確定系統(tǒng)現(xiàn)在是否滿足其性能目標(biāo)。

如果在此階段仍需要進(jìn)一步改進(jìn),則重復(fù)識別優(yōu)化候選者的練習(xí)可能會出現(xiàn)新的位置來集中優(yōu)化工作。

上述三個步驟中的兩個需要測量代碼的最壞情況執(zhí)行時間。

通常,測量執(zhí)行時間涉及:

將測量點(diǎn)(也稱為檢測)添加到源代碼。

收集測量值。

分析測量值。

對于大型系統(tǒng),這很快就會成為一項(xiàng)耗時的活動。通過內(nèi)部開發(fā)的工具支持或通過RapiTime等商業(yè)工具,可以大大減少上述三項(xiàng)活動所需的工作量。

將此類工具支持集成到構(gòu)建-測試過程中意味著可以在每個構(gòu)建-測試周期中自動進(jìn)行時序測量。這使設(shè)計(jì)人員能夠查看優(yōu)化活動在每一步中的進(jìn)展情況,而不是等待優(yōu)化活動結(jié)束。

遺留系統(tǒng)呢?

許多需要優(yōu)化的系統(tǒng)將屬于“遺留系統(tǒng)”類別:其年齡意味著在軟件工具和連接到它們的硬件方面對計(jì)算平臺的支持有限。

處理此類系統(tǒng)的一個關(guān)鍵方面是時序分析方法的靈活性。例如,可能無法使用新式調(diào)試接口或其他特定硬件接口。因此,進(jìn)行定時測量的方法必須能夠適應(yīng)可用的設(shè)施。同時,必須盡可能減少任何檢測代碼的影響,以避免在測量活動期間耗盡資源(例如,內(nèi)存或 CPU 容量)。

軍用航空電子系統(tǒng)軟件不可避免地會“老化”,這可能導(dǎo)致昂貴的計(jì)劃外硬件升級。另一種方法是優(yōu)化老化的軟件,這只能通過測量、優(yōu)化和審查程序來實(shí)際執(zhí)行。

自動測量軟件性能可最大程度地減少所涉及的工作量,并且還允許測量以展示軟件性能的增量改進(jìn)。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5059

    文章

    18975

    瀏覽量

    302085
  • 航空電子
    +關(guān)注

    關(guān)注

    15

    文章

    488

    瀏覽量

    45146
收藏 人收藏

    評論

    相關(guān)推薦

    硬件防火墻和軟件防火墻區(qū)別

    電子發(fā)燒友網(wǎng)站提供《硬件防火墻和軟件防火墻區(qū)別.doc》資料免費(fèi)下載
    發(fā)表于 10-21 11:03 ?0次下載

    揭秘:單片機(jī)硬件軟件延時之大不同!

    在嵌入式項(xiàng)目中,軟件開發(fā)基本上都會使用到延時,那么,該用軟件延時還是硬件延時?它們又有什么區(qū)別呢?今天就來講講關(guān)于硬件延時和軟件延時的內(nèi)容,
    的頭像 發(fā)表于 07-25 08:11 ?649次閱讀
    揭秘:單片機(jī)<b class='flag-5'>硬件</b>與<b class='flag-5'>軟件</b>延時之大不同!

    嵌入式硬件VS軟件,到底哪個更難?

    在嵌入式系統(tǒng)開發(fā)中,硬件軟件是密不可分的兩個方面。但是,究竟是硬件開發(fā)更具挑戰(zhàn)性,還是軟件開發(fā)更難以應(yīng)對呢?本文將就這一問題展開討論,探究嵌入式
    的頭像 發(fā)表于 06-13 08:10 ?1085次閱讀
    嵌入式<b class='flag-5'>硬件</b>VS<b class='flag-5'>軟件</b>,到底哪個更難?

    蘋果將iPhone 5s列入過時產(chǎn)品列表

    蘋果公司近日宣布,iPhone 5s正式被添加到其過時產(chǎn)品列表中。這標(biāo)志著蘋果及其授權(quán)服務(wù)提供商將不再為這款曾經(jīng)備受追捧的設(shè)備提供任何維修或其他硬件服務(wù)。
    的頭像 發(fā)表于 06-05 09:49 ?474次閱讀

    微軟PowerToys發(fā)布0.80.1版,修復(fù)多項(xiàng)BUG提升軟件穩(wěn)定性

    微軟日前發(fā)布PowerToys 0.80.1穩(wěn)定版更新,該版無新增功能,其主要目的在于修復(fù)先前版本所遺留的若干問題,提升軟件運(yùn)作穩(wěn)定性。
    的頭像 發(fā)表于 04-11 10:50 ?1554次閱讀

    蘋果發(fā)布iOS/iPadOS 17.4.1修復(fù)版,修復(fù)未知錯誤

    蘋果在官方更新記錄中聲稱,此更新針對重大錯誤修復(fù)及安全問題作了改進(jìn),強(qiáng)烈建議廣大用戶予以安裝。盡管蘋果公司并未披露具體修正了何種差錯,但其官方支持網(wǎng)站暫無更新服務(wù)。IT之家會持續(xù)追蹤相關(guān)動態(tài),對此進(jìn)行后續(xù)報道。
    的頭像 發(fā)表于 03-27 15:48 ?1399次閱讀

    fpga是硬件還是軟件

    FPGA(現(xiàn)場可編程門陣列)本質(zhì)上是一種硬件設(shè)備,但它在功能實(shí)現(xiàn)上結(jié)合了硬件軟件的特性。
    的頭像 發(fā)表于 03-27 14:14 ?872次閱讀

    fpga是硬件還是軟件

    FPGA(現(xiàn)場可編程門陣列)屬于硬件設(shè)備,而不是軟件。它是一種可編程的硬件設(shè)備,由大量的邏輯單元、存儲單元和互連資源組成,能夠?qū)崿F(xiàn)復(fù)雜的數(shù)字電路和系統(tǒng)設(shè)計(jì)。
    的頭像 發(fā)表于 03-14 17:08 ?1694次閱讀

    修復(fù)烘缸軸磨損如何修復(fù)

    電子發(fā)燒友網(wǎng)站提供《修復(fù)烘缸軸磨損如何修復(fù).docx》資料免費(fèi)下載
    發(fā)表于 02-29 09:34 ?0次下載

    修復(fù)煤磨輥體磨損怎么修復(fù)

    電子發(fā)燒友網(wǎng)站提供《修復(fù)煤磨輥體磨損怎么修復(fù).docx》資料免費(fèi)下載
    發(fā)表于 02-03 15:23 ?0次下載

    硬件spi和軟件spi的區(qū)別

    硬件SPI(串行外設(shè)接口)和軟件SPI是兩種不同的SPI傳輸方式。SPI是一種同步串行數(shù)據(jù)通信協(xié)議,通常用于連接微控制器和外部設(shè)備,如存儲器、傳感器和顯示屏等。 硬件SPI是通過專用的硬件
    的頭像 發(fā)表于 12-26 16:55 ?5514次閱讀

    Apple Watch禁售在即,蘋果尋求軟件修復(fù)及和解

    預(yù)料到這一禁令即將實(shí)行,蘋果已開始計(jì)劃應(yīng)對措施。據(jù)知情人士透露,蘋果科學(xué)家們正針對測量用戶血氧級別的算法進(jìn)行修復(fù),該功能被馬斯奧指控侵犯其專利權(quán)益。這項(xiàng)修復(fù)工作預(yù)計(jì)將使Apple Watch能夠重新上市。
    的頭像 發(fā)表于 12-19 14:37 ?673次閱讀

    嵌入式硬件軟件哪個好?

    嵌入式硬件軟件哪個好? 嵌入式軟硬件工程師哪個更有前途呢?一起來看看。 嵌入式是分為軟硬件工程師的,首先我們先來看看嵌入式硬件工程師吧!
    發(fā)表于 12-05 15:17

    油浸式變壓器“大修”&amp;“小修”是指什么?

    電氣試驗(yàn)與油化驗(yàn)顯示結(jié)果不合格時,需要進(jìn)行大修,根據(jù)現(xiàn)場情況判斷變壓器是否有進(jìn)行吊芯檢查的條件,再進(jìn)行相關(guān)檢修操作。
    的頭像 發(fā)表于 12-02 09:32 ?1386次閱讀