루리코딩 세상

캐시 메모리 (Cache memory) 본문

이론

캐시 메모리 (Cache memory)

루리딩 2025. 5. 14. 09:39

CPU가 메모리에 접근하는 시간은 CPU의 연산 속도보다 느리다. CPU가 연산을 빨리 한다해도 메모리에 접근하는 시간이 느리면

CPU의 빠른 연산 속도를 100%활용하기 어렵다. 이를 극복하기 위해 도입된 개념이 '캐시 메모리'이다.

 

저장 장치 계층 구조

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

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

 

<CPU에 얼마나 가까운가?>

레지스터 - 메모리 - 보조기억장치

 

CPU는 프로그램을 실행하는 과정에서 메모리에 빈번하게 접근해야한다. CPU 연산 속도가 아무리 빨라도,

메모리에 접근하는 속도가 따라가지 못한다면, 의미가 없기에 중간에서 저장하는 장치가 캐시 메모리인데,

레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치이다.

 

레지스터 - 캐시 메모리 - 메모리 - 보조기억장치

 

컴퓨터 내부에는 여러 개의 캐시 메모리가 있다.

L1 : CPU 코어와 가장 가까운 캐시 메모리 

L2 : L1 다음으로 가까운 캐시 메모리

L3 : L2 다음으로 가까운 캐시 메모리

 

보편적으로 L1, L2 캐시는 코어 내부에, L3는 외부에 위치해 있다

 

레지스터 - L1 - L2 - L3 - 주기억장치 - 보조기억장치

 

 


참조 지역성 원리(locality of reference, principle of locality )


캐시 메모리는 메모리보다 용량이 적다. 적은 용량으로 전원이 꺼져도 저장이 가능한 보조기억장치를 대응하기 위해서, 메모리 일부를 복사하고 저장하는데, 이때 CPU가 사용할 것으로 예상되는 객체를 저장한다. 이때 저장한 데이터가 맞아 들어 캐시 메모리 내에 있는 데이터가 CPU에서 사용될 경우 '캐시 히트(Cache hit)' 라고 한다.

반대로 가져와 저장한 데이터가 예측이 틀려 보조기억장치에서 CPU가 직접 가져와야하는 경우를 '캐시 미스(Cache miss)' 라고하는데, 이러한 현상이 자주 일어나면 컴퓨터의 성능이 저하된다.

캐시 적중률(Cache hit ratio) = 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)

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

 

변수에 값을 저장하고 나면 언제든 변수에 다시 접근하여 변수에 저장된 값을 사용할 수 있다.

'CPU는 변수가 저장된 메모리 공간을 언제든 다시 참조할 수 있다.'를 의미함.

변수에 저장된 값은 일반적으로 한 번만 사용되지 않고 프로그램이 실행되는 동안 여러 번 사용된다.

CPU는 최근에 접근했던 메모리 공간을 여러번 다시 접근 할 수 있다.

 

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

 

공간 지역성(Spatial locality)

1. 접근한 메모리 공간 근처를 접근하려는 경향

 

메모리 //[ 자동 저장 기능 ][ 입력 기능 ][ 출력 기능 ] // [ ] [ ] [ ] [ ] [ ] [ ] // [ 프 ] [ 로 ] [ 그 ] [ 램 ]

'이론' 카테고리의 다른 글

확장자 명에 따른 프로그램 유형  (0) 2025.05.14
CPU Register  (0) 2025.05.14
Virtual memory, Virtual storage  (0) 2025.05.13
Thread(스레드)  (0) 2025.05.09
객체 지향 프로그래밍(Object-Oriented Programming, OOP)의 5대 특성  (0) 2025.05.08