DDR1, DDR2, DDR3, GDDR1, GDDR2, GDDR3, GDDR4, GDDR5의 특징을 설명하고 비교한 글입니다. 썩 자세하다고 볼 순 없지만 그래도 이정도라도 해 놓은 글을 아직까지 보진 못해서 올립니다. 출처는 http://www.pcpop.com/doc/0/309/309766.shtml

 

 

현재 CPU가 사용하는 메모리는 DDR2에서 DDR3으로 넘어가는 중이며, GPU가 사용하는 비디오 메모리는 GDDR2/3 위주에 GDDR4를 건너 뛰어 바로 GDDR5로 가고 있습니다. 많은 사람들은 GDDR5가 그렇게 많이 클럭을 확장한 것이고, GDDR 메모리가 DDR의 발전 속도보다 엄청나게 빠르게 발전한 이유를 궁금해하고 있으며, 심지어는 GDDR1/2/3/4/5와 DDR1/2/3 사이에 어떤 관계가 있는지도 잘 모르고 있습니다.

 

최근 들어 CPU와 GPU의 발전 속도는 한눈 팔 여유를 주지 않을 정도입니다. 새 제품의 연산 능력은 배로 늘어나고 있는데, 이때 메모리 시스템에는 큰 수요가 발생하게 됩니다. 왜냐하면 CPU/GPU의 연산에 필요한 데이터와 생성되는 데이터는 모두 시스템 메모리/비디오 메모리에서 나오는 것이며, 만약 데이터 저장 속도가 따라가지 못한다면 데이터를 불러오는데 기다리는데 시간을 낭비하게 되며, 이것은 곧 CPU/GPU의 성능을 발휘하는데 영향을 주게 됩니다.

 

시스템 메모리/비디오 메모리가 병목 현상을 일으키지 않도록, 칩 제조사들은 대역폭을 올릴 방법을 생각해 내야 했습니다. AMD와 인텔은 차례대로 메모리 컨트롤러를 CPU 내부에 내장하여 레이턴시를 대폭 줄여 저장 효율을 높였고, 인텔의 플래그쉽 CPU는 트리플 채널 메모리를 지원하여 대역폭을 50% 올렸습니다. ATI와 NVIDIA는 차례대로 512비트 메모리 컨트롤러를 사용하여 메모리 대역폭을 늘렸습니다.

 


메모리가 데이터를 엑세스하는 원리와, 뛰어넘기 어려운 클럭의 장벽

 

시스템 메모리와 비디오 메모리를 모두 메모리(Memory)라고 부르는데, 이것의 정확한 명칭은 Dynamic Random Access Memory, DRAM입니다. 기본 원리는 콘덴싱 원리로 전하를 저장하여, 그 많고 적음으로 0과 1을 대표합니다. 이것을 이진법 단위로 비트(bit)라고 하며, 메모리의 제일 작은 단위입니다.

 

000868822.jpg


DRAM의 저장 유닛 구조도

 

DRAM의 구조는 간단하며 고효율적입니다. 각각의 비트는 하나의 트랜지스터에 하나의 콘덴서를 더한 것에 불과합니다. 하지만 콘덴서는 누설 전류 현상을 피할 수가 없습니다. 만약 전하가 부족하면 데이터가 틀려지게 되고, 따라서 콘덴서는 반드시 주기적으로 리프레시(프리 차지)를 하여야 하는데, 이것은 DRAM의 제일 큰 특징입니다. 뿐만 아니라 콘덴서의 충/방전에는 하나의 과정이 필요한데, 리프레시 클럭이 무한정으로 올라갈 수 없는데(클럭의 장벽), 이것은 DRAM의 클럭이 아주 간단하게 한계에 도달하도록 하고 있습니다. 따라서 선진 공원의 지원이 있다 하더라도 그 효과는 매우 미약합니다.

 

000868875.jpg

 

'고대'의 EP/EDO 메모리는 반도체 제조 공정의 제한으로 인해 클럭이 25MHz/50MHz밖에 안됐습니다. SDR 이후에는 클럭이 66MHz에서 133MHz까지 잘 올라갔지만 마침내 클럭의 장벽을 맞이하게 됐습니다. 이후에 탄생한 DDR1/2/3 시리즈는 저장 셀의 공식 클럭(JEDEC이 제정)이 시종일관 100MHz~200MHz 정도를 배회하고 있을 뿐이며, 비공식(오버클럭) 클럭이라고 해도 250MHz 정도이고 300Mhz를 넘기기 아주 어렵습니다. 사실상 클럭이 아주 높은 메모리는 데이터 값이 틀릴 확률이 매우 높으며 안정성도 보증하기 힘들어져, 오버클럭에서 간단한 테스트를 할 때 외에는 실제적인 응용 가치는 없는 셈입니다.

 

비록 저장 셀 유닛의 클럭(간단히 말해 코어 클럭. 콘덴서의 리프레시 클럭이기도 함)을 무한대로 올릴 수 없긴 하지만, I/O(입/출력) 부분에서라면 이야기가 달라집니다. I/O 유닛을 고쳐서 DDR1/2/3, GDDR1/2/3/4/5 등의 형형 색색의 메모리가 탄생하게 되는데, 먼저 DDR1/2/3 사이에 어떤 관계와 특징이 있는지를 보도록 하겠습니다.

 

 

통상적으로 여러분들이 말하는 DDR-400, DDR2-800, DDR3-1600 등은 사실 메모리의 진짜 클럭이 아니며, 업계에서 그 정도의 클럭과 같은 성능을 낸다고 약정한 것입니다. 이들 DDR1/2/3 메모리는 SDR 메모리가 400Mhz, 800Mhz, 1600Mhz로 작동하는 것과 같은 대역폭이 나옵니다. 클럭의 확장에 한계가 있기 때문에 이들 메모리의 진짜 코어 클럭은 200Mhz밖에 안됩니다.

 

메모리에는 3가지 다른 클럭이 존재하는데 각각 코어 클럭, 타이밍 클럭, 유효 데이터 전송 클럭입니다. 코어 클럭은 메모리 셀 어레이(Memory Cell Array, 즉 내부 콘덴서)의 리프레시 클럭이며 이것이 메모리의 진짜 실행 클럭입니다. 타이밍 클럭은 I/O 버퍼(입/출력 버퍼)의 전송 클럭입니다. 유효 데이터 전송 클럭은 데이터를 전송하는 클럭으로 우리가 보는 메모리의 클럭이 바로 이것입니다.

 

SDR과 DDR1/2/3 시리즈의 클럭 대조표

 

001191943.jpg


흔히 보는 DDR 메모리의 클럭 대조표

 

위의 표를 통해, 최근 들어 메모리의 클럭이 배로 늘어나고 있지만, 실제 메모리 셀의 클럭은 줄곧 133Mhz~200Mhz 사이를 배회하고 있다는 것을 직관적으로 볼 수 있습니다. 이것은 콘덴서의 리프레시 클럭이 제조 공정의 제한을 받으며 이를 개선하기 매우 어렵기 때문입니다. 각 세대의 DDR에서는 모두 비교적 낮은 셀 유닛 클럭에서 더 큰 대역폭을 실현할 뿐만 아니라, 앞으로 사용하게 될 클럭과 대역폭을 위해 어느 정도의 여유를 남겨두고 있습니다.

 

SDR과 DDR1/2/3의 저장 원리

 

비록 셀 유닛의 클럭이 줄고 변하지 않았어도, 메모리 칩의 I/O 클럭은 계속 상승하였으며, 여기에 추가로 DDR은 2배의 데이터를 전송하기 때문에, 메모리의 데이터 전송률은 코어 클럭의 8배 이상까지 도달하게 되었습니다. 아래 그림을 통해 간단히 알아봅시다.

 

000876588.jpg

 

그럼 메모리 I/O 클럭은 어떻게 코어 클럭보다 몇배 빠르게 작동할 수 있는 것일까요?

 

 

많은 사람들이 DDR1/2/3 메모리에서 제일 중요한 기술이 각각 2/4/8비트 데이터 프리패치(prefetch)라는 것을 알고 있습니다. 여기서 두배의 대역폭을 얻어내며, 이와 동시에 I/O 컨트롤러 역시 이에 맞는 개선이 필요합니다.

 

DDR1/2/3 데이터 프리패치 기술의 원리

 

프리패치라는 단어의 의미는 데이터를 먼저 읽어들이고 저장한다는 것입니다. 이는 I/O 컨트롤러에서 필요한 것을 보내기 전에, 메모리 셀에서 먼저 2/4/8비트 데이터의 준비를 마친다는 의미도 됩니다. 간단히 말해서 병렬 전송되는 데이터를 직렬 전송되는 데이터 흐름으로 바꾼다는 것이며, 이것을 메모리 셀 유닛 내부의 레이드/다 채널 기술이라 보고, 캐패시터 어레이 단위에서 이루어진다고 할 수 있겠습니다.

 

000868904.jpg

 

메모리 데이터 프리패치의 설명. 병렬과 직렬.

 

이런 셀 어레이 내부의 실제 너비는 비교적 크지만, 데이터 출력 너비는 비교적 작게 설계되어 있습니다. 그래서 데이터 프리패치 기술이 메모리의 데이터 메모리의 데이터 전송 클럭을 배로 늘리는 것입니다.  두꺼운 파이프에 가느다란 파이프를 연결한다고 생각해 봅시다. 그렇다면 물이 분사되는 속도가 몇배로 될 것입니다. 

 

