캐시

Lys·2023년 11월 13일
0

운영체제

목록 보기
21/23

캐시

  • 속도가 빠른 장치와 느린 장치 간의 속도차에 따른 병목 현상을 줄이기 위한 범용 메모리다.
  • 저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공한다.
  • 프로세서가 매번 메인 메모리에 접근해 데이터를 받아오면 시간이 오래 걸리기 때문에 캐시에 자주 사용하는 데이터를 담아 두고 해당 데이터가 필요할 때 프로세서가 메인 메모리 대신 캐시에 접근하도록 하여 처리속도를 높인다.

캐시의 종류

CPU 칩에는 여러 개의 캐시가 들어가며 각각의 캐시는 각자의 목적과 역할을 가지고 있다.

  • L1 Cache : 프로세서와 가장 가까운 캐시, 속도를 위해 ID와 D로 나뉜다
    • Instruction Cache(I$) : 메모리의 TEXT영역 데이터를 다루는 캐시
    • Data Cache(D$) : TEXT영역을 제외한 모든 데이터를 다루는 캐시
  • L2 Cache : 용량이 큰 캐시, L1캐시 처럼 나누지 않는다.
  • L3 Cache : 멀티 코어 시스템에서 여러 코어가 공유하는 캐시


    CPU에서는 L1 → L2 → L3 순으로 데이터를 탐색하게 된다.

캐시의 성능

캐시의 성능을 측정할 때는 Hit latency와 Miss latency가 중요한 요인으로 꼽힌다.

  • HIT (존재) : 요청한 데이터가 캐시에 존재하는 경우이다.
    히트가 발생해 캐싱된 데이터를 가져오는 시간이 hit latency이다.
  • Miss (비존재) : 요청한 데이터가 캐시에 존재하지 않는 경우이다.
    미스가 발생해 상위 캐시나 메인메모리에서 데이터를 가져오는 시간이
    miss latency이다.


    평균 접근시간은 Hit latency + (Miss rate * Miss latency)가 된다.
    캐시를 잘 활용하여 miss rate를 줄인다면 비용을 많이 줄일 수 있다.
    따라서 CPU가 어떤 데이터를 원할지 어느정도 예측하여 캐시에 쓸모 있는 정보가 들어있도록 해야한다.

지역성 원리(Locality)

  • 적중률(Hit rate)을 높이기 위해서 지역성의 원리를 사용한다.
  • 지역성(Locality)이란 기억 장치 내의 정보를 균일하게 Access하는 것이 아닌 어느 한 순간에 특정 부분을 집중적으로 참조하는 성질이 있다는 이론이다.
    • 시간 지역성 (Temporal Locality): 최근에 참조된 주소의 내용은 곧 다음에 다시 참조되는 특성이다.
      for, while 같은 반복문을 예로 들 수 있다. 특정 부분을 반복해서 접근하기 때문에 다시 참조할 확률이 높다.
    • 공간 지역성 (Spatial Locality): 참조된 주소와 인접한 주소의 내용이 다시 참조되는 특성이다.
      배열을 예로 들 수 있다. A[0], A[1]과 같은 연속 접근의 경우 그다음 원소들에 접근할 가능성이 높다. 

캐싱라인(Caching Line)

  • 캐시가 아무리 CPU에 가깝게 위치하더라도, 데이터가 캐시 내의 어느 곳에 저장되어 있는지 찾기가 어려워 모든 데이터를 순회해야 한다면 캐시의 장점을 잃기 때문에 쉽게 찾을 수 있는 구조가 필요하다.
  • 따라서, 캐시에 데이터를 저장할 때 특정 자료구조를 사용하여 묶음으로 저장하는데, 이를 캐싱 라인(Caching Line)이라고 한다.
  • 캐시에 저장하는 데이터에는 데이터의 주소 등을 기록해둔 태그를 달아둘 필요가 있다. 이러한 태그들의 묶음을 의미한다. 

  • 매핑 방법
    • Direct Mapping
      직접 매핑으로, 메인 메모리를 일정한 크기의 블록으로 나누어 각각의 블록을 캐시의 정해진 위치에 매핑하는 방식이다.
      가장 간단하고 구현도 쉽다.
      하지만 적중률(Hit rate)이 낮아질 수 있다. 또 동일한 캐시 메모리에 할당된 여러 데이터를 사용할 때 충돌이 발생하게 되는 단점이 있다.

    • Full Associative Mapping
      캐시 메모리의 빈 공간에 마음대로 주소를 저장하는 방식이다.
      저장하는 것은 매우 간단하지만, 원하는 데이터가 있는지 찾기 위해서는 모든 태그를 병렬적으로 검사해야 하기 때문에 복잡하고 비용이 높다는 단점이 있다. 

    • Set Associative Mapping
      주로 사용하는 방식으로 Direct Mapping과 Full Associative Mapping의 장점을 결합한 방식이다. 
      빈 공간에 마음대로 주소를 저장하되, 미리 정해둔 특정 행에만 저장하는 방식이다. Direct에 비해 검색 속도는 느리지만 저장이 빠르고 Full에 비해 저장이 느리지만 검색은 빠르다. 


🙇‍ 참고 사이트 🙇‍

https://rebro.kr/180
https://velog.io/@klloo/os-memory-cache
https://alreadyusedadress.tistory.com/266

0개의 댓글

관련 채용 정보