ARM MTE synchronous mode: what does "store must complete tag check before next store executes" mean?

2026-09-12

Stack Overflow: View Question

Tags: arm, cpu-architecture, cpu-cache, advice

Score: 0 | Views: 74

The asker is reading Arm's Cortex-A720 Software Optimization Guide and hits a deceptively simple sentence: in synchronous MTE mode, each store must complete its tag check before the next store executes. They want to know where in the pipeline "executed" lives — issue, retirement, or L1 arrival — and whether the second store can start speculatively.

Why it's tricky. Memory Tagging Extension checks a 4-bit allocation tag stored alongside each 16-byte granule against the logical tag in the pointer. In synchronous mode, a tag mismatch must raise a precise SError-like exception on the offending instruction — no store past the faulting one can become architecturally visible. That precision constraint is what forces the ordering the manual describes; the interesting question is what microarchitectural knobs Arm actually turns to enforce it.

The most likely reading. "Executed" here is Arm's optimization-guide shorthand for dispatched down the store pipe to the point where the tag lookup resolves, not full retirement and not L1 write. Concretely:

Direction toward a solid answer. Point the asker at three sources: (1) ARM ARM section on MTE Tag Check Fault reporting modes (synchronous vs. asynchronous vs. asymmetric); (2) the A720 TRM, which describes the store pipe stages; and (3) Arm's MTE whitepaper, which explicitly contrasts sync ("precise, serialized at the store pipe") with async ("checks accumulate in TFSR, no ordering"). The gap between "architectural retirement" and "the check completes" is the crux — sync mode couples them at the tag-check stage but not at cacheline write.

Gotchas worth flagging.

The challenge: Arm's optimization guide uses "executed" as a fuzzy microarchitectural term that sits between issue and retirement, and pinning it down requires understanding why precise MTE faults force serialization specifically at the store pipe's tag-check stage.

All newsletters