天天看點

中科院釋出國産 RISC-V 處理器“香山”:已成功運作 Linux/Debian

本周,首屆 RISC-V 中國峰會在上海科技大學舉辦。這是 RISC-V 第一次在北美以外地區舉辦同等規模的峰會。在本屆大會上,中科院大學教授、中科院計算所研究員包雲崗公布了國産開源高性能 RISC-V 處理器核心—— 香山 ,其核心以“湖”來命名架構代号,第一代叫做“雁栖湖”,“雁栖湖”RTL代碼于今年4月完成,計劃于7月基于台積電28nm工藝流片。第二代架構叫做“南湖”,将采用中芯國際14nm工藝,預計今年年底流片。北京微核芯參與了第一期的設計工作,目前團隊正招募香山處理器二期聯合開發合作夥伴,加入的企業已有位元組跳動等公司。

作者 |

包雲崗

,2003年大學畢業于南京大學,2008年獲中科院計算所博士學位,2010-2012年普林斯頓大學博士後,現為中科院計算所研究員,所長助理,先進計算機系統研究中心主任,中國科學院大學崗位教授,博士生導師,中國開放指令生态(RISC-V)聯盟秘書長。

22号下午關于香山的報告,因為Zoom直播出現了技術故障,導緻大家未能聽到完整的報告,稍有些遺憾。考慮了一下,這裡就把報告PPT直接貼出來,再加上我們在香山開發過程中的一些考慮和想法,跟大家分享。

中科院釋出國産 RISC-V 處理器“香山”:已成功運作 Linux/Debian

這個報告主要回答四個問題:

  • 一、為什麼要做香山?
  • 二、香山什麼水準?
  • 三、香山怎麼做的?
  • 四、香山未來如何發展?

2010年RISC-V誕生,迄今已有11年。如今,在RISC-V國際基金會網站上登記的各類商業或開源的RISC-V處理器核就有上百個(如下連結),為什麼還要做一個開源的高性能RISC-V核?

RISC-V Exchange: Cores & SoCs - RISC-V International

對于這個問題,我們和很多業界企業交流過,也做了很多調研與分析,這都讓我們判斷認為業界需要一個開源的高性能RISC-V核。另一方面,我們也在思考一個問題——為什麼CPU領域還沒有一個像Linux那樣的開源主線?1991年開源的Linux誕生,到今天正好30年。如今,Linux不僅被工業界廣泛應用,也成為學術界開展作業系統研究的創新平台。

RISC-V是開放開源的指令集,允許全世界任何人免費實作一個RISC-V處理器,可以是商用,也可以開源,這是和公司私有的X86/ARM指令集相比最大的差別之一。但是,十年過去了,到現在還未能形成一個像Linux那樣的開源主線。Berkeley的BOOM目标是一個高性能開源RISC-V核,但是BOOM代碼倉庫相對不開放,官方建議其他人實作任何功能都要事先和他們溝通,以確定不要與他們的計劃産生沖突。根據GitHub官方的統計頁面顯示,從2014年1月至今,為BOOM送出過超過100行代碼修改的僅有8人。由此可見,一定程度上因為BOOM嚴格的外部貢獻政策,開源社群對BOOM的參與度并不高。

是以,團隊的唐丹博士和我一直認為要建立一個像Linux那樣的開源RISC-V核主線,既能被工業界廣泛應用,又能支援學術界試驗創新想法。最關鍵的是,一定要讓它像Linux那樣至少存活30年!

于是,“香山”誕生了。

中科院釋出國産 RISC-V 處理器“香山”:已成功運作 Linux/Debian

我們做了一年多的準備工作——申請經費,啟動“一生一芯”計劃培養人才,建立團隊,尋找合作夥伴……這期間得到了太多太多人的支援和幫助:計算所孫凝晖院士幫我們多處找經費,國科大全力支援“一生一芯”計劃,鵬城實驗室支援我們建立起後端實體設計團隊,多位計算所老所友毅然決定參與開源主線等等,就不一一列舉了。

終于,香山正式啟動了——2020年6月11日,香山在GitHub上建立了代碼倉庫。

短短的的一年時間裡,25位同學和老師參與了香山的開發。821次主分支代碼合并,3296次代碼送出(commit),5萬餘行代碼,400多個文檔,記錄了香山的成長過程。我們的理念是代碼開源、流程開放、文檔公開。這期間,有企業直接參與開發,也有企業表達參與意向,都因為認同開源理念,願意一起來共建開源的香山。這些來自工業界的積極回報,給予我們極大的鼓舞和信心,讓我們更堅定地去踐行“科研重工業模式”。

“科研重工業模式”,是 2020年1月我為《中國計算機學會通訊(CCCF)》寫了一篇卷首語《伯克利科研模式的啟發》中提出的:

袁岚峰:CCCF卷首語 :伯克利科研模式的啟發 | 包雲崗

回顧伯克利的科研曆程,可以發現他們在過去幾十年研制了大量的原型系統,不僅推動了技術進步甚至颠覆産業,也培養了一代代傑出人才(其中多位獲得圖靈獎):1950年代CALDIC系統(Doug Englebart),1960年代Project Genie系統(Butler Lampson與Chuck Thacker),1970年代BSD Unix作業系統與INGRES資料庫系統(Michael Stonebraker),1980年代RISC處理器(David Patterson),1990年代RAID存儲系統與NOW機群系統……如果用一句話來總結伯克利的科研模式,那就是——熱衷于研制真正能改變現狀的原型系統,哪怕需要大量工程投入。國重主任孫凝晖院士稱之為“科研重工業模式”。