데이터 프리패치 기술의 원리를 알았다면, DDR1/2/3 메모리의 정의를 봅시다. 그럼 더 확실해질 것입니다.

 

SDRAM(Synchronous Dynamic Random Access Memory)

 

여기서 말하는 Synchronous-동기화-는 SDR 메모리의 셀 유닛 클럭, I/O 클럭, 데이터 전송률이 모두 같다는 것을 의미합니다. 고전 메모리인 PC 133을 예로 들면, 이 제품은 세가지 클럭이 모두 133MHz입니다.

 

SDR은 하나의 타이밍 사이클에 읽기/쓰기가 오직 한번 가능합니다. 오직 그 때에만 데이터를 읽고 쓸 수 있으며, 읽기와 쓰기를 동시에 하려면 먼저 다른 동작을 끝낸 다음에 다음 동작을 계속하여 할 수 있습니다.

 

DDR(Double Date Rate Synchronous Dynamic Random Access Memory)

 

Double Date Rate는 하나의 타이밍 사이클에서 두번의 데이터를 전송한다는 것을 의미하며, 상승기와 하강기에 각각 한번의 데이터를 전송할 수 있습니다. 셀 어레이의 클럭이 변하지 않아도 데이터 전송률을 SDR의 두배로 낼 수 있으며, 이때 I/O가 셀 어레이에서 2비트의 데이터를 캐싱할 필요가 있기에, I/O 작동 클럭은 셀 어레이 클럭의 두배가 되는 것입니다.

 

DQ 클럭과 I/O 클럭은 같으며, DQ 타이밍 상승기와 하강기에 두번의 데이터를 전송할 수 있어, 셀 어레이 클럭의 두배가 됩니다.

 

DDR2(Double Date Rate 2 Synchronous Dynamic Random Access Memory)

 

DDR2는 DDR1을 기초로 하여, 데이터 프리패치 비트를 2비트에서 4비트로 확충한 것인데, 상/하행에서 동시에 데이터를 전송할 수 있으니(두배) 이것만으로도 4비트 프리패치의 요구를 만족하지 못하여, I/O 컨트롤러 클럭도 반드시 배로 늘어나야 합니다.

 

이렇게 해서, 셀 유닛의 클럭을 133~200Mhz으로 유지하면서도, DDR2의 실제 클럭은 266~400Mhz가 됩니다. 또한 이것의 데이터 전송률은 533~800MHz가 됩니다.

 

DDR3(Double Date Rate 3 Synchronous Dynamic Random Access Memory)

 

DDR3는 이해하기 더 쉽습니다. 데이터 프리패치 비트를 다시 8비트로 올리고, 똑같은 원리로 I/O 컨트롤러 클럭 역시 배로 늘린 것입니다. 이때 셀 유닛의 클럭은 여전히 133~200Mhz가 변하지 않고 유지되는 상황에서, DDR3의 실제 클럭은 533~800Mhz가 되며, 실제 데이터 전송률은 1066~1600Mhz가 되는 것입니다.

 

상술한 것을 통해, DDR1/2/3의 발전은 데이터 프리패치에 의해 이루어졌다는 것을 볼 수 있습니다. 동시에 I/O 컨트롤러도 상당한 압력을 주고 있습니다. 비록 셀 유닛의 동작 클럭이 변하지 않았지만, I/O 클럭이 늘어나면서 우리가 보는 DDR3 메모리의 I/O 클럭은 이미 1GHz의 벽을 넘어섰습니다. 이때 I/O 클럭이 새 병목 현상의 원인을 만들게 되는데, 만약 DDR4가 나온다면(GDDR4가 아닙니다. DDR4와 GDDR4는 서로 다른 개념이며, 이에 대해서는 뒤에서 다시 설명하겠습니다) 여러가지 알려지지 않은 요인의 제약을 받게 되기에, 반드시 선진 제조 공정이나 새로운 해결 방법을 도입해야만 DDR의 생명을 연장할 수 있을 것입니다.

 

 

앞에서 역대 메모리의 기술 원리를 소개했습니다. 비교적 작은 물건을 크게 설명했다고 할 수 있겠습니다. 우리가 보는 메모리와 칩에는 모두 앞에서 말한 것들을 가지고 있습니다. 하지만 일부 개념들은 아직 이해하기 어려운 것이 있는데, 여기에서 설명하도록 하겠습니다.

 

메모리 대역-SDR/DDR1/2/3은 모두 64비트

 

메모리 모듈의 설계는 메모리 컨트롤러(노스브릿지나 CPU 내부에 내장된)에 달려 있습니다. 이론적으로 대역폭은 무한히 상승할 수 있지만 이를 제약하는 요소가 비교적 많습니다. 높은 대역폭은 칩을 더욱 복잡하게 만들게 되며, 메인보드의 회로에는 엄격한 요구가 있으며, 메모리 PCB는 더더욱 조금이라도 세심하게 하지 않으면 안됩니다. 메모리 칩과 칩셋의 설계에도 역시 반드시 상응한 조정이 필요합니다. 이런 이유 때문에 업계에서는 몇년 동안 64비트 설계를 유지해오고 있습니다.

 

이와 비교해서 그래픽카드는 이것 하나로 독립되어 있기 때문에, 시스템 메모리처럼 고려할 것이 많진 않습니다. 오직 GPU 내부의 비디오 메모리 컨트롤러만 다시 설계하면 됩니다. 그 후에 PCB를 대역폭의 요구에 따라 회로를 그리고, 더 많은 메모리 칩을 연결하여 붙이면 끝입니다. 비록 제조 원가가 비싸긴 하지만 512비트를 실현하는 것도 그리 어렵진 않습니다.

 

멀티 채널 메모리 - 듀얼 채널/트리플 채널

 

높은 버스의 메모리를 실현하기 어려운 이상, 뒤로 한발 물러나서, 두 메모리가 병렬으로 데이터를 전송하도록 하여 대역폭을 똑같이 배로 늘리는 방법이 있습니다. 현재 널리 쓰이는 듀얼채널 기술이 이와 같은데, 노스브릿지와 CPU 내부에 2개의 독립된 64비트 메모리 컨트롤러를 내장하여, 동시에 전송하는 데이터를 128비트와 똑같은 대역폭을 내는 것입니다.

 

인텔 네할렘 코어 CPU는 직접 트리플 채널 메모리 컨트롤러를 내장하여 메모리 버스가 192비트입니다. 하지만 CPU, 메인보드, 메모리 부분의 제조 원가가 상당히 늘어나기 때문에, 메인스트림 린필드 코어 CPU에서는 다시 듀얼 채널 메모리 설계로 돌아갔습니다. 사실상 서버 칩에서는 쿼드 채널 메모리를 사용할 수 있으며, 서버에서는 가격이 그리 큰 문제가 되지 않고, 안정성과 내고장성에 대한 요구만 높을 뿐입니다.

 

메모리 칩의 비트 너비 : 4/8/16/32비트

 

이론적으로, 대역이 64비트짜리 칩을 하나 만들면 하나의 메모리로 사용할 수 있습니다. 하지만 이런 설계는 기술적인 요구가 매우 높으며, 제품 수율이 매우 낮아 제조 원가를 조절할 수 없기에 응용 범위가 매우 좁습니다.

 

따라서 메모리 칩 한개의 비트 너비-대역폭은 매우 좁아, 데스크탑 컴퓨터에 쓰이는 메모리 칩의 대역폭은 최고 16비트밖에 안되며 자주 쓰이는건 4/8비트 뿐입니다. 이걸로 64비트 메모리 수요를 맞추려면 최소 4개의 16비트 칩을 쓰거나, 8개의 8비트 칩을 쓰거나, 16개의 4비트 칩을 써야만 합니다.

 

반면 그래픽카드는 대폭의 요구가 매우 높으며 용량은 그 다음으로 밀려나게 됩니다. 따라서 비디오 메모리 칩의 대역은 보편적으로 메모리 칩의 용량보다 더 크며(이것이 비디오 메모리와 시스템 메모리의 주요 차이 중 하나입니다), GDDR3/4/5 칩은 모두 32비트이고, 4개를 사용하면 저가형 그래픽카드의 128비트 수요를 만족할 수 있으며, 8개를 사용하면 고급형 그래픽카드 256비트의 수요를 맞출 수 있습니다. 저가형 GDDR2 칩은 16비트이니 8개를 사용해야면 저가형 그래픽카드의 128비트 수요를 맞출 수 있습니다.

 

메모리 칩의 로지컬 뱅크

 

칩의 내부에는 메모리의 데이터가 비트 단위로 기록되는 거대한 배열(어레이)가 있는데, 각각의 셀 유닛은 셀 어레이라고 칭해지며, 한개의 행과 한개의 열로 지정되어 있어, 정확하게 특정 셀의 위치를 정할 수 있는데, 이는 메모리 칩이 주소를 찾는 기본 원리입니다. 이 배열은 우리가 메모리 칩의 뱅크라고 부르는 것으로, 로지컬 뱅크(Logical BANK)라고 부르기도 합니다.

 

