隨著 RISC-V 的成功,許多公司都開始對開發(fā)自己的處理器打起了主意,但是,處理器的驗證是一項艱巨的挑戰(zhàn)。
RISC-V 處理器的問世和現(xiàn)階段的成功重新激發(fā)了業(yè)界設(shè)計定制處理器的興趣,但是現(xiàn)在,人們發(fā)現(xiàn)對它們的驗證成了一個難題。過去二十年曾經(jīng)出現(xiàn)在市場上的專業(yè)經(jīng)驗和工具現(xiàn)在都已經(jīng)集中到了少數(shù)出售處理器芯片或 IP 核的公司手中。
處理器的驗證與其他 IP 和 SoC 的驗證都有所不同,處理器是通用硬件的終極形式之一,它有自己獨(dú)特的問題。
Cadence Design Systems 公司副總裁兼總經(jīng)理 Paul Cunningham 說:“它可以運(yùn)行任何軟件程序。它是您能想象到的配置性最好的深能態(tài)器件之一。確切地說,如果我說我已經(jīng)完成了對 CPU 的驗證,那就意味著我已經(jīng)運(yùn)行了可以在該 CPU 上運(yùn)行的所有軟件程序,您當(dāng)然永遠(yuǎn)不會這樣做,因為很難做到這樣,所以,CPU 的驗證非常困難?!?/p>
在一個硬件必須盡可能靈活的時代,在軟件中執(zhí)行盡可能多的操作是一項明智之舉。Imperas 軟件首席執(zhí)行官 Simon Davidmann 表示:“只需要編寫一點(diǎn)軟件便可以在處理器中構(gòu)建狀態(tài)機(jī),這種方法比在 Verilog 中創(chuàng)建狀態(tài)機(jī)要好得多。如果您在 Verilog 中構(gòu)建狀態(tài)機(jī),當(dāng)你發(fā)現(xiàn)錯誤的時候,你必須重新燒錄芯片。但是,如果您構(gòu)建了一個小型控制器并在其中對狀態(tài)機(jī)進(jìn)行編程,當(dāng)出現(xiàn)問題時你可以等會兒再解決這個問題?!?/p>
但這帶來了兩個問題。 VTool 首席執(zhí)行官 Hagai Arbel 說:“在最近的處理器驗證項目中,你會發(fā)現(xiàn),必須讓軟件團(tuán)隊參與驗證過程。這種做法帶來了一系列全新的挑戰(zhàn),因為軟件人員無論是在技術(shù)上還是在心里面,和驗證人員用的都是不同的語言?!?/p>
第二個問題是驗證。西門子業(yè)務(wù)部門 Mentor 的首席技術(shù)專家 Duaine Pryor 說:“處理器的水準(zhǔn)取決于它驗證到什么程度,采用暴力算法進(jìn)行驗證收斂是不可行的,我們在高端和低端市場都看到了這種情況?!?/p>
處理器的某些方面是通用的,與項目的規(guī)模無關(guān)。 “處理器驗證大致可以分為控制驗證和數(shù)據(jù)路徑驗證兩個部分,” Arm 中央工程團(tuán)隊架構(gòu)師兼研究員 Daniel Schostak 說。 “這兩種驗證都不簡單,都面臨一些挑戰(zhàn)??刂乞炞C的主要挑戰(zhàn)來自于交互組件的數(shù)量,你需要確保覆蓋所有的極端情況;數(shù)據(jù)路徑驗證的主要挑戰(zhàn)來自于確定邊界情況,以便能夠正確地覆蓋這些邊界。有關(guān)面積、性能或功率的微體系結(jié)構(gòu)特征也會使這些挑戰(zhàn)進(jìn)一步復(fù)雜化?!?/p>
在開源領(lǐng)域,尤其是在 RISC-V 方面,這個問題更加復(fù)雜。 “一方面,您可以進(jìn)行功能驗證,” Aldec 市場營銷總監(jiān) Louie De Luna 說。 “但是隨后您還將進(jìn)行合規(guī)性測試。您需要確保所有的定制指令均與源代碼兼容。這會影響您的覆蓋模型,并且實(shí)際上這一塊還沒有工具流程。在這方面仍有許多工作要做。除了學(xué)習(xí)如何使用所有工具外,您還必須了解如何將其用于測試?!?/p>
不斷攀升的復(fù)雜性
盡管自 2000 年左右以來處理器性能沒有顯著的提升,但這并不意味著它的復(fù)雜性一成不變?!拔覀?nèi)匀豢梢园l(fā)現(xiàn),處理器的復(fù)雜性在不斷增加,” Imagination Technologies 驗證平臺副總裁 Colin McKellar 說。 “人們越來越渴望挖掘出一個工藝的潛力,而且強(qiáng)烈希望能夠擁有某種形式的獨(dú)特特征集,或者以獨(dú)特的方式實(shí)現(xiàn)某項功能?!?/p>
對獨(dú)特性的渴望正在推動著當(dāng)下的趨勢。“在低端產(chǎn)品上,特別是對于那些邊緣設(shè)備,它的功耗和成本約束更加嚴(yán)格、價格更低?!?Mentor 的 Pryor 說。 “這意味著更緊密耦合的加速算法、可定制性甚至支持刪除某些指令都非常有價值。與高端產(chǎn)品相比,較小的設(shè)計規(guī)模和專屬軟件有助于降低重新驗證的成本。RISC-V 以較低的成本提供了易于定制的平臺。總而言之,定制系統(tǒng)利大于弊?!?/p>
在高端產(chǎn)品上,則是其它力量在發(fā)揮作用。Cadence 的 Cunningham 說:“始于更復(fù)雜指令的處理器架構(gòu)開始向 RISC 的方向遷移,并開始進(jìn)入多核領(lǐng)域。然后,我們在多核上進(jìn)行擴(kuò)展的難度逐漸增加。到了無法增加的臨界點(diǎn)上,所有新級別的復(fù)雜性都開始圍繞定制的特定體系結(jié)構(gòu)展開,即那些針對特定垂直行業(yè)而定制的不同類型的計算引擎,比如 AI、圖形或視頻。內(nèi)核流水線的潛在復(fù)雜性可能變化得沒有那么快,但是它依然在變化。還有很多關(guān)于安全性的問題,比如在推測執(zhí)行上就有很多?!?/p>
推測執(zhí)行是一種優(yōu)化技術(shù),現(xiàn)在人們已經(jīng)把它和許多著名的處理器漏洞(例如幽靈和熔斷)聯(lián)系在了一起。處理器的安全性是一個持續(xù)性的挑戰(zhàn),這是一個仍然需要強(qiáng)化設(shè)計要求的領(lǐng)域。
“安全性是衡量現(xiàn)代處理器的一個新維度,確保處理器啟用有效的硬件信任根(HRoT)是其中的關(guān)鍵,” Breker Verification Systems 副總裁兼首席營銷官 Dave Kelf 說?!盀榱蓑炞C安全性,反向驗證(證明除了規(guī)定的機(jī)制之外沒有其他任何方法可以訪問相關(guān)區(qū)域)非常重要。形式驗證可以起到一定的作用,但是在系統(tǒng)級別上就力有不逮了。在這種情況下,允許指定和分析系統(tǒng)狀態(tài)空間的工具將成為處理器驗證團(tuán)隊工具箱里的重要組件。”
如果期望在處理器上運(yùn)行操作系統(tǒng),則必須提供其他級別的支持。 Valtrix Systems 聯(lián)合創(chuàng)始人 Shubhodeep Roy Choudhury 說:“通用處理器有望支持所有現(xiàn)代操作系統(tǒng)以及許多最頂層的應(yīng)用程序。這些用例中的大多數(shù)都需要硬件的支持,比如用于虛擬內(nèi)存的 TLB / MMU、用于虛擬化的虛擬機(jī)管理程序以及用于浮點(diǎn)計算的 FPU。對并行執(zhí)行線程的支持也意味著需要內(nèi)存排序和緩存一致性。考慮到用例、處理器單元和向量叉乘單元的數(shù)量,與其他設(shè)計相比,驗證通用處理器是一項更具挑戰(zhàn)性的任務(wù)?!?/p>
驗證的費(fèi)用
不可能逃掉處理器內(nèi)核驗證的費(fèi)用。你要么直接自己支付,要么付錢給他人替你支付這個費(fèi)用。
Cunningham 說:“頂級處理器公司已經(jīng)進(jìn)行了巨額投資,并且擁有很多專業(yè)經(jīng)驗,所以他們可以提供出色的產(chǎn)品。必須記住一點(diǎn),RISC-V 只是個指令集,并不是 CPU 的實(shí)際實(shí)現(xiàn)。實(shí)現(xiàn)的 CPU 必須經(jīng)過驗證,而且必須保證足夠高的質(zhì)量,并滿足某些功能、性能和面積目標(biāo)。相比之下,Arm 不僅僅是一個指令集,他們提供了整個生態(tài)系統(tǒng),他們?yōu)榇嘶ㄙM(fèi)了幾億美元?!?/p>
質(zhì)量對處理器很重要。 Imperas 的 Davidmann 說:“ARM 的每個內(nèi)核運(yùn)行了大約 1015 秒。這對應(yīng)相當(dāng)多條指令,而普通的 RISC-V 開發(fā)者或 IP 提供商甚至都沒有硬件模擬器。他們顯然無法進(jìn)行和 ARM 數(shù)量相當(dāng)?shù)尿炞C。多年來,當(dāng)人們購買 Arm、MIPS 和 Power 處理器時,他們依靠 IP 供應(yīng)商進(jìn)行驗證?!?/p>
但是,并非所有內(nèi)核都那么大或那么復(fù)雜。 Imagination 的 McKellar 說:“如今,許多 RISC-V 項目都非常小,而且其復(fù)雜性可以控制。與驗證相關(guān)的開銷不會很大。但是,當(dāng)您開始提高性能或者添加多線程或者并行化等復(fù)雜的東西時,驗證費(fèi)用可能會迅速增長。我認(rèn)為,嘗試設(shè)計復(fù)雜處理器的公司中會有一半覺得驗證的挑戰(zhàn)太大,而這條產(chǎn)業(yè)鏈上游的人會停止資金支持,因為成本太昂貴了,而且還不一定能正常工作?!?/p>
Codasip 副總裁 Jerry Ardizzone 對此表示贊同。他舉例說:“我們有一位客戶打算用開源工具使用開源的 RISC-V 內(nèi)核,他們創(chuàng)建了 108 個可重復(fù)的協(xié)處理器,然后就遇到了一些問題。首先,他們必須證明內(nèi)核可以正常工作,然后他們意識到,該內(nèi)核只有一套開源的測試套件,因為所有其他商業(yè)工具都在由 Arm、Codasip、MIPS 和 Synopsys 等公司開發(fā)的工具包中。然后,他們必須證明,所有這些處理器都可以處理 35 條指令以實(shí)現(xiàn)非常特定的加速,這些工作靠開源很難實(shí)現(xiàn)。當(dāng)你用 ARM 時,你可以從 ARM 購買所有產(chǎn)品,保證它能正常工作。您還可以構(gòu)建自己的內(nèi)核,但是前提是您知道如何構(gòu)建處理器,并且能夠確保它不會死鎖。但是不管怎樣,驗證始終是最大的瓶頸。”
驗證是相當(dāng)昂貴的。“驗證是創(chuàng)建處理器的工作中最困難的部分,也是開銷最大的部分,”Ardizzone 說。 “這是瓶頸所在,它至少需要占去四分之三的工作量。而且,每當(dāng)您開始進(jìn)行到硬件環(huán)節(jié)時,都必須重新驗證它?!?/p>
降低成本是開源硬件的關(guān)鍵賣點(diǎn)之一。Aldec 的 De Luna 表示:“Intel 和 Arm 這樣的公司非常擅長降成本,而且您知道,當(dāng)你把處理器的內(nèi)核集成到 SoC 中后,您將能夠驗證其是否有效?,F(xiàn)在,業(yè)內(nèi)人士說驗證并非易事。如果您把眼光投向開源社區(qū),那么您會發(fā)現(xiàn),很多事情都是基于預(yù)算的。但是,整個過程需要把很多部分結(jié)合在一起。這個行業(yè)需要建立一個端到端的流程,只有更多的合作才能實(shí)現(xiàn)這點(diǎn)?!?/p>
驗證專業(yè)知識
二十年前,有幾家公司做處理器驗證工具。當(dāng)時,大多數(shù)系統(tǒng)公司都擁有自己專有的處理器內(nèi)核。從那之后,做驗證工具的公司都漸漸成為了大型處理器公司的一個部門,現(xiàn)在,驗證專業(yè)知識都集中在了這些公司中。
“多年的經(jīng)驗和方法學(xué)在可靠地驗證處理器方面發(fā)揮了巨大的優(yōu)勢,” Pryor 說。 “我們對處理器公司在驗證流程中推動創(chuàng)新和提高效率的方式一直印象深刻。”
最近,幫助其它公司驗證處理器內(nèi)核的咨詢公司談起了這種經(jīng)驗的重要性?!拔覀兊慕?jīng)驗和專業(yè)知識至關(guān)重要,” VTool 的 Arbel 說。 “我 20 年前就開始從事處理器驗證工作,但是如果這是我第一次接觸這類問題,我可能也會栽跟頭。即使您的處理器很小或很簡單,設(shè)計驗證團(tuán)隊也需要具備這種知識。針對您面向的特定應(yīng)用,有幾種可能的解決方案,我們可能沒有找出最佳方案。但是,與競爭者其它類型的設(shè)計相比,您肯定需要以不同的方式解決問題?!?/p>
McKellar 表示同意這個觀點(diǎn)?!澳枰獙I(yè)知識,也需要方法學(xué),它們同等重要。沒有專家,這些工具可能發(fā)揮不出太大價值,反之,如果沒有工具,專家們也會因為工具包太差勁而生出巧婦難為無米之炊的慨嘆。這個世界上缺少足夠數(shù)量的高級驗證工程師,許多公司都會相互爭搶擁有這些技能的人才。另一方面,很多驗證工程師的水平不夠深,無法應(yīng)對需要他們完成的任務(wù)?!?/p>
而且,想獲得這方面的專業(yè)知識比較困難。Davidmann 說:“關(guān)于如何測試處理器的專業(yè)知識基本上已經(jīng)封鎖在三到四家頭部廠商內(nèi)部,這個領(lǐng)域沒有多少可以提供幫助的論文、出版物或者工具?!?/p>
有用的建議
Cunningham 提供了一些建議。 “首先,你要先把相關(guān)人等聘請進(jìn)來,確保您清楚自己是否真的需要構(gòu)建自己的處理器,如果需要,請認(rèn)真對待這件事情。還很重要。”
一切都始于計劃。 McKellar 說:“對您實(shí)際上可以實(shí)現(xiàn)的目標(biāo)以及所需的上市時間銘記于心。把精力集中于嘗試限制功能組合并減少功能特性上。某些您所認(rèn)為的高級功能或功能組合對最終客戶而言可能不是那么有價值,但卻會花費(fèi)你大量的時間和精力來正確地驗證它們。保持開放的心態(tài),因為答案可能不止一個,沒有任何一樣事物能夠滿足所有人的需要。審查非常重要,進(jìn)行獨(dú)立的審查并接受批評非常重要,而且要注意要盡早測試。您應(yīng)該盡早制作并把大量的時間和精力放在新的硬件上?!?/p>
還要反觀自心,問一問自己為什么做這件事情。Davidmann 說:“除非您真的想做一些創(chuàng)新和定制的事情,否則好的解決方案已經(jīng)存在了,根本不用您勞心。如果您想添加一些非常有趣的架構(gòu)或者定制指令,那也許您應(yīng)該走 RISC-V 路線。越來越多的人正在構(gòu)建或者配置自己的處理器,這意味著驗證行業(yè)需要面對更復(fù)雜的任務(wù),進(jìn)行更多的驗證,當(dāng)然也意味著更多的機(jī)會?!?/p>
開源驗證
RISC-V 當(dāng)然已經(jīng)推進(jìn)了開源硬件的概念,而且,有人開始在想開源驗證會不會由 RISC-V 滋生而來。SmartDV 應(yīng)用工程總監(jiān) Bipul Talukdar 表示:“開源模式的成功需要一個基礎(chǔ)架構(gòu),你可以在這個基礎(chǔ)架構(gòu)上創(chuàng)建真實(shí)的設(shè)計和產(chǎn)品,并將其投入生產(chǎn)并交付市場。這個必要的基礎(chǔ)架構(gòu)的關(guān)鍵部分是 RISC-V 驗證平臺,該平臺可以使用執(zhí)行 ISA 的 CPU 的開源規(guī)范,以準(zhǔn)確地驗證設(shè)計。”
有些人從中看到了希望?!癛ISC-V 社區(qū)正在共同努力,以幫助找到解決方案,” Imperas Software 市場營銷副總裁 Kevin McDermott 說。 “也許,對于使用免費(fèi)的 riscvOVPsim 參考模型的 RISC-V 隨機(jī)指令流生成器這個開源項目,一些人在谷歌云上進(jìn)行該項目的開發(fā)和增強(qiáng),就最好地說明了這一點(diǎn)?!?/p>
盡管如此,核心的 EDA 工具仍不太可能被開源工具替代。在處理器的創(chuàng)建過程中,真正的成本不在于 EDA 工具,而在于處理器本身的復(fù)雜性,盡管大型處理器供應(yīng)商在處理這些問題上有多年的經(jīng)驗,但是他們?nèi)匀辉诎l(fā)現(xiàn)意想不到的錯誤和漏洞。
?