是否存在用于 RISC-V 驗(yàn)證的必要工具?
Semiconductor Engineering 與 Cadence 產(chǎn)品管理集團(tuán)總監(jiān) Pete Hardee 坐下來(lái)討論 RISC-V 處理器的驗(yàn)證;參與討論的還有 Codasip 戰(zhàn)略和生態(tài)系統(tǒng)副總裁 Mike Eftimakis ;Simon Davidmann,Imperas Software 創(chuàng)始人兼首席執(zhí)行官;Sven Beyer,西門子 EDA 處理器驗(yàn)證項(xiàng)目經(jīng)理;Synopsys 聯(lián)盟合作伙伴營(yíng)銷高級(jí)總監(jiān) Kiran Vittal ;Breker Verification 首席執(zhí)行官 Dave Kelf 和 Viosoft Corporation 總裁兼首席技術(shù)官 Hieu Tran。
本文引用地址:http://www.ex-cimer.com/article/202304/445325.htmSE:RISC-V 驗(yàn)證流程是什么樣的?
Kelf: 我們將處理器的驗(yàn)證看作是一堆活動(dòng),但在那個(gè)堆棧中有很多環(huán)回。許多公司將遵守 ISA 視為一項(xiàng)單獨(dú)的活動(dòng)。他們將執(zhí)行「Hello World」測(cè)試作為第一個(gè)堆棧,以確保一切正常運(yùn)行,然后他們將運(yùn)行盡可能多的一致性測(cè)試。他們嘗試匹配 ISA,然后開始測(cè)試微架構(gòu)。我們看到發(fā)生的事情是,當(dāng)他們運(yùn)行一致性測(cè)試時(shí),他們可能看起來(lái)獲得了一致性,然后他們開始編寫微架構(gòu)測(cè)試,當(dāng)他們?cè)诙褩V凶叩酶h(yuǎn)時(shí),他們會(huì)提出一些問題,我們可以驗(yàn)證核心與系統(tǒng)其余部分的關(guān)系嗎?我們可以在上面啟動(dòng)操作系統(tǒng)嗎?它是否具有必要的性能?他們能否分析設(shè)計(jì)以確保性能正確并啟動(dòng)這些驗(yàn)證活動(dòng)以揭示驗(yàn)證中的更多錯(cuò)誤?當(dāng)我們測(cè)試常規(guī) ASIC 或常規(guī)核心時(shí),你可以運(yùn)行所有驗(yàn)證活動(dòng),獲得非常好的覆蓋率,然后在最后進(jìn)行驗(yàn)證。通常不必返回驗(yàn)證。有了這些處理器,你就可以做到。你必須始終通過該驗(yàn)證堆棧來(lái)回移動(dòng)。這真的會(huì)減慢你的速度,以及該架構(gòu)的整個(gè)驗(yàn)證過程。黃金參考模型變得至關(guān)重要。Imperas 模型被許多人公認(rèn)為最先進(jìn)的行業(yè)標(biāo)準(zhǔn)模型。我們一直在使用這些模型。引入一個(gè)你可以依賴的真正可靠的核心參考模型正變得至關(guān)重要。你可以測(cè)試微架構(gòu),你可以針對(duì)該核心模型測(cè)試與系統(tǒng)其余部分的一些交互,并真正更清楚地了解實(shí)際處理器中發(fā)生的事情。
Tran:對(duì)于 RISC-V,黃金參考模型的想法是否可行我有些懷疑。如果回到 Unix 出現(xiàn)的那一天,就會(huì)有少數(shù)供應(yīng)商擁有自己的實(shí)現(xiàn)。有 Solaris、SVR4、IBM 的 AIX 等等選擇。從所有這些不同的 Unix/Linux 實(shí)現(xiàn)中實(shí)現(xiàn)一個(gè)可以跨平臺(tái)運(yùn)行的通用可執(zhí)行文件的想法是不可能的。每個(gè)供應(yīng)商都受到激勵(lì)來(lái)構(gòu)建增值和自定義擴(kuò)展,這將使他們與其他供應(yīng)商脫穎而出。我們?cè)谶@里看到了 RISC-V。與 x86 和 Arm 不同的是,大多數(shù)實(shí)現(xiàn)都在 Intel 或 Arm 的保護(hù)傘下,實(shí)際上有數(shù)百個(gè)不同的機(jī)構(gòu)和組織在構(gòu)建他們自己的 RISC-V 實(shí)現(xiàn)。當(dāng)你談?wù)撌噶繑U(kuò)展之類的東西時(shí),在規(guī)范如此之大的情況下,許多實(shí)施者決定只實(shí)施該擴(kuò)展的一個(gè)子集。你將如何創(chuàng)建一個(gè)通用的黃金參考模型來(lái)驗(yàn)證針對(duì)這種實(shí)施方式的執(zhí)行情況?其次,當(dāng)我們談?wù)搱?zhí)行的驗(yàn)證和驗(yàn)證時(shí),你必須更深入地了解工具鏈和操作系統(tǒng)。以矢量擴(kuò)展為例。我接觸過并與之合作的每個(gè)供應(yīng)商都有自己的編譯器,他們自己的 LLVM 實(shí)現(xiàn)來(lái)支持他們的矢量擴(kuò)展。而且它們中沒有一個(gè)與其他的兼容。因此,你可以從供應(yīng)商 A 那里獲取 LLVM 編譯器,生成代碼,但對(duì)于供應(yīng)商 B 的實(shí)施來(lái)說(shuō),它的效率不會(huì)很高。
Davidmann: 我顯然不同意這個(gè)評(píng)論。RISC-V 完全是一場(chǎng)噩夢(mèng),因?yàn)橛刑噙x擇。這是兼容性和合規(guī)性的挑戰(zhàn)之一。有這么多配置選項(xiàng),都是合法的,但最大的問題是,如何創(chuàng)建參考模型?但它比那更糟。每三個(gè)月,每個(gè)擴(kuò)展都會(huì)有一個(gè)新版本。在我們的模擬器中,它是一個(gè)完整的參考。它對(duì)于任何獨(dú)立的子集都是完全可配置的,而且對(duì)于版本也是如此。我們有 11 個(gè)版本的向量,其中 4 個(gè)已經(jīng)進(jìn)入硅片。我不認(rèn)為這有什么問題,只要它的設(shè)計(jì)和架構(gòu)是正確的。RISC-V 提供了將事情做得更好的機(jī)會(huì)。我們不能接受只有一個(gè) Arm 或一個(gè) Intel 的舊方式。那是行不通的。如果舊世界是你可以有一個(gè)做一件事的參考模型,那么新世界是你有一個(gè)可以做 100 件事的參考模型。這就是我們要去的地方。否則,RISC-V 將永遠(yuǎn)無(wú)法完成它的使命。我們必須解決這些問題。
Hardee:我們知道處理器的實(shí)現(xiàn),細(xì)節(jié)決定成敗。我們當(dāng)然同意你的看法,即 SystemVerilog,Verilog,在捕獲這些實(shí)現(xiàn)細(xì)節(jié)方面要好得多。但是你必須根據(jù)捕獲意圖的更高級(jí)別模型來(lái)驗(yàn)證該實(shí)現(xiàn)。那不是一個(gè)單一的參考模型。它可以是很多,也可以是為我們正在談?wù)摰脑S多變體創(chuàng)建參考模型的標(biāo)準(zhǔn)化方法。
Davidmann:五六年前,我是 RISC-V 國(guó)際組織的一員,該組織研究了形式化并最終選擇 SAIL 作為構(gòu)建黃金參考模型的語(yǔ)言。我們弄錯(cuò)的是 SAIL 不是很容易配置。它非常適合一種架構(gòu)。對(duì)于 Arm,這太棒了。他們擁有從定義開始的整個(gè)流程,一直到構(gòu)造正確,一直到正式描述,這非常棒。RISC-V 的挑戰(zhàn)在于它在設(shè)計(jì)上具有無(wú)限的可配置性。因此,在 SAIL 中對(duì)其進(jìn)行建模是一個(gè)真正的挑戰(zhàn)。這就是 Imperas 選擇動(dòng)態(tài)模型的原因。
Vittal:幾乎每家公司都在采用 RISC-V。甚至領(lǐng)先的半導(dǎo)體供應(yīng)商也在進(jìn)行 RISC-V 設(shè)計(jì),許多初創(chuàng)公司也是如此。但關(guān)鍵是能夠有一個(gè)成功的驗(yàn)證計(jì)劃,你有非常高質(zhì)量的刺激來(lái)實(shí)現(xiàn)你的覆蓋目標(biāo)。驗(yàn)證和調(diào)試齊頭并進(jìn)。硬件/軟件調(diào)試,逐步執(zhí)行代碼以同時(shí)查看問題?;氐郊軜?gòu)的靈活性,這帶來(lái)了挑戰(zhàn)——同時(shí)也為我們所有人帶來(lái)了機(jī)遇。正在開發(fā)創(chuàng)新的解決方案。RISC-V 供應(yīng)商和 EDA 工具公司以及其他 EDA 合作伙伴等之間正在進(jìn)行大量協(xié)作。
Kelf:有些公司已經(jīng)在一定程度上解決了這個(gè)問題。RISC-V 的無(wú)限可配置性,所有這些都是真的。但歸根結(jié)底,Arm 和 Intel 已經(jīng)解決了他們的可配置性稍差的處理器的驗(yàn)證問題。他們有一個(gè)流程,或一系列復(fù)雜的流程,這些流程包括一系列不同的活動(dòng)。Arm 使用很多正式工具,做很多不同的事情。一個(gè)好的起點(diǎn)可能是查看其中一些人在他們的流程中正在做什么,并嘗試將其中的一些自動(dòng)化。你需要一些可以被所有試圖做 RISC-V 處理器并一起合作的人使用的東西——合作提出這些更通用的流程,看看我們是否可以標(biāo)準(zhǔn)化其中的一些東西。而不是在適當(dāng)?shù)臉?biāo)準(zhǔn)意義上,
SE:你們提到我們確實(shí)需要新工具、新流程。如今缺少什么呢?我們?nèi)绾未_定某人需要提供的東西是什么?
Kelf:有很多人在內(nèi)部做 RISC-V 處理器,他們正在重新開始。他們正在學(xué)習(xí)如何進(jìn)行處理器驗(yàn)證。像 Codasip 這樣的公司從 Arm 和 Intel 等公司引進(jìn)了具有豐富經(jīng)驗(yàn)和專業(yè)知識(shí)的人,他們確實(shí)知道該做什么。因此,我們看到其中一些公司現(xiàn)在正在生產(chǎn)流程,他們正在考慮諸如「處理器能否支持完全一致性?」之類的問題。它是否適用于系統(tǒng)的其余部分?RISC-V 內(nèi)部的安全指令,如 PMP(物理內(nèi)存保護(hù))指令能否正確運(yùn)行?
Davidmann:當(dāng)我們?cè)谖辶昵伴_始使用 RISC-V 時(shí),RISC-V 沒有什么特別的東西。我們有 Verilog 模擬器,你有一些正式的東西,你可以寫一些屬性。有 GCC,你可以運(yùn)行它并調(diào)試它。就是這樣。我們?cè)谶^去五年中看到的是,人們通過學(xué)習(xí)如何以專有方式驗(yàn)證處理器而衍生出許多工具和技術(shù)。我們一直在努力讓它更加公開。我們一直在努力了解英特爾和 Arm 是如何做到的,以及所使用的技術(shù)類型。我們一直在 OpenHW 內(nèi)工作,我負(fù)責(zé)驗(yàn)證任務(wù)。它是關(guān)于具有工業(yè)質(zhì)量的開源硅。這與使用開源工具無(wú)關(guān)。我們?cè)谶^去幾年學(xué)到的是很多不同的技術(shù),很多不同的做事方式,我們已經(jīng)發(fā)展并構(gòu)建了像這個(gè)可配置的參考模型這樣的工具,比如為你做驗(yàn)證的技術(shù),比如我們一直在發(fā)展的功能覆蓋,以試圖檢查 Linux 有多好運(yùn)行。人們一直在構(gòu)建測(cè)試生成器。其他公司一直在構(gòu)建正式工具,例如西門子的 OneSpin Technologies,它們專注于 RISC-V。已經(jīng)有三四家其他公司參與了正式方面的工作。我們看到的是正在構(gòu)建一些特定的 RISC-V 技術(shù),正在構(gòu)建一些驗(yàn)證 IP,越來(lái)越多的 EDA 供應(yīng)商正在學(xué)習(xí)人們需要的方法,并且他們正在構(gòu)建工具。但現(xiàn)在還為時(shí)尚早。我們距離真正使用 RISC-V 僅五年時(shí)間,并且可能需要幾年的時(shí)間才能進(jìn)入商業(yè)領(lǐng)域。之前有五年的學(xué)術(shù)工作。像 Codasip 這樣的公司,以及硅 IP 的其他商業(yè)供應(yīng)商,確實(shí)在內(nèi)部發(fā)展和構(gòu)建技術(shù)以進(jìn)行驗(yàn)證。我們正在努力幫助將它們構(gòu)建為商業(yè)工具,一些 EDA 供應(yīng)商也是如此。我們正處于 RISC-V 驗(yàn)證技術(shù)新時(shí)代的開端。
Vittal:主流處理器開發(fā)人員知道他們?cè)谧鍪裁础K麄円郧白鲞^ x86 和 Arm。他們正在采用 RISC-V,而且他們確切地知道該做什么。他們還利用開源社區(qū)。對(duì)于主流,當(dāng)你查看 RISC-V 時(shí),它正在被主流設(shè)計(jì)師采用,這就是他們需要方法的地方,那也就是缺少的東西。Synopsys 提供驗(yàn)證和驗(yàn)證所需的一切,包括軟件和硬件。我們有 VIP,我們有正式的技術(shù),我們有數(shù)據(jù)路徑,但缺少的是一種方法論。并且該方法具有處理器驗(yàn)證工程師和其他專家的專業(yè)知識(shí)。
Eftimakis:這是 IP 供應(yīng)商的秘密武器。這就是我們內(nèi)部所做的。
Davidmann:像 Imperas 這樣的公司正在努力使它更加公開。它以前可能是專有 IP。我們提供了一個(gè)關(guān)于 RISC-V 處理器驗(yàn)證參考流程的 90 分鐘教程。它列出了你需要的所有不同部分,以及當(dāng)今可用的技術(shù)和不可用的技術(shù)。我們談?wù)摶谏虡I(yè)技術(shù)的測(cè)試生成器。
Vittal:我們有類似的東西,我們的客戶可以從使用開源核心的門戶網(wǎng)站下載。這可以帶你完成整個(gè)驗(yàn)證過程。
Beyer:添加新工具是關(guān)鍵,但我們需要高度可配置的 RISC-V 參考模型,并使其可用于工具和流程。然后我們可以圍繞它構(gòu)建一些東西,以便沒有深厚經(jīng)驗(yàn)的人可以達(dá)到對(duì) RISC-V 內(nèi)核擁有體面驗(yàn)證經(jīng)驗(yàn)的地步。
Eftimakis:我們已經(jīng)將工具集成到我們的流程中,包括 Imperas 和 OneSpin。這是我們認(rèn)為成為 RISC-V 一部分的好處,因?yàn)槲覀兛梢岳眠@些為生態(tài)系統(tǒng)構(gòu)建的工具,并將它們集成到我們的驗(yàn)證流程中。我們可以將比較與模型、模擬、形式驗(yàn)證、斷言等結(jié)合起來(lái)。這是我們從成為這個(gè)生態(tài)系統(tǒng)的一部分中獲得的好處。
評(píng)論