terça-feira, 7 de agosto de 2012

memória DDR

07:55
Definição rápida: 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.
Definição detalhada: Apesar das otimizações, os módulos de memória SDRAM continuam realizando apenas uma transferência por ciclo, da forma mais simples possível. Depois de decorrido o longo ciclo inicial, as células de memória entregam uma leitura de dados por ciclo, que passa pelos buffers de saída e é despachada através do barramento de dados. Todos os componentes trabalham na mesma freqüência.
As memórias DDR implementam um novo truque, que as torna capazes de realizarem duas transferências por ciclo e serem quase duas vezes mais rápidas que as memórias SDRAM, mesmo mantendo a mesma freqüência de operação e a mesma tecnologia básica. Vem daí o termo "DDR", que significa "Double Data Rate", ou duplo fluxo de dados. Com o lançamento das memórias DDR, as SDRAM passaram a ser chamadas de "SDR", ou "Single Data Rate".
Os chips de memória DDR incluem circuitos adicionais, que permitem gerar comandos de acesso e receber os dados referentes às leituras duas vezes por ciclo de clock, executando uma operação no início do ciclo e outra no final. Como são utilizadas as mesmas trilhas para realizar ambas as transferências, não foi necessário fazer grandes modificações nem nos módulos, nem nas placas-mãe.
Apesar disso, as células de memória propriamente ditas continuam operando na mesma freqüência. Em um módulo DDR-266, por exemplo, elas operam a apenas 133 MHz, da mesma forma que num módulo PC-133. O pulo do gato é fazer com que cada um dos dois comandos de leitura (ou gravação) sejam enviados para um endereço diferente, na mesma linha. As duas leituras são enviadas através do barramento de dados na forma de duas transferências separadas, uma realizada no início e a outra no final do ciclo de clock:
O maior problema é que o ciclo inicial continua demorando o mesmo tempo que nas memórias SDRAM, de forma que o ganho aparece apenas em leituras de vários setores consecutivos e a taxa de transferência nunca chega realmente a dobrar, variando bastante de acordo com o tipo de aplicativo usado.
A temporização para um burst de 8 leituras, usando memórias DDR, seria 5-½-½-½-½-½-½-½ (8.5 ciclos) ao invés de 5-1-1-1-1-1-1-1 (12 ciclos) como num módulo SDR. A diferença é menor em bursts menores, de apenas duas ou quatro leituras.
Apesar disso, as memórias DDR acabaram sendo um excelente negócio, pois tornaram possível obter ganhos perceptíveis de performance sem um aumento considerável no custo. Justamente por isso elas se popularizaram rapidamente, substituindo as memórias SDRAM num espaço de menos de um ano.
Os módulos DDR podem ser vendidos tanto segundo sua freqüência de operação quanto segundo sua taxa de transferência.
DDR-200 (100 MHz) = PC1600
DDR-266 (133 MHz) = PC2100
DDR-333 (166 MHz) = PC2700
DDR-400 (200 MHz) = PC3200
DDR-466 (233 MHz) = PC3700
DDR-500 (250 MHz) = PC4000
Assim como no caso dos módulos SDRAM, existem módulos de memória DDR CL2 e CL3, sendo que nos CL2 o tempo do acesso inicial é reduzido em um ciclo, resultando em um pequeno ganho de desempenho. Como as DDR realizam duas operações por ciclo, surgiram também os módulos CL2.5, que ficam no meio do caminho.
As especificações dos módulos indicam a freqüência máxima para a qual seu funcionamento foi comprovado. Nada impede que você use o módulo a uma freqüência mais baixa que o especificado; você pode usar um módulo DDR-400 em uma placa-mãe configurada para trabalhar a 133 MHz, por exemplo, mas nesse caso não existe ganho de desempenho com relação a um módulo DDR-266, com exceção de pequenas diferenças relacionadas ao valor CAS ou à temporização dos dois módulos.
Quase sempre, é possível também usar o módulo a freqüências um pouco mais altas que o especificado, fazendo overclock. O módulo DDR-400 poderia funcionar então a 215 MHz, por exemplo. Fazer overclock sem aumentar a tensão da memória não traz perigo para os módulos (mesmo a longo prazo), porém você também não tem garantia de estabilidade. Normalmente os módulos CL2 ou CL2.5 suportam melhor os overclocks, já que o controlador tem mais margem para aumentar a temporização dos módulos para compensar o aumento na freqüência.
Ao misturar dois módulos de especificações diferentes, é necessário nivelar por baixo, usando a freqüência suportada pelo módulo mais lento. Justamente por isso, nem sempre é conveniente aproveitar os módulos antigos ao fazer upgrade, pois você acaba sub-utilizando o novo módulo.
Em casos onde você tem, por exemplo, um módulo de 128 MB de memória DDR-266, vale mais a pena vender o módulo antigo e comprar um módulo DDR-400 ou DDR-466 de 512 MB ou mais, do que usar o antigo em conjunto com um módulo novo. Verifique apenas se a placa-mãe permite ajustar a freqüência de forma assíncrona, sem aumentar junto a freqüência do FSB (de forma que você possa usar a freqüência correta para o módulo, sem com isso alterar a freqüência dos demais componentes).
Continuando, quase todos os módulos de memória SDRAM ou DDR possuem um chip de identificação chamado de "SPD" (Serial Presence Detect), que armazena os códigos de identificação do módulo, detalhes sobre a freqüência, tempos de acesso, CAS latency e outras especificações. Estas informações são exibidas por programas de identificação, como o CPU-Z e o Sandra. No Linux, você pode ler as informações gravadas no chip usando o script "decode-dimms.pl" (você pode encontrá-lo usando o comando "locate"), que faz parte do pacote "lm-sensors". Ele retorna uma longa lista de informações sobre cada um dos módulos instalados na máquina, como neste exemplo:
Memory Serial Presence Detect Decoder
By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner,
Jean Delvare and others
Version 2.10.1
Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/0-0050
Guessing DIMM is in bank 1
---=== SPD EEPROM Information ===---
EEPROM Checksum of bytes 0-62 OK (0x8C)
# of bytes written to SDRAM EEPROM 128
Total number of bytes in EEPROM 256
Fundamental Memory type DDR SDRAM
SPD Revision 0.0
---=== Memory Characteristics ===---
Maximum module speed 400MHz (PC3200)
Size 512 MB
tCL-tRCD-tRP-tRAS 3-3-3-8
Supported CAS Latencies 3, 2.5, 2
Supported CS Latencies 0
Supported WE Latencies 1
Minimum Cycle Time (CAS 3) 5 ns
Maximum Access Time (CAS 3) 0.65 ns
Minimum Cycle Time (CAS 2.5) 6 ns
Maximum Access Time (CAS 2.5) 0.7 ns
Minimum Cycle Time (CAS 2) 7.5 ns
Maximum Access Time (CAS 2) 0.75 ns
---=== Manufacturing Information ===---
Manufacturer Kingston
Manufacturing Location Code 0x04
Part Number K
Manufacturing Date 0x001E
Assembly Serial Number 0x6B376D48
Pelas informações, podemos ver que se trata de um módulo DDR-400 (PC3200) de 512 MB da Kingston. Veja que o módulo suporta o uso de CAS 3, 2.5 ou 2, mas em seguida é especificado que o tempo mínimo de acesso usando CAS 3 são 5 ns e usando CAS 2 são 7.5 ns. Ou seja, o módulo só é capaz de usar CAS 2 em freqüências mais baixas. Ao operar a 200 MHz, sua freqüência nominal, ele passa automaticamente a usar CAS 3. Apesar das especificações serem um pouco confusas, elas indicam que na verdade tenho em mãos um módulo CL3.
O SPD é um pequeno chip de memória EEPROM, com apenas 128 ou 256 bytes, que pode ser localizado facilmente no módulo.
Graças a ele, a placa-mãe pode utilizar automaticamente as configurações recomendadas para o módulo, facilitando a configuração. Mas, você pode desativar a configuração automática (By SPD) e especificar sua própria configuração através do Setup.
A maioria das placas atuais permitem que a memória opere de forma assíncrona com o clock da placa-mãe, permitindo que a placa-mãe opere a 166 MHz, enquanto a memória opera a 200 ou 233 MHz, por exemplo. Ao usar um módulo antigo, também é possível fazer o contrário, mantendo a placa-mãe a 200 MHz, mas configurando a memória para operar a 133 MHz, por exemplo.
Muitas placas vão além, permitindo que você ajuste manualmente o valor CAS da memória. Isso pode ser útil ao fazer overclock, pois um módulo DDR-400, pode não conseguir trabalhar estavelmente a 233 MHz (por exemplo), mantendo o CAS em 2 tempos, mas pode funcionar perfeitamente se o tempo for aumentado para 3 tempos. O inverso também é possível. Um módulo DDR-400 CAS3 poderia vir a trabalhar estavelmente com CAS 2 se a freqüência fosse reduzida para 166 MHz, por exemplo, oferecendo uma boa flexibilidade para quando você tem tempo disponível e quer chegar ao melhor desempenho possível. Algumas placas vão ainda mais longe, oferecendo conjuntos completos de ajustes.
Brincar com a freqüência e tempos de acesso da memória não oferece riscos para o equipamento. No máximo você pode precisar limpar o setup, para que o micro volte a inicializar depois de tentar usar uma configuração não suportada pelos módulos.
O maior risco está em aumentar a tensão usada pelos módulos (Memory Voltage). É comprovado que pequenos aumentos na tensão aumentam a possibilidade dos módulos trabalharem estavelmente a freqüências mais altas, sobretudo nos módulos DDR2, que dissipam mais calor. O problema é que isso também pode abreviar a vida útil dos módulos, por isso nem sempre é uma boa idéia.
Aumentos de até 5 a 6% estão dentro do limite de tolerância dos circuitos e não oferecem grandes riscos. Você pode usar 2.65v num módulo DDR ou 1.9v num módulo DDR2, mas a partir daí existe prejuízo para a vida útil. Aumentos a partir de 20% podem realmente queimar os módulos em poucas horas, por isso as opções normalmente não ficam disponíveis.

0 comentários:

Postar um comentário

 
Abrir Rodape