8.1.2.1 数据冒险与转发


文档摘要

8.1.2.1 数据冒险与转发 在五年前那个闷热的七月下午,我蹲在实验室机柜前,盯着示波器上跳动的时序波形,手心全是汗。FPGA上跑的五级流水线RISC-V核,明明指令流逻辑清晰、控制信号干净利落,却在执行 这样两行最朴素的依赖指令时,结果恒为零——不是偶尔出错,是每次必错,且错误模式高度稳定: 总等于 ,仿佛 根本没被 写入过。 这不是仿真里的“未定义行为”,也不是综合后布线延迟导致的亚稳态;这是硬件真实吐出来的错误值。而它背后站着的,正是教科书里轻描淡写带过的四个字:数据冒险。 可问题来了——我们早已在译码阶段插入了完整的旁路转发(Forwarding)逻辑,ALU输出、MEM写回、甚至WB阶段的寄存器堆读端口都做了多路选择;


发布者: 作者: 转发
评论区 (0)
U