Fix ITIM deallocation during I$ refill causing data corruption
Deallocation can change repl_way, which violates the assumption that it remains constant throughout refill. The workaround described in commit3db066303b
still suffices, provided only the hart that owns the ITIM changes the ITIM allocation. This subsumes commit3db066303b
.
This commit is contained in:
parent
66b7a8a5ed
commit
5e94884f09
@ -294,7 +294,7 @@ class ICacheModule(outer: ICache) extends LazyModuleImp(outer)
|
|||||||
val enable = scratchpadWayValid(scratchpadWay(a.address))
|
val enable = scratchpadWayValid(scratchpadWay(a.address))
|
||||||
when (!lineInScratchpad(scratchpadLine(a.address))) {
|
when (!lineInScratchpad(scratchpadLine(a.address))) {
|
||||||
scratchpadMax.get := scratchpadLine(a.address)
|
scratchpadMax.get := scratchpadLine(a.address)
|
||||||
when (enable) { invalidate := true }
|
invalidate := true
|
||||||
}
|
}
|
||||||
scratchpadOn := enable
|
scratchpadOn := enable
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user