반도체

[반도체] Cache Memory

mierah 2025. 7. 4. 21:46
728x90

캐시 메모리(Cache Memory)**는 CPU와 주 기억장치(RAM) 사이에서 데이터 전달 속도를 높이기 위한 고속 메모리입니다. 캐시는 CPU 내부 또는 매우 가까운 위치에 존재하여, 자주 사용되는 데이터나 명령어를 일시적으로 저장하고 빠르게 접근할 수 있게 도와줍니다.

CPU


✅ 캐시 메모리의 역할

  1. 데이터 접근 속도 향상
    RAM보다 훨씬 빠른 속도로 데이터를 제공하여 CPU가 대기하는 시간을 줄입니다.
  2. 자주 사용되는 데이터 저장
    최근에 사용되었거나 반복적으로 접근되는 데이터를 저장하여 다시 필요할 때 빠르게 불러올 수 있게 합니다.
  3. 메모리 계층 구조에서 중간 다리 역할
    느린 RAM과 빠른 CPU 사이의 속도 차이를 줄이는 완충 지대 역할을 합니다.

✅ 작동 원리 요약

  1. CPU가 데이터를 요청
  2. 캐시에 먼저 해당 데이터가 있는지 확인 (→ Cache Hit이면 바로 사용)
  3. 캐시에 없으면 (→ Cache Miss) RAM에서 가져오고, 동시에 캐시에 저장

✅ 캐시 메모리의 계층

  • L1 캐시 (1차 캐시): CPU 코어 내부, 매우 빠르지만 용량이 작음 (보통 수십 KB)
  • L2 캐시 (2차 캐시): CPU 내부나 가까운 위치, L1보다 느리지만 용량 큼 (수백 KB~수 MB)
  • L3 캐시 (3차 캐시): 여러 코어가 공유, L2보다 느리지만 더 큰 용량 (수 MB 이상)

✅ 정리

항목설명
위치 CPU 내부 또는 가까운 메모리
목적 빠른 데이터 접근, 속도 향상
저장 대상 자주 사용하는 데이터 및 명령어
효과 시스템 전체 성능 향상

 

 

캐시 메모리는 고속으로 작동하면서도 효율적으로 데이터를 저장하고 검색하기 위해 특정한 구조와 방식으로 구성되어 있습니다. 아래에서 캐시 메모리의 구성 요소와 동작 방식을 설명드릴게요.


🔧 캐시 메모리의 구성 요소

1. 캐시 블록 (Cache Block or Line)

  • 캐시 메모리는 여러 개의 블록(block) 또는 **라인(line)**으로 나뉘어 있습니다.
  • 각 블록은 메인 메모리의 특정 영역 데이터를 복사해서 저장합니다.
  • 보통 1 블록 = 32바이트, 64바이트 등

2. 태그(Tag)

  • 각 블록에 저장된 데이터가 메인 메모리의 어느 위치에서 왔는지를 나타내는 정보
  • 캐시가 CPU 요청 주소를 찾을 때, 이 태그와 주소 일부를 비교해 일치 여부를 판단합니다.

3. 인덱스(Index)

  • 메모리 주소 중 일부를 사용해 캐시 내의 블록 위치를 결정합니다.
  • 인덱스를 통해 캐시의 어느 블록을 검색할지 빠르게 결정할 수 있어요.

4. 데이터(Data)

  • 실제로 저장되어 있는 데이터의 내용입니다. CPU는 이 부분을 사용합니다.

5. 유효 비트 (Valid Bit)

  • 해당 블록에 저장된 데이터가 유효한지 여부를 나타냅니다.
  • 시스템이 부팅된 직후 캐시에는 무의미한 값들이 있으므로 이를 판단하기 위해 사용됩니다.

🧠 캐시 메모리의 매핑 방식

캐시가 메인 메모리 데이터를 어떻게 저장하고 찾는지를 결정하는 방식입니다:

매핑 방식설명장점단점
직접 매핑 (Direct Mapping) 메모리의 특정 블록이 캐시의 특정 위치에만 저장됨 간단하고 빠름 충돌(Conflict Miss)이 자주 발생
완전 연관 매핑 (Fully Associative) 메모리 블록이 캐시의 어느 위치에도 저장 가능 충돌 거의 없음 검색이 느리고 하드웨어 복잡
집합 연관 매핑 (Set-Associative Mapping) 캐시를 여러 세트로 나누고, 각 세트 안에서 완전 연관 매핑 사용 균형 잡힌 방식 구현이 상대적으로 복잡
 

🔁 캐시 교체 알고리즘 (Replacement Policy)

캐시가 가득 찼을 때 어떤 블록을 제거할지 결정하는 규칙입니다:

  • LRU (Least Recently Used): 가장 오래 사용하지 않은 블록 제거
  • FIFO (First In First Out): 먼저 들어온 블록 제거
  • Random: 무작위로 제거

📊 캐시 메모리의 내부 구조 예시 (요약)

필드설명
태그(Tag) 메인 메모리 주소 식별용
유효 비트 데이터 유효 여부 확인
데이터(Data) 실제 캐시된 데이터

 


🧠 L1, L2, L3 캐시 메모리란?

계층위치속도크기용도
L1 CPU 코어 내부 가장 빠름 가장 작음 (수십 KB) 즉시 필요한 데이터
L2 CPU 코어 내부 또는 가까이 빠름 중간 (수백 KB~수 MB) L1에서 못 찾은 데이터 저장
L3 CPU 전체에 공유 느림 (그래도 RAM보단 빠름) 큼 (수 MB~수십 MB) 전체 코어 간 데이터 공유
 

        +------------------+
        |     CPU Core     |
        |  +------------+  |
        |  |  L1 Cache  |  |   ← 가장 빠름 (명령어/데이터 분리)
        |  +------------+  |
        |  |  L2 Cache  |  |   ← 중간 속도, 코어 전용
        |  +------------+  |
        +------------------+
                ↓
        +------------------+
        |    L3 Cache      |   ← 코어 간 공유, 크고 느림
        +------------------+
                ↓
        +------------------+
        |    Main Memory   |   ← RAM (훨씬 느림)
        +------------------+


🔹 L1 캐시 (Level 1 Cache)

  • CPU 코어당 하나씩 존재
  • 보통 **명령어 캐시(L1i)**와 **데이터 캐시(L1d)**로 나뉨
  • 크기: 보통 32KB ~ 128KB
  • 속도: CPU 속도와 거의 동일
  • 장점: 접근 속도 매우 빠름
  • 단점: 용량이 작아 저장 가능한 데이터가 제한적

🔹 L2 캐시 (Level 2 Cache)

  • 예전에는 CPU 외부에 있었지만, 요즘은 CPU 코어 내부에 내장
  • L1보다 크고 느리지만, 여전히 빠른 속도 유지
  • 크기: 보통 256KB ~ 1MB 이상
  • 일부 CPU는 코어별로 L2 캐시, 일부는 공유 방식

🔹 L3 캐시 (Level 3 Cache)

  • CPU의 여러 코어가 공유하는 캐시
  • L1, L2에서 데이터를 찾지 못할 때 L3에서 탐색
  • 크기: 4MB ~ 64MB 이상 (고급 서버 CPU에서는 수백 MB까지도 가능)
  • 위치: CPU 다이에 내장 (최근 CPU 기준)
  • 속도: L1, L2보다 느리지만, RAM보다 훨씬 빠름
728x90