컴퓨터구조 (Computer Architecture)
3. 캐시 메모리
- 속도가 빠른 장치와 느린 장치 사이 병목 현상을 줄이기 위한 메모리
ex) CPU-메인메모리 사이 병목현상 (CPU 클럭 속도 상승으로 인해 둘 간의 속도 차이 커짐)
ex) 웹브라우저에서 캐시 파일은 HDD-웹페이지 사이 병목현상 완화
- CPU가 메인메모리에 저장된 데이터 읽어올 때 자주 사용되는 데이터를 캐시 메모리에 저장하여 사용하면 속도 향상됨
- 속도는 빠르지만 용량 작고 비쌈
- 일반적으로 캐시 메모리는 2~3개 사용 (L1, L2, L3 캐시라고 부르며 왼쪽일수록 용량이 작고 빠르다. 이전 캐시에서 못 찾으면 다음 캐시에 접근하는 방식)
- 캐시메모리는 CPU 내부(L1), CPU-RAM 사이(L2), 메인보드(L3), 주기억장치-보조기억장치 사이(디스크 캐시) 등에 위치함
- 메모리 계층 구조에서 가장 빠른 소자
※ 메모리 계층 구조(Memory hierarchy)
: 필요에 따라 메모리를 여러가지 종류로 나누어 두는 것을 의미, 여기서 필요는 대부분 CPU가 메모리에 빠르게 접근하기 위함
※ 듀얼 코어 프로세서에서 각 코어는 독립된 L1 캐시를 가지고 L2 캐시를 공유함
(1) 캐시 메모리의 작동 원리 - 데이터 지역성 (Locality)
- 시간 지역성 (Temporal Locality) : 한 번 참조된 데이터는 다시 호출될 가능성이 높음 (ex. 반복문의 조건 변수)
- 공간 지역성 (Spatial Locality) : 참조된 데이터의 근처 데이터는 잠시 후 사용될 가능성이 높음 (ex. 배열)
=> 따라서 데이터를 호출할 때 해당 데이터(시간 지역성)와 그 주변 데이터도(공간 지역성) 미리 같이 가져온다.
※ 캐시 히트 : CPU가 요청한 데이터가 캐시에 있는 경우 / 캐시 미스 : CPU에 없어서 메모리에서 가져와야 되는 경우
(2) 캐시 미스의 유형
- Cold Miss : 해당 메모리 주소를 처음 호출해서 발생하는 미스
- Conflict Miss : 캐시 메모리에 저장되어야 하는 A와 B가 같은 캐시 메모리 주소에 할당될 때 발생하는 미스 (direct mapped cache에서 주로 발생)
- Capacity Miss : 캐시의 용량이 부족해서 발생하는 미스
(3) 구조 및 작동 방법
- Direct Mapped Cache
- DRAM의 여러 주소가 캐시 메모리의 한 주소에 할당되는 방식
- 캐시 메모리는 <인덱스 필드 + 태그 필드 + 데이터 필드>로 구성
- 간단하고 빠르지만 Conflict Miss 발생
-
'CS 공부' 카테고리의 다른 글
[Infra] Scale up & Scale out (0) | 2022.02.23 |
---|---|
MSA (MicroService Architecture) vs Monolithic Architecture (0) | 2022.02.23 |
[OOP] 객체지향프로그래밍의 특성 (0) | 2022.01.31 |
2021-09-22 실시간 네트워킹 (HTTP vs Websocket) (0) | 2021.09.23 |
2021-09-07 CS 공부 1일차 (0) | 2021.09.07 |