在行動CPU市場領先的Arm看到RISC-V正急起直追,Arm也備感威脅,甚至決定改變策略,不再堅持採用過往較封閉的作法,也開始鬆綁指令集使用限制,讓企業可以用它來加快創新。圖片來源/Arm

繪圖晶片大廠Nvidia每年在GPU裡使用3億顆SoC晶片,3年前突然決定改採開源自製晶片,不到半年,另一家儲存大廠WD也喊出年超過10億個SSD控制器核心要以同樣開源架構取代,還一連推出3款非Arm設計的CPU產品,甚至在全亞洲已有超過2千萬隻智慧手環、手錶使用的SoC晶片,同樣來自開源,就連去年出貨7百萬支5G手機的三星,未來都要改用開源架構設計專用5G晶片。

一個開源晶片設計新架構,正在硬體產業掀起新革命。

開源硬體早就有,但能影響全世界的專案非常少

開源硬體(Open Source Hardware)不是新觀念,早在1997年,當時定義「開源」一詞的開源界元老Bruce Perens也同時提出了硬體也能開源的想法, 然而,多年下來,硬體產業對於開源硬體產品的接受程度,遠不如軟體產業。

2005年,昇陽就將自家處理器的電路設計原始碼公開,成立了OpenSPARC專案,但後來也無疾而終。2010年時,因為3D列印、自造者運動蔚為潮流,才在全球掀起一股開源硬體的風潮。微控制器開發板專案Arduino就是當時最知名的代表之一,電路圖直接採創用CC授權釋出,並以LGPL和GPL授權釋出軟硬體產品授權,任何廠商都可用來客製自己的版本。後來爆紅的樹莓派Raspberry Pi,也是類似Arduino的開發板產品,但是樹莓派只是開放硬體,將其開發板的電路圖公開,但仍採用商用授權的Arm架構晶片為控制核心。

其他知名的開源硬體如開源顯示卡專案Open Graphics Project、開源3D列印RepRap等,甚至有許多種硬體領域,都有開源專案出現,如開源電話Openmoko、開源網路NetFPGA、開源電子音樂專案MIDIbox、開源相機AXIOM、開源無人機ArduCopter等。

儘管開源硬體專案不少,但沒有一個,成了足以和主流技術媲美的新選擇,直到近來,開源精簡指令集架構技術RISC-V專案的出現。這是一個新興的開源硬體技術,試圖從CPU層級的硬體開源來提供各種客製化晶片的需求。

從軟硬體架構來看,軟體是一支支應用程式,需要有硬體才能運作,由於兩者使用語言的不同,軟體程式沒辦法與硬體的CPU直接溝通,得先轉換為對方能理解的硬體語言,CPU才能依據收到的程式指令來執行,這個用來與處理器溝通的主要介面,也就是指令集架構(Instruction Set Architecture,ISA),才能讓軟體在處理器上執行。

更進一步來說,CPU的指令集架構,就是建立一套共同規則,來描述系統組成的框架,讓軟體和硬體共同遵守這些CPU設計規則,並以指令形式來去描述它,每個指令的格式和用途都不同,對應到的硬體執行方式也有所差異,比如乘加法運算或存取記憶體資料等。這些指令的執行方法、運作方式,就形成一個指令集架構,ISA還定義了系統的組成,包括暫存器、記憶體定址等,最後透過各種微架構技術的應用,具體實作在CPU設計上。當CPU執行應用軟體時,程式會先透過編譯器將每支程式編成該指令集架構可執行的機器語言,再送到處理器硬體上來執行,每個指令都會讓CPU執行特定的動作,包括搬移資料、執行運算或是改變控制流程等。

曾在國網中心擔任副主任的交大資工系教授陳添福,是打造出全球前20大超級電腦臺灣杉2號的主要建置負責人,他認為,指令集架構之所以重要,因為它不只決定了硬體的實作方式,也決定了其搭配軟體的工具鏈,包含編譯器、除錯器、SoC開發套件系統等,一旦要改用其他家CPU 指令集做設計,所有軟硬體設計方式全都要改。這也是為何x86架構始終獨占PC,而Arm則獨大行動與嵌入式裝置的原因。

RISC-V要自己變成處理器界Linux

