\newpage
Load Exception Buffer LqExceptionBuffer
Functional Description
The LqExceptionBuffer is used to track exceptions generated by load instructions, with three sources:
- Scalar load instruction exception from LDU s3
- Vector load instruction exception from vlMergeBuffer
- MMIO non-data exception from LoadUncacheBuffer
It selects the virtual address output of the oldest instruction that caused an exception based on robIdx. Internally, it has a two-stage pipeline: the first stage caches information output during the LDU's s3 phase, and in the second cycle, it selects the oldest instruction that caused an exception based on robIdx and outputs its virtual address.
During redirection, it determines whether to flush based on the robIdx of instructions cached in the LqExceptionBuffer.
Overall Block Diagram