개인용 컴퓨터(PC)라고 부르는 제품이 세상에 존재하기 이전, 컴퓨터에서 제대로 된 그래픽을 맛본다는 것은 사치에 가까웠습니다. 스마트폰을 켜고 즐길 수 있는 3D 그래픽은 말 그대로 상상 속에서나 가능했고 프로그램 코딩이나 명령어를 주고받기 위한 시커먼 화면에 몇몇 글자가 전부였는데요. 화려한 그래픽을 즐길 수 있게 해준 현재의 그래픽 메모리가 되기까지 어떻게 발전해 왔는지 살펴보도록 하겠습니다.
초기 PC 그래픽 메모리 용량은 16KB
애플이 최초 PC인 애플Ⅰ을 발표하기 전 1970년대 컴퓨터에서 그래픽이 나오는 기기는 콘솔 게임기가 유일했습니다. 게임기라고 해서 컴퓨터와 구조가 크게 다른 것은 아닙니다. 오히려 중앙처리장치(CPU), 메모리 등에서 컴퓨터가 사용하는 것과 별 차이가 없죠. 따지고 보면 지금도 마찬가지입니다. 소니 플레이스테이션4, 마이크로소프트(MS) 엑스박스 원 등은 모두 x86 기반 CPU를 사용하고 있습니다. 그래픽처리장치(GPU)도 PC에서 사용하는 것과 동일한 제품입니다.
상황이 이렇다 보니 닌텐도에서 내놓은 첫 콘솔 게임기의 이름을 패밀리컴퓨터라고 지은 것도 무리는 아닌데요. 1975년 아타리 퐁, 1976년 애플이 만든 애플Ⅰ, 1976년 IBM PC가 등장하면서 서서히 일반 사용자도 PC라는 기기에서 그래픽을 조금씩 즐길 수 있게 됐습니다. 문제는 PC 대중화에 물꼬를 트게 만든 IBM PC의 그래픽이 애플과 비교해 워낙 뒤떨어졌다는 사실이죠.
IBM 호환 PC는 ‘Monochrome Display Adapter(MDA)’라는 일종의 그래픽카드를 썼습니다. 글자 몇 개 출력하는 것이 전부였지만 그래도 ‘그래픽’이라는 요소를 담았기에 의미가 있습니다. 이후 그래픽카드는 ‘Color Graphics Adaptor(CGA)’→‘Enhanced Graphic Adaptor(EGA)’→‘Video Graphics Array(VGA)’ 순으로 발전합니다. 저마다 특징이 있지만 발전의 가장 큰 요소는 ‘해상도’와 화면에 나타낼 수 있는 ‘색의 수(발색수)’가 늘어났다는데 있습니다. 지금이야 풀HD는 물론이거니와 울트라HD(UHD)도 흔한 세상이었지만 당시에는 VGA 기준으로 640×480픽셀에 16색을 표현하는 것이 고작이었습니다.
해상도와 발색수가 제한적이었던 가장 큰 이유는 메모리가 부족했기 때문입니다. IBM PC를 설계한 엔지니어는 주메모리 용량을 640킬로바이트(KB)로 설정했습니다. 요즘 웬만한 사진 한 장 용량이 수십 MB를 넘어가고 동영상은 1GB 이상이라는 점을 고려하면 정말 작은 용량입니다. 마찬가지로 지금이야 차고도 넘치는 충분한 용량의 메모리가 있지만 예전에는 가격이 너무 비싸서 마음껏 용량을 늘리지 못했습니다. 주메모리가 이런데 그래픽 메모리에 사용할 메모리를 장착한다는 것은 그 자체로 사치였죠.
그래픽메모리는 컬러가 처음으로 쓰인 CGA부터 사용됐는데 용량은 16KB이었습니다. VGA에 와서는 256KB로 늘어났죠. 그만큼 해상도와 발색수를 늘릴 수 있게 됐습니다. 주메모리와 같이 그래픽 메모리도 프로세서가 데이터를 담아두고 처리할 수 있도록 해주는 책상 역할을 합니다. 책상이 넓으면 넓을수록 더 많은 데이터를 담아두면서 계산이 이뤄집니다.
SG램의 등장, GPU 시대를 가속화하다
▲ 예전에도 그래픽카드는 지금과 비슷한 모양을 가지고 있었으나, 해상도와 발색수를 높이기 위해서는 그래픽 메모리 용량을 키워야 했다.
초기에는 비디오카드라고 부른 그래픽카드는 CGA 시절부터 지금과 비슷한 모양을 갖추고 있었습니다. 현재 그래픽카드의 버스(인터페이스)가 PCI 익스프레스라면 처음에는 ISA(Industry Standard Architecture)를 썼습니다. 이후 ISA가 8비트, 16비트를 거쳐 EISA(Extended Industry Standard Architecture)로 발전합니다. EISA는 32비트 구조였죠. 이후에는 PCI(Peripheral Component Interconnect)로 완전히 넘어갑니다. 이 와중에 그래픽카드는 2D뿐 아니라 3D 그래픽을 가속해 처리하면서 각종 특수효과까지 덧붙일 수 있도록 진화합니다.
메모리에서는 어떤 일이 벌어졌을까요? PC는 MDA부터 VGA까지 PC는 XT를 거쳐 AT(286)→386→486으로 업그레이드됩니다. 그리고 인텔 펜티엄이 나오면서 본격적인 32비트 CPU 시대가 열리죠. 이런 와중에서도 그래픽카드 메모리는 주메모리와 마찬가지로 별다른 변화가 없었습니다. 여전히 전통적인 D램을 사용하고 있었습니다. 속도도 주메모리와 같이 보조를 맞췄고 이런 형태는 EDO(Extended Data Out) D램까지 계속해서 이어집니다.
변화는 쳉랩(Tseng Lab, TLI)이라는 업체에서 ‘ET6000’ 그래픽 칩셋(GPU 개념이 자리 잡기 이전)을 내놓으면서부터 시작됐습니다. TLI는 XT 시절부터 그래픽카드를 만들어왔는데 ET6000부터는 모시스(MoSys)의 MD램(Multibank DRAM)을 적용해 저렴한 가격에 빠른 속도의 메모리를 구현하는데 성공했습니다. 멀티뱅크라는 말처럼 여러 개의 뱅크, 바꿔 말하면 32KB 용량의 작은 메모리를 집적해 구성되어 있죠. 예컨대 2MB의 MD램이라면 64개(2048KB÷32=64)의 뱅크를 사용한다고 보면 됩니다. 2D 그래픽 처리에는 우수하지만 3D 그래픽에는 적합하지 못한데다가 곧바로 SG램이 나오면서 자취를 감춥니다.
SG(Synchronous Graphics)램은 본격적인 그래픽 메모리의 발전을 가져다준 제품입니다. 주메모리로 부각된 SD(Synchronous)램의 그래픽카드용 버전으로 3D 그래픽의 보다 원활하게 처리할 수 있도록 Z버퍼(어떤 물체가 그려질 때 만들어진 픽셀의 깊이 정보)를 지원했습니다. SD램은 곧바로 DDR(Double Data Rate) SD램으로 대체됐고 SG램은 GDDR로 이름을 바꾸고 함께 발전해나갑니다.
클록을 쪼개고 나눠서 뻥튀기하는 기술이 핵심
GDDR를 이야기할 때 가장 중요한 요소는 버스(Bus)입니다. 버스는 말 그대로 데이터가 오고가는 통로를 말하죠. 메모리를 많으면 많을수록 좋은 다다익선(多多益善)이라지만 GPU 시대로 접어들면서 이보다는 ‘속도’가 더 성능에 영향을 끼쳤습니다. 본격적인 3D 콘솔 게임기로 명성을 날린 플레이스테이션(PS)이 이런 경우입니다. 오리지널 PS는 1MB, PS2는 고작 4MB의 그래픽 메모리를 가지고 있었죠. 그럼에도 당시 그 어떤 PC보다 높은 3D 그래픽을 만들어낼 수 있던 이유는 초당 데이터 전송속도가 48GB에 달했기 때문입니다. GPU 내부에 그래픽 메모리를 넣은 덕분이지만 대신 용량은 크게 손해를 봤습니다.
이론적으로는 충분한 버스를 확보하면서 넉넉한 그래픽 메모리를 사용하면 됩니다. 대신 가격이 무척 비싸지겠죠. GPU와 그래픽 메모리가 서로 연결되어 있는 버스를 16비트에서 32비트, 64비트에서 128비트, 그리고 256비트에서 512비트로 구성하면 좋겠지만 어디까지나 가격 대비 성능을 고려하지 않을 수 없습니다. GDDR는 이런 딜레마를 해결하기 위해 데이터를 읽고 쓰는 통로인 ‘스트로브(Strobe)’의 숫자가 D램보다 많습니다. 기술이 발전하면서 스트로브 자체를 분리하기에 이릅니다.
▲SK하이닉스의 GDDR4, GDDR5 SK하이닉스는 GDDR3부터 GDDR6까지 모두 세계 최초로 개발해 그래픽 메모리에서 유독 강한 모습을 보였다.
최근 SK하이닉스가 발표한 GDDR6은 직전 제품인 GDDR5와 비교했을 때 핵심적인 차이점은 전력소비량을 줄이는데 있습니다. 다만 GDDR6는 국제반도체표준협의기구(JEDEC)의 JC-42(Solid State Memories) 위원회에 설치된 JC-42.3(DRAM Memories), JC-42.3C(DRAM Parametrics) 분과에서 아직까지 표준작업에 대한 논의가 진행되고 있는 상황입니다. 최종적으로 사양이 결정되지 않았다는 뜻인데요. 기본적인 골격은 속도를 높이면서도 전기는 덜 먹는데 있습니다.
이를 위해 GDDR6는 데이터를 전송할 때 주변 신호의 간섭으로 인해 클록이 흐트러지는 ‘크로스토크(crosstalk)’를 해결하기 위해 특별한 데이터를 중간에 삽입하는 기술을 썼습니다. 이 데이터를 ‘3B4B’, ‘8B9B’ 인코딩이라 부르는데 간단하게 말하면 크로스토크가 일정하게 발생하는 것을 확인하고 중간에 따로 보정을 위한 데이터를 넣어줍니다. 일종의 신호 정렬(align) 기술인 셈이죠. 더불어 DDR, 그러니까 1개의 클록에 두 번의 데이터를 전송하는 기술을 보다 고도화시켰습니다.
▲ 올해 4분기 양산 예정인 GDDR6. HBM의 뒤를 든든하게 뒷받침할 것으로 보인다.
DDR에서 한층 발전한 쿼드 데이터 레이트(QDR, 1클록에 4번 데이터 전송)을 쓰면서 그래픽 메모리와 메모리 컨트롤러를 동기화해 한 번에 데이터를 전송하는 방식을 취했다고 보면 됩니다. 원래 GDDR6의 클록이 1GHz라면 신호를 두 배로 높여 2GHz로 만든 다음에 한 번의 클록으로 인해 발생한 사이클(주기)에서 두 번 데이터를 출력합니다. 이 과정에서 다시 2배가 늘어나서 4GHz에 이릅니다. 마지막으로 그래픽 메모리와 메모리 컨트롤러가 한꺼번에 클록을 주고받으니 결과적으로 8GHz가 됩니다.
SK하이닉스가 세계 최초로 개발한 20나노급 8Gb(기가비트) GDDR6는 핀(Pin)당 16Gbps(Gb/sec)의 데이터 처리속도 자랑합니다. 384비트 버스에서 초당 최대 768GB의 데이터 처리할 수 있는데요. 이 속도는 업계 최고 속도로 앞으로 나올 고성능 그래픽 카드를 기대해 볼 수 있죠. 인공지능은 물론, 자율주행차, 4K 이상의 고화질 디스플레이의 4차 산업혁명을 기대해볼 수 있습니다.
그래픽 D램은 그래픽 카드의 명령을 받아 동영상과 그래픽을 빠르게 처리할 수 있는 특화 메모리 제품입니다. SK하이닉스는 전통적으로 그래픽 메모리에 강했죠. ‘고대역폭메모리(High Bandwidth Memory, HBM)’가 더 저렴해져서 대중화되기 전까지 GDDR6는 당분간 가장 널리 쓰이는 그래픽 메모리의 자리를 차지할 겁니다. HBM과 GDDR6 모두에서 의미 있는 성과를 거두길 바랍니다.
※ 본 칼럼은 반도체/ICT에 관한 인사이트를 제공하는 외부 전문가 칼럼으로, SK하이닉스의 공식 입장과는 다를 수 있습니다.