摘要: https://mp.weixin.qq.com/s/6Xb2INIqWP5mFy2nR3l6AA 简单介绍wb_reg_wdata相关的实现。 1. wb_reg_wdata的正常使用 正常情况下,wb_reg_wdata寄存器用于存放要回写到寄存器的数据,比如数学运算指令的运算结果,用于生成rf 阅读全文
posted @ 2022-03-20 11:19 wjcdx 阅读(112) 评论(0) 推荐(0) 编辑
摘要: https://mp.weixin.qq.com/s/UuIy-KkdlsE9aK7XwGA0GA 简单介绍sboard.set相关的实现。 1. sboard.set sboard用于记录对通用寄存器的占用,每个比特位代表一个寄存器。sboard.set用于实现对相应位的置位。 1) sboard 阅读全文
posted @ 2022-03-20 11:18 wjcdx 阅读(146) 评论(0) 推荐(0) 编辑
摘要: https://mp.weixin.qq.com/s/mwmD3JctGIxLAjMnIUnd-Q 简单介绍io.dmem及HellaCacheIO的结构。 1. io.dmem 在ex阶段和mem阶段均对io.dmem接口进行了填充: io.dmem的定义咋HasCoreIO这个trait中: H 阅读全文
posted @ 2022-03-20 11:17 wjcdx 阅读(229) 评论(0) 推荐(0) 编辑
摘要: https://mp.weixin.qq.com/s/ObOJWdSvJKVWUsE2W71GEQ 简单介绍ctrl_stalld相关的实现。 1. 概述 顾名思义,ctrl_stalld的意思是stall id阶段,也就是挂起id阶段,不再继续前进。 同时,还有另外一个变量叫做ctrl_killd 阅读全文
posted @ 2022-03-20 11:15 wjcdx 阅读(76) 评论(0) 推荐(0) 编辑
摘要: https://mp.weixin.qq.com/s/zIus4MysOdrGYpbZiqNVGg 简单介绍mem_reg_rs2相关的实现。 1. mem_reg_rs2 mem_reg_rs2是一个流水线寄存器: 用于接收ex阶段传递过来的寄存器参数: 其中: a. ex_rs(1)存放的是rs 阅读全文
posted @ 2022-03-20 11:13 wjcdx 阅读(74) 评论(0) 推荐(0) 编辑
摘要: https://mp.weixin.qq.com/s/qv9ia9bU2mvvihk5OxL5EQ 简单介绍ex_reg_mem_size相关的实现。 1. ex_reg_mem_size 1) 定义 ex_reg_mem_size是一个无符号整形寄存器,是IE/EX阶段的流水线寄存器,用于ID阶段 阅读全文
posted @ 2022-03-20 11:10 wjcdx 阅读(77) 评论(0) 推荐(0) 编辑
摘要: https://mp.weixin.qq.com/s/6PBY-seJ6Cj2-yzQD_HAJg 简单介绍流水线对replay的处理。本文不研究为什么会发生replay。 1. replay的效果 replay经流水线传递之后,最终在wb阶段起作用: 即触发take_pc_wb,以wb_reg_p 阅读全文
posted @ 2022-03-20 11:08 wjcdx 阅读(221) 评论(0) 推荐(0) 编辑
摘要: https://mp.weixin.qq.com/s/eJd4VpU5fsZ6WM_YYXPX4Q 简单介绍流水线对sfence.vma指令的处理。 1. io.imem.sfence 根据规范,sfence.vma指令的用途如下: 其效果最终通过io.imem.sfence/io.ptw.sfen 阅读全文
posted @ 2022-03-20 11:07 wjcdx 阅读(350) 评论(0) 推荐(0) 编辑