1장에서 ‘주기억장치의 종류에는 크게 RAM과 ROM, 두 가지가 있고 ‘메모리’라는 용어는 그 중 RAM을 지칭하는 경우가 많다’고 했다. 이번 절에서는 우리가 지금까지 배웠던 ‘메모리’라는 용어로 지칭했던 저장 장치인 RAM을 조금 더 자세히 알아보도록 하자. RAM 용량이 컴퓨터 성능에 어떤 영향을 미치는지 그리고 DRAM, SRAM, SDRAM, DDR SDRAM은 무엇이고 어떤 특징을 가지는지 가볍게 살펴보도록 하자. 참고로 이번 절에서는 ‘메모리’라는 용어 대신 RAM이라는 용어를 사용하겠다.

1. RAM의 특징

RAM에는 실행할 프로그램의 명령어와 데이터가 저장된다. 여기서 중요한 점은 전원을 끄면 RAM에 저장된 명령어와 데이터가 모두 날아간다는 것이다. 이렇게 전원을 끄면 저장된 내용이 사라지는 저장 장치를 휘발성 저장 장치(Volatile memory)라고 한다.

반면, 전원이 꺼져도 저장된 내용이 유지되는 저장 장치는 비휘발성 저장 장치(Non-volatile memory)라고 한다. 하드 디스크나 SSD, CD-ROM, USB 메모리와 같은 보조기억장치가 대표적인 비휘발성 저장 장치이다.

보조기억장치는 전원을 꺼도 내용을 유지하지만, CPU는 보조기억장치에 직접 접근하지 못한다. 그래서 일반적으로 보조기억장치인 비휘발성 저장 장치에는 ‘보관할 대상’을 저장하고, 휘발성 저자 장치인 RAM에는 ‘실행할 대상’을 저장한다. CPU가 실행하고 싶은 프로그램이 보조기억장치에 있다면 이를 RAM으로 복사하여 저장한 뒤 실행한다.

2. RAM의 용량과 성능

그렇다면 RAM 용량은 컴퓨터 성능에 어떤 영향을 미칠까? RAM 용량이 크면 어떤 점이 좋을까?

CPU가 실행하고 싶은 프로그램이 보조기억장치에 있다면 이를 RAM으로 가져와야 할 텐데, RAM 용량이 적다면 보조기억장치에서 실행할 프로그램을 가져오는 일이 잦아 실행 시간이 길어진다.

예를 들어 RAM 용량이 프로그램 A, B, C 중 하나만 저장할 수 있을 만큼 작다면 CPU가 프로그램 A를 실행하고 싶을 때는 보조기억장치에서 프로그램 A를 RAM으로 가지고 오고, 프로그램 B를 실해앟고 싶을 때는 다시 프로그램 B를 RAMd로 가지고 오고, 프로그램 C를 실행하고 싶을 때는 또 다시 프로그램 C를 RAM으로 가지고 와야 한다.

Untitled

하지만 RAM 용량이 충분히 크다면 보조기억장치에서 많은 데이터를 가져와 미리 RAM에 저장할 수 있다. 많은 프로그램을 동시에 실행하는 데 유리하다. 방금 전 예시의 경우 RAM 용량이 충분히 크다면 프로그램 A, B, C를 보조기억장치에서 여러 번 가져오는 수고를 덜 수 있다.

Untitled

CPU가 실행할 프로그램을 책에 빗대어 생각해보자. 보조기억장치는 책이 꽂혀 있는 책장과 같고, RAM은 책을 읽을 수 있는 책상과 같다. 책상이 크다면 책장으로부터 많은 책을 미리 책상으로 가져와 여러 권을 동시에 읽을 수 있기 때문에 책을 가지러 왔다 갔다 하는 시간을 절약할 수 있다. 이처럼 RAM 용량이 크면 많은 프로그램들을 동시에 빠르게 실행하는 데 유리하다.

그럼 RAM 용량이 무지막지하게 크면 프로그램 실행 속도는 그에 비례하여 빨라질까? 그렇지 않다. RAM 용량이 커지면 프로그램 실행 속도가 어느 정도 증가하는 것은 맞지만, 용량이 필요 이상으로 커졌을 때 속도가 그에 비례하여 증가하지는 않는다. 책을 100권 이상 올려놓을 수 있는 책상에서 책을 읽든, 1,000권 이상 올려놓을 수 있는 책상에서 책을 읽든 간에 책장을 오가는 시간에는 별 차이가 없는 것과 마찬가지이다.

3. RAM의 종류

이번에는 RAM의 종류를 알아보도록 하자. RAM의 종류에는 크게 DRAM, SRAM, SDRAM, DDR SRAM이 있다.

1) DRAM

DRAM은 Dynamic RAM의 준말이다. Dynamic은 영어로 ‘동적의’를 의미하는데, 이는 저장된 데이터가 동적으로 변하는(사라지는) RAM을 의미한다. 즉, DRAM은 시간이 지나면 저장된 데이터가 점차 사라지는 RAM이다. 그렇기에 DRAM은 데이터의 소멸을 막기 위해 일정 주기로 데이터를 재활성화(다시 저장)해야 한다.

이런 단점에도 불구하고 우리가 일반적으로 메모리로써 사용하는 RAM은 DRAM이다. 소비 전력이 비교적 낮고, 저렴하고, 집적도가 높기 때문에 대용량으로 설계하기가 용이하기 때문이다. (’집적도가 놓다’는 의미는 저 작고 빽빽하게 만들 수 있다는 말과 같다)

2) SRAM

SRAM은 Static RAM의 준말이다. Static은 영어로 ‘정적의’를 의미하는데, 이는 저장된 데이터가 변하지 않은 RAM을 의미한다. 시간이 지나면 점차 저장된 내용이 소실되는 DRAM과는 달리 SRAM은 시간이 지나도 저장된 데이터가 사라지지 않는다. 당연하게 주기적으로 데이터를 재활성화할 필요도 없다. 그리고 SRAM은 DRAM보다 일반적으로 속도도 더 빠르다. 참고로 시간이 지나도 저장된 데이터가 사라지지 않는다고 해서 SRAM이 비활성화 메모리인 것은 아니다. SRAM도 전원이 공급되지 않으면 저장된 내용이 날라간다.

하지만 이런 장점에도 불구하고 메모리로 사용되는 RAM은 일반적으로 SRAM이 아닌 DRAM이다. SRAM은 DRAM보다 집적도가 낮고, 소비 전력이 크며, 가격도 더 비싸기 때문이다. 그래서 SRAM은 메모리가 아닌 ‘대용량으로 만들어질 필요는 없지만 속도가 빨라야 하는 저장 장치’, 가령 캐시 메모리에서 사용된다.