# SDRAM

A memória de aceso aleatório síncrono e dinâmico (do inglês synchronous dynamic random-access memory, conhecido pela abreviatura SDRAM) é toda memória de acesso aleatório (DRAM) que sincroniza automaticamente com a temporização de trabalho do processador (sincronização das ações nos circuitos digitais), planejada na década de 1970. A operação de sua interface de pino externa é coordenada por um sinal de relógio fornecido externamente e, a interface síncrona onde as entradas de controle são reconhecidas após a borda da entrada de clock. A memória síncrona foi desenvolvida devido à velocidade crescente dos outros componentes do computador.
Os circuitos integrados DRAM (ICs) produzido entre o início dos anos 1970 e o início dos anos 1990 usavam uma interface assíncrona, na qual os sinais de controle de entrada têm um efeito direto nas funções internas atrasadas apenas pelo disparo em seus caminhos de semicondutores. O SDRAM tem uma interface síncrona, por meio da qual as mudanças nas entradas de controle são reconhecidas após uma borda ascendente de sua entrada de clock. Em famílias SDRAM padronizadas por JEDEC, o sinal do relógio controla a etapa de uma máquina de estado finito interna que responde aos comandos de entrada. Esses comandos podem ser canalizados para melhorar o desempenho, com as operações iniciadas anteriormente sendo concluídas enquanto novos comandos são recebidos. A memória é dividida em várias seções de mesmo tamanho, mas independente, chamadas bancos, permitindo que o dispositivo opere em um comando de acesso à memória em cada banco simultaneamente e acelere o acesso de maneira intercalada. Isso permite que as SDRAMs alcancem maior simultaneidade e taxas de transferência de dados mais altas do que as DRAMs assíncronas.
Pipelining significa que o chip pode aceitar um novo comando antes de concluir o processamento do anterior. Para uma gravação em pipeline, o comando de gravação pode ser seguido imediatamente por outro comando sem esperar que os dados sejam gravados na matriz de memória. Para uma leitura em pipeline, os dados solicitados aparecem um número fixo de ciclos de clock (latência) após o comando de leitura, durante o qual comandos adicionais podem ser enviados.

## História

As primeiras memórias do tipo DRAM foram projetadas para trabalharem sincronizadamente com o clock (temporização de trabalho) do processador, e eram usadas com os primeiros processadores Intel. Em meados da década de 1970, as DRAM mudaram para o design assíncrono, mas na década de 1990 retornaram à operação síncrona. Pois a memória síncrona reconhece o ciclo exato em que os dados solicitados estarão disponíveis para uso, sem a necessidade do processador esperar o ciclo de acessos à memória.
O primeiro SDRAM comercial foi o chip de memória Samsung KM48SL2000, que tinha capacidade de 16 Mbit. Foi fabricado pela Samsung Electronics usando um processo de fabricação CMOS (semicondutor de óxido de metal complementar) em 1992, e produzido em massa em 1993. Em 2000, SDRAM substituiu virtualmente todos os outros tipos de DRAM em computadores modernos, devido ao seu maior desempenho.
A latência SDRAM não é inerentemente inferior (mais rápida) do que a DRAM assíncrona. Na verdade, o SDRAM inicial era um pouco mais lento que o Burst EDO DRAM contemporâneo devido à lógica adicional. Os benefícios do buffer interno da SDRAM vêm de sua capacidade de intercalar operações em vários bancos de memória, aumentando assim a largura de banda efetiva.
Hoje, praticamente todos os SDRAM são fabricantes em conformidade com os padrões estabelecidos pela JEDEC, uma assosciação da indústria de eletrônicos que adota padrões abertos para facilitar a interoperabilidade de componentes eletrônicos. A JEDEC adotou formalmente seu primeiro padrão SDRAM em 1993 e subsequentemente adotou outros padrões SDRAM, incluindo aquelees para DDR SDRAM, DDR2 e DDR3.
SDRAM de dupla taxa de dados, conhecido como DDR SDRAM, foi demonstrado pela primeira vez pela Samsung em 1997. Samsung lançou o primeiro chip comercial DDR SDRAM (64 Mbit) em julho de 1998, seguido logo depois pela Hyundai Electronics (agora SK Hynix) no mesmo ano.
SDRAM também está disponível em variedades registradas, para sistemas que requerem maior escalabilidade, como servidores e estações de trabalho.
Hoje, os maiores fabricantes mundiais de SDRAM incluem: Samsung Electronics, SK Hynix, Micron Technology e Nanya Technology.

## Timing

Existem vários limites no desempenho da DRAM. O mais observado é o tempo de ciclo de leitura, o tempo entre sucessivas operações de leitura para uma linha aberta. Este tempo diminuiu de 10 ns para SDRAM de 100 MHz (1 MHz=$10^{6}$ Hz) a 5 ns para DDR-400, mas permaneceu relativamente inalterado nas gerações DDR2-800 e DDR3-1600. No entanto, ao operar o circuito de interface em múltiplos cada vez mais altos da taxa de leitura fundamental, a largura de banda alcançável aumento rapidamente.
Outro limite é a latência CAS, o tempo entre o fornecimento de um endereço de coluna e o recebimento dos dados correspondentes. Novamente, isso permaneceu relativamente constante em 10-15 ns nas útilmas gerações de SDRAM DDR.
Em operação, a latência do CAS é um número específico de ciclos de clock programados no registro de modo do SDRAM e esperados pelo controlador DRAM. Qualquer valor pode ser programado, mas o SDRAM não funcionará corretamente se estiver muito baixo. Em taxas de clock mais altas, a latência CAS útil em ciclos de clock aumenta naturalmente. 10-15 ns é 2-3 ciclos (CL2-3) do clock de 200 MHz do DDR-400 SDRAM, CL4-6 para DDR2-800 e CL8-12 para DDR3-1600. Ciclos de clock mais lentos naturalmente permitirão um número menor de ciclos de latência CAS.
Os módulos SDRAM têm suas próprias especificações de temporização, que podem ser mais lentas do que as dos chips no módulo. Quando os chips SDRAM de 100 MHz apareceram pela primeira vez, alguns fabricantes venderam módulos de "100 MHz" que não podiam operar de maneira confiável naquela taxa de clock. Em resposta, a Intel publicou o padrão PC100, que descreve os requisitos e diretrizes para a produção de um módulo de memória que pode operar de forma confiável a 100 MHz. Este padrão foi amplamente influente, e o termo "PC100" rapidamente se tornou um identificador comum para módulos SDRAM de 100 MHz, e os módulos agora são comumente designados com números prefixados de "PC" (PC66, PC100 ou PC133 - embora o significado real dos números mudou).

## Sinais de controle

Todos os comandos são cronometrados em relação à borda de subida de um sinal de clock. Além do clock, esxitem seis sinais de controle principalmente ativos low, que são amostrados na borda de subida do clock:
* Ativação do relógio CKE. Quando este sinal está baixo, o chip se comporta como se o relógio tivesse parado. Nenhum comando é interpretado e os tempos de latência do comando não decorrem. O estado de outras linhas de controle não é relevante. O efeito deste sinal é realmente atrasado em um ciclo de clock. Ou seja, o ciclo de clock atual continua normalmente, mas o ciclo de clock seguinte é ignorado, exceto para testar a entrada CKE novamente. As operações normais são retomadas na borda ascendente do relógio após aquela em que o CKE é amostrado alto. Dito de outra forma, todas as outras operações do chip são cronometradas em relação à borda ascendente de um relógio mascarado. O clock mascarado é o AND lógico do clock de entrada e o estado do sinal CKE durante a borda de subida anterior do clock de entrada.
* Seleção de chip CS. Quando este sinal é alto, o chip ignora todas as outras entradas (exceto CKE) e age como se um comando NOP fosse recebido.
* Máscara de dados DQM. (A letra Q aparece porque, seguindo as convenções da lógica digital, as linhas de dados são conhecidas como linhas "DQ"). Quando alto, esses sinais suprimem a E/S de dados. Ao acompanhar dados de gravação, os dados não são realmente gravados na DRAM. Quando declarado alto dois ciclos antes de um ciclo de leitura, os dados lidos não são emitidos do chip. Há uma linha DQM por 8 bits em um chip de memóira x16 ou DIMM.

