Memórias RAM DDR: Transferências de Dados (PARTE 1)
top of page
  • Foto do escritorDrano Rauteon

Memórias RAM DDR: Transferências de Dados (PARTE 1)

Neste capítulo será estudado a forma como as memórias RAM DDR1, DDR2, DDR3, DDR4 e DDR5 fazem transferências de dados entre controlador e chips de armazenamento.


OBSERVAÇÃO: Este artigo explica, porém não abrange completamente o funcionamento das versões GDDR (Graphics DDR) e LPDDR (Low Profile DDR), isto pois estes subtipos trazem suas peculiaridades e exclusividades, e que serão descritas em artigos complementres a este. Entenda esta publicação como um ponto de partida para entender o funcionamento do padrão DDR como um todo.


O sincronismo entre módulo de memória e o controlador de RAM


O sinal proveniente das linhas de clock (CK0 e CK0#), das linhas de endereço (Ax) e das linhas de controle não estão diretamente sincronizados com o clock dos lanes de transmissão de dados. Como isso é possível?

O CK0 e CK0# formam um par de cancelamento para o sinal de clock, que é gerado pelo controlador de RAM para sinconizar o(s) módulo(s), com seus respectivos chips. Os sinais de controle e endereço são unidirecionais e sincronizados pelo sinal CK.

O DQS pode atingir a mesma velocidade do par CK, porém, não está sincronizado, apenas pode ser referenciado entre transições de pulsos de clock.


O motivo pelo qual isto ocorre é que o controlador de RAM que envia o sinal de sincronismo, o comando para gravar, o endereço e os dados a serem gravados. Precisamos entender que, quando o mesmo componente que envia os dados envia o clock, está tudo sincronizado.

Como estamos falando de frequências e sinais elétricos, a distância entre controlador de RAM e os chips de memória gera um delay, coisa de poucos nanossegundos, mas que para um circuito digital afeta completamente o desempenho. Estamos falando aqui do comprimento das trilhas na PCB e também dos terminais elétricos do slot – ou socket – e contatos da placa. Este atraso na propagação do sinal não afeta tanto operações de gravação, porém, pode atrasar o processo de leitura, gerando uma perda de desempenho. É aqui que entram as linhas DQS que marcam a devolução dos dados da memória para o controlador, podendo também do controlador para a memória.


Lembre-se que num processo de leitura, é necessário sincronizar e mandar os comandos para que os dados sejam achados na memória e então enviados de volta ao controlador.


CURIOSIDADE: Já que citamos os problemas de atenuação de sinal gerado pela resistência elétrica das trilhas e de conectores, nada melhor que expandir esse conteúdo! Se você CLICAR AQUI! verá uma descrição mais aprofundada sobre o design de PCBs, os materiais aplicados e as técnicas utilizadas para reduzir os problemas de dissipação de sinal entre emissores e receptores.


É assim que a distorção de clock limita altas velocidades de transmissão de dados (quanto maior a frequência, mais próximos os componentes devem estar), podendo-se elimina-la através do DQS. Em computadores antigos, com pequenos chips de RAM soldados diretamente na MoBo, bem como em módulos antigos (aqueles que utilizavam a tecnologia EDO e FPM), a frequência de operação era mais baixa, havendo assim latências mais altas e a ausência de linhas DQS.

Faz sentido 'matar' qualquer dependência do par CK, permitindo que o módulo de RAM envie os dados + clock quando quiser e os dados serão automaticamente sincronizados no clock que o acompanha, afinal, possibilitar que o controlador de RAM leve em conta este delay e a velocidade / distância do barramento daria mais trabalho e mais complexidade ao processo.

Sabendo-se disto, podemos dar continuidade ao conteúdo...


Data Strobe (DQS e DQS#)


Cada byte (sequência de 8 bits) transmitido entre memória e controlador atravessa um barramento (sim, a memória RAM não usa uma conexão serial). Sendo assim, para transmitir 1 byte é necessário 8 trilhas na PCB. Tais trilhas são denominadas "DQ" seguidas de um número.

O sinal estroboscópico valida os dados no barramento, sendo então bidirecional, marcando o momento de transação para dados de escrita (do controlador para a memória) e marcando o momento de transação dos dados de leitura (da memória para o controlador), havendo então, para cada 8 bits um par diferencial para o sinal DQS.


Há linhas dedicadas para endereçamento e trocas de dados, há um sinal de clock dedicado também, tornando o sistema síncrono. Então por que precisamos validar os dados no respectivo barramento?

O DQS pode ser visto como um sinal indicando que as tensões aplicadas nas linhas de dados são válidas. Então, esse sinal "estroboscópico" é essencialmente apenas um clock de validação dos dados transmitidos pelas trilhas, de forma semelhante a uma linha “#Frame” utilizada nos barramentos AGP, PCI e LPT, por exemplo.


CURIOSIDADE: Para saber mais sobre os barramentos citados acima, CLIQUE AQUI! (AGP), CLIQUE AQUI! (PCI - Cap. 1) e CLIQUE AQUI! (LPT, a IEEE 1284).


CURIOSIDADE: Mas por qual motivo não é utilizado apenas o simples nome "clock", ou "CLK", ou "DATA CLK", mas sim o nome "estroboscópio", que é bastante sofisticado e foge um pouco do usual na terminologia da eletrônica digital?


Pra embasar, estroboscópio é um instrumento utilizado para sensoriamento, isto é, um sensor óptico capaz de registrar o movimento contínuo ou periódico de elevada velocidade de um corpo, com o objetivo de o fazer parecer estacionário, permitindo assim ser visualizado em detalhes e estudado. Obtém-se um conjunto de imagens discretas, porém, que são representativas do percurso que o corpo descreve.

Quando usamos a palavra “strobe”, o emissor esta “dizendo” ao receptor que o dado está sendo enviado e, através deste sinal DQS obtém-se um senso dos valores válidos. É por isso que essa linha é denominada Strobe em folhas de dados e diagramas de módulos e de chips de memória RAM. O termo "estroboscópio" neste âmbito é uma figura de linguagem.

DQS não pode ser simplesmente taxado como um sinal de clock secundário, ele não oscila da mesma forma que o clock principal (CK0 e CK0#).


Como mostra nesta tabela de uma folha de dados da Micron (módulos MT16JTF25664AY e MT16JTF51264AY – DDR2), o sinal DQS é a marcação de “Saída com dados de leitura, entrada com dados de gravação para operação síncrona de origem. Alinhado pela borda com dados de leitura, alinhado ao centro com dados de gravação.“

Tabela 1 - A utilidade dos pinos da memória RAM


O termo "alinhado pela borda" quer dizer que os dados de leitura são enviados pelas linhas DQx já na subida do pulso de clock na linha DQS.

Se dados de gravação são enviados pelas linhas DQx, no momento em que o pulso na linha DQS passa para nível baixo diz-se então que estão "alinhados ao centro". Isto quer dizer que há uma defasagem de 90° nos sinais passados pelas trilhas DQx em relação ao sinal de referência do par diferencial DQS.

Complemento 1 - Detalhes sobre o sinais transmitidos pelo par DQS e pelas linhas DQ


Extendendo um pouco a explicação, sistemas de RAM DDR voltadas pora processadores gráficos podem utilizar um conceito diferente de Estroboscópio de dados.

A partir dos padrões GDDR3, criaram linhas DQS para sinalizar dados de leitura e linhas DQS para sinalizar dados de escrita que trafegam pelo barramento de dados:

Tabela 2 - Parte de um documento da Samsung para chips GDDR3


As raríssimas RAM GDDR4 também usam esse sistema de RDQS para leituras e WDQS para escritas em memória:

Tabela 3 - Parte de um documento da SK Hynix sobre memórias RAM GDDR4


No caso das memórias GDDR4, a linha DM (Data Mask) também possui a função DBI (Data Bus Inversion) para dados de leitura. Uma linha RDQS (DQS que sinaliza dados de leitura) pode ser usada também para sinalizar uma inversão de dados que serão escritos (write) na memória e que estão passando pelo barramento. Ambas as alterações de função destas linhas são configuradas através de um comando Mode Register.

RDQS é apenas uma de sinal da RAM para seu controlador, enquanto WDQS é uma linha de sinal do controlador para a RAM. Para mais detalhes sobre as linhas DM / DBI, continue lendo este texto!


CURIOSIDADE: As únicas placas de vídeo conhecidas que usaram o padrão GDDR4 foram as ATI Radeon X1950 XTX e 2900 XT. Mas qual o motivo das memórias RAM GDDR4 terem fracassado? Para saber esse e muito mais detalhes sobre placas de vídeo, CLIQUE AQUI!


No padrão GDDR5 foram eliminadas as linhas RDQS e WDQS e aplicado outro método para sensoriar valores válidos no barramento de dados...

Tabela 4 - Documento da Micron Technology sobre memórias GDDR5


Segundo o documento acima "WCK_t e WCK_c são clocks diferenciais utilizados para captura de dados de gravação e saída de dados de leitura. WCK01_t/WCK01_c está associado a DQ[15:0], DBI0_n, DBI1_n, EDC0 e EDC1. WCK23_t/WCK23_c está associado a DQ[31:16], DBI2_n, DBI3_n, EDC2 e EDC3."

Perceba que não há linhas para mascaramento de dados (DM), mas há linhas DBI, mais precisamente uma linha DBI para cada oito linhas do barramento de dados.

Existem linhas com sinais para detecção de erros (linhas EDC), uma tecnologia implementada a partir do padrão GDDR5. Segundo a Micron "os dados CRC calculados são transmitidos nesses pinos. Além disso, esses pinos acionam um padrão de espera quando ocioso e podem ser usados como uma função RDQS. EDC0 está associado a DQ[7:0], EDC1 está associado a DQ[15:8], EDC2 está associado a DQ[23:16], EDC3 está associado a DQ[31:24]." Ou seja, podemos concluir que as linhas EDC também podem funcionar como Read DQS, assim como no padrão GDDR4 e GDDR3. Essa alteração da função pode ser feita através do Mode Register.

GDDR5X e GDDR6 também fazem o uso de pares diferenciais WCKx_t e WCKx_c, bem como de linhas DBI e EDC.


Data Mask


Como pôde ser visto no artigo aqui do HC denominado "Hardware - Bits e Bytes", um Byte é composto por oito bits, e dois bytes formam uma "palavra" (word, em inglês).


É comum que tenhamos atualmente chips de memória RAM com oito, dezesseis ou até trinta e dois bits de largura de barramento. O que forma um canal de trinta e dois ou sessenta e quatro bits é a combinação de vários chips de memória, seja num módulo SDR ou DDR SIMM, DIMM, SOSIMM ou SODIMM ou então numa placa gráfica, com chips distribuídos ao redor da GPU.


Permitir que determinados dados sejam arbitrariamente incluídos ou excluídos de ajustes e outras operações é uma facilidade que permite muita flexibilidade no processo de análise de dados. Pontos de dados não necessários podem ser excluídos das operações de forma mais simples. E como estamos falando de uma bateria de chips, muitas vezes torna-se necessário o mascaramento de Bytes em determinados endereços de memória, sendo esta a utilidade das linhas denominadas "Data Mask".


Por padrão, cada conjunto de 8 trilhas (que transportam um Byte) possui uma linha Data Mask, como pode ser visto no diagrama abaixo:

Diagrama 1 - Módulo DIMM DDR2 da Micron. Note que os chips de RAM são ligados em série "dois-a-dois"


Através do diagrama acima podemos notar que, para um canal de sessenta e quatro bits são necessários oito linhas Data Mask (DM:[0, 7]), além do já dito DQS, que se faz presente em oito pares diferenciais (DQS:[0, 7] e DQS#:[0, 7]).


Quando se tratam de módulos UDIMM, isto é, os micro DIMM aplicados em notebooks, a densidade de memória dos chips aumenta em decorrência da diminuição do espaço, fazendo com que cada chip tenha uma interface de dados de dezesseis bits (um Word), duas linhas Data Mask e dois pares diferenciais DQS. Veja o diagrama abaixo:

Diagrama 2 - Série de módulos DDR3 SODIMM onde cada chip do módulo tem dezesseis pistas de dados bidirecionais


Como mostra a tabela abaixo, referente a mesma folha de dados do Diagrama acima, da Power Silicon, o Data Mask é "um sinal de máscara de entrada para gravação de dados. Os dados de entrada são mascarados quando o DM está em nível HIGH, junto com os dados de entrada durante um acesso de gravação. DM é amostrado em ambas as bordas de sinal de um par DQS. Embora os pinos DM sejam apenas de entrada, o carregamento DM é projetado para corresponder aos pinos DQ e DQS."

Tabela 5 - Parte da lista de contatos no datasheet do módulo SODIMM DDR3 da Power Silicon


No entanto, nos módulos DDR4 foi introduzido uma segunda função aos pinos DM, como é possível ver no diagrama seguinte, de um módulo SODIMM da SK Hynix:

Diagrama 3 - Módulo SODIMM da Sk Hynix com apenas quatro chips


Perceba que os pinos DM também são marcados com a sigla "DBI".

Segundo a lista de pinos do mesmo datasheet onde foi retirado o diagrama da SK Hynix acima, DM / DBI é "Máscara de dados de entrada e inversão de barramento de dados: DM é um sinal de máscara de entrada para dados de gravação. Os dados de entrada são mascarados quando DM está em nível LOW, coincidente com os dados durante um acesso de gravação. DM é amostrado em ambas as bordas de pulso de clock do DQS. DM é misturado com função DBI (Data Bus Inversion). DBI é uma entrada / saída que identifica onde armazenar / retirar os dados verdadeiros ou invertidos. Se o sinal DBI for em nível LOW, os dados serão armazenados / retirados após a inversão dentro da SDRAM DDR4, não sendo invertidos quando DBI estiver em nível HIGH.

Tabela 6 - Lista de pinos de módulo DDR4 em datasheet da SK Hynix


Segundo uma folha de dados de um chip DDR4 da Samsung, "DM é compartilhada com a função DBI por um comando enviado pelas linhas A10, A11, A12 (que são linhas de endereço) configurados em MR5 (Mode Register 5). Para chips com oito linhas de barramento de dados, a função de DM ou TDQS é habilitada por um comando na linha A11 configurada em MR1."

Tabela 7 - Folha de dados de chip DDR4 fornecida pela Samsung


Para se situar melhor, observe abaixo uma tabela com os sete Mode Register disponíveis e os comandos enviados nas linhas A0~A12 (não incluindo A13, A17, BA0~1 e BG0~1):

Tabela 8 - O sistema Mode Register resumido


CURIOSIDADE: A sigla "RFU" significa "Reserved for Future Use", ou seja, um espaço vazio que pode ter algo implementado no futuro.


Segundo o mesmo documento da Samsung, o par diferencial TDQS (TDQS_t e TDQS-c), sigla para "Terminação de Estroboscópio de Dados", "é aplicável apenas para chips com barramento de oito bits. Quando ativado via Mode Register 1 pela entrada A11 (linha de endereço A11 em nível HIGH), a DRAM habilitará a mesma função de resistência de terminação em TDQS_t/ TDQS_c que é aplicado ao respectivo par diferencial DQS. Quando desabilitado via Mode Register 1 pela entrada A11 (desta vez em nível LOW) a linha TDQS-t volta a assumir a função legacy DM e a função adicional DBI, que são alternadas de acordo com o MR5 aplicado nas entradas de endereço A11, A12 e A10. DRAMs x4/x16 devem desabilitar a função TDQS via A11 (nível LOW permanente quando em MR1)."


Perceba que o padrão DDR4 introduziu mais uma função aos pinos DM, o DBI, evitando-se assim que mais pinos tivessem de ser adicionados. O sinal TDQS já havia sido especificado no padrão DDR3 também somente para chips com barramento de oito bits, tornando a linha positiva do par TDQS compartilhada com DM. Desta forma, apenas um terminal TDQS_c é adicionado para fazer a linha negativa quando o TDQS_t fosse ativado.


OBSERVAÇÃO: Há diferenças na adoção de siglas para os referidos termos mostrados.

O DQS e DQS# é equivalente ao DQS_t e DQS_c, respectivamente. O "_t" indica a linha diferencial positiva, já o "#" ou "_c" indica a linha diferencial negativa, e isto vale também para os outros pinos que apresentam sistema de cancelamento de ruídos, como por exemplo "CK" e "CK#", que podem ser apresentados como "CK_t" e "CK_c".

Os pinos Data Mask podem ser referenciados simplesmente com a sigla "DM" seguida de um número (DMx) ou então chamadas de UQDM ou LQDM em alguns datasheets, bem como DMU ou DML, ou até mesmo DM-n, como é o caso de folhas de dados da SK Hynix e Samsung.


Perceba que nas memórias DDR4 os pinos DM apenas indicam mascaramento quando estão em nível LOW, diferente dos padrões anteriores.

Os sistemas GDDR5, GDDR5X e GDDR6 não trazem linhas Data Mask, apenas linhas com função Data Bus Inversion. Já o padrão GDDR4, muito pouco utilizado, trazia a função DBI multiplexada com as linhas DM e RDQS.


Agora veja a tabela abaixo:

Tabela 9 - Documento da Micron Technology sobre memórias RAM LPDDR4


Em dispositivos móveis, que fazem uso de RAM Low Profile (LPDDR), a partir do padrão LPDDR4 as linhas Data Mask também passaram a ter a função DBI.

Aqui vão alguns detalhes extras que ajudam a entender o montante de conteúdo feito até aqui...


O sistema de sinalização utilizado no padrão DDR


Se a memória RAM não é uma conexão serial mas sim um barramento de dados, que tipo de sinalização é aplicada em suas trilhas?

As memórias RAM fazem uso da lógica SSTL (Stub Serie Logic Termination), e no caso dos padrões DDR4, LPDDR4 e GDDR4 e superiores a lógica POD (Pseudo-Open Drain) é aplicada. Estes dois sistemas de sinalização são o que há de mais aprimorado para barramentos de dados. Para saber mais sobre este assunto e conhecer também as lógicas ECL, PECL, TTL, LVTTL, LVDS, TMDS e outras, clique na imagem abaixo:

Propaganda de conteúdo relacionado do HC!


Qual a relação do DBI com o POD?


As RAMs DDR4, LPDDR4 e GDDR4 não usam lógica SSTL. Em vez disso, resolveram aplicar drivers de pseudo-drenagem aberta (POD) com terminações Vdd.

O componente na saída é um MOSFET, a saída é chamada de dreno aberto e funciona de maneira semelhante aos sistemas com transistor de "coletor aberto".

Em resumo, a grosso modo, o MOSFET quando aberto parece um capacitor carregado, e descarregado quando fechado. Portanto, o estado da memória (se é um bit 0 ou 1 a ser movimentado) é detectado pela tensão e não pela corrente. Isso permitiu reduzir ainda mais a potência elétrica necessária para o funcionamento de tais memórias, isto pois, além de se reduzir a tensão, reduziu-se a corrente também.

Imagem 1 - Esboço genérico do funcionamento da sinalização POD


A sinalização POD permite que apenas o nível LOW (zeros) consuma potência. O Nível HIGH não. Agora entra o DBI (Data Bus Inversion), reduzindo o cross-talk e invertendo os dados. Aquilo que é 0 vira 1 e aqulo que é 1 vira 0. Para conjuntos de bits que tenham bastante zeros, é interessantes inverte-los para consumir ainda menos energia. Entenda melhor com a seguinte tabela:

Tabela 10 - Os pulsos elétricos mudam seu valor quando uma linha DBI está em nível LOW


Devido à reduzir o consumo de energia e aos erros gerados por maior taxa de transferência, é utilizado inversão de bit de dados (DBI), detecção de paridade no chip para o barramento de comando / endereço e detecção de erro CRC para os dados.

Sendo assim, nos padrões de memória de quarta, quinta e sexta geração, a tensão VDDQ é a mesma tensão VDD (alimentação elétrica)...

Imagem 2 - O POD substituiu bem a lógica SSTL e veio pra ficar


Para mais detalhes sobre o DBI, disponibilizo o seguinte PDF:

Data Bus Inversion
.pdf
Download PDF • 2.91MB

Lembre-se que que a memória RAM DDR4 começou a ser comercializada em meados 2014 e o LPDDR4 em final de 2013, mas o padrão GDDR4 já havia sido lançado fazia muito tempo, tanto que um dos PDFs que utilizei para criar este artigo (memórias GDDR4 SK Hynix HY5FS123235AFCP) é datado de 2008, ou seja, a sinalização POD e o Data Bus Inversion são tecnologias relativamente antigas no mercado.

Este é o artigo que marca o início dos estudos sobre memórias RAM. Ao longo do tempo ele será atualizado com mais informações interessantes e mais links relacionados ao conteúdo!

No próximo capítulo, informações interessantes sobre as linhas de comando e de endereço serão mostradas, incluíndo Mode Registers!


O que achou do artigo? Faltou alguma coisa? Ficou com alguma dúvida?

Mande suas dúvidas, sugestões e reclamações para hardwarecentrallr@gmail.com.

Não se esqueça de curtir, comentar e compartilhar! Ajude a divulgar o site!

 

REFERÊNCIAS e CRÉDITOS


Texto: Leonardo Ritter.


Tabelas, Diagramas, Gráficos e Referências: Intel Corporation; Datasheets da Micron Technology, Viking Technology, SK Hynix, Infineon Technology e Samsung; Biblioteca de diagramas do Hardware Central; Wikipedia (somente artigos com fontes verificadas!).

450 visualizações

O Hardware Central abandonou de vez o Facebook. Não temos mais fanpage e a caixa de comentários que aqui habitava foi chutada pra longe! Não somos Mainstream! Redes socias não combinam com nós! Somos a galera dos livros!

Como também repassamos conteúdo de terceiros, não é justo restringir a cópia! O uso do conteúdo do HC e de toda a internet deve ser livre!

Para relatar erros, incongruências ou sugerir conteúdo, nos chame pelo hardwarecentrallr@gmail.com! Não somos perfeitos, mas sempre é possível melhorar!

bottom of page