저장 장치 계층 구조 (Memory Hierarchy)
- CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다.
- 속도가 빠른 저장 장치는 용량이 적고, 비싸다
- 낮은 가격대의 대용량 저장 장치를 원한다면 느린 속도를 감수해야하고 빠른 속도의 저장 장치를 원한다면 작은 용량과 비싼 가격을 감수해야한다.
레지스터 vs 메모리 vs USB 메모리
- Register
- 일반적으로 RAM 보다 용량은 작지만 접근 시간이 빠르고 비싸다.
- RAM
- USB 메모리보다 접근 시간이 훨씬 빠르지만 용량이 상대적으로 작다.
캐시 메모리
- CPU와 메모리 사이에 위치한, 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치
- CPU의 연산 속도와 메모리 접근 속도의 차이를 조금이나마 줄이기 위해 탄생됨
- CPU가 사용할 일부 데이터를 미리 캐시 메모리로 가지고와서 사용
캐시 메모리의 계층
- CPU 내부에도 캐시 메모리가 존재한다 L1 cache, L2 cache
- 하지만 이들보다 Register가 더 빠르다.
계층적 캐시 메모리
- 캐시 메모리는 계층 구조를 이루고 있다.
- 일반적으로 L1, L2 캐시는 코어 내부에 존재하고 L3 캐시는 코어 외부에 위치해있다.
- L1 캐시는 Register보다 용량은 크지만 L2 보다 작다. 하지만 L2보다는 속도가 빠르다.
- 멀티코어 프로세서의 캐시 메모리 경우 코어마다 L1, L2 캐시를 따로 두는 형태가 일반적이다.
- 따라서, 코어 별로 존재하는 L1, L2 캐시는 서로 다른 값을 가지고 있을수도 있다.
- 데이터 일관성이 깨질 수 있다.
- 따라서, Sync를 맞춰주는 것이 굉장히 중요
참조 지역성의 원리
- 캐시 메모리는 메모리보다 용량이 작기 때문에 메모리의 모든 내용을 저장할 수 없다.
- 따라서, CPU가 자주 사용할 법한 내용을 예측하여 저장한다.
- 원하던 값이 캐시 메모리에 존재하는 경우를 **캐시 히트(cache hit)**라고 표현한다.
- 원하던 값이 캐시 메모리에 존재하지 않는 경우를 **캐시 미스(cache miss)**라고 표현한다.
- 캐시 적중률
- 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)
- 요즘 CPU Hit rate는 최소 80~90 정도 된다.
- 캐시 적중률을 높이기 위해서 참조 지역성의 원리를 사용한다.
- 참조 지역성의 원리?
- CPU가 메모리에 접근할 때의 주된 경향을 바탕으로 만들어진 원리
- 시간 지역성 : CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.
- 공간 지역성 : CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다.