### Sinais de comando

* 'RAS, estroboscópio de endereço de linha. Apesar do nome, este não é um estroboscópio, mas simplesmente um bit de comando. Junto com CAS e WE, isso seleciona um dos oito comandos.
* CAS, estroboscópio de endereço de coluna. Este também não é um estroboscópio, mas um bit de comando. Junto com RAS e WE, isso seleciona um dos oito comandos.
* WE, habilitar escrita. Junto com RAS e CAS, isso seleciona um dos oito comandos. Geralmente distingue comandos semelhantes a leitura de comandos semelhantes a gravação.

### Sinais de banco (BAn)

Os dispositivos SDRAM são divididos internamente em dois, quatro ou oito bancos de dados internos independentes. Uma a três entradas de endereço do banco (BA0, BA1 e BA2) são usadas para selecionar para qual banco um comando é direcionado.

### Endereçamento (A10/An)

Muitos comandos também usam um endereço apresentado nos pinos de entrada de endereço. Alguns comandos, que não usam endereço ou apresentam endereço de coluna, também usam A10 para selecionar variantes.

### Comandos

Os comandos SDR SDRAM são definidos da seguinte forma:
| CS | RAS | CAS | WE | BAn | A10 | An | Comando |
| H | x | x | x | x | x | x | Inibição de comando (sem operação) |
| L | H | H | H | x | x | x | Nenhuma operação |
| L | H | H | L | x | x | x | Terminar em rajada: interrompe uma leitura em rajada ou uma gravação em rajada em andamento |
| L | H | L | H | banco | L | coluna | Ler: lê uma sequência de dados da linha ativa no momento |
| L | H | L | H | banco | H | coluna | Leia com pré-carga automática: como acima, e pré-carregue (fecha a linha) quando terminar |
| L | H | L | L | banco | L | coluna | Gravar: grava uma explosão de dados na linha atualmente ativa |
| L | H | L | L | banco | H | coluna | Escreva com pré-carga automática: como acima, e pré-carregue (fecha a linha) quando terminar |
| L | L | H | H | banco | fileira | fileira | Ativo (ativar): abre uma linha para comandos de leitura e gravação |
| L | L | H | L | banco | L | x | Pré-carga: desativa (fecha) a linha atual do banco selecionado |
| L | L | H | L | x | H | x | Pré-carregar tudo: desative (fecha) a linha atual de todos os bancos |
| L | L | L | H | x | x | x | Atualização automática: atualize uma linha de cada banco, usando um contador interno. Todos os bancos devem ser pré-carregados. |
| L | L | L | L | 0 0 | modo | modo | Registro do modo de carga: A0 a A9 são carregados para configurar o chip DRAM. As configurações mais significativas são a latência do CAS (2 ou 3 ciclos) e a duração da rajada (1, 2, 4 ou 8 ciclos) |
Todas as gerações de SDRAM (SDR e DDRx) usam essencialmente os mesmos comandos, com as alterações sendo:
* Bits de endereço adicionais para suportar dispositivos maiores
* Bits de seleção de banco adicionais
* Registro de modo mais amplo (DDR2 e acima usam 13 bits, A0-A12)
* Registros de modo estendido adicionais (selecionados pelos bits de endereço do banco)
* DDR2 exclui o comando de término de explosão; DDR3 o reatribui como "calibração ZQ"
* DDR3 e DDR4 usam A12 durante o comando de leitura e gravação para indicar "burst chop", transferência de dados de meio comprimento
* DDR4 altera a codificação do comando active. Um novo sinal ACT o controla, durante o qual as outras linhas de controle são usadas como bits de endereço de linha 16, 15 e 14. Quando ACT é alto, outros comandos são os mesmos acima.

## Construção e operação

Por exemplo, um DIMM SDRAM de '512 MB' que contém 512 MB, pode ser feito de oito ou nove chips SDRAM, cada um contendo 512 Mbit de armazenamento e cada um contribuindo com 8 bits para a largura de 64 ou 72 bits do DIMM. Um chip SDRAM típico de 512 Mbit contém internamente quatro bancos de memória independentes de 16 MB. Cada banco é uma matriz de 8.192 linhas de 16.384 bits cada. (2.048 colunas de 8 bits). Um banco está ocioso, ativo ou mudando de um para o outro.
O comando active ativa um banco ocioso. Ele apresenta um endereço de banco de dois bits (BA0-BA1) e um endereço de linha de 13 bits (A0-A12) e faz uma leitura dessa linha na matriz do banco de todos os 16.384 amplificadores de detecção de coluna. Isso também é conhecido como "abrir" a linha. Essa operação tem o efeito de atualizar as células de armazenamento de memória dinâmica (capcitiva) dessa linha.
Uma vez que a linha tenha sido ativada ou "aberta", comandos de leitura e escrita são possíveis para essa linha. A ativação requer uma quantidade mínima de tempo, chamada de atraso de linha a coluna, ou t$_{RCD}$ antes que leituras ou gravações possam ocorrer. Desta vez, arredondado para o próximo múltimo do período de clock, especifica o número mínimo de ciclos de espera entre um comando ativo e um comando de leitura ou gravação. Durante esses ciclos de espera, comandos adicionais podem ser enviados para outros bancos; porque cada banco opera de forma totalmente independente.
Os comandos de leitura e gravação requerem um endereço e coluna. Como cada chip acessa oito bits de dados por vez, existem 2.048 endereços de coluna possíveis, exigindo apenas 11 linhas de endereço (A0-A9, A11).
QUando um comando de leitura é emitido, a SDRAM produzirá os dados de sáida correspondentes nas linhas DQ em tempo para a borda de subida do relógio alguns ciclos de clock depois, dependendo da latência CAS configurada. As palavras subsequentes da rajada serão produzidas a tempo para as bordas de clock de subida subsequentes.
Um comando de gravação é acompanhado pelos dados a serem gravados ans linhas DQ durante a mesma borda de clock ascendente. É dever do controlador de memória garantir que a SDRAM não esteja direcionando dados de leitura para as linhas DQ ao mesmo tempo em que precisa direcionar dados de gravação para essas linhas. Isso pode ser feito esperando até que uma rajada de leitura termine, terminando uma rajada de leitura ou usando a linha de controle DQM.
Quando o controlador de memória precisa acessar uma linha diferente, ele deve primeiro retornar os amplificadores de detecção daquele bnco para um estado ocioso, pronto para detectar a próxima linha. Isso é conhecido como operação de "pré-carregamento" ou "fechamento" da linha. Uma pré-carga pode ser comandada explicitamente ou pode ser executada automaticamente na conclusão de uma operação de leitura ou gravação. Novamente, há um tempo mínimo, o atraso de pré-carga da linha, t$_{RP}$, que deve decorrer antes que essa linha seja totalmente "fechada" e assim o banco fique ocioso para receber outro comando de ativação nesse banco.
Embora a atualização de uma linha seja um efeito colateral automático de ativá-la, há um tempo mínimo para que isso aconteça, o que requer um atraso mínimo t$_{RAS}$ de tempo de acesso à linha entre um comando ativo abrindo uma linha e o comando de pré-carga correspondente fechando-a. Esse limite geralmente é diminuído pelos comandos de leitura e gravação desejados na linha, portanto, seu valor tem pouco efeito no desempenho típico.

