컴퓨터 구조 - 캐시 메모리

유현민·2022년 2월 15일
0

CS

목록 보기
3/17

캐시 메모리

  • 속도가 빠른 장치와 느린 장치에서 속도 차에 의한 병목 현상을 줄이기 위한 메모리
  • CPU가 주 기억 장치에서 저장된 데이터를 읽어올 때, 자주 사용하는 데이터를 캐시 메모리에 저장한 뒤, 다음에 이용할 때 주 기억 장치가 아닌 캐시 메모리에서 가져오면서 속도가 빨라짐
    속도가 빠르지만 비용도 많이 든다
    L1 : CPU 내부
    L2 : CPU - RAM
    L3 : 메인보드

캐시 메모리 작동 원리

시간 지역성

  • for | while 같은 반복문에 사용하는 조건 변수처럼 한번 참조된 데이터는 잠시 후 또 참조 될 가능성이 높다

공간 지역성

A[0] A[1] 과 같은 연속 접근 시 참조된 데이터 근처에 있는 데이터가 잠시 후 또 사용 될 가능성이 높음

캐시에 데이터를 저장할 때는, 이러한 참조 지역성을 최대한 활용하기 위해 해당 데이터뿐만 아니라, 옆 주소의 데이터도 가져온다.

CPU가 요청한 데이터가 캐시에 있으면?
Cache hit
없으면?
Cache miss

캐시 미스 3가지

  1. Cold miss
  • 해당 메모리 주소를 처음 불러서 나는 미스
  1. Conflict miss
  • A와 B가 같은 캐시 메모리 주소에 할당되어 있어서 나는 미스
  1. Capacity miss
  • 캐시 메모리의 공간이 부족해서 나는 미스

구조 및 작동 방식

  1. Direct Mapped Cache
    가장 기본적인 구조, DRAM의 여러 주소가 캐시 메모리의 한 주소에 대응
    ex) 00000, 01000, 10000, 11000 -> 000 매핑
    인덱스 필드 + 태그 필드 + 데이터 필드

  2. Fully Associative Cache
    비어있는 캐시 메모리가 있으면, 마음대로 주소를 저장
    저장은 쉽지만 찾을 때가 문제

  3. Set Associative cache
    Direct + Fully -> 특정 행을 지정하고, 그 행 안의 어떤 열이 든 비어있을 때 저장
    Direct에 비해 검색속도 down 저장속도 up
    Fully에 비해 검색속도 up 저장속도 down
    Direct와 Fully의 중간

profile
smilegate megaport infra

0개의 댓글