隨著軟件內(nèi)容的重要性和復(fù)雜性不斷增長(zhǎng),該行業(yè)正面臨由多個(gè)異構(gòu)處理器帶來的挑戰(zhàn),這些處理器的通信比過去更加緊密。為了確保高質(zhì)量軟件的快速上市,開發(fā)人員需要一個(gè)高性能、系統(tǒng)級(jí)的硬件虛擬原型,可以在其上設(shè)計(jì)、實(shí)施和測(cè)試軟件。雖然以前的原型在開發(fā)周期中太慢或到達(dá)太晚,但最近宣布的開放虛擬平臺(tái) (OVP) 計(jì)劃可實(shí)現(xiàn)早期和快速的虛擬原型可用性。
電子設(shè)計(jì)自動(dòng)化 (EDA) 流程建立在模型可互操作且供應(yīng)商之間可自由互換的基本前提之上,這意味著模型可以從任何地方編寫或獲取,并且可以被任何供應(yīng)商的工具所接受。這些特性對(duì)于支持高性能原型所需的抽象模型來說是難以捉摸的。正因?yàn)槿绱?,EDA 未能提供能夠提供適當(dāng)級(jí)別的功能和執(zhí)行速度的系統(tǒng)級(jí)虛擬原型。
硬件和軟件領(lǐng)域發(fā)生的重大變化很快就會(huì)使沒有抽象模型的系統(tǒng)無法構(gòu)建。通過采用重用,設(shè)計(jì)人員現(xiàn)在基本上是在組裝復(fù)雜的嵌入式系統(tǒng),如樂高系統(tǒng)。處理器的復(fù)雜性已經(jīng)碰壁了,這是由于以巨大的功率增加為代價(jià)而降低性能增益所造成的,因此今天的大多數(shù)系統(tǒng)都使用多個(gè)異構(gòu)處理器而不是一個(gè)中央處理器。隨著系統(tǒng)功能的不斷增長(zhǎng),它必須應(yīng)對(duì)向多處理器世界的過渡。由于所有這些變化,如果沒有可行的系統(tǒng)級(jí)模型,設(shè)計(jì)人員就無法繼續(xù)構(gòu)建系統(tǒng),在該模型上可以設(shè)計(jì)和驗(yàn)證此功能和架構(gòu)。
歷史的角度
硬件/軟件覆蓋
一些公司試圖通過提供可用于軟件開發(fā)的虛擬硬件模型將硬件和軟件社區(qū)結(jié)合在一起。例如,Mentor Graphics 的無縫替代每個(gè)處理器的指令集模擬器 (ISS) 模型,并將它們集成到傳統(tǒng)的寄存器傳輸級(jí) (RTL) 仿真環(huán)境中。該模型有助于驅(qū)動(dòng)程序調(diào)試,但對(duì)于其他任何事情都缺乏足夠的性能。無縫產(chǎn)品還包括幾個(gè)虛擬化主機(jī)內(nèi)存系統(tǒng)的性能增強(qiáng)器,從而將其使用擴(kuò)展到一些低級(jí)操作系統(tǒng)領(lǐng)域。
在后來的幾年中,更快的模型取代了 RTL 模型,例如 C 或 SystemC 模型。盡管這些模型提供了更好的性能,但復(fù)雜的系統(tǒng)仍然運(yùn)行得太慢,不適合主流軟件使用。
SystemC 原型
業(yè)界花費(fèi)了大量時(shí)間和精力來構(gòu)建基于 SystemC 的虛擬平臺(tái)。示例包括由 CoWare創(chuàng)建和擴(kuò)展的平臺(tái)以及 Eclipse 虛擬原型平臺(tái) (VPP)下的擬議工作項(xiàng)目。這些原型提供了一個(gè)靈活且適應(yīng)性強(qiáng)的平臺(tái),可以在該平臺(tái)上分析總線流量、功率、性能和許多其他實(shí)現(xiàn)屬性。雖然比討論的 RTL 原型快得多,但這些原型的性能水平使其保持在硬件驗(yàn)證和固件開發(fā)領(lǐng)域。
此外,SystemC 未能解決模型互操作性問題,這是 Open SystemC Initiative (OSCI) Transaction-Level Modeling (TLM) 小組正試圖糾正的問題。該集團(tuán)的最新嘗試并沒有給業(yè)內(nèi)許多人留下深刻印象,因?yàn)橛行┤朔Q這項(xiàng)努力“太少太晚了”。此外,這個(gè)提議的標(biāo)準(zhǔn)只涉及內(nèi)存映射接口,限制了它定義完整系統(tǒng)級(jí)原型的能力。
其他公司,如 Virtutech 和 VaST Systems已經(jīng)放棄了標(biāo)準(zhǔn)領(lǐng)域,并使用定制語言和工具來創(chuàng)建更快的處理器模型、內(nèi)存系統(tǒng)和硬件的某些方面。雖然這些公司已經(jīng)成功地創(chuàng)建了具有更高性能的原型,但它們?nèi)允艿侥P涂捎眯院蛯S懈袷絾栴}的困擾。
不斷變化的需求和日益增加的復(fù)雜性
今天的大多數(shù)原型都包含時(shí)序,這對(duì)于硬件和架構(gòu)驗(yàn)證以及低級(jí)驅(qū)動(dòng)程序測(cè)試至關(guān)重要。但是時(shí)間信息會(huì)減慢原型的速度。對(duì)于處理應(yīng)用程序開發(fā)的軟件團(tuán)隊(duì),時(shí)間信息是不必要的。時(shí)間隨著每個(gè)處理器的計(jì)時(shí)而前進(jìn),并且每個(gè)線程的事件以正確的順序前進(jìn)。
為了可靠地工作,多處理器應(yīng)用程序必須執(zhí)行不依賴于時(shí)間的同步。因此,軟件社區(qū)的系統(tǒng)級(jí)模型可以完全放棄計(jì)時(shí),而是依賴于執(zhí)行的順序和線程之間的適當(dāng)同步。使用信號(hào)量、握手或其他機(jī)制執(zhí)行同步,以確保需要通信的兩個(gè)軟件線程都處于交換數(shù)據(jù)的必要狀態(tài)。
隨著時(shí)間的推移,開發(fā)人員不再關(guān)心單個(gè)塊或孤立的算法如何發(fā)揮作用,而是關(guān)心控制和協(xié)調(diào)塊和算法以形成一個(gè)完整的多功能系統(tǒng)。這種額外的能力會(huì)導(dǎo)致復(fù)雜性增加??傁到y(tǒng)復(fù)雜度與通信的獨(dú)立節(jié)點(diǎn)數(shù)量的平方成正比。這些節(jié)點(diǎn)可以相互通信并協(xié)作以執(zhí)行全部功能。暗示,這些節(jié)點(diǎn)中的每一個(gè)都執(zhí)行獨(dú)立的任務(wù)或與其他節(jié)點(diǎn)協(xié)調(diào)以完成更復(fù)雜的任務(wù)。隨著多處理器片上系統(tǒng) (SoC) 的出現(xiàn),軟件現(xiàn)在已成為真正的多節(jié)點(diǎn),因?yàn)榫€程可以以完全并發(fā)的方式執(zhí)行并實(shí)時(shí)相互交互。
多處理器軟件需求
過去,將代碼交叉編譯到主機(jī)上既快捷又簡(jiǎn)單。但是,這不適用于多處理器軟件。盡管當(dāng)前的臺(tái)式機(jī)現(xiàn)在有兩個(gè)或四個(gè)處理器,但它們提供的關(guān)于軟件如何在實(shí)際嵌入式硬件上運(yùn)行或執(zhí)行的視圖不太可靠,這些硬件可能在處理器之間進(jìn)行特殊通信或需要異構(gòu)處理器。多處理器軟件需要更精確的原型來研究應(yīng)用程序通信和同步。
在規(guī)模的另一端,許多公司利用物理原型進(jìn)行軟件驗(yàn)證。雖然這些原型以近乎實(shí)時(shí)的速度運(yùn)行并具有準(zhǔn)確的時(shí)序,但它們?cè)陂_發(fā)周期中可用的太晚了,因?yàn)檐浖邪l(fā)現(xiàn)的問題無法通過硬件的必要更改來反映。隨著多處理器系統(tǒng)的引入,實(shí)時(shí)查看每個(gè)處理器在做什么變得更加困難,單步執(zhí)行等操作幾乎是不可能的。設(shè)計(jì)人員需要一個(gè)能夠提供相同性能水平但在設(shè)計(jì)周期早期可用的平臺(tái)。
過壓保護(hù)概述
OSCI 維護(hù) SystemC 語言并提供免費(fèi)的模擬器。盡管這些產(chǎn)品看似有益,但實(shí)際上它們扼殺了商業(yè)進(jìn)步。此外,SystemC 也未能解決前面討論的模型互操作問題。
Imperas 最近推出了 OVP 計(jì)劃,以推廣開放虛擬平臺(tái)的概念。OVP 鼓勵(lì)開發(fā)人員采用新的嵌入式軟件開發(fā)方式,尤其是針對(duì) SoC 和多處理器 SoC 平臺(tái)。該公司對(duì) OVP 和 OVPsim 采取了不同的方法,首先向公眾提供接口,從而解決模型互操作性問題。該公司提供了幾個(gè)模型來演示接口的功能以及一個(gè) Windows 平臺(tái)模擬器,供開發(fā)人員構(gòu)建和調(diào)試模型。
接口
OVP 包含四個(gè) C 接口,如圖 1 所示。
圖1
ICM 將系統(tǒng)模塊聯(lián)系在一起,例如處理器、內(nèi)存子系統(tǒng)、外圍設(shè)備和其他硬件模塊。ICM 是一個(gè) C 接口,當(dāng)編譯并與每個(gè)模型和一些目標(biāo)文件鏈接時(shí),它會(huì)生成一個(gè)可執(zhí)行模型。鑒于它是標(biāo)準(zhǔn) C 代碼,任何 C 編譯器都可用于創(chuàng)建模型。ICM 接口還允許定義內(nèi)存映像,以便可以將程序或數(shù)據(jù)預(yù)加載到系統(tǒng)模型中。
VMI 是允許處理器模型與內(nèi)核和其他組件進(jìn)行通信的虛擬機(jī)或處理器接口。VMI 本質(zhì)上是 OVP 提供的高性能執(zhí)行的核心。OVP 使用帶有即時(shí)編譯器的代碼變形方法將處理器指令映射到主機(jī)提供的指令中。中間是一組優(yōu)化的操作碼,處理器操作映射到其中。OVPsim 提供對(duì)本機(jī)機(jī)器功能的解釋或編譯。這與解釋每條指令的傳統(tǒng) ISS 方法不同。VMI 還為文件 I/O 等功能啟用了一種虛擬化形式,允許使用提供的標(biāo)準(zhǔn)庫在主機(jī)上直接執(zhí)行。
PPM 是外圍建模接口,類似于第四個(gè)接口 BHM,用于更通用的行為。這些模型在模擬器的第二部分運(yùn)行,稱為外圍模擬引擎。OVPworld 聲明“這是一個(gè)受保護(hù)的運(yùn)行時(shí)環(huán)境,不會(huì)使模擬器崩潰”。它通過為每個(gè)模型創(chuàng)建單獨(dú)的地址空間并將通信限制為 API 提供的機(jī)制來實(shí)現(xiàn)這一點(diǎn)。這兩個(gè)接口之間的主要區(qū)別在于 PPM 接口理解總線和網(wǎng)絡(luò)。因此,它在功能方面類似于 OSCI TLM 接口提案。BHM 更類似于具有流程激活和等待時(shí)間或特定事件的能力的傳統(tǒng)行為建模語言。
性能基準(zhǔn)
OVPworld 網(wǎng)站上提供了幾種不同的處理器模型和預(yù)打包的演示。開發(fā)人員可以使用免費(fèi)的模擬器來創(chuàng)建自己的平臺(tái)。表 1 顯示了運(yùn)行各種基準(zhǔn)測(cè)試的每個(gè)內(nèi)核獲得的性能結(jié)果。
硬件/軟件虛擬原型的基石
OVP 有可能為硬件和軟件開發(fā)提供真正的系統(tǒng)級(jí)虛擬原型。它有望成為第一個(gè)通用抽象建模系統(tǒng),將形成完整流向硬件和軟件社區(qū)的基石。雖然這在 DSP 設(shè)計(jì)等專業(yè)領(lǐng)域之前已經(jīng)完成,但在更一般的情況下從未解決過。OVP 已經(jīng)為這些原型打開了商業(yè)市場(chǎng),這意味著它可以比 SystemC 獲得更多的商業(yè)關(guān)注。如果成功,OVP 將解決模型互操作性問題,從而使整個(gè)行業(yè)受益。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19440瀏覽量
231322 -
dsp
+關(guān)注
關(guān)注
554文章
8059瀏覽量
350673 -
總線
+關(guān)注
關(guān)注
10文章
2905瀏覽量
88450
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
DMD芯片在虛擬現(xiàn)實(shí)中的應(yīng)用分享
ar與虛擬現(xiàn)實(shí)的區(qū)別 如何優(yōu)化ar應(yīng)用的用戶界面
具身智能在虛擬現(xiàn)實(shí)中的應(yīng)用實(shí)例
增強(qiáng)現(xiàn)實(shí)和虛擬現(xiàn)實(shí)的聯(lián)系和區(qū)別
虛擬現(xiàn)實(shí)技術(shù)的應(yīng)用領(lǐng)域有哪些
虛擬現(xiàn)實(shí)與完全現(xiàn)實(shí)的區(qū)別
虛擬現(xiàn)實(shí)技術(shù)和增強(qiáng)現(xiàn)實(shí)技術(shù)區(qū)別與聯(lián)系
增強(qiáng)現(xiàn)實(shí)技術(shù)(AR)和虛擬現(xiàn)實(shí)技術(shù)(VR)的區(qū)別?
虛擬現(xiàn)實(shí)技術(shù)在軍事上的應(yīng)用有哪些
虛擬現(xiàn)實(shí)(VR)和數(shù)字孿生(DT)的聯(lián)系與區(qū)別
室內(nèi)設(shè)計(jì)MR混合現(xiàn)實(shí)情景實(shí)訓(xùn)教學(xué)系統(tǒng)開發(fā)
歌爾光學(xué)獲批國家級(jí)虛擬現(xiàn)實(shí)創(chuàng)新中心光學(xué)精密檢測(cè)權(quán)
本田推“擴(kuò)展現(xiàn)實(shí)”體驗(yàn),融合虛擬現(xiàn)實(shí)與自平衡輪椅
穿越虛擬與現(xiàn)實(shí)的邊界:XR技術(shù)重塑短劇敘事
詳細(xì)介紹OVP過壓保護(hù)芯片的功能及使用方法
![詳細(xì)介紹<b class='flag-5'>OVP</b>過壓保護(hù)芯片的功能及使用方法](https://file1.elecfans.com/web2/M00/C0/A4/wKgZomXXIAKANaX1AAA-3EyZ4q0373.png)
評(píng)論