1-4) 프로세서의 작동 원리에서 봤듯이, 시스템이 정보를 한 곳에서 다른 곳으로 이동시키는 일에 많은 시간을 보낸다.
기계어 인스트럭션들과 데이터 스트링들의 복사 과정을 간략하게 다시 정리해보면,
처음에는 하드디스크에 저장되어 있다.
프로그램이 로딩될 때 메인 메모리로 복사된다.
프로세서가 프로그램을 실행할 때 프로세서로 복사된다.
처음에는 디스크에 저장되어 있다.
메인 메모리로 복사된다.
디스플레이 장치로 복사된다.
그리고, 더 빠른 장치들은 더 느린 장치들보다 만드는 데 비용이 많이 든다.
| 구분 | 디스크 드라이브 | 메인 메모리 |
|---|---|---|
| 크기 | 크다 | 작다 |
| 속도 | 느리다 | 빠르다 |
디스크 드라이브가 1,000배 더 크지만메모리에서보다 천만 배 더 오래 걸릴 수 있다.| 구분 | 레지스터 파일 | 메인 메모리 |
|---|---|---|
| 크기 | 작다 | 크다 |
| 속도 | 빠르다 | 느리다 |
레지스터 파일은 수백 바이트의 정보를 저장하는 반면메인 메모리는 훨씬 많은 십억 개의 바이트를 저장한다.레지스터 파일의 데이터를 읽는 데 메모리보다 100배 더 빨리 읽는다.메인 메모리를 더 빠르게 동작하도록 만드는 것보다
프로세서를 더 빨리 동작하도록 만드는 것이 더 쉽고 비용이 적게 들기 때문이다.
이에 대응하기 위해 캐시 메모리를 활용한다.

캐시 메모리라고 부르는 저장장치를 고안하여프로세서가 단기간에 필요로 할 가능성이 높은 정보를 임시로 저장할 목적으로 사용한다.프로세서 칩 내에 들어 있는 L1 캐시는 대략 수천 바이트의 데이터를 저장하고, 레지스터 파일만큼 빠른 속도로 액세스할 수 있다.
좀 더 큰 L2 캐시는 수백 킬로바이트에서 수 메가 바이트의 용량을 가지며, 프로세서와 전용 버스를 통해 연결된다.
프로세서가 L2 캐시를 액세스할 때 L1 캐시보다 5배 정도 느리지만, 그래도 여전히 메인 메모리를 액세스할 때보다는 5배에서 10배까지 더 빠르다.
L1 캐시와 L2 캐시는 SRAM(Static Random Access Memory)라는 하드웨어 기술을 이용해 구현한다.
캐시 시스템의 이면에 깔려 있는 아이디어는,
프로그램이 지엽적인(좁은) 영역의 코드와 데이터를 액세스하는 경향인 지역성을 활용하여
시스템이 매우 크고 빠른 메모리 효과를 얻을 수 있다는 것이다.
자주 액세스할 가능성이 높은 데이터를 캐시가 보관하도록 설정하면
빠른 캐시를 이용해서 대부분의 메모리 작업을 수행할 수 있게 된다.
💡 계층구조: 전체 시스템이나 구성요소를 여러 계층으로 나누어 구성하는 것
캐시 메모리 같은 보다 작고 빠른 저장장치를 프로세서와 좀 더 크고 느린 장치(ex 메인 메모리) 사이에 끼워 넣는 개념은 일반적으로 널리 받아들여지고 사용되고 있다.

모든 컴퓨터 시스템의 저장장치들은 메모리 계층구조로 구성되어 있다.
계층의 꼭대기에서부터 맨 밑바닥까지 이동할수록
저장장치들은 더 느리고, 더 크고, 바이트 당 가격이 싸진다.
레지스터 파일 : 계층구조의 최상위인 레벨 0 (L0)
메인 메모리: 레벨 4
메모리 계층구조의 주요 아이디어는 한 레벨의 저장장치가 다음 하위레벨 저장장치의 캐시 역할을 한다는 것이다.
L1과 L2의 캐시는 각각 L2와 L3의 캐시이다.
L3 캐시는 메인 메모리의 캐시이고, 디스크의 캐시 역할을 한다.
일부 분산 파일시스템을 가지는 네트워크 시스템에서 로컬 디스크는
다른 시스템의 디스크에 저장된 데이터의 캐시 역할을 수행한다.
로컬 디스크들은 원격 네트워크 서버에서 파일들을 가져와 보관한다.