## Interações de comando

O comando no operation é sempre permitido, enquanto o comando load mode register exige que todos os bancos estejam ociosos e um atraso posterior para que as alterações entrem em vigor. O comando de atualização automática também requer que todos os bancos estejam ociosos e leva um tempo de atualização t$_{RFC}$ para retornar o chip ao estado ocioso. (Esse tempo geralmente é igual a t$_{RCD}$+t$_{RP}$.) O único outro comando permitido em um banco ocioso é o comando ativo. Isso leva, como mencionado acima, t$_{RCD}$ antes que a linha esteja totalmente aberta e possa aceitar comandos de leitura e gravação.
Quando um banco está aberto, são permitidos quatro comandos: ler, escrever, terminar em rajada e pré-carregar. Os comandos de leitura e gravação iniciam rajadas, que podem ser interropidas pelos comandos a seguir.

### Interrompendo uma rajada de leitura

Um comando de leitura, término de rajada ou pré-carga pode ser emitido a qualquer momento após um comando de leitura e interromperá a rajada de leitura após a latência CAS configurada. Portanto, se um comando de leitura for emitido no ciclo 0, outro comando de leitura for emitido no ciclo 2 e a latência do CAS for 3, o primeiro comando de leitura começará a estourar os dados durante os ciclos 3 e 4, e os resultados da segunda leitura do comando aparecerá começando com o ciclo 5.
Se o comando emitido no ciclo 2 terminasse em rajada ou fosse uma pré-carga do banco ativo, nenhuma saída seria gerada durante o ciclo 5.
Embora a leitura de interrupção possa ser para qualquer banco ativo, um comando de pré-carga só interromperá a rajada de leitura se for para o mesmo banco ou todos os bancos; um comando de pré-carga para um banco diferente não interromperá uma rajada de leitura.
Interromper uma rajada de leitura por um comando de gravação é possível, mas mais difícil. Isso pode ser feito se o sinal DQM for usado para suprimir a saída da SDRAM para que o controlador de memória possa conduzir os dados pelas linhas DQ para a SDRAM a tempo da operação de gravação. Como os efetios do DQM nos dados de leitura são atrasados em dois ciclos, mas os efeitos do DQM nos dados de gravação são imediatos, o DQM deve ser aumentado (para mascarar os dados de leitura) começado pelo menos dois ciclos antes do comando de gravação, mas deve ser reduzido para o ciclo do comando de gravação (supondo que o comando de gravação tenha um efeito).
Fazer isso em apenas dois ciclos de clock requer uma coordenação cuidadosa entre o tempo que a SDRAM leva para desligar sua saída em uma borda de clock e o tempo que os dados devem ser fornecidos como entrada para a SDRAM para a gravação na borda de clock seguinte. Se a frequência do relógio for muito alta para permitir tempo suficiente, três ciclos podem ser necessários.
Se o comando de leitura incluir pré-carga automática, a pré-carga inicia o mesmo ciclo que o comando de interrupção.

## Pedido de rajada

Um microprocessador moderno com cache geralmente acessa a memória em unidades de linha de cache. Transferir uma linha de cache de 64 bytes requer oito acessos consecutivos a um DIMM de 64 bits, que podem ser acionados por um único comando de leitura ou gravação, configurando os chips SDRAM, usando o registrador de modo, para executar rajadas de oito palavras. Uma busca de linha de cache é normalmente acionada por uma leitura de um endereço específico, e a SDRAM permite que a "palavra crítica" da linha de cache seja transferida primeiro. ("Palavra" aqui se refere à largura do chip SDRAM ou DIMM, que é de 64 bits para um DIMM típico.) Os chips SDRAM suportam duas convenções possíveis para a ordenção das palavras restantes na linha de cache.
As rajadas sempre acessam um bloco alinhado de palavras consecutivas BL começando em um múltiplo de BL. Assim, por exemplo, um acesso intermitente de quatro palavras a qualquer endereço de coluna de quatro a sete retornará palavras de quatro a sete. A ordenação, no entanto, depende do endereço solicitado e da opção do tipo de intermitência configurada: sequencial ou intercalado. Normalmente, um controlador de memória exigirá um ou outro. Quando o comprimento da rajada é um ou dois, o tipo de rajda não importa. Para um comprimento de rajada de um, a palavra solicitada é a única palavra acessada. Para um comprimento de rajada de dois, a palavra solicitada é acessada primeiro e a outra palavra no bloco alinhado é acessada em segundo lugar. Esta é a palavra seguinte se for especificado um endereço par, e a palavra anterior se for especificado um endereço ímpar.
Para o modo de rajada sequencial, as palavras posteriores são acessadas em ordem crescente de endereço, voltando ao início do bloco quando o final é alcançado. Assim, por exemplo, para um comprimento de rajada de quatro e um endereço de coluna solicitado de cinco, as palavras seriam acessadas na ordem 5-6-7-4. Se o comprimento da rajada fosse oito, a ordem de acesso seria 5-6-7-0-1-2-3-4. Isso é feito adicionando um contador ao endereço da coluna e ignorando os carregamentos além do comprimento da rajada. O modo burst intercalado calcula o endereço usando uma operação exclusiva ou entre o contador e o endereço. Usando o mesmo endereço inicial de cinco, uma rajada de quatro palavras retornaria palavras na ordem 5-4-7-6. Uma rajda de oito palavras seria 5-4-7-6-1-0-3-2. Embora mais confuso para os humanos, isso pode ser mais fácil de implementar em hardware e é o preferido da Intel por seus microprocessadores.
Se o endereço de coluna solicitado estiver no início de um bloco, ambos os modos de rajada (sequencial e intercalado) retornarão dados na mesma sequência sequencial 0-1-2-3-4-5-6-7. A diferença só importa se buscar uma linha de cache da memória na primeira ordem de palavra crítica.

## Registro de modo

A SDRAM de taxa de dados única possui um único registro de modo programável de 10 btis. Padrões SDRAM de taxa de dados dupla posteriores adicionam registros de modo adicionais, endereçados usando os pinos de endereço do banco. Para SDR SDRAM, os pinos de endereço do banco e as linhas de endereço A10 e acima são ignorados, mas devem ser zero durante uma gravação de registro de modo.
Os bits são M9 a M0, apresentados nas linhas de endereço A9 a A0 durante um ciclo de registro do modo de carga.
* M9: Modo de gravação em sequência. Se 0, as gravações usam o comprimento e o modo de intermitência de leitura. Se 1, todas as gravações são sem intermitência (único local).
* M8, M7: Modo de operação. Reservado e deve ser 00.
* M6, M5, M4: lantência CAS. Geralmente apenas 010 (CL2) e 011 (CL3) são legais. Especifica o número de ciclos entre um comando de leitura e a saída de dados do chip. O chip tem um limite fundamental neste valor em nanossegundos; durante a inicialização, o controlador de memória deve usar seu conhecimento da frequência de clock para traduzir esse limite em ciclos.
* M3: Tipo de explosão. 0 - solicita ordenação de rajada sequencial, enquanto 1 solicita ordenção de rajda intercalda.
* M2, M1, M0: Comprimento da rejada. Os valores de 000, 001, 010 e 011 especificam um tamanho de rajda de 1, 2, 4 ou 8 palavras, respectivamente. Cada leitura (e gravação, se M9 for 0) realizará esse número de acessos, a menos que seja interrompido por uma parada de rajada ou outro comando. Um valor de 111 especifica uma intermitência de linha completa. A rajada continuará até ser interrompida. Explosões de linha completa só são permitidas com o tipo de rajada sequencial.
Os padrões SDRAM posteriores (taxa de dados dupla) usam mais bits de registro de modo e fornecem registros de modo adicionais chamados "registradores de modo estendido". O número de registro é codificado nos pinos de endereço do banco durante o comando de registro do modo de carregamento. Por exemplo, a SDRAM DDR2 tem um registro de modo de 13 bits, um registro de modo estendido de 13 bits No. 1 (EMR1) e um registro de modo estendido de 5 bits No. 2 (EMR2).

