📌Index
- 메모리 계층 구조란?
- 메모리 계층 구조의 필요성
✔️ 메모리 계층 구조란?
메모리 계층 구조(Memory Hierachy)는 메모리 관련 3가지 주요 특성인 용량, 접근 속도, 비용간의 절충 관계를 파악해 필요에 따라 채택할 수 있게 나타낸 구조이다.
메모리 계층은 레지스터, 캐시, 메모리(RAM), 하드디스크(저장장치)로 구성되어 있다.
그림 상에서 위로 갈수록 속도가 빠르고, 아래로 갈수록 용량이 커진다.
용량이 클 수록 범위가 넓어지므로, 속도가 느려지는 것은 당연하다고 할 수 있다.
- 레지스터 : CPU 내부의 작은 메모리로, 휘발성이며 속도가 가장 빠르고, 기억 용량이 가장 적다.
- 캐시 : L1, L2, L3 캐시를 지칭하고 휘발성이며, 속도가 빠르나 기억 용량이 적다.
- 주기억장치(메모리) : RAM을 가리키고 휘발성이며, 속도와 기억 용량은 보통이다.
- 보조기억장치(디스크) : HDD, SDD를 일컬으며 비휘발성이다. 속도는 낮으며 기억 용량이 많다.
RAM은 하드 디스크로부터 일정량의 데이터를 복사하여 임시 저장하고, 이를 필요 시마다 CPU에 빠르게 전달하는 역할을 한다.
이러한 계층 구조는 일상 생활에서도 경험할 수 있다. 게임을 실행하다 보면 로딩 중
이라는 메세지를 볼 수 있는데, 이는 하드디스크 또는 인터넷에서 데이터를 읽어 RAM으로 전송하는 과정이 아직 끝나지 않았음을 의미한다.
✔️ 메모리 계층 구조의 필요성
메모리 계층 구조는 왜 필요할까?
사용자 입장에서는 당연히 속도가 느린 것 보다는 빠른 것을, 저장 용량이 작은 것 보다는 큰 것을 선호한다. 그러나 속도를 높이면 레지스터 처럼 용량이 너무 부족해지고, 용량을 높이면 하드디스크 처럼 속도가 너무 느려지는 단점이 발생한다. 따라서 성능을 위해 속도와 용량의 상호보완을 위해 고안한 방법이 바로 메모리 계층 구조이다.
자주 쓰이는 데이터는 반복해서 쓰인다는 것을 참조 지역성(locality of reference)라고 한다. 즉, 자주 쓰이는 데이터는 계속 자주 쓰이고, 자주 쓰이지 않는 데이터는 계속 자주 쓰이지 않는 다는 것이다. 따라서 자주 쓰일 것 같은 데이터는 메모리에 캐시로 읽어와, 메모리까지 가지 않고 한동안 캐시에서 해결이 가능하므로 시간을 단축시킬 수 있다. 자주 쓰이는 데이터는 전체 데이터 양에 비해 작은 양이기 때문에, 캐시는 메모리보다 더 작아도 된다. 즉, 메모리 계층 구조의 아이디어는 프로세서가 필요로 하는 데이터를 최대한 가까운 곳에 위치시켜 속도를 향상 시키는 것이다.
이러한 법칙을 토대로 경제성을 고려하여 만들어진 것이 메모리 계층이라고 볼 수 있다. 간단하게 메모리 구조의 상층으로 갈수록 가격이 상승하기 때문이다. 고가의 하드웨어는 꼭 필요한 만큼만의 크기만 사용하고, 저렴한 하드웨어를 넉넉한 크기만큼 사용하기 때문에 피라미드 형태가 되는 것이다.
Reference