微處理器指令集架構(Instruction Set Architecture,ISA)是溝通軟硬件運算之間的橋梁,是處理器的靈魂。包括復雜指令集運算(Complex Instruction Set Computing,CISC)、精簡指令集運算(Reduced Instruction Set Computing,RISC)、顯式并行指令集運算(Explicitly Parallel Instruction Computing,EPIC)、超長指令字指令集運算(Very Long Instruction Word,VLIW)四類。
主流的微處理器指令集架構RISC和CISC的對比
由于ARM(RISC架構)和Intel(CISC架構)兩大巨頭的壟斷地位、專利限制、高昂專利費,令行業用戶越來越不堪重負;兩大主流架構無論在技術上、知識產權上還是流程上都愈發臃腫、復雜和緩慢,也在一定程度上限制甚至阻礙了技術的進步和行業的發展。
6月底arm建立了riscv-basics.com 的網站,以“設計系統芯片之前需要考慮的五件事”為主題從從成本、生態系統、碎片化風險、安全性和設計保證方面攻擊RISC-V 攻擊。不過RISC-V在7月9日也建立了arm-basics.com 的網站對arm進行反擊。次日,也就是7月10日,arm關閉了攻擊網站,并發表聲明:“我們最初建立網頁的目的是列出圍繞RISC-V商業化產品需要考慮的關鍵因素,旨在為激烈的行業辯論提供信息。遺憾的是,結果與我們的初衷不同,這個頁面與arm的協作文化不一致,所以我們已經將其刪除。事實上,我們的許多員工也表示不喜歡這個網頁。立即刪除這個網頁的是因為我們絕不希望給人一種攻擊開源的印象,因為我們也是許多不同領域開源社區的支持者。”
arm與RISC-V的事件只是兩個精簡指令集競爭的一個縮影。顧名思義,RISC-V是RISC的第五個版本。RISC-V何以會引得arm如此緊張呢?
David Patterson教授和RISC指令集
David Andrew Patterson(1947年11月16日出生)是美國計算機先驅和學者,是美國科學院、工程院、藝術與科學學院三院院士。自1976年以來一直擔任加州大學伯克利分校計算機科學教授,并在2016年退休后加入谷歌。他目前還是RISC-V基金會的董事會副主席。
Patterson以其對RISC處理器設計的開創性貢獻而聞名,創造了RISC這一術語,并領導了Berkeley RISC項目。截至2018年,全球有99%的新芯片使用RISC架構。他還與Randy Katz一起領導RAID存儲研究。
Patterson教授因在RISC領域的杰出成就,獲得2017年度圖靈獎(圖靈獎是計算機領域的全球最高獎項,被譽為計算機界的諾貝爾獎)。
我們還是了解一下RISC指令集的情況。RISC的發展可以追溯到1980年代。David Patterson教授是RISC指令集的發明人。1980年,他和學生David Ditzel在“The case for the reducedinstruction set computer”論文中創造了RISC一詞。
1981年,在David Patterson的帶領下,加州大學伯克利分校的一個研究團隊起草了RISC-1,這就是今天RISC架構的基礎。RISC-1原型芯片有44500個晶體管,擁有31條指令。包含78個32位寄存器,分為6個窗口,每個窗口包含14個寄存器,另外還有18個全局變量,寄存器占用大部分面積,控制和指令只占用芯片面積的6%,而同時代的芯片設計里要占用約50%的面積。
隨后在1983年發布了RISC-II原型芯片,包含138個寄存器,分為8個窗口,每個窗口有16個寄存器,另外還有10個全局變量,但是只有39000個晶體管。接著在1984年和1988年發布了RISC-III和RISC-IV。
而RISC的設計理念也催生了一系列新架構,包含了許多我們耳熟能詳的名字,如學術上認為比較成功的DEC Alpha、被寫入經典教科書的MIPS、繞過指令級并行度障礙,追求線程級并行的SUN SPARC、服務器的王者IBM Power、以及現在統治嵌入式市場的arm。
RISC-V的沖擊
2010年,Patterson教授的研究團隊準備啟動一個新項目,需要設計CPU,因而要選擇一種指令集。他們調研了包括arm、MIPS、SPARC、X86等多個指令集,發現它們不僅設計越來越復雜,而且還存在知識產權問題。
由于ARM、MIPS、SPARC、X86等處理器架構的復雜性和相關知識產權的限制,Patterson教授決定和團隊一起發明一種全新的指令集架構,可以被任何學術機構或商業組織自由使用。
于是臨時組建一個四人小組,從零開始設計一套全新的指令,四人小組包括David Patterson、Krste Asanovic兩位教授與Andrew Waterman、Yunsup Lee兩個博士生集!
這個項目的目標是新指令集能滿足從微控制器到超級計算機等各種尺寸的處理器,能支持從FPGA到ASIC到未來器件等各種實現,能高效地實現各種微結構,能支持大量的定制與加速功能,能和現有軟件棧與編程語言很好的適配,最重要的一點就是要穩定——不會改變,不會消失。
四人小組用了3個月時間完成了RISC-V指令集的初始設計開發,之后于2011年5月第一次公開標準。2014年,RISC-V的第一批標準定型。其間,隨著標準的發布和改進,進行了多次流片驗證。
RISC-V(第五代精簡指令集)是David Patterson教授基于其30多年在精簡指令集RISC領域的深入積累,在2010年到2014年期間帶領團隊研發出的最新一代CPU芯片設計指令集。RISC-V是基于精簡指令集計算(RISC)原理建立的開放指令集架構(ISA),RISC-V是在指令集不斷發展和成熟的基礎上建立的全新指令。RISC-V指令集完全開源、設計簡單、易于移植Linix系統,采用模塊化設計,擁有完整工具鏈。
RISC-V雖然不是第一個開源的的指令集(ISA),但它很重要,因為這是第一個被設計成可以根據具體場景可以選擇適合的指令集的指令集架構。基于RISC-V指令集架構可以設計服務器CPU,家用電器CPU,工控CPU和傳感器CPU。
作為一個開源的指令集架構,RISC-V讓用戶有機會避免Intel x86知識產權體系的鎖定和ARM高昂的芯片特許使用費,這使得全球芯片行業的企業都對RISC-V報以極大的關注和興趣。
Patterson教授和團隊于2015年成立了RISC-V基金會以推動RISC-V架構的運用和發展。
基金會吸引了全世界150多家企業和科研機構的加入,包括Google、IBM、三星、高通、西部數據、英偉達、微軟、惠普等國際巨頭,也包括中天微、中興微、華為、阿里、中科院計算所、高云等下多家中國單會員,形成了RISC-V生態圈。
目前已經獲得了眾多業界巨頭的支持,例如英偉達表示在配合GPU使用的底層微控制器中使用RISC-V設計;西部數據宣布未來幾年將用RISC-V芯片取代其目前使用的全部處理器芯片;美高森美發布全球第一個支持RISC-V開放指令集體系架構;特斯拉近期已加入RISC-V基金會,準備在新款芯片中使用RISC-V架構。
業界人士表示,眾多巨頭宣布采用RISC-V,得益于RISC-V的五大優勢:
1、極簡。RISC-V憑借技術上的后發優勢,擁有精簡的篇幅長度,比起冗長、指令繁多、互不兼容的傳統商業架構,優勢十分明顯。
2、干凈。RISC-V清晰區分了用戶和特權指令子集,避免了對特殊微架構和特殊工藝的要求,因此具有普適性,可顯著降低成本。
3、模塊化。RISC-V的指令分為核心基礎指令集和標準可擴展指令子集。基礎指令集很小,但是可以根據用戶需求去加載擴展集,后者確保了指令能夠應用于不同場景。
4、可擴展。充分考慮了芯片設計的可擴展性和專用性需求,具有變長指令編碼,并預留了大量的可用編碼空間,使得未來指令擴展方便可行。
5、穩定。經過若干年的迭代,基準指令和一些標準可擴展指令已經確定,新功能的實現只需增加擴展子集,而無需發布整個指令集的新版本。
由于RISC-V使用BSD License開源協議,指令集徹底開放,給予使用者很大自由,允許使用者修改和重新發布開源代碼,也允許基于開源代碼開發商業軟件發布和銷售。這樣吸引了一批創業公司的進入。RISC-V最初的開發者之一Krste Asanovic教授創辦SiFive推出全球首款基于開源指令集RISC-V架構的商用SoC Freedom E310-G000和開發板HiFive1;Patterson的弟子譚章熹創立OURS,基于RISC-V架構開發物聯網處理器和神經網絡加速系統級芯片;法國Greenwave 正使用RISC-V架構為低功耗設備開發人工智能芯片;Esperanto也瞄準人工智能應用,希望能集成4000個RISC-V處理器,展開并行計算。
據業界人士表示,由于ARM高昂的芯片特許使用費,正在逐漸把谷歌(Google)、高通(Qualcomm)、三星(Samsung)等眾多高科技公司推到了同一條戰線上。巨頭們正在試圖開發新的開源芯片設計,為智能駕駛、AI等新興技術提供一種成本更低的芯片。
RISC-V帶給中國CPU和芯片行業發展的歷史性機遇
面對洶涌而至的RISC-V,有業界人士表示,RISC-V技術過去若干年的出現和發展,為中國芯片行業的發展提供了歷史性機遇。中國過去數十年在芯片發展領域遭遇到了知識產權受限、生態體系缺失、研發成本高昂、市場需求復雜等諸多挑戰,使得發展成效總是不盡人意、難以突破。RISC-V技術的出現,為突破上述四個方面的難關,提供了堅實的技術基礎和絕佳的發展時機。
第一,開源開放突破知識產權壁壘。RISC-V的開源特性將有助于中國突破長期以來處理器芯片領域的知識產權限制。在過去幾十年時間里,中國一直努力在芯片領域、尤其是復雜處理器芯片領域巨額投入、謀求突破,然而收效甚微。
究其原因,首先就是國外諸如Intel、ARM等巨頭經過幾十年的技術發展,建立了極為嚴苛的知識產權保護體系。我中國如果使用現有的x86或ARM技術,就無法繞過其知識產權限制。從Intel手上根本不可能獲得x86授權。ARM雖然給出授權的公司多一些,但授權費也異常昂貴,且談判流程極其復雜冗長,亟待發展的小微初創企業根本無法承受。
其次,Intel、ARM這些巨頭公司也不可能對中國企事業單位授權其最核心的芯片設計技術和知識產權,而是以此控制中國技術發展、阻礙中國科研體系進步。而RISC-V采用了最為靈活的BSD開源協議,將RISC-V徹底開放,BSD開源協議極其適合中國國情,與中國秉持的開放共享、互利共贏的發展理念完美貼合,使中國相關行業能夠從根本上規避國際傳統芯片巨頭樹立的知識產權壁壘、高昂的特許使用費乃至政治因素帶來的風險,更能有助于相關行業產業化的蓬勃發展。
第二,流片驗證確保體系完整。RISC-V指令集已經經過了全球范圍內多次流片驗證,確保了芯片從設計、樣片到量產全體系的完整有效。
眾所周知,芯片研制除了指令集作為核心技術之一,還需要一個龐大而復雜的生態,涉及上下游軟硬件的諸多環節。指令集除了具備卓越的技術特點,還需要能夠制定統一的標準規范,由生態系統中的企業一致遵守;更需要足夠開放包容、面向足夠廣的市場,令生態中的參與者能通過對接豐富的客戶資源獲得經濟效益。
中國在歷史上也曾嘗試研發完全自主的指令集,然而未能成功實現。究其原因,除了科研實力尚不成熟,更主要的原因就是局限于一國之中的指令集,無法吸引上下游企業的協同參與,無法推動整個生態的積極發展,從而失去了生存的根基。
而RISC-V指令集在過去幾年的發展中,已經經歷了上百次不同商業公司和研發機構的流片驗證,已經證明生態具備完整支持的能力。此外,RISC-V基金會中Google、三星、高通等等國際大型公司的參與,也使其生態體系不斷成熟壯大。采用RISC-V技術,將使得中國能夠專注于處理器技術的發展,而無需擔憂生態體系的完整有效。
第三,精簡指令降低研發成本。RISC-V極為精簡的技術優勢能夠大大降低芯片研發周期和研發成本。
x86與ARM架構的發展過程伴隨了現代處理器架構技術過去幾十年的不斷發展成熟。作為商業企業,為了能夠保持架構的向后兼容性,架構不得不保留許多過時的定義,導致其指令數目多,指令冗余嚴重,文檔數量龐大,x86和ARM的架構文檔都有上千頁。所以在這些架構上開發新的操作系統或者直接開發應用,技術門檻很高,研發過程復雜,往往需要經過反復驗證修改才能成型,極大增加了研發周期和成本。
相比之下,RISC-V架構作為2014年才定型的最新標準技術,完全沒有歷史包袱,而是能夠從過往各種指令集的發展演變歷史中汲取了大量經驗教訓,借助計算機體系結構經過多年的發展已經成為比較成熟技術的優勢,從輕上路。RISC-V基礎指令集則只有40多條,加上其他的模塊化擴展指令總共幾十條指令。 RISC-V的規范文檔僅有145頁,而“特權架構文檔”的篇幅也僅為91頁。
這意味著使用RISC-V架構進行芯片設計的工程師們能更容易上手、更快進行開發驗證,大為縮短芯片的研發周期、降低成本。在中國,各個行業和領域都對芯片有著大量的需求,唯有成本更低、迭代更快的RISC-V技術才能滿足這些需求、支撐中國芯片產業的快速發展。
第四,擴展模塊滿足不同應用場景需求。由于RISC-V具有與眾不同的模塊化架構,能夠靈活搭配,可以滿足各類應用場景對處理器芯片的不同要求。
RISC-V架構相比其他成熟的商業架構的一個最大不同,在于它是一個模塊化的架構。其不同模塊能以非常靈活多變的方式組織在一起,從而可以通過一套統一的架構滿足各種不同的應用。
這種模塊化特性是傳統的x86與ARM架構不具備的。例如,ARM的架構分為A、R和M三個系列,分別針對于應用操作系統(Application)、實時(Real-Time)和嵌入式(Embedded)三個領域,彼此之間并不兼容。在出現交叉領域的復雜應用時,這樣的不兼容性會增加開發工作量,并降低芯片和系統的性能。
相比之下,模塊化的RISC-V架構能夠使得用戶根據具體場景需求靈活選擇不同的模塊組合,既可以實現低功耗小面積的數據采集功能,又能夠實現高性能運算量大的應用操作系統場景,更能保證不同場景共同部分的相互兼容。
這意味著,針對中國目前龐大復雜的不同芯片應用需求,在物聯網、云計算、人工智能、大數據、輔助及自動駕駛等諸多定制化的工業、民用等領域,RISC-V都能夠提供靈活高效并且相互兼容的解決方案。
第五,定義安全自主可控芯片。因RISC-V的擴充彈性優勢,中國有機會定義自已的安全和其他擴充指令集。
中國在最近一二十年隨著半導體產業的成長,特別是各類CPU項目的開展,積累了具有CPU設計和實現能力的人材。如可順勢推動RISC-V這個快速成長的開放指令集和這些人才有機相結合,可將原有大量的人材和經驗積累投注到產業上落地,產生良性循環,加速中國半導體產業發展。
RISC-V在中國的現狀和未來發展探討
中國RISC-V的現狀
目前,RISC-V在中國的工業界和學術界已經引起了不少關注。在RISC-V基金會中,臺灣晶心科技是創始會成員,中天微和中興微是鉑金會員,華為、阿里巴巴、芯原微電子是白金會員,聯發科、上海謹嶸科技、西安優矽科技、廣東高云、君正、比特大陸則是銀牌會員。除此之外,更有一批初創公司在關注和使用RISC-V。國內的RISC-V的愛好者也已經在推動國內社區建設表明中國初步踏進了RISC-V生態圈。
同時還有更多的科研機構也開始涉足RISC-V的研究工作。如中科院計算所還有王元陶研究員與張磊副研究員團隊在基于RISC-V研制智能IoT芯片;中科院計算所包云岡團隊發布了一種新的標簽化體系結構并采用RISC-V開發了FPGA原型系統(即標簽化RISC-V);一些航天航空院所也開始啟動基于RISC-V處理器的預研項目[1]。
同時,我們也要看到,國內關注RISC-V社區的愛好者在不斷增加,但是中國國內目前只是應用學習RISC-V的階段,缺乏RISC-V開源社區中的技術貢獻者;對RISC-V前沿技術進行深入研究的學術機構不多,更缺乏對RISC-V實現產學研貫通的全局把控。
關于未來發展的探討
上海市經濟信息委近日發布了《上海市經濟信息化委關于開展2018年度第二批上海市軟件和集成電路產業發展專項資金(集成電路和電子信息制造領域)項目申報工作的通知》,其中項目指南中包含基于RISC-V指令集架構的處理器芯片方向:支持基于RISC-V指令集架構、32位及以上的處理器芯片的研發及產業化,內核需擁有自主知識產權[2]。
這是國內首個支持RISC-V的相關政策。也許大家從中看出一點端倪。
首先要對接政府政策和資源。通過和中央及地方政府保持匯報溝通,引導RISC-V技術在國內的發展契合我國半導體芯片戰略發展方向,協助平臺上的產學研各方了解和對接相應政策導向和扶持資源。
第二要對接有芯片需求的各行業用戶企業。將下游企業需求在平臺上及時發布,促進產業鏈的形成發展。
第三要對接國內外高校和科研機構。推進RISC-V的基礎和理論研究以及在前沿研究領域的應用,支撐有關科研體系的建立和發展,推動科研成果的產業化,支持掌握RISC-V架構的學術和工程人才的培育。
第四要對接使用RISC-V進行芯片研發和制造的企業。支持RISC-V架構運用企業研發工作的體系化開展,引導生態系統中其他仿真、驗證、封測、操作系統、應用軟件、數據采集和處理等技術企業的孵化發展,加強企業間交流合作和技術共享。
第五要對接RISC-V國際基金會。建立RISC-V中國基金會,和RISC-V基金會建立聯系、促進交流,不斷將國際最新科研技術成果介紹到國內,更將中國的研究、產業成果在允許的范圍內有序恰當的回饋國際開源社區,有效促進RISC-V技術體系在全球范圍內的進一步發展。
第六要對接半導體芯片產業資本。引入有實力、有資源、有信譽的各方資本,協助其與處在不同發展階段、有不同融資需求的相關企業進行對接交流、促成雙方投融資合作。
必須通過構建中國微處理器架構產業化平臺,推動RISC-V技術在國內的系統性和規模性發展、形成有機的RISC-V芯片生態體系,推動各相關產業全方位共同發展、全鏈條深度互動,實現各方的互利互惠、合作共贏。
中國微處理器架構發展思考
鑒于RISC-V的開放性,全世界范圍內越來越多國家的政府項目開始選擇RISC-V,除了美國DARPA,印度、以色列選擇RISC-V作為國家級處理器指令集。而中國擁有著巨大的芯片需求,政府一直希望能把國產芯片產業做大做強。包云崗研究員表示,各方都在努力,但思路不同,導致目前“軍閥割據”的狀態,整個產業一盤散沙,嚴重分散基礎軟件開發力量。中科院計算所包云崗研究員表示,有必要考慮推行指令集國家標準[1]。
對于選擇何種指令集,包云崗研究員表示,基于RISC-V或者重新設計一套指令集均可行,并非唯一的答案。
對于前者,RISC-V生態系統已經初步建成,我們需要在生態系統中做出更多的貢獻,樹立起威信才能爭取到更多話語權。
另一方面,重新設計也并非不可行,因為開放指令集RISC-V給我們兩個啟發:
一是指令集與芯片具體設計實現可以分離。這就形成了第一個可行性條件,國內各家芯片商可以采用統一的、免費的開放指令集,但各個廠商可以有各自的內部模塊實現,并可以申請專利予以保護。這樣既可以構建同一個軟件生態系統,又保持了芯片企業之間的獨立性。
二是如果各方目標一致,推行一套全新的指令集并沒有那么困難。2012年國內各方都認為“從零開始設計一套全新的指令集是一項讓人望而卻步的工作”,但RISC-V卻是從一個為期3個月的項目開始成長起來的,這給了我們很大啟發,關鍵還是各方目標需要達成一致。然后配以RISC-V采取的組合措施,結合國家政策,相信也可以建立起一套基于全新指令集的生態系統。
微處理器指令集事關整個信息產業的基礎。希望政府能下定決心,推行指令集國家標準,不管是選用RISC-V,還是自行開發一套新指令集。
[1]包云崗:關于RISC-V成為印度國家指令集的一些看法
[2]《上海市經濟信息化委關于開展2018年度第二批上海市軟件和集成電路產業發展專項資金(集成電路和電子信息制造領域)項目申報工作的通知》