## Atualização automática

É possível atualizar um chip de RAM abrindo e fechando (ativando e pré-carregando) cada linha em cada banco. No entanto, para simplificar o controlador de memória, os chips SDRAM suportam um comando de "auto refresh", que executa essas operações em uma linha em cada banco simultanemente. A SDRAM também mantém um contador interno, que itera em todas as linhas possíveis. O controlaodr de memória deve simplesmente emitir um número suficiente de comandos de atualização automática (um por linha, 8192 no exemplo que estamos usando) a cada intervalo de atualização (t$_{REF}$ = 64 ms é um valor comum). Todos os bancos devem estar ociosos (fechados, pré-carregados), quando este comando for emitido.

## Modos de baixo consumo

Conforme mencionado, a entrada de habilitação do relógio (CKE) pode ser usada para parar efetivamente o relógio para uma SDRA. A entrada CKE é amostrada em cada borda de subida do clock e, se estiver baixa, a borda de subida seguinte do clock é ignorada para todos os proprósitos que não sejam a verificação de CKE. Enquanto o CKE estiver baixo, é permitido alterar a taxa de clock ou até mesmo para o clock completamente.
Se o CKE for reduzido enquanto a SDRAM estiver executando operações, ele simplesmente "congela" no local até que o CKE seja elevado novamente.
Se a SDRAM estiver ociosa (todos os bancos pré-carregados, nenhum comando em andamento) quando a CKE for reduzida, a SDRAM entrará automaticamente no modo de desligamento, consumindo energia mínima até que a CKE seja aumentada novamente. Isso não deve durar mais do que o intervalo máximo de atualização t$_{REF}$, ou o conteúdo da memória pode ser perdido. É legal para o relógio completamente durante esse período para economia de energia adicional.
Finalmente, se o CKE for reduzido ao mesmo tempo em que um comando de atualização automática é enviado para a SDRAM, a SDRAM entra no modo de atualização automática. Isso é como desligar, mas a SDRAM usa um temporizador no chip para gerar ciclos de atualização internos conforma necessário. O relgócio pode ser parado durante esete tempo. Embora o modo de atualização automática consuma um pouco mais de energia do que o modo de desligamento, ele permite que o controlador de memória seja totalmente desativado, o que geralmente compensa a diferença.
A SDRAM proejtada para dispositivos alimentados por bateria oferece algumas opções adicionais de economia de energia. Uma é a autalização dependente da temperatura; um sensor de temperatura no chip reduz a taxa de atualização em temperaturas mais baixas, em vez de sempre executá-lo na taxas de pior caso. Outra é a autalização seletiva, que limita a atualização automática a uma parte da matriz DRAM. A fração que é atualizada é configurada usando um registro de modo estendido. O terceiro, implementado em Mobile DDR (LPDDR) e LPDDR2 é o modo "deep power down", que invalida a memória e requer reinicialização completa para sair. Isso é ativado enviando um comando de "terminação em rajada" ao diminuir o CKE.

## Arquitetura de pré-busca DDR SDRAM

DDR SDRAM emprega arquitetura de pré-busca para permitir acesso rápido e fácil a várias palavras de dados localizados em uma linha física comum na memória.
A arquitetura de pré-busca apreoveita as características específicas dos acessos de memória à DRAM. As operações típicas de memória DRAM envolvem três fases: pré-carga da linha de bits, acesso à linha, acesso à coluna. O acesso à linha é o coração de uma operação de leitura, pois envolve a detecção cuidados dos pequenos sinais nas células de memória DRAM; é a fase mais lenta da operação da memória. No entanto, uma vez que uma linha é lida, os acessos de coluna subsequentes a essa mesma linha podem ser muito rápidos, pois os amplificadores de detecção também atuam como travas. Para referência, uma linha de um dispositivo DDR3 de 1 Gbit tem 2.048 bits de largura, então internamente 2.048 bits são lidos em 2.048 amplificadores de detecção separados durante a fase de acesso à linha. Acessos de linha podem levar 50 ns, dependendo da velocidade da DRAM, enquanto os acessos de coluna de uma linha aberta são inferiores a 10 ns.
As arquiteturas tradicionais de DRAM há muito suportam acesso rápido de coluna a bits em uma linha aberta. Para um chip de memória de 8 bits com uma linha de 2.048 bits, os acessos a qualquer uma das 256 palavras de dados (2048/8) na linha podem ser muito rápidos, desde que não ocorram acessos intermediários a outras linhas.
A desvantagem do antigo método de acesso rápido a colunas era que um novo endereço de coluna precisava ser enviado para cada palavra de dados adicional na linha. O barramento de endereços tinha que operar na mesma frequência que o barramento de dados. A arquitetura de pré-busca simplifica esse processo, permitindo que uma única solicitação de endereço resulte em várias palavras de dados.
Em uma arquitetura de buffer de pré-busca, quando um acesso à memória ocorre em uma linha, o buffer pega um conjunto de palavras de dados adjacentes na linha e as lê ("explode") em sequência rápida nos pinos de E/S, sem a necessidade de solicitação de endereço de coluna individual. Isso pressupões que a CPU deseja palavras de dados adjacentes na memória, o que na prática é muito frequente. Por exemplo, em DDR1, duas palavras de dados adjacentes serão lidas de cada chip no mesmo ciclo de clock e colocadas no buffer de pré-busca. Cada palavras será então transmitida em bordas ascendentes e descendentes consecutivas do ciclo de clock. Da mesma forma, em DDR2 com um buffer de pré-busca 4n, quatro palavras de dados consecutivas são lidas e colocadas no buffer enquanto um clock, que é duas vezes mais rápido que o clock interno do DDR.
A profundidade do buffer de pré-busca também pode ser considerada como a razão entre a frequência da memória do núcleo e a frequência de E/S. Em uma arquitetura de pré-busca 8n (como DDR3), as E/S operarão 8 vezes mais rápido que o núcleo de memória (cada acesso à memória resulta em uma explosão de 8 palavras de dados no E/S). Assim, um núcleo de memória de 200 MHz é combinado com IOs que operam oito vezes mais rápido (1600 megabits por segundo). Se a memória tiver 16 E/S, a largura de banda total de leitura seria 200 MHz x 8 palavras de dados/acesso x 16 E/S = 25,6 gigabits por segundo (Gbit/s) ou 3,2 gigabyes por segundo (GB/s). Módulos com vários chips DRAM podem fornecer largura de banda correspondentmente maior.
Cada geração de SDRAM tem um tamanho de buffer de pré-busca diferente:
* O tamanho do buffer de pré-busca de DDR SDRAM é 2n (duas palavras de dados por acesso à memória)
* O tamanho do buffer de pré-busca de DDR2 SDRAM é 4n (quatro palavras de dados por acesso à memória)
* O tamanho do buffer de pré-busca de DDR3 SDRAM é 8n (oito palavras de dados por acesso à memória)
* O tamanho do buffer de pré-busca de DDR4 SDRAM é 8n (oito palavras de dados por acesso à memória)
* O tamanho do buffer de pré-busca de DDR5 SDRAM é 8n; existe um modo adicional 16n

## Gerações

