메모리 계층 구조
라이트 스루(write-through) 캐시에서 쓰기 버퍼(write buffer)를 두는 주된 목적은 무엇입니까?
- A주기억장치에 대한 쓰기 완료를 기다리지 않고 CPU가 다음 처리로 넘어갈 수 있게 하기 위해
- B캐시 안의 데이터를 주기억장치보다 새로운 상태로 유지하기 위해
- C쓰기에서 미스한 라인을 반드시 먼저 주기억장치에서 캐시로 읽어 온 뒤에 쓰기 위해
정답과 해설 보기
정답: A. 주기억장치에 대한 쓰기 완료를 기다리지 않고 CPU가 다음 처리로 넘어갈 수 있게 하기 위해
라이트 스루 방식에서는 쓰기마다 주기억장치에도 기록하므로, 그대로 완료를 기다리면 CPU가 자주 멈추게 됩니다. 쓰기 버퍼에 쓰기를 일시적으로 모아 두면 CPU는 곧바로 다음 명령으로 넘어가고, 버퍼가 뒤에서 주기억장치로 기록합니다. 캐시를 주기억장치보다 새롭게 유지하는 것은 라이트 백(write-back) 방식의 성질이며, 라이트 스루에서는 오히려 양쪽이 일치합니다. 미스한 라인을 읽어 올지 여부는 라이트 얼로케이트(write-allocate)의 선택이며, 쓰기 버퍼와는 별개의 문제입니다.
- A. 올바릅니다. 쓰기를 일시적으로 모아 두어 CPU를 기다리게 하지 않기 위해서입니다.
- B. 캐시가 주기억장치보다 새로워지는 것은 라이트 백 방식입니다.
- C. 미스 시에 읽어 올지 여부는 라이트 얼로케이트의 선택입니다.