\newpage
Load Exception Buffer LqExceptionBuffer
Function Description
LqExceptionBuffer is used to track exceptional conditions generated by load instructions, with three sources:
- Scalar load instruction exceptions from LDU s3
- Vector load instruction exceptions from vlMergeBuffer
- MMIO non-data exceptions from LoadUncacheBuffer
Based on robIdx, it outputs the virtual address of the oldest instruction among those that encountered an exception. Internally, it has a two-stage pipeline. The first stage caches the information output from LDU's s3 stage. In the second cycle, based on robIdx, it selects the oldest instruction that encountered an exception and outputs its virtual address.
During redirection, a determination of whether flushing is needed is made based on the robIdx of the instructions cached within LqExceptionBuffer.
Overall Block Diagram