在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6987|回复: 9

64位开源处理器Rocket的源代码简单介绍

[复制链接]
发表于 2015-7-7 22:34:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

最近大概阅读了一下UCB发布的Rocket处理器的源码,对源代码各个文件的功能有了一些大致的了解,Mark一下。

Rocket是一款64bit的标量处理器,5级流水线,采用的是risc-v指令集,集成FPU,并有许多or1200没有的特性,比如:无阻塞缓存、分支预测、返回地址堆栈、硬件页表填充、cache支持ECC、支持多核等。

Rocket的源代码是使用Chisel编写的,Chisel是UCB发布的基于Scala的领域特定语言。可以在https://github.com/ucb-bar/rocket下载Rocket的全部源码,共有20个文件,各个文件实现的功能大致如下:


开源处理器Rocket的源代码文件作用说明
arbiter.scala实现了一个固定优先级的仲裁器,编号越低,优先级越高
btb.scala实现了gshare,其中包含BTB(Branch Target Buffer)、BHT(Branch History Table),还实现了RAS(Return Address Stack)
consts.scala定义了一些类似与宏定义的变脸
core.scala包含控制通路、数据通路,联合起来为Core
csr.scala实现了risc-v指令集中定义的Control Status Registers
ctrl.scala实现了控制通路,其中就反映了5级流水线
decode.scala其中实现了对卡诺图的化简,在指令译码的时候会使用这里的功能
dpath.scala实现数据通路
depath_alu.scala实现了ALU
fpu.scala实现了与第三方FPU的接口
icache.scala实现了指令一级缓存、取值,其中就使用了btb.scala中定义的分支预测技术
instructions.scala定义了Rocket处理器支持的所有指令
multiplier.scala实现了乘法、除法运算,其中乘法采用的是迭代法,除法采用的是试商法
nbdcache.scala实现了数据一级缓存,采用MSHR技术实现了无阻塞缓存
package.scala定义了复位地址、异常处理vector base address
ptw.scala实现了硬件的page table walk,也就是硬件页表填充
rocc.scala实现了一个加速协处理器,用来执行用户自定义指令
tile.scalaRocket处理器的顶层文件,其中连接Core、指令一级缓存、数据一级缓存、FPU等模块
tlb.scala实现了传输后备缓冲器
util.scala定义了一些对象,提供了一些工具函数,比如:类型转换。

以上是个人的理解,欢迎大家提出异议,共同讨论啊。



摘自http://blog.csdn.net/leishangwen/article/details/46604819

相关帖子

发表于 2015-7-8 09:25:44 | 显示全部楼层
https://github.com/ucb-bar/rocket没有找到源代码啊?希望指点!
 楼主| 发表于 2015-7-11 13:03:49 | 显示全部楼层
回复 2# anatodig

有啊,我刚才试试还有
发表于 2015-9-12 22:10:37 | 显示全部楼层
是用java写的么?
发表于 2015-9-15 13:44:57 | 显示全部楼层
scala吧
发表于 2016-9-17 02:16:12 | 显示全部楼层
学习了,谢谢
发表于 2016-11-26 12:04:15 | 显示全部楼层
可惜不支持SIMD指令
发表于 2017-11-19 11:51:03 | 显示全部楼层
有rocc可以扩展SIMD,hwache项目与此有关,只是没有开源。
发表于 2019-10-31 17:42:50 | 显示全部楼层
楼主有看hardfloat吗浮点除法,可以交流一下
发表于 2020-3-14 11:56:45 | 显示全部楼层
thanks
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 08:16 , Processed in 0.028078 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表