RISC-V:開放硬件運動的下一場革命
2021-10-18 13:08:37 EETOP出于顯而易見的原因,軟件世界比硬件世界要超前一些:不存在構建真實事物的物理需求或成本,也不存在用于處理軟件創新的大量硬件投資。這也是為什么軟件可能是硬件未來的先知,以及為什么記住自由和開放源碼運動所發生的事情是至關重要的。
現在已經不需要證明了:開源軟件無處不在,并產生了大量的價值。云的存在是其直接產物:如果沒有Xen項目,AWS就不可能像我們所知的那樣存在,這對從大公司到小公司的許多不同的參與者來說都是如此。我們甚至應該談一談Linux內核及其引發的巨大貢獻?或者IBM以340億美元收購紅帽?
但是,讓我們回到一個還不明顯的時代。自由和開放源碼軟件并不新鮮。事實上,在20世紀50年代和60年代,它是默認的選擇。學術界和企業通常通過公共領域的軟件進行合作。公平地說,學術界過去通常是這樣處理科學數據的(共享和合作),因此在軟件上也這樣做是合乎邏輯的。當時,軟件還不是一種商品。然而,在70年代出現了更多的限制,在80年代早期變得更糟。由于這種商品化,它成為了一個真正的、利潤豐厚的行業。
這時自由軟件才真正出現,最初是由小型在線共享社區組織起來的,然后在1983年通過自由軟件運動正式成立了GNU項目。這場革命開始了。然而,要取得成功,你需要的不僅僅是編譯器或用戶空間工具。1991年,Linux帶來了更多的東西。
這只是一個開始。在21世紀初,當微軟以Windows和IE瀏覽器主宰用戶/桌面空間時,開源可能已經脫軌了。相反,互聯網的巨大推動力推動了創新,創造了新的商業案例、標準、更好的協作工具和共享庫。甚至巨大的公司也依賴開源,并做出貢獻,這有助于社區的發展。所有這些和更多的東西使開源成為許多部署的默認選擇。
免費/開源硬件比開源軟件更晚出現,開始于90年代末。顯然,免費硬件意味著具有相同協作精神的免費/開放硬件設計。
與軟件類似,它開始時規模很小,一些公司從事電子產品、小電路板(例如。Arduino和Adafruit)或3D打印。這感覺很像GNU沒有內核的時候,不是嗎?
這正是 RISC-V 的切入點:提供一個非常強大且開放的 CPU 指令集架構,通過開放的組件(軟件和硬件)驅動整個堆棧。RISC-V最初來自學術界,更確切地說是來自加州大學伯克利分校,這一點也不奇怪。這是與開源軟件根的另一個相似之處。
讓我們現實一點:新的開放 ISA 并不是實現開放硬件革命所需的唯一條件。它是一個推動者和一個解決方案,但解決什么問題?成功或失敗取決于該領域的實際需求,就像開源軟件解決各種問題的方式一樣,例如 IT 自動化、超可擴展性、公共或私有云基礎設施等等。
那么 RISC-V 開源 ISA 在今天有意義嗎?會不會是下一場革命?為什么 RISC-V 不只是一個新的 ISA?
事實上,IT架構的未來已經發生了巨大的轉變。x86 是無可爭議的王者的時代已經結束。數據處理單元 (DPU) 體現了這一點。由于 x86 CPU 對數據量和專用數據量的現有限制,我們需要更多具有并行能力的 CPU。一個很好的例子就是你現在用的網卡,把越來越多的功能從你的主處理器上移除出去。同樣的事情已經發生在人工智能或通過GPU進行推理,甚至是通過專用加速器進行存儲和類似的DPU的另一個工作上。
例如英偉達。它對 Mellanox 的收購顯然與 DPU 相關,而 Nvidia 在數據中心的增長是其增長最快的部分。這也解釋了為什么 Arm 是 Nvidia 未來收購的關鍵選擇,因為目前大多數 DPU 都是基于 Arm SoC 的,例如 BlueField 2 DPU。
請注意,我們并不是在談論從數據中心完全移除 x86。它主要是從中卸載一些 x86 無法真正發揮作用的操作,例如并行工作負載。但從長遠來看,如果x86完全跟不上,這可能也會被列入去除選項。而數據中心只是大局的一部分。
RISC-V 的范圍遠不止于此:邊緣計算、嵌入式市場等等。這些是 RISC-V 可以在技術上成熟和提升的其他地方,同時在您的數據中心中變得越來越重要。
最后,RISC-V 的時間安排與數據中心可見的大轉變非常一致。你可能會爭辯說 Arm 更適合實現這一切,事實上它已經部分做到了。但與 RISC-V 不同,Arm 的 ISA 并不開放。您確實可以與 Arm 合作構建自己的解決方案,就像 AWS 使用 Graviton 2 所做的那樣。那么最大的區別是什么?
你總是可以建立自己的專有軟件,并比你的競爭對手更好,但世界已經改變。現在幾乎所有人都站在巨人的肩膀上。當你為一個新項目需要一個操作系統內核時,你可以直接使用Linux。不需要從頭開始重新創建一個內核,你也可以根據自己的目的修改它(或者編寫你的驅動程序)。你肯定會依賴一個經過廣泛測試的產品,因為你只是無數個做同樣事情的用戶中的一個。
這將正是依靠一個開源的CPU架構所能提供的。不需要從頭開始設計;你可以在現有工作的基礎上進行創新,并專注于對你真正重要的事情,也就是你所增加的價值。
說到底,這意味著降低了創新的障礙(沒有許可證,而是分享設計)。顯然,不是每個人都能從頭開始設計整個CPU,這就是重點:你可以只帶來你需要的東西,甚至只是享受社區提供的新功能,就像你做開源軟件一樣,從內核到語言。
過去幾年出現的另一個趨勢:人們在硬件和軟件之間的接口上工作的可能性更大。這對多種原因來說是至關重要的,比如安全和性能。你需要對硬件進行一些控制,以便能夠在這個接口上有效地工作。在x86世界中,這并非不可能,主要是因為你可以圍繞它建立一切,如采用專用卡來替換主CPU,運行你自己的優化軟件(如前所述,DPU,Nitro等)。
但對我來說,下一步是更大的,那就是在你的整個基礎設施中只有開源的硬件和軟件,從主CPU到所有協處理器,直到軟件。所有這些都意味著你可以使軟件適應你的硬件,反之亦然,以更快的速度提供與整個堆棧相關的解決方案,并具有更好的能源效率和更好的安全性。潛力只受限于你的想象力和你的執行能力,而不是許可證或黑盒設計。
很明顯,在這條革命的道路上有一些挑戰。至于自由軟件,它不會從每個人立即在開放中做事開始。你可以用你自己的RISC-V設計來做任何你喜歡的事情,甚至可以擁有自己的IP。真正開放的硬件將成為標準,就像它在軟件中所做的那樣,但道路并不總是平坦的。
另外,碎片化可能是一個問題,必須認真對待。開放并不意味著無政府狀態。依靠標準、共識和通過RISC-V國際組織(負責整個RISC-V項目的基金會)建立的東西來合作是正確的方式。不管我們對x86有什么看法,它的成功來自于擁有相同代碼可以開箱即用的平臺。Arm正在努力建立一些認證和標準,但真的很難避免碎片化。例如,作為一個虛擬化平臺,得到一些可以運行的東西是相對容易的,并且可以在大部分的x86機器上運行。但在Arm上呢?這不僅僅是 "移植 "到Arm上,這完全取決于你的目標。并非所有的機器都是一樣的,甚至讓Xen在Raspberry Pi 4上運行也很困難。