[CS] RAM의 종류와 특성 (feat. 내 RAM 확인해보기)
*이 글의 내용은 제가 이해한 것을 바탕으로 작성되었습니다. 글의 내용 중 잘못된 내용이 있다면 댓글로 피드백 해주시면 감사하겠습니다.
0. 개요
RAM을 검색했을 때 나오는 이름인 DDR3 8GB PC3-12800 들이 무슨 의미인지 궁금해서 해당 내용을 정리해보고자 한다.
1. RAM 살펴보기
RAM(Random Access Memory) 을 검색하면 'DDR3 8GB PC3-12800' 같은 이름들이 나온다. 하나씩 살펴보자.
1-1. DDR3
DDR(Double Data Rate SDRAM)은 RAM의 종류를 의미한다.
RAM의 종류로는 DRAM, SRAM, SDRAM, DDR SDRAM 이 있다.
DRAM(Dynamic RAM)은 주기적으로 저장된 데이터가 사라지는 RAM이다. (전원이 계속 공급된 상태여도 사라진다.)
데이터가 사라진다는 단점에도 불구하고, 성능과 비용 문제로 일반적으로 주기억장치로 사용하는 RAM은 DRAM이다.
SRAM(Static RAM)은 저장된 데이터가 사라지지 않는 RAM이다. 그래도 휘발성 메모리이기 때문에 전원이 공급되지 않으면 데이터가 모두 날아간다. 속도는 빠르지만, 비용이 많이 든다. 그래서 '대용량으로 만들어질 필요는 없지만 속도는 빨라야 하는 저장 장치' 인 캐시 메모리에서 주로 사용된다.
SDRAM(Synchronous Dynamic RAM)은 DRAM이 발전된 형태로, 클럭 타이밍에 맞춰 CPU와 정보를 주고 받을 수 있는 DRAM이다.
여기서 클럭은 하나의 '신호' 단위를 의미하며, 컴퓨터의 모든 부품들은 이 '신호'에 맞춰 작동한다. 신호의 속도는 Hz라는 단위로 표기하고, 1초에 1번의 신호가 나타나면 1Hz로 표기한다. 각 하드웨어별로 별도의 클럭 속도를 가지고 있다.
CPU는 자체적으로 클럭을 발생시키지만, RAM은 직접 클럭을 발생시키지 않고 메인 보드에 내장된 '메모리 컨트롤러'의 클럭 신호를 수신하고 반응한다. 그렇기에 RAM의 클럭 속도가 빨라도 '메모리 컨트롤러'의 클럭 속도가 느리면 RAM의 속도를 모두 활용하지 못할 수도 있다.
DDR SDRAM(Double Data Rate SDRAM)은 SDRAM이 발전된 형태로, 대역폭(data rate)을 넓힌 SDRAM을 의미한다. 대역폭은 '주어진 시간 동안 전송된 데이터의 양'을 뜻하며, DDR은 한 클럭당 CPU와 데이터를 2번 주고 받게 함으로써 대역폭을 늘렸다. 참고로 클럭 하나당 한번 데이터를 주고 받는 일반 SDRAM을 SDR SDRAM(Single Data Rate SDRAM)이라고도 부른다.
DDR2는 SDR의 4배, DDR3는 SDR의 8배, DDR4는 SDR의 16배의 대역폭을 가진다. 당연히 대역폭이 커질수록 성능도 좋다. 단, DDR 버전이 다를 경우 물리적인 구조가 다르기 때문에 하드웨어의 메모리 슬롯에 맞춘 버전을 사용해야 한다.
그럼 대역폭을 어떻게 늘렸을까? 좀 더 자세히 살펴보자.
DDR~DDR4 는 모두 동일하게 한 클럭 주기당 두 번의 데이터 전송을 지원한다.
실제 메모리 요소인 DRAM CELL의 속도를 올리는 건 한계가 있었고, 메모리 자체의 작동 속도보다 더 빠른 속도로 전송하기 위해 prefetching이라는 구조를 적용하였다. 메모리가 작동할 때 한 비트씩 읽어 들이는 대신 4개, 8개의 Cell을 동시에 작동 시켜 4비트, 8비트씩 한 번에 읽어 들이는 방식이다. (이를 Burst Length, Burst Size 라고도 한다.)
이 prefetching은 DRAM 데이터 버스의 비트별로 따로 이루어지고, DRAM 데이터 버스는 64비트이기 때문에 8배(8N) prefetching은 64비트의 8배인 64바이트씩 데이터를 처리하게 된다.
그런데 DDR4는 위처럼 prefetching을 두배로 늘리지 않고, '뱅크 그룹' 이란 단위를 도입해 성능을 올린다.
'뱅크 그룹'은 여러 뱅크를 따로 그룹 단위로 분리한 개념이다. 기존에도 배열된 메모리(Array) 몇 개를 묶어 뱅크(Bank)라 부르고, 이 메모리 뱅크를 여러 개 모아서 메모리 모듈을 구성하였다.
위 그림에서 Memory array라 적힌 것이 Bank이고, DDR3 그림에서는 8개의 Bank가 사용된 것이다. 이때, Bank간 데이터 간섭을 방지하기 위해 Bank 끼리 이동을 할 때 tCCD_s, tCCD_l 이라는 지연 시간이 존재한다. 최소 지연 시간 자체를 줄이는 대신 새로운 뱅크 그룹을 이용해 지연 시간을 감추는 방법을 사용한 것이 DDR4이다.
1-2. 8GB
RAM의 용량을 뜻한다.
1-3. PC3-12800
PC3는 "Personal Computer 3rd Generation"의 준말로, 마이크론(Micron Technology)사가 정의한 메모리 모듈의 표준이다. 사실상 DDR3와 똑같지만 표기에서 큰 차이가 있다.
DDR3-1600은 데이터 전송 속도가 1600MT/s임을 의미한다. DDR은 한 클럭당 두 번의 데이터를 전송하므로 클럭 속도는 800MHz 이다.
PC3-12800은 대역폭이 12800MB/s임을 의미하며, 전송 속도 x 데이터 버스의 폭 으로 계산한다. 일반적으로 데이터 버스의 폭은 64비트(8바이트) 이므로 데이터 전송 속도에 8을 곱하면 된다.
1-4. DDR3 8GB PC3-12800
다시 돌아와서, DDR3 8GB PC3-12800의 의미를 분석해보자.
DDR3 타입, 용량은 8GB, 대역폭은 12800MB/s 라는 의미이다. 대역폭을 통해 데이터 전송 속도는 1600MT/s, 클럭 속도는 800MHz 임을 알 수 있다.
2. 내 RAM 확인해보기
cpu-z 라는 프로그램을 통해 내 RAM은 무엇이고 성능은 어떤지 확인해보자.
(cpu-z의 Memory 탭은 RAM에 대한 정보만 보여준다. ROM과 캐시 메모리에 대한 정보는 다른 탭에서 확인할 수 있다.
)
1,2,5번 부분을 보면 타입은 DDR4, 용량은 12GB, 클럭 속도는 약 1600 MHz임을 알 수 있다.
3번은 메모리 컨트롤러의 채널이 64비트짜리 데이터 버스 2개 라는 의미이다.
4번은 메모리 컨트롤러의 클럭 속도이다.
6,7번에서 내 메모리 슬롯 1번에 8GB짜리 DDR4-3200 RAM이 들어있음을 확인할 수 있다.
전체 용량이 12GB 였으므로 다른 메모리 슬롯에 4GB짜리 RAM이 있어야 한다. 다만 어째서인지 cpu-z에선 확인이 되지 않는다.
작업관리자의 성능 탭을 보면 총 슬롯 수와 사용된 슬롯 수를 확인할 수 있다. 아마 8GB DDR4-3200, 4GB DDR4-3200 으로 예상된다.
성능 탭에 적힌 속도는 데이터 전송 속도로, 3200MT/s가 더 정확하다.
그 외에 성능 탭에서 확인할 수 있는 메모리의 내용들은 차후 다른 글에서 다룰 예정이다.