Memórias RAM DDR: Clocks, Controles e Endereços (PARTE 2)
top of page
  • Foto do escritorDrano Rauteon

Memórias RAM DDR: Clocks, Controles e Endereços (PARTE 2)

Atualizado: 17 de jun.

Diferente de uma RAM legado, isto é, obsoleta (você pode aumentar seu repertório CLICANDO AQUI!), uma memória SDRAM DDR possui uma pluralidade de sinais de controle, além de várias linhas de endereço e sinais de clock, e é isso que vamos estudar neste texto. Este artigo é a continução do capítulo 1, que pode ser acessado CLICANDO AQUI!


Endereçamento dos dados


As memórias RAM, sejam quais forem, necessitam de endereçamento para que se saiba onde os dados são armazenados, afinal, internamente ao chip há circuitos em forma de matrizes que armazenam os dados, sendo tudo mapeado através de enumeração de linhas e colunas.

É aí que entram os pinos Address, abreviados pela letra "A" seguida de um número ("Ax"). A quantidade de trilhas de endereço pode variar de acordo com a capacidade do módulo, bem como o padrão (DDR1, 2, 3 ou 4), mas no geral fica entre 10 e 18 linhas dedicadas. Elas são unidirecionais, afinal é o controlador de RAM que precisa "dizer" aos chips qual a linha e a coluna a serem gravadas ou lidas.

Abaixo, parte de uma lista de descrição de pinos de uma folha de dados da Micron. Perceba que no trecho destacado há é definido "A0-A13 para 2 GB e A0-A14 para 4 GB", ou seja, para os módulos DDR2 com 4 GB, apenas uma linha de endereço é adicionada.

Tabela 1 - Parte de uma folha de dados da Micron para os módulos DDR2 MT16JTF25664AY e MT16JTF51264AY


No trecho grifado pode se traduzir "Forneça o endereço da linha e o endereço da coluna para comandos ativos e bit de pré-carga (PRECHARGE) automática para comandos READ / WRITE pra selecionar outro local da matriz no respectivo banco. A10 é amostrado durante um comando PRECHARGE para determinar se o mesmo se aplica a um banco (A10 em nível LOW) ou a todos os bancos (A10 em nível HIGH). Se apenas um banco deve ser pré-carregado, ele é selecionado por BA. A linha de endereço A12 é amostrado durante READ e comandos WRITE para determinar se o burst-chop (on-the-fly) será executado. As linhas de endereço também fornecem o opcode durante o conjunto de comandos de Mode Register."


O burst-chop traduz-se como uma rajada de dados, isto é, um modo que agiliza um processo de leitura quando há uma grande sequência de dados a ser transmitida, aumentando a rapidez do funcionamento sem seguir o protocolo padrão. Tanto o burst-chop (acionado pela entrada A12) e o comando pré-carga (acionado pela entrada A10) fazem-se presentes nas memórias DDR1, DDR2, DDR3, DDR4 e DDR5.

Se trata de uma característica das memórias síncronas ter um contador interno, efetuando a contagem de colunas das matrizes e pode ser configurado para a seleção automática de colunas dentro de um banco nos processos de leitura. Com isso, se reduz a quantidade de comandos enviados pelo controlador para colher dados localizados em colunas seguintes à última coluna selecionada. Em suma, após entregar o primeiro dado, a memória entregará automaticamente um pré-determinado número de bits que estão alocados nas colunas seguintes ao dado originalmente solicitado.

Esse recurso está disponível em dois tipos:

-> Sequencial: Neste modo, os dados são lidos sequencialmente dentro de uma linha num mesmo banco de memória;

-> Intercalado: Neste, os dados são lidos sequencialmente dentro de uma linha, mas alternando os bancos de memória.


A quantidade de dados que pode ser 'colhida' sequencialmente através do modo burst-chop é programável, sendo que as opções disponíveis dependem da geração da memória (DDR1, 2, 3, 4 e 5).


CURIOSIDADE: No padrão DDR5 e DDR5X as linhas de endereço possuem a opção de inversão dos níveis lógicos, que é acionada ou desativada por um terminal chamado ABI, sigla para "Adress Bus Inversion":

Tabela 2 - Fragmento de datasheet da Micron para o chip EDW2032BBBG


A função ABI reduz os requisitos de energia nos pinos de endereço, limitando o número de linhas de endereço que conduzem para LOW a 5. ABI_n é habilitado pelo bit de registro do modo ABI correspondente.


Já no padrão DDR5 são 14 linhas para endereço, e compartilhadas com os sinais de comando (você verá mais sobre na sequência deste texto), tal como ocorre no padrão LPDDR2, LPDDR3 e LPDDR4. Aqui, assim como o padrão GDDR5 e GDDR5X há inversão, isto é, se ativado, permite inverter os níveis lógicos de todas as linhas CA tal como o a função Data Bus Inversion (DBI) do padrão DDR4:

Tabela 3 - Fragmento de datasheet da Micron sobre o padrão DDR5


Tendo uma concepção análoga ao DBI, o pino CAI (ou o ABI, do GDDR5 e GDDR5X) deve ser conectado ao VSS se nenhuma inversão for necessária. Não são necessários requisitos de sinalização ativa.


Agora, entram várias questões, dentre elas as seguintes:

