[컴퓨터구조] Chapter 5.1 - 메모리 계층 구조 (서론)
컴퓨터 구조 과목에서 메모리 계층 구조에 대한 서론을 정리했습니다.
지역성의 원칙
지역성의 원칙은 두 가지(시간, 공간 지역성)가 있습니다.
시간 지역성
시간 지역성은 한번 참조된 항목은 가까운 시간내로 다시 참조된다는 것입니다. 어떤 정보를 찾기 위해 책을 책상위에 두면 그 책은 거의 곧바로 다시 찾아보게 될 가능성이 클 것입니다.
공간 지역성
공간 지역성은 한번 참조된 항목은 그 근처에 있는 항목도 곧바로 참조된다는 것입니다. “콜라”와 관련된 정보를 찾을 때 주변의 항목인 “사이다”와 같은 정보도 참조하게 될 가능성이 클 것입니다.
컴퓨터 작업에서 이러한 지역성을 드러내는 작업을 많이 합니다. 대표적인 예시로 일정한 크기의 Array를 for loop로 돌 때가 있습니다. 짧은 시간안에 바로 옆 또는 근처에 있는 데이터에 접근을 하게 됩니다. 컴퓨터의 메모리를 메모리 계층 구조(memory hierarchy)로 구현함으로써 지역성의 특징을 활용할 수 있습니다.
메모리 계층 구조

메모리 계층 구조는 여러 레이어로 구성이 되는데, 계층 간의 데이터 이동은 인접한 두 계층에서만 발생합니다. 즉 3번째 레이어에 있는 데이터를 곧바로 1번째 레이어로 올리지 않는다는 것입니다. 데이터의 이동은 블록(block)이라는 단위로 이루어집니다.
프로세서가 요구한 데이터가 상위 계층의 어떤 블록에 있을 때 적중(hit)했다고 부릅니다. 반대로 상위 계층의 블록에 데이터가 없을 때는 실패(miss)라고 합니다. 메모리 계층의 성능을 평가하는 것은 hit rate와 miss rate입니다. 적중 시간(hit time)은 상위 (계층에 접근하는데 걸리는 시간 + hit인지 miss인지 판단하는 시간)이며 실패 손실(miss penalty)은 (하위 계층에서 해당 블록을 가져와 상위 계층 블록과 교체하는 시간 + 그 블록을 프로세스에게 보내는 시간)입니다.
정리
컴퓨터 구조는 지역성의 원칙을 이용하기 위해서 메모리를 계층적으로 구성합니다. 프로세서에 가깝게 메모리를 둬서 빠르게 데이터를 가져오도록 합니다. hit rate가 높을 경우 가장 빠른 계층 접근 속도로 접근하는 효과와 가장 하위 계층만큼 큰 메모리 공간을 가지는 효과를 얻을 수 있습니다. miss가 발생할 경우 하위 계층으로 이동해서 데이터 블록을 찾고 프로세서에게 보냅니다.