먼저 생활 비유
한 장의 공용 화이트보드
A는 왼쪽 칸, B는 오른쪽 칸만 쓰지만 보드 전체를 한 사람씩 가져가야 한다면 계속 주고받게 됩니다.
5.3 · 캐시와 지역성
서로 다른 변수를 수정하는 두 스레드가 왜 싸울 수 있을까요?
변수는 달라도 같은 캐시 라인에 들어 있으면 코어 사이 일관성은 그 라인 전체를 단위로 움직입니다.
먼저 생활 비유
A는 왼쪽 칸, B는 오른쪽 칸만 쓰지만 보드 전체를 한 사람씩 가져가야 한다면 계속 주고받게 됩니다.
컴퓨터 예제로 바꾸기
coreA: counters[0]++
coreB: counters[1]++두 원소가 같은 캐시 라인에 있으면 각 쓰기가 다른 코어의 복사본을 무효화합니다.
지금 일어나는 변화
counter[0]과 [1]이 든 라인을 가져옵니다.
이 그림에서 기억할 한 문장
거짓 공유는 논리적으로 공유하지 않는 값들이 물리적으로 같은 캐시 라인을 써서 생기는 성능 문제입니다.
현재 상태
30초 확인 문제
거짓 공유를 줄이는 한 방법은?
처음 보는 용어 두 개
이 절을 다 읽었다면
거짓 공유는 논리적으로 공유하지 않는 값들이 물리적으로 같은 캐시 라인을 써서 생기는 성능 문제입니다.