Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(LSQ): modify misaligned
forward fault
detection (#4038)
Previously, I used an inappropriate way for another misalign to trigger a `forward fault`: https://github.com/OpenXiangShan/XiangShan/blob/38d0d7c5a34a23dfdb58a3cb2737c3cfddb3ec9d/src/main/scala/xiangshan/mem/lsqueue/StoreQueue.scala#L684-L711 This would cause the `BlockSqIdx` passed to `LoadQueueReplay` to use the `sqIdx` from `uop` instead of the `sqIdx` with the unalign flag bit: https://github.com/OpenXiangShan/XiangShan/blob/38d0d7c5a34a23dfdb58a3cb2737c3cfddb3ec9d/src/main/scala/xiangshan/mem/lsqueue/StoreQueue.scala#L776-L782 **This leads to a possible stuck in `LoadQueueReplay`.** And to resolve the stuck, we incorrectly introduced this Commit(af757d1). This Commit(af757d1) causes `BlockSqIdx` to unblock without `DataValid`. This leads to certain performance issues. This revision fixes the inappropriate `forward fault` triggering method and reverses the Commit(af757d1). **This should bring performance back up again.** ### Apologies for my mistake.
- Loading branch information