Prevent frontend deadlock fetching from uncacheable memory
After detecting a corrupted BTB, don't speculatively update it until the next non-speculative fetch. This prevents the frontend from replaying forever.
This commit is contained in:
parent
ec3789b365
commit
a1ebe6da4d
@ -207,6 +207,7 @@ class FrontendModule(outer: Frontend) extends LazyModuleImp(outer)
|
|||||||
// a branch! Flush the BTB and the pipeline.
|
// a branch! Flush the BTB and the pipeline.
|
||||||
btb.io.flush := true
|
btb.io.flush := true
|
||||||
fq.io.enq.bits.replay := true
|
fq.io.enq.bits.replay := true
|
||||||
|
wrong_path := true
|
||||||
}
|
}
|
||||||
|
|
||||||
when (!prevTaken) {
|
when (!prevTaken) {
|
||||||
|
Loading…
Reference in New Issue
Block a user