4월2일 - 캐시 메모리

Yullgiii·2024년 4월 2일
0
post-thumbnail

캐시 메모리 및 메모리 계층성

캐시 메모리는 컴퓨터의 프로세서(CPU)와 주 메모리 사이에 위치한, 속도가 매우 빠른 유형의 임시 저장소다. 자주 사용되는 데이터와 명령어를 저장해, CPU가 필요할 때 더 빠르게 접근하도록 돕는다. 캐시 메모리의 사용으로 주 메모리 접근 시간이 크게 줄어들어, 컴퓨터의 전반적인 성능이 향상된다.

메모리 계층성은 컴퓨터 시스템 내 다양한 저장 매체를 속도와 비용 측면에서 계층적으로 배열한 것이다. 계층 구조 상단에는 CPU 내부의 레지스터와 캐시 메모리 같은 빠르고 비용이 많이 드는 메모리가 위치하고, 하단에는 하드 드라이브나 SSD와 같은 속도는 느리지만 비용 효율적인 저장 매체가 있다. 이 구조는 빠른 메모리를 적게, 느린 메모리를 많이 사용하여 시스템의 효율을 최적화한다.

캐시 메모리의 위치

캐시 메모리는 CPU 칩 내부에 위치한다. 현대의 프로세서는 멀티 레벨 캐시 아키텍처(L1, L2, 일부는 L3 캐시까지)를 갖추고 있어, 각 레벨의 캐시는 용량, 속도, CPU 코어와의 거리 측면에서 차이를 보인다.

L1, L2 캐시

  • L1 캐시

    • CPU 코어에 가장 가까운 위치에 있으며, 매우 빠른 접근 속도를 제공한다. 용량은 제한적이지만, 주로 현재 실행 중인 명령어와 데이터를 저장한다. 데이터 캐시와 명령어 캐시로 나뉜다.
  • L2 캐시

    • L1 캐시보다 속도는 느리지만 더 큰 용량을 가진다. 더 많은 데이터와 명령어를 저장해 CPU가 필요로 하는 정보를 빠르게 제공하며 성능을 향상시킨다. 일부 시스템에서는 각 CPU 코어별로 독립적으로 구성되며, 다른 시스템에서는 여러 코어가 공유한다.

캐시에 올라오는 데이터의 관리

캐시에서 데이터는 LRU, MRU, FIFO 등의 정책에 따라 관리된다. 이 정책들은 캐시의 제한된 공간 내에서 어떤 데이터를 유지하고 어떤 데이터를 교체할지 결정하는 데 사용된다.

캐시간의 동기화

캐시 간 동기화는 MESI 프로토콜을 통해 이루어진다. 이 프로토콜은 여러 캐시 간 데이터의 일관성을 유지하며, 데이터 변경 시 모든 캐시가 최신 상태의 데이터를 반영할 수 있도록 한다.

캐시 메모리의 Mapping 방식

  • 직접 매핑(Direct Mapped Cache): 메모리 주소를 캐시의 한 위치에만 매핑하는 방식이다. 간단하고 빠르지만 충돌 가능성이 높다.
  • 전체 연관 매핑(Fully Associative Cache): 데이터를 캐시의 어느 위치에나 저장할 수 있는 방식으로, 유연성은 높지만 검색 시간이 길어질 수 있다.
  • 집합 연관 매핑(Set Associative Cache): 직접 매핑과 전체 연관 매핑의 중간 형태로, 캐시를 여러 세트로 나누고 각 세트 내에서 연관 매핑 방식을 사용한다.

캐시의 지역성

캐시의 지역성은 시간 지역성과 공간 지역성 두 가지 유형이 있다. 시간 지역성은 한 번 접근한 데이터에 곧 다시 접근하는 경향을, 공간 지역성은 한 번 접근한 데이터의 근처에 있는 데이터에 곧 접근하는 경향을 의미한다.

이차원 배열 탐색과 캐시의 지역성

이차원 배열을 가로로 탐색할 때 공간 지역성이 높아져 캐시 성능이 좋아진다. 반면, 세로로 탐색할 때는 공간 지역성이 낮아지고 캐시 미스가 더 자주 발생하여 성능이 저하될 수 있다.

캐시의 공간 지역성 구현

캐시는 "라인" 또는 "블록" 단위로 데이터를 저장하고 관리한다. 한 번에 여러 바이트를 캐시에 저장함으로써, 해당 데이터 주변의 정보도 함께 캐시에 로드되게 되어, 프로그램이 연속된 메모리 영역에 접근할 때 캐시 히트율을 높여 성능을 개선한다.

profile
개발이란 무엇인가..를 공부하는 거북이의 성장일기 🐢

0개의 댓글