2008. 5. 12. 10:20

SDRAM, DDR-SDRAM, RDRAM의 구분

가. SDRAM과 DDR-SDRAM

SDRAM은 Synchronus Dynamic Random Access Memory의 약자이다.

이 이전에는 DRAM, Fast Page DRAM, EDO-DRAM 등이 있었지만 데스크탑, 노트북 PC 분야에서는

  거의 사용을 하지 않는 것이기 때문에 이와의 구분은 여기서 생략한다..

개략적으로 얘기하자면 시스템 클럭과 동기로 동작하느냐 아니냐의 차이를 가지고 있다.

DDR-SDRAM은 SDRAM에서 한단계 발전한 램.

이 둘을 구분하기 위해서 일반 SDRAM을 SDR-SDRAM이라고도 부른다.

DDR은 Double Data Rate의 약자이고 SDR은 Single Data Rate의 약자이다..

DDR은 한 클럭당 2개의 데이타를 전송한다는 의미 이다.

컴퓨터에서의 데이타 통신은 기본적으로 0,1을 기준으로 하는 비트신호로 이루어진다..

실제의 데이타도 이 0,1을 사용해서 보내고 받는다.

이 때 해당 데이타를 보내기 위해서는 언제 보낼 것이냐 하는 기준이 필요하게 되며,

  이러한 약속이 없으면 통신이 이루어 지는 두 개의 장치 사이에 아무런 약속도 없는 상황이 되니까

  데이타를 보내도 그게 뭔지, 무엇 때문에 이런 걸 보낸 건지 전혀 알 수가 없는 상태가 된다..

어떤 방식으로 2개의 장치간에 통신이 이루어지는 가에 따라 이 약속이 틀려지지만,

  SDRAM과 CPU, 더 정확히 말해 SDRAM과 노스브릿지 또는 MCH와의 통신은 클럭과 몇가지 다른 신호

  이런 통신이 이루어 진다.

이 때 2 장치간의 전송속도에 가장 민감하게 영향을 미치는 것이 클럭이다.

클럭은 일정한 주기로 0,1이 반복되는 디지털 신호를 말하며, 일반적으로 데이터는 1클럭에 1개가 전송된다..

클럭은 단위가 Hz로 표기 되고, PC100 SDRAM의 경우 100은 100MHz의 주파수를 가진다는 의미이며,

  이는 초당 100,000,000회의 클럭수가 왔다갔다 한다는 뜻이다.

한 번 더 풀이하면 0,1이 이 횟수만큼 반복된다는 의미이다.

실제로는 조금 다르지만, 위의 클럭과 데이타 전송과의 관계를 보면 이 의미는 곧 1초에

  100,000,000개의 데이타가 전송된다는 의미와 같아짐을 알 수 있을 것이다.

그러면 DDR-SDRAM은 어떻게 동작하는 것일까?

SDR-SDRAM은 0,1이 한 번 반복되는 중에 1이 되면 그 때마다 1개씩 데이타를 전송한다.

DDR-SDRAM은 이와 달리 0->1, 1->0으로 바뀌는 매순간에 1개씩 데이타를 보낸다..

그래서 1클럭에 2개의 데이타를 전송할 수 있게 되며, 이 때 0->1로 바뀌는 순간을 rising edge,

  그 반대를 falling edge라고 한다..

DDR200이라는 규격명에서 뒤의 숫자는 기준클럭 100MHz에서 DDR로 동작한다는 의미이다..

즉 PC100이나 DDR200이나 동작속도는 동일한 100MHz이지만 전송은 DDR200은 100MHz에서

  클럭당 2개의 데이타를 전송한다는 것이 된다..

DDR-SDRAM의 규격은 DDR200, DDR266, DDR333 등으로 표기하기도 하고,

  PC1600, PC2100, PC2700 으로 표기하기도 한다.

PCxxxx의 뒤 4자리 숫자는 대역폭을 의미한다.

디지털 통신에서 대역폭이란 해당 통신규격에서 낼 수 있는 최대의 전송속도 말한다.

PC1600의 1600은 100MHz DDR로 동작하는 x86 호환 PC에 장착할 수 있는 SDRAM의 최대 전송속도..

이 때의 대역폭에 클럭과 같이 고려할 것이 전송되는 1개 데이터의 크기가 얼마냐 하는 것인데,

  SDR-SDRAM이나 DDR-SDRAM의 경우 이 크기는 64bit (64/8=8Byte) 이다.

이렇게 해서 최대 전송속도를 구해보면 아래와 같다.

