1. 前言
RISC-V使用的内存模型是RVWMO(RISC-V Weak Memory Ordering),它是Release Consistency的扩展,因此,RVWMO的基本特性类似于RC模型。
2. RC模型
Release consistency(RC)的提出是基于一个观察:将所有同步操作用FENCE围在一起是多余的。随着对同步操作的深入理解,同步操作acquire只需要后面放一个FENCE,同步操作release只需要前面放一个FNECE。因此RC提供了ACQUIRE和RELEASE操作,它们和FENCE类似,但是只在一个方向上对memory进行保序,而不是像FENCE那样在两个方向上都进行保序。更一般地说,RC只需要:
- ACQUIRE -> Load, Store (Load, Store -> ACQUIRE方向不保序)
- Load, Store -> RELEASE (RELEASE -> Load, Store 方向不保序)
- ACQUIRE -> ACQUIRE
- ACQUIRE -> RELEASE
- RELEASE -> ACQUIRE
- RELEASE -> RELEASE
如下图,注:LDAR代表load具有acquire语义,STLR代表store具有release语义。