설명 순서는 다음과 같습니다.
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 |