해나아부지 개발일지

Cashe란? 본문

Developers/Coding Question

Cashe란?

__APPA 2020. 8. 7. 23:42

컴퓨터 과학에서 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 캐시는 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우에 사용한다. 캐시에 데이터를 미리 복사해 놓으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근할 수 있다.

 

캐시의 종류

CPU 캐시

디스크 캐시(디스크 버퍼)

 

원리

데이터의 지역성을 이용

시간지역성 : 반복문의 조건 변수는 다시 사용될 가능성이 높다

공간지역성 : 배열의 경우 순차적으로 접근할 경우가 높기 때문에 참조된 데이터 근처 데이터를 참조할 확률이 높다

 

DRAM과 Register 사이에서 데이터의 존재여부를 판단

 

캐시히트 캐시미스

 

캐시미스의 종류 3가지(compulsory, conflict, capacity)

가장 빈번한 conflict

 

가장 기본적인 캐시 구조

  • Direct Mapped Cache
  • Fully Associative Cache
  • Set Associative Cache

Direct Mapped Cache

DRAM의 여러개 주소가 캐시메모리의 한 주소에 대응되는 다대일(n:1)방식

 

Fully Associative Cache

저장 시 비어있는 공간에 저장하여 시간복잡도가 낮고 검색 시 모든 메모리를 순회해야하기 때문에 시간복잡도가 높음

 

Set Associative Casche

DMCt와 FAC의 Mix version (맥북)

DMC에 비해 검색은 오래걸리지만 저장이 빠르며 FAC에 비해 저장이 느리지만 검색이 빠른 중간형.

 

 

'Developers > Coding Question' 카테고리의 다른 글

UTF-8  (0) 2020.10.08
비대칭 암호화란  (0) 2020.09.03
Virtual Memory란?  (0) 2020.08.06
동적 계획법(Dynamic Programming)  (0) 2020.04.29
PNG 와 JPEG 차이점은?  (0) 2020.04.17
Comments