오직 하나만으로 전체 용량을 가지는 로지컬 뱅크를 만들 수가 없기에, 단일 로지컬 뱅크는 매우 심한 어드레스 충돌이 일어나게 되며, 이것은 메모리의 효율을 대폭 떨어트리게 됩니다. 따라서 대용량 메모리 칩은 모두 여러 개의 로지컬 뱅크가 쌓여져 조성되어 있습니다. 간단히 말해서, 하나의 뱅크는 하나의 종이같은 평면에 배열로 만든 것이며, 메모리 칩은 이런 종이같은 배열들이 샇여져 만든 것입니다.

 

하나의 뱅크 대역폭은 곧 메모리 칩의 대역폭입니다. 메모리 컨트롤러는 오직 한개의 뱅크에만 조작을 허용하며, 로지컬 뱅크의 어드레스 회로는 공용이므로, 읽기/쓰기에는 별도의 로지컬 뱅크 신호가 필요하게 됩니다.
 
메모리의 물리 뱅크

 

메모리 컨트롤러의 대역은 반드시 메모리의 대역과 같아야 합니다. 이렇게 해야 하나의 클럭 사이클에 모든 데이터를 전송할 수 있습니다. 이러한 대역은 하나의 물리 뱅크를 만드는데(통상적으로 64비트), 각각의 메모리는 최소한 한개의 뱅크가 있으며, 많은 경우 2개의 물리 뱅크가 있습니다.

 

한개의 물리 뱅크는 대역을 낭비하지 않으며, 이론적으로 제일 합리적인 형태로 조성되어 있습니다. 하지만 대용량 메모리를 실현하기 위해 한개 메모리에 여러개의 물리 뱅크도 허용하고 있습니다. 하지만 메모리 컨트롤러가 허용할 수 있는 최대 뱅크의 수에 한계가 있기 때문에, 자주 쓰이는 것은 듀얼 물리 뱅크 설계이며, 특수한 메모리나 서버 메모리에서만 쿼드 뱅크 이상의 설계를 사용합니다. 왜냐하면 이런 메모리는 호환성이 좋지 않아 칩셋을 가리기 때문입니다.

 

사실상 그래픽카드에서도 듀얼 물리 뱅크 설계를 사용하는데, 목적은 초대용량의 비디오 메모리입니다. 예를 들어 1GB의 9800GT는 앞/뒤면에 모두 16개의 16M 3 32비트 GDDR3 비디오 메모리를 장착하여 총 대역폭은 512비트지만 실제로 비디오 메모리 컨트롤러가 256비트까지만 지원하는데, 이것이 바로 듀얼 물리 뱅크입니다.

 

 

일찌기 SDRAM 시대에서 그래픽카드에 사용된 비디오 메모리 칩과 시스템 메모리에 사용된 메모리 칩은 완전히 같았습니다. 그때 GPU의 연산 능력이 한정되었기 때문에 데이터 대역폭의 요구 수준이 자연스럽게 높지 않았고, 따라서 고클럭 SDRAM 칩으로 수요를 만족할 수 있었습니다.

 

001195287.jpg

 

어떤 TNT2 그래픽카드는 PC166의 SDR 메모리 칩을 사용했습니다.

 

메모리에 만족하지 못하는 그래픽카드의 요구가 비디오 메모리를 탄생시킴

 

원래 같은 뿌리에서 나온 SDR과 DDR이 시대를 교체해 나갔습니다. 사실 초창기 그래픽카드의 DDR 칩은 시스템 메모리에 쓰이는 DDR 칩과 같습니다. 나중에는 GPU의 특수한 수요에 따라 비디오 메모리와 시스템 메모리의 칩이 서로 달라지기 시작했는데, 그 중에는 몇 가지 방면이 존재합니다.

 

1. GPU가 CPU보다 더 높은 대역을 필요로 합니다. GPU는 CPU와 같은 대용량 L2/3 캐시가 없으며, GPU와 비디오 메모리 사이의 데이터 교환은 CPU보다 훨씬 더 빈번하게 이루어질 뿐만 아니라, 대다수가 돌발적인 데이터의 흐름이기 때문에, GPU가 CPU보다 더 높은 비디오 메모리 대역의 지원을 필요로 하는 것입니다.

 

메모리 버스 x 클럭 = 메모리 대역폭이기에, 높은 대역폭을 내는 방법은 메모리 버스나 메모리 클럭을 높이는 것입니다. 하지만 GPU의 메모리 버스와 클럭에 대한 수요는 다른 이유들도 있습니다.

 

2. 그래픽카드가 더 높은 버스의 비디오 메모리를 필요로 합니다. 그래픽카드의 기판 공간은 한정되어 있어, 유한한 공간 안에 합리적으로 비디오 메모리 칩을 내장하는 것은, 고/중/저가형 그래픽카드를 막론하고 전부 같은 문제를 가지고 있습니다.

 

제일 초창기의 비디오 메모리는 한개의 16비트 칩이었는데 나중에 32비트로 업그레이드 되었고, 앞으로는 더 높은 규격이 출현할 것입니다. 반면 시스템 메모리 쪽은 그렇지 않습니다. 몇 년간 메모리(여러 메모리 칩이 모여서 이루어진)가 모두 64비트였기에, 메모리 칩들이 높은 대역을 만들 필요가 없고 그저 용량만 높으면 됩니다. 따라서 메모리 버스는 줄곧 4/8 비트 정도였습니다.

 

3. 그래픽 카드는 비디오 메모리와 더 높은 효율을 낼 수 있습니다. 비디오 메모리 칩은 GPU와 셋트를 이루어 사용하며, 전문적인 설계와 최적화를 거쳤습니다. GPU의 메모리 컨트롤러를 CPU나 노스브릿지에 내장된 메모리 컨트롤러와 비교하면 성능이 우수할 뿐만 아니라, 그래픽카드 PCB에 따라 최적화를 할 수 있습니다. 따라서 비디오 메모리가 일반적으로 더 높은 클럭을 낼 수 있습니다. 반면, 시스템 메모리는 메모리 기판, 메인보드 회로, 노스브릿지와 CPU 등의 여러 가지 요소들이 클럭을 제한하고 있습니다.

 

이렇게 보면, 비디오 메모리와 시스템 메모리가 서로 갈라진 것은 놀랄만한 일이 아니며, 전부 그럴만한 사정이 있는 것입니다. 그래픽카드 GPU의 특수한 요구에 맞춰서, 일부 제조사들(삼성과 같은)이 그래픽 시스템에 최적화한 고속 DDR 비디오 메모리를 설계하여 출시한 것, 그것을 Graphics Double Data Rate DRAM, 줄여서 GDDR이라고 부릅니다.

 


GDDR - 비디오 메모리와 시스템 메모리의 정식 분가

 

GDDR은 1 세대의 비디오 메모리 전용 칩으로서, 그 기술적인 부분은 DDR과 어떤 차이도 없습니다. 똑같이 2비트 프리패치를 사용하여 이론적인 클럭은 GDDR이 DDR보다 그리 높지도 않습니다. 하지만 나중에 공정을 개선한 GDDR은 우수한 기판을 가진 그래픽카드의 지원으로, GDDR 비디오 메모리가 최고 900MHz까지 클럭이 상승할 수 있었습니다. 반면 DDR 메모리는 600Mhz에 불과했으니, 비디오 메모리와 시스템 메모리의 거리가 이때부터 벌어지기 시작했습니다.

 

TSOP 패키징의 GDDR 16비트

 

000031747.jpg

 

8M x 16비트 4.0ns TSOP II 패키징을 사용한 GDDR. 칩 하나의 용량은 16MB, 이론 클럭은 500Mhz.

당시 라데온 9550, 지포스 FX 5700과 같은 128비트 중급형 그래픽카드는 8개의 칩을 사용하야만 128비트를 구성할 수 있었음.

 

TSOP 패키징의 GDDR 칩은 외관과 스펙 등이 모두 DDR 메모리 칩과 구별이 없었습니다. 그래서 당시 많은 사람들이 GDDR과 DDR이 같은 것으로 생각하게 되었는데, 사실 두 제품 사이에는 엄연히 차이가 존재합니다.

 

GDDR은 4K 순환 32ms의 리프레시 사이클을 사용하였지만, DDR은 8K 순환 64ms의 리프레시 사이클을 가짐.
GDDR은 클럭을 추구하기에 레이턴시를 좀 더 넓게 잡았습니다. GPU는 레이턴시에 대해 그리 민감하진 않을 것입니다.
GDDR 칩의 용량은 작고 메모리 버스는 큽니다. 일반적으로 8 x 16비트(16MB)의 스펙인데, 반면 DDR 칩의 용량은 크고 메모리 버스는 작습니다. 비록 16비트짜리 칩이 있긴 하지만 제일 자주 쓰이는 것은 8비트와 4비트이고, 칩 하나의 용량은 32MB와 64MB입니다.

 

더 큰 메모리 버스를 실현하여 GDDR의 성능을 개선하기 위해, 나중에 여러 제조사들은 전기적 성질이 더 좋은 MBGA 패키징을 사용합니다. 당연히 시스템 메모리 칩도 MBGA 패키징을 사용하긴 했지만, 스펙에서의 차이가 비교적 크고, 칩의 메모리 버스가 다릅니다.

 

