A Primer on Memory Consistency and Cache Coherence—第五章 Relaxed Memory Model
Motivation of Relaxed Model
- SC模型或者TSO模型在某些需要正确存储顺序的场景下能够保证程序正确执行,但是在某些不需要存储顺序的情况下,限制了程序的性能优化
- 当系统不约束程序的存储顺序时,更多的优化技术可以被使用
存储操作执行顺序无关的示例
示例1
程序员所期望的执行顺序和结果:
S1 → S3 → L1 loads SET → L2 和 S2 → S3 → L1 loads SET → L3
但是TSO和SC模型强制要求程序的执行顺序为:
S1 → S2 → S3 → L1 loads SET → L2 → L3
示例2
代码主要功能是利用系统提供的锁操作,访问临界区资源程序员的主要目的是不希望两个线程同时访问同一资源,即程序执行的顺序为:All L1i, All S1j → R1 → A2 → All L2i, Al