博客專欄

        EEPW首頁 > 博客 > 向Linux看齊,立志存活三十年:包云崗團隊開源高性能RISC-V處理器「香山」

        向Linux看齊,立志存活三十年:包云崗團隊開源高性能RISC-V處理器「香山」

        發布人:機器之心 時間:2021-06-25 來源:工程師 發布文章

        中國科學院計算技術研究所的包云崗團隊推出了一款開源的高性能 RISC-V 處理器——香山。他們給自己定的小目標是:存活 30 年。

        1.gif

        在 CPU 架構領域,Arm 和 X86 分別在移動端和桌面端占據了絕大部分市場份額。但是,這兩個巨頭對指令集的授權管控極為嚴格,這意味著大多數芯片企業只能購買其半成品或接近成品的技術,在其基礎上進行相對邊緣化的研發,沒有機會掌握真正核心、底層的技術。少數實力雄厚的企業能取得授權,也要付出數千萬甚至上億美元的授權費代價[1]。這使得越來越多的芯片研發企業轉向了開源的 RISC-V。

        2.png

        加州大學伯克利分校教授、RISC-V 發明人 David Patterson 曾大膽預言:「在五到十年內,RISC-V 可能成為世界上最重要的指令集」。

        隨著 RISC-V 熱度不斷上升,這一預言似乎正逐漸走向現實。

        前段時間,路透社等外媒報道稱,英特爾正計劃以 20 億美元的價格收購全球首家基于 RISC-V 架構的半導體初創公司 SiFive。去年剛從英特爾離職的半導體行業大牛 Jim Keller 也透露出了對 RISC-V 前景的樂觀,他表示,「這是一個非常好的指令集。(與 Arm 和 x86 相比,)它是最簡單的一個,擁有所有該有的功能,而且沒有太多垃圾。如果我想要快速構建一臺計算機,并且希望它運行得夠快,那么 RISC-V 是最容易的選擇。」

        放眼國內,RISC-V 的熱度也在不斷上漲。6 月 21 日,第一屆 RISC-V 中國峰會在上海科技大學拉開帷幕。在本屆峰會上,中國科學院計算技術研究所研究員、中國開放指令生態(RISC-V)聯盟秘書長包云崗介紹了他們團隊最近開發的一款開源高性能 RISC-V 處理器——香山。

        3.png

        開源鏈接:https://github.com/OpenXiangShan/XiangShan (除了 GitHub,國內幾個開源平臺 Gitee/Trustie/iHub 上都有「香山」的鏡像,搜「XiangShan」就能找到。)

        為什么要做「香山」?此前,包云崗團隊發現,Linux誕生30年,其不僅被工業界廣泛應用,也成為學術界開展操作系統研究的創新平臺,而CPU領域尚未產生一個類似的開源主線。

        「要建立一個像Linux那樣的開源RISC-V核主線,既能被工業界廣泛應用,又能支持學術界試驗創新想法。最關鍵的是,一定要讓它像Linux那樣至少存活30年。」這是「香山」團隊給自己定下的小目標。

        「我們做了一年多的準備工作——申請經費,啟動『一生一芯』計劃培養人才,建立團隊,尋找合作伙伴……終于,香山正式啟動了。」

        據悉,「香山」的理念是代碼開源、流程開放、文檔公開[2]。它基于 Chisel 硬件設計語言實現,支持 RV64GC 指令集。在「香山」處理器的開發過程中,團隊使用了包括 Chisel、Verilator 等在內的大量開源工具,實現了差分驗證、仿真快照、RISC-V 檢查點等處理器開發的基礎工具,建立起了一套包含設計、實現、驗證等在內的基于開源工具的處理器前端敏捷開發流程。其開源許可證采用的是木蘭寬松許可證。[3]

        目前,「香山」共有兩版微架構,第一版叫「雁棲湖」,第二版叫「南湖」。

        「雁棲湖」是一個11級流水、6****、4個訪存部件的亂序處理器核。它的開發始于 2020 年 6 月,RTL 于今年 4 月份完成。該架構的頻率可以達到 1.3GHz@TSMC 28nm,性能預計可以達到 7 分 / GHz(SPEC CPU 2006)。

        4.png

        「雁棲湖」架構概覽。

        在 RISC-V 中國峰會上,包云崗介紹了「雁棲湖」架構開發的幾個關鍵決策。

        第一個決策是選擇使用 Chisel 語言(伯克利大學發布的一種開源硬件構建語言)。與使用傳統的 Verilog 語言相比,使用 Chisel 進行敏捷開發效率可以提升 13 倍,代碼量僅為傳統開發的 1/5,而且可以達到傳統開發的質量水平。

        5.png

        第二個決策是重視構建支持敏捷設計的流程與工具,包括效率接近 QEMU 的高性能解釋器 NEMU、TL-C 一致性 Cache 的軟件測試框架 Agent Faker、指令級在線差分驗證框架 Difftest、基于內存的輕量級仿真快照 LightSSS、填補底層波形和高層語義鴻溝的調試棧 Waveform Terminator、可以在 10 小時內估算出 RISC-V CPU SPEC 分數的 BetaPoint 等。這些工具加速了整個開發和驗證流程。

        6.png

        包云崗表示,「雁棲湖」將在 7 月中旬流片,未來目標是達到 ARM Cortex-A76 的性能水平。

        與「雁棲湖」相比,「南湖」的設計目標更高:頻率期望達到 2GHz@SMIC 14nm,性能期望達到 10 分 / GHz(SPEC CPU 2006 )。該版本的設計于今年 3 月份啟動,預計 2021 年底流片。

        7.png

        截至 2021 年 6 月 1 日,共有 25 位中科院計算所的同學 / 老師參與「香山」項目,他們貢獻了 31784 行香山核設計代碼和 18317 行驗證框架代碼。首期「一生一芯」計劃的五位同學(金越、王華強、王凱帆、張林雋、張紫飛)在本科一畢業便加入了香山的開發,成為了技術骨干。6 月 19 日,技術團隊在嘉興南湖召開了一場研討會。

        包云崗表示,為了建立像 Linux 這樣的被工業界廣泛應用的體系結構創新開源平臺,實現使香山存活 30 年的目標。為此,他們還有很多工作要做,包括保持半年更新一代架構的迭代優化頻率;每年 2 次流片,對新架構、新功能進行驗證等。

        8.png

        合作方面,北京微核芯科技為「香山」提供了第一期產業經驗、幫助完成了結構設計及物理設計。目前,項目的第二期正在招募聯合開發合作伙伴,已經加入的企業包括微核芯、字節跳動、北京奕斯偉、優矽科技等。包云崗表示,「這些來自工業界的積極反饋,讓我們更堅定地去踐行科研重工業模式。」(科研重工業模式即熱衷于研制真正能改變現狀的原型系統,哪怕需要大量工程投入,典型代表是加州大學伯克利分校。[4])

        從「香山」的發布和產業支持不難看出,國內半導體行業對 RISC-V 的熱情也在持續高漲。但不可否認的是,該指令集的生態構建還需要一段時間。在前段時間的一次采訪中,包云崗坦言,采用 RISC-V 實現復雜場景下需求的應用還在起步初期,要想走進生態豐富且穩固的服務器、電腦、手機等傳統領域,還有很長一段路要走。他粗估,至少要 5 年至 10 年[1]。

        也有人認為,因為足夠開放,RISC-V 的生態弱項未來有可能反轉成優勢。「產業的生態環境還在形成,沒有老牌霸主,我們有機會打造包括指令集、核心芯片、操作系統,以及上層應用、云服務在內的可控生態。」華米科技創始人黃汪表示[1]。

        當然,生態的建設不是一件容易的事。「對于 RISC-V 來說,如何讓參與進來的玩家形成合力是一個挑戰。」阿里巴巴平頭哥市場部負責人高慧指出,過去 ARM 和 X86 這些指令集都有一個核心玩家,推動指令集不斷向某一個方向演進。現在,開源開放的 RISC-V 吸引了很多玩家,需要思考如何形成合力,而不是分叉發展[1]。

        其實,這也是「香山」項目的初衷之一,即「形成『競爭前合作』,實現各界聯合開發開源 CPU 架構」。只有加強合作,RISC-V 生態才能早日發展壯大。

        參考鏈接:

        [1] https://baijiahao.baidu.com/s?id=1696983669207732243&wfr=spider&for=pc

        [2] https://www.zhihu.com/question/466393646/answer/1955410750

        [3] https://openxiangshan.github.io/

        [4] https://zhuanlan.zhihu.com/p/268197755

        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: AI

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 黄山市| 卓尼县| 清水河县| 陆丰市| 义乌市| 建始县| 曲沃县| 上栗县| 亳州市| 甘孜县| 紫阳县| 武威市| 什邡市| 上林县| 武汉市| 遂昌县| 内丘县| 台南县| 泾阳县| 炎陵县| 尤溪县| 深水埗区| 盈江县| 泰安市| 姜堰市| 德昌县| 吴桥县| 崇州市| 海安县| 澄迈县| 应用必备| 日照市| 重庆市| 清水河县| 崇仁县| 新安县| 丽江市| 水富县| 施甸县| 上思县| 鱼台县|