Mapa de recursos SDRAM :
| Modelo | Alterações de recursos |
| SDRAM | Vcc = 3.3 VSinal: LVTTL |
| DDR1 | O acesso é ≥2 palavrasDuplo clockVcc = 2.5 V2.5 - 7.5 ns por cicloSinal: SSTL_2 (2.5V) |
| DDR2 | O acesso é ≥4 palavras "Termina em rajada" removida 4 unidades usadas em paralelo 1.25 - 5 ns por ciclo As operações internas estão em 1/2 da taxa de clock. Sinal: SSTL_18 (1.8V) |
| DDR3 | O acesso é ≥8 palavras Sinal: SSTL_15 (1.5V) Latências CAS muito mais longas |
| DDR4 | Vcc ≤ 1.2 V ponto a ponto (módulo único por canal) |

### SDR

Originalmente conhecido simplesmente como SDRAM, SDRAM de taxa de dados única pode aceitar um comando e transferir uma palavra de dados por ciclo de clock. Os chips são feitos com uma variedade de tamanhos de barramento de dados (mais comumente 4, 8 ou 16 bits), mas os chips são geralmente montados em DIMMs de 168 pinos que lêem ou gravam 64 (não-ECC) ou 72 (ECC) bits por vez.
O uso do barramento de dados é complicado e, portanto, requer um circuito controlador DRAM complexo. Isso ocorre porque os dados gravados na DRAM devem ser apresentados no mesmo ciclo que o comando de gravação, mas as leituras produzem saída 2 ou 3 ciclos após o comando de leitura. O controlador DRAM deve garantir que o barramento de dados nunca seja necessário para leitura e gravação ao mesmo tempo.
As taxas de clock SDR SDRAM típicas são 66, 100 e 133 MHz (períodos de 15, 10 e 7,5 ns), respectivamente denotados por PC66, PC100 e PC133. Taxas de clock de até 200 MHz estava disponíveis. Funciona com uma tensão de 3,3V.
Este tipo de SDRAM é mais lento que as variantes DDR, porque apenas uma palavra de dados é transmitida por ciclo de clock (taxa de dados única), Mas esse tipo também é mais rápido que seus predecessores DRAM estendido (EDO-DRAM) e DRAM de modo de página rápida (FPM-RAM), que normalmente levava dois ou três relógios para transferir uma palavra de dados.

#### PC66

PC66 refere-se ao padrão de memória interna removível do computador definido pelo JEDEC. PC66 é uma DRAM síncrona operando em uma freqüência de clock de 66,66 MHz, em um barramento de 64 bits, a uma voltagem de 3,3 V. O PC66 está disponível nos formatos DIMM de 168 pinos e SO-DIM de 144 pinos. A largura de banda teórica é de 533 MB/s. (1 MB/s = um milhão de bytes por segundo)
Este padrão foi usado por PCs baseados em Intel Pentium e AMD K6. Ele também está disponível no Beige Power Macintosh G3, nos primeiros IBook e no PowerBook G3. Ele também é usado em muitos dos primeiros sistemas Intel Celeron com um FSB de 66 MHz. Foi substituído pelos padrões PC100 e PC133.

#### PC100

PC100 é um padrão para memória interna removível de acesso aleatório de computador, definida pelo JEDEC. PC100 refere-se a DRAM síncrona operando em uma frequência de clock de 100 MHz, em um barramento de 64 bits, a uma tensão de 3,3 V. PC100 está disponível em formatos DIMM de 168 e SO-DIMM de 144. O PC100 é compatível com o PC66 e foi substituído pelo padrão PC133.
Um módulo construído com chips SDRAM de 100 MHz nao é necessáriamente capaz de operar a 100 MHz. O padrão PC100 especifica os recursos do módulo de memória como um todo. O PC100 é usado em muitos computadores mais antigos; Os PCs no final dos anos 90 eram os computadores mais comuns com memória PC100.

#### PC133

PC133 é um padrão de memória de computador definido pelo JEDEC. PC133 refere-se a SDR SDRAM operando em uma freqüência de clock de 133 MHz, em um barramento de 64 bits, a uma voltagem de 3,3 V. PC133 está disponível nos formatos DIMM de 168 pinos e SO-DIMM de 144 pinos. O PC133 é o padrão SDR SDRAM mais rápido e final já aprovado pelo JEDEC e oferece uma largura de banda de 1,066 GB por segundo ([133,33 MHz * 64/8]=1,066 GB/s). (1 GB/s = um bilhão de bytes por segundo) O PC133 é compatível com versões anteriores do PC100 e PC66.

### DDR

Embora a latência de acesso da DRAM seja fundamentalmente limitada pela matriz DRAM, a DRAM tem largura de banda potencial muito alta porque cada leitura interna é na verdade uma linha de muitos milhares de bits. Para tornar mais essa largura de banda disponível para os usuários foi desenvolvida uma interface de taxa de dados dupla. Isso usa os mesmos comandos, aceitos uma vez por ciclo, mas lê ou grava duas palavras de dados por ciclo de clock. A interface DDR faz isso lendo oe gravando dados nas bordas ascendente e descendente do sinal de clock. Além disso, algumas pequenas alterações no tempo da interface SDR foram feitas em retrospectiva, e a tensão de alimentação foi reduzida de 3,3 para 2,5 V. Como resultado, DDR SDRAM não é compatível com SDR SDRAM.
DDR SDRAM (às vezes chamado de DDR1 para maior clareza) duplica a unidade mínima de leitura ou gravação; cada acesso refere-se a pelo menos duas palavras consecutivas.
As taxas de clock de SDRAM DDR típicas são 133, 166 e 200 MHz (7,5, 6 e 5 ns/ciclo), geralmente descritas como DDR-266, DDR-333 e DDR-400 (3,75, 3 e 2,5 ns por batida). Os DIMMs de 184 pinos correspondentes são conhecidos com PC-2100, PC-2700 e PC-3200. Desempenho até DDR-550 (PC-4400) está disponível.

### DDR2

A SDRAM DDR2 é muito semelhante à SDRAM DDR, mas dobra a unidade mínima de leitura ou gravação, para quatro palavras consecutivas. O protocolo de barramento também foi simplificado para permitir uma operação de maior desempenho. (Em particular, o comando "terminar em rajada" é excluído.) Isso permite que a taxa de barramento da SDRAM seja dobrada sem aumentar a taxa de clock das operações internas da RAM; em vez disso, as operações internas são executadas em unidades quatro vezes maiores que a SDRAM. Além disso, um pino de endereço de bando extra (BA2) foi adicionado para permitir oito bancos em grandes chips de RAM.
As taxas de clock de SDRAM DDR2 típicas são 200, 266, 333 ou 400 MHz (períodos de 5, 3,75, 3 e 2,5 ns), geralmente descritos como DDR2-400, DDR2-533, DDR2-667 e DDR2-800 (períodos de 2,5, 1,875, 1,5 e 1,25 ns). Os DIMMs de 240 pinos correspondentes são conhecidos como PC2-3200 a PC2-6400. A SDRAM DDR2 agora está disponível a uma freqüência de 533 MHz geralmente descrita como DDR2-1066 e os DIMMs correspondentes são conhecidos como PC2-8500 (também denominadao PC2-8600 dependendo do fabricante). Desempenho até DDR2-1250 (PC2-10000) está disponível.
Observe que, como as operações internas estão em 1/2 da taxa de clock, a memória DDR2-400 (taxa de clock interna de 100 MHz) tem uma latência um pouco maior do que a DDR-400 (taxa de clock interna de 200 MHz).

### DDR3

