跳转至

\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

LqExceptionBuffer整体框图