컴퓨터구조 메모리 계층 구조

컴퓨터 저장 장치는 속도, 용량, 가격이라는 세 가지 요소 사이의 치열한 트레이드오프 관계에 놓여 있다.

이 모순을 해결하기 위해 고안된 전략적 배치가 바로 ‘메모리 계층 구조(Memory Hierarchy)’다.

피라미드형 계층 구조

상위 계층으로 갈수록 비트당 가격이 비싸고 속도가 빠르며, 아래로 갈수록 저렴하고 느리다.

[   레지스터   ] - CPU 내부, 최고 속도, 극소 용량
[    캐시      ] - L1, L2, L3 캐시, 고속, 소용량
[  메인 메모리  ] - RAM, 중간 속도, 중간 용량
[ 보조기억장치 ] - SSD, HDD, 저속, 대용량

작동 원리: 참조 지역성 (Locality)

계층 구조가 효율적으로 작동하는 근거는 프로그램의 데이터 접근 패턴에 있다.

  • 시간 지역성: 최근 접근한 데이터에 다시 접근할 확률이 높다.
  • 공간 지역성: 최근 접근한 데이터 인근의 데이터에 접근할 확률이 높다.

캐시 메모리는 이 지역성을 활용하여 CPU가 필요로 할 데이터를 미리 상위 계층으로 로드함으로써 성능 병목을 최소화한다.

개발자에게 주는 시사점

우리가 작성하는 코드의 구조에 따라 캐시 히트율이 달라진다.

2차원 배열을 행 방향으로 읽느냐 열 방향으로 읽느냐에 따라 성능 차이가 발생하는 이유가 바로 여기에 있다.

P.S

메모리 계층 구조는 한정된 자원으로 최적의 가성비를 끌어내기 위한 공학적 설계다.

하드웨어의 특성을 이해하고 지역성을 고려한 코드를 작성하는 것이 성능 최적화의 핵심인 것 같다.

Author avatar

웨이호프

WordPress creator and blogger.

View all posts