[Computer Architecture] 캐시 메모리

김하밍·2023년 10월 11일

CS 스터디

목록 보기
11/11

1. 캐시 메모리


캐시 메모리(Cache Memory)는 속도가 빠른 장치와 느린 장치 간의 속도차에 따른 병목 현상을 줄이기 위한 범용 메모리 입니다.

  • 캐시 메모리는 캐시 블록(Cache Block)이라는 데이터 그룹 단위를 가집니다. 각각의 캐시 블록은 데이터를 담고 있으며, 캐시 태그(Cache Tag)와 묶어서 하나의 캐시 엔트리(Cache Entry)를 구성합니다.

    • 태그: 캐시 블록의 고유 식별값으로 CPU 프로세서는 캐시 태그 값을 통해 캐시 블록에 접근할 수 있다.
  • 메인 메모리에서 자주 사용하는 프로그램과 데이터를 저장해두어 속도를 빠르게 합니다.

  • CPU가 어떤 데이터를 원하는지 어느 정도 예측할 수 있어야 합니다.

2. 캐시 메모리의 장단점


  • 장점: 빠른 속도
  • 단점: 적은 용량, 비싼 비용

3. 캐시 메모리의 위치


CPU에서의 캐시를 세 가지 계층으로 구분할 수 있습니다.
위치에 따라 속도와 크기가 다르게 구성되어 있습니다.

  • L1: CPU 내부 // (비유) 책상 서랍
  • L2: CPU와 RAM 사이 // (비유) 개인 사무실 내의 책장
  • L3: 메인보드 // (비유) 큰 공용 도서관 내의 멀리 있는 책장
    • 보편성, 용량, 공유 매커니즘 측면에서 일반적으로 사용됩니다.

ps. 현대의 대부부분의 다중 코어 CPU들은 공유 L3 캐시를 가지고 있으므로 L3 캐시는 멀티코어 프로세서 아키텍처에서 일반적인 구성 요소로 간주됩니다.

4. 캐시 메모리의 작동 원리


캐시의 지역성

  • Temporal Locality : 시간적 지역성
  • Spatial Locality : 공간적 지역성

이 원리를 통해 CPU는 캐시에 저장된 데이터를 빠르게 참조하게 됩니다.

5. 캐시 미스 경우 3가지


(1) Cold miss
: 해당 메모리 주소를 처음 불러서 나는 미스

(2) Conflict miss
: 캐시 메모리에 A와 B 데이터를 저장해야 하는데, A와 B가 같은 캐시 메모리 주소에 할당되어 있어서 나는 미스 (direct mapped cache에서 많이 발생)

(3) Capacity miss
: 캐시 메모리의 공간이 부족해서 나는 미스 (Conflict는 주소 할당 문제, Capacity는 공간 문제)

6. 추후에 해당 개념을 실제로 적용해본다면 ?


캐시 메모리는 우리가 사용하는 디바이스의 속도를 크게 향상시키는 중요한 역할을 합니다.

대용량의 데이터를 처리할 때, 이러한 캐시 최적화 기법을 적용하여 성능 향상시켜보기

ex) 배열을 순차적으로 접근할 때와 임의로 접근할 때의 성능 차이는 CPU 캐시의 영향을 크게 받습니다.

순차적 접근은 공간 지역성을 최적화하여 캐시 히트율을 높이게 됩니다.

반대로, 배열의 데이터를 임의의 순서로 접근하면 캐시 미스가 발생할 확률이 높아져, 매번 메인 메모리에서 데이터를 가져와야 하므로 성능이 저하될 수 있습니다.

7. 구조 및 작동 방식


1. Direct Mapped Cache

  • 가장 기본적인 구조
  • DRAM의 여러 주소가 캐시 메모리의 한 주소에 대응되는 N:1 방식
  • 장점: 간단하고 빠름
  • 단점: Conflict Miss 발생

2. Fully Associative Cache

  • 비어있는 캐시 메모리가 있으면 마음대루 주소를 저장하는 방식
  • 장점: 저장 간단
  • 단점:
    • 찾기 어려움 -> 조건이나 규칙이 없어서 특정 캐시 Set 안에 있는 모든 블록을 한번에 찾아 원하는 데이터가 있는지 검색해야 함
    • 특수한 메모리 구조 사용 -> 가격 매우 비쌈

3. Set Associative Cache

  • Direct + FUlly 방식
  • 특정 행 지정, 그 행 안의 어떤 열이든 비어있을 때 저장하는 방식
  • Direcet에 비해 검색 속도 느린 대신 저장이 빠름
  • Fully에 비해 저장이 느린 대신 검색이 빠름
  • 중간형

참고1
참고2
참고3

profile
나만의 언어로 기록하며 성장하기 !

0개의 댓글