Concurrent HPTW access fault with IFU bus fetch
Created by: rosethompson
Issue #412 (closed) exposed a bug in Wally with a concurrent I$ miss and DTLB miss. The HPTW makes a request which generates an access fault during an inflight I$ bus request. This Trapped during a bus access violating the atomic nature of the bus request.
A simulation solution was to suppress the fault in trap.sv...
assign TrapM = (ExceptionM & ~CommittedF) | InterruptM; // *** RT: review this additional ~CommittedF with DH and update priv chapter.
However this creates the potential hazard of missing exceptions. This warrants careful review and a better solution.
Ideally we allow the exception and find a way to either delay it or abort the ifu transaction.
Probably need to record the exception during the walk. Abort the walk. Wait for the ifu to finish, then replay the exception and take the trap.
Could also think more deeply about the entire exception architecture.