I는 x86_64의 CAS 명령어 LOCK CMPXCHG
를 사용할 때, 즉 원자는 (값을 판독 비교 결과를 다시 쓰기) 잠겨 있는지 이때 동안 :x86_64 CAS 명령어를 사용할 때 하나의 캐시 라인 또는 L3 캐시 만 잠급니다.
- 단 하나 개의 캐시 라인 L3 캐시에? (이 시점에서 L3의이 캐시 라인에서 읽고 쓸 수있는 코어는 없습니다)
- 또는 L3 캐시가 완전히 있습니까? (이 시점에 L3 캐시에서 읽기/쓰기 할 수없는 코어가 하나도 없음)
x86_64 Intel CPU가 사용하는 것은 사실입니까? 캐시 라인의 배타적 상태의
- 1 번째 aproach (MOESI/MESIF) 독점
감사합니다, 즉 지금은 대부분의 경우는'LOCK'은 그것이하는 의미에서 무시됩니다 접두사 원래 생성 된 - 잠금 버스 (초기 FSB 및 현재 QPI). 그리고 대부분의 경우 잠금 버스가 아닌 CPU 코어는 캐시 라인에 특정 플래그를 추가하여 스누프 응답을 비활성화합니다. "무시 된 잠금"- * "LOCK 작업 중에 잠긴 메모리 영역이 프로세서에 캐시 된 경우 쓰기 연산 메모리로 LOCK 연산을 수행하고 캐시 라인에 완전히 포함되면 프로세서는 버스에서 LOCK # 신호를 어서 트하지 않을 수 있습니다. "* http://stackoverflow.com/a/3339380/1558037 – Alex
정확히. 나는이 섹션을 새로운 매뉴얼에서 찾을 수 없었다. (그들은이 말을 바꾸었을 수도있다.) 그러나이 가정은 그대로 남아 있어야한다. – Leeor