Rocket - core - mem_reg_rs2

https://mp.weixin.qq.com/s/zIus4MysOdrGYpbZiqNVGg

 

简单介绍mem_reg_rs2相关的实现。

 

1. mem_reg_rs2

 

mem_reg_rs2是一个流水线寄存器:

 

用于接收ex阶段传递过来的寄存器参数:

其中:

a. ex_rs(1)存放的是rs2,ex_rs(0)存放的是rs1;

b. StoreGen用于生成相应size的数据;

c. 在sfence的情况下,会更新mem_reg_rs2的值;

 

2. 在流水线上的传递

 

在sfence的情况下,mem_reg_rs2被传递给wb_reg_rs2:

 

wb_reg_rs2用于封装io.imem.sfence:

 

3. io.dmem

 

mem_reg_rs2用于填充io.dmem:

其中:

a. io.dmem.req.valid/tag/cmd/size/signed/addr等使用ex阶段的信号;

b. io.dmem.s1_data.data使用mem_reg_rs2,这是一个mem阶段的寄存器,其值比ex阶段的值晚一个周期。这跟DCache的实现有关,这里暂时不关注:

 

 

posted @ 2022-03-20 11:13  wjcdx  阅读(74)  评论(0编辑  收藏  举报