为什么在管道中没有MEM.flush for exceptions?

问题描述 投票:0回答:1

这里是RISC-V管道的异常刷新的图片

我有一个关于异常的流水线flush的问题,在RISC-V中,有IF.flush、ID.flush和EX.flush的流水线,但是不知道为什么没有MEM.flush的流水线,我想如果我们在MEM阶段检测到异常(例如Invalid Data memory access),我们必须在MEM阶段进行flush,使MEM.RegWrite值为0。

谢谢你。

exception pipeline flush riscv
1个回答
1
投票

这种图必然是不完整的,所以我不会太认真。

文中只字未提虚拟内存、地址转换、loadstore故障,甚至指令内存地址转换&故障等。

这些图中普遍缺少的其他内容包括:。

  • 捕捉到... pc 对于 jal类型的指令--没有数据路径可以转发 pc 册的变化。
  • 的变化。pc 从寄存器,为跳转寄存器为 jr类型--没有数据路径让寄存器进入到 pc指令。
  • 这类图中也没有缓存遗漏的情况(I$或D$)。
  • 我已经提到了数据和指令存储器的地址转换缺失问题
  • AUIPC指令也缺少一些数据路径。

所以,这张图肯定是不完整的。

很有可能对数据内存访问(也包括指令内存访问)的异常进行一些处理--只是在这张图中没有提到,因为这张图忽略了一般的地址转换。

© www.soinside.com 2019 - 2024. All rights reserved.