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