Como apenas um punhado de linhas de endereço são suficientes para mapear vários chips de memória?

Essas linhas de endereço valem para todos os chips do módulo?


Vamos começar por partes...


Em resumo, sim, todos os chips de um módulo de RAM possuem ligação em série quando se trata das linhas de endereço e das linhas de comando (CAS, RAS, WE e BA), isto é, a trilha A1, por exemplo, é ligada em todos os chips de memória do módulo. Desta forma, todos eles podem, em tese, receber o mesmo endereço e ao mesmo tempo.

Para haver uma separação e aumentar a capacidade de endereçamento com poucas linhas, outros pinos entram no jogo. E eles serão vistos agora...


Chip Select


As memórias RAM possuem um mecanismo de seleção de chip, no entanto, esta seleção é dividida apenas em Rank 0 e Rank 1, sendo o Rank 0 do lado "A" e o Rank 1 do lado "B" da PCB que compõe o substrato do módulo de memória. Lembre-se que aqueles que possuem chips apenas de um lado são chamados de SIMM, e os que possuem chips dos dois lados da PCB são chamados de DIMM.

Com isso, concluímos que há no máximo duas linhas CS, que podem ser denominadas pela sigla CS# ou CS_n (quando é apenas um Rank) ou pelas siglas CS0# e CS1# ou CS0_n e CS1_n. Todavia, em virtude do aumento de desempenho dos PCs, o padrão DDR4 implementa o CS2_n e o CS3_n, havendo então uma divisão de até quatro Ranks num módulo (poucos módulos DDR4 implementam tais linhas extras).

Como podes ver no Diagrama 14 da Micron, há um conjunto de dezesseis chips distribuídos em dois Ranks. Como dito anteriormente, os dezesseis chips são ligados em série quando nos referimos as linhas Ax, CAS, RAS, WE e BA, entretanto, apenas oito deles serão ativados de cada vez através das linhas CS0# e CS1#, e isto significa que os Ranks são acionados de forma individual, paralelamente. Sendo assim, os chips são ligados em série dois-a-dois quando nos referimos as linhas DQx, DQSx, DMx.

Já no Diagrama 15 da Power Silicon há apenas oito chips, no entanto, a mesma arquitetura se forma, com dois Ranks, cada um acionando quatro chips, havendo ligação em série dois-a-dois nas linhas DQx, DQSx e DMx.

No módulo DDR4 apresentado no Diagrama 16, há apenas um Rank com os quatro chips ligados em série nas linhas Ax, CAS, RAS, WE, BA e BG, todavia, não necessitando nenhuma ligação em série duas-a-duas para DQx, DQSx e DMx.


Observe agora o Diagrama de um módulo de memória RAM DDR1 projetado pela Infineon:

Diagrama 1 - Observe que os chips são ligados em série dois-a-dois (balões azuis)


Não há como selecionar os chips D3 e D11 simultaneamente, por exemplo. Eles correspondem a Ranks diferentes, isto é, séries diferentes. Desta forma se consegue ligar as linhas de dados em mais chips.


Agora, vamos partir para uma jornada dentro de cada um destes chips...


Bank Address e Brank Group


Após selecionar o Rank do módulo, o sistema deve selecionar o banco onde os dados estão. Mas o que seria um banco de memória?

Um banco de memória é, simplesmente, uma matriz de células de memória. Como em um chip de memória RAM DDR1, 2 e 3 por padrão há até oito bancos, significa que existem oito matrizes de memória. Estas matrizes não têm padronização de tamanho e variam de acordo com a capacidade total do chip. Todavia, dentro de um chip todas as matrizes possuem a mesma dimensão.

Para que fique melhor de se entender, observe o diagrama abaixo:

Diagrama 2 - A estrutura interna de um chip de memória RAM DDR3


Note, circulado em vermelho, que existem apenas três linhas de Bank Address, isto é, BA0, BA1 e BA2. No entanto, é fácil entender que apenas três linhas permitem oito combinações de zeros e uns, ou seja, oito endereços, um para cada banco. Estes endereços são:

-> 000;

-> 001;

-> 010;

-> 011;

-> 100;

-> 101;

-> 110;

-> 111.


Como o chip Micron MT41J128M8 possui 128 MB de memória, cada banco é uma matriz de 16.384 linhas (Row) e 8.192 colunas (Column), totalizando dezesseis MegaBytes.


Agora, outro chip da fabricante Micron, porém, este com a mesma capacidade do anterior e um barramento de apenas quatro bits (um Nibble, ou então meio Byte). Isto significa que são necessários dois chips com um par diferencial DQS e a respectiva linha DM interligando-os para que operem transferindo um Byte.

Diagrama 3 - Nesta configuração, dois chips de RAM precisam ser utilizados para transferir um Byte


Perceba no Diagrama acima que há as mesmas três linhas Bank Address. Todos os chips do Rank selecionado recebem os mesmos valores nas linhas Address e Bank Address.


Na sequência, um chip DDR2 com barramento de 16 bits:

Diagrama 4 - Chip DDR2 da Micron com barramento de dezesseis bits


