Snoop Channels (The Callback)

In standard AXI, the Master starts everything. In ACE, the Interconnect can "talk back" to the Master via Snoop Channels.

Why do we need 3 new channels?

Imagine Core A wants to write to Address 0x100. Core B might have a copy of 0x100 in its local cache. The Interconnect needs a way to tell Core B: "Hey, someone is writing to 0x100, please invalidate your copy or give me your data if it's newer."

ACE adds these 3 channels to handle this "Callback":

  • AC (Snoop Address): The Interconnect sends the address to be checked.
  • CR (Snoop Response): Core B responds with its status (e.g., "I have it and it's Dirty").
  • CD (Snoop Data): Core B sends the actual data if needed.

Handshake Dependencies (Deadlock Avoidance)

To prevent system-wide deadlocks, the ACE protocol defines strict rules on how signals must depend on each other. If these rules are violated, two components might end up waiting for each other forever.

Deadlock Rule: The Interconnect must not wait for the Master to assert ACREADY before it asserts ACVALID. The Snoop must be presented regardless of the Master's state.
  • Rule 1: ACVALID -> ACREADY (Interconnect can start without Master).
  • Rule 2: Master must wait for ACVALID && ACREADY before asserting CRVALID or CDVALID.
  • Rule 3: Master must NOT wait for CRREADY or CDREADY before asserting its valid bits (CRVALID/CDVALID).

Detailed Signal Definitions

Signal Width Description
ARDOMAIN 2 Shareability domain of the read (Non-shareable, Inner, Outer, System).
ARSNOOP 4 The type of Snoop transaction (ReadOnce, ReadShared, CleanUnique, etc.).
ARBAR 2 Barrier transaction signaling (Memory Barrier, Synchronization Barrier).
RACK / WACK 1 Read/Write Acknowledge. Vital for sequencing to tell Interconnect "I am done with this line".