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