1.5 캐시가 중요하다

2024.11.21 - [컴퓨터과학/컴퓨터구조: CSAPP] - 1.4 프로세서는 메모리에 저장 된 인스트럭션을 읽고 해석한다.

 

1.4 프로세서는 메모리에 저장 된 인스트럭션을 읽고 해석한다.

이전 글2024.11.21 - [컴퓨터과학/컴퓨터구조: CSAPP] - 1.3 컴파일 시스템이 어떻게 동작하는 이해하는 것은 중요하다. 1.3 컴파일 시스템이 어떻게 동작하는 이해하는 것은 중요하다.2024.11.21 - [컴퓨

gyht.tistory.com

 


캐시란

캐시란 지역성을 활용하여 데이터 이동시간을 줄이기 위해 만든 장치다.

데이터 이동은 시간이 든다

프로그램을 실행하기 위해서는 하드디스크에 있는 프로그램을 찾아 메모리에 올린 후 프로세서가 메모리로부터 명령어를 읽어와야한다. 따라서 데이터는 하드디스크에서 메모리로, 메모리에서 프로세서로 이동하게 된다. 문제는 데이터가 이동하는 데 시간이 든다. 따라서 매번 하드디스크에서 데이터를 찾아오는 것보다 미리 사용할 데이터를 메모리와 같이 가깝고 데이터를 조회가 빠른 곳에 저장하면 실행 시간이 줄어 프로그램의 성능이 향상된다.

캐시는 이동시간을 줄인다

그러나 메모리는 프로세서의 속도를 따라가지 못한다. 메모리가 병목이 되어 프로그램의 성능이 일정 수준 이상 향상하지 못한다. 이를 해결하기 위해 캐시가 도입이 되었다. 캐시는 데이터 지역성을 활용하여 메인 메모리의 데이터를 불러와 프로세서가 메모리보다 캐시를 먼저 찾게하여 시스템 성능을 향상시킨다.

동작원리: 데이터 지역성

지역성이란 프로그램이 데이터를 참조할 때 공간적·시간적 특성에 따라 가까운 데이터를 참조하는 경향이다. 즉, 프로그램은 자신 참조한 데이터와 가까운 데이터들을 참조한다는 의미이다. 지역성은 시간적 지역성, 공간적 지역성이 있다.

  • 시간적 지역성: 한번 참조한 데이터는 이후에 다시 참조하는 경향
  • 공간적 지역성: 한번 참조한 데이터의 메모리상 주변 데이터를 다시 참조하는 경향

캐시 메모리는 지역성의 원리를 활용하여 설계되었다. 캐시 메모리는 최근에 사용된 데이터나 곧 사용될 가능성이 높은 데이터를 저장함으로써 메모리 접근 시간을 줄인다.

정리

  • 캐시는 데이터의 지역성을 활용하여 프로그램의 성능을 높이는 장치다.
  • 지역성에는 시간적 지역성과 공간적 지역성이 있다.
  • 시간적 지역성이란 프로그램이 한번 참조한 데이터는 이후에 다시 참조하는 경향이다.
  • 공간적 지역성이란 프로그램은 한번 참조한 데이터의 주변 데이터를 다시 참조하는 경향이다.