“科研重工業模式”,我們不想紙上談兵,我們要用行動去實踐。

中科院釋出國産 RISC-V 處理器“香山”:已成功運作 Linux/Debian

香山是一款開源RISC-V處理器核,它的架構代号以湖命名。第一版架構代号是“雁栖湖”,這是帶有濃重國科大情節的同學們起的名字,因為他們研一都在懷柔雁栖湖待了一年。“雁栖湖”RTL代碼于2021年4月完成,計劃于7月基于TSMC 28nm工藝流片,目前頻率為1.3GHz。

第二版架構代号是“南湖”,這是向建黨100周年緻敬。“南湖”計劃在今年年底流片,将采用中芯國際14nm工藝,目标頻率是2GHz。

中科院釋出國産 RISC-V 處理器“香山”:已成功運作 Linux/Debian

香山選擇什麼開源許可證?這個問題糾結了我們好一陣子。後來,我們專門向北京大學周明輝教授請教,小夥伴們制定了4種開源許可證方案。在反複對比權衡後,最終選擇了如下表格中的方案①——木蘭寬松版許可證(MulanPSLv2)。在此,特别感謝北大周明輝老師的專業指導!

中科院釋出國産 RISC-V 處理器“香山”:已成功運作 Linux/Debian

開源許可證方案對比(徐易難整理)

“雁栖湖”架構是一個**11級流水、6發射、4個訪存部件的亂序處理器核。**在發射寬度上已經可以和一些ARM高端處理器核相當,但還未進行充分優化,是以實際性能還有不小的差距。我們希望未來通過持續疊代優化(“南湖”-->"X湖"-->"Y湖"-->……),性能達到ARM A76的水準。

中科院釋出國産 RISC-V 處理器“香山”:已成功運作 Linux/Debian
中科院釋出國産 RISC-V 處理器“香山”:已成功運作 Linux/Debian

我們基于GitHub CI建構了一套流程化的自動回歸測試架構,并在過去大半年不斷增加測試負載,從cputest,risc-tests到Linux,到SPECCPU workload。這套自動回歸測試架構在保障和驗證晶片的正确性。

中科院釋出國産 RISC-V 處理器“香山”:已成功運作 Linux/Debian

每個大項目總會有一些激動人心的時刻,這段30秒的小視訊記錄了香山在FPGA上啟動Linux/Debian的時刻,略帶喜感。

香山開發初期速度非常快:6月11日建立代碼倉庫,7月6日亂序流水線便已完成,能正确運作CoreMark,不到一個月時間;9月12日,Linux正确啟動;10月22日,Debian正确啟動。

接下來便是大半年的結構優化、性能調優、時序優化工作,香山架構幾乎相當于重構了一遍。一個典型的例子,香山的第一版分支預測器(BPU)參考了BOOM的BPU,但後端評估頻率隻能達到800MHz(TSMC 28nm)。于是負責BPU設計的勾淩睿在幾位老師的指導下,不斷優化BPU結構,最終将頻率提升到了1.4GHz。

這期間,小夥伴們紛紛自己動手,開發了各種各樣的優化和調試工具,大大地加速了優化和驗證環節。這讓我真心佩服這批90後——他們真是充滿了創造力,從工作到生活,而主要驅動力之一就是“省(tou)時(lan)”。比如甯可自己寫個程式自動點外賣,也懶得打開手機看菜單點。

中科院釋出國産 RISC-V 處理器“香山”:已成功運作 Linux/Debian

香山的開發至少有兩個重要的決策,第一個便是選擇靈活設計語言Chisel。很多人質疑Chisel,排斥Chisel,但是我們在充分評估後,還是決定使用Chisel。

我們團隊是在2016年開始使用Chisel,一開始組裡也充滿質疑。2018年,我們設計了兩組定量的對比實驗,找了2位同學用Chisel、1位工程師用Verilog分别設計一個L2 Cache子產品。通過一系列量化對比,得出了如下三個結論:

  1. Chisel開發效率遠高于Verilog;
  2. 實作相同的功能,Chisel代碼量僅為Verilog的1/5(是以香山的5萬行Chisel代碼相當于25萬行Verilog代碼);
  3. Chisel的開發品質不比Verilog差。

後來将實驗結果發表在2019年1月的《計算機研究與發展》。最近去華為交流,才知道這些對比結果也推動了華為内部組建了Chisel開發團隊,如今華為也是Chisel的支援者。

2020年,我們又基于Chisel完成了一款8核标簽化RISC-V處理器的流片,這是基于Rocket處理器核進行了标簽化體系結構改造,采用TSMC 28nm工藝流片。雖然因為時間緊張,并沒有進行細緻的後端優化,但晶片傳回後也還能正常運作在1.2GHz。這是一顆有一定複雜度的8核SoC晶片,但Chisel能應對。是以,我們相信Chisel可用來開發複雜晶片。

繼續閱讀