x86 메모리 모델 및 릴리스-획득 의미 체계
MOV를 사용한 memory_order_release 원자 저장소 구현에 관한 이전 문의에 대한 후속 조치 x86 명령과 관련하여 펜스와 같은 추가 동기화 메커니즘 없이 x86에서 릴리스 및 획득이 어떻게 달성되는지에 대한 질문이 제기되었습니다. 잠금.
단일 프로세서 메모리 순서
인텔의 시스템 개발 매뉴얼 3A권 8장에는 단일 프로세서 시스템에서 로드 및 쓰기에 특정 순서가 있다고 명시되어 있습니다. 보장:
다중 -프로세서 메모리 주문
단, 멀티프로세서 부분은 문서에는 로드가 어떻게 적용되는지 명시적으로 언급되어 있지 않습니다. 초점은 다음과 같습니다.
MOV를 사용한 획득 및 릴리스
단일 프로세서 메모리 순서 원칙을 이해하는 것이 중요합니다. 매뉴얼에 따르면 캐시 일관성 공유 메모리에 액세스할 때 다중 프로세서 시스템에도 동일한 원칙이 적용됩니다. 즉, 재정렬은 각 CPU 코어 내에서 로컬로만 발생합니다.
저장소가 전체적으로 표시되면 모든 코어에 동시에 표시되므로 모든 코어가 일관된 순서로 쓰기를 관찰할 수 있습니다. 이것이 순차적 일관성을 설정하기 위해 x86의 mfence와 같은 로컬 장벽만 필요한 이유입니다.
메모리의 일관된 공유 뷰
x86 아키텍처는 일관된 공유 뷰를 유지합니다. 일관된 캐시를 통한 메모리 보기. 다중 처리 메커니즘에 대한 Intel의 정의는 모든 프로세서가 동일한 데이터에 액세스할 수 있도록 하기 위해 메모리 일관성과 캐시 일관성의 중요성을 강조합니다.
추가 자료
위 내용은 x86은 명시적인 펜스 없이 릴리스-획득 의미 체계를 어떻게 달성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!