O Diagrama acima mostra um chip cuja implementação na PCB de um módulo segue a mesma do Diagrama 15, havendo então, internamente, uma divisão, onde quatro bancos estão ligados nos primeiros oito bits de barramento e os outros quatro estão ligados nos outros oito bits de barramento. Outro detalhe que deve ser lembrado é a existência de uma linha DM e um par diferencial DQS para cada oito bits.


Com a evolução dos PCs, notou-se que apenas oito bancos de memória num chip poderia ser pouco. Com isso, na especificação de memória DDR4 foi incluído o Bank Group. Este sistema faz com que haja até quatro grupos, sendo que cada um possui quatro bancos de memória. Isto pode fazer com que um chip consiga ter até dezesseis bancos!

Para haver quatro grupos de bancos, existem as linhas BG0 e BG1 por onde passa os pulsos de endereço que mapeiam cada um deles. Havendo apenas duas linhas, existem apenas quatro combinações possíveis, ou seja, quatro endereços:

-> 00;

-> 01;

-> 10;

-> 11.


Após ser definido qual grupo de bancos, o sistema aplica pelas linhas BA0 e BA1 o endereço do banco a ser acessado, e somente depois prossegue com comandos e endereços de linha e coluna da matriz escolhida. Note que no padrão DDR4 não há BA2, ou seja, há apenas endereços para mapear quatro bancos.


Para ficar mais claro, veja o Diagrama seguinte:

Diagrama 5 - Temos aqui um chip Micron DDR4 com capacidade de 1 GB e 8 bits no barramento de dados


Agora, outro diagrama da Micron, desta vez para um chip DDR4 cujo barramento é de quatro bits, ou seja, há a necessidade de dois chips iguais para fazer uma transferência de oito bits, sendo assim, o respectivo par DQS e a linha DM devem ser ligadas em ambos. Observe o próximo Diagrama:

Diagrama 6 - Dois chips DDR4 são necessários nesta configuração


Agora, um chip de 512 MB DDR4 cujo barramento têm dezesseis bits de largura, portanto, havendo um Bank Group de 256 MB para cada oito bits:

Diagrama 7 - Perceba que tal sistema é análogo ao Diagrama


Entendendo esta subdivisão interna dos chips de RAM, podemos prosseguir...


Para concluir o raciocínio até aqui, nem todas as entradas de endereço precisam ser utilizadas para mapear linhas e colunas, tudo depende da capacidade do chip, como mostra a tabela abaixo, de uma série de chips DDR1 da Micron:

Tabela 4 - Quantidade de endereços necessários


Perceba que todos os três chips destacados em vermelho possuem 8K de endereços de linha, aproveitando todas as doze entradas de endereço.

Já para endereços de coluna, um chip tem 4K, o outro 2K e o terceiro apenas 1K, não utilizando assim todas as entradas destinadas a endereçamento. Mesmo o chip com 4K não faz uso do A10, o com 2K não faz uso do A10 e A12 e o de 1K não faz uso do A10, A11 e A12. Isto não significa que são desativados, até porque A10 e A12 são utilizados para bit de pré-carga e burst-chop, respectivamente. O A11 pode ser utilizado no sistema Mode Register para enviar outros comandos ao chip.

Observe a próxima tabela:

Tabela 5 - Quantidade de endereços necessários


Na tabela acima, da Viking Technology, o endereçamento de seus chips DDR4 da série VR9MRxx7224xxx. Mesmo o padrão DDR4 podendo ter até dezoito entradas para aplicação de endereços, tais chips fazem uso de no máximo dezessete delas (A0~A16) para endereçar linhas da matriz. Para endereçar colunas apenas dez entradas são utilizadas (A0~A9), e isto serve para todos os chips desta série da Viking. Mesmo assim, aquelas não utilizadas servem para funções secundárias.


