网站的超级链接怎么做,织梦网站图标更换,什么网站做教育的比较多,应遵循哪些原则萌新的RiscV学习之在写代码之前对于关键路径的分析-11
首先我们最简单的control 模块 全分段 因为只有分段 #xff0c; 分开使用之后 #xff0c; 各个阶段的具体功能才会合理使用 就像是为了后续 “气泡” 赋值 为 0 还有单独比较前递这种
EX #xff1a; ALUOP ALUSrc …萌新的RiscV学习之在写代码之前对于关键路径的分析-11
首先我们最简单的control 模块 全分段 因为只有分段 分开使用之后 各个阶段的具体功能才会合理使用 就像是为了后续 “气泡” 赋值 为 0 还有单独比较前递这种
EX ALUOP ALUSrc |||| 选择ALU执行何种模式 M branch Memread Memwrite ||| 分支 加载 存储 WB Memtoreg RegWrite ||| 选择ALU结果还是存储器值 写入所选值
第二我们开始研究前递的具体使用 首先对于 前递模块 我们有6输入2输出 输出是ForwardA ForwardB 前递模块是专门为了ALU设计的 用来确定ALU的两个输入端的取值是三者的哪一个 Forwarding 6个输入 有 Rs1 Rs2 EX/MEM. RegisterRd MEM/WB.RegisterRd 还有Regwrite 对于第一个regwrite1 其实很好理解 我们匹配一下是否是相等的 Rs EX/MEM. RegisterRd 选择来自ALU计算完成的结果 对于第二个Regwrite 一般来说用的比较少 我自己脑补了一下 没脑补出来 但是说是这么说 MEM/WB.RegisterRd Rs 选择最后来自MEM/WB 寄存器的值
第三个是加载冒险 Hazard Defection Unit 模块 四个输入三个输出 三个输出很好理解 因为加载冒险要产生一个“气泡”停顿 把 control 置为 0 只要将Re Writ MemWrit 信号设置为 即可 让PC 和 IF/ID 保持 四个输入 检测 rs1 rs2与 rd是否相同 与 memread 是否是ld指令 第四个是跳转冒险 没有特定的控制大单元 在 ID阶段依靠各个小单元控制 此图多出一点的单元