Ir ao conteúdo
  • Cadastre-se

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


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

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 CL9 levará nove pulsos de clock para entregar um dado solicitado, enquanto que um módulo de memória com CL7 levará sete pulsos de clock para entregar o mesmo dado. Se ambos os módulos estiverem trabalhando 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”. O módulo de memória mostrado na página anterior (Figura 1) tem CL7.

As temporizações da memória são dadas através de uma série de números, como, por exemplo 4-4-4-8, 5-5-5-15, 7-7-7-21 ou 9-9-9-24. 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. O módulo mostrado na Figura 1 da página anterior tem temporizações 7-7-7-18, enquanto o módulo mostrado na Figura 2, abaixo, tem temporizações 8-8-8-24.

módulo de memória DDR3-1600
Figura 2: Um módulo de memória DDR3-1600/PC3-12800 com temporizações 8-8-8-24

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 computador para usar as temporizações padrão da memória – geralmente configuradas como “Auto” no setup –, ou você configura manualmente o seu computador para usar temporizações menores, que pode aumentar o desempenho do seu PC. Note que nem toda placa-mãe permite que você altere as temporizações da memória. Além disso, algumas placas-mães 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.

Setup
Figura 3: configuração das temporizações da memória no setup do computador

Quando você faz um overclock na memória, pode precisar aumentar suas temporizações de modo a fazer com que o computador 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.

Essa é 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 até o clock rotulado.

Por exemplo, embora você talvez consiga atingir 1.600 MHz (800 MHz x 2) com módulos DDR3-1333/PC3-10600, talvez seja necessário aumentar as temporizações da memória, enquanto nos módulos DDR3-1600/PC3-12800 o fabricante garante que você será capaz de obter 1.600 MHz mantendo as temporizações rotuladas.

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

  • 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!