메모리 계층 구조

쓰기에서 캐시 미스가 났을 때 해당 라인을 읽어 오지 않고 하위 계층에 직접 쓰는 방식은 무엇입니까?

  1. A라이트 얼로케이트(write-allocate)
  2. B라이트 백(write-back)
  3. C노 라이트 얼로케이트(no-write-allocate)
정답과 해설 보기

정답: C. 노 라이트 얼로케이트(no-write-allocate)

쓰기 미스 때 라인을 읽어 오지 않고 하위 계층에 직접 쓰는 방식은 노 라이트 얼로케이트이며, 라이트 스루 방식과 조합하는 경우가 많습니다. 한 번 쓰면 다시 읽지 않는 데이터에서는 불필요한 읽기를 생략할 수 있습니다. 라이트 얼로케이트는 반대로 라인을 읽어 온 뒤에 쓰는 방식으로, 쓴 데이터를 곧바로 다시 사용하는 경우에 유리하여 라이트 백 방식과 조합하는 경우가 많습니다. 라이트 백은 히트한 쓰기의 처리 방식을 정하는 것으로, 미스 시 읽기 여부와는 다른 축입니다.

  • A. 라이트 얼로케이트는 라인을 읽어 온 뒤에 쓰는 방식입니다.
  • B. 라이트 백은 쓰기를 주기억장치에 언제 반영하는지에 관한 방식이며, 미스 시의 선택과는 별개입니다.
  • C. 올바릅니다. 읽어 오지 않고 하위 계층에 쓰는 방식입니다.
이 분야 연습하기 분야로 돌아가기

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

  1. 용량이 2라인인 완전 연관 방식의 LRU 교체 캐시가 처음에 비어 있을 때, 블록을 A, B, A, C, B, A 순서로 참조하면 미스는 몇 번 일어납니까?
  2. 하드웨어 프리페치가 특히 효과를 발휘하기 쉬운 접근은 무엇입니까?
  3. 소프트웨어 프리페치 명령을 넣을 때, 얼마나 앞의 데이터를 읽을 것인가(프리페치 거리)에 대한 설명으로 올바른 것은 무엇입니까?
  4. 위의 루프에서 int가 4바이트, 캐시 라인이 64바이트이고, 배열은 캐시에 들어 있지 않으며 시작이 라인 경계에 정렬되어 있을 때, 프리페치가 없다면 배열 읽기의 미스율은 얼마입니까?
  5. 행렬 곱셈 등에서 사용되는 루프 블로킹(타일링, tiling)의 주된 목적은 무엇입니까?

이 분야의 비교