Skip to content

Validate store-before-load / writeback ordering at the LLC↔DRAM boundary on real HW #364

@tinebp

Description

@tinebp

Tracking issue split out from #340 (credit: @hwirys, found on real U250 hardware).

Concern

AXI4 does not order AW/AR transactions issued with different IDs (spec A5). In principle a load can bypass an in-flight store to the same line at the memory boundary, returning stale data.

Why not fix it in VX_axi_adapter

#340 proposed a global gate that stalls all reads while any write is outstanding. That serializes the entire memory pipeline and kills bandwidth — not how a GPU memory controller behaves — and it papers over an ordering guarantee that belongs upstream. VX_axi_adapter is a generic protocol-converter shared by every platform and both simulators; ordering policy should not live there.

Correct layer

In a write-back cache, same-line RAW never reaches DRAM (the dirty line stays in cache). The cases where ordering genuinely breaks at the LLC↔DRAM boundary are atomics and dirty-line writeback vs refill collisions — i.e. the LLC AMO/writeback ordering path (see ongoing fix_llc_amo_gating work).

Action

  • Confirm whether Vortex's LLC can issue a refill and a writeback for the same line concurrently to the AXI master without ordering.
  • Confirm AMO ordering at the LLC↔DRAM boundary is enforced (tie-in with the LLC AMO gating work).
  • Validate store-before-load to the same address on real FPGA hardware (the symptom @hwirys originally observed on U250).

Note: the multi-bank addressing half of #340 is already resolved on master via #342 (U250 single-bank).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions