OS와 하드웨어
캐시 일관성을 하드웨어가 유지하지 않는(비코히런트) 시스템에서, 장치가 DMA로 주기억장치에 쓴 데이터를 CPU가 읽기 전에 소프트웨어가 해야 하는 처리는 무엇입니까?
- ACPU의 클록 주파수를 일시적으로 낮춘다
- B해당 범위의 캐시 내용을 무효화하여 주기억장치에서 다시 읽도록 한다
- C캐시 내용을 모두 주기억장치에 다시 쓴 뒤, DMA로 도착한 결과를 폐기한다
정답과 해설 보기
정답: B. 해당 범위의 캐시 내용을 무효화하여 주기억장치에서 다시 읽도록 한다
DMA는 CPU를 거치지 않고 장치와 주기억장치 사이에서 데이터를 전송하므로, 하드웨어가 일관성을 유지하지 않는 시스템에서는 CPU 캐시에 그 범위의 오래된 데이터가 남아 있을 수 있습니다. 그대로 읽으면 DMA로 도착한 새 데이터가 아니라 오래된 값을 읽게 됩니다. 그래서 드라이버는 읽기 전에 그 범위의 캐시를 무효화하여 주기억장치에서 새 값을 읽게 합니다. 반대로 장치로 보낼 데이터는 DMA를 시작하기 전에 캐시에서 다시 써 둡니다.
- A. 클록 주파수는 일관성과 관계없습니다.
- B. 올바릅니다. 오래된 캐시 내용을 무효화하여 새 데이터를 읽게 합니다.
- C. DMA 결과를 폐기해서는 의미가 없습니다.