6
Entendendo as Temporizações das Memórias RAM Por Gabriel Torres e Cássio Lima em 20 de junho de 2006 Introdução As memórias DDR e DDR2 são classificadas de acordo com a velocidade máxima que conseguem operar. Porém além da velocidade há uma outra informação que informa o desempenho da memória: suas temporizações. Temporizações são números como 2-3-2-6-T1, 3-4-4-8 ou 2-2-2-5. Quanto menor forem esses números, melhor. Neste tutorial explicaremos a você o significado de cada um desses números. As memórias DDR e DDR2 seguem a seguinte classificação: DDRxxx/PCyyyy. A propósito, se você está interessado em saber a diferença entre as memórias DDR2 e DDR não deixe de ler nosso tutorial sobre o assunto. O primeiro número (xxx) indica o clock máximo que os chips da memória suportam. Por exemplo, as memórias DDR400 trabalham a, no máximo, 400 MHz, enquanto que as memórias DDR2-667 trabalham a até 667 MHz. É importante notar que este não é o clock real das memórias: o clock real das memórias DDR e DDR2 é metade do clock rotulado. Por exemplo, o clock real das memórias DDR400 é 200 MHz e não 400 MHz, como você poderia imaginar. O mesmo é válido para as memórias DDR2: o clock real das memórias DDR2-667 é 333 MHz, não 667 MHz. O segundo número (yyyy) indica a taxa de transferência máxima da memória, medida em MB/s. A taxa de transferência de dados das memórias DDR400 é de no máximo 3.200 MB/s, e por isso que elas são rotuladas como PC3200. A taxa de transferência das memórias DDR2-667 é de 5.336 MB/s, e por isso que elas são rotuladas como PC2-5400. Como você pode ver, usamos o número “2” após os nomes “DDR” e “PC” para indicar que estamos falando das memórias DDR2, e não das memórias DDR. A primeira parte da classificação, DDRxxx, é o padrão usado para classificar os chips de memória, enquanto que a segunda parte, PCyyyy, é usada para classificar os módulos de memórias. Na Figura 1 você pode ver um módulo de memória PC2-4200 da Corsair, que utiliza chips DDR2-533. clique para ampliar Figura 1: Um módulo de memória DDR2-533/PC2-4200. A taxa de transferência máxima dos módulos de memórias pode ser calculada através da seguinte fórmula:

Entendendo as temporizações das memórias ram por gabriel torres publicado em 20 06-06

Embed Size (px)

Citation preview

Entendendo as Temporizações das Memórias RAM Por Gabriel Torres e Cássio Lima em 20 de junho de 2006

Introdução

As memórias DDR e DDR2 são classificadas de acordo com a velocidade máxima que conseguem operar. Porém além da velocidade há uma outra informação que informa o desempenho da memória: suas temporizações. Temporizações são números como 2-3-2-6-T1, 3-4-4-8 ou 2-2-2-5. Quanto menor forem esses números, melhor. Neste tutorial explicaremos a você o significado de cada um desses números.

As memórias DDR e DDR2 seguem a seguinte classificação: DDRxxx/PCyyyy. A propósito, se você está interessado em saber a diferença entre as memórias DDR2 e DDR não deixe de ler nosso tutorial sobre o assunto.

O primeiro número (xxx) indica o clock máximo que os chips da memória suportam. Por exemplo, as memórias DDR400 trabalham a, no máximo, 400 MHz, enquanto que as memórias DDR2-667 trabalham a até 667 MHz. É importante notar que este não é o clock real das memórias: o clock real das memórias DDR e DDR2 é metade do clock rotulado. Por exemplo, o clock real das memórias DDR400 é 200 MHz e não 400 MHz, como você poderia imaginar. O mesmo é válido para as memórias DDR2: o clock real das memórias DDR2-667 é 333 MHz, não 667 MHz.

O segundo número (yyyy) indica a taxa de transferência máxima da memória, medida em MB/s. A taxa de transferência de dados das memórias DDR400 é de no máximo 3.200 MB/s, e por isso que elas são rotuladas como PC3200. A taxa de transferência das memórias DDR2-667 é de 5.336 MB/s, e por isso que elas são rotuladas como PC2-5400. Como você pode ver, usamos o número “2” após os nomes “DDR” e “PC” para indicar que estamos falando das memórias DDR2, e não das memórias DDR.

