Skip to content

Modified the LSU and HPTW to reduce the complexity of the IgnoreRequestTLB logic

Eclipse Webmaster requested to merge github/fork/rosethompson/ignorerequest into main

Created by: rosethompson

@davidharrishmc IgnoreRequestTLB was a strange name for a signal which really was a flush to the Writeback stage when either TLB missed or the HPTW generated an exception. I've renamed IgnoreRequestTLB to HPTWFlushW and IgnoreRequest to LSUFlushW. The logic is also simpler, but could probably be reduced more. I also discovered a bug in the HPTW. We capture ReadDataM into the PTE register and then check the PBMT bits for invalid non-leaf entries. This causes the exception to occur one cycle later than the FSM would actually check for HPTWFaultM and transition to the FAULT state. I changed the FSM so it checks each state for HPTWFaultM which is different from the book. The reason we never detected this bug is we happened to generate the same fault on the next cycle; however, that was happenstance. I've included an alternate solution which is messier and does not include changes to the FSM diagram in the chapter. It's included an a reverted commit. However I dislike this solution as it has a longer critical path and is significantly more complex.

Merge request reports

Loading