以下為譯文:
RISC-V處理器指令集體系結構(ISA)的問世和最初的成功重新激發了人們對定制處理器設計的興趣,但是業界現在正在努力解決如何驗證它們的問題。過去20年來,市場上曾經存在的專業技術和工具已經被少數幾家生產處理器芯片或IP內核的公司所掌握。
處理器的驗證不同于其他IP的驗證,甚至不同于SoC的驗證。處理器是通用硬件的終極組成部分,它會產生自己的獨特問題。
Cadence Design Systems公司副總裁兼總經理Paul Cunningham說:“它可以運行任何軟件程序。” “它是您可以想象到的最可配置的深度狀態設備之一。確切地說,我已經完成了對CPU的驗證,就是說您已經運行了所有可能在CPU上運行的軟件程序。當然這是非常棘手的。CPU驗證是非常困難的。”
在一個硬件必須盡可能靈活的時代,在軟件中盡可能多地進行操作是明智的。Imperas軟件首席執行官Simon Davidmann表示:“一家公司發現,在處理器中使用一些軟件來構建狀態機要比在Verilog中創建狀態機要好得多。” “如果您在Verilog中構建狀態機并發現錯誤,則必須重新改造芯片。但是,如果您使用狀態機編程構建小型控制器,則可以在出現問題后再進行解決。”
但這帶來了兩個問題。VTool的首席執行官Hagai Arbel說:“在最近的一個處理器驗證項目發現,您必須讓軟件團隊參與這個過程。”“這帶來了一系列全新的挑戰,因為他們說的是一種完全不同的語言,無論是技術上還是心理上。”
第二個問題是驗證。西門子業務部門Mentor的首席技術專家Duaine Pryor表示:“處理器的好壞取決于它的驗證。” “暴力算法進行驗證的辦法是不可行的,雖然我們在高端和低端市場都看到了這種趨勢。”
無論處理器內核是基于RISC-V還是獨特的指令集體系結構(ISA),全面的驗證都是至關重要的。OneSpin Solution的設計驗證專家Nicolae Tusinschi表示:“用戶再也不能指望使用傳統處理器在硅芯片上進行數十年的驗證了。” “ RISC-V采納者沒有特別通行證;經驗表明,許多開源內核都經過了弱驗證,并且包含許多基本的bug。所有處理器開發人員必須廣泛驗證其核心設計,記錄所實現的過程和覆蓋范圍,并使用戶能夠利用此驗證來處理包含核心的整個系統芯片(SoC)設計。”
處理器的某些方面是通用的,與項目規模無關。“處理器驗證可以大致分為控制驗證和數據路徑驗證,” Arm的架構師和中央工程小組成員Daniel Schostak說,“這兩者都不簡單,都面臨著挑戰。對于控制驗證,主要挑戰是交互組件的數量并確保覆蓋所有極端情況;而對于數據路徑驗證,主要挑戰在于確定邊界情況,以便能夠正確覆蓋這些情況。面積、性能或功率的微體系結構特征會使這些挑戰進一步復雜化。”
在開源領域,尤其是在RISC-V方面,這個問題更加復雜。“一方面,您可以進行功能驗證,” Aldec市場營銷總監Louie De Luna說,“但是隨后您還將進行合規性測試,您需要確保任何自定義指令均與源代碼兼容。這會影響您的覆蓋率模型,并且實際上還沒有工具流程,所以在這方面仍有許多工作要做。除了學習如何使用所有工具外,您還必須了解如何將其用于測試。”
持續變化的復雜性
盡管自2000年以來處理器性能沒有顯著提高,但這并不意味著復雜性保持不變。“我們仍然看到處理器的復雜性在增加,” Imagination Technologies的驗證平臺副總裁Colin McKellar說,“人們越來越希望從處理器中榨取更多,強烈希望擁有某種形式的獨特功能集或獨特的做事方式。”
對獨特性的渴望正在驅動當前的趨勢。“在低端市場,特別是對于邊緣設備,功耗和成本約束更加嚴格;價格更低。” Mentor的Pryor說,“這意味著更緊密耦合的加速、可定制性、甚至刪除指令都非常有價值。與高端產品相比,較小的設計和專屬軟件有助于降低重新驗證成本,RISC-V就以較低的成本提供了易于定制的平臺。總而言之,自定義的優點大于缺點,并且在更小、更封閉的系統上,推動產生了一群新的驗證工程師來面對處理器(重新)驗證問題。”
在高端市場,其他力量也在發揮作用。Cadence的Cunningham說:“處理器架構始于向RISC遷移更復雜的指令。” “這一趨勢開始趨平,我們開始進入多核系統。然后,我們無法在多核上進行擴展。在這一點上,所有新的復雜性級別都圍繞著定制的特定體系結構——針對特定垂直行業而定制的不同類型的計算引擎,例如AI、圖形或視頻。核心管道的潛在復雜性可能變化的速度并不快,但是仍然存在。還有更多關于安全的、有關推測執行的方面內容。”
推測執行是一種優化技術,已與許多著名的處理器漏洞(例如Spectre和Meldown)相關聯。安全性是一個持續的挑戰,在這個領域,設計需求仍然在增加。
“安全性是現代處理器的新維度,確保處理器啟用有效安全的硬件Hardware root of trust (HRoT)是關鍵,” Breker Verification Systems副總裁兼首席營銷官Dave Kelf說。為了驗證這一點,負面驗證(證明除了規定的機制之外沒有其他方法可以訪問區域)非常重要。正式版對此有好處,但在系統級別上容量不足。因此,允許指定和分析系統狀態空間的工具將成為處理器驗證團隊的重要工具箱組件。”
如果期望在處理器上運行操作系統,則必須提供其他級別的支持。Valtrix Systems的聯合創始人Shubhodeep Roy Choudhury說:“通用處理器有望支持所有現代操作系統以及最頂層的許多應用程序。” 這些用例中的大多數都需要硬件的支持,例如用于虛擬內存的TLB / MMU,用于虛擬化的虛擬機管理程序以及用于浮點計算的FPU,對并行執行線程的支持涉及內存順序和緩存一致性。考慮到用例、處理器單元和交叉產品的數量,與其他設計相比,驗證通用處理器是一項更具挑戰性的任務。”
為驗證計價
不必逃避執行處理器內核驗證所必須支付的價格,您可以直接自己支付費用,也可以付錢給其他人替您支付費用。
Cunningham說:“頂級處理器公司已經進行了巨額投資,并且擁有大量的專業知識,因此他們可以提供出色的產品。” “必須記住,RISC-V是一個指令集,它不是CPU的實際實現。實施必須經過驗證,并且必須具有足夠的質量,并滿足一定的功能,性能和區域目標。Arm不僅僅是一個指令集,他們提供了整個生態系統,為此花費了數百萬美元。”
質量對處理器很重要。“Arm在每個核心上運行大約1015條指令,” Imperas的Davidmann說,“一般的RISC-V開發人員或IP提供商甚至都沒有硬件仿真器,他們無法進行任何數量的驗證。多年來,當人們購買Arm或MIPS和Power處理器時,他們依賴于IP供應商進行驗證。”
但是,并非所有內核都那么大或那么復雜。Imagination的McKellar說:“如今,許多RISC-V項目規模都很小,而且復雜性是可以控制的。” “與驗證相關的費用不會很大。但是,當您開始提高性能或添加多線程等并行化的方式增加復雜性時,它可能會迅速增長。我可以想象,半數試圖制造復雜處理器的公司將會發現這是一個太大的挑戰,而食物鏈上的人們將會停止與之相關的資金,因為它很昂貴,而且不一定能正常工作。”
Codasip副總裁Jerry Ardizzone對此表示贊同。“我們的一個客戶打算使用開源的RISC-V內核和開源工具,創建108個可重復的協同處理器,但遇到了一些問題。首先,他們必須證明核心功能有效。然后,他們意識到該內核可用的唯一測試套件是開源的,因為所有其他商業工具都在由Arm,Codasip,MIPS和Synopsys等公司開發的工具包中。然后,他們必須證明所有這些處理器都可以處理35條指令以實現特定的加速,這在開源軟件中非常困難。您可以從Arm購買所有產品,并確保它能正常工作。您還可以構建自己的核心,前提是您知道如何構建處理器,并可以確保它不會被鎖定。但是驗證始終是最大的瓶頸。”
這也可能被證明是相當昂貴的。“驗證是最困難也是最昂貴的部分,”Ardizzone說,“這是一個瓶頸,至少需要幾個季度的工作。每次你接觸硬件,你都必須重新驗證它。”
對于開源硬件,降低成本是關鍵賣點之一。Aldec的De Luna表示:“像Intel和Arm這樣的公司確實非常擅長此事,并且您知道,將其集成到SoC中后,您將能夠驗證其是否有效。” “現在,業內人士說這并非易事。如果您考慮開源社區,那么很多事情都是基于預算。該行業需要建立一個端到端的流程,只有更多的合作才能實現。”
驗證技術
二十年前,有多家公司生產用于處理器驗證的工具。當時,大多數系統公司都擁有自己的專有處理器內核。從那時起,他們都遷移到了大型處理器公司之一,如今,專業知識已集中在這些公司中。
“多年的經驗和方法學開發在能夠可靠地驗證和驗證處理器方面具有巨大優勢,” Pryor說,“我們對處理器廠商在驗證流程中推動創新和提高效率的方式一直印象深刻。”
最近幫助其他人驗證處理器內核的咨詢公司談論了這種體驗的重要性。“我們的經驗和知識至關重要,” VTool的Arbel說,“我20年前就開始進行處理器驗證,但是如果這是第一次談論此類問題,我在解決這些問題時就會遇到麻煩。即使您的處理器很小或很簡單,設計驗證團隊也需要具備這種知識。有幾種可能的解決方案,我們可能沒有做到最好的方式。但是與其他類型的設計相比,您肯定需要以不同的方式解決問題。”
McKellar表示同意。“您需要專業知識和方法。它們是相輔相成的。如果沒有專家,這些工具可能沒有太大價值。沒有工具,專家們將為之苦惱,因為工具包太弱了。世界上缺乏一流的驗證工程師,許多公司正在相互競爭所需的技能。他們中的許多人沒有足夠的深度去完成他們需要做的事情。”
獲得這些知識是困難的。Davidmann說:“如何測試一個處理器基本上已經變得封閉起來,封裝在三、四家大廠商的產品中。”“只是沒有很多論文、出版物或工具可以提供幫助。”
有用的建議
Cunningham提供了以下建議。“首先,也是最重要的,去雇人。確保您知道是否真的要構建自己的處理器,如果需要,請認真對待。你需要有人來領導它。”
這一切都始于計劃。McKellar說:“要對自己的實際業績和上市所需的時間表保持清醒的頭腦。” “專注于嘗試限制組合并減少功能。一些高級功能或功能組合對最終客戶而言可能不那么有價值,但會花費大量時間和精力來正確驗證它們。保持開放的心態,因為沒有統一的答案。進行獨立審查并接受批評非常重要,并且要非常注意盡早測試新事物。您應該盡早解決新的困難等事情,花大量的時間和精力在上面,少花時間和精力在老的事情上。”
并問自己為什么這樣做。Davidmann說:“除非您試圖真正做一些創新和定制的事情,否則好的解決方案已經存在。” “如果您想添加一些非常有趣的面料或自定義說明,那么也許這就是為什么您應該走RISC-V路線的原因。越來越多的人正在構建自己的或配置自己的處理器,這意味著更多的復雜性,更多的驗證以及驗證行業的更多機會。”
開源驗證
RISC-V顯然已經提高了開源硬件的概念,一些人質疑他們是否也可以期待開源驗證從這里出現。SmartDV應用工程總監Bipul Talukdar表示:“開放源代碼模型的成功需要一個基礎架構,該基礎架構才能創建真實的設計和產品,并將其投入制造并交付市場。” “必要基礎架構的關鍵部分是RISC-V驗證平臺,該平臺可以使用開放源代碼規范以及執行ISA的CPU來準確地驗證設計。”
一些人看到了希望。“ RISC-V社區正在共同努力,以幫助找到解決方案,” Imperas Software市場營銷副總裁Kevin McDermott說,“也許谷歌云使用免費的riscvOVPsim參考模型開發和增強RISC-V隨機指令流生成器的開源項目能夠最好地說明了這一點。”
盡管如此,核心EDA工具仍不太可能被開源替代。盡管有多年處理這些問題的經驗,大型處理器供應商仍然在尋找意料之外的bug和漏洞。
-
處理器
+關注
關注
68文章
19400瀏覽量
230742 -
cpu
+關注
關注
68文章
10901瀏覽量
212641
原文標題:為什么很難創造出新的處理器?
文章出處:【微信號:AItists,微信公眾號:人工智能學家】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論