Cache Memory(캐시 메모리) ?
Cache Memory, 즉 캐시 메모리는 메인 메모리(RAM)보다 빠른 임시 저장소로, 일반적으로 CPU 내부 또는 가까운 위치에 존재합니다. 데이터나 값을 미리 복사해 놓는 임시 장소를 가리키기도 하며 캐시는 데이터에 접근하는 시간이 오래 걸리는 경우나 자주 사용되는 데이터를 저장하여 불필요한 메모리 접근을 줄이고 처리 시간을 단축합니다.
빠른 CPU의 처리 속도와 상대적으로 느린 메인 메모리에서의 속도의 차이를 극복하는 중간 버퍼 역할을 합니다. 쉽게 표현하자면 CPU는 빠르게 일을 진행하고 있는데, 메모리에서 데이터를 가져오고 가져가는데 느려서 중간에 미리 CPU에 전달될 데이터를 들고 서 있는 형태라고 말할 수 있습니다.
Cache Memory의 특징
- CPU와 주기억장치(메모리) 사이의 속도의 차이를 완화시킴 ( 메모리 읽기 속도 개선 )
- 만일 수행시 필요로 하는 명령어나 데이터가 캐시에 있으면, 빠른 속도로 수행이 가능하고,
캐시에 존재하지 않는다면, 주기억장치(메모리)에서 새로 읽어들임
- 만일 수행시 필요로 하는 명령어나 데이터가 캐시에 있으면, 빠른 속도로 수행이 가능하고,
- Cache Memory의 교체중에 캐시에 빈 공간이 없는 상태에서 새로운 내용이 메인 메모리로부터 캐시 메모리에 복사되어야 하는 상황에서 기존에 존재하던 캐시 메모리 중 어떤것을 내릴 것인가 결정하는데에는 해당 알고리즘을 사용합니다.
- FIFO(First In First Out): 먼저 저장되어 잇던 블록이 먼저 나가는 방식
- LRU(Least Recently Used): 캐시 내에 가장 오래 있었던 블록을 교체
- LFU(Least Frequently Used) 사용되지 않은 채로 가장 오래 있었던 블록을 교체
Cache Memory의 성능
캐시 메모리가 주로 사용되는 부분은 메인 메모리에 저장된 데이터는 재사용되는 빈도 수가 많거나 계산 중에 특정 작업이 자주 반복될 때 입니다.
이때 CPU가 필요로 하는 데이터가 캐시에 존재하여 즉시 접근 가능한 비율이 캐시 성능을 결정합니다.. 이때 CPU가 필요로 하는 데이터가 있다면 Cache Hit라 하고 접근하고자 하는 데이터가 없을 경우를 Cache Miss라고 합니다. 이러한 원하는 데이터가 캐시에 있을 확률을 Hit Ratio라고 합니다.
여기서 Cache Miss가 적을 수록 캐시 메모리의 성능이 높아지는 이유는 간단하게 Cache Miss는 프로세서가 캐시에서 데이터를 찾았으나 찾이 못할 때 발생하게 됩니다. 이런 일의 빈도 수가 높을 수록 프로세서는 주 메모리에서 데이터를 검색해야 하는데, 이는 캐시 자체에서 데이터를 찾을 수 있었던 경우보다 더 오랜 시간이 걸리게 됩니다.
Cache Memory의 장점
Cache Memory는 대기 시간 개선, 처리량 증가, 전력 소비 감소, 확장성 증가 등 여러가지 이점을 제공합니다.
- 대기 시간 개선은 위에 내용처럼 반복적으로 수행해야 하는 작업과 같은 상황에서 CPU는 필요로 하는 데이터를 주기억장치까지 가서 데이터를 찾아오는것이 아닌 임시 장소에 있는 캐시에서 가져오기에 사용자가 겪는 대기 시간을 최소화 할 수 있으며 또한 이러한 대기 시간 개선은 자연스럽게 처리량 증가로 이어집니다.
- 캐시 메모리는 다른 형태의 스토리지 보다 적은 전력을 필요로 하기 때문에 배터리 전력이 제한되어 있거나 항상 사용할 수 없는 일반 애플리케이션과 같은 부분에서 장치 수명을 연장하는 데 도움이 됩니다.
- 캐시 메모리는 업그레이드나 교체 없이 시스템 요구에 따라 확장될 수 있습니다.
'Software Engineering > Software Development Principles' 카테고리의 다른 글
객체 지향 설계의 5가지 원칙 - S.O.L.I.D (0) | 2025.05.16 |
---|---|
Stack (스택) (0) | 2025.05.15 |
RAM (Random-Access Memory, 랜덤 액세스 메모리) (0) | 2025.05.13 |
FSM (Finite State Machine, 유한 상태 기계) (0) | 2025.05.12 |
GPU (Graphic Processing Unit, 그래픽 처리 장치) (0) | 2025.05.08 |