mshr: fix two bugs concerning cache alias

This commit is contained in:
wangkaifan 2021-10-18 21:48:20 +08:00
parent b1a6028d61
commit 72804f3313
1 changed files with 2 additions and 2 deletions

View File

@ -250,7 +250,7 @@ class MSHR()(implicit p: Parameters) extends BaseMSHR[DirResult, SelfDirWrite, S
false.B,
Mux(self_meta.hit,
Mux(req_promoteT, false.B, self_meta.dirty || probe_dirty),
gotDirty
gotDirty || probe_dirty
)
),
Mux(req.opcode(2,1) === 0.U,
@ -1219,7 +1219,7 @@ class MSHR()(implicit p: Parameters) extends BaseMSHR[DirResult, SelfDirWrite, S
val nest_c_way_match = io_c_status.way === self_meta.way
io_c_status.releaseThrough := req_valid && io_c_status.nestedReleaseData && nest_c_set_match &&
((nest_c_way_match && (
(req.fromA && !nest_c_tag_match && (preferCache || self_meta.hit) && !acquirePermMiss) ||
(req.fromA && !nest_c_tag_match && (preferCache || self_meta.hit) && (!acquirePermMiss || cache_alias)) ||
(req.fromA && nest_c_tag_match && !self_meta.hit && io_c_status.tag =/= self_meta.tag && !acquirePermMiss) ||
(req.fromB && Mux(self_meta.hit, !nest_c_tag_match, nest_c_tag_match))
)) ||