跳转至

实验框架简介

仓库使用

每位同学都会在 清华git 下拥有实验仓库的权限,你需要将仓库clone到本地后进行实验。仓库的具体使用方法请参看仓库中的 readme.md

CPU架构

模拟器使用的 CPU 架构如下:

  1. 指令内存和数据内存分离。指令内存编址 0x80000000 - 0x803FFFFFFF,数据内存编址 0x80400000 - 0x807FFFFF
  2. 前端流水线分为 3 级 IF1 - IF2 - ID,当指令从 ID 流出后,进入 Dispatch Buffer,等待后端接收。
  3. 后端执行流水线分为 ALU(普通算逻指令,1 cycle), BRU(分支,1 cycle), LSU(访存,2 cycle),MUL(乘法器,3 cycle),DIV(除法器,10 cycle)。
  4. 每个后端流水线均有一个大小为 4 的保留站。
  5. 访存流水线使用部分乱序结构

  6. Store 指令顺序,Load 指令乱序

  7. 使用 store buffer 暂存数据内存写入,load buffer 存储已经执行的 load 指令信息,以保证指令正确提交。

  8. 前端发射宽度为1,后端每个流水线的执行宽度为1,提交宽度为1。

  9. 可以修改逻辑以支持分支预测(bonus 功能)。
  10. 指令集使用 RV32IM。特别地,添加 EXIT 指令,标识程序执行完成。

实验内容

你需要完成的内容:

  1. 乱序访存单元
  2. 后端指令提交;
  3. 保留站的插入和唤醒逻辑;
  4. (可选)分支预测逻辑;
  5. 实验报告。

在下面的文档中,我们将讲述实验框架的使用方法,以及 CPU 的执行逻辑。


最后更新: 2024年4月27日
作者:cuibst (71.43%), hogura (28.57%)