메모리 계층 구조

프로그램이 어떤 데이터에 처음 접근했을 때 일어나는 캐시 미스를 줄이는 방법으로 효과가 있는 것은 무엇입니까?

  1. A프리페치(prefetch)로 미리 읽어 둔다
  2. B캐시의 연관도(way 수)를 2배로 한다
  3. C캐시의 용량만 2배로 한다
정답과 해설 보기

정답: A. 프리페치(prefetch)로 미리 읽어 둔다

처음 접근할 때 일어나는 강제 미스(compulsory miss)는 해당 데이터가 아직 한 번도 캐시에 들어온 적이 없기 때문에 일어나므로, 용량이나 연관도를 늘려도 줄지 않습니다. 필요해지기 전에 프리페치로 읽어 두거나, 라인을 크게 하여 가까운 데이터를 한꺼번에 가져오면 줄일 수 있습니다. 연관도를 높여서 줄어드는 것은 같은 세트를 두고 다투는 충돌 미스이고, 용량을 늘려서 줄어드는 것은 작업 집합이 넘치는 용량 미스입니다.

  • A. 올바릅니다. 아직 읽어 오지 않은 데이터를 미리 읽어 두는 것이 효과적입니다.
  • B. 연관도를 높여서 줄어드는 것은 충돌 미스입니다.
  • C. 용량을 늘려서 줄어드는 것은 용량 미스입니다.
이 분야 연습하기 분야로 돌아가기

메모리 계층 구조의 다른 문제

  1. 캐시를 완전 연관 방식으로 해도 줄지 않는 미스로 올바른 것은 무엇입니까?
  2. 캐시의 라인 크기를 키웠을 때의 영향으로 올바른 것은 무엇입니까?
  3. 라이트 스루(write-through) 캐시에서 쓰기 버퍼(write buffer)를 두는 주된 목적은 무엇입니까?
  4. 라이트 백(write-back) 캐시에서 각 라인에 붙이는 더티 비트(dirty bit)의 역할로 올바른 것은 무엇입니까?
  5. 쓰기에서 캐시 미스가 났을 때 해당 라인을 읽어 오지 않고 하위 계층에 직접 쓰는 방식은 무엇입니까?

이 분야의 비교