fix(LoadUnit): fix Vector priority related issues (#4101)

Vector load should be the same as scalar load.
Priority judgement needs to be made with the instructions for replay.
Otherwise it will generate a stuck.
This commit is contained in:
Anzo 2024-12-30 17:28:55 +08:00 committed by GitHub
parent 9f329f86f9
commit 370a252d94
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 2 additions and 1 deletions

View File

@ -292,7 +292,8 @@ class LoadUnit(implicit p: Parameters) extends XSModule
// src 9: load try pointchaising when no issued or replayed load (io.fastpath)
// src10: hardware prefetch from prefetchor (high confidence) (io.prefetch)
// priority: high to low
val s0_rep_stall = io.ldin.valid && isAfter(io.replay.bits.uop.robIdx, io.ldin.bits.uop.robIdx)
val s0_rep_stall = io.ldin.valid && isAfter(io.replay.bits.uop.robIdx, io.ldin.bits.uop.robIdx) ||
io.vecldin.valid && isAfter(io.replay.bits.uop.robIdx, io.vecldin.bits.uop.robIdx)
private val SRC_NUM = 11
private val Seq(
mab_idx, super_rep_idx, fast_rep_idx, mmio_idx, nc_idx, lsq_rep_idx,