最近大概读一点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.scala Rocket处理器的顶层文件,当中连接Core、指令一级缓存、数据一级缓存、FPU等模块
tlb.scala 实现了传输后备缓冲器
util.scala 定义了一些对象,提供了一些工具函数,比方:类型转换。

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

版权声明:本文博主原创文章。博客,未经同意不得转载。

64位开源处理器Rocket该人士介绍相关推荐

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

    最近大概阅读了一下UCB发布的Rocket处理器的源码,对源代码各个文件的功能有了一些大致的了解,Mark一下. Rocket是一款64bit的标量处理器,5级流水线,采用的是risc-v指令集,集成 ...

  2. 国科大五位本科生带“芯”毕业!平均年龄23.1岁,四个月主导完成64位RISC-V处理器SoC芯片设计并实现流片

    大数据文摘出品 毕业季,中国科学院大学(以下简称国科大)的五位本科毕业生给母校送上了一份"硬核"毕业礼物--主导完成了一款64位RISC-V处理器SoC芯片设计并实现流片. 处理器 ...

  3. 64 位 ARM 处理器意味着什么?

    64位计算的历史相当丰富有趣.Cray等公司在70年代就已经开始在自己的系统当中使用64位寄存器,但真正纯粹的64位计算直到90年代才真正到来. 首先是MIPS的R4000,然后是DEC的Alpha处 ...

  4. arm linux 识别新硬盘_Arm发布首款64位实时处理器CortexR82

    EETOP专注芯片.微电子,点击上方蓝字关注我们 Arm以其在移动设备中的Cortex系列处理器而闻名,然而主流Cortex-A系列CPU并不是该公司唯一提供的CPU,Arm还提供了用于高性能实时应用 ...

  5. 迅为龙芯2K1000开发板双核64位系统处理器,流畅运行多个系统

    迅为电子的iTOP-2K1000核心板对外提供的接口是邮票孔方式.搭载龙芯2K1000处理器,处理器集成2个64 位GS264处理器核,主频1GHz,以及各种系统IO接口.集高性能与高配置于一身. 迅 ...

  6. 64位x86-64处理器架构

    本节重点关注所有使用 x86-64 指令集的 64 位处理器的基本架构细节.这些处理器包括 Intel 64 和 AMD64 处理器系列.指令集是已讨论的 x86 指令集的 64 位扩展.以下为一些基 ...

  7. 64位处理器 计算机,32位与64位的处理器有什么区别?

    处理器的两个主要类别是32位和64位.计算机拥有的处理器类型不仅会影响其整体性能,还可以决定其使用哪种软件. 32位处理器 直到1990年代初,32位处理器都是所有计算机中使用的主要处理器.Intel ...

  8. arm 64位 android,一大波64位手机处理器来袭

    今天凌晨,谷歌正式发布了Android L系统,其最显眼的地方就是UI方面的改变,但最重要的地方却是新增了64位版本,并将ART模式作为系统默认的运行模式,以此换来更加流畅的操作体验. 由于指令集的关 ...

  9. 一大波64位手机处理器来袭

     今天凌晨,谷歌正式发布了Android L系统,其最显眼的地方就是UI方面的改变,但最重要的地方却是新增了64位版本,并将ART模式作为系统默认的运行模式,以此换来更加流畅的操作体验. 由于指令 ...

最新文章

  1. jquery1.6中的.prop()和.attr()异同
  2. 2014.7.26-7.29日广大网友的提问解答(答问题的第1个工作周)
  3. easyui分页查询为什么会有下拉框_做网站优化为什么要分析百度下拉词和相关搜索?...
  4. Process 'command '/usr/lib/jvm/java-11-openjdk-amd64/bin/java'' finished with non-zero exit value 1
  5. opencv感兴趣通道COI的使用
  6. conda 删除env_软件包与环境管理神器之conda
  7. Python破解协议密码
  8. eclipse反编译class文件
  9. 图像处理软件-Adobe Illustrator 2020-位图转化为矢量图
  10. 英伟达显卡排名天梯图2022
  11. Odoo----的消息系统 - Mail 模块 - Discuss 应用
  12. 网络安全——ARP欺骗与突破封锁
  13. Android视频媒体播放器
  14. 设为首页 加入收藏 html,JS设为首页和加入收藏的代码
  15. linux设置进程优先级工具,linux性能分析优化之基础指标参数(3) - 进程优先级 cpu nice priority NI PR %ni %nice...
  16. 8位数:数字、小写字母字典思考
  17. XX.sh和./XX.sh
  18. 看完之后终于明白了,要用5G网络必须要换成5G手机吗?
  19. 银河护卫队漫威大法好之漫威系列
  20. jquery ajax java二级联动_使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例...

热门文章

  1. MySQL:实用 SQL 语句集合
  2. struts2框架之国际化(参考第二天学习笔记)
  3. 恼人的函数指针(二)
  4. falcon存储引擎入门(一)
  5. WP8.1学习系列(第二十五章)——控件样式
  6. 你可以不知道的JS二
  7. 胜任素质--哈佛大学教授麦克里兰 (McClelland)有效地预测外交官实际工作业绩的人员选拔方法...
  8. linux定时工具,Linux定时器工具
  9. c语言编写atm取款功能_21行C语言代码编写一个具备加密功能的聊天程序!网友:666...
  10. php 清除之前echo_PHP入门读书笔记(三): 常量和变量