Nas memórias RAM DDR5, a semelhança acaba nas linhas Chip_Select (CS#). O Bank Adress e Bank Group continuam existindo dentro de cada chip para agrupar as matrizes de memória...

Complemento 1 - Fragmento de datashhet da Micron com características gerais de chips DDR5


...todavia, as respectivas linhas que conectam o módulo ao controlador foram substituídos por uma concepção mais fragmentada, onde cada pente de RAM faz uso de dois canais de memória e o acesso aos Ranks é feito por linhas CS0 e CS1 e CA0~CA13 de cada canal.

Tabela 6 - Fragmento de datasheet da SK Hynix para os chips DDR5 HMCG66MEBUAxxxN, HMCG78MEBUAxxxN, HMCG88MEBUAxxxN, HMCG78MEBEAxxxN e HMCG88MEBEAxxxN

 

RAS, CAS e WE


Quando aplica-se um endereço de Coluna pelas entradas de endereço explanadas anteriormente, a linha CAS (Column Address Strobe) fica em nível HIGH, afirmando assim que o código enviado refere-se á uma determinada coluna de uma matriz de memória. Já quando um endereço de Linha de matriz é aplicado, a linha ROW (Row Address Strobe) fica em nível HIGH. Quando o endereço aplicado é para buscar um dado que vai ser lido, habilita-se a linha WE (Write Enable).

Desta forma, quando CAS e RAS não são habilitados, isto é, mantém-se em nível LOW, as linhas de endereço podem assumir outras funções, como por exemplo o burst-chop (linha A12), que é justamente a sinalização para que um conjunto de dados que ocupa posições sequenciais da matriz seja transmitido, ou então o bit de pré-carga aplicado na linha A10, cuja função é abrir uma próxima linha da matriz de memória e também agilizar o processo de leitura / gravação. Vários outros comandos podem ser dados pelas linhas de endereço através do Mode Register. Alguns deles você verá ao longo deste texto.


OBSERVAÇÃO: Aqui, a abreviação dos termos pode ser dada simplesmente por CAS, RAS e WE, porém, também pode se encontrar folhas de dados com as designações CAS#, RAS# e WE# ou CAS_n, RAS_n e WE_n, o que não significa - neste caso - a existência de par de cancelamento para tais linhas.


CURIOSIDADE: Os nomes utilizados nos pinos de comando são herdados das memórias assíncronas. Dependendo do ponto de vista, tais designações deveriam ter sido renomeados para algo como Command2, Command1 e Command0 com o intuito de facilitar o entendimento. Contudo, os fabricantes de chips de memória preferiram continuar a utilizar a nomenclatura inicial, que não tem mais exatamente o mesmo significado.


No padrão DDR4 há um 'porém': CAS#, RAS# e WE# são multiplexados nas entradas de endereço A14, A15 e A16. Havendo tal diferença, no sistema Mode Register estas entradas não assumem outro papel. Abaixo, a descrição do Mode Register 0, um dos sete MRs disponíveis. Perceba que RAS#/A16, CAS#/A15 e WE#/A14 permanecem em nível LOW durante a execução:

Tabela 7 - Mode Register no padrão DDR4


Estando os sinais CAS#, RAS# e WE# sendo enviados por entradas que também são para aplicação de endereço, como o sistema não se confunde?

Para evitar erros e inconsistências, uma linha denominada ACT_n foi implementada no padrão DDR4. Como mostra nesta tabela de uma folha de dados da Viking (chips da série VR9MRxx7224xxx), o sinal ACT_n indica se as linhas A14, A15 e A16 estão sendo utilizadas para endereçamento ou para comandos RAS#, CAS# e WE#:

Tabela 8 - Utilidade da linha ACT_n


De acordo com uma folha de dados da Micron (chips MT40A1G4, MT40A512M8 e MT40A256M16), "ACT_n indica um comando ACTIVATE. Quando ACT_n (juntamente com

CS_n) está em nível LOW, os pinos de entrada RAS_n/A16, CAS_n/A15 e WE_n/A14 são tratados como entradas de endereço de linha de matriz de memória. Quando ACT_n está em nível HIGH (juntamente com CS_n LOW), os pinos de entrada RAS_n/A16, CAS_n/A15 e WE_n/A14 são tratados como comandos normais que utilizam os sinais RAS_n, CAS_n e WE_n."


CURIOSIDADE: Nas memórias RAM DDR5 - e também nos padrões LPDDR2, LPDDR3, LPDDR4, LPDDR5/LPDDR5X e GDDR6 - CAS, RAS e WE compartilham as linhas de Endereço, tanto que todas elas são genéricamente descritas como "Command/Adress Inputs":

Tabela 9 - Fragmento de um datasheet da Micron sobre os chips MT60B4G4, MT60B2G8 e MT60B1G16


Perceba que no padrão DDR5 são 14 trilhas de endereço para cada canal de memória. Os sinais CA fornecem as entradas de comando e endereço de acordo com a 'Tabela da Verdade de Comando'. Como alguns comandos são multiciclos, os pinos não podem ser trocados entre dispositivos no mesmo barramento.


CK / CK# e CKE


Independente da geração da memória DDR, CK e CK#, também chamados de CK_t e CK_c, respectivamente, formam um par diferencial para clock de sincronismo nas entradas de endereço, de comandos e de controle. Este par diferencial alimenta um Rank do módulo, ou seja, um slot pode conter até dois pares. Nos módulos DDR4 há até quatro Ranks, todavia, mantém-se apenas dois pares CK / CK#.

Todos os sinais de entrada de endereço, comando e controle são

aplicados exatamente na transição da borda positiva da CK_t e da borda negativa do CK_c. Apesar das linhas de transferências de dados não estarem sincronizadas diretamente com CK / CK#, elas podem ser referenciadas a cada transição de pulso de clock. As informações deste último paragrafo podem ser visualizadas em folhas de dados de diversos fabricantes:

Tabela 10 - Folha de dados dos módulos MT16JTF25664AY e MT16JTF51264AY com chips DDR3 SDRAM da Micron


Tabela 11 - Folha de dados da Alliance Memory para o chip DDR2 SDRAM AS4C32M16D2


Tabela 12 - Folha de dados da para os módulos SODIMM HMA425S6AFR6N, HMA451S6AFR8N, HMA451S7AFR8N, HMA41GS6AFR8N e HMA41GS7AFR8N com chips SDRAM DDR4 da SK Hynix


A linha CKE e CKE1 serve apara ativar (nível HIGH) ou desativar (Nível LOW) circuitos internos dos chips de memória RAM. Observe a tabela abaixo, que integra uma folha de dados de módulos DDR4 da Viking Technology:

Tabela 13 - A utilidade das linhas CKE