A primeira parte da classificação, DDRxxx, é o padrão usado para classificar os chips de memória, enquanto que a segunda parte, PCyyyy, é usada para classificar os módulos de memórias. Na Figura 1 você pode ver um módulo de memória PC2-4200 da Corsair, que utiliza chips DDR2-533.

clique para ampliar

Figura 1: Um módulo de memória DDR2-533/PC2-4200.

A taxa de transferência máxima dos módulos de memórias pode ser calculada através da seguinte fórmula:

Taxa de Transferência Máxima Teórica = Clock x Número de Bits / 8.

Como os módulos de memória DIMM transferem 64 bits por vez, o “Número de Bits” da fórmula é 64. Como 64 / 8 é igual a 8, podemos simplificar esta fórmula para:

Taxa de Transferência Máxima Teórica = Clock x 8.

Se você instalar um módulo de memória em um micro onde o seu barramento de memória esteja rodando com um clock menor, a taxa de transferência que o módulo de memória alcançará será menor do que a sua taxa de transferência máxima teórica. Aliás este é um erro de interpretação muito comum.

Por exemplo, digamos que você comprou um par de memórias DDR500/PC4000. Apesar de elas serem rotuladas como DDR500 isto não significa que elas trabalharão efetivamente a 500 MHz em seu micro. Este é o clock máximo suportado pelos chips de memória. Se você instalar essas memórias em um micro comum, elas trabalharão a 400 MHz (DDR400) – que é a velocidade máxima padrão das memórias DDR -, obtendo uma taxa de transferência máxima teórica de 3.200 MB/s (ou 6.400 MB/s se elas estiverem trabalhando no modo de dois canais, leia nosso tutorial Memórias DDR Dual Channel). Dessa forma essas memórias não trabalharão a 500 MHz e muito menos alcançarão a taxa de transferência de 4.000 MB/s.

Portanto, por que alguém compraria esses módulos? Para overclock: como o fabricante garante que esses módulos trabalham a até 500 MHz, você sabe de antemão que pode aumentar o clock do barramento de memória para até 250 MHz para aumentar o desempenho do seu micro. No entanto, sua placa-mãe deve suportar este tipo de overclock (leia nosso tutorial sobre overclock da memória para mais detalhes). Por isso, comprar um módulo de memória com um clock rotulado maior do que o do barramento de memória do seu micro é inútil se você não pretende fazer um overclock.

Para a maioria dos usuários, isto é tudo o que temos que saber sobre as memórias DDR/DDR2. Para usuários avançados, existe ainda uma outra característica: a temporização da memória, também chamada latência. Falaremos agora sobre isto.

Temporizações

Por causa das temporizações dois módulos de memória com mesma taxa de transferência máxima teórica podem apresentar desempenhos diferentes. Mas como isto é possível, já que ambos os módulos trabalham com o mesmo clock?

As temporizações medem o tempo em que o chip de memória demora para fazer algo internamente. Por exemplo: considere o mais famoso parâmetro, chamado Latência do CAS (CAS Latency, CL ou “tempo de acesso”), que indica a quantidade de pulsos de clock que o módulo de memória leva para retornar um dado solicitado pelo processador. Um módulo de memória com um CL=4 levará quatro pulsos de clock para entregar um dado solicitado, enquanto que um módulo de memória com CL=3 levará três pulsos de clock para entregar o mesmo dado. Como ambos os módulos podem trabalhar com o mesmo clock, o segundo será mais rápido, já que ele consegue entregar o dado solicitado em menos tempo. Isto é conhecido como “latência”. Se você prestar atenção na Figura 1, notará que o módulo tem CL=4.

A temporização da memória é dada através de uma série de números, como, por exemplo 2-3-2-6-T1, 3-4-4-8 ou 2-2-2-5. Estes números indicam a quantidade de pulsos de clock que a memória demora para fazer uma determinada operação. Quanto menor o número, mais rápida é a memória.

clique para ampliar

Figura 2: Um módulo de memória DDR2 com temporizações 5-5-5-15.

As operações que estes números indicam são as seguintes: CL-tRCD-tRP-tRAS-CMD. Para entendê-los, tenha em mente que a memória é organizada internamente em forma de matriz, onde os dados são armazenados na interseção de linhas e colunas.

