So, there are a few different things to solve:
- What can a processor do?
- What do we mean by the atomic path?
- , ?
- ++ 11/14?
# 1 # 2:
x86 8, 16, 32, 64, 128, 256 512 . [ , ] . , " ", [ , , ]. " " " " - [ ] , .
VEX LOCK ( Intel)
VEX- LOCK, VEX, #UD
VEX AVX, #UD "undefined " - , , .
, 100% , 256 . SSE:
SSE: 16B?
# 3 , .
# 4 - , std::atomic<uintmax_t>, uintmax_t - 128 256 , , , . , 128 uintmax_t, .
"" , " 100%, , ", SSE, AVX AVX512 - (), // .
x86 - CMPXCHG16B, 64- , MATCH . , -, 128- , , , - , , , -.
, , Intel AMD, .