100MHz * 2(DDR) * 64bits / 8(1Byte=8bits) = 1,600 MB/s (1,600,000,000Byte/s)

  PC2100, PC2600 도 같은 방법으로 계산할 수 있다.

DDR200, DDR266, DDR333 은 PC1600, PC2100, PC2700과 PC에서는 완전히 같은 의미이다.

이러한 규격은 JEDEC이라는 연합에서 제정하고 있으며, 여기에는 Intel, Samsung 등의 회사가 참여하고 있고

  2002년 10월 6일 현재 DDR333의 규격까지 완성되어 있다.


DDR2란, DDR의 기본적인 데이터 처리 방식은 그대로 두되 생산 공정을 바꾸어 성능을 높인 제품이다..

패키징 타입도 TSOP에서 BGA방식으로 바뀌었으며, 생산 단가가 좀 비싸졌지만, 설계상의 개선으로

  성능이 획기적으로 높아졌다. 작동 속도도 훨씬 높아졌다.

그럼으로써  기존 DDR램이 가지는 성능의 한계를 극복했다.


DDR3의 경우, DDR2와 기본적 방식은 같으나 설계를 개선하여 동작속도 향상되고 소비전력이 줄어들었다.

DDR2램의 성능 한계를 또다시 극복한 것이다..

240의 핀 수는 같으나 홈 위치가 다르므로 서로 호환되지는 않는다.

베어레이크라는 인텔 사의 차세대 메인보드 칩셋에서 이 메인메모리를 지원하며,

  AM2+ 라는 AMD사의 차세대 플랫폼에서 마찬가지로 이 램이 지원될 예정이다.


DDR4의 경우, 아직 메인메모리로 나오려면 멀었고, 시제품이 생산된지도 얼마되지 않았다. (2007년 현재)

일부 하이엔드 그래픽 카드의 메모리로만 활용되고 있으며, 라데온 1950 XTX에서 이 메모리를 사용하고 있다.

지포스 쪽에서는 아직 DDR3램을 쓰고 있으며, 현재 메모리의 핀 1개 당 처리속도는

  1.6Gbps(DDR3) : 2.5Gbps(DDR4)이다..  

메인메모리의 제원을 비교하면 다음과 같다.

순서는 램이름, 클럭속도, 소비전력, 핀 숫자이며, 이들은 서로 호환되지 않는다.


  -. DDR    :  200, 266, 333, 400 MHz         :     2.5V   :  184-pin

  -. DDR2  :  400, 533, 667, 800 MHz         :     1.8V   :  240-pin

  -. DDR3  :  800, 1066, 1333, 1600 MHz    :     1.5V   :  240-pin

나. RDRAM

RDRAM은 Rambus DRAM의 약자.

램버스디램은 DDR-SDRAM 처럼 DDR로 동작하지만 내부뱅크의 크기를 줄이면서 갯수를 증가시킨 다음

  이를 직렬로 연결해서 동작속도를 올린 것이다..

직렬 인터페이스라는 특성상 데이타폭을 넓히는 데는 한계가 있어서 16비트 또는 32비트의 데이터폭을 가진다..

실제 PC800 RDRAM의 동작속도는 100MHz이지만, 상당히 복잡한 과정을 거쳐 800MHz의 속도와 같은 전송속도를

  가지게 된다..

RDRAM의 공식적인 규격은 PC600, PC800, PC1066 과 RIMM3200, RIMM4200 등이 있다.

PC600, PC800, PC1066 은 16비트, RIMM4200 은 32비트로 동작하며, 물리적으로 이 2개의 규격은

  비슷하게 생겼지만 서로 상이하다.

즉, 한 쪽 규격의 Rambus DRAM은 다른 쪽 규격의 Rambus DRAM과 인터페이스 차원에서 호환이 전혀 안되므로

  슬롯에 꽂을 수가 없다.  RIMM을 지원하는 최초의 칩셋은 i850E 이다.

그 이전의 RDRAM칩셋은 모두 공식적으로 PC800 까지만 지원하였다..

이 문제 때문에 시간이 좀 흐른다면 " RDRAM이 슬롯에 꽂히지가 않는다 "라는 질문이 상당히 많이 나올 듯하다

RIMM4200의 4200은 PC2700의 2700과 비슷한 의미이다.

1066 * 32 / 8 = 4264MB/s = 4200 그리고 PC1066과 RIMM4200은 동작주파수는 동일.


다. 3종 램의 지원 칩셋

종합해 볼때 속도는 SDR-SDRAM < DDR-SDRAM < RDRAM 순으로 빠르고, 가격은 같은 순으로 높다.

가격대 성능비는 SDR-SDRAM과 DDR-SDRAM이 왔다갔다 하고 있지만,

  요즘의 상황으로 볼 때 역시 선택 1순위는 DDR-SDRAM이다.

현재는 DDR-SDRAM이 펜티엄 4에서 거의 주류를 이루고 있는 상황이며,

  실 사용자들이 비싼 RDRAM을 만족할 만한 성능향상도 없는 상태에서 사용하려고 하지 않는 상황이다.

SDR-SDRAM을 지원하는 인텔 펜티엄 4용 칩셋은 i845가 대표적이며,

  스펙상으로 보면 i845D 역시 SDR-SDRAM을 지원하지만 (i845와 i845D는 스테핑만 다르다 뿐 완전히 동일)

  실제 i845D를 사용해서 SDR-SDRAM을 지원하는 마더보드는 찾아보기가 굉장히 힘든 것으로 봐서,

  SDR-SDRAM의 마지막 칩셋은 역시 i845가 되지 않을까 한다.

현재 DDR-SDRAM을 지원하는 인텔의 펜티엄 4용 칩셋은 i845D(B-Stepping), i845E, i845PE 가 있고

  각각 DDR266, DDR266, DDR333 까지 지원하고 있다.

그 외의 차이점은 대표적으로 i845D는 USB1.1을, i845E와 i845PE는 USB2.0을 지원한다는 차이점이 있다.

RDRAM은 i820, i840, i850, i850E 가 있으며 i820은 절대 구입해서는 안 될 품목 1순위에 올라 있으며(?),

  i840은 i850에 완전히 묻혀버린 칩셋이고, i850은 PC800까지 i850E는 공식적으로 RIMM규격만 지원한다고 하려다가

  PCxxxx쪽의 지원도 인정한다는 쪽으로 방향을 선회하였으며 RIMM4200 또는 PC1066까지 지원하고 있다.


2. 양면램과 단면램의 차이, 그리고 칩셋에 따른 사용가능여부

일단 기본적인 용어로 컴포넌트와 모듈에 관해 알아 보자.

일반적으로 PC용 램을 구입하게 되면 8개나 16개의 램 칩이 PCB기판위에 꽂혀있는 제품을 사게 된다..

이 때 PCB기판 위에 꽂혀 있는 메모리칩들을 컴포넌트(component) 라고 하고,

  이 컴포넌트들과 PCB 기판의 조합을 모듈(module) 이라고 한다..


마더보드에서 이 모듈을 꽂는 곳을 램슬롯(램소켓, 램뱅크)라 부른다..

소켓은 보통 직사각형,원형 등의 2차원적인 형상을 가지는 인터페이스를 지칭할 때 많이 쓰고,

  슬롯은 길이방향의 인터페이스에 많이 쓰는 용어이다..

대표적으로 PCI 슬롯. 램 역시 길이방향으로 길쭉하게 생겼으므로 일반적으로는 소켓보다 슬롯이 더 적절,

  과거에는 컴포넌트를 직접 꽂아 쓰는 것이 있었기 때문에 아직도 소켓이라는 용어를 쓰기도 한다.

이 모듈은 다시 SIMM, DIMM으로 구분하는 데 SIMM(Single In-line Memory Module)은 모듈의 한면만 사용하고

  DIMM(Double In-line Memory Module)은 모듈의 양면을 다 사용하는 규격이다..

양면과 단면의 차이점은 모듈의 한쪽면에만 램칩이 달려 있는가 양쪽면에 다 달려있는가하는

  외형적인 차이점을 가지고 있다.


요즘의 규격은 모두 DIMM 타입이다. SIMM은 과거 30핀도 있고 72핀도 있었지만,

  현재 사용하는 DIMM의 핀수는 168핀, 184핀 등이 있다.

양면과 단면의 차이점은 뱅크라는 개념에 대해 어느정도 이해한다면 좀 더 잘 구분할 수 있을 거 같아서

  먼저 뱅크에 관해 설명해 보고자 한다.

DRAM에서 뱅크는 내부뱅크와 외부뱅크로 구분할 수가 있다.

각각의 컴포넌트는 데스크탑 PC에 장착하는 DDR-SDRAM의 경우 4개의 내부뱅크를 가지고 있다.


논리회로적으로는 외부뱅크가 2개냐 1개냐 하는 차이점을 가지고 있다.

다시 말해 외부뱅크란 이 모듈의 뱅크를 의미하며 이것은 CPU가 메모리의 주소를 지정할 때

  외부뱅크 -> 내부뱅크 -> 내부뱅크내의 주소(Row와 Column) 순으로 지정하기 때문에 이렇게 분류한다.

