CPU는 프로그램 실행 과정에서 메모리에 저장된 데이터를 빈번하게 사용함
하지만 CPU에 메모리에 접근하는 시간은 CPU의 연산 속도 보다 느림!
-> 아무리 CPU가 빨라도 메모리에 접근하는 시간이 느리다면 CPU가 빠른 게 의미가 없음
이를 극복하기 위해 캐시 메모리가 생겨남
캐시 메모리의 탄생을 이해하기 위해서는 저장 장치 계층 구조를 이해해야함
저장 장치 계층 구조
- '빠른 저장 장치'와 '용량이 큰 저장 장치'는 양립하기 어려움
- CPU와 가까운 저장 장치는 빠르고 멀리 있는 저장 장치는 느림
- 숙도가 빠은 저장 장치는 저장 용량이 적고 가격이 비쌈
- CPU와 가까운 레지스터는 일반적으로 RAM 보다 용량이 적지만 접근 시간이 압도적으로 빠르고 가격이 비쌈
- USB보다 CPU에 더 가까운 RAM이 접근 시간이 훨씬 빠르고 같은 용량 대비 RAM이 더 비쌈
- CPU에 얼마나 가까운가를 기준으로 계층을 나눈 것이 저장 장치 계층 구조이다.
캐시 메모리
- CPU가 메모리에 접근하는 시간은 레지스터에 접근하는 시간보다 느리지만 CPU는 프로그램을 실행하기 위해 메모리에 빈번하게 접근해야 함, CPU 연산 속도가 아무리 빨라도 메모리에 접근하는 속도가 느리다면 CPU의 발전은 필요가 없음
- 캐시 메모리는 CPU와 메모리 사이에 위치하고 레지스터 보다 용량이 크고 메모리보다 빠른 SRAM 기반 저장 장치임
- CPU의 연산 속도와 메모리 접근 속도의 차이를 조금이나마 줄이기 위해 탄생함
- 메모리에서 CPU가 사용할 일부 데이터를 미리 캐시 메모리로 가지고 와서 활용함
위로 갈수록 속도가 빠르고 용량은 적으며 가격이 비쌈
캐시 메모리를 L1, L2, L3로 분리하였는데
코어와 가장 가까운 캐시 메모리를 L1 캐시 그다음을 L2 캐시 그 다음을 L3 캐시라고 부름 (Level)
L1, L2는 CPU 코어 내부에, L3는 코어 외부에 있음
메모리 용량은 L1, L2, L3 순으로 커지고 속도는 느려짐, 가격은 싸짐
캐시 메모리는 메모리(RAM) 보다 용량이 적음
그렇기에 메모리에 있는 모든 내용을 가져다 저장할 수 없음
메모리는 보조 기억 장치의 일부를 복사하여 저장하는 것처럼 캐시 메모리는 메모리의 일부를 복사하여 저장함
그렇다면 캐시 메모리에는 무엇이 저장되어 있을까?
보조 기억 장치: 전원이 꺼져도 기억할 대상
메모리: 실행 중인 대상
캐시 메모리: CPU가 사용할 만한 대상을 저장함
이때 예측된 데이터가 실제로 CPU에서 활용될 경우 캐시 히트 Cache hit라고 함
반대로 예측이 틀려 CPU가 메모리에서 직접 가져와야 하는 경우는 캐시 미스 Cache miss라고 함
캐시 적중률
- 캐시 히트의 비율
- 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)
- CPU의 캐시 적중률은 대략 85%에서 95% 임
- 그렇다면 어떻게 데이터를 예측했을까??
- 참조 지역성의 원리 Locality of reference, principle of locality
참조 지역성 원리
- CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.
- CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다.
- 라는 아이디어를 바탕으로 만들어진 원리
1. 최근에 접근했던 메모리 공간에 다시 접근하려는 경향
- 변수에 값을 저장하면 언제든 변수에 다시 접근하여 변수에 지정된 값을 사용할 수 있음
- CPU는 변수가 저장된 메모리 공간을 언제든 다시 참조할 수 있음
- 시간 지역성 Temporal locality
2. 접근한 메모리 공간 근처를 접근하려는 경향
- CPU가 실행하려는 프로그램은 보통 관련 데이터들끼리 모여있음
- 공간 지역성 Spatial locality
'컴퓨터구조' 카테고리의 다른 글
[컴퓨터구조] 보조기억장치 RAID의 정의와 종류 (0) | 2022.11.26 |
---|---|
[컴퓨터구조] 보조기억장치 (0) | 2022.11.24 |
[컴퓨터구조] 메모리의 주소 공간 (0) | 2022.11.23 |
[컴퓨터구조] 메모리 RAM의 특징과 종류 (0) | 2022.11.23 |
[컴퓨터구조] 명령어 병렬 처리 기법 (0) | 2022.11.22 |