64位开源处理器Rocket该人士介绍
最近大概读一点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个文件。各个文件实现的功能大致例如以下:
| 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.scala | Rocket处理器的顶层文件,当中连接Core、指令一级缓存、数据一级缓存、FPU等模块 |
| tlb.scala | 实现了传输后备缓冲器 |
| util.scala | 定义了一些对象,提供了一些工具函数,比方:类型转换。 |
以上是个人的理解。欢迎提出异议,讨论啊。
版权声明:本文博主原创文章。博客,未经同意不得转载。
64位开源处理器Rocket该人士介绍的更多相关文章
- (转)64位开源处理器Rocket的源代码简单介绍
转载地址: http://blog.csdn.net/leishangwen/article/details/46604819 最近大概阅读了一下UCB发布的Rocket处理器的源码,对源代码各个文件 ...
- ubuntu 到底是选择32位还是64位?
ubuntu 到底是选择32位还是64位? 2011-06-03 15:16:31 标签:ubuntu linux 休闲 cpu 职场 原文出处:官方wiki原文作者:授权许可: 创作共用协议Att ...
- 64位sql server 如何使用链接服务器连接Access
原文:64位sql server 如何使用链接服务器连接Access 测试环境 操作系统版本:Windows Server 2008 r2 64位 数据库版本:Sql Server 2005 64位 ...
- java与32/64位虚拟机
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt232 32位电脑与64位电脑有什么不同? 我们通常说的64位技术是相对于32 ...
- IOS是否存在32位和64位版本的区分
苹果于2013年9月推出了iPhone 5S新手机,采用的全新A7处理器其最大特色就是支持64位运算.其64位A7处理器的使用意味着iPhone性能会大有提高,性能和速度更加出色:而要到达到这样的性能 ...
- 介绍 32 位和 64 位版本的 Microsoft Office 2010
在使用 64 位版本的 Office 2010 运行现有解决方案时存在两个基本问题: Office 2010 中的本机 64 位进程无法加载 32 位二进制文件.在使用现有 Microsoft Act ...
- 字符转码开源库libiconv目前还不支持64位
最新版的libiconv 1.14目前还不支持64位系统,只能编译出32位库. libiconv 1.14下载地址: http://ftp.gnu.org/pub/gnu/libiconv/libic ...
- 开源一个IE下获取XPath小工具,支持32/64位
背景是曾经友情支持了测试组一小段时间,发现他们使用selenium做页面的自动化测试,需要用到XPath,但IE下没有获取XPath的工具,只能在Firefox和chrome下获取,步骤还比较麻烦.而 ...
- C语言变量长度在32位和64位处理器上的关系
C语言变量长度在32位和64位处理器上的关系 理论上来讲 我觉得数据类型的字节数应该是由CPU决定的,但是实际上主要由编译器决定(占多少位由编译器在编译期间说了算).常用数据类型对应字节数 ...
随机推荐
- 内网DMZ外网之间的访问规则
当规划一个拥有DMZ的网络时候,我们可以明确各个网络之间的访问关系,可以确定以下六条访问控制策略. 1.内网可以访问外网 内网的用户显然需要自由地访问外网.在这一策略中,防火墙需要进行源地址转换. 2 ...
- jquery经验1
1.Javascript刷新页面的几种方法: location.reload()// 真刷新 location=location location.assign(location) document. ...
- Uva10207 The Unreal Tournament
题目链接戳这里 首先递归调用函数次数其实是可以预处理出来的,但是这里我们介绍一个更屌的做法. 设\(F(i,j)\)为求解\(P(i,j)\)所遍历的节点数目,则有\[F(0,j)=F(i,0)=0\ ...
- 小波变换 C++ opencv 实现
小波变换 C++ opencv 实现 小波简介: http://www.blogbus.com/shijuanfeng-logs/221293135.html 源码: /// 小波变换 Mat W ...
- 查看Mac OSX机器上存在的所有Device
可以使用instruments -s来查看Mac OSX机器上存在的所有Device,包括模拟器创建的Device以及真实连接的iPad,iPhone等设备.
- Android ContentProvider和getContentResolver
安卓系统中的数据库SqlLite操作和java中mysql的数据库操作很不一样,造成这样的原因是因为在安卓中数据库是属于进程的不存在数据库客户端,也不存在数据库服务器. 关于SqlLite数据库的文章 ...
- 一张图看懂开源许可协议,开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别
一张图看懂开源许可协议,开源许可证GPL.BSD.MIT.Mozilla.Apache和LGPL的区别 首先借用有心人士的一张相当直观清晰的图来划分各种协议:开源许可证GPL.BSD.MIT.Mozi ...
- WebLogic12c 注册windows系统服务
1.确认操作系统环境变量中的JAVA_HOME=D:\Oracle\Middleware\jdk160_29与安装部署的位置保持一致: 2.编辑D:\Oracle\Middleware\wlserve ...
- jboss项目迁移至WebLogic12
1 weblogic 使用jtds-1.2.3.jar驱动链接MS SQL Server 2008的数据源配置 1.1 拷贝jtds-1.2.3.jar至D:\Oracle\Middleware\wl ...
- 【转】 Android BCM4330 蓝牙BT驱动调试记录
原文网址:http://blog.csdn.net/dwyane_zhang/article/details/7180779 网上关于BT的驱动很少,所以我在开发过程中把其中的步骤记录下来.供大家相互 ...