https://mp.weixin.qq.com/s/mwmD3JctGIxLAjMnIUnd-Q
简单介绍io.dmem及HellaCacheIO的结构。
1. io.dmem
在ex阶段和mem阶段均对io.dmem接口进行了填充:
io.dmem的定义咋HasCoreIO这个trait中:
HasCoreIO被Rocket模块引入,从而为模块定义了io接口:
io.dmem是一个HellaCacheIO类型的结构:
其中的方向,是以核心的视角进行定义的:向核心输入,从核心输出。
2. HellaCacheIO
HellaCacheIO的整体结构如下:
1) req: HellaCacheReq
io.dmem.req的结构如下:
2) resp: HellaCacheResp
io.dmem.resp的结构如下:
3) s1_data: HellaCacheWriteData
io.dmem.s1_data的结构如下:
4) s2_xcpt: HellaCacheExceptions
io.dmem.s2_xcpt的结构如下:
5) perf: HellaCachePerfEvents
io.dmem.perf的结构如下:
3. 与DCache的连接
io.dmem与DCache的连接示意图如下: