Memória em placas de vídeo: DDR2, GDDR3 e GDDR5

Não existe nenhuma diferença fundamental no tipo de memória RAM utilizado nas placas de vídeo. Elas podem utilizar os mesmos chips de memória DDR, DDR2 ou DDR3 utilizados nos módulos de memória regulares (muitas placas de baixo e médio custo realmente utilizam, para reduzir os custos de produção), mas os fabricantes de placas 3D geralmente optam por utilizar memórias GDDR3 ou GDDR5, tipos de memória especialmente otimizados para placas de vídeo, capazes de operar à frequências mais altas.


O barramento com a memória é ainda mais importante para a GPU do que é para o processador, já que ela trabalha com um volume muito maior de dados (com destaque para as texturas), que precisam ser acessados rapidamente. Em um processador, é possível remediar um barramento estreito com a memória usando mais cache L2 ou L3, mas no caso da placa de vídeo nada substituiu um barramento rápido.

Este é um dos fatores que dificulta o desenvolvimento de placas 3D onboard de alto desempenho, já que, por mais poderoso que fosse o chipset gráfico, o desempenho seria seriamente penalizado pelo lento acesso à memória compartilhada.

Não existem muitos segredos com relação a como aumentar a banda com a memória na placa de vídeo. Existem basicamente duas opções: alargar o barramento com a memória, permitindo que a GPU transfira mais bits de cada vez, ou utilizar chips de memória mais rápidos, que suportem frequências de operação mais altas, ou realizem um número maior de transferências por ciclo.

Alargar o barramento é sempre a opção mais segura, já que o ganho de desempenho é diretamente proporcional o número de trilhas de dados, sem muitas variações. Dobrando o número de trilhas (de 256 para 512 bits, por exemplo), dobra-se a taxa de transferência, sem nenhum efeito colateral do ponto de vista do desempenho.

O grande problema é que usar mais trilhas torna a produção da placa muito mais cara, influindo em diversas etapas da produção. Não apenas a GPU precisa ser fisicamente maior (para acomodar o maior número de contatos), mas são necessárias mais trilhas na placa de circuito (o que encarece a placa) e um número maior de chips de memória. Para complicar, as trilhas e chips adicionais também aumentam o consumo elétrico, complicando ainda mais o projeto.

Um bom exemplo das dificuldades em desenvolver placas com barramentos de 512 bits é o caso das GeForce GTX 280 e 285. Não apenas o chipset GT200 é enorme (ele possui 1.4 bilhões de transístores e é quase 6 vezes maior que um Core 2 Duo baseado no Penryn) mas o layout da placa de circuito é bastante dispendioso, com nada menos do que 16 chips de memória, e um grande volume de outros circuitos de apoio:


Devido a todos esses problemas, os fabricantes são bastante cautelosos com relação a barramentos mais largos, preferindo o uso de chips mais rápidos sempre que possível (evitando assim os grandes aumentos no custo). Isso explica por que os fabricantes demoraram quase 10 anos para iniciar a mudança dos 128 bits (usado desde placas de primeira geração, como as Riva 128) para os 256 e 512 bits. De fato, depois de testar o uso de um barramento de 512 bits nas Radeon HD 2900 Pro e XT, a ATI recuou e voltou a utilizar barramentos de 256 bits nas placas das séries 38xx e 48xx.

Chegamos então à segunda possibilidade, que é usar chips de memória mais rápidos, migrando não apenas para módulos que suportam frequências mais altas, mas também entre diferentes tecnologias de memória.
Diferente dos desktops, onde tivemos uma escalada das memórias DDR para as DDR2 e em seguida para as DDR3, a evolução das placas 3D seguiu um caminho um pouco mais tortuoso, com mistura entre as memórias DDR e GDDR.

