Memórias DDR2

Seguindo a tendência inaugurada pelas memórias DDR, as DDR2 novamente duplicaram a taxa de transferência, realizando agora 4 transferências por ciclo. Novamente, as células de memória continuam trabalhando na mesma frequência anterior e o acesso inicial continua demorando aproximadamente o mesmo tempo. Entretanto, as demais operações dentro do burst passaram a ser realizadas em apenas um quarto de ciclo de clock. Usando memórias DDR2, um burst de 8 leituras demoraria apenas 6.75 ciclos de clock (5-¼-¼-¼-¼-¼-¼-¼), contra 8.5 ciclos nas DDR e 12 nas SDR.

Como você pode imaginar, a diferença é maior em aplicativos que precisam manipular grandes blocos de dados e menor em aplicativos que leem pequenos blocos de dados espalhados. Em nenhuma situação prática a transferência chega realmente a dobrar; dizer que as “DDR2 são duas vezes mais rápidas” é apenas uma figura de linguagem.

Em 2005, quando os primeiros módulos DDR2-533 chegaram ao mercado, eles rapidamente ganharam a fama de “lentos”, pois eram comparados a módulos DDR-400 ou DDR-466, que já estavam entrincheirados.

Embora um módulo DDR2 ganhe de um DDR da mesma frequência em todos os quesitos (um DDR2-800 contra um DDR-400, por exemplo), o mesmo não acontece se comparamos módulos de frequências diferentes. Um módulo DDR2-533 opera a apenas 133 MHz, por isso acaba realmente perdendo para um DDR-400 (200 MHz) em muitas aplicações, já que o ganho ao realizar 4 operações por ciclo acaba não sendo suficiente para compensar a diferença na frequência de operação das células de memória. Vale lembrar que um módulo DDR2-533 trabalha com tempos de latência similares a um módulo DDR-266.

Realizar bursts de leituras rápidas pode não ser a forma mais perfeita de criar memórias mais rápidas (devido ao lento ciclo inicial), mas é sem dúvida a mais simples e barata. A frequência de operação das memórias aumenta de forma gradual, conforme são melhoradas as técnicas de produção. Realizar mais leituras por ciclo de clock é a única forma simples de melhorar exponencialmente a taxa de transferência dos módulos.

A dificuldade em criar chips de memória capazes de operar a frequências (reais) mais altas é similar à que temos no caso dos processadores. Não é possível criar um processador capaz de operar ao dobro do clock de uma hora para a outra, mas é possível criar um processador dual-core ou quad-core, por exemplo. No caso das memórias é mais simples, pois você pode ler vários endereços simultaneamente (ou quase), fazendo apenas mudanças nos circuitos controladores.

Dependendo da fonte, você pode ler tanto que as memórias DDR2 operam ao dobro da frequência das DDR quanto que elas realizam quatro transferências por ciclo em vez de duas. Nenhuma das duas explicações estão erradas, mas ambas são incompletas.

Como disse, as células de memória continuam trabalhando na mesma frequência das memórias SDR e DDR, mas os buffers de entrada e saída, responsáveis por ler os dados, passaram a operar ao dobro da frequência. É justamente esta frequência que é “vista” pelo restante do sistema, de forma que a maioria dos aplicativos de diagnóstico mostram a frequência dobrada usada pelos circuitos de entrada e não a frequência real das células de memória.

Devido a esta ambiguidade, não é errado dizer que os módulos DDR2 operam ao dobro da frequência dos DDR (os buffers e outros circuitos de apoio realmente operam), nem que são realizadas 4 leituras por ciclo (já que as células de memória continuam operando à mesma frequência).

Ao realizar uma leitura, o controlador de memória gera quatro sinais distintos, que ativam a leitura de quatro endereços adjacentes (recurso batizado de “4-bit prefetch”). As quatro leituras são feitas simultaneamente e os dados são entregues ao buffer, que se encarrega de despachá-los através do barramento principal.

Presumindo que o módulo DDR2 do exemplo operasse a 133 MHz, teríamos as células de memória ainda operando na mesma frequência, mas agora entregando 4 leituras de setores sequenciais por ciclo. Os buffers e o barramento de dados operam agora a 266 MHz, de forma que as 4 leituras podem ser enviadas em 2 ciclos, com duas transferências por ciclo. Os dois ciclos do barramento são realizados no mesmo espaço de tempo que apenas um ciclo das células de memória:

Como vimos, as células de memória podem ser grosseiramente comparadas a uma planilha eletrônica, com inúmeras linhas e colunas. Não existe uma grande dificuldade em ler vários endereços diferentes simultaneamente, desde que o fabricante consiga desenvolver os circuitos de controle necessários. Graças a isso, o desenvolvimento das memórias tem sido focado em realizar mais leituras por ciclo, combinado com aumentos graduais nas frequências de operação.