Segundo a folha de dados em questão, "CKE HIGH ativa e CKE LOW desativa, internamente, sinais de clock e buffers de entrada do dispositivo e drivers de saída. Quando em nível LOW, fornece operação de pré-carga e auto-atualização (todos bancos ociosos) ou Desligamento Ativo (linha ativa em qualquer banco). CKE é assíncrono para saída de atualização automática. Após o VREFCA e o VREFDQ tornarem-se estáveis ​​durante a sequência de ativação e inicialização, eles devem ser mantidos durante todas as operações (incluindo a Auto-Atualização). O CKE deve ser mantido alto durante os acessos de leitura e gravação. Os buffers de entrada (exceto CK, CK_c, ODT e CKE) são desabilitados durante o desligamento. Os buffers de entrada, excluindo CKE, são desabilitados durante a atualização automática."


Memórias RAM DDR5 não trazem nenhuma linha CKE, e possuem apenas um par diferencial de clock para cada canal de memória, como de praxe:

Tabela 14 - Fragmento de um datasheet da SK Hynix sobre chips DDR5

 

Outros sinais de controle


→ MIR: Introduzido no padrão GDDR3 e retirado no GDDR4, a função retornou no padrão GDDR5 / GDDR5X, sendo implementada também no atual DDR5. MIR é usado para informar ao sistema que o dispositivo está sendo executado no modo espelhado (Mirror) em vez do modo padrão. Com o pino MIR conectado ao VDDQ, o dispositivo troca internamente o CA de número par pelo próximo CA de número ímpar mais alto. Exemplos de pares de espelhos são CA2 com CA3 (não CA1) e CA4 com CA5 (não CA3).

O pino MIR deve estar vinculado ao VSS se nenhum espelho CA for necessário. Não são necessários requisitos de sinalização ativa.


OBSERVAÇÃO: Para o DDR5, a linha CA[13] só é relevante para determinadas densidades (incluindo empilhamento). Caso o CA[13] não seja utilizado, a localização de seu contato no chip, considerando se o MIR é utilizado ou não, deve ser conectada ao VDDQ.


Segundo a SK Hynix, "A SDRAM GDDR3 fornece um terminal de função espelho (MF) para alterar a localização física das linhas de controle e de todas as linhas de endereço, auxiliando no roteamento de dispositivos costas com costas. A bola MF afetará RAS#, CAS#, WE#, CS# e CKE nos contatos H3, F4, H9, F9 e H4 do chip, respectivamente, e A0, A1, A2, A3, A4, A5, A6, A7, A8, A9 , A10, A11, BA0, BA1 e BA2 nos contatos K4, H2, K3, M4, K9, H11, K10, L9, K11, M9, K2, L4, G4, G9 e H10 do chip, respectivamente, e detecta apenas uma entrada DC."

Complemento 2 - Compare a tabela com o array de contatos do chip e observe o funcionamento da função 'espelho'

Na prática, isso ajuda na construção da PCB:

Complemento 3 - Na prática, a função Mirror ajuda no design das trilhas quando há chips de memória RAM dos dois lados da PCB


Assim como no padrão DDR5, o contato MF deve ser ligado diretamente ao VSS do VDD dependendo da orientação desejada da linha de controle.


→ PARITY: Entrada de paridade de comando e endereço. O DDR4 suporta verificação de paridade uniforme em DRAMs. Uma vez habilitado via Mode Register 5 (MR5), a RAM calcula a paridade com ACT_n, RAS_n/A16, CAS_n/A15, WE_n/A14, BG0-BG1, BA0-BA1, A16-A0. A paridade de entrada deve ser mantida na borda ascendente do clock e ao mesmo tempo com comando e endereço com CS_n em nível LOW.

Tabela 15 - Parte de um documento da SK Hynix sobre meórias RAM DDR4


→ TEN: Exclusivo do padrão DDR4 e DDR5. Um nível ALTO neste pino permite a operação do MODO DE TESTE DE CONECTIVIDADE junto com outros pinos. É um sinal CMOS rail-to-rail com HIGH e LOW em 80% e 20% de VDDQ, respectivamente. Durante a operação normal da memória, TEN fica sempre em LOW (este pino é puxado para LOW internamente com um resistor fraco para VSS) e seu uso depende do sistema.


→ Alert_n: Possui múltiplas funções, como sinalizador de erro CRC, sinalizador de erro de paridade de comando e endereço. Se houver erro no CRC, Alert_n vai para LOW pelo intervalo de tempo do período e volta para HIGH. Se houver um erro na verificação de paridade de endereço de comando, o Alert_n ficará LOW por um período relativamente longo até que a transação de recuperação interna da memória seja concluída.

Tabela 16 - Parte de um documento da Viking Technology sobre memórias DDR4


OBSERVAÇÃO: As linhas "PARITY" e "Alert_n" são exclusivas do padrão DDR4, mas também podem ser encontradas no DDR5.


Nas memórias DDR5, Alert-n vai para LOW durante o intervalo de tempo do período e volta para HIGH quando se trata de um erro de CRC. Durante o modo Teste de Conectividade (TEN), este pino funciona como entrada. Usar ou não este sinal depende do sistema. Caso não esteja conectado, ALERT_n deve estar vinculado ao VDDQ na placa.


→ Reset_n: Redefinição assíncrona baixa ativa, sendo referenciado ao Vss (Ground). A redefinição é ativa quando RESET_n é LOW e inativa quando RESET_n é HIGH. RESET_n deve ser ALTO durante a operação normal.

