- 文献综述(或调研报告):
BOOM(Berkeley Out-of-Order Machine)是UCB设计的一款64位超标量、乱序执行处理器,支持RV64G。采用Chisel编写,利用Chisel的优势,只使用了9000行代码。流水线可划分为六个阶段:取指、译码/重命名/指令分配、发射/读寄存器、执行、访存、回写;可支持参数化配置。已在40nm工艺下进行了验证投片。
为了更好地完成对BOOM处理器的性能与功耗的分析,我调研了以下内容:
1)BOOM处理器的基础架构
BOOMv1遵循MIPS R10K的6级流水线结构——获取,译码/重命名,处理/寄存器读取,执行,存储和写回。[1]在译码期间,指令被映射到微指令(uops),并且在重命名期间,所有逻辑寄存器指针被映射到物理寄存器指针。所有微指令都放在一个统一的问题窗口中。 同样,所有物理寄存器(整数和浮点寄存器)都位于单个统一的物理寄存器文件中。 执行单元可以包含整数单元和浮点单元的混合。 这极大地简化了浮点存储器指令和浮点整数转换指令。 BOOMv1还采用了短的二级前端管道设计,在分支被译码之后发生条件分支预测。
BOOMv2相对于BOOMv1有三处更新。在分支预测缓冲区(BTB)中用组关联代替全关联;用三个分布式处理窗口(Distributed Issue Windows)分别处理整数、浮点以及内存;将每个寄存器位布置在一个数组中,让布局器自动将电线路由到寄存器位。[2]
2)RISC-V指令集
RISC-V是一个最新的,清晰的,简约的,开源的ISA。它以过去ISA所犯过的错误为
鉴,为了避免复杂度不断提升以及潜在的知识产权问题[3],设计目标是基于BSD协议许可的免费开放的指令集架构,能够满足从微控制器到超级计算机等各种复杂程度的处理器需求,支持从FPGA、ASIC乃至未来器件等多种实现方式,同时能够高效地实现各种微结构,支持大量定制与加速功能,并与现有软件及编程语言可良好适配。[4]
为了支持更一般的软件开发,定义了一组标准扩展,提供乘法/除法、原子操作以及单精度、双精度浮点算术。基本整数 ISA 被命名为“I”(依据整数寄存器宽度不同,前缀 RV32 或者 RV64),其中包含了整数计算指令、整数 load、整数 store 和控制流指令,并且在所有RISC-V实现中,都是必须的。标准整数乘法和除法扩展被命名为“M”,其中增加了对保存在整数寄存器中的值进行乘法和除法的指令。标准原子指令扩展被命名为“A”,其中增加了对存储器进行原子的读、修改和写操作的指令,以支持处理器间的同步。标准单精度浮点 扩展,被命名为“F”,增加了浮点寄存器、单精度计算指令、单精度 load 和 store 指令。标准双精度浮点扩展,被命名为“D”,扩展了浮点寄存器,并增加了双精度计算指令、load 和 store 指令。一个基本整数内核加上这四个标准扩展(“IMAFD”),被缩写为“G”,它提供了一个通用的标量指令集。RV32G 和 RV64G 现在是我们编译器工具链的缺省目标机器。[5]
与ARM、MIPS、x86的多维度对比:
以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。