메모리(RAM, ROM)

권태형·2023년 8월 21일
1

지식정리

목록 보기
70/72
post-custom-banner

😀최근 메모리 부족현상으로 인한 에러를 자주 격게 되어서, 메모리 그 자체에 대한 지식이 필요하다 판단하게 되었다.
이번 포스팅에서는 컴퓨터구조의 메모리에 대해서 포스팅해보도록 하자.

메모리란?

컴퓨터 구조에서 메모리는 주기억장치(main memory)를 의미한다. 이 주기억장치를 "메모리(memory)"라고 줄여서 부르며, 이 메모리는 RAM과 ROM으로 나뉠 수 있다.

RAM(Random Access Memory)

램은 우리가 평소 메모리라 생각하는 부분을 의미한다. Random Access Memory의 약자로, 순차적인 데이터접근이 아닌 임의로 원하는 데이터에 접근할 수 있는 방식을 가진 메모리를 의미한다.

보통 우리가 실행하는 거의 모든 프로세스(프로그램)이 이 램에 실려서 CPU로 전달되고 실행된다.

RAM은 컴퓨터의 내부를 좀 만져본 사람이라면 누구든 알고 있듯이 긴 초록색 막대 형태를 지니고, 우리가 보통 추가적으로 RAM을 꼳아 RAM의 용량을 늘린다.

RAM의 특징

생각해보자 우리가 실행을 위해 어떠한 게임이라는 프로그램을 동작시키고 있다. 이러한 실행을 위한 명령이 하드에서 램에 실렸는데, 이때 전원을 컷다키면 다시 게임이 그대로 동작하나? 아니다. 이미 전원이 꺼짐과 동시에 램에 저장된 내용은 날아가고 없다. 이처럼 전원이 차단되면 저장된 내용을 잃는 장치를 휘발성 저장장치라고 한다.

  1. 휘발성
    렘은 휘발성 메모리이다. 렘에는 CPU에서 실행할 대상을 저장하지, 대상 그 자체를 저장하지 않는다. 일반적으로 우리가 무엇인가 설치하거나 다운로드를 받게된다면, SSD나 HDD와 같은 하드디스크인 보조기억장치에 저장한다. 그리고 어떠한 프로그램을 실행하기위해 더블클릭을 하게되면, 이 HDD에 있는 대상이 RAM으로 실려서 CPU가 실행할 수 있게 해준다.

  2. 많을수록 좋다.
    多多益RAM(다다익램) 과 같이 고용량 프로그램(게임, 3D그래픽 작업 등)을 동작시키는 사용자들 사이에서는 램은 많으면 많을 수록, 크면 클수록 좋다고 한다. 필자와 같이 여러 게임을 한번에 돌리는 것을 좋아하는 사람은 당연히 렘이 크고 많을 수록 좋아한다.

    왜 램은 많으면 많을수록, 크면 클수록 좋을까?

    위의 동작과정에 힌트가 있다. CPU에 실행할 대상을 렘이 보조기억장치에서 복사해 와서 CPU에서 실행한다.
    만약 CPU의 성능이 매우 좋은 상태에서 램이 극단적으로 작은경우를 생각해보자.

    CPU는 1, 2, 3, 4번 프로그램을 순차적으로 실행하라는 명령을 받았다. 그렇다면 이 실행을 위한 각 프로그램을 렘이 보조기억장치에서 복사해와서 CPU한테 줘야하는데 렘의 공간이 적다면, SSD에서 1번프로그램을 복사하고 CPU에 주고, 다시 1번을 버리고 2번을 또 복사하고 CPU에 주고, 쭉 3번 4번을 반복하면서 동작해야 할 것이다.

    만약 렘의 공간이 크다고 생각해보자. CPU가 1, 2, 3, 4번의 프로그램을 실행하기 위해서 "렘 이리와서 가방좀 열어봐!" 했는데 가방에 "1,2,3,4번이 모두 있다면?" 당연히 SSD에 왔다갔다 할 필요없이 바로바로 CPU가 동작하기 쉽고 빠를 것이다.

  3. 주소address
    메모리에는 저장된 값이 빠르고 효율적으로 접근하기 위해 address라는 개념으로 데이터를 찾아간다. 특정 주소에 현재 실행되는 프로그램에 대한 명령어와 데이터를 저장한다.

RAM의 역할

왜 RAM을 사용할까?

어짜피 기억장치하고 저장내용을 CPU가 가져다 쓰는거니까 SSD나 HDD와 같이 용량이 크고 넓은곳에있는 많은 데이터를 가져다 쓰면 더 좋지않을까?라는 원초적인 질문을 할 수도 있을 것이다. ( 물론 대부분 안한다. )

문제는 저장장치의 동작속도와, 경제성, 기술적 한계에 있다. 일단 저장장치의 동작속도와 비용은는 아래와같다.

레지스터(CPU내부 저장공간) > 캐시(Level1, Level2)SRAM > DRAM(메모리) > 보조기억장치(SSd>HDD)

용량은 정반대의 결과를 가진다.

보조기억장치(SSd>HDD) > DRAM(메모리) > 캐시(Level1, Level2)SRAM > 레지스터(CPU내부 저장공간)

❌레지스터는 CPU내부 공간을 차지하여 용량을 늘리려면 CPU자체가 커져야하며, 이로 인한 열관리와 전력소비에 한계가 존재하기에 크기를 키워서 저장하기 힘들다.

