설명 순서는 다음과 같습니다.

1. Cache가 등장한 배경
2. Cache란
3. Cache에 담는 데이터 선택하기

1. Cache가 등장한 배경

   - 기술의 발전으로 CPU 속도는 빠르게 증가하는 반면, 메모리는 그렇지 않음

   - CPU가 아무리 빨라도 메모리 처리 속도가 느리다면, 전체 속도는 느려지게 되어있음

   - 이를 개선하기 위한 장치가 Cache임


2. Cache란

   - Cache란 빠른 CPU와 느린 메인 메모리 사이 병목현상을 줄이기 위한 빠르고 작은 메모리

   - 메인 메모리를 빠른 캐시처럼 만들면되지 않을까? 용량이 크고 빠른 메모리를 사용하기에는 비용이 너무 많이 듬(가성비 X)

   - 결국 메모리의 '특정 데이터'만을 캐시에 올려서 빠르게 사용하도록 해야함. 어떤 부분을 캐시에 올려야할까

   - 우리는 메인 메모리에 접근하는 시간을 줄여야함. 최대한 CPU가 캐시에서만 사용할 수 있도록 해야함

   - 따라서, 자주 사용하는 데이터를 캐시에 올려야함


3. Cache에 어떤 데이터를 담을까

   - 어떤 데이터가 자주 사용될까 -> 자주 사용되는 데이터는 시간적 또는 공간적으로 몰려있을 가능성이 높다는 법칙을 이용함

      ① 시간적 지역성 : 최근 사용한 데이터를 다시 사용할 확률이 높다(ex. for문의 i)

      ② 공간적 지역성 : 최근 사용한 데이터의 주변 데이터를 사용할 확률이 높다(ex. 배열)

   - 따라서, 최근 사용한 데이터와 그 주변 데이터를 캐시에 올려놓을 필요가 있음

   - 또한, 캐시에 없는 데이터를 메모리에서 찾아서 올릴 때 '가장 최근에 사용된 적이 없는 것'과 교체함

   - 이 알고리즘 또한 시간적 지역성을 이용한 사례라고 생각합니다


캐시 메모리에 대해 알아볼 수 있었습니다

'운영체제' 카테고리의 다른 글

페이지 교체 알고리즘  (0) 2023.08.10
Deadlock  (0) 2023.08.08
Context Switching  (0) 2023.08.06
프로세스와 스레드  (0) 2023.08.05
CPU 스케줄링  (0) 2023.07.31

+ Recent posts