SiFiveb將開源精神帶入晶片層級

May 22, 2017
Facebook
Twitter
圖片

HiFive開發板(https://www.sifive.com/products/hifive1/)採用RISC-V晶片,基本構造與Arduino Uno相同。Gareth Halfacree攝。和首圖皆由SiFive提供

在Maker之間,越來越流行由許多社群共同研發和共享設計的訂製開源硬體。多樣的便宜開發板如Arduino和Raspberry Pi結合開源軟體,讓Maker們相較於以前更容易完成創新的硬體設計。
然而,硬體產業遠不如軟體產業那般勇於接納開源來鼓勵創新和提高生產力。開源硬體運動至今發展有限,仍只能採用現成的商業矽晶片。這些晶片通常有著閉源的組塊,如果要取得它們的程式介面,必須先簽署保密協定,或採用不透明的預編軟體「二進位大型物件」(binary blob),不得修改或進行逆向工程。
由於晶片製造商只想服務大客戶,許多高階晶片甚至不接受少量採購。部分廠商和新創企業由於缺乏訂製矽技術,只好採用現成的微處理器,再結合可重新編寫程式的現場可編程邏輯閘陣列(FPGA)來模擬訂製晶片。
雖然FPGA很適合製造原型,但若是大規模生產,會有成本太高和耗電的問題。既然市面上找不到開源晶片,我和我在加州大學柏克萊分校的電腦結構研究團隊,只好自行開發開源指令集架構(ISA),最新版本RISC-V讓硬體開發商能充分掌控自己的元件,甚至達到晶片的層級。
圖片

SiFive的HiFive開發板的晶片,內含RISC-V ISA。RISC-V創造者創立了SiFive(https://www.sifive.com/about/mission/),以便販售RISC-V設計,建立RISC-V生態系。Gareth Halfacree攝

改良空間

2010年初,我和加州大學柏克萊分校的研究團隊,正思考著下一個專題要採用哪一種ISA。ISA決定了微處理器所能理解的一系列指令。舉例來說,英特爾和AMD的筆記型電腦和伺服器晶片,只能運行Intel x86 ISA所編碼的軟體,蘋果、三星電子等廠商的行動晶片,只能運行ARM ISA所編碼的軟體。我們的研究專題則想要以新的處理器概念運行各種軟體。雖然採用x86或ARM似乎是必要的選擇,但有三大問題迫使我們走上另一條路。
圖片

Hep Svadja攝

首先,這些ISA龐大又複雜。Intel x86源自16位元8086晶片,1970年代末英特爾比競爭對手更晚推出ISA,於是花費十週火速設計8086晶片。後來IBM做了一個重要的決定,它的首部PC原型採用其更便宜的版本Intel 8088晶片,並從微軟引進第三方作業軟體,不經意地開啟了仿製Intel處理器的風潮,隨著IBM PC平臺稱霸市場,英特爾和微軟也成為產業龍頭。
英特爾從PC產業賺進大把鈔票,迅速發展x86 ISA,暫存器從16~32位元擴充到今日的64位元,自始至終都與原本快速建立的基礎保持相容。近40年後的今日,即使是英特爾設計師也沒有半個會稱讚x86 ISA優雅,況且ISA如此落實巴洛克風格,必須投注大量的工程資源,遠超過小型學校研究團隊的能力範圍。
另一方面,ARM ISA則源自1980年代初期IBM、史丹佛大學和加州大學柏克萊分校研究團隊所發起的RISC(精簡指令集運算)運動,主張以精簡指令集來進行高效能運算,RISC是我同事Dave Patterson自創的詞彙,他在加州大學柏克萊分校領軍的研究計畫,研發了RISC-I和RISC-II晶片,但如今RISC已是一個統稱。
1985年位於英國劍橋的艾康電腦(Acorn Computer),受到加州大學柏克萊分校學生專題的鼓舞,也自行開發高效能32位元艾康RISC機器(ARM),取代他們先前桌上型電腦所採用的8位元6502微處理器,只可惜艾康RISC桌上型電腦仍敵不過IBM PC的猛攻。
然而,蘋果發現了ARM的成本和功率皆低,於是將它作為牛頓掌上型電腦初期專題之用。1990年蘋果、VLSI Technology和艾康成立新公司ARM(如今ARM意指高階精簡指令集機器),創造新的商業模式,ARM不販售自家晶片,而是授權處理器設計給客戶,讓他們納入各自的矽晶片系統(SoC)。回到2010那年,ARM ISA並不符合我們的需求,不僅缺乏64位元,還有幾個異常狀況讓高效能執行更加複雜。如今,ARM稱霸行動式和嵌入式SoC處理器市場,幾乎所有智慧型手機和平板電腦都將它納入核心。
圖片

Hep Svadja攝

第二個問題是這些ISA都不開放,ISA對於電腦運算來說,可能是最重要的介面,專門連接軟體和硬體,但市面上只有極少數開放的ISA,反觀其他運算元件,卻有以開放標準為基礎的健全生態系。
除了英特爾,只有AMD和VIA有權開發跟x86相容的處理器,其他公司未經授權,不得製作或販售與ARM相容的處理器。我們相信對研究者來說,分享詳細的核心設計很重要,除了能提升研究的品質和複製性,也可分擔建立研究架構的辛勞。我們確實考慮過少數開放的ISA,但最後仍決定不採用,因為它們隱含了非開源和缺乏64位元設計等技術缺陷。
第三個問題是這些ISA缺乏延展性,既然摩爾定律即將走向末路,我們的研究專題只好鎖定專門處理器,希望藉此提高運算能力。現有ISA並非專為支援延展而設計,在初步設計就浪費了很多指令位元,再經過幾十年的強化,已經沒什麼編碼空間可供延展,況且主流ISA也變得太龐大,無法做為特製處理引擎的有效基礎。
圖片

Hep Svadja攝

雖然我們一開始是要使用現有的ISA,但後來發現自己研發是最好的途徑,於是在2010年開始設計。我們將這個新的ISA命名為「RISC-V」(讀作「Risk Five」),意指加州大學柏克萊分校第五代的RISC設計。

呼籲建立社群

我們設計期間也同時支援軟體和晶片的製作,第一批RISC-V屬於64位元Raven-1晶片,在2011年製造,採用意法半導體(ST Microelectronics)28-nm FDSOI製程,後來加州大學柏克萊分校以各種製造技術完成十幾批RISC-V晶片,同時還有更多正在醞釀中。除了研究之用,有越來越多大學課程也採用RISC-V,我們的教材也直接刊登在課程網站上。
過去三年來,我們製造軟硬體所獲得的經驗,以及30年來ISA設計和使用所犯下的錯誤,都會影響我們所設計的RISC-V ISA,但這些改變引發校外使用者的不滿。當時有一個使用者社群仰賴RISC-V及其軟體工具來製作實際的工程專題。那時候我們終於體認到,大家對免費開放ISA標準的需求,比我們想像的來得大。
圖片

Hep Svadja攝

​2014年5月,我們對RISC-V ISA的設計終於有了足夠的信心,正式結束研究專題,拍板定案。同年夏天,為了提高RISC-V在產業界和學術界的能見度,我和Dave Patterson撰寫一系列的建議書,解釋為什麼指令集要免費開放。我們免費而開放的ISA標準不只沒有技術限制,甚至比目前的專屬標準運作得更好。更重要的是,我們相信自由而開放的ISA可鼓勵創新,讓開源和專利標準之間互相競爭。
舉例來說,SoC設計者目前必須先挑選處理器廠商,可能是透過招標的方式,接著就被那間廠商的專屬ISA困住。大多數SoC設計者都希望自己的產品夠成功,有機會推出第二版,但是到那個節骨眼再把所有晶片的軟體轉移到其他ISA的成本就太高了,SoC設計團隊只好與原本挑選的專屬ISA綁在一起,也喪失了第二輪授權談判的籌碼。
有了RISC-V等開源ISA,SoC設計者可以在各種RISC-V核心供應商做選擇,或是採用開源設計,甚至自行設計。2015年1月我們舉辦第一次RISC-V工作坊,沒想到最早的RISC-V處理器已經出貨上市,應用於麻省Rumble Development製作的牙科攝影機。Rumble甚至在短短三週內就自行為FPGA創造簡易的RISC-V軟核。

建立堅實基礎

圖片

Hep Svadja攝

我們在2015年6月舉辦第二次工作坊,吸引更多人參加,如今RISC-V顯然超越了大學專題的規模。2015年8月,我成立了RISC-V基金會、501(c)(6)非營利貿易組織,來管理、保護和推廣RISC-V ISA,也雇用Rick O’Connor擔任執行長。
2016年1月我們與16個公司成立基金會,2016年7月舉辦第四次工作坊時,我們已經有將近50個會員公司,從小型新創到運算產業大廠都有,包括Google、微軟、IBM、HPE、高通和超微,這確保了RISC-V ISA保持自由開放並採用RISC-V授權商標,以避免可能會導致體系四分五裂的商業產品規格不相容問題。
(譯:謝明珊)
Social media & sharing icons powered by UltimatelySocial