Inicialmente, as placas fizeram a migração das memórias SDR para as DDR, que com suas duas transferências por ciclo ofereciam o dobro da banda por trilha de dados, o que representava uma grande economia em relação a usar mais trilhas. No caso das placas high-end, as memórias DDR aumentaram a sobrevida dos barramentos de 128 bits (como no caso das GeForce 3 e GeForce 4) e nas de baixo custo permitiram o desenvolvimento de placas baratas, com barramentos de apenas 64 bits (como as GeForce 2 MX200).

O passo seguinte foram as memórias GDDR2, uma versão overclocada do padrão DDR2, onde os chips de memória utilizam uma tensão de 2.5 volts, em vez de 1.8V. Assim como ao fazer overclock da memória através do setup, o aumento da tensão permite que os módulos suportem frequências mais altas, mas em troca aumenta o consumo e a dissipação elétrica, resultando em uma configuração longe do ideal.

Com exceção da tensão e das frequências, não existem diferenças entre as memórias DDR2 e GDDR2. Ambas as tecnologias ao baseadas no uso de 4 transferências por ciclo, novamente duplicando a taxa de transferência em relação às memórias DDR. Na prática, o GDDR2 foi pouco usado, sendo logo substituído por chips DDR2 regulares, que além de mais baratos, ofereciam um consumo elétrico muito mais baixo (uma diferença que era significativa sobretudo nas placas high-end, onde é usado um número maior de chips). No final, a única a utilizar chips GDDR2 foi a nVidia, com as GeForce FX 5700 e 5800, lançadas em 2003.

A evolução seguinte foi o padrão GDDR3, que acabou sendo muito bem sucedido, se tornando o padrão para placas de alto desempenho por quase 5 anos. O GDDR3 é um padrão aberto, desenvolvido pela ATI em parceria com o JEDEC, como uma evolução do padrão DDR2 (e não do DDR3, que foi finalizado muito depois, em 2007). Ele foi finalizado no início de 2004 e, ironicamente, a primeira a utilizá-lo foi a nVidia, que se apressou em lançar uma versão GDDR3 da GeForce FX 5700 Ultra.

Embora continue utilizando apenas 4 transferências por ciclo, assim como nas memórias DDR2 e GDDR2, o GDD3 implementa uma série de melhorias, que permitiram reduzir o uso de corrente (permitindo assim o uso de frequências mais altas sem necessidade de apelar para grandes aumentos de tensão, como no GDDR2) e aumentar a estabilidade dos sinais.

Dois bons exemplos são a adoção do uso de terminadores resistivos (que aumentam a estabilidade dos sinais, impedindo que os impulsos voltem na forma de interferência ao atingirem o final da trilha) e um sistema de calibragem de sinais, duas tecnologias que viriam mais tarde a serem integradas ao padrão DDR3.

Embora modestas, estas melhorias acabaram possibilitando um aumento muito grande na frequência dos chips. Enquanto os chips DDR2 (e GDDR2) são tipicamente capazes de atingir frequências de até 500 MHz (1000 MHz efetivos), os sucessivos aperfeiçoamentos nas técnicas de fabricação permitiram aos fabricantes de memória produzir chips GDDR3 com frequências de 900 MHz (1.8 GHz efetivos) ou mesmo 1000 MHz (2.0 GHz efetivos).

Em 2005 surgiu o padrão GDDR4, que implementou um sistema de prefetch de 8 bits, permitindo o uso de 8 transferências por ciclo, assim como nos módulos DDR3. Entretanto, dificuldades técnicas relacionadas à sinalização e interferência acabaram limitando os chips a frequências de apenas 500 MHz (2.0 GHz efetivos) a 550 MHz (2.2 GHz efetivos), resultando em ganhos muito pequenos em relação aos módulos GDDR3, que já estavam bem estabelecidos.

A ATI chegou a utilizar memórias GDDR4 em nas Radeon X1950 XTX e 2900 XT, esperando que os fabricantes seriam logo capazes de produzir chips mais rápidos. Entretanto, as promessas acabaram não se concretizando e a tecnologia foi logo abandonada, levando à grande sobrevida do GDDR3.

