為滿足人工智慧(AI)、物聯網(IoT)、邊緣運算等應用對運算效能的需求,許多晶片供應商都開始探索使用客製化CPU的可能性,盼藉由專為執行某些特定運算任務所設計的指令集跟執行邏輯,來提高運算效能。但魚與熊掌往往難以兼得,這些專為某類運算任務設計的特殊CPU,必然會犧牲其泛用性,與現有應用軟體的相容性問題,也必須審慎應對。
大廠導入RISC-V 小心翼翼試水溫
因此,即便RISC-V這類開放架構CPU廣受業界矚目,採用RISC-V核心的SoC或處理器設計案例數量也快速成長,但若更深入研究RISC-V在這些SoC或處理器中所扮演的角色,就會發現目前RISC-V的應用領域,還是高度集中在不太需要顧慮第三方軟體相容性的範疇。
舉例來說,繪圖晶片(GPU)大廠NVIDIA的GPU晶片內,除了負責執行圖形運算的各種著色器(Shader)之外,還有許多晶片內部的控制跟協調作業需求,必須靠嵌入式CPU來執行。為此,NVIDIA早在十多年前就開始自行發展RISC指令集,並以此設計出自家專用的嵌入式CPU,負責GPU內部的管理跟控制任務。
但經過十多年後,NVIDIA內部的研發團隊認為,已經很難再靠改良現有指令集架構的方法來滿足新的需求,因此,該公司決定發展全新架構,以提供更高的性能。具體來說,新一代嵌入式CPU至少要提供比現有CPU高一倍的效能、支援64位元記憶體定址、快取與高速記憶體等。
經過評估之後,NVIDIA發現,目前市場上的主流CPU核心,還是沒辦法滿足其需求,所以又走回了自行開發的老路。不過,與十多年前NVIDIA必須自己從指令集架構開始發展的情況不同,這次NVIDIA可以用RISC-V指令集架構作為設計起點,來開發新一代CPU,取代已經使用十多年的老CPU。
2016年時,NVIDIA先採用柏克萊大學發展出來的RISC-V處理器Rocket,開發出第一代基於RISC-V的Falcon控制器,在9項客製CPU設計要求中,已能符合7項功能規格。到了2017年,NVIDIA改用自己設計的RISC-V處理器版本,發展出第二代Falcon控制器。
第二代Falcon控制器使用了64位元RISC-V指令集來設計,並根據自身需求,決定需要使用哪些指令,也加入自己的專用指令集,來對CPU設計進行最佳化。第二代Falcon不只滿足所有技術需求,而且效能更好,也幫助他們降低成本,就是因為採用開源設計。
三星電子(Samsung)採用RISC-V的情況也類似。三星早在2017年就已經開發出第一款內建RISC-V核心的晶片,經過三年多的設計迭代,該公司在2019年的RISC-V高峰會上,正式發表了第一款內建SiFive RISC-V核心的5G毫米波前端模組,接下來三星還有意在AI影像感測器、安全管理晶片與AI運算控制器等晶片中導入RISC-V。在5G毫米波前端這款解決方案中,RISC-V核心負責的任務是訊號處理,而非標準CPU所擅長的控制任務。這顯示RISC-V在某種程度上,可以靠著DSP延伸指令集這項擴充能力,取代某些原本要靠數位訊號處理器(DSP)實現的應用。雖然三星並未揭露未來RISC-V在影像感測器中所扮演的角色,但考量到影像感測器就跟5G射頻前端一樣,會有大量的訊號處理任務需求,可以合理推論,RISC-V應該會扮演某種接近DSP的角色。
除了在處理器、SoC內部扮演微控制器或訊號處理器的角色外,儲存相關應用採用RISC-V的速度也相當快。除了威騰(Western Digital, WD)對RISC-V全力相挺,發展出三款基於RISC-V指令集的核心(表1),主要應用在NAND Flash控制器上之外,晶心科技技術長蘇泓萌透露,台灣某SSD控制器大廠的控制器晶片,也已經內建晶心提供的RISC-V核心。
從NVIDIA、三星,以及威騰等NAND Flash控制器的實際應用案例,不難看出這兩家大廠導入RISC-V的過程,是經過深思熟慮的。不管是GPU內部的控制任務,或是5G毫米波前端,其運作所涉及的軟體都是韌體,晶片開發者對此有完全的掌控能力。也因為晶片開發商可以一手掌控,不太需要考慮第三方軟體、應用在客製化CPU上執行的相容問題,所以晶片開發商可以大膽採用自己客製化發展的CPU硬體架構,以功率、效能與晶片面積(Power, Performance, Area)的極致最佳化為設計目標。
在通用處理器或主處理器方面,目前真的採用RISC-V的知名案例並不多見,僅阿里巴巴旗下平頭哥半導體所發表的玄鐵910,是基於RISC-V指令集架構所開發出來的通用處理器。對RISC-V陣營來說,玄鐵910的問世,固然有其里程碑的意義,但從玄鐵910的規格跟性能測試結果來看,跟Arm及x86陣營相比,還是有一段明顯的差距,在軟體、開發工具支援方面,要跟Arm、x86相比,也還有一段不小的距離。
指令集客製不難 難在維繫生態系完整
面對AI、IoT應用開枝散葉,相關應用開發快速且項目多元,標榜使用者可以自行客製化設計的RISC-V乘著這波風潮,在市場上來勢洶洶,作為嵌入式處理器IP龍頭的Arm,又如何看待?
Arm應用工程總監徐達勇(圖1)表示,AI、IoT應用無所不在,確實導致市場上出現許多標準CPU指令集不容易照顧到的新應用、新需求。這些新應用很符合商學教科書上所提到的「長尾理論」–個別應用的市場規模或許不大,但累積起來也是一個相當可觀的市場。對Arm來說,如何滿足這類應用的需求,自然是一個必須思考的問題,而Arm所提出的回應,就是在標準指令集之外,開放晶片開發者在共通的框架、格式規定下,進行客製化的指令集定義。
事實上,客製化指令集在技術層面並不困難,但Arm直到2019年10月才推出Arm Custom Instruction(ACI),是因為有許多技術以外的考量。例如CPU硬體加上客製化指令之後,編譯器(Compiler)、除錯工具(Debugger)等開發工具,以及處理器上執行的軟體等生態系統的配套,能不能支援開發者自己定義的客製化指令,就是一個大問題。客製化指令立意雖好,但實際上使用者/客戶並不多,而且大多是有雄厚研發資源的大廠,因為客戶必須要有定義指令的能力,並自行克服軟體破碎的問題。
經過審慎思考後,Arm決定在其現有架構中,開放部分客製化指令集,滿足客戶彈性修改CPU指令集設計的需求,但客製化必須符合Arm預先定義好的規範,以避免編譯器、除錯工具無法理解這些開發者自訂義的指令。Arm認為,這是兼顧設計者需求與生態系完整的兩全對策。
SSD控制器便是一個對客製化指令需求很高的應用,因為SSD控制器所做的工作重複性很高,但這些工作卻往往得用到許多條標準指令才能完成,導致CPU經常耗費大量資源在抓取指令(Fetch)上。若能將常用的多條指令整合成一條客製化指令,如圖2,便能加快記憶體存取、編譯與寫入的速度,不只能減少指令執行時所占用的記憶體,也能進一步縮小晶片的尺寸、降低功耗。這是客製化指令對某些客戶非常有吸引力的主要原因之一。
但客製化之後的指令,必須確保編譯器或除錯工具的夠解譯,否則後面的應用產品開發將無法繼續進行下去。為了避免這種情況發生,相關工具配套必須先到位,或是晶片設計者必須自行備妥這些工具。
天底下沒有白吃的午餐,雖然開源常被跟免費畫上等號,但開源絕不等於免費。光是一套完善、成熟的開發工具,就需要投入大量人力進行研發跟維護,這很難是完全免費的。此外,即便是使用RISC-V這類開源架構設計晶片,仍會有工程開發成本,並且承擔市場風險。如果進行成本精算,開發者的總成本不一定會比取得現成的IP授權來得低。
大廠競相投入RISC-V 背後有其戰略用意
SiFive總裁暨執行長Naveed Sherwani對最近幾年RISC-V廣獲業界矚目,聲勢一路看漲的現象,也有一番值得思考見解。他認為,就技術層面來說,RISC-V的自由與彈性,確實是讓不少大廠對RISC-V產生興趣的原因。但RISC-V能有今天一片欣欣向榮的景象,連帶讓SiFive在短短幾年內就累積超過350個設計定案(Tape Out)的實績,且委託客戶不乏一線科技大廠,關鍵還是在每家廠商想要有與眾不同的產品。
標準CPU還是有其存在的價值,不會所有人都需要客製化的CPU,但如果是對自家產品有長遠發展規畫的大廠,最後一定會考慮在CPU裡面添加自訂義的元素,因為這會讓終端產品出現明顯差異化,進而凸顯自己的品牌色彩。蘋果(Apple)、Google、Facebook、Tesla等大廠都自行為特定應用設計專用的SoC,原因也就在此。
其次,既有的CPU架構在應對AI、IoT所帶來的多樣化需求時,確實有些力有未逮之處。不是現有CPU架構無法實現這些應用,而是在效率面、成本面還有很多改善空間。RISC-V填補了這些缺口,進而讓很多本來採用標準CPU架構,甚至是像英特爾(Intel)、Microchip這些本身就擁有自定義CPU架構的供應商,願意在RISC-V上投入資源。
最後,沒有任何一家廠商或是國家,會樂於見到單一技術供應商擁有市場壟斷地位,因為這會帶來許多風險。先不提新興國家的政府或科技企業對此會有疑慮,即便是美國的科技公司,也會想在既有的主流技術之外,扶植新的供應商與其抗衡。在這個時間點上,RISC-V成為一個頗具潛力的替代方案,且因為RISC-V是開源硬體,沒有權利金、授權費的問題,對大廠來說,只要投入少許資源,就能探索新的機會跟可能性,何樂而不為?
總結來說,RISC-V社群能在短時間內如此蓬勃發展,背後不只有單一原因。有發展潛力的技術、AI及IoT等應用趨勢凸顯出標準CPU架構的問題,加上各家廠商與各國政府分散風險的戰略考量,都促成RISC-V爆紅。