메모리 계층 구조

시간적 지역성의 예로 가장 적절한 것은?

  1. A배열의 요소를 처음부터 순서대로 한 번씩 읽는다
  2. B루프 안에서 같은 합계용 변수를 여러 번 갱신한다
  3. C매번 임의의 주소에 있는 데이터를 한 번만 읽는다
정답과 해설 보기

정답: B. 루프 안에서 같은 합계용 변수를 여러 번 갱신한다

시간적 지역성(temporal locality)은 한 번 사용한 데이터를 가까운 시일 안에 다시 사용하는 성질로, 루프 안에서 반복해서 읽고 쓰는 변수가 대표적인 예입니다. 이러한 데이터는 캐시나 레지스터에 남아 있는 동안 재사용되므로 접근이 빨라집니다. 배열을 처음부터 순서대로 읽는 것은 가까운 주소를 연속해서 사용하는 공간적 지역성의 예이며, 시간적 지역성과는 다른 성질입니다. 임의의 주소를 한 번만 읽는 접근에는 어느 쪽 지역성도 거의 없습니다.

  • A. 처음부터 순서대로 읽는 것은 공간적 지역성의 예입니다.
  • B. 올바릅니다. 같은 변수를 짧은 시간 안에 여러 번 사용하는 것이 시간적 지역성입니다.
  • C. 임의의 주소를 한 번씩 읽는 접근에는 지역성이 거의 없습니다.
이 분야 연습하기 분야로 돌아가기

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

  1. C 언어의 2차원 배열 a[i][j]를 위와 같이 안쪽 루프를 j로 하여 순회하면, 안쪽을 i로 하는 것보다 빨라지기 쉽습니다. 그 이유는 무엇입니까?
  2. 주소가 32비트, 용량 32 KB, 라인 크기 64바이트인 직접 사상(direct-mapped) 캐시에서 태그는 몇 비트가 됩니까?
  3. 주소가 32비트, 용량 32 KB, 라인 크기 64바이트인 4-way 세트 연관 캐시의 세트 수는 얼마입니까?
  4. 완전 연관(fully-associative) 캐시에서 주소 중 인덱스(세트를 고르는 부분)에 사용하는 비트 수는 얼마입니까?
  5. L1 캐시의 히트 시간이 1 ns, 미스율이 5%, L2 캐시의 히트 시간이 10 ns, L2의 지역(local) 미스율이 20%, 주기억장치의 접근 시간이 100 ns일 때, 평균 메모리 접근 시간은 얼마입니까?

이 분야의 비교