RESET_n é um sinal CMOS rail-to-rail com DC alta e baixa em 80% e 20% de VDD. Isso significa que seu sinal LOW pode ser igual ou menor que 20% da alimentação elétrica e seu sinal HIGH igual ou maior a 80% da mesma, e isso vale tanto para DDR3 e DDR4. DDR1 e DDR2 não apresentam esta linha de sinal.

Tabela 17 - Parte de um documento da Micron Technology sobre memórias DDR3


Loopback Data Output / Loopback Data Strobe Output: O Loopback (em português literal: laço de volta) refere-se ao roteamento de sinais eletrônicos, fluxos de dados digitais ou fluxos de itens que retornam para suas origens sem processamento ou modificação intencional. Ele é primariamente um meio de testar a infraestrutura de transmissão ou transporte.

Tabela 18 - O padrão DDR5 faz uso de Loopback


O modo Loopback Data Output (LBDQ) é definido em MR53:OP[4:0]. Quando o Loopback está habilitado, os chips de memória do canal estão no modo driver usando o 'Ron' (resistência de terminação de barramento - você verá mais na sequência) padrão. Quando Loopback está desabilitado, o pino é terminado ou entra num estado de alta impedância (High Z do tri-state) baseado em MR36:OP[2:0].

Já o Loopback Data Strobe Output (LBDQS) é de extremidade única e com sua borda ascendente alinhada com a borda de dados de loopback, enquanto a borda descendente é alinhada com o centro do sinal LBDQ. Quando o loopback está habilitado, fica sempre no modo driver usando o 'Ron' padrão. Quando o loopback está desabilitado, o pino é terminado ou entra num estado de alta impedância (High Z do tri-state) baseado em MR36:OP[2:0].


CHIP ID: Esta foi outra tecnologia introduzida no padrão DDR4.

Tabela 19 - Parte de um datasheet da Samsung sobre memórias DDR4


Nos documentos da Micron Technology, as linhas Chip ID podem estar descritas no "Stack address inputs":

Tabela 20 - Parte de um documento da Micron Technology sobre memórias DDR4


Se tratam de entradas de endereço para acessar chips empilhados, isto é, eles são usados em pilhas 2H, 4H e 8H para configurações x4 e x8 (esses pinos não são usados na configuração x16).

DDR4 suporta três tipos de empacotamento:

-> SPD (Monolitic Single Die Package);

-> DDP (Standard Dual Die Package) tradicional;

-> 3Ds Packages, isto é, três dimensões, o que envolve dies empilhados num mesmo invólucro, aproveitando um espaço vertical, que é apenas limitado pela dissipação de calor dessas camadas dentro do chip.


Para todas as outras configurações de pilha, como 4H ou 8H, os pacotes tridimensionais usam esses três sinais (C0, C1 e C2) para selecionar a respectiva camada do invólucro em conjunto com um único CS_n, Sinal CKE e ODT.

Em resumo:

Complemento 4 - Como funciona o Chip ID


Nas memórias RAM DDR5, linhas CHIP ID não são encontradas, apesar de que a implementação de dies empilhados seja plenamente possível com as linhas de clock e endereço existentes.

 

ODT


Em aplicações de baixa frequência, as linhas de interconexão entre placas de circuito podem ser modeladas como circuitos "grudados". Nesse caso, não há que se considerar o conceito de "rescisão". Sob a condição de baixa frequência, cada ponto em um fio de interconexão pode ser assumido como tendo a mesma tensão que todos os outros pontos para qualquer instância no tempo.

No entanto, se o atraso de propagação em um fio, trilha de PCB, flat ou conector for significativo (por exemplo, se o atraso for maior que 1/6 do tempo de subida do sinal digital), o modelo de circuito "grudado" não é mais válido e a interconexão deve ser analisada como uma linha de transmissão.


Em uma linha de transmissão de dados digitais (os pulsos elétricos "0" e "1"), o caminho de interconexão de sinal é modelado como um circuito contendo indutância, capacitância e resistência distribuídas em toda a sua extensão, o que nos leva à reatãncia indutiva, reatância capacitiva e resistência elétrica. Enquanto a primeira gera um atraso na propagação da corrente, a segunda gera um atraso na propagação da tensão, e a terceira provoca uma atenuação em ambos e até uma dissipação de sinal por efeito Joule. O trio de 'problemas' é quantizado pela unidade de medida Ohm, e a somatória dos três resulta na famigerada Impedância (Z). Estes atrasos / deslocamentos de sinal causados por indutãncia, capacitância e resistência geram distorções, podendo resultar em erros na leitura de dados, corrupção do sinal em geral.

Imagem 1 - O sinal mais 'limpo' é o terceiro

Note na imagem acima que o sinal mais 'sujo' é aquele com o menor 'olho'. Quanto maior a reatância capacitiva / indutiva das linhas, maior o deslocamento de sinal e mais sensível a erros é a leitura deste sinal no receptor.