CL: CAS Latency. Tempo demorado entre um comando ter sido enviado para a memória e ela começar a responder. É o tempo demorado entre o processador pedir um dado da memória e ela devolver este dado. tRCD: RAS to CAS Delay. Tempo demorado entre a ativação da linha (RAS) e a coluna (CAS) onde o dado está armazenado na matriz. tRP: RAS Precharge. Tempo demorado entre desativar o acesso a uma linha de dados e iniciar o acesso a outra linha de dados. tRAS: Active to Precharge Delay. O quanto a memória tem que esperar até que o próximo acesso à memória possa ser iniciado. CMD: Command Rate. Tempo demorado entre o chip de memória ter sido ativado e o primeiro comando poder ser enviado para a memória. Algumas vezes este valor não é informado. Normalmente possui o valor T1 (1 clock) ou T2 (2 clocks).

Normalmente você tem duas opções: ou você configura seu micro para usar as temporizações padrão da memória – geralmente configuradas como “Auto” no setup do micro –, ou você configura manualmente o seu micro para usar temporizações menores, que pode aumentar o desempenho do seu micro. Note que nem toda placa-mãe permite que você altere as temporizações da memória. Além disso, algumas placas-mãe podem não funcionar com temporizações muito baixas e por isso a própria placa-mãe pode configurar o seu módulo de memória para rodar com temporizações maiores.

clique para ampliar

Figura 3: Configuração das temporizações da memória no setup do micro.

Quando você faz um overclock na memória você pode precisar aumentar suas temporizações de modo a fazer com que o micro trabalhe de forma estável. Aqui é onde algo muito interessante acontece. Devido ao aumento das temporizações, a memória pode obter um baixo desempenho, mesmo que agora ela tenha sido configurada para trabalhar com um clock maior, devido à latência que foi introduzida.

Esta é uma outra vantagem de módulos de memória vendidos especificamente para overclock. O fabricante, além de garantir que o seu módulo de memória atingirá o clock rotulado, garante também que você será capaz de manter as temporizações rotuladas até o clock rotulado.

Voltando para o exemplo do módulo de memória DDR500/PC4000, apesar que você talvez consiga atingir 500 MHz (250 MHz x 2) com módulos DDR400/PC3200, talvez seja necessário aumentar as temporizações da memória, enquanto nos módulos DDR500/PC4000 o fabricante garante que você será capaz de obter 500 MHz mantendo as temporizações rotuladas.

Falaremos agora em detalhes sobre cada um desses parâmetros de temporização das memórias.

Latência do CAS (CL)

Como mencionamos, a latência do CAS (CL) é o parâmetro mais famoso da memória. Ele indica a quantidade de pulsos de clock que a memória leva para retornar um dado solicitado. Uma memória com CL=3 demora três pulsos de clock para entregar um dado, enquanto que uma memória com CL=5 demora cinco pulsos de clock para realizar a mesma operação. Dessa maneira dois módulos trabalhando com o mesmo clock o que tiver a menor latência do CAS será o mais rápido.

Note que o clock aqui é o clock real que o módulo de memória está rodando – ou seja, metade do clock rotulado. Como as memórias DDR e DDR2 podem entregar dois dados por pulso de clock, elas são rotuladas com o dobro de seus clocks reais.

Na Figura 4 você pode ver como o CL funciona. Demos dois exemplos: um módulo de memória com CL=3 e um módulo de memória com CL=5. O comando em azul seria um comando “read” (“leitura”).

clique para ampliar

Figura 4: Latência do CAS (CL).

Uma memória com CL=3 teria um aumento de 40% na latência da memória em relação a uma memória com CL=5, considerando que as duas estejam rodando com o mesmo clock.

Você pode até mesmo calcular o tempo que a memória demora até começar entregar os dados. O período de cada pulso de clock pode ser facilmente calculado através da fórmula:

T = 1 / f.

Assim o período de cada pulso de clock de uma memória DDR2-533 trabalhando a 533 MHz (266,66 MHz) é de 3,75 ns (ns = nanossegundo; 1 ns = 0,000000001 s). Tenha em mente que você precisa usar o clock real, que é metade do clock rotulado. Dessa forma esta memória DDR2-533 demoraria 18,75 ns para começar entregar os dados, caso ela tivesse um CL=5, ou 11,25 ns, caso ela tivesse um CL=3, por exemplo.