MBGA 패키징의 GDDR 32비트

 

001196370.jpg

 

4M×32Bit 2.2ns MBGA 패키징을 사용한 GDDR. 칩 한개의 용량은 16MB, 이론 클럭은 900MHz.

8개가 모여 128MB 256비트를 구성, GDDR1 최후의 전성기였습니다.

 

MBGA 패키징의 GDDR 칩 한개만으로도 32비트를 최초로 달성, 이때 GDDR과 DDR이 정식으로 갈라지게 됐습니다. 32비트 스펙은 GDDR2/3/4/5를 거쳐 지금까지 게속 사용되고 있습니다.

 

GDDR 비디오 메모리는 MBGA와 TSOP의 두가지 패키징이 존재하는데, MBGA는 고가형, TSOP는 저가형 시장을 차지했습니다. 비록 GDDR 메모리가 이미 역사의 무대 뒤로 퇴장하였지만, 32비트는 중고가형을, 16비트는 저가형 시장을 공략하는 상황은 지금까지도 계속되어지고 있습니다.

 


GDDR2 1세대. 세상에 너무 일찍 태어나 단명해버린 제품. 고전압과 고발열.

 

GDDR2는 DDR2 기술을 기원으로 하여, 4비트 프리패치를 사용, DDR1보다 두배의 클럭을 낼 수 있습니다. 비록 기술적인 원리는 같지만, GDDR2는 DDR2보다 2년 일찍 시장에 나왔습니다. 처음으로 DDR2 메모리를 지원했던 메인보드인 915P가 2004년에 나왔던 반면, 처음으로 GDDR2 메모리를 탑재했던 지포스 FX 5800 울트라는 2003년 초에 발표되었던 것입니다. 하지만 세상에 너무 일찍 태어나나 결국 단명하고 말았습니다.

 

NVIDIA는 NV30 칩을 설계할때 128비트 메모리 버스를 유지했습니다. 하지만 높은 대역폭을 내기 위해서 높은 클럭의 비디오 메모리가 필요했고, 700Mhz GDDR은 이미 그 수요를 만족시킬 수가 없었기에, GDDR2를 시험해 보는 모험을 단행한 것입니다. 1세대 GDDR2는 제조 공정의 제한으로 인해전압 스펙이 DDR/GDDR과 같은 2.5V였습니다. 비록 클럭을 1GHz까지 높일 수 있었지만 그 전력 소모량과 발열은 엄청났습니다.

 

001180139.jpg

 

4M×32Bit 2.0ns MBGA 144Ball 패키징의 GDDR2, 한개의 용량 16MB, 이론 클럭 1000MHz.

GDDR2 1세대는 겨우 2.2ns와 2.0ns의 두가지만 존재했습니다.

 

GDDR2 1세대는 오직 지포스 FX 5800, 지포스 FX 5800 울트라, 지포스 FX 5600 울트라의 3가지 그래픽카드에만 쓰였습니다(나중에 워크스테이션과 비 레퍼런스 그래픽카드에도 쓰이긴 했습니다). ATI에서는 극소수의 라데온 9800 프로에만 GDDR2를 사용했습니다. 높은 전압, 높은 발열, 높은 전력 소모량, 비싼 가격은 사람들에게 안 좋은 인상만을 주었고, 나중에 지포스 FX 5900에서는 GDDR로 256비트를 구성, GDDR2는 사람들에게서 잊혀지게 됐습니다.

 

001193556.jpg

 

지포스 FX 5800 울트라는 두꺼운 쿨러를 필요로 했습니다.

 

GDDR2이 실패한 주요 원인은 NVIDIA 지포스 FX 시리즈 아키텍처와 성능 문제입니다. 나중에 256비트 고클럭 GDDR(이때의 GDDR 클럭은 이미 850~900MHz까지 도달, GDDR2와 같은 수준이 됐습니다)을 사용한 지포스 FX 5950 울트라도 라데온 9800XT의 적수는 되지 못했습니다. 물론 GDDR2 자신의 스펙도 완전하지 않았을 뿐더라 중/저가형 그래픽카드에 사용될 수 없었기 때문에, 시대의 흐름에 밀려나고 맙니다.

 

GDDR2는 비록 문제가 있었지만, 그래도 몇가지 새로운 특성을 도입했습니다. 예를 들면 최초로 내부 종결 저항을 사용한 것인데, 이것 덕분에 PCB 설계가 GDDR보다 더욱 간단해졌습니다. 이 특징은 나중에 GDDR2 2세대와 GDDR3에서 게승됩니다.

 


gDDR2 2세대. 저가형 그래픽카드를 통일.

 

1세대 GDDR2의 실패로, 고급형 그래픽카드에 쓰이는 비디오 메모리는 GDDR에서 바로 GDDR3으로 건너가게 됐습니다. 하지만 GDDR2는 사라지지 않고 그 모습을 바꾸게 됩니다. 몇개의 대형 DRAM 회사에서 GDDR2의 스펙과 특징을 고쳐(DDR2의 비디오 메모리 버전이라 할 수 있겠습니다) 내놓은 것인데, 이로서 gDDR2 2세대가 정식으로 그래픽카드 무대에 등장하여, 지금까지도 저가형 그래픽카드에서 활약하게 됩니다.

 

gDDR2 2세대가 1세대보다 나아진 점은 다음과 같습니다.

 

작동 전압이 2.5V에서 1.8V로 감소, 전력 소모량과 발열이 대폭 줄어듬.
제조 공정이 개선되어 전력 소모량과 발열이 역시 줄어들고, 제조 원가가 줄어들었을 뿐만 아니라 수율과 용량도 상승함.
칩의 메모리 버스가 32비트에서 16비트로 낮춰저 저가형 그래픽카드에 쓰기에 알맞게 됨.
패키징 방식이 144 Ball MBGA에서 84 Ball FBGA로 바뀌면서, 칩의 외관이 정사각형에서 직사각형으로 변함.

 

001180560.jpg

 

001180559.jpg 

 

여러 회사들의 gDDR2 칩.

 

전압이 낮아지면서 2세대 gDDR2의 클럭은 1세대 GDDR2보다 낮아졌습니다. 2.5ns(800MHz)와 2.2ns(900Mhz) 위주에, 2.8ns(700MHz)가 나왔습니다. 나중에 제조 공정이 개선되면서 2세대 gDDR2는 1.8V만으로 1000MHz를 돌파, 최고 1200Mhz까지도 가능하게 되어, 1세대 고전압 GDDR2의 기록을 추월하게 됩니다.

 

gDDR2 2세대를 사용한 전형적인 그래픽카드들은 지포스 7300GT, 지포스 7600GS, 지포스 8600GT, 라데온 X1600 프로 같은 저가형 제품들이 있습니다.

 

001182542.jpg

 

삼성 사이트의 메모리 분류 방식에 주의할 것.

 

이 'g'DDR2 항목에서 'g'를 소문자로 쓴 것을 발견한 분이 있을런지 모르겠습니다. 몇개의 대형 DRAM 제조사의 공식 사이트와 PDF 파일에서도 이렇게 써서 구분하고 있습니다. 대문자 G는 그래픽카드 전용으로 32비트 고급형 버전이며, 소문자 g는 그래픽카드에 최적화한 것으로 16비트 저가형 버전이지만, 본질적으로 시스템 메모리와 큰 차이가 없습니다.

 

사실상, GDDR3와 gDDR3 사이에도 이런 관계가 존재합니다. 여기에 대해서는 나중에 자세하게 소개할 것입니다.

 

 

GDDR은 DDR 기반이고, GDDR2는 DDR2 기반입니다. 또한 GDDR3의 클럭은 DDR3와 비슷하기에 많은 사람들이 GDDR3가 DDR3의 비디오 메모리 버전일 것이라고 생각하지만, 이것은 큰 오해입니다.


GDDR3: 비디오 메모리 시장을 평정한 GDDR3는 DDR2 기술을 기반으로.

 

GDDR이건 GDDR2건 그 기술적인 부분은 DDR/DDR2와 별로 큰 차이가 없습니다. 따라서 최종 클럭 부분은 GDDR이 DDR보다 그리 많이 높진 않습니다. GDDR2의 실패를 겪은 후에 NVIDIA와 ATI는 JEDEC의 느린 표준 지정에 실망하고, JEDEC에서 지정하는 비디오 메모리가 GPU의 빠른 제품 갱신 주기를 따라가지 못한다고 판단. NVIDIA와 ATI의 사람들이 JEDEC에 참여하게 되면서 비디오 메모리 표준의 지정이 더 빨라지게 됐습니다.

 

NVIDIA와 ATI는 비디오 메모리와 시스템 메모리의 데이터 저장 웅 방식이 완전히 다르다고 판단, 메모리 코어 클럭(캐패시터 리프레시 클럭)을 상승시킬 수 없는 상황에서, 단순히 I/O 클럭만을 올려 높은 대역을 얻는 것은 현실적이지 않다고 결론 지었습니다. 따라서 반드시 고속 P2P 환경에 맞게 I/O 포트를 새로 정의할 필요가 있었는데, 그래서 GDDR3가 탄생하게 된 것입니다. 이것은 최초로 GPU에 맞춰 설계된 저장장치라 할 수 있습니다.

 

001188553.jpg

 

