Escolar Documentos
Profissional Documentos
Cultura Documentos
¹danielpinheirobkp@gmail.com; ²gleison.silva@drummond.com.br
Resumo: As latências das memórias DRAM exercem influência sobre a execução de tarefas em
microcomputadores. Existem pelo menos 4 latências principais que agem diretamente com o
controlador de memória do processador, e são: tCAS (Column Access Strobe), tRCD (RAS to CAS
Delay), tRP (Row Precharge) e tRAS (Row Active Time). Essas temporizações são responsáveis
pelos tempos de resposta entre o requerimento dos dados pelo processador e a resposta da DRAM.
Portanto, neste artigo trata sobre mostrado como o manuseio destas latências podem melhorar o uso
da máquina em ambientes de grande demanda por processamento, como na execução de jogos,
edição de vídeos, áudio e imagens, modelamento e em testes sintéticos que visam emular o uso real
da máquina, chamados benchmarks.
Abstract: DRAM memory latencies influence the execution of tasks in microcomputers. There are
at least 4 main latencies that act directly with the processor memory controller, and are: tCAS
(Column Access Strobe), tRCD (RAS to CAS Delay), tRP (Row Precharge) and tRAS (Row Active
Time). These timings are responsible for the response times between the data requirement by the
processor and the DRAM response. Therefore, this article discusses how handling these latencies
can improve machine usage in high-demand processing environments, such as playing games,
editing video, audio and images, modeling, and synthesizing testing to emulate usage. real machine,
called benchmarks.
1. Introdução Teórica
No início dos anos 1960, a memória RAM (Random Access Memory) era um conceito já
conhecido e usado: um dispositivo de memória primária reservada para ser escrita e lida de modo
temporário. Ou seja, os dados são perdidos sempre que o computador é desligado. Entretanto, este
tipo de memória demandava um aparato volumoso e complicado de imãs e fios e era ineficiente
energeticamente falando, tornando as RAM um tipo de tecnologia inviável para a produção em
massa e limitando-as a serem utilizadas somente em laboratórios. Os primeiros chips RAM eram
chamados de Core MRAM ou Core Magnetic Random Access Memory. Um core era um arranjo de
ferrita, um material cerâmico ferromagnético que poderia ser magnetizado em uma direção, assim
provendo a entrada e a saída de informação do núcleo. Um dos primeiros chips de RAM está
ilustrado na figura 1.
Com o objetivo de baratear os custos e trazer uma nova possibilidade para armazenamento
de instruções para o processador, o engenheiro americano Robert Dennard que, à época, trabalhava
na empresa de tecnologia IBM, desenvolveu um novo conceito de memória RAM que utilizava
apenas um transistor e um capacitor dentro de uma pequena célula de memória, como mostra a Fig.2.
O chip é formado por uma malha composta por linhas e colunas, entre as quais estão localizados os
transistores e os capacitores. Um capacitor carregado representa um bit de memória e corresponde
em linguagem binária ao número 1, enquanto um capacitor descarregado representa um bit de
memória e corresponde em linguagem binária ao número 0. Essa nova tecnologia de célula-
transistor-capacitor ficou inicialmente conhecida como “Field-effect transistor memory” ou
memória FET. Este tipo de memória veio a ser chamado, no começo dos anos 70, de DRAM ou
Dynamic Random Access Memory. (Lemelson, n.d.)
Figura 2. Desenho esquemático da memória DRAM de Dennard. Fonte: (Jacob, Spencer e Wang, 2008).
TIO – Trabalho Interdisciplinar Orientado – Outubro 2019 – Faculdade de Engenharia Eletrônica com
Ênfase em Automação Industrial – São Paulo, SP.
Os módulos de memória RAM passaram por drásticas melhorias até chegar (veja a seguir)
ao modelo atual. Os chips tiveram diversas modificações em seus designs, porém a disposição dos
elementos na célula de memória permaneceu essencialmente a mesma com o passar dos anos, com
as modificações sendo feitas principalmente nos métodos de leitura e escrita na DRAM.
A primeira grande evolução dos designs das memórias RAM ocorreu com o advento da
chamada Synchronous DRAM (SDRAM) que, diferente das memórias mais antigas, operava com
absoluta sincronização entre o clock (frequência) da memória por meio de um controlador interno
que se comunicava diretamente com o controlador de memória do processador. O princípio para essa
mudança foi simples: associando todos os dados e a transferência de controle a um único sinal, o
tempo dos eventos torna-se mais previsível. (Jacob, Spencer e Wang, 2008)
Todavia, a principal mudança de design das DRAM ao longo do tempo definitivamente é a
introdução do método DDR - Double Data Rate ao processo de transmissão de dados da memória.
A grande diferença aqui, é que enquanto as DRAM’s tradicionais (chamadas também de SDR –
Single Data Rate) transmitem as informações uma vez por ciclo de clock, as memórias DDR
transmitem o dobro em um único ciclo, como mostra a Fig. 3. Isto é, a memória DDR passou a
prover dados com duas vezes a velocidade do clock interno. A Tab.1 mostra as diferenças entre os
tipos de SDRAM e DDR.
Figura 3. Ilustração da transmissão de dados da memória RAM por ciclo de clock em módulos SDR e
DDR. Fonte: (National Instruments, 2019).
A taxa de dados é dada pelo dobro do Bus clock, pois os módulos de memória em DDR são
produzidos no formato DIMM (Double Inline Memory Module), o que significa que os módulos
DIMM possuem contatos em ambos os lados do módulo, o que justifica seu nome “módulo de
memória em dupla linha de contato” (Morimoto, 2005)
Clock interno Bus clock Taxa de dados Taxa de Tensão
Tipo de (MHz) (MHz) (MT/s) transferência (V)
SDRAM (GB/s)
Essas mudanças nos designs exigiram que algumas coisas mudassem na questão das
pinagens dos módulos de memória. A mudança mais radical no módulo foi após a chegada dos
módulos DIMM, que ocasionaram profundas mudanças na largura de banda das memórias, como
mostra a Fig. 4. Um módulo de memória é uma placa impressa com os chips DRAM soldados na
mesma. Os padrões das pinagens (conexões com a placa-mãe) mudaram ao passar do tempo para
satisfazer as novas demandas de consumo e de largura de banda.
Para os dados serem devidamente lidos e escritos pela DRAM, é necessário que os sinais
lógicos percorram um caminho do controlador de memória do processador até o módulo de memória.
onde o sinal é analisado, processado e respondido com os dados. O tempo que este sinal demora para
voltar para o controlador de memória é chamado de latência e é afetado por diversos procedimentos
que são realizados no interior dos chips DRAM.
Figura 5. A forma em que as latências são expostas em um módulo de memória RAM. Fonte: (Torres, 2011).
A latência tCAS ou tCL (Column Access Strobe) representa quantos ciclos internos da
memória para o módulo DRAM acessar um conjunto específico de dados em uma de suas colunas e
disponibilizar esses dados nos pinos de saída, a partir de quanto o controlador de memória solicitar
esses dados. Diferente das outras latências, o número que representa a tCAS não é o máximo que o
timing consegue atingir, e sim um número exato que deve estar de acordo com o clock do controlador
TIO – Trabalho Interdisciplinar Orientado – Outubro 2019 – Faculdade de Engenharia Eletrônica com
Ênfase em Automação Industrial – São Paulo, SP.
de memória do processador. Isto acontece pois estamos lidando com uma Synchronous DRAM, como
vimos acima. (Jacob, Spencer e Wang, 2008)
O número mínimo de ciclos necessários para se acessar uma linha e encontrar o dado na
coluna correta é chamado de latência tRCD (RAS# to CAS# Delay). Pode ser resumida como o
atraso potencial entre a escrita e a leitura dos dados após o requerimento dos dados pelo controlador
de memória do processador. Sempre que o controlador necessitar de um dado que está em uma linha
que ainda não foi acessada, a latência, em ciclos, para que o dado chegue até o mesmo será o valor
do tRCD somado com o valor do tCAS. (Lathan, 2018)
De acordo com Lathan, a quantidade de ciclos necessária para descarregar, restaurar uma
célula e estar pronta para repetir todo o ciclo é chamada de latência tRAS (Row Active Time). Em
outras palavras, é o tempo em que uma célula fica inativa após ser usada para apresentar um novo
dado, e por este motivo a latência tRAS é a maior dentre os timings principais.
2. Metodologia
Para a elaboração dos resultados obtidos por meio das manipulações das latências foram
utilizados softwares de testes de estabilidade de sistemas e programas de monitoramento, como, por
exemplo, contemplam os softwares CPU-Z (CPUID), HWMonitor (CPUID), AIDA64 Extreme
(FinalWire), UserBenchmark (UserBenchkmark) e o teste de memória do próprio Windows 7. Esses
softwares foram escolhidos pois são os programas que atuam o mais próximo da realidade possível
devido a forma em que eles realizam os testes. Mesmo sendo testes sintéticos, trabalham de modo a
modelar a realidade do usuário.
Os testes de estabilidade de sistema foram realizados toda vez em que era mudado alguma
das latências no sistema integrado de entrada de saída (BIOS, Basic Input/Output System) placa
mãe, utilizando do teste de memória do Windows 7 para diagnosticar algum problema maior e
utilizando o teste de estabilidade do AIDA64 Extreme para ter certeza de que o sistema estava
estável. Foi utilizado o benchmark de simulação com foco em rotinas diárias de trabalho e jogos do
UserBenchmark para tentar adicionar grande estresse no sistema, além disso foi utilizado o seu
próprio sistema de score nesse trabalho e cada amostragem representa um conjunto de latências
diferente.
TIO – Trabalho Interdisciplinar Orientado – Outubro 2019 – Faculdade de Engenharia Eletrônica com
Ênfase em Automação Industrial – São Paulo, SP.
É importante salientar que nos testes do software UserBenchmark, foram escolhidos quatro
parâmetros para comparação, que são:
● UBM Effective Speed, que é uma medida percentual da velocidade dos componentes
no mundo real, ou seja, é um indicativo da performance que é relevante ao consumidor
comum. Foram medidos por meio deste índice o processamento de mundo real tanto do
processador quanto da DRAM.
3. Resultados
14383
6-6-6-24 15385
15271 Cópia
Escrita
14398
6-6-6-20 15447 Leitura
15246
14249
6-7-7-22 15332
15103
13600 13800 14000 14200 14400 14600 14800 15000 15200 15400 15600
Gráfico 1. Relação entre timings e capacidade de leitura, escrita e cópia sequencial. Dados medidos em MB/s
pelo software AIDA 64 Extreme. Quanto maior, melhor. Fonte: Autor.
TIO – Trabalho Interdisciplinar Orientado – Outubro 2019 – Faculdade de Engenharia Eletrônica com
Ênfase em Automação Industrial – São Paulo, SP.
O gráfico 2 ilustra importantíssima relação da resultante das latências da DRAM em comparação com
seus timings internos.
Latência
7-7-7-20 80,3
6-6-6-24 74,1
Latência (ns)
6-6-6-20 74,4
6-7-7-22 77,2
Gráfico 2. Relação entre timings e latência resultante da DRAM. Dados medidos em nanossegundos, pelo
software AIDA 64 Extreme. Quanto menor, melhor. Fonte: Autor.
41%
6-6-6-24
32,40% UBM Effective Speed (DRAM)
40,30%
6-7-7-22
32,40%
Gráfico 3. Porcentagens calculadas a partir do processamento de mundo real, tanto de processador quanto de
memória RAM. Fonte: Autor.
TIO – Trabalho Interdisciplinar Orientado – Outubro 2019 – Faculdade de Engenharia Eletrônica com
Ênfase em Automação Industrial – São Paulo, SP.
O gráfico 4 contém os dados dos testes mais exigentes realizados. Ele ilustra a relação entre
timings e a capacidade máxima tanto do CPU quando da DRAM de operar diversas instruções e
comandos ao mesmo tempo utilizando todos os núcleos de processamento.
Processamento multi-core
7-7-7-20 13,6
129
6-6-6-24 13,7
129 Multi-core of RAM processing
capaciy
6-7-7-22 13,6
128
0 50 100 150
Gráfico 4. Relação entre timings e capacidade de processamento de dados em cenários multi-core. Multi-core of
RAM processing capacity é medido em GB/s, quanto maior, melhor. Multi-core integer speed é medido em pontos,
quanto maior, melhor. Fonte: Autor.
3.1. Discussão
Numa primeira verificação, reduzir uma latência em 2 nanossegundos pode não trazer
benefícios óbvios, porém quando se olha num amplo espectro e leva-se em consideração as
melhorias que se tem em longo prazo, principalmente quando o processamento precisa ser realizado
em tempos curtos como por exemplo num cenário de multitarefa onde é necessário grande poder de
processamento, a manipulação, mesmo que mínima das latências da memória pode trazer benefícios.
Além disso, os ganhos que se obtêm quando reduzimos as latências de {7-7-7-20} para {6-
6-6-24} são ínfimos mesmo quando se trata de processamento de mundo real, onde os ganhos não
chegam a 2%, um delta de apenas 0,1 GB/s de memória processada.
4. Considerações finais
A manipulação destes timings mostrou que, neste caso, não vale o risco de ter um sistema
instável, já que os ganhos apresentados aqui foram todos menores de 1% e ocasionaram sérios
problemas na inicialização do sistema e na estabilidade do mesmo.
TIO – Trabalho Interdisciplinar Orientado – Outubro 2019 – Faculdade de Engenharia Eletrônica com
Ênfase em Automação Industrial – São Paulo, SP.
5. Referências Bibliográficas
JACOB, Bruce; SPENCER, W. Ng.; WANG, T. David. In Prayse of Memory Systems: Cache,
DRAM, Disk. Elsevier Inc. EUA, 2008.
LATHAN, Patrick. What are memory timings? GamerNexus. EUA, 2018. Disponível em:
<https://www.gamersnexus.net/guides/3333-memory-timings-defined-cas-latency-trcd-trp-tras>,
Acesso em: 20 de outrublo de 2019.
TRANSCEND. What is the difference between SDRAM, DDR1, DDR2, DDR3, DDR4?
Transcend-info, n.d. Disponível em: <https://ua.transcend-info.com/Support/FAQ-296> Acessado
em: 29/11/2019.
WIKIPEDIA. Magnetic-core memory. Wikipedia, the free encyclopedia, nd. Disponível em:
<https://en.wikipedia.org/wiki/Magnetic-core_memory> Acessado em: 29/11/2019.