[12] 캐시 메모리

hyunsooo·2023년 4월 12일
0

CPU가 메모리에 접근하는 시간은 CPU의 연산 속도보다 압도적으로 느립니다. 이렇다면 연산은 끝났지만 메모리에서 데이터를 저장하거나 인출하는 작업은 매우 느리기 때문에 성능상에 큰 손해가 될 수 있습니다.

저장 장치 계층 구조

캐시 메모리에 대해 이해하려면 저장 장치 계층 구조를 이해하고 있어야 합니다.

  1. CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느립니다.

  2. 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다.

위의 저장 장치 계층 구조의 개념을 가지고 레지스터와 메모리(RAM) USB 메모리를 비교해보겠습니다.

레지스터메모리(RAM)USB 메모리
CPU와 가장 가까움레지스터 보다 멈메모리 보다 멈
CPU와 접근 시간이 가장 빠름레지스터 보다 느림메모리 보다 느림
가격이 비쌈레지스터 보다 쌈메모리 보다 쌈

컴퓨터에서는 이 저장장치들을 장단점에 맞게 계층적으로 사용하게 됩니다.

캐시 메모리

캐시 메모리는 CPU와 메모리 사이에 위치한 저장 장치 입니다. 즉, 레지스터 보다는 용량이 크고 메모리 보다 빠른 SRAM 기반 저장 장치를 말합니다. CPU의 연산 속도와 메모리 접근 속도의 차이를 조금이나마 줄이기 위해 탄생한 메모리 입니다.

레지스터캐시 메모리메모리(RAM)USB 메모리
CPU와 가장 가까움레지스터 보다 멈캐시 메모리 보다 멈메모리 보다 멈
CPU와 접근 시간이 가장 빠름레지스터 보다 느림캐시 메모리 보다 느림메모리 보다 느림
가격이 비쌈레지스터 보다 쌈캐시 메모리 보다 쌈메모리 보다 쌈

캐시 메모리는 CPU 내부에 존재할 수도 있으며, 외부에 존재할 수도 있습니다. 이것을 계층적 캐시 메모리(L1-L2-L3 캐시)라고 부르며 일반적으로 L1과 L2 캐시는 코어 내부에, L3 캐시는 코어 외부에 위치해 있습니다. 추가적으로 L1, L2, L3 순으로 더 빠르고 큰 용량의 캐시 메모리 입니다.

멀티코어 프로세서에서의 캐시 메모리는 코어 마다 L1, L2가 존재하고 L3 캐시는 모든 코어가 공유하는 형태가 가장 일반적입니다.

여기서 조금이나마 더 빠르게 구성하기 위해 L1 캐시를 데이터만 저장하는 L1D, 명령어만 저장하는 L1I로 나누어 관리하는 분리형 캐시 방법도 존재합니다.

레지스터L1 캐시L2 캐시L3 캐시메모리(RAM)USB 메모리
CPU와 가장 가까움레지스터 보다 멈L1 캐시 보다 멈L2 캐시 보다 멈L3 캐시 보다 멈메모리 보다 멈
CPU와 접근 시간이 가장 빠름레지스터 보다 느림L1 캐시 보다 느림L2 캐시 보다 느림L3 캐시 보다 느림메모리 보다 느림
가격이 비쌈레지스터 보다 쌈L1 캐시 보다 쌈L2 캐시 보다 쌈L3 캐시 보다 쌈메모리 보다 쌈

참조 지역성의 원리

캐시 메모리는 메모리보다 용량이 작습니다. 따라서 메모리의 모든 내용을 저장할 수 없습니다. 그렇다면 캐시 메모리는 무엇을 저장해야 할까요?

  1. CPU가 자주 사용할 법한 내용을 예측하여 저장

  2. CPU가 실제로 사용했을 경우 캐시 히트라고 하고 반대의 경우 캐시 미스라고 한다.

  3. 캐시 적중률을 높이는 쪽으로 예측

참조 지역성의 원리는 CPU가 사용할 법한 데이터를 예측하는 방법입니다. 이 원리는 CPU가 메모리에 접근할 때 보이는 경향을 바탕으로 만들어졌으며 그 경향은 아래와 같습니다.

  1. CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.

  2. CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다.(공간 지역성)

profile
지식 공유

0개의 댓글