??????????????????д??????????????????????????????′??????????????????????????????????????????????????????????????????д??????????????????????????????д-????????????

????????????????????????????????????б??

 

 

Load-Load

Load-Store

Store-Store

Store-Load

????????

sparc-TSO

N

N

N

Y

N

x86

N

N

N

Y

N

ia64

Y

Y

Y

Y

N

PowerPC

Y

Y

Y

Y

N

????????????е?“N”?????????????????????????????“Y”?????????????

??????????????????????????????????????Store-Load??????????????????????????????????????????????????sparc-TSO??x86????????????????????????????????д-???????????????????????????д??????????

?????? ?1??sparc-TSO?????TSO(Total Store Order)?????????????sparc?????????????

?????? ?2??????е?x86????x64??AMD64??

?????? ?3??????ARM????????????????PowerPC??????????????????????????????????

?????? ?4????????????????????????

?????????????????java??????????????????е????λ????????????????????????????????????????JMM??????????????????????

 

????????

??????

???

LoadLoad Barriers

Load1; LoadLoad; Load2

???Load1?????????????Load2?????к??????????????

StoreStore Barriers

Store1; StoreStore; Store2

???Store1??????????????????????μ???棩??????Store2?????к????洢????洢??

LoadStore Barriers

Load1; LoadStore; Store2

???Load1????????????Store2?????к?????洢?????μ???檔

StoreLoad Barriers

Store1; StoreLoad; Load2

???Store1?????????????????????????μ???棩??????Load2?????к??????????????StoreLoad Barriers???????????????????????????洢??????????????????и?????????????????

????StoreLoad Barriers?????“?????”????????????????????????????Ч???????????????????????????????????????????????д?????????????и????????????????????????????????д???????е??????????μ?????У?buffer fully flush????