Skip to main content

TSO(Total Store Ordering)内存模型

  1. TSO(Total Store Ordering)是一个被广泛使用的内存模型
  2. 并在x86架构中使用,RISC-V也提供了TSO扩展,即RVTSO,人们普遍认为x86内存模型等同于TSO,然而Intel和AMD从来没有保证这一点
  3. x86选择放弃SC(顺序一致性sequential consistency),以更好地支持基于FIFO的write buffer,用于加速性能
  4. TSO和SC最关键的区别就是store可能被放入write buffer中且允许load的bypass
    1. 对于单核视角来说,和SC没有区别,执行顺序和程序顺序一致
    2. 对于多核来说,需要额外的手段来保证memory consistency
  5. 由于TSO只允许store-load的重排,因此需要使用FENCE的场合不多,FENCE的实现方式也不是很重要。一种简单的实现是,当FENCE被执行时,清空write buffer,并在FENCE提交之前不再执行后面的load指令。