A Primer on Memory Consistency and Cache Coherence—第四章TSO
Motivation of TSO
- SC模型的要求:要求每个处理器完成存储的操作必须严格符合Program Order,完全保证四种约束(L->L,L->S,S->L,S->S)
- SC模型的限制:严格的约束限制了处理器动态调度和执行的能力,也限制着处理器的性能
- TSO模型出现的原因:期望放松一些约束,使得某些情况下,处理器可以使用更多的优化方式,从而提高性能
SC存在的性能问题
- 问题1:尽管两个store miss的处理延迟可以相互掩盖,但是后续无关指令仍要在miss处理完成之后才能够执行
- 问题2:虽然Load指令和之前的Store指令有相关,但是Load指令却需要Store完成处理完成之后才能获取到新的数据,尽管这个数据在之前就已知
- 问题分析:
- 问题1和问题2都是由于Store miss的长延迟而带来的问题
- 在程序执行过程中,Load的重要性应该比Store高
- 如果能够掩盖Store的处理时间,性能将能够提升
- 如果能够使得Store之后的Load提前获取数据,性能也将能够提升
使用Write Buffer解决SC存在的问题
- Write Buffer功能:存储提交