DDR3 continua a tendência, dobrando a unidade mínima de leitura ou gravação para oito palavras consecutivas. Isso permite outra duplicação da largura de banda e da taxa de barramento externo sem ter que alterar a taxa de clock das operações internas, apenas a largura. Para manter 800-1600 M de transferências/s (ambas as bordas de um clock de 400-800 MHz), a matriz RAM interna precisa realizar 100-200 M buscas por segundo.
Novamente, a cada duplicação, a desvantagem é o aumento da latência. Como em totdas as gerações de SDRAM SDR, os comandos ainda estão restritos a uma borda de clock e as latências de comando são fornecidas em termos de ciclos de clock, que são metade da velocidade da taxa de transferência normalmente citada (uma latência CAS de 8 com DDR3-800 é 8/ (400 MHz) = 20 ns, exatamente a mesma latência do CAS2 no PC100 SDR SDRAM).
Os chips de memória DDR3 estão sendo fabricados comenercialmente, e os sistemas de computador que os utilizam estavam disponíveis a partir do segundo semestre de 2007, com uso significativo a partir de 2008. As freqüências iniciais eram de 400 e 533 MHz, que são descritas como DDR3-800 e DDR3-1066 (módulos PC3-6400 e PC3-8500), mas 667 e 800 MHz, descritas como DDR3-1333 e DDR3-1600 (Módulos PC3-10600 e PC3-12800) agora são comuns. Desempenho até DDR3-2800 (módulos PC3 22400) estão disponíveis.

### DDR4

A SDRAM DDR4 é a sucessodra da DDR3 SDRAM. Ele foi revelado no Intel Developer Forum em São Francisco em 2008, e deveria ser lançado no mercado em 2011. O tempo variu consideravelmente durante seu desenvolvimento - originalmente esperava-se que fosse lançado em 2012, e posteriormente (durante 2010) previsto para ser lançado em 2015, antes que as amostras fosse anunciadas no início de 2011 e os fabricantes começassem a anunciar que a produção comercial e lançamento no mercado estava previsto para 2012. DDR4 alcançou a adoção em massa do mercado por volta de 2015, o que é comparável com aproximadamente cinco anos para o DDR3 alcançar a transição em massa do mercado sobre o DDR2.
Os chips DDR4 funcionam a 1,2V ou menos, em comparação com os 1,5 V dos chips DDR3 e têm mais de 2 bilhões de transferência de dados por segundo. Esperava-se que eles fosse introduzidos em taxas de frequência de 2133 MHz, estimados em um potencial de 4266 MHzref>«Next-Generation DDR4 Memory to Reach 4.266GHz - Report». Xbitlabs.com. 16 de agosto de 2010. Consultado em 22 de janeiro de 2022. Arquivado do original em 19 de dezembro de 2010 </ref> e tensão reduzida de 1,05 V até 2013.
DDR4 não dobrou a largura de pré-busca interna novamente, mas usa a mesma pré-busca de 8 n que DDR3. Assim, será necessário intercalar leituras de vários bancos para manter o barramento de dados ocupado.
Em fevereiro de 2009, a Samsung validou os chips de 40 nm, considerando um "passo significativo" para o desenvolvimento do DDR4 já que, a partir de 2009, os chips DRAM atuais estavam apenas começando a migrar para um processo de 50 nm. Em janeiro de 2011, a Samsung anunciou a conclusão e lançamento para teste de um módulo DRAM DDR4 de 30 nm 2048 MB. Ele tem uma largura de banda máxima de 2,13 Gbit/s a 1,2 V, usa tecnologia de drenagem pseudoaberta e consome 40% menos energia do que um módulo DDR3 equivalente.

### DDR5

Em março de 2017, a JEDEC anunciou que um padrão DDR5 está em desenvolvimento, mas não forneceu detalhes, excerto os objetivos de dobrar a largura de banda do DDR4, reduzir o consumo de energia e publicar o padrão em 2018. O padrão foi lançado em 14 de julho de 2020.

## Sucessores com falha

Além do DDR, havia várias outras tecnologias de memória propostas para suceder o SDR SDRAM.

### Rambus DRAM (RDRAM)

A RDRAM era uma tecnologia proprietária que competica com a DDR. Seu preço relativamente alto e desempenho decepcionante (resultante de altas latências e um canal de dados estreito de 16 bits versus o canal de 64 bits do DDR) fez com que ele perdesse a corrida para ter sucesso no SDR SDRAM.

### DRAM de link síncrono (SLDRAM)