As memórias SDRAM, DDR e DDR2 implementam o modo burst (rajada), onde um dado após o primeiro solicitado demora apenas um pulso de clock para ser entregue pela memória, desde que este dado esteja localizado em um endereço logo após o endereço do dado atual. Com isso, enquanto o primeiro dado demoraria a quantidade de pulsos de clock da latência do CAS para ser entregue, o próximo dado seria entregue logo após o dado que acabou de sair da memória, não tendo de esperar um outro ciclo de latência do CAS.

RAS to CAS Delay (tRCD)

Cada chip de memória é organizado internamente como uma matriz. Na interseção de cada linha e coluna temos um pequeno capacitor responsável por armazenar um “0” ou “1” – o dado. Internamente o processo de acessar um dado armazenado é feito ativando-se a linha onde ele está localizado e, em seguida, a coluna. Esta ativação é feita por dois sinais de controle chamados RAS (Row Address Strobe) e CAS (Column Address Strobe). Quanto menor for o tempo entre esses dois sinais, melhor, já que o dado será lido mais rapidamente. O parâmetro RAS to CAS Delay ou (tRCD) mede este tempo. Na Figura 5 ilustramos isto, mostrando uma memória com tRCD=3.

clique para ampliar

Figura 5: RAS to CAS Delay (tRCD).

Como você pode ver, o parâmetro RAS to CAS Delay é também o número de pulsos de clock entre o comando “Active” (“Ativar”) e um comando “read” (“leitura”) ou “write” (“escrita”).

Assim como acontece com a latência do CAS, o parâmetro RAS to CAS Delay funciona com o clock real da memória (que é metade do clock rotulado), e quanto menor for este parâmetro, mais rápido a memória será, já que ela começará ler ou escrever dados mais rapidamente.

RAS Precharge (tRP)

Após o dado ter sido entregue pela memória, um comando chamado Precharge precisa ser executado para desativar a linha da memória que estava sendo usada e para permitir que uma nova linha seja ativada. O tempo RAS Precharge (tRP) é o tempo entre o comando Precharge e o próximo comando “Active” (“Ativar”). Como vimos na página anterior, o comando “Active” inicia um ciclo de leitura ou de escrita.

clique para ampliar

Figura 6: RAS Precharge (tRP).

Na Figura 6 damos um exemplo de uma memória com tRP=3.

Como acontece com outros parâmetros, o RAS Precharge funciona com o clock real da memória (que é metade do clock rotulado), e quanto menor for este parâmetro, mais rápida a memória será, já que o comando “active” será enviado mais cedo.

Somando-se tudo o que vimos até o momento, o tempo decorrido entre o envio do comando Precharge e a obtenção do dado será tRP + tRCD + CL.

Outros Parâmetros

Vamos dar uma olhada em outros dois parâmetros, o Active to Precharge Delay (tRAS) e o Command Rate (CMD). Assim como acontece com os outros parâmetros, esses dois parâmetros trabalham com o clock real da memória (que é metade do clock rotulado), e quanto menor forem esses parâmetros, mais rápida será a memória.

Active to Precharge Delay (tRAS): Após um comando “Active” ter sido enviado, um outro comando “Precharge” não pode ser iniciado até que o tempo tRAS tenha decorrido. Em outras palavras, este parâmetro limita quando a memória pode iniciar a leitura (ou escrita) em uma linha diferente.

O parâmetro Command Rate (CMD): Tempo demorado entre o chip de memória ter sido ativado (através do seu pino CS – Chip Select) e qualquer comando poder ser enviado para a memória. Este parâmetro leva a letra “T” e normalmente possui o valor T1 (1 pulso de clock) ou T2 (2 pulsos de clock).

Originalmente em http://www.clubedohardware.com.br/artigos/968

© 1996-2006, Clube do Hardware. Todos os direitos reservados.

É expressamente proibida a reprodução total ou parcial do conteúdo deste site e dos textos disponíveis, seja através de mídia eletrônica, impressa, ou qualquer outra forma de distribuição. Os infratores serão indiciados e punidos com base na lei nº 9.610 de 19/02/1998.

Não nos responsabilizamos por danos materiais e/ou morais de qualquer espécie promovidos pelo uso das informações contidas no Clube do Hardware.