SLIDE 7 Example: Checking Memory Consistency
- A directed graph that models memory ordering constraints
– Vertices: dynamic memory instruction instances
[H. W. Cain et al., PACT’03] [D. Shasha et al., TOPLAS’88]
– Vertices: dynamic memory instruction instances – Edges:
- Consistency edges A cycle in the graph indicates a
A cycle in the graph indicates a memory ordering violation memory ordering violation
ST A P1 P2 ST A P1 P2 ST A P1 P2 ST A P1 P2 ST A P1 P2 ST A P1 P2
y g y g
ST A ST B LD B LD A ST A ST A ST B LD D LD A ST A ST A ST B MB LD A ST A ST A ST B LD D LD A ST B ST A ST B LD D LD A ST B ST A ST B MB LD A ST B LD B LD C ST A ST A ST C LD A LD D LD C ST A S ST C LD A LD C ST A ST C LD A LD D LD C ST A ST B ST C LD D LD C ST A S ST C LD C ST A ST C
Sequential Consistency Total Store Ordering Weak Ordering
LD A LD A LD A