A Primer on Memory Consistency and Cache Coherence—第四章TSO

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shuiliusheng/article/details/81255754

A Primer on Memory Consistency and Cache Coherence—第四章TSO

  1. Motivation of TSO

    • SC模型的要求:要求每个处理器完成存储的操作必须严格符合Program Order,完全保证四种约束(L->L,L->S,S->L,S->S)
    • SC模型的限制:严格的约束限制了处理器动态调度和执行的能力,也限制着处理器的性能
    • TSO模型出现的原因:期望放松一些约束,使得某些情况下,处理器可以使用更多的优化方式,从而提高性能
  2. SC存在的性能问题

    这里写图片描述

    • 问题1:尽管两个store miss的处理延迟可以相互掩盖,但是后续无关指令仍要在miss处理完成之后才能够执行
    • 问题2:虽然Load指令和之前的Store指令有相关,但是Load指令却需要Store完成处理完成之后才能获取到新的数据,尽管这个数据在之前就已知
    • 问题分析:
      • 问题1和问题2都是由于Store miss的长延迟而带来的问题
      • 在程序执行过程中,Load的重要性应该比Store高
      • 如果能够掩盖Store的处理时间,性能将能够提升
      • 如果能够使得Store之后的Load提前获取数据,性能也将能够提升
  3. 使用Write Buffer解决SC存在的问题

    • Write Buffer功能:存储提交之后的Stores,直到存储系统能够处理这些Stores
    • Store进入Write Buffer: When the store commits
    • Store离开Write Buffer: When the block to be written is in the cache in a read–write coherence state
    • Write Buffer中的Bypass:当前的Load可以看到Write Buffer中Stores的结果,并使用

    这里写图片描述

  4. 使用Write Buffer带来的错误影响

    这里写图片描述

  5. 使用FENCE指令解决Write Buffer带来的错误影响

    这里写图片描述

  6. TSO模型中的FENCE指令

    • FENCE指令的作用
      • 所有在FENCE指令之前的指令必须在FENCE指令之前完成,所有FENCE指令之后的指令都必须在FENCE之后完成
      • 为程序员提供一种显式的方式指定Store和Load之间的顺序
    • FENCE指令在TSO中的实现
      • FENCE指令在执行过程中,等待Write Buffer完全排空
      • FENCE指令在提交之前,不允许之后的Load执行
  7. TSO模型的定义

    • 相对于SC,TSO没有Store → Load 约束,但是增加了FIFO Write Buffer

      这里写图片描述

    • 相对于SC,Load获取到的值不再一定是在Memory Order中最后的Store的值,有可能会获取到Program Order中最后的Store的值(地址相同)

      这里写图片描述

    • 在TSO模型中,程序员需要在软件层面显式地利用FENCE指令,实现与SC等价的效果

  8. TSO模型中的原子操作

    • TSO中原子操作存在的问题

      ​ 由于TSO放松了Store->Load约束,所以可能会出现RMW中的load提前于之前的store先完成。同时由于RMW的原子性,RMW中的store也可以在load之后立马执行,意味着RMW中的store在前面的store之前完成,违反了Store->Store的约束

    • 问题解决

      • 在实现RMW的过程中,应该保证RMW中的Load在执行之前,write buffer中所有的Store都已经退出;
      • 同时为了让RMW中的Store能够紧接着Load立刻执行完成,Load发出的cache请求应该是read-write一致性许可,而不是仅仅只是read许可;
      • 在RMW的执行过程中,Cache不能够改变RMW正在访问的cache block的状态
  9. X86-TSO模型的抽象结构图
    这里写图片描述

猜你喜欢

转载自blog.csdn.net/shuiliusheng/article/details/81255754