✏️ [OS] 메모리 계층 구조 (Memory Hierachy)

박상민·2024년 2월 15일
0

CS Interview

목록 보기
5/16
post-thumbnail

📌 메모리 계층 구조란?

모든 사용자들은 빠르고 동시에 용량이 큰 저장 장치를 원한다. 하지만 '빠른 저장 장치'와 '용량이 큰 저장 장치'는 양립하기 어렵다. 저장 장치는 일반적으로 아래와 같은 명제를 따르기 때문이다.

  • CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다.
  • 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다.

컴퓨터가 사용하는 저장 장치들은 'CPU에 얼마나 가까운가'를 기준으로 계층적으로 나타낼 수 있다. 이를 저장 장치 계층 구조라고 한다.

메모리 계층 구조(Memory Hierachy)는 메모리 관련 3가지 주요 특성인 용량, 접근 속도, 비용간의 절충 관계를 파악해 필요에 따라 채택할 수 있게 나타낸 구조이다.

메모리 계층은 레지스터, 캐시, 메모리(RAM), 하드디스크(저장 장치)로 구성되어 있다.
그림 상에서 위로 갈수록

  • 속도가 빠르고
  • 용량이 작고
  • 가격이 비싸다.

반대로 아래로 갈수록

  • 속도가 느리고
  • 용량이 크고
  • 가격이 저렴하다.

레지스터: CPU 내부의 작은 메모리로, 휘발성이며 속도가 가장 빠르고 기억 용량이 가장 적다.
캐시: L1, L2, L3 캐시를 지칭하고 휘발성이며, 속도가 빠르나 기억 용량이 적다.
주기억장치(메모리): RAM을 가리키고 휘발성이며, 속도와 기억 용량은 보통이다.
보조기억장치(디스크): HDD, SDD를 일컬으며 비휘발성이다. 속도는 낮으며 기억 용량이 많다.

RAM은 하드 디스크로부터 일정량의 데이터를 복사하여 임시 저장하고, 이를 필요시마다 CPU에 빠르게 전달하는 역할을 한다.

이러한 계층 구조는 일상 생활에서도 경험할 수 있다. 게임을 실행하다 보면 로딩 중이라는 메시지를 볼 수 있는데, 이는 하드디스크 또는 인터넷에서 데이터를 읽어 RAM으로 전송하는 과정이 아직 끝나지 않았음을 의미한다.

📌 메모리 계층 구조의 필요성

메모리 계층 구조는 왜 필요할까?
사용자 입장에서는 당연히 속도가 느린 것보다는 빠른 것을, 저장 용량이 적은 것보다는 큰 것을 선호할 것이다. 그러나 속도를 높이면 용량이 부족해지고, 용량을 높이면 속도가 느려진다.
따라서 성능을 위해 속도와 용량의 상호보완을 위해 고안한 방법이 바로 메모리 계층 구조이다.

자주 쓰이는 데이터는 반복해서 쓰인다는 것을 참조 지역성(locality of reference)라고 한다. 참조 지역성의 원리에 따라 자주 쓰일 것 같은 데이터는 메모리에서 캐시로 읽어와서 메모리까지 가지 않고 캐시에서 해결이 가능하도록 해서 시간을 단축시킬 수 있다.
자주 쓰이는 데이터는 전체 데이터 양에 비해 작은 양이기 때문에 캐시는 메모리보다 더 작아도 된다.

즉, 메모리 계층 구조의 아이디어는 프로세서가 필요로 하는 데이터를 최대한 가까운 곳에 위치시켜서 속도를 향상 시키는 것이다.

이러한 법칙을 토대로 경제성을 고려하여 만들어진 것이 메모리 계층이라고 할 수 있다.

⭐️ 메모리 계층 구조 (Memory Hierachy)


출처
Tech Interview for developer
혼자 공부하는 컴퓨터 구조 + 운영체제
https://nayoungs.tistory.com/entry/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B3%84%EC%B8%B5-%EA%B5%AC%EC%A1%B0Memory-Hierachy

profile
스프링 백엔드를 공부중인 대학생입니다!

0개의 댓글