The memory gateways are present in the x86 architecture, but this in general - not only ensures that all previous downloads or repositories 1 are completed before any subsequent download or storage is performed - they also ensure that stores become globally visible .
, , , , .
, , , DMA, , , .
, x86: , .
Intel , .
: , , . .
, .
, Intel , .
x86 , .
, mov DWORD [eax+ebx*2+4], ecx, , eax, ebx ecx 2 , .
, (, ), .
, ( ).
OoO CPU , .
, , , , .
- First In, First .
.
, ( , ), WC, L1D, L2, L3 LLC, , - WB WT.
, - UC WT.
, : .
:
- .
, , , .
WB, , - , . ( , DMA x86 -). - WC, .
WC - - , , , . , , , - .
sfence : , .
, , . ( , , . mfence , ( L1d) , .)
sfence , ?
, .
- , .
MESI (MESIF Intel, MOESI AMD).
MESI.
, L , L .
CPU.
, L "", ( QPI Intel), L .
L S, (, L Exclusive [1]).
sfence .
.
L, , L , .
L S.
, L - , , , L ( , L Invalid, ).
, , sfence et , , .
, , , , , , ++, , .
, Intel: .
, , . , .
, , - .
, .
Memory ordering -- enforces --> Global visibility -- needs -> Cache coherency
'.______________________________'_____________.' '
Architectural ' '
'._______________________________________.'
micro-architectural
:
- .
. Intel mov [eax+ebx*2+4], ecx : store-address store-data. uop , eax ebx , , . , ( ) .
ecx , uop store-data .
, , , , , ( ) / . ( , x86, , , . - .)