Ir ao conteúdo
  • Cadastre-se

Tudo o que você precisa saber sobre as temporizações das memórias RAM


         756.223 visualizações    Memória    26 comentários
Tudo o que você precisa saber sobre as temporizações das memórias RAM

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=7 demora sete pulsos de clock para entregar um dado, enquanto que uma memória com CL=9 demora nove 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 com tecnologia DDR 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=7 e um módulo de memória com CL=9. O comando em azul seria uma operação de leitura (“Read”).

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

Uma memória com CL=7 tem uma melhoria de 22,2% na latência da memória em relação a uma memória com CL=9, 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 DDR3-1333 trabalhando a 1333 MHz (666,66 MHz) é de 1,5 ns (ns = nanossegundo; 1 ns = 10-9 = 0,000000001 s). Tenha em mente que você precisa usar o clock real, que é metade do clock rotulado. Dessa forma esta memória DDR3-1333 demoraria 10,5 ns para começar entregar os dados, caso ela tivesse um CL=7 (7 x 1,5 ns), ou 13,5 ns, caso ela tivesse um CL=9 (9 x 1,5 ns), por exemplo.

As memórias (RAM) síncronas (as memórias com tecnologia DDR são deste tipo) implementam o modo burst (rajada), onde um dado seguinte ao primeiro dado 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 outro ciclo de latência do CAS. Além disso, as memórias com tecnologia DDR fornecem dois dados por pulso de clock, e por isso que elas são rotuladas com o dobro do seu clock real.

  • Curtir 5
  • Obrigado 1

Comentários de usuários

Respostas recomendadas



  • Administrador

@Japz não. Ambas terão a mesma velocidade máxima teórica (largura de banda). A com menor latência começará a entregar os dados antes. É mais ou menos como comparar dois carros a 100 km/h, mas um saiu antes do outro. O que saiu antes chegará primeiro, mesmo ambos tendo a mesma velocidade.

  • Curtir 4
Link para o comentário
Compartilhar em outros sites

Meio atrasado para discutir sobre o artigo. hehe
Muito bom as explicações, me tirou algumas dúvidas sobre como funcionam as memórias.
Então pode se dizer que o CL da RAM seria como um IPC do processador? E neste caso, devido a limitação de frequência que pode haver na placa-mãe, que por exemplo limitaria para 1333Mhz, seria melhor um pente de 1333Mhz CL 9 do que um pente 1600Mhz CL 10? E na mesma situação, o segundo pente se tornaria na prática 1333Mhz CL 10?

Link para o comentário
Compartilhar em outros sites

  • Administrador

@Walpurgis Knight Cada módulo de memória tem uma "tabelinha" de frequencias e temporizações. Então uma memória de 1600 MHz e CL10 pode ser que rode a 1333 MHz com CL9. O CL não é fixo para todas as frequências. O CL divulgado é para a frequência rotulada do módulo. Foi isso que o @Japz tentou explicar acima. Espero ter esclarecido.

  • Curtir 4
Link para o comentário
Compartilhar em outros sites

 Olá Gabriel, estou impressionado com a qualidade e a profundidade que você fez este artigo, trabalho com computadores a muitos anos mas esta explicação foi sem dúvida a melhor que já li! Mas tenho uma pergunta, já que você é o portador de um conhecimento vasto em memorias, neste artigo, gostaria de saber o seguinte, temos clocks maiores e timings menores, eu li a muito tempo atrás que deveríamos nos atentar com o aumento do clock e o atraso causado pelos timings da memória, pois pode valer mais a pena ter uma memoria com clock baixo mas timings rapidos. Qual seria uma equação ou uma formula para que eu possa achar o ponto de equilíbrio entre os dois aspectos, se aplicar mesmo este conhecimento!

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
1 hora atrás, ferreguetti disse:

 Olá Gabriel, estou impressionado com a qualidade e a profundidade que você fez este artigo, trabalho com computadores a muitos anos mas esta explicação foi sem dúvida a melhor que já li! Mas tenho uma pergunta, já que você é o portador de um conhecimento vasto em memorias, neste artigo, gostaria de saber o seguinte, temos clocks maiores e timings menores, eu li a muito tempo atrás que deveríamos nos atentar com o aumento do clock e o atraso causado pelos timings da memória, pois pode valer mais a pena ter uma memoria com clock baixo mas timings rapidos. Qual seria uma equação ou uma formula para que eu possa achar o ponto de equilíbrio entre os dois aspectos, se aplicar mesmo este conhecimento!

 

Se me permite a intromissão, a resposta é: depende.

 

Tem arquiteturas e aplicações que se beneficiam de clocks maiores, outros que se beneficiam de latências mais baixas, e outros que não ligam pra isso.

Tem que ver caso a caso..

Por exemplo, programas de compactação e descompactação de arquivos usam as memórias com grande intensidade e avidez, já jogos não costumam ter tanta influencia no desempenho por causa disso.

Link para o comentário
Compartilhar em outros sites

  • Administrador

@ferreguetti Obrigado pelos elogios. O Evandro respondeu aí acima a parte prática da coisa. Expandindo o que o Evandro falou, o Rafael Coelho já fez alguns testes sobre o assunto:

Disto isto, a parte teórica que você pergunta é simples.

 

A latência é medida em pulsos de clock. O período de cada pulso de clock é o inverso da frequência usada, pela fórmula:

 

T = 1/f

 

Assim, basta multiplicar o período pelo número de pulsos de clock (ex: CL=9, multiplicar o valor por nove) para ter o valor do atraso.

 

Agora, respondendo exatamente ao que você pergunta, você poderia pegar este valor do atraso e invertê-lo (f  = 1/T) para obter o clock equivalente, isto é, para ver a que clock o atraso equivale. Seguindo esta linha de pensamento, a memória na verdade, por conta do atraso, teria um desempenho equivalente a uma memória rodando a este clock. Porém esta linha de raciocínio está errada. Pois a latência só existe para o acesso ao primeiro dado da primeira linha da memória (internamente a memória organiza suas células em linhas e colunas). O acesso aos demais dados sequenciais, armazenados na mesma linha, é feito imediatamente, sem latência (ou melhor, latência de apenas um pulso de clock). Então esta coisa de atraso causado pela latência é relativa: só há atraso no acesso ao primeiro dado de uma linha, os demais dados sequenciais na mesma linha são entregues sem atraso.

 

Bem, não sei se consegui explicar, e para um entendimento mais aprofundado recomendo ler o meu livro...  (Ele está esgotado no momento mas será re-editado em maio)

 

Abraços!

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@Gabriel Torres esse tempo de atraso é o "tempo de resposta" de uma memória?

Porque eu não consigo entender como uma memória dobra o clock e dobra a latência junto (onde ambas fariam as operações no mesmo tempo, no final das contas) e é mais rápida.

Link para o comentário
Compartilhar em outros sites

  • Administrador

@Evandro Isso, latência, atraso, tempo de acesso e tempo de resposta são sinônimos. Como eu expliquei, o tempo de atraso só entra em ação na leitura do primeiro dado da linha, acessos subsequentes não têm atraso, então mesmo aumentando a latência, o aumento de clock acaba sendo mais importante e daí o maior desempenho.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Galera, deixa ver se entendi bem isso do timing do CAS. Imagine uma ddr4 3200, com burst de 8, por ser ddr, leva 4 ciclos e um CAS de 10, por exemplo. O clock real é de 1600. Com um CAS de 6,25ns. Então a cada burst eu tenho um acesso de 6,25ns. Com 1600, vou ter 400 leituras de burst, isso multiplicado por 6,25 da 2,5x10^-6s. Então essa memória iria transferir 25600mb em 1,0000025s.

Entendi corretamente? 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@Gabriel Torres, mas essa é minha dúvida, um processador pede para ler ou gravar um dado, geralmente de 64 bits ou 8 bytes. A CAS será o tempo que a memória irá iniciar essa leitura ou gravação, porém temos o burst, que tanto na ddr3 como na ddr4 possuem um tamanho de 8, ocupando 4 ciclos. Então, no momento que o processador solicita um dado da memória, para escrita ou gravação, teremos uma latência até o dado ficar disponível e depois um burst de 4 ciclos de clock, por ser DDR. Assim, supondo um cas de 10 ciclos, teríamos 10-1-1-1, em que o primeiro dado de 8 bytes demoraria 10 ciclos e os 3 outros bytes demorariam 1 ciclo cada. Não seria isso? Então onde está a diferença para a taxa de transferência? não entendi bem.

Link para o comentário
Compartilhar em outros sites

  • Administrador

@f. tenorio Já explicado na minha mensagem anterior (post #19). Sua lógica está incorreta. A temporização diz respeito a quando os dados ficarão disponíveis (medida em pulsos de clock) não a taxa de transferência que a memória transferirá esses dados (medida em bytes por segundo).

Link para o comentário
Compartilhar em outros sites

  • Administrador

@f. tenorio Talvez eu tenha interpretado a sua colocação de maneira equivocada, você colocou muitos números ali e devo ter me confundido. Mas é isso, uma memória com um CL de 18 demorará 18 pulsos de clock para entregar o primeiro dado, mas entragará os dados seguintes que estejam armazenados em endereço sequencial dentro de uma mesma linha a apenas 1 pulso a mais. Note que se o segundo dado estiver em outro local da memória (endereço não sequencial e/ou presente em outra linha), o CL voltará a ser 18.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

aah, então é isso mesmo @Gabriel Torres, como as DDR3 e DDR3 usam um burst (rajada), de 8, ela demorará 18 ciclos para entregar o primeiro dado e mais 4 ciclos para os 8 bits restantes, já que é uma DDR. Obrigado pelos esclarecimentos. Ah! uma sugestão de artigo: Como funcionam as DDR4, pois são complicadas de entender. Uma DDR3 tem uma pré-busca de 8n, já que internamente ela trabalha a 100-266mhz, então essa pré-busca de 8 bits é feita em paralelo e multiplexada (paralelo/serial), quadruplicando a velocidade (por exemplo, internamente a 100mhz, o bus de e/s vai para 400), como é uma DDR3, temos 1 bit na subida e outro na descida do clock, gerando um clock efetivo de 800mhz. Porém, nas DDR4 elas usam o conceito de grupos de bancos, com duas pré-buscas de 8n em paralelo e multiplexando essa saída para um burst de 8 mais rápido. Ai está a complicação em entender seu funcionamento.

Link para o comentário
Compartilhar em outros sites




Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!