• 芯片世界觀(guān)︱嵌入式系統工程師怎樣才能不落伍,這些新的方法論你必須知曉

    日期:05-28  點(diǎn)擊:  屬于:行業(yè)動(dòng)態(tài)

    不斷增加的復雜性和異質(zhì)化正在衍生出一些新的方法,能夠避免在設計周期結束時(shí)出現意外。

    在一個(gè)系統中,硬件的表現是否優(yōu)秀取決于運行在其上的軟件。隨著(zhù)系統復雜性的增加,總是軟件在拖后腿。

    縮小硬件和軟件差距的方法是不斷改進(jìn)軟件開(kāi)發(fā)的方法。在把軟件部署運行在硬件上之前,確保軟件升級都進(jìn)行了驗證和測試,并進(jìn)行之前芯片制造商開(kāi)發(fā)硬件時(shí)進(jìn)行的同類(lèi)的詳細檢查。

     


    試圖將軟件開(kāi)發(fā)過(guò)程提前并不是什么新主意。多年來(lái),業(yè)界開(kāi)發(fā)了一系列的方法解決這個(gè)問(wèn)題。比如敏捷軟件開(kāi)發(fā)方法,它試圖通過(guò)兩個(gè)或更多的軟件開(kāi)發(fā)者同時(shí)進(jìn)行同一個(gè)代碼的開(kāi)發(fā)來(lái)降低錯誤。此外還包括持續集成方法,它是從另外一個(gè)角度解決這個(gè)問(wèn)題的,這個(gè)方法的本質(zhì)是,將代碼持續不斷地加入共享的代碼庫或開(kāi)發(fā)分支中,進(jìn)行頻繁的自動(dòng)構建,以在早期發(fā)現和驗證問(wèn)題。

    Mentor嵌入式部門(mén)產(chǎn)品管理總監Warren Kurisu說(shuō):“越來(lái)越多的開(kāi)發(fā)團隊正在使用持續集成方法作為簡(jiǎn)化整體開(kāi)發(fā)流程的手段,并避免在開(kāi)發(fā)集成階段出現令人討厭的意外?;谀P偷脑O計方法通過(guò)模擬和自動(dòng)代碼生成進(jìn)行了大量的工作,可以支持這種方法過(guò)程。”

    通過(guò)持續集成,可以在構建硬件設備的同時(shí),構建一個(gè)單純從概念出發(fā)的數字映像。在這種方法的加持下,多個(gè)更加獨立的團隊可以同時(shí)開(kāi)發(fā),這時(shí),更好地踐行持續集成概念就變成了各個(gè)團隊的代碼“何時(shí)”準備好集成進(jìn)系統的問(wèn)題。

    “多團隊同時(shí)開(kāi)發(fā)的方法是對持續集成模式的一種認可,這種方法使開(kāi)發(fā)商能夠更早地對設計進(jìn)行驗證,并允許開(kāi)發(fā)人員根據數字映像模型驗證其代碼和測試系統配置。”Kurisu說(shuō)。“舉一個(gè)簡(jiǎn)單的例子吧,比如Linux進(jìn)程。這種架構設計使應用程序開(kāi)發(fā)人員能夠在其桌面開(kāi)發(fā)系統上創(chuàng )建應用程序,只要它們遵守Linux編程模型,這些應用程序就可以在最終階段順利集成,甚至可以在系統部署后加載。如果系統架構師需要更嚴格的分離模型,則可以使用獨立的執行環(huán)境,如Linux容器或Docker容器。這種模式不僅適用于Linux,實(shí)時(shí)操作系統也和Linux進(jìn)程很像,包括一個(gè)允許代碼分離的進(jìn)程模型。”

    一旦在進(jìn)程或分區中運行的代碼就緒,就可以將其納入到連續集成工作流中。雖然這似乎是一個(gè)顯而易見(jiàn)的步驟,但它的效果很好,可以很快地將各種異構組件融合在一起。

    “例如,集成了四核ARM Cortex-A53內核、Cortex-R5內核和FPGA架構,并具有可實(shí)現功能分離的多個(gè)電源層的Xilinx UltraScale + MPSoC,”Kurisu說(shuō)。“可以預計的情景是多個(gè)開(kāi)發(fā)團隊同時(shí)為這個(gè)SoC編寫(xiě)代碼,一個(gè)團隊在應用內核上開(kāi)發(fā)Linux,一個(gè)團隊在實(shí)時(shí)內核上開(kāi)發(fā)安全應用程序,另一個(gè)團隊在FPGA架構上實(shí)現算法。在總體架構上,這些應用可以通過(guò)已定義的接口進(jìn)行通信。一方面,這些獨立團隊自身可能會(huì )使用持續集成方法來(lái)構建在其內核上運行的代碼,另一方面,當系統所有內核上的代碼都就緒后,主要的集成工作就會(huì )開(kāi)始。和上面一樣,持續集成的問(wèn)題就是進(jìn)行全系統集成的代碼何時(shí)準備就緒。”

    基礎問(wèn)題
    系統的復雜性一直在穩步增長(cháng),部分原因是沒(méi)有人確定虛擬/增強現實(shí)、汽車(chē)、醫療、工業(yè)物聯(lián)網(wǎng)和深度學(xué)習等各種新興市場(chǎng)需要什么樣的芯片或功能。在這種情況下,一種常見(jiàn)的方法是將多個(gè)類(lèi)型的處理器和功能集成在一顆芯片上,通過(guò)軟件把各個(gè)組件融合在一起,這比將所有組件放入各個(gè)分立的ASIC中更便宜。

    Aldec硬件部總經(jīng)理Zibi Zalewski表示:“最終配置是根據目標市場(chǎng)或客戶(hù)要求創(chuàng )建的。“子系統的可擴展性使您可以快速增加系統規模和復雜性?,F在,把一個(gè)系統從雙核擴展到四核不算什么大問(wèn)題,沒(méi)有適當的工具才是真正的問(wèn)題所在。此外,硬件部分不再是決定項目的主要元素,系統復雜性主要來(lái)自于軟件層。所以不單單是晶體管數量問(wèn)題,還包括功能要求。”

    這與系統整體質(zhì)量有直接的關(guān)系,最終是衡量創(chuàng )建該系統的各種方法的有效性。

    ARM模型技術(shù)總監Bill Neifert說(shuō):“評估質(zhì)量時(shí),挑戰在于它不僅僅涉及芯片的質(zhì)量。它衡量的是整個(gè)系統,會(huì )衍生出區段問(wèn)題。每個(gè)設計中都有你關(guān)心的東西,但對于汽車(chē)、工業(yè)和企業(yè)計算而言,關(guān)心對象又有所不同。一些涉及不同的硬件,另外一些則是相同硬件上的不同應用。如果您正在處理需要記錄和證據的安全相關(guān)問(wèn)題,你需要關(guān)心的就是軟件過(guò)程和底層硬件。記住,你能證明到什么程度,質(zhì)量就是什么水平。”


    最大限度降低意外
    不管選擇的方法有多好,總會(huì )有一些錯誤發(fā)生。所以,這里的目標是盡量減少項目開(kāi)發(fā)最終階段的意外,記住,沒(méi)有任何一種方法能夠完全消除意外。

    “當您編寫(xiě)應用程序時(shí),您真的必須在真實(shí)的目標上運行一下它,因為您可能沒(méi)有正確地分配內存,或者您可能只有只能在A(yíng)RM上使用的二進(jìn)制庫,而很多人卻試圖在x86上測試嵌入式系統,“Imperas Software首席執行官Simon Davidmann說(shuō)。“Jenkins是一個(gè)經(jīng)常被提及的開(kāi)源自動(dòng)化服務(wù)器,代碼可以在A(yíng)RM、MIPS或瑞薩處理器上運行,不需要任何管理工作,在幾分鐘之內就可以得到一個(gè)“測試通過(guò)”的結果。你可以把Jenkins看做運行對象,你可以說(shuō),'這是我的機器。我有四臺機器可以運行測試',其他人也可以共享Jenkins資源。它可以簡(jiǎn)化最簡(jiǎn)單的程序,即便你的程序只有一個(gè)只包含一個(gè)算法的文件,它也允許你構建工程并運行,當你修改了代碼,它可以自動(dòng)化地充分測試并記錄。當然,您必須了解Jenkins的產(chǎn)品如何工作或模擬器的工作原理,但是只需要幾千美元,您就能獲得可以非常有效地進(jìn)行編譯、構建、測試和驗證的系統。”

    Synopsys的MetaWare產(chǎn)品經(jīng)理Allen Watson說(shuō):“我們生產(chǎn)的軟件是允許人們開(kāi)發(fā)軟件的工具。我們的客戶(hù)使用我們的工具編寫(xiě)嵌入式軟件,但同時(shí)我們的工具本身也是軟件。雖然有一些差異,但歸根結底我們和客戶(hù)們都在編寫(xiě)軟件,這是一個(gè)非常復雜的軟件。我們自己也在小組內采用持續集成方法,沒(méi)有其它方法能夠替代這種開(kāi)發(fā)方式。我們有多個(gè)開(kāi)發(fā)人員編寫(xiě)同一個(gè)產(chǎn)品的軟件,但他們承擔不同的任務(wù)。通常,他們先寫(xiě)自己的代碼,在本地進(jìn)行一些單元測試,準備好后,就把代碼并到軟件的主線(xiàn)開(kāi)發(fā)分支上。

    但是,并不是每個(gè)人都認可這個(gè)概念。Uniquify營(yíng)銷(xiāo)副總裁Graham Bell認為,重點(diǎn)應該是反復性而不是持續集成。

    “持續意味著(zhù)不間斷地繼續下去,而反復意味著(zhù)活動(dòng)之間可以暫停,”他說(shuō)。“當然,嵌入式軟件的集成工作會(huì )反復經(jīng)歷一系列的集成-測試 - 修改活動(dòng),直到特征漂移結束或者bug數量達到了設計簽收級別。這就是這個(gè)過(guò)程中暫停的地方。隨著(zhù)設計從硅虛擬原型轉移到硬件原型,最終再轉移到消費者手中的產(chǎn)品,這種集成循環(huán)會(huì )一再發(fā)生。有些人可能會(huì )認為,集成工作的這些階段現在是重疊的,因為各個(gè)設計團隊需要盡早獲得有關(guān)工作設計的知識,以加速自己工作的設計簽收。如果是這種情況,那么也許我們可以說(shuō),這些同步進(jìn)行的工作正在導致嵌入式軟件的持續整合。”

    這不僅僅是定義上的分歧,它影響著(zhù)基礎方法論。和支持反復整合的企業(yè)相比,支持持續整合的企業(yè)數量增長(cháng)更多。

    Austemper設計系統公司首席執行官Sanjay Pillay認為,持續集成是實(shí)現最佳上市時(shí)間的唯一途徑。“目前復雜的SoC及其開(kāi)發(fā)時(shí)間表無(wú)法通過(guò)使用硬件-固件-軟件的串行開(kāi)發(fā)方法來(lái)實(shí)現。工程團隊現在必須包括硬件開(kāi)發(fā)人員和嵌入式軟件設計人員,而且軟件設計人員的數量往往超過(guò)硬件設計人員。他們一起開(kāi)始這個(gè)項目,并在整個(gè)項目周期中并肩協(xié)作。”

    但是,隨著(zhù)設計中異構組件的數量不斷增多,持續集成也只是簡(jiǎn)化開(kāi)發(fā)流程的其中一個(gè)選擇。

    Mentor的Kurisu說(shuō):“人們可以爭辯說(shuō),今天最先進(jìn)的軟件和硬件不再需要持續集成方法。但是我認為,基于模型的設計實(shí)際上激發(fā)了持續集成方法的活力,并放大了這種方法的作用。”
     

    聯(lián)系我們
    微信公眾號微信公眾號

    工作時(shí)間:周一至周五9:00-18:00

    聯(lián)系人:姚經(jīng)理

    手機:189-0339-0754

    電話(huà):+86(311)85290962

    郵件: zhuoxuankj@126.com

    地址:河北.石家莊市長(cháng)安區豐收路188號

    亚洲精品国产电影,网址 你懂的,国产精品欧美一区二区三区不卡,性做久久久久久