GDDR3는 GDDR2/DDR2와 마찬가지로 모두 4비트 프리패치를 사용합니다. GDDR3는 GDDR2의 전력 소모량과 발열이 높은 단점을 개선하였으며, 전송 효율을 높여 높은 레이턴시가 주는 부정적인 영향을 줄였습니다.

 

P2P DQS. 읽기/쓰기를 할 때 기다릴 필요가 없음.

 

GDDR2는 1개의 DQS를 가지고 있는데 쌍방향으로작동합니다. 반면 GDDR3는 2개의 독립된 DQS를 가지고 있으며 P2P 방식입니다. 이렇게 할 경우 장점은 데이터를 읽어들이고 난 후 바로 쓰기를 할때 DQS의 방향이 바뀌길 기다릴 필요가 없으며, 이로서 읽기/쓰기의 빠른 전환 조작이 가능하다는 것입니다.

 

001188568.jpg

 

GDDR2/DDR2와 비교해서 GDDR3의 읽기/쓰기 전환은 한개의 사이클이 줄어들게 됩니다. 만약 연속된 구역에서 동시에 읽기/쓰기를 할 때 GDDR3의 속도는 GDDR2보다 한배 더 빠릅니다.

 

저장 유닛 자신의 특성으로 인하여 메모리 칩의 로직 뱅크는 동시에 데이터를 읽거나 쓸 수 없습니다. 하지만 GDDR3는 읽기/쓰기의 순서를 바꿔 가능하게 만들었습니다. GPU 자신의 캐시 크기는 매우 작으며, 비디오 메모리와의 데이터 교환은 매우 빈번하게 일어나 읽기/쓰기 전환 조작이 잦습니다. 따라서 GDDR3의 P2P 설계된 DQS는 비디오 메모리의 효율을 대폭 늘려줍니다. 하지만 CPU는 읽기/쓰기의 전환이 GPU처럼 그렇게 빈번하진 않을 뿐만 아니라 CPU는 대용량 L2/L3 캐시를 가지고 있기 때문에 GDDR3처럼 메모리 대역을 극대화 시킬 필요가 없으며, DDR3 메모리 규격에도 포함되지 않았습니다.

 

I/O 포트의 개선, 데이터 처리의 간소화, 전력 소모량의 조절

 

001188623.jpg

 

001182713.jpg

 

동시에 GDDR3는 I/O 컨트롤 회로와 종결 저항에 대해서도 수정을 하여, GDDR2의 Push Pull 접수기를 사용하지 않고, Pseudo Open Drain Logic를 사용합니다. 또한 모든 3페이즈 데이터 신호를 원래 위치의 회로로 옳겨, 데이터 처리를 간소화하고, DC 전류압을 최소화 하여, 로직 LOW가 버스로 움직일 때에만 전력을 사용하도록 하여, 전력 소모량과 발열을 잘 잡을 수 있게 됐습니다.

 

 

GDDR3의 클럭은 이렇게 하여 지금처럼 높아질 수 있었으며, 또한 제조 공정이 올라가면서 클럭도 끌어올릴 수 있습니다.GDDR3가 2004년 초에 처음 나왔을 때, 지포스 6600GT의 메모리 클럭은 1GHz밖에 안되어 GDDR2보다 별로 높지도 않았지만, 5년이 지난 지금, GDDR3는 1GHz에서 2GHz, 심지어 2.5GHz까지도 직어 생명을 게속 연장하고 있습니다.

 

GDDR3의 원리에 대해 알았다면 실물을 보도록 합시다. GDDR3는 GDDR1과 비슷하게 2가지 패키징 형식이 있습니다.


144 Ball MBGA 패키징, GDDR과 GDDR2 하위 호환

 

최초의 GDDR3은 144 Ball MBGA 패키징을 사용하였는데, 이것은 GDDR이나 GDDR2와 완전히 같은 것으로, 외관 역시 정사각형이며, 이들 제품듸 전기적 성질은 비슷하여, GDDR3을 지원하는 GPU에서 GDDR 메모리를 사용할 수 있습니다. PCB와 회로에 약간 조정을 해야 하긴 하지만.

 

000056653.jpg 

 

삼성 2.0ns 8M x 32Bit GDDR3 칩

 

144 Ball 패키징의 GDDR3은 오직 8M x 32비트밖에 없습니다. 따라서 8개의 메모리 칩을 사용하여 256MB 256비트를 구성하거나, 4개의 칩을 사용하여 128MB 128비트를 구성하는 것이 당시의 주류 사용법이었습니다. 지포스 5700 울트라가 처음으로 GDDR3를 사용하여 GDDR2를 대체했던 제품입니다.

 

144 Ball 패키징의 GDDR3 메모리는 크게 2.0ns(1000Mhz)와 1.6ns(1250Mhz)의 두가지가 있습니다. 1.4ns(1400Mhz)는 수율이 낮아 생산량이 매우 낮았습니다. 지포스 7800GTX, 지포스 7800GT, 지포스 6800GS, 지포스 6600GT, 라데온 X850, 라데온 X800, 라데온 X700 등의 그래픽카드에서 많이 사용되었습니다. 144 Ball 패키징과 PCB 회로가 클럭을 상승하는데 제한이 있었기에, GDDR3은 전기적 성질이 더 우수한 136 Ball FBGA 패키징으로 바뀌게 됩니다.


136 Ball FBGA 패캐징, 클럭과 용량을 상승

 

전기적 성질을 높이고 환경 보호를 위해, 2005년부터 GDDR3에 136 Ball FBGA 패키징을 사용, 납을 사용하지 않는 공정으로 통일하게 되었습니다. 새 패키징은 그래픽카드 PCB를 다시 설계할 필요가 있었지만, GDDR3의 미래를 닦기 위한 것이기도 합니다.

 

001182709.jpg 

 

삼성 0.8ns GDDR3 비디오메모리 16M x 32비트

 

136 Ball 패키징 GDDR3의 장점은 다음과 같습니다.

 

스펙이 8M x 32비트 한가지에만 국한되지 않고, 16M x32비트가 주류가 되었으며, 지금은 32M x 32비트도 대량으로 사용되었습니다.

제조 공정의 개선에 따라 전압을 2.0V에서 1.8V로 낮췄습니다. 다만 일부 고클럭 칩은 전압을 더 줘야 합니다.

속도가 1.4ns부터 시작하여 1.2ns, 1.1ns, 1.0ns를 거쳐 0.8ns, 0.7ns까지 도달, 최고 속도가 2500Mhz를 넘었습니다. 이것은 레이턴시를 대가로 치루긴 했지만 GPU는 레이턴시에 그리 크게 민감하진 않습니다.

 

GDDR3의 클럭이 처음으로 2000Mhz에 도달하였을 때, 많은 사람들은 한계가 멀지 않았다고 생각, GDDR4가 나오길 기다렸지만, DRAM 제조사들의 노력과 새로운 공정의 지원으로 GDDR3의 생명은 계속하여 연장되어, 0.8ns, 0.8ns 모델이 계속하여 양산되었을 뿐만 아니라, 더 용량이 큰 32M x 32비트 칩이 주류가 되어, 고/중/저가형 그래픽카듸 수요를 모두 만족할 수 있게 되었습니다.

 

001195558.jpg

 

현재 속도가 제일 빠른 0.77ns GDDR3 메모리 칩. 이론적으로 2600Mhz까지 클럭이 가능.

 

예전에 2.2ns GDDR 메모리가 900Mhz를 넘겼을때 코어 클럭과 I/O 클럭은 450MHz에 머물러 있었습니다. 5년이란 시간을 거치면서 계속해서 발전해와, GDDR3는 새로운 공정을 사용하여 마침내 코어 클럭과 I/O 클럭에서 새로운 돌파를 이루어, 코어 클럭을 600MHz 이상, I/O 클럭을 1200MHz까지 찍을 수 있게 되었는데, 이 때 지나치게 높은 I/O 클럭이 새로운 병목 현상을 야기하게 됩니다.

 

 

GDDR3는 DDR2의 4비트 프리패치를 사용하였습니다. 따라서 DDR3 8비트 프리패치를 사용한 비디오 메모리는 순서에 따라 GDDR4로 명명되게 됩니다. GDDR4는 GDDR3를 기초로 하여 발전하였으며, GDDR3의 2가지 기술적 특징을 계승하였습니다. 하지만 핵심적으로는 DDR3의 8비트 프리패치를 사용하고, 새로운 기술을 도입하여 클럭을 높였습니다.

 

GDDR4의 기술적인 특징

 

DDR3의 8비트 프리패치를 사용, 비교적 낮은 코어 클럭에서도 더 높은 대역을 실현, 하지만 레이턴시가 증가.

DBI, Data Bus Inversion을 사용하여 데이터 정도를 높이면서도 전력 소모량을 감소.

그라운드를 GDDR3의 반으로 줄이고, 남는 선을 전원과 접지에 사용하여 클럭을 높임. 하지만 레이턴시를 증가시킴.

Multi-Preamble을 사용. GDDR3의 Burst Limitation을 해결. 연속된 어드레스에서 소량의 데이터를 읽기/쓰기 조작할때 성능을 대폭 향상시킴.

전압을 1.8V에서 1.5V로 낮춤.

동 클럭의 전력 소모량이 75% 감소. 2400MHz의 GDDR4 메모리 전력 소모량은 2000MHz GDDR3의 반밖에 안됨.

136 Ball FBGA 패키징을 사용. 칩 하나는 32비트. GDDR3와 하위 호환 됨.

 

000484438.jpg

 

GDDR4는 확실히 클럭이 더 잘 올랐지만 성능의 향상에는 한계가 있었습니다.

 

8비트 프리패치 기술을 사용하였기에, 똑같은 클럭의 GDDR4 메모리의 코어 클럭(즉 캐패시터 리프레시율)은 GDDR3의 절반밖에 되지 않았으며, 이론적으로 GDDR4의 최고 클럭은 GDDR3의 두배까지 가능합니다. 하지만 주의해야 할 것이 있는데 비록 코어 클럭이 8비트 프리패치를 통해 반으로 줄었다 하더라도, GDDR4와 GDDR3의 I/O 클럭은 완전히 같다는 것입니다. 따라서 GDDR4의 클럭 향상에 제한을 준 것은 I/O 클럭이지, 코어 클럭이 아닙니다.

 

제조 공정과 기술 수준의 제한으로 인해, 비록 삼성이 3GHz 이상의 GDDR4 메모리를 생산했다고 공식 발표하긴 하였지만, 실제로 출시되는 GDDR4 메모리는 2GHz~2.5GHz밖에 안되며, 나중에 공정을 개선한 GDDR3에게 클럭을 따라잡히고 말았습니다. 같은 클럭에서 GDDR4는 GDDR3보다 발열이 낮긴 하지만 레이턴시가 높기 때문에 성능이 떨어지며, 비싼 원가로 제조량이 적기에 GDDR4가 사람들에게 외면받은 것이 그다지 의외의 일은 아닙니다.

 

GDDR4를 실패하게 만든 비 기술적인 원인

 

GDDR3은 NVIDIA와 ATI가 JEDEC에 참여한 이후에 공동으로 제정해낸 비디오 메모리 표준인 반면, GDDR4의 제정 과정에는 두 회사가 비교적 큰 입장 차이를 보였습니다. NVIDIA는 비교적 보수적인 의견을 내놓았는데 DDR2 4비트 프리패치를 유지하는 대신 I/O 컨트롤러를 개선하여 클럭을 향상시키자고 주장한 반면, ATI는 비교적 급진적인 의견을 내놓아 DDR3 8비트 프리패치를 바로 사용하자고 한 것입니다.

 

양쪽이 다툰 결과 JEDEC에서는 더 먼 미래를 바라본 ATI의 손을 들어주었습니다(ATI의 고위층이 JEDEC에 적을 두고 있었기도 합니다). 반면 NVIDIA는 GDDR4를 지원하지 않겠다고 확실하게 표명하고 나섰습니다. 따라서 GDDR4는 ATI 한쪽만 사용하게 되었고, NVIDIA의 지원을 얻지 못했으니 GDDR4는 60%의 시장을 바로 잃게 되었습니다. 이것은 DRAM 제조사가 감히 제조에 뛰어들지 못하게 만든 원인입니다.

 

결국 삼성 한곳만 소량의 GDDR4 메모리를 만들고 다른 회사는 관망세를 유지하게 되었습니다. 물론 다른 DRAM 제조사라고 해서 한가하게 기다리고 있는 것이 아니라 GDDR3의 잠재력을 캐내는 데 열증, GDDR3의 클럭을 계속하여 높였습니다. GDDR4이 가격적인 장점이 없는 상황에서, 클럭도 별로 높지 않았고, 당시 몇개의 ATI 그래픽카드들의 성능이 NVIDIA를 압도하지 못하여, GDDR4는 자연스럽게 사망의 길을 걷게 된 것입니다.

 

오직 ATI만이 GDDR4를 탑재한 그래픽 카드를 생산하였는데 그 수는 많지 않지만 3대의 제품이 사용되었습니다. 라데온 X1950XTX, 라데온 HD 2600XT, 라데온 HD 3870(그리고 여기에 대읃되는 파이어GL 등). 이때 NVIDIA가 GDDR2를 사용하여 그래픽카드를 만든 것과 비슷합니다. NVIDIA는 결국 GDDR2를 포기하였지만, ATI는 GDDR4를 쉽게 포기하지 못하고 3년간 3대 제품에 게속 사용해 왔습니다. 하지만 줄곧 주류 제품은 아니었습니다.

 

GDDR4의 실패는 기술적인 원인아 아니고, 예전의 GDDR2와 비교해서 많이 성숙되었지만, 제일 큰 원인은 경쟁 상대가 너무 강했다는 것입니다. ATI의 경쟁 상대인 NVIDIA가 강력했으며, GDDR4의 경쟁 상대인 GDDR3의 생명력이 너무나도 끈질겼습니다.

 

 

8비트 프리패치를 사용했지만 GDDR4는 GDDR3와 클럭 차이를 벌리지 못했는데, 그 이유는 I/O 컨트롤러에 있으며 코어의 문제가 아닙니다. 따라서 GDDR5에서는 이것을 해결할 방법을 찾게 됩니다.


GDDR5. 놀랄만한 클럭은 어떻게 달성하였는가.

 

GDDR4와 마찬가지로, GDDR5는 DDR3의 8비트 프리패치 기술을 사용하여 코어 클럭은 제한이 없지만, 어떻게 하면 I/O 클럭을 올릴지가 급선무였습니다. 하지만 GDDR5는 I/O 클럭을 올리지 않고 2개의 병렬 DQ 버스를 사용함으로서 2배의 포트 대역폭을 실현하게 됩니다.

 

001189998.jpg

 

GDDR5 각 버스 작동 클럭의 구조도

 

듀얼 DQ 버스의 결과는 GDDR5의 핀 배열이 GDDR3/4의 136Ball에서 대폭 늘어난 170Ball이 되도록 하였으며, 이를 지원하는 GPU 메모리 컨트롤러를 다시 설계하도록 하였습니다. GDDR5 메모리는 16개의 물리 뱅크를 가지고, 이들 뱅크는 4조로 나뉘는데, 듀얼 DQ 버스는 4개의 뱅크를 교차 조절하여 실시간 읽기/쓰기 조작을 실현, 데이터 전송률을 4GHz 이상으로 높였습니다.

 

001241738.jpg

 

지금까지의 GDDR1/2/3/4와 DDR1/2/3의 데이터 버스는 모두 DDR 기술(클럭을 업 스트림과 다운 스트림으로 나눠 각각 한번식 데이터를 전송)을 사용, 공식 표준 클럭 X2의 데이터 전송률을 냈으며 이것이 우리가 통상적으로 보는 유효 클럭입니다. 하지만 GDDR5는 다르게 2개의 데이터 버스를 사용하여 램버스의 QDR에 상응하는 기술을 도입하여, 공식 표준 클럭 X4를 해야 데이터 전송률이 나오게 됩니다. 에를 들어 라데온 HD 4870의 공식 비디오 메모리 클럭은 900Mhz이지만 여러분들은 습관적으로 3600Mhz라고 부르는 것입니다.


실패는 성공의 어머니, GDDR5를 사용하는 모험을 저지른 RV770이 GTX200에 도전

 

GDDR4의 실패는 ATI의 전질을 가로막지 못했습니다. GDDR4의 클럭을 올리는데 한계에 부딛혔다는걸 의식한 이후, GDDR5의 초안을 제정할때 ATI와 NVIDIA의 기술 팀은 다시 모여 2차 합작을 준비하게 됩니다. GDDR5는 선배의 여러 장점을 받아들이고 필요없는 것들은 버림으로서, I/O 부분을 개선하면서 이 둘이 모순되지 않도록 하였습니다.

 

기술적인 부분의 문제는 어렵지 않게 해결되었지만 제일 어려운 것은 시간과 진도입니다. ATI는 R600에서 512비트 메모리 컨트롤러를 사용하는 모험을 당행하여 비디오 메모리의 대역을 늘렸지만, 그 결과는 실패한 부분도 있습니다. 따라서 RV670에서 256비트로 돌아가서면서도 성능은 더 높인 것입니다. GDDR4가 GDDR3보다 클럭이 더 높지 않았기에 ATI는 GDDR5로 빠르게 넘어가야 차세대 GPU의 수요를 맞출 수 있을 것이라는 압박을 가지고 있었고, RV770은 256비트밖에 안 되었으니 고 클럭 메모리의 지원이 절실했습니다.

 

경쟁상대 NVIDIA도 GDDR5에 당연히 큰 흥미가 있었지만 그렇게 급하진 않았습니다. 보수적인 NVIDIA는 GDDR3을 지키기로 결정하고, GTX200 코어에서 512비트 메모리 컨트롤러를 사용하여 메모리 대역을 높이게 됩니다. R600의 링버스와 비교하여, NVIDIA는 256비트에서 384비트를 거쳐 512비트에 이르기까지 크로스바 버스를 계속하여 고쳐 써왔기 때문에 그만큼 성숙된 상태였습니다.

 

