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