实验框架简介
仓库使用
每位同学都会在 清华git 下拥有实验仓库的权限,你需要将仓库clone到本地后进行实验。仓库的具体使用方法请参看仓库中的 readme.md
。
CPU架构
模拟器使用的 CPU 架构如下:
- 指令内存和数据内存分离。指令内存编址
0x80000000 - 0x803FFFFFFF
,数据内存编址0x80400000 - 0x807FFFFF
。 - 前端流水线分为 3 级
IF1 - IF2 - ID
,当指令从ID
流出后,进入Dispatch Buffer
,等待后端接收。 - 后端执行流水线分为
ALU
(普通算逻指令,1 cycle),BRU
(分支,1 cycle),LSU
(访存,2 cycle),MUL
(乘法器,3 cycle),DIV
(除法器,10 cycle)。 - 每个后端流水线均有一个大小为 4 的保留站。
-
访存流水线使用部分乱序结构
-
Store 指令顺序,Load 指令乱序
-
使用 store buffer 暂存数据内存写入,load buffer 存储已经执行的 load 指令信息,以保证指令正确提交。
-
前端发射宽度为1,后端每个流水线的执行宽度为1,提交宽度为1。
- 可以修改逻辑以支持分支预测(bonus 功能)。
- 指令集使用
RV32IM
。特别地,添加 EXIT 指令,标识程序执行完成。
实验内容
你需要完成的内容:
- 乱序访存单元
- 后端指令提交;
- 保留站的插入和唤醒逻辑;
- (可选)分支预测逻辑;
- 实验报告。
在下面的文档中,我们将讲述实验框架的使用方法,以及 CPU 的执行逻辑。
最后更新:
2024年4月27日
作者: