D$ optimization: don't drain store buffer if merge opportunity pending
This commit is contained in:
parent
bbde864bfa
commit
29954c6ffe
|
@ -354,8 +354,8 @@ class DCacheModule(outer: DCache) extends HellaCacheModule(outer) {
|
|||
val pstore1_merge_likely = s2_valid && s2_write && s2_store_merge
|
||||
val pstore1_merge = s2_store_valid && s2_store_merge
|
||||
val pstore2_valid = Reg(Bool())
|
||||
val pstore_drain_opportunistic = !(io.cpu.req.valid && likelyNeedsRead(io.cpu.req.bits))
|
||||
val pstore_drain_on_miss = releaseInFlight
|
||||
val pstore_drain_opportunistic = !(io.cpu.req.valid && likelyNeedsRead(io.cpu.req.bits)) && !(s1_valid && s1_waw_hazard)
|
||||
val pstore_drain_on_miss = releaseInFlight || RegNext(io.cpu.s2_nack)
|
||||
val pstore1_held = Reg(Bool())
|
||||
val pstore1_valid_likely = s2_valid && s2_write || pstore1_held
|
||||
val pstore1_valid_pre_kill = s2_store_valid_pre_kill || pstore1_held
|
||||
|
|
Loading…
Reference in New Issue