目前主流CPU的指令集架構,主要分為兩派陣營,一個是複雜指令集(CISC),以Intel獨大的x86架構為主,特別強調處理器運算效能,最常使用在PC或高效能伺服器的運算設備上;精簡指令集(RISC)則是另一派,由Arm獨占鰲頭,以提供高度省電的CPU設計為主,在行動和嵌入式裝置上有廣泛應用。

繼x86、Arm以後,RISC-V近來也備受矚目,成為了硬體業界所關注的一門CPU指令集架構新技術,甚至逐漸壯大成為第3大主流CPU新勢力的趨勢。

但與傳統封閉ISA架構不同,RISC-V是一個採用開源的精簡指令集架構。這個指令集架構最早是來自學術圈發起的一個開源晶片專案,由美國加州大學柏克萊分校一個Par Lab實驗室團隊,在2010年夏天開發完成,從設計到完成開發僅花了三個月,背後更有英特爾、微軟大力資助。而RISC-V專案的研究成果,包含RISC-V處理器實作和新的開源硬體描述語言Chisel,後來也以BSD授權方式開源釋出,代表也能商業使用。不過,RISC-V的ISA規範本身,則以創用CC授權釋出。

RISC-V技術的開源之所以很重要,在於它替硬體產業建立一個共通的ISA開放標準。就連RISC精簡指令集技術共同發明人David Patterson都認為,「RISC-V將能成為處理器界Linux。」他也是RISC-V專案成員之一。

在RISC-V問世之前,CPU的指令集架構都由x86和Arm兩大陣營主導,均未對外開放,硬體製造商如果想要用這些架構來開發自己的CPU,只能跟指令集擁有者取得授權。除了得支付龐大授權金,在設計CPU時,就只能根據對方提供的功能規格來設計,很難客製,想要開發新應用或增加新功能,如果授權方沒提供,這時,就只能等待。就連我們跨海採訪到的RISC-V基金會執行長Calista Redmond都強調:「就像開源軟體解放整個產業一樣,RISC-V致力於打破處理器設計的獨占。」

2014年時,RISC-V技術正式進到商用市場後,便迅速在硬體業界竄紅,不只吸引為數不少的硬體新創採用,更有許多科技、晶片大廠紛紛力拱,包括Google、Nvidia、三星、高通等相繼投入,甚至有硬體廠更要把它放進自家主力產品,例如,儲存廠商Western Digital決定每年採用10億顆RISC-V核心來打造SSD儲存產品,Nvidia在開發新一代GPU時,也靠它設計新的CPU運算架構。就連三星今年將推出的5G新手機都要用。儘管,大多僅是輔助,而非當作最主要的CPU,但也意味著,開源開始走進了封閉硬體產業。

從技術上來看,RISC-V最大特色就是擴充性。不像Arm架構指令集,除了一般常用指令之外,RISC-V指令集本身預留了一個客製指令空間(custom instructions)的擴充彈性,讓設計者可以自行客製指令,以32位元RISC-V指令集為例,RISC-V本身提供相當於4個25位元長度的指令擴充空間,可供用戶替CPU增加專用指令,單是一個25位元的空間,就可以定義300個指令,4個合計就多達1,200個指令,這也意味著,大大增加CPU使用上的運用彈性。這正是RISC-V處理器的優勢。

其次,RISC-V本身設計也相當簡潔,只需要較少指令就能在硬體上執行,這樣的好處是,CPU設計更容易,也較不占空間,執行速度也可以更快。RISC-V還提供了一些自選指令的擴充,採用者可視應用需求,自行搭配組合常用的RISC-V指令,目前常見擴充指令,像是有整數乘除法、不可中斷指令(Atomic)、單精度/雙精度浮點運算、壓縮指令等等。單是標準指令加上擴充指令(M、A、F、D、C),僅不到140個指令就能實作出一顆完整功能的CPU,相較之下,Arm指令集數目最少數百個以上,例如,ARMv8就超過500個指令,指令格式種類也比RISC-V多一倍。

有了這些指令運用的彈性,硬體廠商現在設計CPU時,可以選擇加入更多條指令, 來滿足更高效能CPU設計的需求,或是僅使用較少指令,來處理簡單的運算任務,以降低開發成本,端看應用需求。也就是說,亦有可能設計出一個CPU,需要執行程式碼比之前體積更小、更輕量,從而減少記憶體需求,也能成為降低能耗的關鍵。對於採用者來說,也較不容易受到特定廠商綁定的影響,使用上也更具彈性,小從IoT晶片,大到AI加速器都能用。這也是為何連三星、Nvidia、WD這些硬體大廠都要採用的原因。

