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