ch6-The_Memory_Hierarchy

보통 메모리는 어떤 선형의 배열로서, 각 메모리에 상수시간에 접근할 수 있는 어떤 시스템으로,
간단하게 그려진다.
이는 꽤 효과적인 모델이지만, 현대 시스템에서 작동하는 방식은 아니다.

실제로는, 계층구조를 이루며 상위 계층, CPU와 가까울수록 빠르지만, 그 용량이 작다.
하위 계층일수록 속도는 느리지만, 그 용량은 커진다.

개발자로서 메모리 계층구조는 잘 이해해야한다.
왜냐하면, 제일 가까운 CPU Register 는 0 Cycle에 접근가능하지만,
작게는 4~75 Cycle, 많게는 몇천만의 Cycle 이 필요할 수 있기 때문이다.

컴퓨터 시스템에서 중요한 아이디어는 다음과 같다.
시스템이 어떻게 데이터를 계층구조 상 위아래로 움직이는지 이해한다면,
작성하는 프로그램의 데이터가 더 위로 가도록, 즉 더 빠르게 접근할 수 있도록 만들 수 있다.

컴퓨터 시스템은 라는 근본적인 특성을 가지고 있다.
높은 을 가지는 프로그램은 같은 위치 혹은 비슷한 위치에 있는 데이터에 계속 접근한다. 또한 더 상위 계층의 메모리에서 접근하는 경향이 있기 때문에,
낮은 의 프로그램보다 훨씬 빠르게 작동하게 된다.

이 챕터에서 우리는 기본적인 저장 기술을 살펴본다.
SRAM, DRAM, ROM, Rotating and Soild State Disks 등을 다루며,
이들이 어떻게 계층구조를 가지나 살펴본다.

특히 CPU와 Main Memory 사이에서 stage area 의 역할을 하는
에 집중한다.
는 프로그램 성능에 가장 큰 영향을 끼치는 요인 중 하나이기 때문이다.

C 언어 프로그램의 를 분석하고, 높이는 방법을 살펴본다.
특정 machine 에서 메모리 계층구조의 성능을 흥미롭게 다루는 "Memory Moutain" 에 대해 알아본다.