Cache

이하연·2021년 9월 7일
0

[OS] 운영체제

목록 보기
12/12
post-custom-banner

캐시 등장 배경

기술의 발전으로 프로세서 속도는 빠르게 증가해온 반면에, 메모리 속도는 이를 따라가지 못했다. 이렇게 되면 프로세서가 아무리 빨라도 메모리의 처리 속도가 느리기 때문에 전체 시스템 속도는 느려지게 된다. 이를 개선하기 위해 등장한 장치가 캐시 이다.

캐시 Cache

정의

프로세서와 메인 메모리간의 처리 속도 차이를 보완하기 위한 고속 버퍼

위치

Main memory와 CPU 사이에 존재

역할

  1. 프로세서가 매번 메모리에 접근하여 데이터를 받아오면 시간이 오래 걸림
  2. 캐시에 자주 사용하는 데이터를 담아둠
  3. 해당 데이터가 필요할 때 프로세서가 캐시에 접근하도록 해 처리 속도를 높임
  4. 따라서 데이터를 읽기 위해 Main memory에 접근하지 않아도 됨 → 시간 단축

특징

  • CPU 칩 안에 들어가는 작고 빠르고 비싼 메모리

  • 저속,낮은 대역폭 → 고속,높은 대역폭

    : 메인 메모리에서 데이터를 블록 단위로 가져와 프로세서에 워드 단위로 전달

  • 캐시 적중 cache hit

    : CPU가 요청한 데이터가 캐시에 존재할 경우

  • 캐시 실패 cache miss

    : 캐시에 존재하지 않아 메모리에서 가져오는 경우

    : Capacity miss, Compulsory miss, Conflict miss 등이 존재

캐시 지역성

'자주 사용하는 데이터'의 판단의 척도 → 지역성의 원리

캐시에도 지역성이 존재

지역성이란 기억장치에 대해 특정 영역에만 참조가 집중적으로 이루어지는 것을 말한다.

  • 지역성 종류

    1. 시간적 지역성 발생 이유

      • 최근 접근한 데이터에 다시 접근하는 경향
      • 한번 참조된 데이터는 다시 참조될 확률이 높다.
    2. 공간적 지역성 발생 이유

      • 최근 접근한 데이터의 주변 공간에 다시 접근하는 경향

      • 참조된 데이터 주변에 있는 데이터가 다음 참조될 확률이 높다.

      • 프로그램이 명령어를 순차적으로 실행하는 경향 때문

      • 대부분의 컴파일러를 메모리에 인접한 블록에 배열로 저장,

        따라서 프로그램이 배열 원소에 순차적 접근을 시도하므로, 지역적 접근 경향 발생

  • 예시

    for(int i=0;i<5;i++)
    	cout << arr[i];
    • 시간 지역성 : i라는 변수는 다시 참조된다.
    • 공간 지역성 : arr 주변 데이터가 참조된다.

캐시 종류

CPU 칩에는 여러 개의 캐시가 존재합니다. 각각의 캐시는 각자의 목적과 역할을 지님.

성능과 역할에 따라 L1,L2,L3 캐시로 나눌 수 있다.

용량은 Register < L1 < L2 < L3 < Main memory

  • L1 cache

    프로세서와 가장 가까운 캐시

    속도에 따라 Instruction cache, Data cache로 나뉜다

    Instruction cache - 메모리의 text 영역 데이터를 다루는 캐시

    Data cache - text 영역을 제외한 모든 영역을 다루는 캐시

  • L2 cache

    L1 캐시보다 용량이 큰 캐시

  • L3 cache

    멀티코어 시스템에서 여러 코어가 공유하는 캐시

post-custom-banner

0개의 댓글