RISC-V 驗(yàn)證代表了驗(yàn)證領(lǐng)域的最新技術(shù)水平。
Cadence產(chǎn)品管理集團(tuán)總監(jiān) Pete Hardee 、Codasip戰(zhàn)略和生態(tài)系統(tǒng)副總裁 Mike Eftimakis?、?Imperas Software創(chuàng)始人兼首席執(zhí)行官Simon Davidmann、西門子 EDA處理器驗(yàn)證項(xiàng)目經(jīng)理Sven Beyer、Synopsys聯(lián)盟合作伙伴營(yíng)銷高級(jí)總監(jiān) Kiran Vittal、Breker Verification 首席執(zhí)行官 Dave Kelf和 Viosoft Corp 總裁兼首席技術(shù)官 Hieu Tran對(duì)半導(dǎo)體制造工具的差距以及為什么 RISC-V 處理器需要新方法展開了討論。以下是該對(duì)話的摘錄。
RISC-V 是否會(huì)成為特定領(lǐng)域處理器的重要參與者?
Hardee:我堅(jiān)信 RISC-V 將成為特定領(lǐng)域處理器的重要參與者。Arm 的架構(gòu)許可證持有者能夠?yàn)樘囟I(lǐng)域配置處理器。我們?cè)?RISC-V 中看到的是,將特定領(lǐng)域的數(shù)據(jù)路徑處理添加到 RISC-V 核心中,它可以找到應(yīng)用程序的各個(gè)領(lǐng)域。這很棒。RISC-V 能做到這一點(diǎn)真的很強(qiáng)大。但是,它也增加了驗(yàn)證挑戰(zhàn)。我們看到大量采用正式的、持續(xù)使用的動(dòng)態(tài)驗(yàn)證。RISC-V 的吸引力在于是否能夠更好地配置它,而不是現(xiàn)有的、不太靈活的 ISA。
Davidmann:過去在英特爾、Arm 和 MIPS 內(nèi)部構(gòu)建的技術(shù)在自由擴(kuò)展方面受到了很大限制。我們不應(yīng)該只是學(xué)習(xí)和復(fù)制已經(jīng)完成的事情。我們需要了解已經(jīng)完成的工作并將其應(yīng)用于應(yīng)對(duì)現(xiàn)代挑戰(zhàn)。十五年前,我們圍繞 Arm、MIPS 和 PowerPC 建立了模型。這些模型不是非常可配置、可擴(kuò)展或可定制的。因?yàn)槲覀儶?dú)立于他們所有人,所以我們可以專注并構(gòu)建我們的技術(shù),這樣您就可以選擇 ISA 的不同位、不同的配置。當(dāng) RISC-V 出現(xiàn)時(shí),我們已經(jīng)考慮過這種可擴(kuò)展性和可配置性和可擴(kuò)展性。我們有 12 個(gè)不同的 ISA。它不僅僅是一個(gè)模擬器。是建模能力、擴(kuò)展能力、調(diào)試器、分析、驗(yàn)證工具。RISC-V 對(duì)其他人來說都是一個(gè)挑戰(zhàn),而我們的技術(shù)已經(jīng)以我們可以應(yīng)用它的方式考慮在內(nèi)。我們不能只是為其他 ISA 使用以前存在的技術(shù)。我們需要弄清楚如何將它們調(diào)整為 RISC-V。RISC-V 有大約 70 個(gè)擴(kuò)展,已經(jīng)有工具開發(fā)人員已經(jīng)完全放棄并說,“我們無法滿足和測(cè)試 70 種不同的交互組合?!?RISC-V 正在做的是轉(zhuǎn)向他們所謂的配置文件和平臺(tái)。他們說有這個(gè)配置文件,用于嵌入到這個(gè)區(qū)域,并將這些擴(kuò)展作為強(qiáng)制性的。他們正試圖減少這種自由擴(kuò)展,因?yàn)楝F(xiàn)有的編譯器工具鏈無法應(yīng)對(duì)。
如果我們想要獲得 RISC-V 可以提供的東西,我們必須在它周圍的基礎(chǔ)設(shè)施中構(gòu)建更好的技術(shù),比如模擬器,其他工具比如編譯器,比如驗(yàn)證工具。它們都必須具有 RISC-V 為您提供的擴(kuò)展和配置的靈活性和自由度。我們不能只接受以前存在的東西。
Vittal:對(duì)于編譯器來說,所有的組合都需要很長(zhǎng)時(shí)間才能獲得性能。我們有一個(gè)工具可以使用支持 AI 的技術(shù)來提高軟件堆棧的性能。當(dāng)每個(gè)人都根據(jù)自己的需求進(jìn)行定制時(shí),就會(huì)有很多靈活性。你如何驗(yàn)證?這是最大的挑戰(zhàn)。
Eftimakis:引入 RISC-V 是為了支持這種定制能力——我們稱之為定制計(jì)算。隨著摩爾定律的終結(jié),這是總體上提高性能或效率的唯一途徑。RISC-V 就是為了做到這一點(diǎn)。它需要一種新的思維方式。它需要一個(gè)新工具。這就是為什么我們開發(fā)了您不會(huì)以固定方式思考一個(gè)指令集的工具。我們用高級(jí)語(yǔ)言描述指令集,然后生成 RTL、編譯器等背后的所有內(nèi)容。如果您使用固定編譯器的舊方法并嘗試將所有選項(xiàng)包含在同一個(gè)編譯器中,這是行不通的.
Davidmann:對(duì)于 RISC-V,為了給設(shè)計(jì)者他們需要的自由,我們需要解決什么是下一代語(yǔ)言的問題。我們將不得不轉(zhuǎn)向允許這種硬件可配置性的語(yǔ)言,其方式不同于稱之為實(shí)現(xiàn)語(yǔ)言(如 SystemVerilog)的可用方式。那是實(shí)現(xiàn)并進(jìn)入設(shè)計(jì)編譯器,但您需要的是在更抽象的層次上重新配置硬件的能力。未來,RISC-V 對(duì)每個(gè)人來說都會(huì)更容易。
Kelf:大多數(shù) RISC-V 開發(fā)都是相對(duì)較小的嵌入式處理器——單核類型的設(shè)備?,F(xiàn)在,公司開始關(guān)注應(yīng)用處理器、多核設(shè)備和具有多個(gè)內(nèi)核的平鋪 SoC?,F(xiàn)在我們將看到這些非常先進(jìn)的系統(tǒng)。即使在您讓應(yīng)用程序處理器開始工作之后,我們也不得不擔(dān)心諸如一致性之類的問題。這是我們確實(shí)需要向 Arm 學(xué)習(xí)的地方。我同意我們不能只保留舊的方法論并期望構(gòu)建這些超級(jí)可配置的處理器,但我們確實(shí)必須站在Arm的肩膀上。
Hardee:當(dāng)您開始從單一問題轉(zhuǎn)向更復(fù)雜的架構(gòu)時(shí),會(huì)出現(xiàn)很多問題。分支預(yù)測(cè)的問題、預(yù)取指令的問題、亂序執(zhí)行——所有這些問題。您將 OpenTitan 核心作為信任根。它沒有任何漏洞。當(dāng)您進(jìn)入更大的應(yīng)用程序架構(gòu)時(shí),您必須更加復(fù)雜才能獲得所需的性能。
Kelf:并發(fā)只是一個(gè)例子。像你剛才提到的還有幾十個(gè),我們還沒有開始接觸。這些大公司已經(jīng)想出了很多辦法。我們可以從那些人那里借用,但是我們必須構(gòu)建新東西以獲得可配置性和獲得額外的說明。Tensilica 和 ARC 也做到了這一點(diǎn)。所以我們需要看看那些人做了什么。
Davidmann:對(duì)于 RISC-V,很多人都在做單核嵌入式,但也有很多人在做相當(dāng)大、復(fù)雜的處理器陣列,無論它們是大型矢量引擎,有序的,亂序的-訂單,所有這些東西。其中一些有多個(gè)處理器。RISC-V 尚未用于高性能應(yīng)用程序進(jìn)程。當(dāng) Arm 開始考慮進(jìn)入數(shù)據(jù)中心時(shí),我們認(rèn)為這需要很長(zhǎng)時(shí)間,他們花了 10 多年的時(shí)間。因此RISC-V 在獲得高端應(yīng)用處理器之前最少還有 10 年的時(shí)間。
我們有幾個(gè)客戶在 RISC-V 中擁有應(yīng)用程序流程,他們說它可以引導(dǎo) Linux。當(dāng)我們應(yīng)用我們的 DV 解決方案時(shí),第一天我們發(fā)現(xiàn)了 20 個(gè)錯(cuò)誤。這是一個(gè)單線程的64GC,但它是一個(gè)相對(duì)簡(jiǎn)單的內(nèi)核。RISC-V驗(yàn)證的未來挑戰(zhàn)在于高端應(yīng)用處理器。它們是多問題、無序、虛擬內(nèi)存、緩存一致性。這就是RISC-V驗(yàn)證的真正挑戰(zhàn)所在。我們有開箱即用的解決方案,用于低端的東西,單線程,甚至無序的東西,但應(yīng)用處理器,高性能,這就是最大的挑戰(zhàn)所在。
Kelf:我們都記得 Arm 從 Arm7 到 Armv8 的時(shí)候。這是一個(gè)巨大的飛躍。這與我們?cè)谶@里談?wù)摰猛耆嗤?。Arm 的內(nèi)部驗(yàn)證從很多周期增加到 1015,Arm 確實(shí)解決了這個(gè)問題。我們都將不得不為 RISC-V 做同樣的事情,我們可以向他們學(xué)習(xí),然后利用它來應(yīng)對(duì)所有新的挑戰(zhàn)。
Hardee:Arm 做過很多演示,其中一個(gè)問題是它可能無法擴(kuò)展到大系統(tǒng)。但是 Arm 正在驗(yàn)證諸如加載存儲(chǔ)單元之類的東西。然后,您必須使用模擬和仿真來擴(kuò)大驗(yàn)證范圍,以解決全芯片級(jí)問題。
Kelf:還要弄清楚覆蓋范圍之類的事情。
Davidmann:當(dāng)我們與使用 RISC-V 的人進(jìn)行驗(yàn)證時(shí),他們說他們正在做一個(gè)應(yīng)用程序核心,如果他們沒有仿真,我們很快就會(huì)退出,因?yàn)樗麄儧]有認(rèn)真對(duì)待這個(gè)問題。
Vittal:它是驗(yàn)證軟件和硬件的結(jié)合。這需要仿真、原型制作、虛擬原型制作。一些 RISC-V 供應(yīng)商正在為參考板提供硬件原型設(shè)計(jì)解決方案。
驗(yàn)證的必要性 對(duì)于可配置的高級(jí)語(yǔ)言,您談到了生成編譯器和流程所需的其他內(nèi)容。我們是否需要查看您如何根據(jù)這些高級(jí)規(guī)范生成覆蓋模型?那么人們會(huì)有一個(gè)一致的目標(biāo),他們正在努力實(shí)現(xiàn)驗(yàn)證目標(biāo)嗎?
Hardee:覆蓋模型是一個(gè)不同的概念?;氐轿覀儚奶幚砥黩?yàn)證和 ASIC 驗(yàn)證之間的差異開始的地方,針對(duì) ASIC 驗(yàn)證計(jì)劃涵蓋所有場(chǎng)景的相同覆蓋模型不一定適用于處理器。你必須涵蓋所有可能發(fā)生的情況,包括所有這些不可預(yù)見的事情。這就是我們目前擁有的傳統(tǒng)覆蓋模型有些無效且不夠好的地方。
Kelf:隨著我們轉(zhuǎn)向更廣泛的應(yīng)用程序處理器,試圖提供一個(gè)功能覆蓋模型來檢查加載存儲(chǔ)到內(nèi)存中,你將一遍又一遍地雙重檢查相同的內(nèi)存單元,這是行不通的。UVM 樣式覆蓋模型非常重要,但遠(yuǎn)不足以檢查這些新的應(yīng)用程序處理器。場(chǎng)景覆蓋和其他規(guī)范覆蓋類型的想法將變得更加重要。
Vittal:我們一直在使用人工智能技術(shù)。我們查看約束隨機(jī)刺激的質(zhì)量,然后使用機(jī)器學(xué)習(xí)來改進(jìn)它。
Hardee:我們都在這樣做,但這還不夠。
Davidmann:功能覆蓋模型——Verilog 和 SystemVerilog——非常棒,它非常適合 RISC-V 的指令。但挑戰(zhàn)是當(dāng)我們進(jìn)入具有 MMU 和 TLB 的應(yīng)用程序處理器時(shí)。你有一個(gè)硬件頁(yè)表 walker。這只是記憶。然后當(dāng)出現(xiàn)頁(yè)面錯(cuò)誤時(shí),您有六個(gè)級(jí)別的頁(yè)表遍歷。這都是內(nèi)存數(shù)據(jù)結(jié)構(gòu)。你不能為此編寫SystemVerilog功能覆蓋。我們必須創(chuàng)建新的方法和技術(shù),以便他們知道他們?cè)?RTL 中測(cè)試了多少。
Eftimakis:這些工具并不完美。他們每個(gè)人都需要結(jié)合起來。我們需要積累這些方法,這些工具,以確保我們最終得到良好的覆蓋。但事實(shí)上,它需要很多不同的方法、不同的工具。這就是我們使用來自不同供應(yīng)商的工具的原因。我們使用的方法是從英特爾和 Arm 開發(fā)的方法中采用的。它需要獲得 CPU 所需的正確級(jí)別,因?yàn)樗娴暮軓?fù)雜。
Davidmann:你意識(shí)到的第一件事是你不能去構(gòu)建任何這些東西,你需要使用現(xiàn)有的東西,或者專門為你想要的東西構(gòu)建它。所以等待開源來解決你的問題的想法是錯(cuò)誤的。沒有商業(yè)工具,你無法驗(yàn)證任何東西。
Kelf:RISC-V 驗(yàn)證代表了驗(yàn)證領(lǐng)域的最新技術(shù)水平。
Hardee:RISC-V 的贏家將是那些投資于驗(yàn)證的人。有一些 RISC-V 參與者沒有在這方面投資,他們認(rèn)為不支付許可費(fèi)是更便宜的選擇,但這些參與者正在消亡。很明顯,投資驗(yàn)證絕對(duì)是 RISC-V 市場(chǎng)成功的關(guān)鍵。
編輯:黃飛
?
評(píng)論
查看更多