❌캐시메모리가 되는 SRAM은 집적도가 낮아 대용량설계에 불리하며 가격 또한 높다.

❌보조기억장치는 HDD(회전디스크)방식과 SSD(반도체 기반 NAND플래시 방식)이 기술적인 한계로 DRAM과 같은 속도까지 올리기 어렵고, RAM과 달리 비휘발성 장치로 그 용량을 유지하려면 사용되는 전력과 비용 또한 급등할 것이다.

⭕DRAM의 경우 레지스터나 캐시메모리보다는 느리지만 보조기억장치에 비해서 처리속도가 굉장히 빠르고 가격도 합리적이기 때문에 CPU와 보조기억장치 중간에 위치해서 데이터를 전달해주는 역할을 할 수 있다.

결과적으로 RAM은 CPU의 굉장히 빠른 속도를 최대한 효율적으로 사용하기 위해서 추가하는 물리적 장치이다.

RAM의 종류

RAM은 DRAM, SRAM, SDRAM, DDR SDRAM, DDR2~4등의 RAM이 존재한다.

  • DRAM (Dynamic RAM)
    D렘은 저장된 데이터가 동적으로 휘발되는 RAM으로, 데이터소멸을 막기 위해서는 주기적인 재활성화가 필요한 램이다.
    일반적으로 사용하는 RAM이 이 DRAM이다.
    상대적으로 소비전력이 낮고, 저렴하며, 집적도가 높아 대용량설계에 유리하기 때문이다.

  • SRAM(Static RAM)
    S렘은 정적인(사라지지 않는) RAM이다. 그렇다고 휘발성 메모리가 아닌것은 아니다. 전원차단에 의해 저장된 내용이 휘발되는 것은 RAM이기 때문에 똑같지만, 데이터가 자동으로 점점 소멸되지는 않는다. 일반적으로 DRAM보다 빠른 속도를 가지고 있으며, 상대적인 소비전력이 높고, 가격도 높다. 캐쉬메모리가 SRAM이다.

    우리는 어떻게 캐쉬메모리를 사용할까? 이 또한 우리가 따로 SRAM을 사서 조립하지 않지만 기본적으로 메인보드를 판매할때 SRAM또한 기본 구성으로 부착되어 있는 부분이 있고, 이 부분만으로도 일반적은 컴퓨터 사용에는 문제가 없기 때문에 캐쉬메모리를 이용할 수 있다.

  • SDRAM (Synchronous DRAM)
    발전된 D렘으로 "똑딱 똑딱"하는 clock signal(클럭신호)에 동기화된 DRAM이다. 한번의 클럭신호에 N번의 데이터를 전송할 수 있는 DRAM을 의미하며, 이 데이터의 전송 횟수에 따라서 SDR SDRAM, DDR SDRAM등을 구분지을 수 있다.

SDRAM의 구분

  • SDR SDRAM(Single Data Rate SDRAM)
    기본적으로 한번의 클럭신호에 한번의 데이터를 주고받는 SDRAM을 SDR SDRAM이라고 부른다.

  • DDR SDRAM(Double Data Rate SDRAM)
    SDRAM의 대역폭을 두배로 넓혀 두번의 데이터를 주고받는 SDRAM을 의미한다.

    -이후 DDR2 SDRAM, DDR3 SDRAM, DDR4 SDRAM은 이전 DDR SDRAM의 2배의 대역폭 가진 SDRAM이다.

    SDR SDRAM의 대역폭이 1이라면, DDR SDRAM은 2, DDR2는 4, DDR3 8, DDR4는 16의 대역폭을 가진다.

ROM(Read Only Memory)

롬의 경우는 Read Only Memory의 약자로, 컴퓨터의 기본 boot loader(부팅 시 초기화 및 실행되는 코드)나 바이오스(BIOS)와 같은 시스템 레벨의 프로그램 및 설정을 저장하는데 사용되는 메모리를 의미한다.

ROM이 없다면 당연히 우리는 BIOS나 기본 컴퓨터설치를 위한 설정사항을 만질 수 없을 것이다. 우리가 따로 ROM을 추가확장하지 않았는데 우리는 어떻게 BIOS를 실행할 수 있을까?

답은 이미 메인보드에 보통 ROM이 작은 칩형대로 부착되어 있기 때문이다. 우리가 추가적인 용량증가가 필요없이 기본 내용만 포함하면 되는 읽기 전용 메모리이기 때문에 큰 용량이 필요없고, 메인보드에서 동작할 BIOS과 같은 프로그램만 설치되기 때문에 보통 메인보드에 미리 설치되서 부착되어있다.

롬은 RAM과 달리 SSD나 HDD와 같이 비휘발성 메모리에 해당한다. 생각해보라 컴퓨터한번 껏는데 BIOS를 다시 설치한다는게.. 말이 안되지 않을까?

profile
22년 12월 개발을 시작한 신입 개발자 ‘권태형’입니다. 포스팅 하나하나 내가 다시보기 위해 쓰는 것이지만, 다른 분들에게도 도움이 되었으면 좋겠습니다. 💯컬러폰트가 잘 안보이실 경우 🌙다크모드를 이용해주세요.😀 지적과 참견은 언제나 환영합니다. 많은 댓글 부탁드립니다.
post-custom-banner

0개의 댓글