随笔分类 -  RISCV

1 2 3 4 5 ··· 15 下一页
RISC, RISCV, RISC-V
摘要:https://mp.weixin.qq.com/s/C6Twva47PDyUev-BLhKLug 简单介绍ALU的实现。 1. object ALU ALU对象中定义了ALU要使用的一些常量和辅助方法。 1) 常量 a. SIZE_ALU_FN: 表示ALU操作类型的占用的宽度为4位; 需要注意的 阅读全文
posted @ 2022-03-22 20:03 wjcdx 阅读(538) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/mTHnVCxOk04nDQbqpr5xnw 简单介绍IDecode的实现。 1. DecodeConstants 定义了解码相关的常量,也就是每条指令对应的解码信号的值。这些是在指令集编码设计的时候确定的,所以落实到代码中是常量。 2. Int 阅读全文
posted @ 2022-03-22 20:02 wjcdx 阅读(285) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/KfU9ynQGmCsMCu2ACV17uA 简单介绍Instructions的实现。 1. Instructions 定义各个指令的比特模式: 其中: a. 部分比特位值是确定的0和1; b. 无关的比特位值可以随意,这里使用问号表示; 这些比 阅读全文
posted @ 2022-03-22 20:01 wjcdx 阅读(153) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/Z67OXngGV2Qb8Qf80LzY1g 简单介绍Consts的实现。 1. ScalarOpConstants 定义标量操作相关的常量: 1) MT 定义操作的内存类型: 如下图所示load指令中的使用: mtSize表示操作数的大小,以字 阅读全文
posted @ 2022-03-22 20:00 wjcdx 阅读(193) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/0GSNIf0wCApPi8XYwa8MdQ 简单介绍EventSet的实现。 1. EventSet 定义事件集合: 0) 类参数 EventSet类包含两个类参数: a. gate: (UInt, UInt) => Bool:使用两个参数,返 阅读全文
posted @ 2022-03-22 19:59 wjcdx 阅读(149) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/sRYIPj9tlxuZAPZxwYpEYQ 简单介绍structure/data/control三大类hazard相关的实现。 参考链接:https://www.elsevier.com/__data/assets/powerpoint_doc 阅读全文
posted @ 2022-03-21 20:19 wjcdx 阅读(309) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/QbFEuvix7kgFssqDK6OyKQ 简单介绍id_load_use相关的实现。 1. id_load_use id_load_use是一个线型信号: 其赋值为: 其包含的三个条件中: a. mem_ctrl.mem表示MEM阶段当前指令 阅读全文
posted @ 2022-03-21 20:18 wjcdx 阅读(147) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/5FpKbfJFWPXZCFFXrhAXDQ 简单介绍ex_slow_bypass相关的实现。 1. ex_slow_bypass ex_slow_bypass表示指令为sc,或者访问的内存大小小于4字节的情况: ex_slow_bypass用于 阅读全文
posted @ 2022-03-21 20:17 wjcdx 阅读(119) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/g2oTABxX1RXp03sod87hmw 简单介绍bypass或者stall之间的差异。 1. 概述 bypass的条件与stall的条件并不相同,甚至应该互斥。即不能bypass的则stall,不stall的则bypass。前提条件是存在h 阅读全文
posted @ 2022-03-21 20:16 wjcdx 阅读(313) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/-mb2ENHqnciGiSLXUwOOBA 简单介绍bypass相关变量的用法。 1. 概述 所谓bypass或者forward,就是把没有回写到寄存器中的数据提前传给后续的指令使用: 在当前实现中,所有的bypass都传递到后续指令的EX阶段 阅读全文
posted @ 2022-03-21 20:15 wjcdx 阅读(209) 评论(0) 推荐(0)
摘要: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 阅读(177) 评论(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 阅读(218) 评论(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 阅读(339) 评论(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 阅读(115) 评论(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 阅读(103) 评论(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 阅读(114) 评论(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 阅读(366) 评论(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 阅读(489) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/Nzm5m0Ub6SmQ-CWf4kaFKQ 简单介绍fence, fence_i, sfence的差异。 1. IntCtrlSigs IntCtrlSigs中包含了fence和fence_i的定义: FENCE指令的信号值如下: 其中:fen 阅读全文
posted @ 2022-03-12 00:06 wjcdx 阅读(549) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/6WVmHCY0nd_AtOBByfgJVA 简单介绍wb_reg_flush_pipe的作用。 1. wb_reg_flush_pipe值的由来 1) wb_reg_flush_pipe wb_reg_flush_pipe的值是通过流水线从me 阅读全文
posted @ 2022-03-12 00:05 wjcdx 阅读(97) 评论(0) 推荐(0)

1 2 3 4 5 ··· 15 下一页