内存屏障:是一种CPU质量,用于控制特定条件下的重排序和内存可见性问题。又称:内存栅栏
内存屏障作用:
- 阻止屏障两侧的指令重排序写的时候,强制把缓冲区/高速缓存中的数据写回主内存,并让缓冲中的数据失效。
- 读的时候直接从主内存中读取。
内存屏障分类:
Load Barriers:读屏障
Store Barriers:写屏障
屏障类型 | 指令实例 | 说明 |
---|---|---|
LoadLoad Barriers | Load1 LoadBarrier Load2 | 确保load1数据的装载先于load2及所有后续装载指令的装载 |
StoreStore Barriers | Store1 StoreStore Store2 | 确保Store1数据对其他处理器看见(刷新到内存)先于Store2及所有后续存储指令的存储 |
LoadStore Barriers | Load1 LoadStore Store2 | 确保Load1数据的装载先于Store2及后续所有存储指令的刷新到内存 |
StoreLoad Barriers | Store1 StoreLoad Load2 | 确保Store1数据对其他处理器变得可见(指令刷新到内存),先于Load2及后续装载指令的装载 |
网友评论