Quando as memórias DIMM surgiram, ainda na época do Pentium II, os módulos mais rápidos operavam a 100 MHz (os famosos módulos PC-100). Atualmente temos chips de memória de até 333 MHz que, combinados com as 4 leituras por ciclo do padrão DDR2, resultam em módulos com transferência teórica de até 10.6 GB/s:

DDR2-533 (133 MHz) = PC2-4200
DDR2-667 (166 MHz) = PC2-5300
DDR2-800 (200 MHz) = PC2-6400
DDR2-933 (233 MHz) = PC2-7500
DDR2-1066 (266 MHz) = PC2-8500
DDR2-1200 (300 MHz) = PC2-9600 (extra-oficial)
DDR2-1333 (333 MHz) = PC2-10600 (extra-oficial)

O CAS latency dos módulos DDR2 é medido em termos de ciclos do circuito controlador, por isso são normalmente o dobro do que nos módulos DDR. É como em “duas unidades” ou “quatro metades”, no final dá no mesmo. Um módulo DDR2-800 com CAS latency 4 possui o mesmo tempo de acesso que um DDR-400 com CAS latency 2.

Normalmente, as especificações das memórias DDR2 incluem não apenas o CAS latency (tCL), mas também o RAS to CAS delay (tRCD), Row Precharge Time (tRP) e RAS Activate to Charge (tRAS). Estes mesmos valores podem ser encontrados nas especificações de módulos DDR e SDR, mas com as memórias DDR2 os fabricantes passaram a divulgá-los de forma mais aberta, usando qualquer redução nos valores para diferenciar seus módulos dos concorrentes. Temos então módulos DDR2-800 “4-4-4-12” ou “5-5-5-15”, por exemplo.

O primeiro número é o CAS latency, que já conhecemos. O seguinte é o RAS to CAS delay, que é o tempo que o controlador precisa esperar entre o envio do endereço RAS e o CAS. Para realizar uma leitura, o controlador envia o sinal RAS, espera o tempo referente ao RAS to CAS delay, envia o sinal CAS, aguarda o número de ciclos referente a ele e então finalmente tem a leitura. Em um módulo DDR2 4-4-4-12, tanto o tCL quanto o tRCD demoram 4 ciclos, de forma que o acesso inicial demoraria um total de 8 ciclos. Em um módulo 5-5-5-15, o tempo subiria para 10 ciclos.

