C로 코드를 짯다치면


컴파일러 최적화 단계에서 한번 바뀌고,


프로세서 레벨에서 명령들을 다시 한번 최적화를해서 또 순서가 바뀜,


이거를 둘다 금지해야 정확한 read, write 타이밍을 잡을수가 있고 정밀한 동기화가 가능해짐