Pra ficar mais claro o significado da impedância num circuito, vamos extrapolar. Os 'bancos de resistores' que regulam a Impedância total são como os bancos de capacitores utilizados em sistemas industriais para trazer o fator de potência próximo de 1. Muitas fábricas são repletas de motores gerando reatância indutiva e atrasando a corrente em relação à tensão, aumentando a potência reativa e distanciando o fp do valor 1. Os bancos de capacitores justamente fazem o contra-ponto, já que a reatância capacitiva adianta a tensão em relação a corrente, trazendo o fator de potência mais próximo do valor ideal, que é 1, ou seja, deixando a senoide de tensão e a senoide de corrente (QUASE) sincronizadas.

No caso de circuitos digitais, os sinais são pulsados - os famosos zeros e uns - numa tensão baixa e com frequências que podem bater a casa dos Ghz, completamente diferente das indústrias, que utilizam linhas trifásicas alternadas de 380 V operando em 60 Hz.


Para que uma linha de transmissão minimize a distorção do sinal, a impedância de cada local do respectivo caminho deve ser uniforme em toda a sua extensão. Se houver algum lugar na linha onde a impedância não é uniforme por algum motivo (circuito aberto, material condutor diferente e isolação diferente, por exemplo) o sinal é modificado por reflexão no ponto de mudança de impedância, o que resulta em distorção.

Quando o caminho do sinal tem uma incompatibilidade de impedância, então uma terminação com a quantidade equivalente de resistência elétrica é colocada no ponto de descontinuidade da linha. Isso é descrito como "rescisão".

Por exemplo, resistores podem ser colocados em placas-mãe de computadores para encerrar barramentos de alta velocidade. Para termos uma percepção melhor de como funciona, veja a seguinte imagem, de uma placa-mãe com suporte à memórias DDR1:

Imagem 2 - Se trata de uma Asus A7VX-X, datada de 2002


Existem várias formas de terminação dependendo de como os resistores estão conectados à linha de transmissão. A terminação paralela e a terminação em série são exemplos de metodologias de terminação.


Enquanto nas memórias RAM DDR1 as terminações resistivas do barramento SSTL ficam na placa-mãe, nas memórias DDR2 e posteriores (sejam SSTL ou POD) foi implementado a tecnologia ODT, sigla para On Die Termination, ou seja, terminações resistivas dentro do chip. Veja a ilustração de como o ODT é:

Diagrama 8 - As várias combinações de resistores proporcionadas pela tecnologia ODT permite uma melhor adequação da impedância nas linhas de sinal, tornando-se bem mais eficiente que o sistema implementado no padrão DDR1


Embora os resistores de terminação na placa-mãe reduzam alguns reflexos nas linhas de sinal - em geral entre a conexão do controlador de RAM na placa-mãe e os pontos de solda que fixam o slot na PCB -, eles são incapazes de impedir os reflexos resultantes nos terminais do slot que conectam o(s) módulo(s) de memória RAM. Lembre-se que um canal de memória RAM pode ter mais de um slot. Um sinal que se propaga do controlador para os chips de RAM - ou vice-versa - encontra uma descontinuidade de impedância nos terminais do slot. O sinal que se propaga depois dos terminais será refletido na linha, introduzindo assim ruído indesejado. Além disso, a terminação on-die pode reduzir o número de elementos resistores e fiação complexa na placa-mãe. Assim, o projeto do sistema pode ser mais simples e econômico.


A ODT é implementada com várias combinações de resistores dentro do chip de RAM, juntamente com outras árvores de circuito. Os projetistas de dies de memória podem usar bancos de transistores que têm diferentes valores de resistência interna, operando assim como resistores.

No caso da DDR2, existem três valores de resistência:

Tabela 21 - Resistores nominais para as terminações ODT


Os valores internos de ODT em DDR3 são:

-> 120 Ohm;

-> 60 Ohm;

-> e 40 Ohm.


Os resistores podem ser combinados para criar um valor de impedância equivalente adequado para a linha de transmissão SSTL ou POD em que o chip é conectado. Quando existe um circuito de controle de impedância nos chips, o controlador de memória RAM gerencia a resistência de terminação por meio de um registro de configuração programável que reside na memória.


A utilização de ODT envolve duas etapas. Primeiro, o valor de resistência para o barramento que forma o canal de memória deve ser selecionado dentro do chip de memória. Em segundo lugar, ele pode ser habilitado / desabilitado dinamicamente usando terminal ODT que liga o controlador da placa-mãe a todos os chips presentes no canal de memória.

Para configurar a ODT, podem haver métodos diferentes, e isso é feito configurando o registro de modo estendido (Extended Mode Register) do dispositivo com o valor ODT adequado.

Há requisitos de temporização síncrona e assíncrona, dependendo do estado do módulo de memória. Essencialmente, a ODT é ativada imediatamente antes da transferência de dados e, em seguida, desligada imediatamente depois. Se houver mais de um dispositivo de memória no canal, a memória ativa ou inativa poderá encerrar o sinal. Essa flexibilidade permite que a terminação ideal ocorra com a precisão necessária.

Vamos tentar entender como a On-Die Termination funciona em operações de leitura e gravação da memória RAM. Os sinais do grupo de dados são acionados pelo controlador em gravações e conduzidos pelo(s) chip(s) de memória durante as leituras. Os receptores em ambos os casos (memória em gravações e controlador de memória em leituras) declararão terminações on-die nos momentos apropriados. Os diagramas a seguir mostram as impedâncias vistas nessas redes durante os ciclos de gravação e leitura.

