x86의 원자적 작업: 내부 관점
메모리 작업이 RAM에서 직접 실행된다는 초기 인상과 달리 원자적 작업은 내부에 국한됩니다. 캐시. 코어 간의 일관성과 캐시 일관성 있는 DMA 사용을 통해 메모리 액세스가 시스템의 모든 관찰자에게 원자성으로 표시됩니다.
원자성은 특히 메모리 순서와 관련이 없으며 정렬된 로드 및 저장은 최대 64비트로 유지됩니다. 순서에 상관없이 원자적입니다. 이는 이러한 작업이 코어, 메모리 및 PCIe 버스 사이의 넓은 데이터 경로 내에서 실행될 수 있어 추가 하드웨어 없이도 분할이 보장되기 때문입니다.
CPU는 그 능력 덕분에 정렬된 로드 및 저장에 대한 원자성을 보장합니다. 캐시 라인을 원자적으로 수정합니다. 이를 통해 원자적 작업이 반드시 주 메모리에 도달하지 않고도 캐시 내에서 완전히 발생할 수 있습니다. 그러나 데이터 경로보다 넓은 저장소는 모든 액세스에 대해 잠금을 적용하여 보호해야 합니다.
원자적 읽기-수정-쓰기(RMW) 작업은 더 큰 문제를 야기합니다. RMW를 원자적으로 실행하기 위해 코어는 캐시 라인을 수정된 상태로 유지하여 작업이 완료될 때까지 외부 수정을 방지합니다. 정렬되지 않은 RMW의 경우 여러 캐시 라인에 원자성을 적용하기 위해 실제 DRAM 스토리지가 필요할 수 있으며 잠재적으로 버스 잠금을 요구할 수도 있습니다.
위 내용은 x86 프로세서에서 원자적 연산은 어떻게 작동합니까: 캐시, 메모리 및 원자성?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!