向Linux看齐,立志存活三十年:包云岗团队开源高性能RISC-V处理器「香山」
扫描二维码
随时随地手机看文章
中国科学院计算技术研究所的包云岗团队推出了一款开源的高性能 RISC-V 处理器——香山。他们给自己定的小目标是:存活 30 年。
在 CPU 架构领域,Arm 和 X86 分别在移动端和桌面端占据了绝大部分市场份额。但是,这两个巨头对指令集的授权管控极为严格,这意味着大多数芯片企业只能购买其半成品或接近成品的技术,在其基础上进行相对边缘化的研发,没有机会掌握真正核心、底层的技术。少数实力雄厚的企业能取得授权,也要付出数千万甚至上亿美元的授权费代价[1]。这使得越来越多的芯片研发企业转向了开源的 RISC-V。
加州大学伯克利分校教授、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 处理器——香山。
开源链接: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)。
在 RISC-V 中国峰会上,包云岗介绍了「雁栖湖」架构开发的几个关键决策。
第一个决策是选择使用 Chisel 语言(伯克利大学发布的一种开源硬件构建语言)。与使用传统的 Verilog 语言相比,使用 Chisel 进行敏捷开发效率可以提升 13 倍,代码量仅为传统开发的 1/5,而且可以达到传统开发的质量水平。
第二个决策是重视构建支持敏捷设计的流程与工具,包括效率接近 QEMU 的高性能解释器 NEMU、TL-C 一致性 Cache 的软件测试框架 Agent Faker、指令级在线差分验证框架 Difftest、基于内存的轻量级仿真快照 LightSSS、填补底层波形和高层语义鸿沟的调试栈 Waveform Terminator、可以在 10 小时内估算出 RISC-V CPU SPEC 分数的 BetaPoint 等。这些工具加速了整个开发和验证流程。
包云岗表示,「雁栖湖」将在 7 月中旬流片,未来目标是达到 ARM Cortex-A76 的性能水平。
与「雁栖湖」相比,「南湖」的设计目标更高:频率期望达到 2GHz@SMIC 14nm,性能期望达到 10 分 / GHz(SPEC CPU 2006 )。该版本的设计于今年 3 月份启动,预计 2021 年底流片。
截至 2021 年 6 月 1 日,共有 25 位中科院计算所的同学 / 老师参与「香山」项目,他们贡献了 31784 行香山核设计代码和 18317 行验证框架代码。首期「一生一芯」计划的五位同学(金越、王华强、王凯帆、张林隽、张紫飞)在本科一毕业便加入了香山的开发,成为了技术骨干。6 月 19 日,技术团队在嘉兴南湖召开了一场研讨会。
包云岗表示,为了建立像 Linux 这样的被工业界广泛应用的体系结构创新开源平台,实现使香山存活 30 年的目标。为此,他们还有很多工作要做,包括保持半年更新一代架构的迭代优化频率;每年 2 次流片,对新架构、新功能进行验证等。
合作方面,北京微核芯科技为「香山」提供了第一期产业经验、帮助完成了结构设计及物理设计。目前,项目的第二期正在招募联合开发合作伙伴,已经加入的企业包括微核芯、字节跳动、北京奕斯伟、优矽科技等。包云岗表示,「这些来自工业界的积极反馈,让我们更坚定地去践行科研重工业模式。」(科研重工业模式即热衷于研制真正能改变现状的原型系统,哪怕需要大量工程投入,典型代表是加州大学伯克利分校。[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