cvw/src
Ross Thompson 69f6b291c6 Possible fix for issue 148.
I found the problem. We use a Committed(F/M) signal to indicate the IFU or LSU has an ongoing cache or bus transaction and should not be interrupted. At the time of the mret, the IFU is fetching uncacheable invalid instructions asserting CommittedF. As the IFU finishes the request it unstalls the pipeline but continues to assert CommittedF. (This is not necessary for the IFU). In the same cycle the LSU d cache misses. Because CommittedF is blocking the interrupt the d cache submits a cache line fetch to the EBU.

I am thinking out loud here. At it's core the Committed(F/M) ensure memory operations are atomic and caches don't get into inconsistent states. Once the memory operation is completed the LSU/IFU removes the stall but continues to hold Committed(F/M) because the memory operation has completed and it would be wrong to allow an interrupt to occur with a completed load/store. However this is not true of the IFU. If we lower CommittedF once the operation is complete then this problem is solved. The interrupt won't be masked and the LSU will flush the d cache miss.

This requires a minor change in the cachebusfsm and cachefsm. I will report back after I've confirmed this works.
2023-03-28 14:47:08 -05:00
..
cache Possible fix for issue 148. 2023-03-28 14:47:08 -05:00
ebu Possible fix for issue 148. 2023-03-28 14:47:08 -05:00
fpu Fixed all tap/space issue in RTL. 2023-03-24 17:32:25 -05:00
generic Fixed all tap/space issue in RTL. 2023-03-24 17:32:25 -05:00
hazard Book updates. 2023-03-14 13:09:50 -05:00
ieu Merged ross's spacing fixes 2023-03-24 15:47:26 -07:00
ifu Possible fix for issue 148. 2023-03-28 14:47:08 -05:00
lsu Possible fix for issue 148. 2023-03-28 14:47:08 -05:00
mdu Fixed all tap/space issue in RTL. 2023-03-24 17:32:25 -05:00
mmu Fixed all tap/space issue in RTL. 2023-03-24 17:32:25 -05:00
privileged Removed unnecessary monitor 2023-03-27 09:52:38 -07:00
uncore Modified plic and uart to remove async reset. This removes vivado critical warning. 2023-03-24 20:37:48 -05:00
wally Updated GPIO signal names to reflect book. 2023-03-24 18:55:43 -05:00