때로는 이 외부뱅크를 Row 라고 표기하기도 하고, 그냥 Bank 라고 표기하기도 한다.

Row 라고 표기하는 이유 : 

  램에는 페이지라는 개념이 있고 그 페이지라는 개념은 램내의 같은 Row를 의미하기도 하고

    이 외부뱅크와 약간 중복되는 면이 있기 때문이며, Bank라는 표기는 사용자 입장에서는 내부뱅크는

    별 의미가 없기 때문이기도 하다.   또, 램 슬롯을 그냥 Bank라고 표기하기도 한다.


DDR-SDRAM의 경우 단면이면 8개의 컴포넌트가, 양면이면 16개가 일반적으로 달려 있다.

같은 컴포넌트를 사용했을 경우 그 성능의 차이는 거의 없다고 보면 된다.
그렇다면 실제 마더보드에 램을 설치할 때 이 양.단면에 따라 어떻게 달라지는 걸까?

먼저 펜티엄 4용 인텔의 마더보드 칩셋인 i845D(E,PE) 를 중심으로 얘기하면 이 시리즈의 칩셋은

  DDR-SDRAM의 경우 총 2GB의 메모리에 접근할 수 있고, 접근 가능한 외부 뱅크의 수는 모두 4개 이다.

외부뱅크의 수가 4개니까 결국 양면램 2개 또는 단면램 4개를 인식할 수 있지 않을까하고 생각할 수 있을 것이며

  일단 양면 램 2개를 인식할 수 있다고 해 보자.

그러면 외부뱅크 1개당 접근가능한 램용량은 얼마가 될까? 2GB를 4로 나누면 512MB가 된다.

이렇게 보면 모듈 한쪽면에 512MB가 달려 있으면 i845시리즈는 읽을 수 있게 된다..

양면 모듈이라면 한쪽면 512, 다른쪽면 512 해서 1GB 양면램을 읽을 수 있게 된다.

일반적으로 램 슬롯 1개는 2개의 외부뱅크를 가지고 있느니까 i845를 채용한 마더보드는 원칙적으로

  2개의 램슬롯을 가지고 있다. 그러면 1GB 단면램은 어떨까?  읽을 수 없거나 512MB만 인식하게 될 것이다.

정리해 보자면 해당 칩셋이 총 얼마까지의 램을 인식할 수 있느냐, 그리고 몇개의 외부뱅크와 연결되느냐로

  얼마만큼의 용량의 램을 인식할 수 있는가를 계산할 수 있다.

한면당 최대 램용량 = 지원하는 최대메모리 양 / 지원하는 외부뱅크 수

  그러면 다른 예로 펜티엄 3의 440BX 칩셋을 보면 이 칩셋은 총 512MB(Registered RAM일 경우 1GB)의 메모리에

  접근할 수 있고 모두 8개의 외부뱅크와 연결될 수 있다.

따라서, "램 슬롯수는 4개이고 단면 64MB 또는 양면 128MB 를 초과하는 램은 사용할 수 없으며,

  Registered SDRAM을 구입해서 사용하면 단면 128MB까지도 접근할 수 있다"  라는게 440BX 칩셋에 관한

  인텔의 데이타쉬트의 내용인데 실제로는 일반 양면 SDRAM 256을 꽂아서 사용할 수 있었다.

또 문제가 되는 게 i845 시리즈의 마더보드중에 램 슬롯이 3개가 있는 게 있다.

원칙적으로는 2개의 램 슬롯 밖에 사용할 수 없지만 첫번째 슬롯을 제외한 나머지 2개의 슬롯은

  1개의 외부뱅크를 공유한다.

이 2개의 슬롯에 모두 램을 꽂아 사용하기 위해서는 2개다 단면램 512MB까지를 사용해야 한다.

2번째 슬롯에 단면 램을 장착하면 공유하는 외부뱅크는 안 쓰는 상태가 되고

  3번째 슬롯에 외부뱅크 하나를 할당할 수 있기 때문에 가능하다.

만약 양면 램을 사용하려면 2번째 슬롯에 꽂아 쓰면 되고, 나머지 하나는 안 쓰면 된다.

물론 꽂아봐야 소용도 없다.

그리고 이 외부뱅크 하나를 공유하는 2,3번째 슬롯은 동일회사의 동일제품을 설치해서 사용할 것을

  강력히 권장하고 있다. 속도가 다른 제품을 사용하면 부팅조차 안 될 수 있다.