Graças à multiplicação de clock, os processadores trabalham a frequências cada vez maiores que as usadas pela placa mãe e consequentemente pela memória. Veja o caso de um Celeron 700 por exemplo. Nele, a placa mãe a memória operam a apenas 66 MHz, o multiplicador usado pelo processadores é 10.5x! Ou ainda o caso de um Athlon de 1.4 GHz, que utiliza memórias à 133 MHz, com um multiplicador de, novamente, 10.5x.
Mesmo com a ajuda do cache, o desempenho da memória RAM está começando a limitar severamente o desempenho do processador, sobretudo nos jogos e aplicativos onde são manipuladas grandes quantidades de dados.
Atualmente, temos basicamente duas concorrentes ao posto de sucessora das memórias SDRAM: as memórias DDR-SDRAM, Direct Rambus. Já começam a ser ensaiados os passos da sucessora das memórias DDR, que vem sendo chamadas de memórias DDR 2.
Memórias DDR-SDRAM: A sigla DDR vem de double data rate, o que enfatiza a principal característica das memórias DDR: permitir duas transferências de dados por ciclo de clock, um esquema semelhante ao usado no AGP 2x. Enquanto num módulo de memória SDRAM PC-100 temos transferidos 64 bits por ciclo de clock, resultando em uma taxa de transferência de 800 MB/s, num módulo de DDR-SDRAM também de 100 MHz teríamos duas transferências de 64 bits em cada ciclo, alcançando 1.6 GB/s de transferência, simplesmente o dobro.
Este tipo de memória está sendo bastante utilizado atualmente em placas de vídeo 3D. Uma das primeiras foi a Nvidia GeForce DDR.
O principal trunfo das memórias DDR é o preço, pois produzidas em grande quantidade custam pouco mais do que memórias SDRAM comuns. Na verdade, muitos fabricantes já oferecem memórias DDR pelo mesmo preço das SDRAM, o que deve virar regra em pouco tempo.
Os módulos de memória DDR-SDRAM são parecidos com os módulos DIMM de memórias SDRAM tradicionais, apenas a posição da fenda é diferente, para evitar que um módulo DDR possa sem encaixado num slot DIMM comum. Na foto abaixo temos um módulo de memória DDR-SDRAM produzido pela Samsung
Memórias Rambus: As memórias Direct Rambus, permitem um barramento de dados de apenas 16 bits de largura, em oposição aos 64 bits utilizados pelos módulos de memória SDRAM, suportando em compensação, freqüências de barramento de até 400 MHz com duas transferências por ciclo (como o AGP 2x), o que na prática eqüivale a uma freqüência de 800 MHz.
Trabalhando a 400 MHz com duas transferências por ciclo, sua velocidade máxima, as memórias Rambus permitem uma banda total de 1.6 Gigabytes por segundo.
Diferentemente das memórias DDR e SLD que são apenas evoluções das memórias SDRAM, as memórias Direct Rambus trazem uma arquitetura completamente nova, que exige modificações muito maiores nos chipsets destinados a suportá-la, significando maiores custos de desenvolvimento e produção.
Os próprios módulos de memória Rambus ainda são gritantemente mais caros, custando até 4 vezes mais que memórias SDRAM comuns. Claro que existe tendência de queda caso aumente a produção deste tipo de memória, mas ainda demorará anos até chegarmos a um patamar próximo ao das memórias SDRAM, isso caso as memórias Rambus venham a tornar-se um padrão.
Devido a isto, muitos especialistas não acreditam que esta tecnologia de memória possa ser realmente viável, e apontam as memórias DDR como uma alternativa muito mais prática. Apesar de tudo, as memórias Rambus são as únicas nativamente suportadas pelos chipsets i820 (atualmente extinto) i840 e i850 (que antes do i845 era o único chipset disponível para processadores Pentium 4).
Um problema que diminui a velocidade do acesso a dados nas memórias Rambus é o fato dos módulos trabalharem a apenas 16 bits, enquanto os processadores atuais comunicam-se com a memória usando palavras de 64 bits. Para superar esta limitação, é preciso que o controlador de memória (embutido no chipset) faça vários acessos consecutivos aos módulos de memória e entregue os dados ao processador na forma de palavras de 64 bits. Quando é necessário gravar dados é feito o processo inverso; o controlador de memória recebe os dados do processador na forma de palavras de 64 bits, e tem de fazer vários acesos consecutivos aos módulos de memória para armazenar cada palavra de 64 bits.
Este procedimento de conversão aumenta os tempos de latência, ou seja, o tempo que o processador tem que esperar entre cada operação de leitura ou gravação de dados, retardando o acesso à memória. É por isso que apesar dos módulos de memórias Rambus serem mais rápidos, o ganho de performance em relação às memórias SDRAM comuns é pequeno. A largura de banda total é bem maior, mas em compensação perde-se mais tempo entre cada acesso.
Os módulos de memórias Rambus são chamados de “Rambus Inline Memory Modules” ou RIMMs. Como pode ser visto na ilustração acima, os módulos RIMM são bem semelhantes aos módulos DIMM, mas em geral eles vem com uma proteção de metal sobre os chips de memória, que também serve para facilitar a dissipação de calor, já que os módulos RIMM aquecem bastante devido à alta frequência de operação.
Apesar de desejável, o dissipador de calor é opcional, o fabricante dos módulos é quem decide se prefere utiliza-lo ou não.
Memórias DDR X Memórias Rambus: 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 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 sobretudo 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 garantem 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 que finalmente dividem-se 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 seja feito 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 custam 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 :-)
Existem 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 qual tipo utilizar.
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 DDR para o Athlon (o AMD 760 foi o primeiro da lista) e para o Pentium III (liderados pelo Via Apollo 266). O primeiro chipset para Pentium 4 a suportar memórias DDR é o i845, seguido pelo SiS SiS645 e Ali M1671.
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, cache, 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.33, um Pentium 4, etc. 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 muito 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.
Nenhum comentário:
Postar um comentário