#学习
今日思考了一个问题。
对于 顺序一致性内存模型(Sequential Consistency),简单的load值预测可能会导致违例。
考虑以下事件:
1. Core#1 load [x] -> predict A
2. Core#1 执行load [x] -> value B
3. Core#2 store A -> [x]
4. Core#1 commit load, 重发load -> value A
提出几个问题:
1. load的值预测是否应该认为是正确的?
2. 如果不正确,哪里会出现问题?
3. 如何解决?何种情况才有必要replay/recover?
今日思考了一个问题。
对于 顺序一致性内存模型(Sequential Consistency),简单的load值预测可能会导致违例。
考虑以下事件:
1. Core#1 load [x] -> predict A
2. Core#1 执行load [x] -> value B
3. Core#2 store A -> [x]
4. Core#1 commit load, 重发load -> value A
提出几个问题:
1. load的值预测是否应该认为是正确的?
2. 如果不正确,哪里会出现问题?
3. 如何解决?何种情况才有必要replay/recover?