[컴퓨터 구조] 캐시 메모리란?

Jaehwan Lee·2021년 3월 18일
0
post-thumbnail

캐시 메모리란?

캐시 메모리에 대해 알아보자. 캐시의 의미를 검색해보면 Wikipedia에서는 이를 다음과 같이 정의한다.

‘캐시(cache, 문화어: 캐쉬, 고속완충기, 고속완충기억기)는 컴퓨터 과학에서 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 캐시는 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우에 사용한다.’

이미지 출처: https://ko.wikipedia.org/wiki/%EC%BA%90%EC%8B%9C

쉽게 말해, 캐시는 다른 말로는 고속 기억 장치(메모리)라고 불리며, 시간을 절약하기 위해 데이터를 임시로 저장한다. 컴퓨터가 발전함에 따라 CPU의 속도가 점점 빨라졌다. 하지만 메모리에는 한계가 있다. 따라서 캐시가 등장하였고 캐시는 속도를 높이고 고속의 CPU와 동기화하기 위해 없어서는 안 되는 존재이다. 기억장치 계층(Memory Hierarchy)를 보면 메인 메모리나 디스크보단 비싸지만 CPU 레지스터보다는 훨씬 저렴하다는 것을 알 수 있다.


캐시 메모리의 작동 원리

구체적으로 어떻게 작동할까? 컴퓨터는 기본적으로 CPU, (메인)메모리, Disk로 구성되어있다. CPU는 어떠한 연산을 처리하기 위해 Disk에 있는 데이터를 메모리로 가져와 명령어와 함께 연산을 수행한다. Disk에 있는 정보를 메모리로 가져오기 위해서는 물론 메모리도 고가이고 속도가 빠르지만 여전히 어느 정도의 시간이 소요된다.

이 방법은 최선이 아니다. 캐시 메모리를 사용하면 이를 더 빠르게 처리할 수 있다. 캐시 메모리를 CPU에 가깝게 배치하여, 또는 아예 CPU 안에 탑재하여 연산을 더 고속화할 수 있다. 즉, 미리 자주 사용하는 데이터를 메모리 또는 디스크로부터 가져와서 CPU 안에 있는 캐시 메모리에 저장해놓고 CPU에서 바로 사용함으로써 더 효율적으로 연산을 처리할 수 있는 것이다.

이미지 출처: https://www.geeksforgeeks.org/cache-memory-in-computer-organization/


웹 브라우저 캐시 파일

이해를 돕기 위해 다른 예시를 들어보자. 평소에 우리는 자주 웹 브라우저(ex. 크롬)을 사용하여 웹 서버로부터 웹 페이지 정보를 불러온다.

이미지 출처: https://opentutorials.org/course/3084/18890

그런데 웹 페이지를 처음 접속할 때보다 다음에 접속할 때 더 빠르게 접속되는 것을 겪어본 적이 있을 것이다. 또는 다른 다른 페이지를 잘못 눌러서 뒤로 가기를 했을 때 웹 페이지의 스크롤 위치가 원래 페이지의 봤던 곳에 위치하는 경우가 있다.

왜 그런 것일까? 웹 브라우저는 URL을 통해 웹 서버의 html이나 이미지 정보 등을 받아와서 띄운다. 그런데 이때 브라우저는 브라우저 내의 어떤 특정 공간 또는 디렉토리에 정보를 저장해 놓는다. 이를 웹 브라우저 캐시 파일이라고 한다. 덕분에 또 다시 같은 웹 페이지를 접속했을 때 또는 불러왔을 때 더 빠르게 페이지를 접속할 수 있다. 데이터의 통신을 효율성을 높이기 위해 이와 같이 작동하는 것이다. 이것을 ‘캐시되어 있다’라고 표현하기도 한다. 이를 메모리라고 할 수는 없겠지만, 목적이 캐시 메모리와 비슷하다. 만약 웹 페이지의 정보가 바뀐다면, 예를 들어 특정 이미지가 바뀐다면, 이 때는 원래의 캐시 정보를 지우고 다시 서버에게 정보를 요청하여 새로운 정보를 할당한다.

결국 캐시라는 개념 자체는 유사하다. 이 작동 원리를 통해 캐시를 좀 더 쉽게 이해할 수 있을 것이다. 참고로 CDN(Content Delivery Network)이라는 것도 비슷한 목적을 위해 사용된다.


참고 자료

  1. https://cesl.tistory.com/entry/Cache-%EC%A0%95%EB%A6%AC

  2. https://ko.wikipedia.org/wiki/%EC%BA%90%EC%8B%9C

  3. https://www.geeksforgeeks.org/cache-memory-in-computer-organization/

profile
느리더라도 꾸준히 멈춤 없이

0개의 댓글