通過虛擬硬件原型 加速邊緣智能系統(tǒng)創(chuàng)新
2022-03-16
作者:Arm物聯(lián)網(wǎng)兼嵌入式事業(yè)部業(yè)務(wù)拓展副總裁 馬健
來源:Arm
隨著人工智能(AI)技術(shù)突飛猛進(jìn)的發(fā)展,,我們已經(jīng)看到了一個不爭的現(xiàn)實,,那就是AI的演進(jìn)趨勢一定會走出數(shù)據(jù)中心,,落地千家萬戶,,深入各行各業(yè),,賦能智慧萬物,,這也就注定了物聯(lián)網(wǎng),、邊緣計算和嵌入式系統(tǒng)一定是AI未來的主戰(zhàn)場,。傳統(tǒng)物聯(lián)網(wǎng)和嵌入式系統(tǒng)開發(fā)部署方式給邊緣智能的騰飛帶來了很大的挑戰(zhàn):市場碎片化,、軟硬件強(qiáng)耦合、開發(fā)流程冗長等等,,使敏捷軟件開發(fā)和應(yīng)用創(chuàng)新舉步維艱,。作為移動互聯(lián)網(wǎng)時代智能手機(jī)芯片架構(gòu)的領(lǐng)軍者,Arm總結(jié)了推動市場發(fā)展的要素,,并推出先進(jìn)現(xiàn)代的方案和工具鏈,,使軟、硬件的開發(fā)能夠齊頭并進(jìn),,加速智能物聯(lián)網(wǎng),、嵌入式及邊緣智能系統(tǒng)的創(chuàng)新。
支撐智能手機(jī)百花齊放,,百家爭鳴的強(qiáng)大App生態(tài)系統(tǒng)的核心技術(shù)之一就是主流的應(yīng)用商店,,使App開發(fā)者不受智能手機(jī)硬件的束縛,獨立地采用最先進(jìn)的敏捷軟件開發(fā)方法在虛擬硬件原型上進(jìn)行創(chuàng)新,。但是傳統(tǒng)的嵌入式軟件開發(fā)對硬件開發(fā)板存在較強(qiáng)的依賴性,。將虛擬硬件原型引入物聯(lián)網(wǎng)和嵌入式開發(fā)將是引爆邊緣智能市場發(fā)展的關(guān)鍵。說到這兒,,我必須要提一下當(dāng)前熱門的元宇宙和數(shù)字孿生概念,,它們其實都是依托于對現(xiàn)實世界的虛擬化、數(shù)字化,,來創(chuàng)造與現(xiàn)實世界映射和交互的虛擬世界以及具備新型社會體系的數(shù)字生活空間,,使人與人的交流、新產(chǎn)品開發(fā),、工業(yè)控制,、甚至是教育培訓(xùn)更簡易便捷,。虛擬硬件原型與這些概念不謀而合,。
虛擬原型和硬件設(shè)計
在設(shè)計功能更為強(qiáng)大而復(fù)雜的集成電路和芯片時,設(shè)計人員在硬件和軟件層面均面臨艱巨的工作任務(wù),。SoC架構(gòu)師需設(shè)法對硬件組件(即IP模塊)進(jìn)行早期評估,,檢查各種IP配置以降低技術(shù)風(fēng)險,權(quán)衡設(shè)計方案并且了解哪些要素最適合給定的系統(tǒng)要求,,這些對SoC能否成功商用有著直接影響,。此外,設(shè)計性能常常會受到設(shè)備上所運行的軟件影響,,那么該如何在芯片推出前預(yù)測實際性能呢,?
為此SoC設(shè)計人員需要對系統(tǒng)進(jìn)行建模,通過軟件和硬件的系統(tǒng)級表示,,設(shè)法估算組件在交互狀態(tài)下的性能,。虛擬原型是測試組件級和系統(tǒng)級元素的一種有效方法,。芯片虛擬原型通常由使用SystemC等專用語言編寫的連接組件模型組成。使用一種標(biāo)準(zhǔn)語言可將不同供應(yīng)商提供的IP組件模型整合到同一個虛擬原型中,,從而更適合運行實際的軟件工作負(fù)載,。
提早開始軟件開發(fā)
鑒于現(xiàn)代邊緣智能系統(tǒng)軟件的復(fù)雜性以及軟硬件聯(lián)合創(chuàng)新的訴求,產(chǎn)品團(tuán)隊不可能等到硬件就位后才開始軟件開發(fā),。提早開始軟件開發(fā)有兩大明顯優(yōu)勢:
首先是及早驗證硬件/軟件接口,。軟件與硬件平臺集成有點像丑媳婦見公婆,時常會因為相互不了解不熟悉而產(chǎn)生摩擦,。不光是軟件,,硬件系統(tǒng)在集成過程中也會報錯。在設(shè)計流程中盡早驗證硬件/軟件接口可以避免代價高昂的硬件返工情況,,進(jìn)度也不會因此延遲,。對此,虛擬原型就能派上用場,。硬件設(shè)計的快速功能模型不僅細(xì)化到可從軟件程序員的角度來模擬硬件,,而且抽象到能以大規(guī)模軟件開發(fā)和調(diào)試所需的模型執(zhí)行速度來運行。現(xiàn)代功能模型可在數(shù)秒內(nèi)啟動Linux,,實現(xiàn)單步調(diào)試代碼的速度與調(diào)試器直接連接到硬件的速度旗鼓相當(dāng),。
功能模型源自硬件規(guī)格,并且可在硬件規(guī)格逐步確定的過程中迭代開發(fā)成虛擬原型,,因而無需等到最終設(shè)計方案敲定才開始,。只要各部分的設(shè)計確定后,即可開始構(gòu)建模型,,軟件團(tuán)隊便能在最終設(shè)計完成前迭代開發(fā)軟件,。鑒于硬件和軟件團(tuán)隊在產(chǎn)品的各個設(shè)計環(huán)節(jié)都會通力協(xié)作,實現(xiàn)并行開發(fā),,讓驗證工作能更早開始,,驗證時間更充裕,覆蓋面更廣,,這勢必會提高軟件的質(zhì)量,。
其次是縮短產(chǎn)品上市時間。目前針對復(fù)雜的嵌入式系統(tǒng)的軟件開發(fā),,在時間和成本上均已超過了硬件設(shè)計,。若等硬件就位并穩(wěn)定后再開始軟件開發(fā),這會使產(chǎn)品開發(fā)的時間線延長12個月或更久,。
從軟件程序員的角度來看,,準(zhǔn)確的快速功能模型不僅適合于低層軟件(比如對建立新的硬件平臺至關(guān)重要的設(shè)備驅(qū)動程序和固件)的早期開發(fā),而且還可用來移植或開發(fā)更高層級的軟件棧,,例如中間件和操作系統(tǒng),,甚至應(yīng)用程序,。
用于軟件驗證的虛擬平臺
軟件棧規(guī)模越大、越復(fù)雜,,開發(fā)和測試的難度就越高,。持續(xù)集成/持續(xù)交付(CI/CD)等現(xiàn)代軟件開發(fā)方法有助于在軟件開發(fā)早期識別出缺陷,從而更容易確定缺陷出現(xiàn)的位置和時間,。針對嵌入式應(yīng)用的傳統(tǒng)硬件目標(biāo)不太適合持續(xù)集成流程,,因為它們依賴如開發(fā)板、JTAG連接設(shè)備,、專用機(jī)架以及散熱和遠(yuǎn)程復(fù)位硬件等專門的基礎(chǔ)設(shè)施,。虛擬平臺可以高彈性地部署在云服務(wù)器上,并且利用先進(jìn)的云計算服務(wù)和資源,,或大多數(shù)公司既有的服務(wù)器基礎(chǔ)架構(gòu),。這樣的虛擬平臺就很適合作為持續(xù)集成和自動化測試使用的沙箱環(huán)境。服務(wù)器硬件的降價加上低成本,、可擴(kuò)展容量在云端的可用性,,使軟件驗證沙箱成為驗證大型軟件平臺最先進(jìn)的方法。
策略對比
雖然虛擬原型具有諸多優(yōu)勢,,但硬件/軟件的共同開發(fā)和軟件早期開發(fā)也會用到其它方法,。其中最常用的是硬件仿真和FPGA原型設(shè)計。
1. 硬件仿真
硬件仿真指的是在硬件仿真器上編譯RTL設(shè)計,,主要用于系統(tǒng)的功能驗證,。仿真器的速度比在RTL模擬器中運行RTL要快幾個數(shù)量級。雖然速度還未快到足以支持大規(guī)模的軟件開發(fā),,但已足夠運行軟件實際工作負(fù)載,。該設(shè)計具有卓越的可見性,幾乎所有的信號都可以被暴露出來,,從而可以調(diào)試硬件/軟件接口,。
2. FPGA原型設(shè)計
FPGA原型設(shè)計指的是在現(xiàn)場可編程門陣列 (FPGA) 上合成RTL設(shè)計。與仿真相比,,F(xiàn)PGA速度快且成本相對較低,,但它很難配置和調(diào)試,。通常SoC設(shè)計的規(guī)模比最大的FPGA還要大,,因此需要將設(shè)計拆分成多個FPGA,這就給速度和時間安排帶來了挑戰(zhàn),。FPGA的速度比仿真器快幾個數(shù)量級,,進(jìn)而更加適合于軟件開發(fā)。
3. 虛擬原型
采用FPGA或仿真解決方案均需近乎完成的RTL來加載和運行軟件,。虛擬原型為軟件團(tuán)隊執(zhí)行諸多軟件任務(wù)提供了一種替代方案,。虛擬原型并不依賴于RTL,,并且可在RTL可用前的數(shù)月交付。
雖然沒有基于硬件的解決方案那么詳細(xì),,但模擬模型提供的性能更優(yōu),,可以靈活、輕松地重新配置設(shè)計,,并且具有出色的軟件調(diào)試和分析能力,。虛擬原型還特別適合于持續(xù)的軟件集成任務(wù),原因是它們的速度快且易于在計算場中部署,,這確保了開發(fā)期間更出色的軟件質(zhì)量,。
4. 混合技術(shù)
仿真、FPGA原型設(shè)計和虛擬原型設(shè)計各有利弊,,因此大多數(shù)項目都會混合使用這些技術(shù),。快速的功能虛擬原型與仿真混合使用可以做到兩全其美,,性能速度比單獨使用仿真器要快,,并且在虛擬模型上調(diào)試軟件的可見性和靈活性也得到了提高。虛擬原型和FPGA也可混合利用,,其中需要定期更改的設(shè)計部分將居于虛擬原型中,,而穩(wěn)定不變的設(shè)計部分則居于FPGA中。
此外,,還有一種混合解決方案是純虛擬原型,,先使用快速的功能模型以非常高的速度運行至軟件棧中的重要節(jié)點,然后再轉(zhuǎn)而使用更慢,、更準(zhǔn)確的模型進(jìn)行性能分析,。也就是在更快速的模型上運行軟件,直至到達(dá)重要節(jié)點,,然后再捕捉架構(gòu)狀態(tài),,也就是常說的檢查點技術(shù)。
5. 選擇合適的開發(fā)路徑
設(shè)計團(tuán)隊所面臨的最大挑戰(zhàn)在于要了解所有可用選項,,并能物盡其用,。對大多數(shù)項目而言,一條路徑可能并不足夠,。顯而易見的一大問題在于從何處獲取虛擬原型,?大多數(shù)情況下,IP供應(yīng)商在設(shè)計IP時會開發(fā)模型,,從而可以盡早驗證硬件/軟件接口,,并且更早地開始移植操作系統(tǒng)和開發(fā)驅(qū)動程序。這些虛擬原型可能之后會流向下游的最終用戶,,成為軟件開發(fā)的學(xué)習(xí)工具和平臺,。再者,,軟件服務(wù)供應(yīng)商也可創(chuàng)建芯片供應(yīng)商IP模型或?qū)⒍鄠€供應(yīng)商的IP集成至一個虛擬原型中,用以出售給任何使用該IP的人員,。
結(jié)論
SoC項目中遇到的軟件早期開發(fā)難題并不新鮮,,但和硬件的復(fù)雜性一樣,其難度一直在不斷增加,。項目需要混合使用各種技術(shù)和解決方案才能完成所有所需任務(wù),。軟件在系統(tǒng)早期設(shè)計中起著愈發(fā)重要的作用,特別是在IP的選擇和配置方面,。隨著嵌入式邊緣智能產(chǎn)品中不斷增加虛擬化技術(shù)和虛擬機(jī)監(jiān)控程序,,軟件也變得日益復(fù)雜,并且安全也與功能軟件棧同等重要,。
IP供應(yīng)商將更多精力放在了提供用于性能分析的周期精確模型,,以及用于開發(fā)完整軟件棧的快速功能模型上。仿真和FPGA原型設(shè)計等輔助技術(shù)及混合使用模式是IP供應(yīng)商支持軟件開發(fā)的另一種方式,。并不存在一勞永逸的解決方案,,因此項目團(tuán)隊要做的就是及時了解最新技術(shù),利用所有可能的解決方案,,并借助軟件的力量,,盡可能圓滿地交付SoC。