0️⃣ 캐시메모리 이전에!
메모리에 대해서 학습이 필요하다면 아래 링크에서 복습하고 오자!
RAM과 메모리의 주소 개념에 대해서 잘 안 뒤 캐시메모리에 대해서 공부하면 더 좋다.
1️⃣ 캐시 메모리란?
CPU는 연산하기 위해 메모리에 저장 되어있는 데이터에 빈번하게 접근하는데, CPU가 데이터에 접근하는 속도보다 연산하는 속도가 훨씬 더 빠르다. 때문에 CPU의 성능을 최대한으로 끌어낼 수 없어 이를 극복하기 위해 캐시 메모리가 등장한다.
캐시 메모리의 역할에 대해 더 자세히 이해하기 위해서는 우선 저장 장치의 계층 구조를 먼저 알아야 한다. 컴퓨터가 사용하는 저장 장치들은 CPU로부터 거리를 통해 계층적으로 나타낼 수 있다.
레지스터는 CPU 내부에 있기 때문에 가장 처리 속도가 빠르지만 일반적으로 용량이 작으며, 메모리는 레지스터보다는 멀지만 다른 보조기억장치에 비하면 훨씬 가까운 곳에 위치해있고 용량도 비교적 크다. 결과적으로 CPU는 데이터에 더 빠른 속도로 접근해야하므로 이를 보완해주는 것이 바로 캐시 메모리다. 캐시 메모리는 CPU와 메모리 사이에 위치하고 레지스터보다는 용량이 크고 메모리보다는 빠른 SRAM 기반의 저장 장치이다.
아래 그림과 같이 피라미드 구조로 보면 더 이해가 쉽다. 캐시 메모리는 정확히 레지스터와 메모리 사이에 위치해있다.
2️⃣ 캐시 메모리의 계층 구조
이렇듯 CPU의 메모리 접근을 돕는 캐시 메모리 또한 계층을 구성하고 있는데, 이 또한 CPU와 가까운 순서대로 구성한다.
이를 L1, L2, L3로 구분하여 부른다. L1, L2, L3 순서대로 CPU와 가깝고 속도도 빠르며 용량도 적다.
3️⃣ 참조 지역성 원리
캐시 메모리에는 메모리의 모든 데이터를 가져와 저장할 수 없기 때문에 CPU가 사용할 것 같다고 생각되는 메모리의 일부를 예측하여 저장해둔다. 이 때 예측한 데이터가 실제로 들어맞아 CPU가 활용할 경우 이를 캐시히트 라고 부르고, 반대로 CPU가 직접 메모리로부터 데이터를 가져와야하는 경우엔 캐시미스 라고 부른다. 그리고 캐시가 히트되는 비율을 캐시 적중률이라고 한다. 이 캐시 적중률을 높이기 위해서 메모리로부터 가져올 데이터를 참조 지역성의 원리에 따라 결정한다.
1. 시간 지역성의 원리
- 최근에 접근했던 메모리 공간에 다시 접근하려는 경향을 말한다.
- 변수가 저장된 메모리 공간을 언제든 다시 참조할 수 있기 때문이다. ex) 일반적으로 변수는 한 번만 사용되지 않고 여러번 사용함
2. 공간 지역성의 원리
- 최근에 접근한 메모리의 공간 근처를 접근하려는 경향을 말한다.
- 하나의 프로그램 내에서도 관련 있는 데이터들은 모여서 저장되기 때문이다. ex) 자동 저장 기능, 입력 기능, 출력 기능이 모여서 저장되고 있음
❗ 출처
- 강민철, 혼자 공부하는 컴퓨터구조 + 운영체제, 한빛미디어 (2022)
'CS' 카테고리의 다른 글
[얼레벌레 공부하는 CS] Heap과 Stack (0) | 2024.08.20 |
---|---|
메모리의 논리주소와 물리주소 (0) | 2024.06.28 |
[얼레벌레 공부하는 CS] 프로세스와 스레드 (1) | 2024.06.03 |
[얼레벌레 공부하는 CS] 운영체제 (0) | 2024.05.31 |
[얼레벌레 공부하는 CS] RAM (0) | 2024.05.28 |