ChipCamp探索系列 -- 7A. 开源CPU之BOOM的来龙去脉

本文梳理一下Berkeley的乱序超标量CPU项目----Berkeley Out of Order Machine (BOOM),作为探索7系的首篇(7A)。

1、2016年1月,中国正准备迎接即将到来的猴年,BOOM这个开源项目的宣讲,强调开源、工业竞争力、可综合、参数化、RISC-V处理器。前端代言是Celio,后端大佬是David Patterson。

2、2016年12月,BOOM Design Specification以草案发布。

3、2017年的Workshop则快速来到了BOOMv2版本。

4、梳理一下Berkeley的RISC-V的成果,从Sodor到Z-scale再到Rocket-chip和BOOM:

----从Sodor、Z-scale、Rocket、到BOOM,是一个从简单的小项目到复杂的大项目的顺序,贯穿的是Chisel语言,四个项目都是使用Chisel语言。

----Rocket-Chip作为生成器,【挂靠】了3个项目,分别是面向微控制器(IoT)的Z-scale,64位单发射顺序执行的流水线实例Rocket,以及64位乱序执行的超标量Boom。

----之所以说是【挂靠】,因为Z-Scale和BOOM并不是由Rocket-Chip“生成”的。Rocket-Chip作为Berkeley的一个“框”,宣称的定位是SoC generator,包括Berkeley要推动Chisel的一个理由就是Chisel作为SoC Generator的能力、比Verilog作为SoC HDL的能力要【高阶】一个代际。

----这个Rocket-Chip项目,本身包含了RISC-V CPU Core,以及CPU SoC所需要的片内总线和外设,并且可以对SoC进行不同的配置,比如一个SoC可以包含1-4个CPU Core,包含可配置大小的L1 Cache,可配置0-1个L2 Cache等。其中的RISC-V CPU Core就是所谓的Rocket-Core,位于Rocket-Chip项目的src/main/scala/目录下的rocket子目录!这个套路是许多SoC项目的基本目录结构,包括Verilog的项目也是这样。

----而BOOM作为一个【超标量CPU核】,本身是【替代】Rocket-Core这个【标量CPU核】的,BOOM并不是由Rocket-Core这个SoC Generator生成的。当然,BOOM本身只是一个CPU Core的定位,要生成真正实用的CPU Chip,则通常还需要把它放入到SoC的外围总线和接口等电路中、作为SoC的一个Unit。当然因为BOOM和Rocket-chip都是出自Berkeley,所以配套自家的Rocket-Chip是很自然的事情了。

----回到主题【高性能超标量CPU】上来,只有BOOM是多发射乱序执行的超标量CPU(核),multi-issue out-of-order superscalar CPU Core。

5、BOOM is a piece of the Rocket-Chip ecosystem,挂靠Rocket-chip是因为它作为Berkeley家的Ecosystem的定位,有悠久的历史和辉煌的成功(12 times tapeout)。

----但需要明确和提示的是,研究BOOM就要跳出Rocket-Chip,并不需要先把Rocket-Chip研究透了再来研究BOOM等。我们说研究CPU主要指的是CPU Core而不是CPU SoC。BOOM是一个超标量乱序执行的处理器核,Rocket-Chip的Rocket-Core则是一个标量处理器核。至于Rocket-Chip的外围SoC部分,留待后面单说。

----这个图里还有一个名词叫RoCC,是早先RISC-V的加速器/协处理器和CPU的接口规范,随着RISC-V的向量扩展(Vector Extension)规范的推出,RoCC接口已经不再推荐使用了,但在一些早一些的项目中经常会看得到RoCC。当然也有一些高性能的项目继续使用RoCC来设计分离的加速器和RISC-V CPU Core进行解耦配套。

6、BOOM本身,经过了v1--v2--v3的发展过程,在github上的源码仓有v1/v2/v3各版本tag,代码仓主线目前保存了v3和v4两个目录,但相差不是很多,且没有关于v4的介绍。

7、有意思的是这个Comparison,横向比较+纵向比较。

----纵向比较:一个RISC-V的5级流水线CPU Core,我们此前已经前仿跑起来Debug/Trace都打上了,大概500-1000行左右。而这个超标量BOOMv2则有16000行。从流水线到超标量10倍的代码量。

----横向比较:SiFive的8K行,BOOMv2的16K行,它们都是采用Chisel的。而采用Verilog的UltraSPARC则有290K行。虽然不是同一个项目的两种不同实现,但这个比例还是有参考价值的,那就是Chisel代码如果使用Verilog来写要增加10倍。

----两者相乘100倍,足以让人从流水线CPU的入门到超标量CPU的放弃。但有了开源RISC-V的Chisel实现和示范,万儿八千的代码,无论如何不算很难。先壮壮胆。

8、再祛祛魅,看看BOOM在FPGA上的仿真运行,以及芯片版图规划(floorplan)的效果。看到这样的图,即使只是slides也让人感觉距离芯片生产“不再遥远”、“不再神秘”。

9、最后,看看BOOM这个【超标量CPU】的代码仓以及历史版本的演变情况。

BOOM项目主线在gitee上的镜像地址:

https://gitee.com/mirrors_riscv-boom/riscv-boom

它的主线代码src/main/scala目录下有v3和v4两个子目录,代码相差不多:


按照Tag梳理一共有V1.0/2.0/3.0.0共3个大版本+7个2.x共10个历史版本,如下所示:

各历史版本的代码文件及代码行统计如下:

ver 1.0.0 -- 41 files -- 7130 lines

ver 2.0.0 -- 47 files -- 8644 lines

ver 2.0.1 -- 47 files -- 8681 lines

ver 2.1.0 -- 60 files -- 9930 lines

ver 2.1.1 -- 60 files -- 9872 lines

ver 2.2.0 -- 61 files -- 10459 lines

ver 2.2.1 -- 62 files -- 10412 lines

ver 2.2.2 -- 61 files -- 10332 lines

ver 2.2.3 -- 59 files -- 11671 lines

ver 3.0.0 -- 55 files -- 10926 lines (和主线上的v3目录略有差异)。

10、BOOM的官方网站资料集合含2018年HotChips30正会宣讲胶片!

https://boom-core.org/

----To get started with RISC-V BOOM, you can find our

microarchitectural documentation https://docs.boom-core.org/,

the GitHub organization https://github.com/riscv-boom,

and the mailing list https://groups.google.com/forum/#!forum/riscv-boom.

https://docs.boom-core.org/en/latest/

----The BOOM website can be found here: https://boom-core.org.

https://boom-core.org/boom-publications/

----公开的会议胶片和文档,其中有一份HotChips30的会议材料:

----Speaker: Christopher Celio. BROOM: An open-source Out-of-Order processor with resilient low-voltage operation in 28nm CMOS. Hot Chips 30 Conference. Cupertino, CA. August 2018.

----BOOM值得探索。TBD!

--------END--------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChipCamp

谢谢支持和鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值