CS - 메모리(Memory)란?

한민우·2024년 10월 10일

CS

목록 보기
9/11

메모리란?

메모리는 컴퓨터에서 프로그램의 명령어와 데이터를 저장하는 부품이다. 컴퓨터가 실행 중인 프로그램의 명령어와 데이터를 저장하기 위한 공간이다. CPU는 메모리에 저장된 정보를 이용하여 명령어를 처리한다. 메모리는 정보를 임시로 저장하는 주기억장치(RAM)와 데이터를 영구적으로 저장하는 보조기억장치(SSD, HDD 등)로 나뉜다.

역할

메모리는 CPU가 필요한 정보에 빠르게 접근할 수 있도록 도와준다. 프로그램 실행 시, CPU는 메모리에서 명령어를 읽고, 데이터를 처리하여 결과를 다시 메모리에 저장하거나 출력 장치로 전송한다.

구성 요소

메인 메모리의 구성은 대표적으로 RAM과 ROM이 있다.

RAM(Random Access Memory)

RAM은 컴퓨터 시스템에서 주로 사용되는 메모리 유형으로 데이터와 명령어를 읽고 쓸 수 있는 가용한 메모리 공간이다. CPU가 프로그램 실행 중에 실제로 엑세스하는 메모리로, 프로그램 실행에 필수적이다.

Random Access는 어느 위치에서든 똑같은 속도로 접근하여 읽고 쓸 수 있다는 것을 의미한다.

RAM은 휘발성 메모리로, 전원이 꺼지면 내부에 저장된 데이터가 손실된다. RAM은 읽기와 쓰기 모두가 가능하며, 데이터의 임시 저장 및 프로그램 실행에 사용된다.

주요 RAM유형으로는 DRAM(Dynamic RAM)과 SRAM(Static RAM)이 있다.

  • DRAM(Dynamic RAM): 동적 메모리로, 전원이 계속 공급되더라도 주기적으로 재충전되어야 기억된 내용을 유지할 수 있고 주로 대용량의 기억장치에 사용되며 가격이 저렴하다. 주로 RAM이라고 표현하는 것은 거의 DRAM을 칭하는 것이다.

  • SRAM(Static RAM): 정적 메모리로, 전원이 공급이 되는 동안은 기록된 내용이 지워지지 않기 떄문에 재충전이 필요없다. 접근 속도가 빠르고 가격이 비싸다는 특징이 있으며 주로 캐시메모리나 레지스터로 사용된다.

ROM(Read Only Memory)

ROM은 읽기 전용 메모리로, 데이터를 읽을 수만 있고 수정할 수는 없는 메모리 유형이다. ROM에 저장된 데이터는 제조과정에서 기록되면, 사용자가 변경할 수 없다. ROM에 저장된 데이터는 영구적으로 보존되므로 전원이 꺼져도 데이터가 손실되지 않는다.(비휘발성)

주로 시스템의 초기화 및 부팅에 필요한 프로그램 코드, 펌웨어, 시스템 설정 등이 저장된다.

주소 공간

  1. 메모리 주소: 메모리의 각 저장 공간은 고유한 주소를 가지고 있다. 집의 주소처럼, 데이터가 저장된 위치를 나타낸다. CPU는 이 주소를 이용해 필요한 데이터를 불러오거나 저장한다.

  2. 물리적 주소 공간 (Physical Address Space): 실제 메모리 칩의 각 위치를 나타내는 주소이다. 하드웨어적으로 존재하는 메모리의 크기와 동일하며, CPU는 물리적인 메모리 주소를 통해 데이터를 읽고 쓴다.

  1. 가상 주소 공간 (Virtual Address Space):

운영체제는 프로그램이 사용하는 메모리를 보다 효율적으로 관리하기 위해 가상 메모리라는 개념을 사용한다. 가상 주소 공간은 물리적 메모리와 달리, 프로그램마다 독립된 메모리 공간처럼 보이게 만든다. 예를 들어, 여러 프로그램이 동시에 실행될 때, 각 프로그램은 자신만의 가상 주소 공간을 사용하기 때문에 충돌 없이 메모리를 사용할 수 있습니다.

  • 페이지: 가상 메모리는 보통 일정한 크기의 페이지로 나뉩니다. 운영체제는 프로그램이 실제로 필요한 페이지들만 물리 메모리에 할당하여 효율성을 높입니다.
  • 페이지 테이블: 가상 주소를 물리적 주소로 변환하는 구조입니다. CPU가 가상 주소에 접근하려 할 때, 페이지 테이블을 통해 해당 가상 주소가 실제로 어디에 있는지를 찾아냅니다.

논리 주소는 어떻게 물리 주소로 변환될까?
MMU (Memory Management Unit)라는 하드웨어에 의해 수행
CPU가 발생시킨 논리 주소에 베이스 레지스터 (Base Resister) 값을 더하여 논리 주소를 물리 주소로 변환한다.
예를들어 CPU가 발생시킨 논리 주소가 100번지, 베이스 레지스터에 15000이 저장되어 있다면 물리 주소는 (베이스 레지스터 + 논리 주소)가 된다.

베이스 레지스터는 프로그램의 가장 작은 물리 주소, 즉 프로그램의 첫 물리 주소를 저장하는 역할을 한다. 논리 주소는 프로그램의 시작점으로부터 떨어진 거리를 나타낸다.

메모리의 특징

기억장치는 지역성이라는 특성을 가진다. 이 지역성은 시간적 지역성과 공간적 지역성이 있다.

시간적 지역성: 한 번 참조되면 곧바로 다시 참조되기 쉬운 특성

공간적 지역성: 어떤 내용이 참조되면 그 내용에 가장 가까운 곳에 있는 다른 내용이 곧바로 참조되기 쉬운 특성

기억장치는 지역성의 원리를 이용하여 계층으로 구성된다.

메모리 계층 구조 (Memory Hierarchy)

컴퓨터 시스템에서 메모리를 속도와 용량에 따라 계층적으로 배열한 구조입니다. 속도가 빠를수록 용량은 적고, 비용이 높아지는 특성을 가지고 있습니다. 가격은 최소화 하면서 가능한 빠른 접근 속도와 대용량의 크기를 제공하기 위한 목적으로 만들어졌다.

  1. 레지스터 (Registers): CPU 내부에 있는 가장 빠른 메모리입니다. 용량이 매우 작고, CPU가 직접 데이터를 처리할 때 사용된다.

  2. 캐시 메모리 (Cache): CPU와 RAM 사이에 위치한 고속 메모리입니다. L1, L2, L3 캐시로 나뉘며, 주로 자주 사용되는 데이터를 저장해 CPU의 처리 속도를 높인다.

  3. 주 메모리 (Main Memory, RAM): 컴퓨터의 주된 작업 공간으로, CPU가 실행 중인 프로그램과 데이터를 저장한다. 캐시보다 느리지만, 용량이 더 크고 가격이 저렴하다.

  4. 보조 저장 장치 (Secondary Storage): 하드디스크나 SSD 같은 대용량 저장 장치이다. 주 메모리보다 훨씬 느리지만, 데이터의 장기 저장에 사용되며 용량이 매우 큽다.

profile
예비 게임서버 개발자

0개의 댓글