Memórias DDR X Memórias Rambus

Por:

Durante a história da computação, a memória RAM passou por várias evoluções, evoluindo das memórias Regulares para as FPM, em seguida para as EDO e finalmente para as memórias SDRAM que usamos atualmente (leia mais em: https://www.hardware.com.br/tutoriais/memoria-ram/).

Porém, os processadores também evoluem, e muito mais rápido que as memórias. Cada vez mais a velocidade da memória RAM vem tornando-se um fator crítico para a performance, algo que já vemos nas placas de vídeo 3D e veremos, cada vez mais, também nos micros de mesa.

Existem atualmente duas candidatas a ponto de substituir as memórias SDRAM atuais, as DDR SDRAM e as Rambus. Que ambas são mais rápidas, todo mundo sabe, mas nesta análise vou explicar por que elas são mais rápidas, o quanto realmente são mais rápidas e finalmente o quanto esta maior velocidade pode influenciar no desempenho de um PC atual e o quanto será importante nos PCs do futuro. Vamos lá:

Noções básicas

Existem basicamente três fatores que determinam a velocidade de um módulo ou tecnologia de memória. A primeira é naturalmente a freqüência de operação, a segunda é o barramento de dados, ou seja, quantos dados são transferidos por ciclo e, finalmente, temos o tempo de latência, o número de ciclos que o módulo demora para começar a transferir dados apartir do momento que eles são solicitados e o intervalo a ser aguardado antes de um novo acesso à memória.

Por exemplo, um módulo de memória SDRAM PC-100 típico, opera a 100 MHz, ou seja, realiza 100 milhões de transferências por segundo. A cada transferência de dados são transmitidos 64 bits de dados (já que temos um módulo de 64 bits) enquanto o tempo de latência, ou seja o valor CAS, é de 2 ou 3 tempos, dependendo do módulo. Com isto, temos um módulo capaz de transferir, em condições ideais, 800 MB de dados por segundo, mas bem menos que isso na prática.

Um módulo de memória DDR PC-2100 por sua vez opera a 266 MHz (133 MHz com duas transferências por ciclo), também transmite 64 bits de dados por transferência e novamente tem (num módulo típico) um tempo de latência de 2 ou 3 ciclos. Com isto temos um módulo capaz de transferir, em condições ideais, 2.1 GB de dados por segundo, bem menos na prática novamente.

Um módulo de memória Rambus PC-800, que é o tipo mais comum atualmente, opera a 800 MHz, muita coisa, porém transfere apenas 16 bits de dados por ciclo. Veja que apesar de realizar mais transferências de dados por segundo, o módulo transfere menos dados por ciclo, apenas 1/4 do transmitido por um módulo DDR. Com isto, temos um módulo capaz de transferir 1.6 GB de dados por segundo. É o dobro do módulo de memória PC-100, mas é menos do que o módulo DDR. Devido à arquitetura usada, o tempo de latência num módulo de memória Rambus é maior do que num módulo de memória SDRAM ou DDR, de 4 a 5 tempos, dependendo do módulo, isto faz com que o módulo demore mais tempo para iniciar cada transferência de dados, o que prejudica o desempenho subretudo quando o processador está trabalhando com vários arquivos pequenos, situação comum num servidor de banco de dados por exemplo. Os tempos latência mais altos garante que novamente os módulos alcancem na prática velocidades abaixo do prometido.

Como funcionam as memórias DDR

A sigla DDR vem de double data rate. A sigla indica justamente a capacidade das memórias DDR transmitirem dados duas vezes por ciclo, uma transferência no início do ciclo de clock e uma segundo transferência no final do pulso. Um módulo DDR de 266 MHz por exemplo, não trabalha a 266 MHz, mas sim a apenas 133 MHz, entretanto, como são feitas duas transferências por ciclo, o desempenho é equivalente ao que seria alcançado por um módulo de 266 MHz.

O mais interessante é que um módulo DDR é essencialmente um módulo de memória SDRAM PC-100 ou PC-133 comum, com apenas uma ligeira modificação no circuito de acesso, como então ele pode ser duas vezes mais rápido?

Os módulos de memórias DRAM e DDR são divididos logicamente em bancos. Dentro do módulo de memória, cada banco concentra uma certa parte dos endereços de memória disponíveis. Cada banco divide-se novamente em várias linhas (Row) que finalmente se dividem em colunas. A combinação dos endereços de banco, linha e coluna, correspondem à localização dos dados a serem acessados.

Dentro de cada banco de memória, apenas uma linha pode permanecer ativa de cada vez, mas nada impede que sejam feitos mais de um acesso simultâneo, desde que a endereços diferentes.

Para isto não é necessário mudar a estrutura do módulo, apenas realizar algumas mudanças no circuito de acesso dentro dos módulos e no controlador de memória da placa mãe. Já existem no mercado tecnologias de memória que permitem 4 acessos por ciclo. Teoricamente seriam possíveis tecnologias ainda mais rápidas, porém, quanto maior a quantidade de dados sendo transferidos por ciclo, maior o nível de ruído eletromagnético, e mais difícil é fazer tudo funcionar.

É por isso que se diz que produzidas em grande quantidade, as memórias DDR podem custar pouco mais que as memórias SDRAM comuns, as diferenças de arquitetura são pequenas.

Possivelmente a única desvantagens das memórias DDR sobre as memórias SDRAM é o fato dos módulos serem incompatíveis. Ao comprar uma placa mãe que suporte memórias DDR, você poderá usar somente memórias DDR e vice-versa. Terá que trocar seus módulos de memória, e comprar apenas módulos DDR em upgrades futuros, é quase como um casamento 🙂

Devem ser lançadas no mercado algumas placas mãe híbridas, que tragam por exemplo dois soquetes para memórias SDRAM comuns e dois encaixes para memórias DDR, permitindo escolher entre qual tipo utilizar. Isto é possível caso o fabricante inclua dois controladores de memória na placa mãe. Não é uma solução muito atrativa, pois torna a placa mãe mais cara.

Existem dois tipos de memórias DDR, as PC-1600 e PC-2100, que operam respectivamente a 100 e 133 MHz, sempre com duas transferências por ciclo. Os números referem-se às capacidades teóricas de transmissão de dados dos módulos, respectivamente 1600 e 2100 MB/s.

A necessidade de memórias DDR

O grande trunfo das memórias DDR é um grande apoio da indústria, que vem ganhando força depois do lançamento dos chipsets para o Athlon (o AMD 760 foi o primeiro da lista) e para o Pentium III (liderados pelo Via Apollo 266).

O preço das memórias DDR também vem caindo, os primeiros módulos colocados no mercado, eram caríssimos, chegando a ser mais caros que módulos de memória Rambus, porém não tardaram a cair. Enquanto escrevo, um módulo de memória PC-133 de 128 MB, pode ser encontrado, nos EUA, por 30 dólares. Um módulo DDR, também de 128 MB custa de 55 dólares (PC-1600) a 79 dólares (PC-2100). Um módulo de memória Rambus já custa bem mais caro, 115 dólares, novamente nos EUA. Estes são os preços que devem ser vistos aqui no Brasil dentro de algumas semanas (ou que já estão sendo praticados, dependendo de quando ler este artigo :-).

O ganho de desempenho usando memórias DDR varia de acordo com o aplicativo usado. Em aplicativos de manipulam pequenas quantidades de dados por vez, como por exemplo, aplicativos de escritório em geral, programas de compactação de áudio e vídeo, browsers, etc. o ganho é muito pequeno, já que a quantidade de dados de que o aplicativo necessita podem ser atendidos facilmente por um módulo Pc-133 comum. este caso, os gargalos são o processador, ache, HD, etc. não a memória.

Porém, em aplicativos que manipulam grandes quantidades de dados, como por exemplo grandes bancos de dados, jogos 3D em geral, programas de engenharia como o CAD ou programas científicos, apresentam grandes ganhos de desempenho em conjunto com memórias DDR.

Isto vale para uma processador atual, um Athlon de 1.0 ou 1.2 GHz. Conforme os processadores forem evoluindo, o uso de memórias DDR trará ganhos de desempenho cada vez mais tangíveis, já que serão usados multiplicadores cada vez mais altos, aumentando o abismo entre a velocidade do processador e a velocidade da memória.

Um exemplo atual é o Celeron. Em suas primeiras versões, a 333, 366, 400 MHz, o Celeron, mesmo usando barramento de 66 MHz rivalizava em desempenho com os Pentium II de 350 e 400 MHz, que já utilizavam bus de 100, simplesmente por que a 366 MHz o Celeron ainda não era muito penalizado pela memória mais lenta.

Porém, conforme o Celeron foi sendo lançado em versões cada vez mais rápidas, o barramento de 66 MHz começou a limitar severamente a performance. A Intel resolveu então lançar no mercado o Celeron de 800 MHz usando bus de 100 MHz. A diferença de desempenho entre um Celeron 766 (que usa bus de 66) e um Celeron 800 (que usa bus de 100) chega a ser de quase 20% em alguns aplicativos, mesmo a freqüência do processador sendo quase a mesma. Afinal, o Celeron 766 usa multiplicador de incríveis 11.5 x, enquanto o Celeron 800 usa multiplicador de apenas 8 x, perdendo muito menos tempo ao acessar a memória.

Como funcionam as memórias Rambus

As memórias Rambus não deixam de ser uma arquitetura bastante interessante, afinal, projetar um módulo de memória capaz de operar a 800 MHz tem seus méritos.

A grande diferença entre um módulo de memória Rambus e um de memória DDR, e justamente o que permite aos módulos RDRAM atingir frequências de operação altíssimas, é o fato de serem divididos num número muito maior de bancos de memória. Com mais bancos, é possível manter mais bancos transferindo dados ao mesmo tempo, obtendo frequências de operação mais altas.

Isto leva à segunda característica, que é ao mesmo tempo uma vantagem e desvantagem: o fato dos módulos transmitirem apenas 16 de dados bits por ciclo, enquanto os módulos DDR transmitem 64 bits.

Esta limitação surge em decorrência da freqüência de operação mais alta. Se cada via de dados realiza mais transferências de dados por segundo, consequentemente também gerará mais ruído eletromagnético, ou seja, gerará mais interferência. Com isto, as vias de dados precisarão ficar mais distantes umas das outras. Já que o espaço num módulo de memória é muito restrito, a única solução foi diminuir o número de vias de dados, de 64 para apenas 16.

Por outro lado, isto pode ser vantajoso do ponto de vista dos fabricantes de placas mãe, pois se os módulos de memória possuem apenas 16 vias de dados, será preciso usar menos trilhas na placa mãe, o que significa custos de desenvolvimento e produção mais baixos. Existe inclusive a possibilidade de aumentar o número de vias, de 16 para 32 e acessar dois módulos ao mesmo tempo. Com isto a velocidade de acesso a memória dobra.

Cada módulo transmite dados (limite teórico) a 1.6 GB/s, então dois módulos juntos transmitirão a 3.2 GB/s. Este sistema é usado no Pentium 4, onde é necessário usar os módulos RDRAM em pares. Mais dor de cabeça, mais gastos, porém acesso à memória mais rápido. Estes 3.2 GB/s de barramento com a memória são um dos principais motivos para o Pentium 4 ser rápido no Quake 3, um jogo que depende muito da velocidade do acesso à memória, mas não ajuda tanto em outros aplicativos.

O uso de mais bancos de memória traz um efeito colateral, que é a necessidade de usar um circuito de controle mais complexo, e mais caro. Este circuito de controle é um dos fatores que faz os módulos RDRAM serem mais caros, e é o culpado pelos tempos de latência mais altos.

A organização mais complexa e o circuito de controle mais lento, faz com que os acesso demorem muito mais tempo. O primeiro acesso à memória demora muito mais que num módulo DDR, apesar dos seguintes demorarem apenas um ciclo cada.

Isto explica por que um Pentium III espetado numa placa mãe o com o chipset i820, que usa memórias Rambus, é mais lento que um Pentium III usando memórias PC-100 comuns em muitos aplicativos, ganhando em outros. Apesar de transferir mais dados por ciclo, os módulos RDRAM demoram mais para começar a transferir dados, o que significa mais ciclos de processamento desperdiçados.

Aplicativos que realizam vários acessos a memória, transferindo um número pequeno de dados por acesso, acabam apresentando um desempenho inferior do que apresentariam com memórias PC-100 comuns, enquanto aplicativos que manipulam grandes quantidades de dados são beneficiados. É uma faca de dois gumes.

A possibilidade dos módulos RDRAM virarem padrão

Em termos de arquitetura, as memórias Rambus não são ruins, levam vantagem em alguns aspectos e perdem em outros. Poderiam ser úteis para placas de vídeo por exemplo, dividindo o mercado com as memórias DDR se não fossem dois pequenos problemas.

O primeiro é naturalmente o preço bem mais elevado. Como citei no início deste artigo, um módulo RDRAM custa o dobro de um módulo DDR PC-166 e quase 4 vezes mais caro que um módulo PC-133 comum. Considerando que o Pentium 4, atualmente o único processador que usa memória Rambus, usa os módulos em pares, o custo é ainda mais alto.

O segundo motivo é a própria resistência da indústria em adotar um padrão fechado. Ao contrário das memórias SDRAM e DDR, as Rambus não são um padrão aberto, mas sim propriedade da Rambus Inc. Fabricantes interessados em produzir os módulos são obrigados a pagar royalties e seguir os padrões estabelecidos pela compania. Mais custos e menos liberdade.

A história mostra que os padrões abertos sempre prevaleceram sobre os fechados. Os próprios micros PC só conseguiram dominar o mercado por serem um padrão aberto. Na época em que o PC original foi lançado, pela IBM, existiam no mercado computadores muito melhores e inclusive mais baratos, o Macintosh por exemplo, mas todos proprietários, o simples “defeito” que garantiu a popularização do PC.

Por que até hoje os Macs são minoria, são muito mais caros e a Apple vive passando por apertos financeiros, enquanto as companias dedicadas a vender PCs, como a Dell comemoram os lucros? Arquitetura fechada X Arquitetura aberta.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X