운영체제 | Register vs Memory

성수당·2025년 9월 12일

운영체제

목록 보기
11/31
post-thumbnail

🥔 Register와 Memory란?

CPU는 연산을 처리하기 위해 데이터를 어디에 저장할지 결정해야 한다. 이때 사용하는 저장 장소는 대표적으로 두 가지가 있다:

  • 레지스터(Register): CPU 내부의 초고속 임시 저장소
  • 메모리(Memory, RAM): 시스템 외부에 존재하는 일반적인 저장소

이 둘은 모두 데이터를 보관하는 공간이지만, 속도, 위치, 용도, 비용에서 차이가 있다.

🥔 레지스터(Register)란?

레지스터는 CPU 내부에 위치한 저장 공간이다. 프로그램 실행 중 필요한 값을 즉시 처리할 수 있도록 고속 접근이 가능한 저장소다.

항목설명
위치CPU 내부
접근 속도매우 빠름 (ns 단위)
용도연산 대상 보관, 명령 주소 저장 등
크기매우 작음 (몇 Byte ~ 수십 Byte 수준)
수량한정적 (CPU 구조에 따라 고정)

🧠 주요 레지스터 종류

종류설명
PC (Program Counter)다음에 실행할 명령어의 주소
IR (Instruction Register)현재 실행 중인 명령어
SP (Stack Pointer)현재 스택의 꼭대기 주소
General-purpose Register연산 중간 결과, 변수 임시 저장 (e.g., eax, rbx)

프로그램의 연산 속도를 높이기 위해 컴파일러는 자주 사용되는 변수를 레지스터에 할당하려 한다.

🥔 메모리(Memory)란?

메모리(RAM) 는 CPU가 접근할 수 있는 외부 저장소로, 프로그램 코드, 변수, 데이터 등을 보관한다. CPU가 레지스터에서 처리할 수 없는 대부분의 데이터를 메모리에서 불러와야 한다.

항목설명
위치CPU 외부, 시스템 버스에 연결됨
접근 속도느림 (μs~ns 단위)
용도전체 프로그램 코드, 데이터, 힙, 스택 등 저장
크기수 GB ~ 수십 GB
수량시스템 용량만큼 존재 (확장 가능)

메모리는 속도는 느리지만 용량이 크고, 프로그램 실행에 필요한 모든 정보를 담고 있다.

🥔 Register vs Memory

항목RegisterMemory
위치CPU 내부CPU 외부
속도매우 빠름느림
크기매우 작음
접근 방식직접 접근간접 접근 (버스 경유)
용도연산 처리, 주소 저장코드/데이터 저장
비용매우 비쌈상대적으로 저렴

🥔 왜 레지스터가 필요한가?

CPU가 모든 데이터를 메모리에서 가져온다면, 속도 병목(Bottleneck) 이 발생하게 된다. 이를 방지하기 위해, 연산에 꼭 필요한 데이터는 레지스터에 미리 저장해두고 빠르게 접근하는 것이다.

즉, 레지스터는 CPU의 캐시처럼 동작하는 초고속 임시 저장소다.

🥔 레지스터는 메모리인가?

넓은 의미에서 레지스터도 메모리의 일종이다. 하지만 일반적으로 말하는 '메모리'는 RAM을 가리키며, 레지스터는 CPU 내부에 특화된 저장소로 따로 분류한다.

🥔 실전에서의 차이점

  • 변수 저장
    → 자주 사용하는 변수는 컴파일러가 레지스터에 저장하도록 최적화한다
    → 일반 변수는 메모리에 저장

  • 성능 최적화
    → 코드 최적화 시, 메모리 접근을 줄이고 레지스터 활용률을 높이는 게 핵심

🥔 마무리

  • 레지스터는 작지만 매우 빠르고, 연산 효율성을 위한 핵심 자원이다
  • 메모리는 크지만 상대적으로 느리고, 모든 프로그램 데이터를 보관하는 핵심 자원이다
  • CPU는 이 둘을 적절히 활용하여 성능과 효율을 극대화한다
profile
말하는 감자🥔

0개의 댓글