개발도구 뉴스
Memory Ordering in CPUs
HNHacker News
CPU의 메모리 순서 모델에 대한 일반적인 오해가 존재하며, 모든 CPU가 모든 메모리 접근에서 메모리 모델을 따른다는 가정은 사실이 아니다.
세 줄 요약
- 대부분의 CPU는 메모리 순서를 낙관적으로 구현하며, 충돌(contention) 발생 시 메타데이터를 이용해 위반을 감지하고 명령어를 롤백한 후 재시도한다.
- 메모리 모델의 차이는 단순히 모든 접근을 엄격하게 순서대로 처리하는지에 있는 것이 아니라, 충돌 상황에서 누가 더 쉽게 충돌을 보고 재시도할 수 있는지에 달려 있다.
- 강한 메모리 모델(예: x86)은 약한 모델보다 충돌 시 순서 위반을 보고 재시도할 가능성이 높으며, 이 비용은 복잡하고 미묘하다.
CPU의 메모리 순서 모델에 대한 일반적인 오해가 존재하며, 모든 CPU가 모든 메모리 접근에서 메모리 모델을 따른다는 가정은 사실이 아니다.