曾自創32位元指令集商用處理器的亞洲第一人,也是晶心科技技術長蘇泓萌就分析,RISC-V興起的兩大關鍵,一來是各種新興應用的出現,對於處理器使用差異極大,因此,需要有一個更有彈性而且開源的設計架構,才能滿足特定一類領域應用的需求。二來是通用處理器效能遭遇成長瓶頸,所以,業界希望徹底翻新指令集改用新架構,來提高執行效率,從而改善效能,讓同一代CPU能用更久,這也使得RISC-V趁勢而起。

只不過,RISC-V不是第一個開源的精簡指令集,在這之前,已有其他發展多年的開源ISA問世,如OpenRISC、SPARC、MIPS等。但不同的是,RISC-V背後還有一個強大開放、協作社群當後盾,來帶動RISC-V生態系的持續成長。

RISC-V社群成長迅速,在第一年舉辦RISC-V年度高峰會時,當時參加人數不到數百人,2年內就發展成為2千人規模的大型技術會議,開始在美國以外地區舉辦多場技術講座、研討活動,推廣RISC-V。去年,也首次移師臺灣舉辦。(上圖為第一屆高峰會)圖片來源/RISC-V基金會

獨立運作的RISC-V基金會,成為擴大生態系發展的關鍵

RISC-V社群成長迅速,在第一年舉辦RISC-V年度高峰會時,當時參加人數不到數百人,2年內就發展成為2千人規模的大型技術會議,並且著眼於全球各地使用者的增加,開始在美國以外地區舉辦多場技術講座、研討活動,推廣RISC-V。去年,也首次移師臺灣舉辦。

RISC-V社群規模能夠發展如此快速,背後還有一個重要原因,就是成立了獨立運作的RISC-V基金會組織,來負責統籌管理和推動整個RISC-V社群能夠穩定與健全發展,成為擴大生態系發展的關鍵。

2015年時,RISC-V基金會剛成立,就吸引不少企業組織、學術機構及個人會員加入,從剛開始成員僅不到百名,之後更迅速發展成為全球規模的經濟生態圈,從去年的235名會員,到了2020年翻倍成長達到491名會員的規模,成員更有來自全球27個國家、橫跨6大洲。而且許多企業會員,都是一線科技、硬體大廠,包括Google、IBM、微軟、三星、高通、聯發科、Nvidia、WD等,也替社群帶來重要貢獻,成為加速整個RISC-V生態圈發展的重要推動力。

例如,原本就有自己設計客製TPU加速晶片的Google,除了貢獻了自行開發的一個RISC-V晶片設計驗證平臺,去年,還在以它為首成立的CHIP開源硬體聯盟,指定RISC-V做為該聯盟主要晶片設計的指令集架構,讓硬體廠商可以使用它開發新的晶片設計以支援運算的需求。之後,還有另一個Google開源RoT(信任根)安全晶片專案OpenTitan,同樣也採用它來設計其安全矽晶片,未來可以放進伺服器主機板、網路卡、物聯網等裝置的重要系統元件,來驗證其啟動是使用經過授權及驗證的程式碼。就連開源安全晶片,現在也都有RISC-V的身影。另外,WD則貢獻了自己的儲存硬碟控制器核心,包含了RTL程式碼,還進一步開源釋出,要讓人人都能用。

有了更加活躍社群,RISC-V生態系也迅速發展和成熟,例如在作業系統方面,目前RISC-V已能支援Fedora、Ubuntu、Suse等各種Linux作業系統版本,而且就算是RTOS即時作業系統也都能用,如亞馬遜FreeRTOS、Zephyr等;另外,在開發工具部分,也有主流的開源編譯器加入RISC-V支援行列,如LLVM 、GCC,並也能使用其他語言的編譯器,如Go等,除錯工具現在也支援GDB、OpenOCD等工具。在模擬器方面,也提供了多家工具的支援,包括QEMU 、Swerv-ISS 、Imperas、FireSim、gem5等。

不僅如此,RISC-V基金會還找來全球最大開源社群Linux基金會跨刀合作,並由該基金會親自傳授社群經營、技術和市場戰略,就是為了能讓RISC-V跟Linux生態系一樣壯大。

RISC-V的興起,也加速開源硬體普及與創新

