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的源代码简单介绍
最近大概阅读了一下UCB发布的Rocket处理器的源码,对源代码各个文件的功能有了一些大致的了解,Mark一下. Rocket是一款64bit的标量处理器,5级流水线,采用的是risc-v指令集,集成 ...
- 国科大五位本科生带“芯”毕业!平均年龄23.1岁,四个月主导完成64位RISC-V处理器SoC芯片设计并实现流片
大数据文摘出品 毕业季,中国科学院大学(以下简称国科大)的五位本科毕业生给母校送上了一份"硬核"毕业礼物--主导完成了一款64位RISC-V处理器SoC芯片设计并实现流片. 处理器 ...
- 64 位 ARM 处理器意味着什么?
64位计算的历史相当丰富有趣.Cray等公司在70年代就已经开始在自己的系统当中使用64位寄存器,但真正纯粹的64位计算直到90年代才真正到来. 首先是MIPS的R4000,然后是DEC的Alpha处 ...
- arm linux 识别新硬盘_Arm发布首款64位实时处理器CortexR82
EETOP专注芯片.微电子,点击上方蓝字关注我们 Arm以其在移动设备中的Cortex系列处理器而闻名,然而主流Cortex-A系列CPU并不是该公司唯一提供的CPU,Arm还提供了用于高性能实时应用 ...
- 迅为龙芯2K1000开发板双核64位系统处理器,流畅运行多个系统
迅为电子的iTOP-2K1000核心板对外提供的接口是邮票孔方式.搭载龙芯2K1000处理器,处理器集成2个64 位GS264处理器核,主频1GHz,以及各种系统IO接口.集高性能与高配置于一身. 迅 ...
- 64位x86-64处理器架构
本节重点关注所有使用 x86-64 指令集的 64 位处理器的基本架构细节.这些处理器包括 Intel 64 和 AMD64 处理器系列.指令集是已讨论的 x86 指令集的 64 位扩展.以下为一些基 ...
- 64位处理器 计算机,32位与64位的处理器有什么区别?
处理器的两个主要类别是32位和64位.计算机拥有的处理器类型不仅会影响其整体性能,还可以决定其使用哪种软件. 32位处理器 直到1990年代初,32位处理器都是所有计算机中使用的主要处理器.Intel ...
- arm 64位 android,一大波64位手机处理器来袭
今天凌晨,谷歌正式发布了Android L系统,其最显眼的地方就是UI方面的改变,但最重要的地方却是新增了64位版本,并将ART模式作为系统默认的运行模式,以此换来更加流畅的操作体验. 由于指令集的关 ...
- 一大波64位手机处理器来袭
今天凌晨,谷歌正式发布了Android L系统,其最显眼的地方就是UI方面的改变,但最重要的地方却是新增了64位版本,并将ART模式作为系统默认的运行模式,以此换来更加流畅的操作体验. 由于指令 ...
最新文章
- jquery1.6中的.prop()和.attr()异同
- 2014.7.26-7.29日广大网友的提问解答(答问题的第1个工作周)
- easyui分页查询为什么会有下拉框_做网站优化为什么要分析百度下拉词和相关搜索?...
- Process 'command '/usr/lib/jvm/java-11-openjdk-amd64/bin/java'' finished with non-zero exit value 1
- opencv感兴趣通道COI的使用
- conda 删除env_软件包与环境管理神器之conda
- Python破解协议密码
- eclipse反编译class文件
- 图像处理软件-Adobe Illustrator 2020-位图转化为矢量图
- 英伟达显卡排名天梯图2022
- Odoo----的消息系统 - Mail 模块 - Discuss 应用
- 网络安全——ARP欺骗与突破封锁
- Android视频媒体播放器
- 设为首页 加入收藏 html,JS设为首页和加入收藏的代码
- linux设置进程优先级工具,linux性能分析优化之基础指标参数(3) - 进程优先级 cpu nice priority NI PR %ni %nice...
- 8位数:数字、小写字母字典思考
- XX.sh和./XX.sh
- 看完之后终于明白了,要用5G网络必须要换成5G手机吗?
- 银河护卫队漫威大法好之漫威系列
- jquery ajax java二级联动_使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例...
热门文章
- MySQL:实用 SQL 语句集合
- struts2框架之国际化(参考第二天学习笔记)
- 恼人的函数指针(二)
- falcon存储引擎入门(一)
- WP8.1学习系列(第二十五章)——控件样式
- 你可以不知道的JS二
- 胜任素质--哈佛大学教授麦克里兰 (McClelland)有效地预测外交官实际工作业绩的人员选拔方法...
- linux定时工具,Linux定时器工具
- c语言编写atm取款功能_21行C语言代码编写一个具备加密功能的聊天程序!网友:666...
- php 清除之前echo_PHP入门读书笔记(三): 常量和变量