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 캐시
는 메인 메모리의 캐시이고, 디스크의 캐시 역할을 한다.
일부 분산 파일시스템을 가지는 네트워크 시스템에서 로컬 디스크
는
다른 시스템의 디스크에 저장된 데이터의 캐시 역할을 수행한다.
로컬 디스크
들은 원격 네트워크 서버에서 파일들을 가져와 보관한다.