RAM 이 뭐지

이세민·2025년 3월 13일
0

RAM이란

Random Acess Memory의 약자로 한국어론 임의 접근 메모리이다. '임의 접근'은 HDD가 디스크의 물리적 거리에 따라 속도가 달라지는 것과 달리, 메모리의 물리적인 위치의 상관 없이 접근하는 시간이 같음을 의미한다.

주요특징

  • 휘발성:전원공급이 차단되면 정보가 사라짐
  • 빠른속도: hdd, ssd보다 훨씬 빠른속도

종류

DRAM

Dynamic RAM의 약자이다. DRAM은 데이터를 저장하는데에 커패시터를 사용한다. 커패시터는 한번 충전한 이후 계속해서 충전량이 감소하기 때문에 재충전하는 refresh 과정이 필요하다. DRAM의 Dynamic은 이러한 커패시터의 성질로 인해 데이터에 변동이 일어남을 의미한다. SRAM에 비해 느리지만 가격이 낮아 대용량 데이터를 저장하는데에 유리하다.

SDRAM, DDR DRAM

SDRAM은 DRAM중에서 '클럭'을 통해 규칙적으로 데이터를 읽어올 수 있도록 만든 DRAM이다. SDRAM에선 펄스형태의 클럭신호가 high로 바뀔 때를 감지하여 DRAM을 작동시킨다. DDR DRAM은 SDRAM의 개선 버전으로, 펄스 형태의 클럭신호가 high로 바뀔 때 뿐만아니라 low로 바뀔 때에도 RAM이 작동하도록 하여 전송률을 두배로 높이는 기술이다. 현재 PC의 대부분은 DDR 기술이 적용된 램을 사용한다. 가장 최근에는 DDR5 표준이 사용되고 있다.

SRAM

Static RAM의 약자이다. SRAM은 DRAM과 달리 커패시터를 사용하지 않고, flip-flop latch를 구성하여 데이터를 저장한다. 이 방식은 전원이 들어오는한 데이터가 계속 유지되기 때문에 Static RAM이라 불린다. 또한 재충전하는 refresh 과정이 필요하지 않고, latch의 작동이 커패시터의 충전보다 빠르기 때문에 DRAM보다 훨씬 빠르게 동작한다. 주로 CPU의 L1~L3 캐시 메모리에 사용된다.

프로그래밍에서의 RAM

RAM은 프로그래밍에서 흔히 메모리로 불리며, 프로그램, 프로그램 내부 변수등이 저장되어 프로그램을 구동시킬 수 있다.
원하는 주소와, 데이터 값을 입력하여 값을 저장할 수 있다. C언어에서는 이러한 주소를 포인터라는 변수에 다시 저장하여 복잡한 메모리 접근, 관리를 수행할 수 있다.

x86 cpu 명령어중, MOV를 통해 메모리를 읽고 쓸 수 있다.

  1. 메모리에서 값 읽기 (Load)
    메모리에서 값을 가져와 레지스터에 저장할 때는 다음과 같이 MOV를 사용한다.
MOV EAX, [EBX]  ; EBX 레지스터에 저장된 메모리 주소에서 4바이트를 읽어 EAX에 저장
위 명령어는 EBX가 가리키는 메모리 주소에서 값을 가져와 EAX 레지스터에 저장한다.
즉, MOV 레지스터, [메모리] 형식으로 사용하면 메모리에서 데이터를 읽어올 수 있다.
  1. 메모리에 값 쓰기 (Store)
    레지스터의 값을 메모리에 저장할 때도 MOV 명령어를 사용할 수 있다.
MOV [EBX], EAX  ; EAX 값을 EBX 레지스터에 저장된 메모리 주소에 저장
이처럼 MOV [메모리], 레지스터 형식을 사용하면 레지스터의 값을 메모리에 저장할 수 있다.

이렇게 RAM은 컴퓨터의 주기억장치로서 프로그램, 프로그램의 변수, 기타 데이터들을 저장하고 CPU에게 제공하는 역할을 수행한다.

profile
gsm 8기 고등학생

0개의 댓글