256비트로 512비트를 상대하기 위해, ATI는 모든 것을 GDDR5에 걸 수밖에 없었습니다. GDDR5 표준이 아직 완전히 홥립되기도 전에 ATI는 성능을 테스트하고 DRAM 제조사에게 생산을 독촉했습니다. GDDR5와 GDDR2/4는 똑같이 세상에 일찍 태어난 것이지만, 그 실패와 성공은 달랐습니다. 완전한 기술 스펙과 제조 공정의 지원으로 GDDR5는 세상에 나오면서 사람들의 시선을 이끌었습니다.

 

GDDR5에서 배로 늘어난 데이터 전송률은 라데온 HD 4870의 256비트가 지포스 GTX 260의 448비트보다 앞서게 하였고, NVIDIA가 가격을 인하하고 스펙을 높이고 제조 공정을 개선하여 반격을 하도록 압박하였습니다. 128비트의 라데온 HD 4770은 256비트의 지포스 9600GT를 완승하고 직접 9800GT를 공격했습니다.

 

 

GDDR5는 GDDR3/4 의 우수한특징을 기초로 하여 여러 부분을 개선하고 새로운 특징을 추가하였는데, 거기에 대해서는 아래에서 자세하게 분석하도록 하겠습니다.

 

001189455.jpg

 

데이터와 어드레스 버스 전환 기술 : 신호의 질량이 높아지고 전력 소모량을 감소.

 

1바이트 데이터 중에 8개 값이 있는데 만약 반 이상의 값이 0이라면 GDDR5는 자동으로 전환 전송을 하여, 0을 1로 바구고 1을 0으로 바꿉니다. 별도로 부가된 1개의 DBI(데이터 버스 전환값)을 통하여 데이터 값의 흐름을 판정, 위치가 제대로 됐는지 반대로 됐는지를 판단합니다. GDDR5의 이 기술은 GDDR4에서 계승되어 발전된 것입니다.

 

001189797.jpg

 

DRAM이 데이터를 전송할때 0만 있다면 에너지가 사라지게 되며 0의 전송 수량을 줄이면 신호의 질량을 보증하게 됩니다. 이렇게 하면 내부 종결 저항과 외부 종결 회로의 전력 소모량을 줄일 수도 있습니다. GDDR5의 어드레스 버스 역시 이와 비슷한 기술을 사용하는데, 별도의 ABI 채널을 통해 수의 흐름을 데이터 흐름의 위치를 바꾸며, 이를 통해 신호 노이즈를 줄이고 전력 소모량을 낮츱니다.

 

AI 프로그래머블 I/O 컨트롤 포트. PCB 설계와 제조 원가를 간소화

 

GDDR5가 I/O 컨트롤러에 많은 개선을 하였고, 새로운 자동 표준 엔진을 추가하였기에, GDDR5 메모리 칩은 GPU 비디오 메모리 컨트롤러의 수요에 더 잘 적응할 수 있어, 데이터 전송 안정성이 나아졌습니다.

 

001193157.jpg

 

자동 교정 엔진은 전압과 온도 변화를 모니터링하며, 교정 시험 데이터 출력 드라이버는 전도 통과 저항과 ODT 종결 저항값을 통해 보정되고, 데이터, 어드레스, 명령어 종결 저항은 모두 소프트웨어와 드라이버에서 조절할 수 있습니다.

 

001183416.jpg

 

GDDR5의 핀 수가 늘어났지만 회로 선의 분포는 더 간단해짐

 

그 밖에도 GDDR5는 딜레이와 신호 조정을 지원하여, 데이터를 민첩하게 동기화 할 수 있습니다. 이전에는 기판의 회로 선을 꼬불꼬불하게 만들어서 레이턴시는 맞췄지만 이것은 이제 역사 속으로 사라지게 됐습니다. GDDR5에는 이런 것이 사라졌기에 PCB 회로를 간단하게 하고 제조 원가를 줄이게 되었으며, 더 높은 클럭에 유리하게 됐습니다.

 

데이터 감추기 기술 : 데이터 버스의 압력을 감소

 

GDDR5의 Burst Length(저장 셀에서 연속으로 데이터를 전송하는 사이클 수)는 8비트인데, 이것은 GDDR5 칩이 한번에 최소한 256비트 데이터를 전송한다는 말이기도 합니다. 하지만 많은 경우 모든 데이터가 모두 다시 쓰기를 할 필요는 없기 때문에 필요 없는 데이터 전송을 이끌어내게 됩니다.

 

따라서 GDDR5는 데이터를 감추는 기술을 사용하여, 어드레스 라인을 통해 보호 데이터는 전송, 모든 보호받는 데이터를 전송하는 과정 중에서 고쳐 쓸 필요가 없는 경우, 드러난 데이터만 새로운 데이터를 고쳐 쓰게 합니다. 이렇게 하여 GDDR5의 데이터 라인 압력은 상당히 줄어들게 되며, 전력 소모량도 잘 조절됩니다.

 

에러 보정 기술: 전송 효율을 개선하고 재난적인 에러를 피함

 

데이터를 고속 전송하는 과정 중에 유효성을 보증하기 위해, GDDR5는 새로 에러 탐측과 수정 기술을 추가했습니다. GDDR5는 이미 성숙된 CRC(순환 교차 시험)를 사용하여 DQ와 DBI 버스를 통해 실시간으로 에러를 교정하고, 처음으로 데이터를 새로 발송합니다.

이 기술은 고클럭으로 데이터를 전송할때 특히 중요합니다. 이 기술은 데이터 전송에서 에러를 줄여 시스템이 붕괴될 확률을 낮추는 효과가 있으며, 오버클럭이나 높은 온도로 인해 초래되는 문제들을 대폭 줄여줄 뿐만 아니라, 일정한 수준에서 데이터 전송 효율을 상승시킵니다.


중첩(스택) 모드: 32비트 칩을 16비트로 사용)

 

GDR5는 고급형 그래픽카드에서 주로 사용되며 32비트 칩만 있습니다. GDDR5는 2개의 병렬 데이터 버스를 가지고 있는데, 이것은 GDDR5의 작동 모드를 더욱 영활하게 바꿔줍니다. 이것은 메모리가 32비트로 모드로 작동하게도, 또한 16비트 모도로 작동하게도 합니다. 이렇게 하여 32비트 메모리 컨트롤러만 내장한 제품에서 2개의 GDDR5 메모리 칩을 조절할 수 있도록 하여, 메모리 용량을 가볍게 두배로 늘릴 수 있습니다.

 

001190628.jpg

 

사실 GDDR3/4는 모두 이런 방식으로 비디오 메모리 용량을 확충할 수 있습니다. 하지만 그 원리는 완전히 다릅니다. 이전에는 반드시 GPU의 비디오 메모리 컨트롤러에서 듀얼 뱅크 모드를 지원해야만 더 많은 비디오 메모리 칩을 쓸 수 있습니다. 하지만 지금은 8개의 GDDR5 비디오 메모리가 총 256비트지만, 128비트 CPU가 직접 사용할 수 있습니다. 이렇게 하여 비디오 메모리 컨트롤러의 설계를 간소화 할 수 있으며, 라데온 HD 4770이 그 좋은 예가 될 것입니다.

 

 

앞서 우리가 분석하기에는 TSOP 패키징의 GDDR1이나 gDDR2 비디오 메모리가 그 기술적으로는 DDR1/2 메모리와 본질적인 구별이 없으며, 높은 메모리 버스(16비트) 메모리 칩을 직접 비디오 메모리로 사용했다고 하였습니다. DDR3 칩의 대량 양산으로 제조 원가가 DDR2와 비슷해 지면 DDR3 메모리가 DDR2를 대체함과 동시에, 역시 오래된 gDDR2를 대체하게 될 것입니다.


gDDR3 : 메모리 칩의 패키징을 고쳐 비디오 메모리용으로 사용

 

현재 상황에서 DDR3는 gDDR2보다 클럭을 훨씬 많이 높일 수 있지만 제조 원가는 GDDR3보다 낮습니다. 따라서 gDDR2가 대체되어야 한다는 것은 이미 정해진 일입니다. AMD(ATI)는 먼저 DDR3를 그래픽카드에 장착할 계획이며, 뒤이어 업계에서도 이를 가능한 것으로 인식하고 있습니다.

 

001193513.jpg

 

DDR3 메모리 칩을 구분하기 위해, DRAM 제조사는 이를 Graphics DDR3 SDRAM, 줄여서 gDDR3로 쓰고 있습니다. DDR3 메모리 칩과 마찬가지로 모두 8비트 프리패치 기술을 사용하며, 칩 한개는 16비트로 중저가형 그래픽카드에 알맞습니다. 전통적인 GDDR3는 Graphics GDDR3 SDRAM를 줄여 쓴 것이며, 이 제품은 DDR2와 마찬가지로 4비트 프리패치 기술을 사용하고, 칩 한개는 32비트로 중고급형 그래픽카드에 맞습니다.

 

001193382.jpg

 

여기서 고급형 GDDR5가 GDDR3를 대체하고, 저가형 gDDR3이 gDDR2를 대체하면, 중급형은 3대 제품이 공존하는 국면이 출현한다는 것을 볼 수 있습니다. 비록 gDDR3 칩 한개의 메모리 버스가 GDDR3 메모리의 반에 불과하지만, 그 데이터 저장 밀도는 GDDR3의 두배일 뿐만 아니라, 동일한 클럭에서(예를 들어 2000MHz) gDDR3 코어 클럭은 GDDR3의 반 밖에 안됩니다. 따라서 전력 소모량과 발열이 많이 줄어들게 됩니다. 대역폭이 높지 않은 중저가형 그래픽카드에서 gDDR3의 대용량, 저렴한 가격, 낮은 전력 소모량과 발열 같은 특징은 매우 완벽한 것입니다.

 