É importante lembrar (mais uma vez 🙂 que aqui estamos falando de ciclos dos circuitos de acesso, que trabalham ao dobro da frequência. Os 8 ciclos de um módulo DDR2 equivalem ao mesmo espaço de tempo consumido por 4 ciclos de um módulo DDR ou SDR.

Junto com o ciclo inicial, o controlador pode realizar um burst de mais 7 leituras (totalizando 8). Cada uma destas leituras adicionais consome o equivalente a meio ciclo do controlador (ou um quarto de ciclo das células de memória). Caso ele precise de mais dados dentro da mesma linha, ele repete o envio do sinal CAS e realiza um novo burst de leituras.

Note que o controlador só precisa enviar o sinal RAS ao mudar a linha ativa, de forma que o tRCD só entra na conta no primeiro acesso. Para os seguintes, temos apenas o tempo referente ao tCL. Caso o controlador precise realizar 24 leituras (dentro da mesma linha), num módulo DDR2 4-4-4-12, teríamos 11.5 ciclos (8+3.5) para as 8 primeiras leituras e mais 15 ciclos (4+3.5+4+3.5) para as 16 leituras subsequentes. É por causa dessa peculiaridade que os módulos DDR e DDR2 não possuem mais o “full-page mode” suportado pelas memórias SDRAM; ele deixou de ser necessário.

O Row Precharge Time (tRP) entra em ação quando o controlador precisa alternar entre diferentes linhas. Cada linha inclui 512 endereços de memória, o equivalente a 4 KB de dados. As linhas são divididas em 4 ou 8 páginas, de forma que um módulo DDR2 de 1 GB teria 8 páginas de 32.768 linhas, ou 4 páginas de 65.536 linhas. Com tantas linhas e páginas diferentes, não é difícil imaginar que o chaveamento entre elas é muito frequente. Quando falo em linhas e páginas, tenha em mente que essa é apenas a forma como o controlador de memória “enxerga” o módulo. Fisicamente, mesmo os bits de uma mesma linha estão espalhados pelos vários chips do módulo.

Antes de poder acessar uma determinada linha, o controlador de memória precisa carregá-la (precharge). Isso consiste em recarregar os capacitores dentro das células de memória, facilitando a leitura dos dados. O Row Precharge Time (tRP) é justamente o tempo necessário para fazer o carregamento, necessário antes de chavear para outra linha, seja no mesmo banco, seja num banco diferente.

Sendo assim, mesmo que seja necessário ler um único setor, a leitura demorará (em um módulo 4-4-4-12) 4 ciclos para o tRP, 4 ciclos para o tRCD, 4 ciclos para o tCL, totalizando 12 ciclos. Estes 12 ciclos são justamente o tempo referente ao RAS Activate to Charge (tRAS), que é o tempo mínimo para realizar uma leitura completa. O tRAS é sempre proporcional aos três primeiros valores, pois é justamente a soma dos três. É por isso que ele sempre é mais alto em módulos com CAS latency mais alto.

É possível reduzir o tRAS utilizando um recurso chamado Additive Latency, onde o comando para iniciar o precharge do banco seguinte pode ser enviado antes que a leitura atual termine. Isso faz com que o tempo total da leitura seguinte seja reduzido em 1 ou até mesmo 2 ciclos. Esse é o caso dos módulos 5-4-4-11 ou 4-4-4-11, por exemplo. Em outros casos é necessário um ciclo adicional para fechar o banco, que aumenta o tRAS em vez de diminuir. De qualquer forma, o tRAS é, entre os quatro, o parâmetro que menos influi no desempenho, pois só faz alguma diferença real quando o sistema precisa realizar séries de acessos rápidos, a linhas diferentes.

Bem, esta última parte exigiu uma explicação mais complexa que o habitual. Como você pode ver, os tempos de acesso dos módulos DDR2 é um pouco mais complexo do que pode parecer à primeira vista.

Entretanto, o mais importante dos 4 valores continua sendo o primeiro (o bom e velho CAS latency, ou tCL), já que o tRCD e o tRP são quase sempre iguais a ele e o tRAS é a soma dos três. Ou seja, se o CAS latency é mais baixo, automaticamente os demais valores também são.

O processo de transição: Com relação ao suporte por parte dos processadores e chipsets, o lançamento das memórias DDR2 teve um impacto diferente para a Intel e a AMD. Para a Intel, a migração para as memórias DDR2 foi mais simples, já que na plataforma Core o controlador de memória é incluído no chipset, de forma que aderir a uma nova tecnologia demanda apenas modificações nos chipsets e placas.

A Intel oferece suporte a memórias DDR2 em seus chipsets desde o i915P, lançado em 2004. Inicialmente, os chipsets ofereciam tanto suporte a memórias DDR quanto DDR2, de forma que ficava a cargo do fabricante escolher qual padrão utilizar. Existem inclusive placas híbridas, que suportam ambos os padrões, como a ECS 915P-A, que possuem dois slots de cada tipo, permitindo que você escolha qual padrão utilizar. A partir de um certo ponto, entretanto, as memórias DDR2 caíram de preço e quase todas as placas soquete 775 passaram a vir com suporte exclusivo a memórias DDR2.

Para a AMD, a mudança foi mais tortuosa, já que o Athlon 64 e derivados utilizam um controlador de memória embutido diretamente no processador, desenvolvido de forma a minimizar os tempos de acesso.

Por um lado isto é bom, pois oferece um ganho real de desempenho, mas por outro é ruim, pois qualquer mudança no tipo de memória usado demanda mudanças no processador e no soquete usado. Foi justamente isso que aconteceu quando a AMD decidiu fazer a migração das memórias DDR para as DDR2. Além das mudanças internas no processador e controlador de memória, o soquete 754 foi substituído pelo soquete 939 e em seguida pelo AM2, quebrando a compatibilidade com as placas antigas.

Com a adoção por parte da AMD, a procura (e consequentemente a produção) das memórias DDR2 aumentou bastante, fazendo com que os preços passassem a cair rapidamente. A partir do final de 2006, os preços dos módulos de memória DDR2 (nos EUA) caíram a ponto de passarem a ser mais baratos que os módulos DDR regulares. Como sempre, as mudanças chegam ao Brasil com alguns meses de atraso, mas a partir do início de 2007 as memórias DDR2 passaram a ser encontradas por preços inferiores às DDR por aqui também.

Outra questão importante é a popularização de módulos DDR2-1066 e também de módulos de baixa latência, com temporização de 4-4-3-11, ou mesmo 3-3-3-9. Ao contrário da geração inicial de módulos DDR2, que ofereciam mais banda, mas em compensação trabalhavam com tempos de acesso muito mais altos, esta segunda geração de módulos DDR2 é indiscutivelmente mais rápida. O ganho prático em utilizar memórias DDR2 não é tão grande assim, já que o barramento com a memória é apenas um dos fatores que determina o desempenho do PC. Entretanto, a partir do momento em que a nova tecnologia passa a ser mais barata que a anterior, qualquer ganho, por menor que seja, é muito bem-vindo.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X