Skip to content

\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

Overall Block Diagram of LqExceptionBuffer