캐시 메모리

서재·2023년 6월 5일
0

컴퓨터구조론

목록 보기
10/16
post-thumbnail

캐시 메모리

CPU와 주기억장치 간의 액세스 시간 차이를 완화


🎯 캐시 적중

데이터 읽기 시, 해당 데이터가 적재되어있는지 (캐시에 있는지) 검사
캐시 적중 (적재되어 있다면) : 캐시로부터 즉시 인출
캐시 미스 (캐시에 없다면) : 주기억장치로부터 인출

🎯 캐시 적중률
캐시 적중 횟수 / 전체 액세스 횟수

❌ 미스율
1 - 캐시 적중률

⏲️ 평균 기억장치 액세스 시간
캐시 적중률 * 캐시 액세스 시간 + 미스율 * 주기억장치 액세스 시간


🧭 지역성

CPU가 주기억장치의 특정한 위치의 데이터/명령어를 집중적으로 액세스하는 현상

시간적 지역성
최근 액세스했던 데이터가 또 다시 액세스될 가능성이 높음

공간적 지역성
서로 인접하여 저장된 데이터들이 연속적으로 액세스될 확률이 높음

순차적 지역성 (공간적 지역성에 포함됨)
분기가 발생하지 않으면, 명령어들은 저장된 순서대로 인출됨


🚩 캐시 설계의 목표

  • 캐시 적중률의 극대화
  • 캐시 액세스 시간의 최소화
  • 캐시 실패에 따른 지연시간의 최소화
  • 주기억장치와 캐시간의 데이터 일관성유지 및 그에 따른 오버헤드의 최소화

✍️ 인출 방식

📄 요구 인출

필요한 (CPU가 요구한) 데이터만 인출

📒 선인출

앞으로 필요할 데이터를 예측하여 미리 인출
지역성에 의해 캐시 적중률을 높일 수 있다

📌블록 : 함께 인출되는 정보들의 그룹

📒 캐시 라인 (슬롯)

주기억장치캐시 라인 수만큼의 블록으로 나눈다.

선인출 시, 블록 전체를 하나의 캐시 라인에 적재

태그 : 현재 캐시 라인에 어느 블록이 적재되어 있는지 가리키는 비트들


🗺️ 사상 방식

직접 사상

주기억장치의 블록이 지정된 어느 한 라인에만 적재

각 블록이 적재될 수 있는 라인이 정해져 있음

라인 필드를 통해 캐시 라인을 선택
태그 필드 (블록) 일치한다면 적중

단어 필드 : 각 블록 내 단어들 구분

🌟 장점 : 구현이 간단하고 저렴
💀 단점 : 적재가 한정됨

완전-연관 사상

주기억장치의 블록이 모든 라인에 적재 허용

캐시 라인의 태그 자체가 주기억장치의 블록를 가리킴

🌟 장점 : 라인의 선택이 자유로워 지역성이 높다면 적중률이 높아진다
💀 단점 : 구현이 복잡하고 비용이 높다

세트-연관 사상

직접 사상 방식완전-연관 사상 방식의 장점만을 취한 방식

세트 : 여러 개의 라인으로 구성
캐시을 여러 개의 세트로 분할

세트 당 n개의 (일반적으로 2-way) 라인을 적재

캐시 내의 라인 수 = 세트 내의 라인 수 * 세트 수

직접 사상 : 캐시 내의 라인수=세트 수 , 세트 내의 라인 수=1

완전-연관 사상 : 캐시 내의 라인수=세트 내의 라인 수 , 세트 수=1


🔃 교체 알고리즘

LRU

Least Recently Used
최소 최근 사용

FIFO

First In First Out
선입선출

LFU

Least Frequently Used
최소 사용 빈도


✍️ 쓰기 정책

캐시에 적재된 데이터가 수정되었을 때,
그 내용을 주기억장치에 갱신하는 시기와 방법을 결정하는 것.

write-through

캐시는 주기억장치의 복사본
주기억장치의 내용이 갱신된다면, 캐시의 내용 또한 갱신
이는 오랜 시간을 소모함

write-back

주기억장치를 항상 갱신하지 않음
캐시만 갱신하며, 해당 캐시 라인 교체 시, 주기억장치를 갱신
라인에 수정 상태를 표시하여 수정되었을 때만 갱신


📚 다중 캐시

온-칩 캐시

CPU 칩 내부에 포함된 캐시
CPU 코어 하나 당 하나의 캐시메모리(L1)를 내장

계층적 캐시

계층적으로 설치한 구조 (L1, L2, L3)

일반적으로 L1과 L2는 서로 다른 사상/교체/쓰기 를 사용

분리 캐시

온-칩 캐시에 명령어 캐시 (L1-I)데이터 캐시 (L2-D)를 분리하여 저장하는 구조


김종현 저, 『컴퓨터구조론』, 생능출판, 2019.

profile
입니다.

0개의 댓글