這樣一個晶片層級的開源硬體技術,不只影響硬體產業,也加速了開源硬體的普及與創新。 根據該基金會官網提供的最新數據,目前至少已有超過80多個CPU核心或SoC平臺皆採用RISC-V方式實作,也能對比到Arm各產品系列。除了可供商業使用外,其中不少是以開源釋出,像是WD的SweRV EH1、LowRISC的Ibex、ETH Zurich的Zero-riscy核心的實作成果,目前皆已放上GitHub程式碼代管平臺。

又以Raspberry Pi為例,過去,雖然其採用開放硬體架構,但處理器核心仍使用了較為封閉Arm架構,現在出現RISC-V技術以後,未來也可選用更開放的指令集架構,來設計成Raspberry Pi的CPU。就連開發與維護的樹苺派基金會也在去年決定加入,成為RISC-V社群的貢獻者。

在市面上,目前已有推出不少採用RISC-V處理器設計的硬體開發板及套件,如HiFive1、Perf-V、Sipeed Maixduino Kit等,開發者也都能拿來做開發。

在應用方面,RISC-V的使用也更加多元, 涵蓋多種裝置或設備,從IoT、AI、邊緣運算裝置、儲存裝置,到資料中心相關網路設備都有。

三星也開始將RISC-V技術帶進智慧型手機,用於開發手機AI影像感測器,可以提供即時臉部偵測、辨識和更快自動對焦。 另一家硬體廠GreenWaves同樣推出採用其設計的小型AIoT應用處理器,也能用於人臉辨識的偵測、影像分析等。因為是採用客製指令,特別加速對於神經網路推論的執行,能提供多達 50 GOPS的運算力,而且更省電,功耗不到50毫瓦。另外,Nvidia也曾公開展示一個更大型AI深度學習加速器,裡面也整合了RISC-V處理器,用來做為加速器I/O元件核心。

開源RISC-V催生出新商業模式,連傳統Arm都備感威脅

雖然,RISC-V擁有高度彈性,任何人都可以基於RISC-V製作屬於自己的CPU,不過也不是說任一家硬體公司都能自己做,實作上仍有相當程度的技術門檻,需要具備多領域專業知識,才能開發出符合其需求的處理器產品。

因應這類客製晶片的設計需求,也催生出新商業模式,SiFive是其中代表,這家公司是由柏克萊大學RISC-V專案發起人在2015年所創立,背後更有三星、英特爾、高通大力投資,其商業模式,也跟Arm類似,以提供處理器核心IP產品設計為主,但不同的是,它採用了開源RISC-V指令集架構,就像Linux的紅帽,替硬體廠提供各種商用RISC-V晶片設計服務,其他晶片設計業者,如臺灣的晶心科技、Codasip、Bluespec和Cortus等也有提供類似服務。

在行動CPU市場領先的Arm看到RISC-V正急起直追,Arm決定改變策略,不再堅持採用過往較封閉的作法,也開始鬆綁指令集使用限制,讓企業可以用它來加快創新。連像Arm這樣封閉的一家大型晶片IP公司,也開始受到開源的影響。

儘管,在大型企業應用市場上,仍以x86架構為主,但RISC-V社群也持續加強在企業端應用的支援,像是也提供了hypervisor擴充指令的支援能力,可以在RISC-V的CPU上執行虛擬化功能,目前KVM已可支援。最近,企業級開源軟體巨頭紅帽也決定加入,成為RISC-V基金會的銀級會員,未來也將協助RISC-V社群推動在企業Linux、混合雲、容器和Kubernetes技術的相關發展。連英特爾目前也投入RISC-V相關。

Semico產業研究機構的預測,到了2025年,全球市場採用RISC-V的CPU總核心數將達到624億顆,其中工業會是主要應用市場,其次是交通運輸、通訊、消費及個人電腦等領域。

過去,開源硬體難以跨入硬體產業,現在,因為RISC-V的出現,使得以前封閉的硬體世界變得不一樣,轉而也開始擁抱開源, 即使現今RISC-V的發展仍處於早期階段,也尚未建立成熟的生態系,但當越來越多的晶片公司和硬體製造商加入,使得RISC-V技術漸趨成熟,生態系不斷壯大, 總有一天,開源硬體吃掉全世界的願景也能成真。

 相關報導  CPU晶片設計也能DIY


Advertisement

更多 iThome相關內容