컴퓨터 구조 캐시의 마법

CPU와 메모리 사이의 속도 차이를 해결하는 것은 컴퓨터 구조의 핵심 과제이다.

CPU의 처리 속도에 비해 메인 메모리의 접근 속도는 느리다.

이 간극을 보완하기 위해 도입된 것이 캐시 메모리(Cache Memory)이다.

캐시의 작동 원리: 참조 지역성

캐시는 데이터 사용 패턴을 예측하여 성능을 높인다.

이를 참조 지역성(Locality of Reference) 원리라고 한다.

[ CPU ] --(데이터 요청)--> [ Cache ] --(있음: Hit!)--> [ CPU로 즉시 전달 ]
                              |
                         (없음: Miss)
                              |
                              v
                        [ Main Memory ] --(데이터 로드)--> [ Cache & CPU ]

캐시 히트율을 높이는 두 가지 전략

  • 시간 지역성(Temporal Locality): 최근에 참조된 데이터는 가까운 미래에 다시 참조될 가능성이 높다는 원리이다.
    (예: 반복문의 인덱스 변수)
  • 공간 지역성(Spatial Locality): 참조된 데이터 근처에 있는 데이터가 곧 사용될 가능성이 높다는 원리이다.
    (예: 배열의 순차적 접근)

하드웨어 구조를 고려한 최적화

캐시의 원리를 이해하면 코드 작성 시 하드웨어의 효율을 고려할 수 있다.

배열을 순차적으로 읽는 코드는 공간 지역성 덕분에 캐시 히트율이 높으나, 메모리 주소를 무작위로 접근하는 코드는 빈번한 캐시 미스를 유발하여 성능을 저하시킨다.

데이터가 메모리에 배치되고 처리되는 방식을 고려할 때 성능 최적화가 가능하는 것 같다.

Author avatar

웨이호프

WordPress creator and blogger.

View all posts