Esse é um exemplo das impedâncias vistas no canal de RAM durante um ciclo de gravação:

Diagrama 9


Durante as gravações, a impedância de saída do módulo de memória é de aproximadamente 45 Ω. Recomenda-se que RAMs DDR3, DDR4 e DDR5 (bem como suas variantes móveis LPDDR2, LPDDR3, LPDDR4, LPDDR4X, LPDDR5 e LPDDR5X, e as gráficas GDDR3, GDDR5 e GDDR5X) sejam implementadas com o pino de referência "RZQ" conectado a um resistor de 240 Ω. Supondo que assim seja, os resistores de terminação (Rtt) podem ser configurados para apresentar uma ODT de RZQ/6 para uma terminação efetiva de 40Ω.

Complemento 5


Agora, um exemplo das impedâncias vistas no canal durante um ciclo de leitura:

Diagrama 10


Durante as leituras, é recomendável que a memória seja configurada para uma impedância de RZQ/7, ou seja, um 'Ron' de aproximadamente 34 Ω (com o resistor conectado ao pino RZQ tendo 240 Ω). A terminação on-die (ODT) dentro do controlador DRAM terá uma impedância Thévenin (impedância equivalente) efetiva de 45 Ω.

Tabela 22


Agora vamos falar sobre os sinais de endereço, controle, comando e clock:

Diagrama 11


Tais sinais são feitos através da topologia fly-by a partir do controlador de memória RAM, terminações de cada módulo e terminações após o último slot do canal.

Os pares diferenciais de clock serão terminados através de resistores de 39,2 Ω para um nó comum conectado a um capacitor que é então conectado ao VDDQ. O controlador de memória apresentará uma impedância de saída de 45 Ω ao conduzir esses sinais.


É fato que a topologia fly-by fornece a melhor integridade de sinal para memórias DDR3 e DDR4, pois apresenta menos ramificações e conexões ponto-a-ponto. Ao trabalhar com roteamento para DDR3 e DDR4, tal método começa no controlador, começando no chip 0 e roteando até o chip n (ou o bit de dados mais alto). A topologia fly-by é mostrada abaixo:

Diagrama 12 - Aqui as trilhas podem ser implementadas em uma camada de PCB, apenas (obviamente o espaço deve ser levado em conta). Fontes: Altium


Uma topologia alternativa para projetar e rotear uma DDR é a Double-T. Neste método, o clock diferencial, o comando e o fan-out de endereço do controlador de memória ramificam-se para uma 'seção T' que pode suportar até dois chips.


OBSERVAÇÃO: O fan-out é definido como o número máximo de entradas lógicas padronizadas que uma saída pode acionar confiavelmente. Se FO for excedido, os níveis lógicos da saída não podem ser garantidos. Neste caso, as linhas de endereço, clock e comando são ligadas em todos os chips do canal.


Em geral, com uma topologia Duplo-T podem ser conectados 2^n chips (n = número de ramificações). As linhas de dados e sinais estroboscópicos são roteadas diretamente do controlador de memória para cada chip de RAM. Isso é mostrado no diagrama a seguir.

Diagrama 13 - Tal topologia precisa ser implementada em duas camadas da PCB


A topologia Double-T era comum no roteamento DDR2 e DDR1. No entanto, cada ramificação criou diferenças de impedância cumulativa nas frequências DDR2. É por isso que a topologia fly-by é preferível em DDR3 e gerações posteriores, uma vez que cada dispositivo percebe apenas uma única ramificação nas linhas de clock, comando e endereço.

Especificamente, a topologia fly-by é preferível para dispositivos RAM de chip único (tal como smartphones, por exemplo). Enquanto isso, em dispositivos multichip qualquer uma das duas topologias pode ser usada. Embora se tenha alguma liberdade para escolher entre esses dois métodos, DDR3 e DDR4 são mais fáceis de rotear com a topologia fly-by. E, além disso, se nota algumas vantagens em termos de integridade do sinal.


Neste último tópico tratamos de informações que incluem o design da placa de circuito. Caso queira saber mais sobre parâmetros a serem considerados na construção das PCBs, CLIQUE AQUI!

Aqui são listados alguns detalhes extras que ajudam na compreensão do montante de informações apresentadas anteriormente...


Diagramas Complementares


Abaixo são apresentados alguns diagramas que complementam o texto deste capítulo (também estão presentes no capítulo sobre transferências de dados).

Observe-os:

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


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


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

Este artigo abordou de maneira resumida mais uma penca de informações sobre as memórias RAM. Obviamente, o enfoque foi nos padrões DDR de computadores de mesa e notebooks, entretanto, citações ao longo do texto envolvendo o padrão LPDDR e GDDR alinharam muitas das semelhanças e diferenças entre todas estas tecnologias de memória.


Logicamente, isto não é tudo. Todo o conteúdo foi elaborado com base em informações técnicas retiradas de datasheets dos maiores desenvolvedores de chips de memória, e ao longo do tempo mais conteúdo será adicionado.


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 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!).


Última atualização: 16 de Junho de 2024.

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

© 2024 Hardware Central Tecnologia Entretenimento e Comunicação do Brasil Ltda. Todos os direitos reservados.

Wix Editor / Revisão da web page: 3.2/2022 (20/03/22)

bottom of page