1.5 캐시가 중요하다
캐시 메모리(캐시)는 프로세서-메모리 간 격차에 대응하는 방식으로, 프로세서가 단기간에 필요로 할 가능성이 높은 정보를 임시적으로 저장하기 위해 고안.

이는 SRAM (Static Random Access Memory) 라는 하드웨어 기술을 이용해 구현했다.
프로그램이 가지고있는 지역성 (locality)를 활용하여 시스템이 매우 크고 빠른 메모리 효과를 얻게 하였는데, 자주 액세스할 가능성이 높은 데이터를 캐시가 보관하도록 설정하여 대부분의 메모리 작업을 수행할 수 있게 한다.
- 프로세서-메모리 격차 발생 이유
- 속도 발전의 비대칭성: 프로세서는 기술 발전에 따라 빠른 연산 속도를 가지지만(클럭 속도, 효율적인 파이프라인 등), 메모리는 물리적 한계와 설계상의 제약으로 상대적으로 더디게 발전한다.
- 메모리 지연(latency) 문제: 메모리의 데이터 액세스 시간이 높아, 프로세서가 데이터를 요청하고 응답을 받기까지의 지연 시간이 발생한다. 이로 인해 프로세서가 본래의 성능을 발휘하지 못한다.
- 대역폭 제한 : 메모리 대역폭은 한 번에 전송할 수 있는 데이터의 양이다. 전송 속도가 빠르더라도 대역폭이 좁으면 데이터 송신에서 병목 현상이 발생한다.
- 대역폭(Bandwidth, MB/s) = 클럭속도(Clock Speed) × 버스 폭(Data Bus Width) × 전송 효율 ÷ 8 (bit to byte)
- 클럭속도: 메모리 모듈의 동작속도(클럭 속도) / 메모리 작동 주파수(초당 사이클 수)
- 데이터 버스 폭: 한 사이클당 전송되는 데이터의 양(일반적으로 64비트)
- 전송 효율: 기술에 따른 계수(근래 사용되는 DDR의 경우 상승, 하강 진폭 모두에서 데이터 전송이 이루어지므로 2배의 계수를 가짐)
- 대역폭(Bandwidth, MB/s) = 클럭속도(Clock Speed) × 버스 폭(Data Bus Width) × 전송 효율 ÷ 8 (bit to byte)
- 설계 및 비용 제약: 메모리의 발전은 프로세서보다 높은 비용과 전력 소모를 동반하기 때문에, 비용과 전력 관리 효율성 측면에서 동일한 성능을 갖추기 어렵다.
- 아래의 이유들로 인해 근본적인 격차가 발생하고, 반도체 기술이 매년 발달함에 따라 격차는 지속적으로 증가하고있다.
- 지역성이란 프로그램이 데이터를 참조할 때, 시공간적 특성에 따라
가까운 데이터를 참조하는 경항을 말함 - 참고 : https://velog.io/@jinyr1128/12%EC%9B%94-15%EC%9D%BC-%EC%A7%80%EC%97%AD%EC%84%B1Locality%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9D%B4%ED%95%B4
1.6 저장장치들은 계층구조를 이룬다

프로세서와 메인 메모리 사이의 복사 과정에서 발생하는 오버헤드를 줄이기 위해, 크고 느린 메인 메모리와 프로세서 사이에 캐시 메모리와 같은 작고 빠른 저장장치를 배치하는 것이 일반적인 방식이 되었다.
주요 골자는, L1은 L2의, L2는 L3의 캐시역할을.. 이런식으로 한 계층의 저장장치는 다음 하위레벨 저장장치의 캐시 역할을 한다. 더 나아가 네트워크 시스템에서 로컬 디스크는 다른 시스템의 디스크(서버 등)에 저장된 데이터의 캐시 역할이다.
계층구조의 최 상단으로 갈 수록 물리적으로 작고, 빨라지지만 바이트당 가격이 비싸진다.
728x90
'CS:APP' 카테고리의 다른 글
| GCC는 C를 어떻게 기계어로 짜깁기할까? - CS:APP 3.2 요약과 인사이트 (0) | 2025.04.07 |
|---|---|
| 암달의 법칙 (Amdahl's law) (0) | 2025.04.07 |
| 1.4 프로세서는 메모리에 저장된 인스트럭션을 읽고 해석한다 (0) | 2025.03.20 |
| 1.2 프로그램은 다른 프로그램에 의해 다른 형태로 번역된다 (0) | 2025.03.20 |
| 1.1 정보는 비트와 컨텍스트로 이루어진다 (ASCII, Text/non-Text file, Context) (0) | 2025.03.17 |