[CS BASIC] 캐시는 왜 필요할까? – 저장장치 속 빠른 길 찾기

맹쥐·2025년 3월 25일

정글-개발일지

목록 보기
3/24
post-thumbnail

💾 캐시

우리가 hello 프로그램을 실행한다고 가정해보자.

이 프로그램이 실행되기까지는 여러 단계를 거친다.

  • 하드디스크 → 메인 메모리 → 디스플레이(화면) 출력

이처럼 프로그램이 실행되기 전까지 여러 저장장치 간의 데이터 복사가 일어나며, 이 과정이 바로 실행 속도를 늦추는 오버헤드(지연 요인)가 된다.

❓ 그렇다면 질문!

🧐 이 복사 과정을 어떻게 하면 더 빠르게 만들 수 있을까?

이 문제를 해결하기 위해 고안된 것이 바로 캐시(Cache) 메모리이다.

  • 캐시는 작고 빠른 저장 공간으로, 메인 메모리와 CPU 사이에 위치한다.
  • CPU가 곧 사용할 가능성이 높은 데이터를 미리 캐시에 저장해두고 빠르게 꺼내쓰게 함으로써, 메모리 접근 속도를 획기적으로 개선한다.

→ 이처럼 자주 사용하는 데이터가 반복해서 사용되는 경향을 지역성(Locality)이라고 한다.
마치자주 쓰는 물건을 창고(메인메모리)가 아닌 책상(캐시) 위에 두는 것과 같은 이치다.


대표적인 캐시 종류로는 다음과 같은 것들이 있다:

  • L1 캐시: CPU와 가장 가까운, 가장 빠른 캐시
  • L2 캐시: L1보다 살짝 느리지만 여전히 빠른 캐시
    (캐시는 보통 SRAM이라는 빠른 반도체로 구현됨)

💡 쉽게 말해, 캐시는 메인 메모리(DRAM)CPU의 레지스터 사이에서 데이터를 중계해주는 고속 통로 역할을 한다!


☑️ 저장장치들은 계층구조를 이룬다.

컴퓨터 시스템의 모든 저장장치는 사실 계층 구조(메모리 계층)를 이루고 있다.

아래에서 위로 올라갈수록

  • 저장장치는 더 빠르고
  • 더 작고
  • 단가가 비싸지는 구조
profile
이유민

0개의 댓글