CS

[OS] 메모리 계층 구조 쉽게 이해하기

mark340 2023. 1. 4. 12:19

메모리 계층 구조란 무엇인가 (Memory Hierachy)

  • 메모리를 필요에 따라 여러가지 종류로 나누는 것 => Why?? CPU가 메모리에 더 빨리 접근 가능해짐
  • 컴퓨터 설계에 있어 서로 다른 여러 종류의 메모리 저장 장치를 함께 사용하여 최적의 효율을 낼 수 있게 하는 것
  • 상황에 맞게 여러 저장 장치를 각각 사용하는 설계 => 컴퓨터 성능이 좋아짐

메모리 계층 구조 이미지

1. 레지스터(Register)

  • CPU가 요청을 처리하는 데 필요한 데이터를 일시적으로 저장하는 기억장치
  • CPU는 자체적으로 데이터를 저장할 방법이 없으므로 메모리로 직접 데이터를 전송할 수 없음
    → 연산을 위해서 반드시 레지스터를 거쳐야 하며, 이를 위해 레지스터는 특정 주소를 가리키거나 값을 읽어올 수 있음
  • 프로세서에 위치한 고속 메모리로, 프로세스가 바로 사용할 수 있는 데이터(소량의 데이터, 처리 중인 중간 결과 등)를 담고 있는 영역


2. 캐시(Cache)

  • cache는 기술적 용어의 어원인 프랑스어로 '숨기다'라는 단어인 cache에서 파생된 단어로 물건을 일시적으로 저장, 보관하기 위해 사용하는 곳
  • 데이터나 값을 미리 복사해 놓는 임시 장소
  • 시스템의 효율성을 위해 사용
    • 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우
    • 값을 다시 계산하는 시간을 절약하고 싶은 경우
  • 속도가 빠른 장치와 느린 장치 사이에서 속도차에 따른 병목 현상을 완화하기 위한 범용 메모리
  • 지역성 -
    • 데이터 접근이 시간적, 혹은 공간적으로 가깝게 일어나는 것
    • 캐시가 효율적으로 동작하기 위해서는 캐시가 저장할 데이터가 지역성을 가져야 함
    • 시간적 지역성 - 특정 데이터가 한 번 접근되었을 경우, 가까운 미래에 또 한 번 데이터에 접근할 가능성이 높음
    • 공간적 지역성 - 액세스 된 기억장소와 인접한 기억장소가 액세스 될 가능성이 높음
  • 캐싱이란? => 데이터를 더 빨리 읽어 올 수 있도록 캐시 기억 장치에 저장하는 일


3. 메인 메모리(Main Memory)

  • 주기억장치(= 1차 기억 장치)
  • 컴퓨터에서 수치·명령·자료 등을 기억하는 컴퓨터 하드웨어 장치
  • RAM(Random Access Memory) : 휘발성 기억 장치
    • 컴퓨터가 빠른 액세스를 하기 위해 데이터를 단기간 저장하는 구성 요소
    • 사용자가 요청하는 프로그램이나 문서를 스토리지 디스크에서 메모리로 로드하여 각각의 정보에 액세스
    • 전원이 유지되는 동안 CPU의 연산 및 동작에 필요한 모든 내용이 저장
    • 전원 종료시 기억된 내용 삭제
    • Random Access : 어느 위치에서든 똑같은 속도로 접근하여 읽고 쓸 수 있다는 의미
  • ROM(Read Only Memory) : 고정 기억 장치
    • 컴퓨터에 지시사항을 영구히 저장하는 비휘발성 메모리
    • 전원 종료시 기억된 내용 유지
    • 변경 가능성이 희박한 기능 및 부품에 사용 (소프트웨어 초기 부팅 관련 부분/ 하드웨어 펌웨어 명령 부분 등)

 

4. 하드 디스크 드라이브(Hard Disk Drive, HDD)

  • 비휘발성, 순차접근이 가능한 컴퓨터의 보조 기억 장치
  • 비휘발성 데이터 저장소 가운데 가장 대중적이며 용량 대비 가격이 가장 저렴
  • 보호 케이스 내부의 플래터를 회전 → 플래터에 자기 패턴으로 정보 기록
  • 회전하는 플래터 위에 부상하는 입출력 헤드에 의해 자기적으로 데이터 기록 및 조회 가능

 

메모리 계층 구조는 왜 필요한가

 

  • 디코딩 속도
    • CPU는 작은 메모리에 더 빨리 접근 가능하다
    • 큰 메모리 용량을 사용할 경우 디코딩하는 데 더 많은 시간 소요 (명령어 복호화 단계)
    • CPU가 빠르게 데이터에 접근하기 위해서는 데이터를 저장하는 메모리가 작아야 함 => 계층 구조를 통해 해결
  • 참조의 지역성
    • 자주 쓰이는 데이터는 계속 자주 쓰이고, 자주 쓰이지 않는 데이터는 계속 자주 쓰이지 않음
    • 운영체제·CPU → 자동으로 자주 쓰이거나 쓰일 것 같은 데이터를 메모리에서 캐시로 읽어옴 (데이터양이 줄어듦)
  • 경제성
    • 메모리 구조에서 상층에 속할수록 더 성능이 좋지만 더 비쌈
    • 비싼 하드웨어는 꼭 필요한 만큼의 크기만 사용
    • 싼 하드웨어를 넉넉한 크기만큼 사용
    • 피라미드 구조