terça-feira, 7 de agosto de 2012

memoria SDRAM

08:10
Tanto as memórias FPM quanto as memórias EDO são assíncronas, o que significa que elas trabalham em seu próprio ritmo, independentemente dos ciclos da placa-mãe. Isso explica porque memórias FPM que foram projetadas para funcionar em placas para processadores 386 ou 486 funcionam sem problemas em placas soquete 7, que trabalham a 66 MHz. Na verdade, a memória continua trabalhando na mesma velocidade, o que muda são os tempos de espera que passam a ser mais altos. Assim, em vez de responder a cada 2 ciclos da placa-mãe, elas podem passar a responder a cada 3 ou 4 ciclos, por exemplo.
As memórias SDRAM (Synchronous Dynamic RAM) por sua vez, são capazes de trabalhar sincronizadas com os ciclos da placa-mãe, sem tempos de espera. Isso significa que a temporização das memórias SDRAM é sempre de uma leitura por ciclo. Independentemente da freqüência de barramento utilizada, os tempos de acesso serão sempre de 6-1-1-1, ou mesmo 5-1-1-1.
Veja que o primeiro acesso continua tomando vários ciclos, pois nele é necessário realizar o acesso padrão, ativando a linha (RAS) e depois a coluna (CAS). Apenas a partir do segundo acesso é que as otimizações entram em ação e a memória consegue realizar uma leitura por ciclo, até o final da leitura.
O burst de leitura pode ser de 2, 4 ou 8 endereços e existe também o modo "full page" (disponível apenas nos módulos SDRAM), onde o controlador pode especificar um número qualquer de endereços a serem lidos seqüencialmente, até um máximo de 512. Ou seja, em situações ideais, pode ser possível realizar a leitura de 256 setores em 260 ciclos! :). Só para efeito de comparação, se fossem usadas memórias regulares, com tempos de acesso similares, a mesma tarefa tomaria pelo menos 1280 ciclos.
Outra característica que ajuda as memórias SDRAM a serem mais rápidas que as EDO e FPM é a divisão dos módulos de memória em vários bancos. Um módulo DIMM pode ser formado por 2, 4, ou mesmo 8 bancos de memória, cada um englobando parte dos endereços disponíveis. Apenas um dos bancos pode ser acessado de cada vez, mas o controlador de memória pode aproveitar o tempo de ociosidade para fazer algumas operações nos demais, como executar os ciclos de refresh e também a pré-carga dos bancos que serão acessados em seguida. Nos módulos EDO e FPM, todas essas operações precisam ser feitas entre os ciclos de leitura, o que toma tempo e reduz a freqüência das operações de leitura.
A partir da memória SDRAM, tornou-se desnecessário falar em tempos de acesso, já que a memória trabalha de forma sincronizada em relação aos ciclos da placa-mãe. As memórias passaram então a ser rotuladas de acordo com a freqüência em que são capazes de operar. No caso das memórias SDRAM temos as memórias PC-66, PC-100 e PC-133, no caso das DDR temos as PC-200, PC-266, PC-333, PC-400 (e assim por diante), enquanto nas DDR2 temos as PC-533, PC-666, PC-800, PC-933, PC-1066 e PC-1200.
Um módulo de memória PC-133 deve ser capaz de operar a 133 MHz, fornecendo 133 milhões de leituras (teóricas) por segundo. Entretanto, essa velocidade é atingida apenas quando o módulo realiza um burst de várias leituras. O primeiro acesso continua levando 5, 6 ou mesmo 7 ciclos da placa-mãe, como nas memórias antigas.
Ou seja, o fato de ser um módulo PC-100 não indica que o módulo possui um tempo de acesso de 10 ns ou menos (nem mesmo os módulos DDR2 atuais atingem essa marca). Pelo contrário, a maioria dos módulos PC-100 trabalhavam com tempos de acesso de 40 ns. Mas, graças a todas as otimizações que vimos, as leituras podiam ser paralelizadas, de forma que no final o módulo suporta bursts de leitura onde, depois de um lento ciclo inicial, o módulo consegue realmente entregar 64 bits de dados a cada 10 ns.
Independentemente da freqüência de operação, temos também os módulos CL2 e CL3, onde o "CL" é abreviação de "CAS latency", ou seja, o tempo de latência relacionado ao envio do valor CAS, durante o primeiro acesso de cada burst.
Em módulos CL2, o envio do valor CAS toma 2 ciclos, enquanto nos CL3 toma 3 ciclos. A eles, somamos um ciclo inicial e mais dois ciclos relacionados ao envio do valor RAS, totalizando 5 (nos módulos CL2) ou 6 (nos CL3) ciclos para o acesso inicial.
A diferença acaba sendo pequena, pois os acessos seguintes demoram sempre apenas um ciclo.
Um módulo CL2 realizaria um burst de 8 leituras em 12 ciclos (5-1-1-1-1-1-1-1), enquanto o CL3 demoraria 13 ciclos (6-1-1-1-1-1-1-1). Ou seja, embora os módulos CL2 sejam celebrados e sejam alvo de um grande esforço de marketing por parte dos fabricantes, a diferença de performance é realmente muito pequena para justificar pagar mais caro num módulo CL2.
Apesar disso, os módulos CL2 trabalham com tempos de acesso um pouco mais baixos e por isso suportam melhor o uso de freqüências mais altas que o especificado, dando mais margem para overclock.
Veja que das memórias regulares, até as SDRAM, foi possível multiplicar a velocidade das memórias sem fazer alterações fundamentais nas células, que continuam seguindo o mesmo projeto básico, com um transístor e um capacitor para cada bit armazenado. Desde a década de 80, as reduções nos tempos de acesso foram apenas incrementais, acompanhando as melhorias nas técnicas de fabricação. O que realmente evoluiu com o passar do tempo foram os circuitos em torno dos módulos, que otimizaram o processo de leitura, extraindo mais e mais performance. Este conceito é levado ao próximo nível com as memórias DDR, DDR2 e DDR3, usadas atualmente.
Tanto as memórias FPM quanto as memórias EDO são assíncronas, o que significa que elas trabalham em seu próprio ritmo, independentemente dos ciclos da placa-mãe. Isso explica porque memórias FPM que foram projetadas para funcionar em placas para processadores 386 ou 486 funcionam sem problemas em placas soquete 7, que trabalham a 66 MHz. Na verdade, a memória continua trabalhando na mesma velocidade, o que muda são os tempos de espera que passam a ser mais altos. Assim, em vez de responder a cada 2 ciclos da placa-mãe, elas podem passar a responder a cada 3 ou 4 ciclos, por exemplo.
As memórias SDRAM (Synchronous Dynamic RAM) por sua vez, são capazes de trabalhar sincronizadas com os ciclos da placa-mãe, sem tempos de espera. Isso significa que a temporização das memórias SDRAM é sempre de uma leitura por ciclo. Independentemente da freqüência de barramento utilizada, os tempos de acesso serão sempre de 6-1-1-1, ou mesmo 5-1-1-1.
Veja que o primeiro acesso continua tomando vários ciclos, pois nele é necessário realizar o acesso padrão, ativando a linha (RAS) e depois a coluna (CAS). Apenas a partir do segundo acesso é que as otimizações entram em ação e a memória consegue realizar uma leitura por ciclo, até o final da leitura.
O burst de leitura pode ser de 2, 4 ou 8 endereços e existe também o modo "full page" (disponível apenas nos módulos SDRAM), onde o controlador pode especificar um número qualquer de endereços a serem lidos seqüencialmente, até um máximo de 512. Ou seja, em situações ideais, pode ser possível realizar a leitura de 256 setores em 260 ciclos! :). Só para efeito de comparação, se fossem usadas memórias regulares, com tempos de acesso similares, a mesma tarefa tomaria pelo menos 1280 ciclos.
Outra característica que ajuda as memórias SDRAM a serem mais rápidas que as EDO e FPM é a divisão dos módulos de memória em vários bancos. Um módulo DIMM pode ser formado por 2, 4, ou mesmo 8 bancos de memória, cada um englobando parte dos endereços disponíveis. Apenas um dos bancos pode ser acessado de cada vez, mas o controlador de memória pode aproveitar o tempo de ociosidade para fazer algumas operações nos demais, como executar os ciclos de refresh e também a pré-carga dos bancos que serão acessados em seguida. Nos módulos EDO e FPM, todas essas operações precisam ser feitas entre os ciclos de leitura, o que toma tempo e reduz a freqüência das operações de leitura.
A partir da memória SDRAM, tornou-se desnecessário falar em tempos de acesso, já que a memória trabalha de forma sincronizada em relação aos ciclos da placa-mãe. As memórias passaram então a ser rotuladas de acordo com a freqüência em que são capazes de operar. No caso das memórias SDRAM temos as memórias PC-66, PC-100 e PC-133, no caso das DDR temos as PC-200, PC-266, PC-333, PC-400 (e assim por diante), enquanto nas DDR2 temos as PC-533, PC-666, PC-800, PC-933, PC-1066 e PC-1200.
Um módulo de memória PC-133 deve ser capaz de operar a 133 MHz, fornecendo 133 milhões de leituras (teóricas) por segundo. Entretanto, essa velocidade é atingida apenas quando o módulo realiza um burst de várias leituras. O primeiro acesso continua levando 5, 6 ou mesmo 7 ciclos da placa-mãe, como nas memórias antigas.
Ou seja, o fato de ser um módulo PC-100 não indica que o módulo possui um tempo de acesso de 10 ns ou menos (nem mesmo os módulos DDR2 atuais atingem essa marca). Pelo contrário, a maioria dos módulos PC-100 trabalhavam com tempos de acesso de 40 ns. Mas, graças a todas as otimizações que vimos, as leituras podiam ser paralelizadas, de forma que no final o módulo suporta bursts de leitura onde, depois de um lento ciclo inicial, o módulo consegue realmente entregar 64 bits de dados a cada 10 ns.
Independentemente da freqüência de operação, temos também os módulos CL2 e CL3, onde o "CL" é abreviação de "CAS latency", ou seja, o tempo de latência relacionado ao envio do valor CAS, durante o primeiro acesso de cada burst.
Em módulos CL2, o envio do valor CAS toma 2 ciclos, enquanto nos CL3 toma 3 ciclos. A eles, somamos um ciclo inicial e mais dois ciclos relacionados ao envio do valor RAS, totalizando 5 (nos módulos CL2) ou 6 (nos CL3) ciclos para o acesso inicial.
A diferença acaba sendo pequena, pois os acessos seguintes demoram sempre apenas um ciclo.
Um módulo CL2 realizaria um burst de 8 leituras em 12 ciclos (5-1-1-1-1-1-1-1), enquanto o CL3 demoraria 13 ciclos (6-1-1-1-1-1-1-1). Ou seja, embora os módulos CL2 sejam celebrados e sejam alvo de um grande esforço de marketing por parte dos fabricantes, a diferença de performance é realmente muito pequena para justificar pagar mais caro num módulo CL2.
Apesar disso, os módulos CL2 trabalham com tempos de acesso um pouco mais baixos e por isso suportam melhor o uso de freqüências mais altas que o especificado, dando mais margem para overclock.
Veja que das memórias regulares, até as SDRAM, foi possível multiplicar a velocidade das memórias sem fazer alterações fundamentais nas células, que continuam seguindo o mesmo projeto básico, com um transístor e um capacitor para cada bit armazenado. Desde a década de 80, as reduções nos tempos de acesso foram apenas incrementais, acompanhando as melhorias nas técnicas de fabricação. O que realmente evoluiu com o passar do tempo foram os circuitos em torno dos módulos, que otimizaram o processo de leitura, extraindo mais e mais performance. Este conceito é levado ao próximo nível com as memórias DDR, DDR2 e DDR3, usadas atualmente.
v

0 comentários:

Postar um comentário

 
Abrir Rodape