[CS] Cache

수민🐣·2022년 12월 13일
0

CS

목록 보기
10/12

Cache

자주 필요한 데이터나 값의 복사본을 일시적으로 저장, 보관하기 위해 사용하는 곳

Caching

Cache를 사용하는 것

Flow

CPU는 데이터 처리를 위해 메모리와 끊임없이 데이터를 주고 받는 구조인데 메모리가 CPU의 데이터 처리 속도를 쫓아가지 못한다. 즉, CPU가 메모리를 기다려야하는 병목현상이 발생!

이 병목현상을 완화하기 위해 CPU와 메인메모리 사이에 크기는 작지만 속도가 빠른 캐시 메모리를 두고, 캐시 메모리에 향후 재사용할 가능성이 클 것으로 예상되는 데이터의 복사본을 저장해 둔 후 CPU가 요청하는 데이터를 바로바로 전달할 수 있도록 한다.

캐시 메모리의 용량을 크게 쓰거나, 아예 메인 메모리로 사용하기엔 캐시메모르는 가격이 비싸다.

메모리의 계층 구조

  1. 상층 구조로 갈수록 빠르고, 비싸고, 작은 용량을 가진다.
  2. CPU와 가까이 위치하고 있다.
  3. 캐시 메모리들이 메인 메모리(RAM)보다 빠르지만 비싸며 면적 차지 또한 크다

캐싱을 이용하여 빠르고 작은 메모리와 크고 느린 메모리의 조합을 이용하여 크고 빠른 메모리처럼 행동하도록 만든다.
재사용할 가능성이 클 것으로 예상되는 데이터의 복사본을 저장함으로써 캐싱을 한다.
전체적인 처리 속도를 향상 시킴

데이터 지역성의 원리

데이터 접근이 시간적 혹은 공간적으로 가깝게 일어나는 것을 의미

  • 한 번 참조된 변수는 잠시 후에 또 참조될 가능성이 높음
  • 어떤 데이터를 접근할 때, 그 데이터 근처에 있는 다른 데이터도 참조될 가능성이 높음

0개의 댓글