SLDRAM ostentava maior desempenho e competiu contra RDRAM. Foi desenvolvido no final da década de 1990 pelo Consórcio SLDRAM. O Consórcio SLDRAM consistia em cerca de 20 grandes fabricantes de DRAM e da indústria de computadores. (O SLDRAM Consortium foi incorporado como SLDRAM Inc. e depois mudou o nome para Advanced Memory International, Inc.). SLDRAM era um padrão aberto e não exigia taxas de licenciamento. As especificações exigiam um barramento de 64 bits rodando em uma frequência de clock de 200, 300 ou 400 MHz. Isso é alcançado por todos os sinais estarem na mesma linha e, assim, evitar o tempo de sincronização de várias linhas. Como DDR SDRAM, SLDRAM usa um barramento de bombeamento duplo, dando-lhe uma velocidade efetiva de 400, 600, ou 800 MT/s. (1 MT/s = 1000^2 transferências por segundo)
A SLDRAM usou um barramento de comando de 11 bits (10 bits de comando CA9:0 mais uma linha FLAG de início de comando) para transmitir pacores de comando de 40 bits em 4 bordas consecutivas de um relógio de comando diferencial (CCLK/CCLK#). Ao contrário da SDRAM, não havia sinais de seleção por chip; cada chip recebeu um ID quando resetado, e o comando continha o ID do chip que deveria processá-lo. Os dados foram transferidos em rajadas de 4 ou 8 palavras através de um barramento de dados de 18 bits (por chip), usando um dos dois relógios de dados diferencias (DCLK0/DCLK0# e DCLK1/DCLK1#). Ao contrário da SDRAM padrão, o relógio foi gerado pela fonde de dados (o chip SLDRAM no caso de uma operação de leitura) e transmitido na mesma direção de dados, reduzindo bastante a distorção de dados. Para evitar a necessidade de uma pausa quando a origem do DCLK foi alterada, cada comando especificou qual par de DCLK usaria.
O comando básico de leitura/gravação consistia em (começando com CA9 da primeira palavra):
SLDRAM Ler, escrever ou pacote de solicitação de operação de linha :
| FLAG | CA9 | CA8 | CA7 | CA6 | CA5 | CA4 | CA3 | CA2 | CA1 | CA0 |
| 1 | ID8 | ID de dispositivo | ID de dispositivo | ID de dispositivo | ID de dispositivo | ID de dispositivo | ID de dispositivo | ID de dispositivo | ID0 | CMD5 |
| 0 | Código de comando | Código de comando | Código de comando | Código de comando | CMD0 | Banco | Banco | Banco | Fileira | Fileira |
| 0 | Linha (continuação) | Linha (continuação) | Linha (continuação) | Linha (continuação) | Linha (continuação) | Linha (continuação) | Linha (continuação) | Linha (continuação) | Linha (continuação) | 0 |
| 0 | 0 | 0 | 0 | Coluna | Coluna | Coluna | Coluna | Coluna | Coluna | Coluna |
* 9 bits de ID do dispositivo
* 6 bits de comando
* 3 bits de endereço do banco
* 10 ou 11 bits de endereço de linha
* 5 ou 4 bits sobressalentes para expansão de linha ou coluna
* 7 bits de endereço de coluna
Dispositivos individuais tinham IDs de 8 bits. O 9º bit do ID enviado em comandos foi usado para endereçar vários dispositivos. Qualquer grupo alinhado de tamanho de potência de 2 pode ser abordado. Se o msbit transmitido foi definido, todos os bits menos significativos até e incluindo o bit 0 menos significativo do enderço transmitido foram ignorados para "isto é endereçado a mim?" propósitos. (Se o bit ID8 for realmente considerado menos significativo que o ID0, a correspondência de endereço unicast torna-se um caso especial desse padrão.)
Um comando de leitura/gravação tinha o msbit claro:
* CMD5=0
* CMD4=1 para abrir (ativar) a linha especificada; CMD4=0 para usar a linha atualmente aberta
* CMD3=1 para transferir uma rajada de 8 palavras; CMD3=0 para uma rajada de 4 palavras
* CMD2=1 para uma gravação, CMD2=0 para uma leitura
* CMD1=1 para fechar a linha após este acesso; CMD1=0 para deixá-lo aberto
* CMD0 seleciona o par DCLK a ser usado (DCLK1 ou DCLK0)
Uma omissão notável da especificação foi a habilitação de gravação por byte; foi projetado para sistemas com caches e memória ECC, que sempre escrevem em múltiplos de uma linha de cache.
Comandos adicionais (com conjunto CMD5) abriram e fecharam linhas sem transferência de dados, executaram operações de atualização, leram ou gravaram registros de configuração e execuratam outras operações de manutenção. A maioria desses comandos suportava um sub-ID adicional de 4 bits (enviado como 5 bits, usando a mesma codificação de destino múltiplo que o ID primário) que poderia ser usado para distinguir dispositivos que receberam o mesmo ID primário porque estavam conectados em paralelo e sempre lido/escrito ao mesmo tempo.
Havia vários registradores de controle de 8 bits e registradores de status de 32 bits para controlar vários parâmentros de temporização do dispositivo.

### Memória de canal virtual (VCM) SDRAM

O VCM era um tipo proprietário de SDRAM que foi projetado pela NEC, mas lançado como um padrão aberto sem taxas de licenciamento. É compatível com pinos com SDRAM padrão, mas os comandos são diferentes. A tecnologia era um concorrente potencial do RDRAM porque o VCM não era tão caro quanto o RDRAM. Um módulo de memória de canal virtual (VCM) é compatível mecânica e eletricamente com SDRAM padrão, portanto, o suporte para ambos depende apenas dos recursos do controlador de memória. No final da década de 1990, vários chipsets para PC northbridge (como os populares VIA KX133 e KT133) incluíam suporte a VCSDRAM.
O VCM insere um cache SRAM de 16 buffers de "canal", cada "segmento" de 1/4 de linha de tamanho, entre as linhas do amplificador de detecção dos bancos DRAM e os pinos de E/S de dados. Os comandos "Prefetch" e o "restore", excluidos do VCSDRAM, copiam dados entre a linha do amplificador de detecção da DRAM e os buffers do canal, enquanto o equivalente dos comandos de leitura e gravação da SDRAM especificam um número de canal para acessar. As leituras e gravações podem, portanto, ser executadas independentemente do estado atualmente ativo da matriz DRAM, com o equivalente a quatro linhas DRAM completas sendo "abertas" para acesso de cada vez. Esta é uma melhoria em relação às duas linhas abertas possíveis em uma SDRAM padrão de dois bancos. (Na verdade, existe um 17º "canal fictício" usado para algumas operações.)
Para ler a partir de VCSDRAM, após o comando ativo, é necessário um comando de "pré-busca" para copiar os dados da metriz do amplificador de detecção para o canal SDRAM. Este comando especifica um banco, dois bits de endereço de coluna (para selecionar o segmento da linha) e quatro bits de número de canal. Uma vez que isso é realizado, a matriz DRAM pode ser pré-carregada enquanto os comandos de leitura para o buffer do canal continuam. Para gravar, primeiro os dados são gravados em um buffer de canal (normalmente inicializado anteriormente usando um comando de pré-busca), depois um comando de restauração, com os mesmos parâmentros do comando de pré-busca, copia um segmento de dados do canal para a matriz do amplificador de detecção.
Ao contrário de uma gravação SDRAM normal, que deve ser executada em uma linha ativa (aberta), o banco VCSDRAM deve ser pré-carregado (fechado) quando o comando de restauração é emitido. Um comando ativo imediatamente após o comando de restauração especifica que a linha DRAM conclui a gravação na matriz DRAM. Há, além disso, um 17º "canal fictício" que permite gravações na linha atualmente aberta. Ele não pode ser lido, mas pode ser pré-buscado, gravado e restaurado na matriz do amplificador de detecção.
Embora normalmente um segundo seja restaurado para o mesmo endereço de memória de onde foi pré-buscado, os buffers de canal também podem ser usados para uma cópia ou limpeza muito eficiente de blocos de memória grandes e alinhados. (O uso de segmentos de um quatro de linha é impulsionado pelo fato de que as células DRAM são mais estreitas do que as células SRAM. Os bits SDRAM são projetados para ter quatro bits DRAM de largura e são convenientemente conectados a um dos quatro bits DRAM que abrangem.) Adicional comandos pré-busca um par de segmentos para um par de canais e um comando opcional combina pré-busca, leitura e pré-carregamento para reduzir a sobrecarga de leituras aleatórias.
Os comandos acima são padronizados por JEDEC. Os chips anteriores não suportavam o canal fictício ou a pré-busca de par e usavam umacodificação diferente para pré-carga.
Um barramento de endereços de 13 bits, conforme ilustrado aqui, é adeuqado para um dispositivo de até 128 Mbit. Possui dois bancos, cada um contendo 8.192 linhas e 8.192 coluna. Assim, endereços de linha são 13 bits, endereços de segmento são dois bits e oito bits de endereço de coluna sao necessários para selecionar um byte dos 2.048 bits (256 bytes) em um segmento.

## RAM de gráficos síncronos (SGRAM)

A RAM de gráficos síncronos (SGRAM) é uma forma especializada de SDRAM para adaptadores gráficos. Ele é projetado para tarefas relacionadas a gráficos, como memória de textura e framebuffers, encontrados em placas de vídeo. Ele adiciona funções como mascaramento de bits (escrevendo em um plano de bits especificado sem afetar os outros) e gravação de bloco (preenchendo um bloco de memória com uma única cor). Ao contrário da VRAM e WRAM, a SGRAM é de porta única. No entanto, ele pode abrir duas páginas de memória ao mesmo tempo, o que simula a natureza de porta dupla de outras tecnologias de RAM de vídeo.
As primeiras memórias SGRAM conhecidas são chips de 8 Mbit que datam de 1994: o Hitachi HM5283206, introduzido em novembro de 1994, e o NEC μPD481850, introduzido em dezembro de 1994. O primeiro dispositivo comercial conhecido a usar SGRAM é o console de videogame PlayStation (PS) da Sony, começando com o modelo japonês SCPH-5000 lançado em dezembro de 1995, usando o chip NEC μPD481850.

### SDRAM de taxa de dados dupla gráfica (GDDR SDRAM)

SDRAM de taxa de dados dupla de gráficos (GDDR SDRAM) é um tipo especializado de DDR SDRAM projetado para ser usado ocmo memória principal de unidades de processamento gráfico (GPUs). GDDR SDRAM é diferente dos tipos de commodities de DDR SDRAM, como DDR3, embora compartilhem algumas tecnologias principais. SUas principais características são frequências de clock mais altas tanto para o núcleo DRAM quanto para a interface de E/S, o que fornece maior largura de banda de memória para GPUs. A partir de 2018, existem seis gerações sucessivas de GDDR: GDDR2, GDDR3, GDDR4, GDDR5 e GDDR5X, GDDR6.
GDDR foi inicialmente conhecido como DDR SGRAM. Foi introduzido comercialmente como um chip de memória de 16 Mbit pela Samsung Electronics em 1998.

## Memória de alta largura de banda (HBM)

High Bandwidth Memory (HBM) é uma interface RAM de alto desempenho para SDRAM empilhada em 3D da Samsung, AMD e SK Hynix. Ele foi projetado para ser usado em conjunto com aceleradores gráficos de alto desempenho e dispositivo de rede. O primeiro chip de memória HBM foi produzido pela SK Htynix em 2013.

## Linha do tempo
### SDRAM

Memória de acesso aleatório dinâmica síncrona (SDRAM) :
| Data de lançamento | Nome do chip | Capacidade (bits) | Tipo de SDRAM | Fabricante(s) | Processo | MOSFET | Área |
| 1992 | KM48SL2000 | 16 Mbit | SDR | Samsung | ? | CMOS | ? |
| 1996 | MSM5718C50 | 18 Mbit | RDRAM | Oki | ? | CMOS | 325 mm$^2$ |
| 1996 | N64 RDRAM | 36 Mbit | RDRAM | NEC | ? | CMOS | ? |
| 1996 | ? | 1024 Mbit | SDR | Mitsubishi | 150 nm | CMOS | ? |
| 1997 | ? | 1024 Mbit | SDR | Hyundai | ? | SOI | ? |
| 1998 | MD5764802 | 64 Mbit | RDRAM | Oki | ? | CMOS | 325 mm$^2$ |
| 1998 !Março de 1998 | Direct RDRAM | 72 Mbit | RDRAM | Rambus | ? | CMOS | ? |
| 1998 !junho de 1998 | ? | 64 Mbit | DDR | Samsung | ? | CMOS | ? |
| 1998 | ? | 64 Mbit | DDR | Hyundai | ? | CMOS | ? |
| 1998 | ? | 128 Mbit | SDR | Samsung | ? | CMOS | ? |
| 1999 | ? | 128 Mbit | DDR | Samsung | ? | CMOS | ? |
| 1999 | ? | 1024 Mbit | DDR | Samsung | 140 nm | CMOS | ? |
| 2000 | GS eDRAM | 32 Mbit | eDRAM | Sony, Toshiba | 180 nm | CMOS | 279 mm$^2$ |
| 2001 | ? | 288 Mbit | RDRAM | Hynix | ? | CMOS | ? |
| 2001 | ? | ? | DDR2 | Samsung | 100 nm | CMOS | ? |
| 2002 | ? | 256 Mbit | SDR | Hynix | ? | CMOS | ? |
| 2003 | EE+GS eDRAM | 32 Mbit | eDRAM | Sony, Toshiba | 90 nm | CMOS | 86 mm$^2$ |
| 2003 | ? | 72 Mbit | DDR3 | Samsung | 90 nm | CMOS | ? |
| 2003 | ? | 512 Mbit | DDR2 | Hynix | ? | CMOS | ? |
| 2003 | ? | 512 Mbit | DDR2 | Elpida | 110 nm | CMOS | ? |
| 2003 | ? | 1024 Mbit | DDR2 | Hynix | ? | CMOS | ? |
| 2004 | ? | 2048 Mbit | DDR2 | Samsung | 80 nm | CMOS | ? |
| 2005 | EE+GS eDRAM | 32 Mbit | eDRAM | Sony, Toshiba | 65 nm | CMOS | 86 mm$^2$ |
| 2005 | Xenos eDRAM | 80 Mbit | eDRAM | NEC | 90 nm | CMOS | ? |
| 2005 | ? | 512 Mbit | DDR3 | Samsung | 80 nm | CMOS | ? |
| 2006 | ? | 1024 Mbit | DDR2 | Hynix | 60 nm | CMOS | ? |
| 2008 | ? | ? | LPDDR2 | Hynix | ? | CMOS | ? |
| 2008 !Abril de 2008 | ? | 8192 Mbit | DDR3 | Samsung | 50 nm | CMOS | ? |
| 2008 | ? | 16384 Mbit | DDR3 | Samsung | 50 nm | CMOS | ? |
| 2009 | ? | ? | DDR3 | Hynix | 44 nm | CMOS | ? |
| 2009 | ? | 2048 Mbit | DDR3 | Hynix | 40 nm | CMOS | ? |
| 2011 | ? | 16384 Mbit | DDR3 | Hynix | 40 nm | CMOS | ? |
| 2011 | ? | 2048 Mbit | DDR4 | Hynix | 30 nm | CMOS | ? |
| 2013 | ? | ? | LPDDR4 | Samsung | 20 nm | CMOS | ? |
| 2014 | ? | 8192 Mbit | LPDDR4 | Samsung | 20 nm | CMOS | ? |
| 2015 | ? | 12 Gbit | LPDDR4 | Samsung | 20 nm | CMOS | ? |
| 2018 | ? | 8192 Mbit | LPDDR5 | Samsung | 10 nm | FinFET | ? |
| 2018 | ? | 128 Gbit | DDR4 | Samsung | 10 nm | FinFET | ? |

### SGRAM e HBM

Memória de acesso aleatório de gráficos síncronos (SGRAM) e memória de alta largura de banda (HBM) :
| Data de introdução | Nome do chip | Capacidade (bits) | Tipo de SDRAM | Fabricante(s) | Processo | MOSFET | Área |
| 1994 !Novembro de 1994 | HM5283206 | 8 Mbit | SGRAM (SDR) | Hitachi | 350 nm | CMOS | 58 mm$^2$ |
| 1994 !dezembro de 1994 | μPD481850 | 8 Mbit | SGRAM (SDR) | NEC | ? | CMOS | 280 mm$^2$ |
| 1997 | μPD4811650 | 16 Mbit | SGRAM (SDR) | NEC | 350 nm | CMOS | 280 mm$^2$ |
| 1998 !setembro de 1998 | ? | 16 Mbit | SGRAM (GDDR) | Samsung | ? | CMOS | ? |
| 1999 | KM4132G112 | 32 Mbit | SGRAM (SDR) | Samsung | ? | CMOS | ? |
| 2002 | ? | 128 Mbit | SGRAM (GDDR2) | Samsung | ? | CMOS | ? |
| 2003 | ? | 256 Mbit | SGRAM (GDDR2) | Samsung | ? | CMOS | ? |
| 2003 | ? | 256 Mbit | SGRAM (GDDR3) | Samsung | ? | CMOS | ? |
| 2005 !março de 2005 | K4D553238F | 256 Mbit | SGRAM (GDDR) | Samsung | ? | CMOS | 77 mm$^2$ |
| 2005 !outubro de 2005 | ? | 256 Mbit | SGRAM (GDDR4) | Samsung | ? | CMOS | ? |
| 2005 | ? | 512 Mbit | SGRAM (GDDR4) | Hynix | ? | CMOS | ? |
| 2007 | ? | 1024 Mbit | SGRAM (GDDR5) | Hynix | 60 nm | CMOS | ? |
| 2009 | ? | 2048 Mbit | SGRAM (GDDR5) | Hynix | 40 nm | CMOS | ? |
| 2010 | K4W1G1646G | 1024 Mbit | SGRAM (GDDR3) | Samsung | ? | CMOS | 100 mm$^2$ |
| 2012 | ? | 4096 Mbit | SGRAM (GDDR3) | SK Hynix | ? | CMOS | ? |
| 2013 | ? | ? | HBM | SK Hynix | ? | CMOS | ? |
| 2016 !março de 2016 | MT58K256M32JA | 8 Gbit | SGRAM (GDDR5X) | Micron | 20 nm | CMOS | 140 mm$^2$ |
| 2016 !junho de 2016 | ? | 32 Gbit | HBM2 | Samsung | 20 nm | CMOS | ? |
| 2017 | ? | 64 Gbit | HBM2 | Samsung | 20 nm | CMOS | ? |
| 2018 !janeiro de 2018 | K4ZAF325BM | 16 Gbit | SGRAM (GDDR6) | Samsung | 10 nm | FinFET | ? |