Memória

Por:

Os módulos de memória podem ser divididos em três categorias: módulos “genéricos”, sem marca, módulos de marcas conhecidas, como Kingston, Micron, Corsair, Samsung, etc. e módulos “premium”, que oferecem tempos de acesso, ou suportam frequências de clock mais altas, possuem dissipadores avantajados, que facilitam o overclock e assim por diante.

De uma forma geral, a diferença de preço entre os módulos genéricos e os módulos das marcas conhecidas é muito pequena, inferior a 10% da grande maioria dos casos, por isso acaba valendo mais à pena comprar módulos das marcas conhecidas.

Módulos genéricos não são necessariamente ruins. Em muitos casos, são usados os mesmos chips usados em módulos de marcas conhecidas, muitas vezes com a mesma qualidade de fabricação e acabamento. O mercado de fabricação de módulos de memória é incrivelmente concorridos, de forma que os fabricantes que produzem produtos inferiores, ou que possuem margens de defeitos acima da média acabam não sobrevivendo muito tempo.

A principal questão é que comprando módulos genéricos a possibilidade de dar o azar de comprar um módulo ruim é maior, já que estamos falando de fabricantes que trabalham com margens de lucro incrivelmente apertadas e se engalfinham por qualquer centavo a menos no preço de venda. Fabricantes conhecidos trabalham com preços um pouco acima da média e por isso podem se dar ao luxo de ter sistemas de controle de qualidade melhor e oferecer garantias maiores.

Os módulos premium, por sua vez, raramente são uma boa opção de compra, pois a diferença de preço é muito grande, podendo chegar a 100% ou mais em relação a módulos genéricos da mesma capacidade e o pequeno ganho de desempenho não compensa o investimento.

Módulos premium são compostos por compostos por chips escolhidos durante a fase inicial de testes, antes que eles sejam soldados aos módulos. Assim como nos processadores, alguns chips de memória são capazes de operar a frequências mais altas que outros. Isso acontece devido a pequenas diferenças no foco das lentes de litografia, que fazem com que os chips no centro do waffer fiquem mais perfeitos que os das bordas, por exemplo. Combinando estes módulos escolhidos a dedo com um controle de qualidade mais rigoroso e dissipadores mais eficientes fazem com que estes módulos realmente se destaquem.

O grande problema é que os fabricantes aproveitam o hype e o limitado volume de produção para os venderem a preços muitos mais altos. Comprar módulos premium é como comprar roupas de grife. A qualidade normalmente é um pouco superior, mas a grande diferença de preço não compensa.

Em seguida temos a questão da frequência e tempos de acesso. Em casos onde o vendedor é bem informado, ele mesmo pode lhe fornecer as informações, caso contrário você acaba sendo obrigado a pesquisar pelo código de identificação decalcado no módulo, ou pelo código de identificação do fabricante.

Nos módulos da Kingston, por exemplo, você encontra um código como “KVR533D2N4/512” na etiqueta de identificação do módulo:

fig15
Uma pesquisa rápida no http://kingston.com mostra o significado do código:

fig16
A sigla “KVR” indica a linha de produtos da qual o módulo faz parte, neste caso a ValueRAM, a linha de módulos de baixo custo da Kingston. Em seguida temos a frequência de operação suportada pelo módulo. No caso do módulo da foto, temos um “533”, que indica que ele é um módulo DDR2-533.

Depois do “D2N”, que indica que é um módulo DDR2, sem ECC, temos o número que indica o tempo de latência, que no módulo da foto é de 4 tempos. A letra “K” (quando presente) indica que o módulo faz parte de um kit, com duas ou quatro peças, destinado a uso em uma placa dual-channel, enquanto os últimos dígitos indicam a capacidade do módulos, como em “512”, “1G”, “2G” ou “4G”.

Ao comprar, você deve, naturalmente, dar preferência aos módulos com frequência de operação mais alta e tempos de latência mais baixos, desde que isso não implique em um aumento significativo de preço.

Infelizmente, nos módulos de baixo custo as duas coisas andam juntas, de forma que os módulos com frequências mais altas possuem quase sempre tempos de latência também mais altos, já que é mais fácil aumentar a frequência de operação do módulo do que reduzir o tempo “real” de acesso, representado pelo tempo de latência.

A partir dos módulos DDR2, o tempo de acesso tem um impacto mais direto sobre o desempenho do que a frequência de operação. Isso acontece não apenas por que tempos de acesso mais baixos permitem que o processador tenha acesso aos dados que precisa mais também por que eles tem uma influência direta sobre a taxa de transferência efetiva do módulo.

Em um módulo com CAS 5 e RAS to CAS delay 5, por exemplo, um acesso a um endereço qualquer do módulo demoraria um total de 10 ciclos. Após este ciclo inicial, o controlador pode realizar um bust de mais 7 leituras, onde cada uma demorando apenas mais meio ciclo. No final os 8 acessos demorariam 13.5 ciclos, 10 dos quais são referentes ao acesso inicial. Em um módulo com CAS e RAS to CAS delay de 4 tempos, o ciclo inicial demoraria apenas 8 ciclos, o que permitiria realizar as 8 leituras em apenas 11.5 ciclos.

Quando as memórias DIMM surgiram, ainda na época do Pentium II, os pentes mais rápidos operavam a 100 MHz (os famosos módulos PC-100). Atualmente temos chips de memória de até 300 MHz que, combinados com as 4 leituras por ciclo, resultam em módulos com transferência teórica de até 9.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

O CAS latency dos módulos DDR é medido em termos de ciclos do circuito controlador, por isso são normalmente o dobro do que nos módulos DDR. É como duas “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. Num 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. Num 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 freqüê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 a 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 subseqüentes. É por causa desta 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 pente 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 freqüente :). Quando falo em linhas e páginas, tenha em mente que esta é 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á (num 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. Este é 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 ao invés de diminuir. De qualquer forma, o tRAS é dos 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.

Entretanto, o mais importante dos 4 valores continua sendo o primeiro (o bom e velho CAS latency, ou tCL), 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.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X