The Problem: Data Inconsistency

Before we learn ACE, we must understand why standard AXI fails in multi-core systems.

Scenario: The Stale Data Bug

Imagine a system with two Cores (A and B) and a Shared Memory.

  1. Step 1: Core A reads Address 0x500. Memory sends value `10`. Core A stores `10` in its local cache.
  2. Step 2: Core B reads Address 0x500. Memory sends value `10`. Core B stores `10` in its local cache.
  3. Step 3: Core A modifies Address 0x500 to `20` in its local cache.
  4. Step 4: Core B reads Address 0x500 again. It sees `10` in its cache and uses it.
Critical Error: Core B is using "Stale" (old) data. Core A hasn't updated the main memory yet, and Core B has no idea that Core A changed the value.

The Software Solution (Slow)

In older systems, programmers had to manually "Flush" caches to memory. This is extremely slow and prone to human error.

The Hardware Solution: ACE

ACE (AXI Coherency Extensions) automates this. If Core A modifies data, the hardware automatically notifies Core B to invalidate its copy. No software required!