Com o fracasso do GDDR4, os fabricantes se concentraram no padrão seguinte, mantendo o uso de 8 transferências por ciclo mas adicionando refinamentos para atingir frequências mais altas, o que legou ao desenvolvimento do GDDR5, que fez sua estreia em 2008, na Radeon HD 4870.

Uma das principais melhorias é o Clock Data Recovery, que funciona como uma função de treinamento, que permite ao controlador detectar pequenas diferenças de sincronismo entre os sinais dos diferentes pinos, facilitando bastante o uso de frequências mais altas e relaxando as especificações com relação ao comprimento das trilhas.

Ao usar memórias GDDR3 (ou qualquer um dos padrões anteriores), todas as trilhas do barramento da memória precisam ter o mesmo comprimento (já que diferenças no comprimento levam à perda de sincronismo dos sinais), o que obriga os fabricantes a usarem trilhas em zig-zag e outros remendos, que acabam aumentando o nível de crosstalk.

Com as GDDR5 as especificações são afrouxadas, simplificando bastante o layout das placas. Um bom exemplo de comparação direta são as Radeon HD 4850 (GDDR3) e 4870 (GDDR5), que utilizam o mesmo chipset e o mesmo barramento de 256 bits, mas se diferenciam pelo tipo de memória usada. Você pode notar que o layout das trilhas da 4850 é bem mais bagunçado:

Radeon HD 4850 (GDDR3)


Radeon HD 4870 (GDDR5)


Outro recurso importante é o protocolo de detecção de erros de leitura e escrita, que aumenta muito a margem de tolerância dos módulos a erros diversos, já que o chipset pode simplesmente repetir as operações quando necessário. O percentual de erros aumenta junto com a frequência de operação, de modo que com um nível de tolerância maior, é possível atingir frequências muito mais altas. Ele é complementado por recursos herdados do padrão GDDR4, como o DBI (Data Bus Inversion) e o Multi-Preamble, que permitem reduzir os tempos de espera dos chips.

Combinadas todas as melhorias, as memórias GDDR5 são capazes de operar à frequências muito similares às GDDR3, o que resulta em um desempenho quase duas vezes maior, já que temos 8 transferências por ciclo. A primeira geração de chips GDDR5 (usados na Radeon HD 4870) são capazes de operar a 900 MHz (3600 MHz efetivos) e não deve demorar muito para que tenhamos módulos de 1000 MHz ou mais.

Concluindo, temos a velha discussão sobre a quantidade de memória nas placas. A memória de vídeo é necessária para armazenar texturas, vértices e outras informações necessárias para compor a imagem. Naturalmente, usar mais memória permite ativar mais opções relacionadas à qualidade (texturas de maior resolução, por exemplo) e evita que a placa de vídeo perca desempenho utilizando memória do sistema. Entretanto, a partir de um certo ponto, adicionar mais memória não tem efeito algum sobre o desempenho da placa, simplesmente porque o excesso não será utilizado.

Isso é especialmente verdade nas placas de baixo custo, onde o fraco desempenho impede que você utilize resoluções mais altas e ative as opções mais pesadas relacionadas ao uso de texturas, que seriam as opções que justificariam o uso de mais memória. De nada adianta comprar uma Radeon 4650 com 1 GB de memória, por exemplo.

Do outro lado da moeda temos as placas com pouca memória (como as versões da GeForce 8800 GT com apenas 256 MB), que acabam tendo seu desempenho penalizado quando obrigadas a processar uma volume maior de dados que ela comporta.

No caso delas, uma das melhores formas de reduzir o uso de memória e assim permitir que a GPU mostre todo o seu potencial é reduzir a qualidade das texturas (elas são o componente da imagem que mais consome memória), reduzir (ou desativar) o uso de antialiasing (já que ele faz com que a placa precise renderizar a imagem em uma resolução mais alta, o que também gasta mais memória).

Fontes: GDH Press, Carlos Morimoto