001193518.jpg

 

위 그림은 하이닉스 공식 사이트에 나온 gDDR3와 GDDR3 비디오 메모리 스펙의 비교입니다. 풀 네임을 주의해서 보길 바랍니다. G가 있느냐 없느냐에 따라 완전히 다른 물건이 되버립니다.

 

gDDR3은 DDR3 기반으로 기술적 특징이 같으며 패키징이 다를 뿐입니다. gDDR3는 그래픽카드에 최적화된 버전으로 1개 칩이 16비트 FBGA 96Ball 패키징이며, DDR3는 대부분 한개 칩이 4/8 비트이고 패키징은 78/82Ball 입니다. 소수의 DDR3는 16비트 FBGA 96Ball 패키징을 사용하긴 하지만 이것은 대역폭이 매우 큰 특수한 경우에만 씁니다.

 

 

앞에서 메모리에 대해 소개했습니다. 메모리 칩의 버스, 채널, 뱅크 등을 소개했습니다. 이런 기술 스펙들은 비디오 메모리에도 똑같이 적용됩니다. 하지만 비디오 메모리에만 존재하는 정의가 있는데 아래에서 소개하겠습니다.


스펙: 16M x 32비트는 무슨 뜻인가?

 

종종 위와 같은 스펙을 보았을 것입니다. '모 그래픽 카드는 4개의 16M x 32비트 GDDR3 비디오 메모리를 사용'과 같은 문장 말입니다. 여기서 16M x 32비트가 비디오 메모리 칩의 주요 스펙이며, 국제적으로 통일된 명명 표준이기도 합니다. 이것은 제조사 공식 사이트에서 볼 수 있습니다.

 

16M x 32비트에서 16M은 비디오 메모리 칩의 용량이 16Mbit라는 것을 의미하고, 32비트는 비디오 칩의 메모리 버스를 가리킵니다. 이런 표칭은 이해하기 쉽지 않으며 계산을 해야만 우리가 흔히들 사용하는 스펙이 나옵니다.


용량: 비디오 메모리 한개의 용량 = 셀 유닛 용량 x 데이터 버스 대역

 

제일 자주 보는 16M x 32비트 GDDR3 비디오 메모리를 예로 들어 봅시다. 16 x 32 = 64MB, 비디오 메모리 칩 1개의 용량이 64MB이며, 이 그래픽카드에 4개의 비디오 메모리를 장착했다면 256MB가 됩니다.

 

많은 사람들이 위 공식에서 8을 나누는 경우가 있는데, 그 이유는 공식 스펙의 16M이 메가바이트가 아닌 메가비트로 써져 있기 때문입니다. 두 단위를 환산하려면 8을 나눠야 합니다.


속도: 비디오 메모리의 이론 클럭 = 1000 클럭 사이클 x 2

 

어떤 그래픽카드에는 1.4ns 칩이 장착되어 있고, 다른 그래픽카드에는 더 빠른 1.2ns가 장착되어 오버클럭이 더 잘된다... 이런 이야기가 있습니다. 여기서 1.2ns는 비디오 메모리의 클럭 사이클이며, 이를 환산하면 더 쉽게 이해할 수 있습니다.

 

이 공식을 사용하면 주류 스펙의 비디오 메모리에서 가능한 이론 클럭이 몇인지 알 수 있습니다.

 

    2.0ns칩 =1000?.0×2=1000MHz=1.00GHz
    1.6ns칩 =1000?.6×2=1250MHz=1.25GHz
    1.4ns칩 =1000?.4×2=1429MHz≈1.40GHz
    1.2ns칩 =1000?.2×2=1667MHz≈1.65GHz
    1.1ns칩 =1000?.1×2=1818MHz≈1.80GHz
    1.0ns칩 =1000?.0×2=2000MHz=2.00GHz
    0.8ns칩 =1000?.8×2=2500MHz=2.50GHz

 

왜 2를 곱해야 할까요. 이유는 DDR 시리즈의 저장 셀이 2배의 전송 속도를 낼 수 있기에, 작동 클럭과 메모리 버스가 같은 상황에서, 비디오 메모리 버스가 SDRAM의 2배가 되기 때문입니다. 거기에 2를 곱해서 나온 큰 숫자는 보기에도 더 좋습니다.


메모리 버스: 비디오 메모리의 버스 : 비디오 메모리 칩 한개의 데이터 대역 x 비디오 메모리의 수

 

이것은 어렵지 않게 이해할 수 있을 것입니다. 예를 들어 그래픽카드가 4개의 16M x 32비트 GDDR3 메모리 칩을 사용한다면, 메모리 버스는 32비트 x 4 = 128비트가 됩니다. 하지만 모든 상황에서 이 공식이 모두 성립되는 것은 아닙니다. 비디오 메모리 칩의 수 외에도, GPU 비디오 메모리 컨트롤러의 버스가 그래픽카드의 메모리 버스 상한값을 결정하게 됩니다.

 

저가형 그래픽카드 코어는 128비트 메모리 컨트롤러를 사용하기에, 4개의 GDDR3 비디오 메모리라면 수요를 만족할 수 있습니다. 기판에 8개의 비디오 메모리를 장착해도 그래픽 카드의 메모리 버스는 여전히 128비트입니다. 만약 중급형 그래픽카드에서는 8개의 칩을 장착하면 바로 256비트가 되어 코어와 딱 맞아 떨어집니다.


메모리 대역: 메모리 대역 = 메모리 버스 x 메모리 작동 클럭 / 8

 

비디오 메모리 대역을 단순히 보면 의미는 그리 크지 않습니다. 최종적으로 그래픽카드의 성능에 영향을 주는 것은 메모리 대역입니다. 우리는 메모리 대역을 교통량으로 비유할 수 있습니다. 길이 넓어질수록(메모리 버스), 차가 빨라질수록(메모리 클럭) 메모리 대역폭은 더욱 높아지는 것입니다.

 

지포스 GTX 260을 예로 들어봅시다. 메모리 클럭은 2GHz이고 메모리 버스는 448비트이니 이를 계산해 보면 메모리 대역폭은 112GB/s가 됩니다. 8로 나눈 것은 비트를 바이트로 환산했기 때문입니다.

 

대역폭은 비디오 메모리 속도의 최종 단위입니다. 일부 그래픽카드는 비디오 메모리의 클럭이 높지만 메모리 버스는 낮습니다. 제일 전형적인 예가 GDDR5 메모리를 사용한 라데온 HD 4870일 것입니다. 메모리 버스는 256비트에 불과하지만 메모리 클럭이 3600MHz에 달하여 최종적으로 얻어내는 메모리 대역은 115GB/s가 되어 지포스 GTX 260과 비슷해집니다.

 


SDR+DDR1/2/3과 GDDR1/2/3/4/5 전 시리즈의 스펙 비교

 

001195809.jpg

 

001195671.jpg


비디오 메모리가 이끌어온 DRAM의 발전, 앞으로 메모리는 비디오 메모리의 청사진으로 개발하게 됨

 

최근 몇 년 간에 시스템 메모리와 비디오 메모리의 발전을 보면, 비디오 메모리의 발전 속도가 일반 메모리를 뛰어넘었다는 것을 발견할 수 있습니다. 비디오 메모리 대역은 메모리 대역의 10배 이상에 도달하였을 뿐만 아니라, 그 차이는 계속하여 커지고 있습니다. 최근 트리플 채널 DDR3가 등장하여 데스크탑 CPU에 충분한 대역을 제공해 주고 있지만, GPU가 필요로 하는 비디오 메모리는 아직도 부족합니다.

 

위와 같은 이유로 비디오 메모리는 메모리의 발전 흔적에서 벗어나고 있습니다. 몇번의 실패를 맛본 후에 메모리의 조연/부속품에서 벗어나 자신이 손님에서 주인이 되는 길을 걸어가고 있습니다. GDDR2는 DDR2보다 2년 가까이 먼저 나왔으며, GDDR4는 DDR3보다 1년 정도 빨랐습니다. 비록 실패하여 종결을 맞이하긴 하였지만 GDDR5의 성공을 위한 견실한 기초를 마련했음에는 틀림 없습니다.

 

메모리 영역을 보면 현재 DDR3 메모리는 막 안정적으로 발을 굳건히 내딛었을 뿐이며, 앞으로 2~3년간은 PC 시장을 통치할 것입니다. 하지만 DDR4 표준은 이미 제정 중에 있으며, 그 기술은 GDDR5의 청사진입니다. 이것은 DDR3 8비트 프리패치 기술을 유지하면서 I/O 컨트롤러를 개선한다는 것을 의미합니다.

 

001195811.jpg                        

기글하드웨어(http://gigglehd.com/zbxe)에 올라온 모든 뉴스와 정보 글은 다른 곳으로 퍼가실 때 작성자의 허락을 받아야 합니다. 번역한 뉴스와 정보 글을 작성자 동의 없이 무단 전재와 무단 수정하는 행위를 금지합니다.