11. Memory Ordering and Consistency¶
11.1 Scope¶
This chapter defines architecture-visible memory ordering and visibility guarantees for PTO Virtual ISA operations.
11.2 Memory objects and domains¶
Architecture-visible memory domains include:
- tile-local values
- global memory views accessed by memory operations
- synchronization state affecting visibility boundaries
Backend-private caches/buffers are implementation-defined, but MUST respect architecture-visible ordering outcomes.
11.3 Consistency baseline¶
The baseline model is dependency-ordered consistency:
- data dependencies and explicit synchronization define required visibility order
- independent operations MAY be reordered internally
- required synchronization points MUST establish visibility as specified
11.4 Ordering guarantees¶
A conforming implementation MUST ensure:
- producer writes become visible to dependent consumers after required synchronization/ordering points
- memory operations participating in explicit dependency chains preserve those chains
- semantics defined by
TSYNCand event dependencies are reflected in memory visibility
11.5 Unspecified and implementation-defined behavior¶
The following are architecture-restricted:
- accesses or interpretations outside defined domains may be unspecified
- timing and cache policy details are implementation-defined
- backend-specific memory optimizations are allowed only when they preserve required visible behavior
11.6 Programming requirements¶
Programs SHOULD:
- use explicit synchronization at producer/consumer boundaries
- avoid assuming implicit global ordering without a defined dependency
- avoid relying on unspecified out-of-domain values
Manual mode programmers MUST ensure required ordering when tool-managed synchronization is not used.
11.7 Diagnostics and conformance tests¶
Backends SHOULD provide diagnostics for:
- missing ordering assumptions in illegal contexts
- unsupported memory-ordering forms
- profile-specific restrictions
Conformance tests SHOULD include ordered visibility scenarios across representative dependency patterns.