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