Atualização de memória - Memory refresh

A atualização da memória é o processo de ler informações periodicamente de uma área da memória do computador e reescrever imediatamente as informações lidas na mesma área sem modificação, com o objetivo de preservar as informações. A atualização da memória é um processo de manutenção em segundo plano necessário durante a operação da memória de acesso aleatório dinâmica de semicondutor (DRAM), o tipo de memória de computador mais amplamente usado e, de fato, é a característica definidora dessa classe de memória.

Em um chip DRAM, cada bit de dados de memória é armazenado como a presença ou ausência de uma carga elétrica em um pequeno capacitor no chip. Com o passar do tempo, as cargas nas células de memória vazam, portanto, sem serem atualizados, os dados armazenados acabariam sendo perdidos. Para evitar isso, o circuito externo lê periodicamente cada célula e as reescreve, restaurando a carga do capacitor ao seu nível original. Cada ciclo de atualização de memória atualiza uma área sucessiva de células de memória, atualizando repetidamente todas as células em um ciclo consecutivo. Este processo é conduzido automaticamente em segundo plano pelos circuitos de memória e é transparente para o usuário. Enquanto um ciclo de atualização está ocorrendo, a memória não está disponível para operações normais de leitura e gravação, mas na memória moderna esse tempo de "sobrecarga" não é grande o suficiente para diminuir significativamente a operação da memória.

Memória eletrônica que não requer atualização está disponível, chamada memória de acesso aleatório estática (SRAM). Os circuitos SRAM requerem mais área em um chip, porque uma célula de memória SRAM requer de quatro a seis transistores , em comparação com um único transistor e um capacitor para DRAM. Como resultado, a densidade de dados é muito mais baixa em chips SRAM do que em DRAM, e SRAM tem um preço mais alto por bit. Portanto, a DRAM é usada como memória principal em computadores, consoles de videogame, placas gráficas e aplicativos que requerem grande capacidade e baixo custo. A necessidade de atualização de memória torna a temporização e os circuitos da DRAM significativamente mais complicados do que os circuitos da SRAM, mas a densidade e as vantagens de custo da DRAM justificam essa complexidade.

Como funciona a atualização DRAM

Enquanto a memória está operando, cada célula de memória deve ser atualizada repetidamente, dentro do intervalo máximo entre as atualizações especificado pelo fabricante, que geralmente está na região dos milissegundos. A atualização não emprega as operações normais de memória (ciclos de leitura e gravação) usadas para acessar dados, mas ciclos especializados chamados ciclos de atualização que são gerados por circuitos de contador separados no circuito de memória e intercalados entre acessos de memória normais.

As células de armazenamento em um chip de memória são dispostas em uma matriz retangular de linhas e colunas. O processo de leitura na DRAM é destrutivo e remove a carga das células de memória em uma linha inteira, portanto, há uma linha de travas especializadas no chip chamadas amplificadores de detecção , uma para cada coluna de células de memória, para reter temporariamente os dados. Durante uma operação de leitura normal, os amplificadores de detecção, após ler e travar os dados, reescrevem os dados na linha acessada antes de enviar o bit de uma única coluna para a saída. Isso significa que os eletrônicos de leitura normal no chip podem atualizar uma fileira inteira de memória em paralelo, acelerando significativamente o processo de atualização. Um ciclo normal de leitura ou gravação atualiza uma linha de memória, mas os acessos normais à memória não podem ser considerados para atingir todas as linhas dentro do tempo necessário, necessitando de um processo de atualização separado. Em vez de usar o ciclo normal de leitura no processo de atualização, para economizar tempo, um ciclo abreviado denominado ciclo de atualização é usado. O ciclo de atualização é semelhante ao ciclo de leitura, mas é executado mais rapidamente por dois motivos:

  • Para uma atualização, apenas o endereço de linha é necessário, portanto, um endereço de coluna não precisa ser aplicado aos circuitos de endereço do chip.
  • Os dados lidos das células não precisam ser alimentados nos buffers de saída ou no barramento de dados para enviar à CPU.

O circuito de atualização deve executar um ciclo de atualização em cada uma das linhas do chip dentro do intervalo de tempo de atualização, para garantir que cada célula seja atualizada.

Tipos de circuitos de atualização

Embora em alguns sistemas anteriores o microprocessador controlasse a atualização, com um temporizador acionando uma interrupção periódica que executava uma sub - rotina que realizava a atualização, isso significava que o microprocessador não podia ser pausado, de uma única etapa ou colocado em hibernação para economia de energia sem interromper a atualização processar e perder os dados na memória. Portanto, nos sistemas modernos, a atualização é feita por circuitos no controlador de memória ou, cada vez mais, no próprio chip. Alguns chips DRAM, como a RAM pseudostática (PSRAM), têm todos os circuitos de atualização do chip e funcionam como RAM estática no que diz respeito ao resto do computador.

Normalmente, o circuito de atualização consiste em um contador de atualização que contém o endereço da linha a ser atualizada, que é aplicado às linhas de endereço de linha do chip , e um cronômetro que incrementa o contador para percorrer as linhas. Esse contador pode fazer parte do circuito do controlador de memória ou no próprio chip de memória. Duas estratégias de agendamento foram usadas:

  • Atualização em rajada - uma série de ciclos de atualização são executados um após o outro até que todas as linhas tenham sido atualizadas, após o que os acessos normais à memória ocorrem até a próxima atualização ser necessária
  • Atualização distribuída - os ciclos de atualização são executados em intervalos regulares, intercalados com acessos à memória.

A atualização rápida resulta em longos períodos em que a memória está indisponível, portanto, a atualização distribuída tem sido usada na maioria dos sistemas modernos, principalmente em sistemas de tempo real . Na atualização distribuída, o intervalo entre os ciclos de atualização é

Por exemplo, DDR SDRAM tem um tempo de atualização de 64 ms e 8.192 linhas, portanto, o intervalo do ciclo de atualização é de 7,8 μs.

As gerações recentes de chips DRAM contêm um contador de atualização integral e o circuito de controle de memória pode usar esse contador ou fornecer um endereço de linha de um contador externo. Esses chips têm três maneiras padrão de fornecer atualização, selecionados por diferentes padrões de sinais nas linhas "seleção de coluna" (CAS) e "seleção de linha" (RAS):

  • " RAS only refresh " - neste modo, o endereço da linha a ser atualizada é fornecido pelas linhas de barramento de endereço, portanto, é usado com contadores externos no controlador de memória.
  • " CAS antes da atualização RAS " (CBR) - Neste modo, o contador no chip mantém registro da linha a ser atualizada e o circuito externo apenas inicia os ciclos de atualização. Este modo usa menos energia porque os buffers de barramento de endereço de memória não precisam ser ligados. Ele é usado na maioria dos computadores modernos.
  • " Atualização oculta " - Esta é uma versão alternativa do ciclo de atualização CBR que pode ser combinada com um ciclo de leitura ou gravação anterior. A atualização é feita em paralelo durante a transferência de dados, economizando tempo.

Desde a geração de chips DRAM de 2012, o modo "somente RAS" foi eliminado e o contador interno é usado para gerar a atualização. O chip possui um "modo de espera" adicional, para uso quando o computador está em hibernação , no qual um oscilador on-chip gera ciclos de atualização internos para que o relógio externo possa ser desligado.

Sobrecarga de atualização

A fração de tempo que a memória gasta na atualização, a sobrecarga da atualização, pode ser calculada a partir do tempo do sistema:

Por exemplo, um chip SDRAM tem 2 13 = 8.192 linhas, um intervalo de atualização de 64 ms, o barramento de memória funciona a 133 MHz e o ciclo de atualização leva 4 ciclos de clock. O tempo para um ciclo de atualização é

Portanto, menos de 0,4% do tempo do chip de memória será usado por ciclos de atualização. Nos chips SDRAM, a memória em cada chip é dividida em bancos que são atualizados em paralelo, economizando ainda mais tempo. Portanto, o número de ciclos de atualização necessários é o número de linhas em um único banco, fornecido nas especificações, que na geração de chips de 2012 foi congelado em 8.192.

Intervalo de atualização

O intervalo de tempo máximo entre as operações de atualização é padronizado pela JEDEC para cada tecnologia DRAM e é especificado nas especificações do chip do fabricante. Geralmente está na faixa de milissegundos para DRAM e microssegundos para eDRAM . Para chips DDR2 SDRAM, é de 64 ms. Depende da relação entre a carga armazenada nos capacitores da célula de memória e as correntes de fuga. Apesar do fato de que a geometria dos capacitores tem diminuído a cada nova geração de chips de memória, de modo que os capacitores da geração posterior armazenam menos carga, os tempos de atualização para DRAM têm melhorado; de 8 ms para chips de 1M, 32 ms para chips de 16M, a 64 ms para chips de 256M. Essa melhoria é alcançada principalmente com o desenvolvimento de transistores que causam significativamente menos vazamentos. Um tempo de atualização mais longo significa que uma fração menor do tempo do dispositivo é ocupada com a atualização, deixando mais tempo para acessos à memória. Embora a sobrecarga de atualização ocupasse até 10% do tempo do chip nas DRAMs anteriores, nos chips modernos essa fração é inferior a 1%.

Como as correntes de fuga em semicondutores aumentam com a temperatura, os tempos de atualização devem ser diminuídos em altas temperaturas. Os chips DDR2 SDRAM têm uma estrutura de atualização com compensação de temperatura; o tempo do ciclo de atualização deve ser reduzido pela metade quando a temperatura da caixa do chip exceder 85 ° C (185 ° F).

A persistência real dos valores de carga legíveis e, portanto, dos dados na maioria das células de memória DRAM é muito mais longa do que o tempo de atualização, até 1–10 segundos. No entanto, as correntes de vazamento do transistor variam amplamente entre as diferentes células de memória no mesmo chip devido à variação do processo. Para garantir que todas as células de memória sejam atualizadas antes que um único bit seja perdido, os fabricantes devem definir seus tempos de atualização conservadoramente curtos.

Essa atualização frequente de DRAM consome um terço da energia total consumida por dispositivos eletrônicos de baixa potência no modo de espera. Os pesquisadores propuseram várias abordagens para estender o tempo de execução da bateria entre as cargas, reduzindo a taxa de atualização, incluindo atualização compensada por temperatura (TCR) e colocação ciente de retenção em DRAM (RAPID). Experimentos mostram que em um chip DRAM comum, apenas algumas células fracas realmente requerem o pior caso de intervalo de atualização de 64 ms e, mesmo assim, apenas na extremidade superior de sua faixa de temperatura especificada. À temperatura ambiente (por exemplo, 24 ° C (75 ° F)), essas mesmas células fracas precisam ser atualizadas uma vez a cada 500 ms para uma operação correta. Se o sistema puder evitar o uso de 1% das páginas mais fracas, uma DRAM típica só precisa ser atualizada uma vez por segundo, mesmo a 70 ° C (158 ° F), para a operação correta dos 99% restantes das páginas. Alguns experimentos combinam essas duas técnicas complementares, dando operação correta em temperatura ambiente em intervalos de atualização de 10 segundos.

Para aplicativos tolerantes a erros (por exemplo, aplicativos gráficos), a atualização de dados não críticos armazenados em DRAM ou eDRAM a uma taxa inferior ao seu período de retenção economiza energia com pequena perda de qualidade, que é um exemplo de computação aproximada .

Tecnologias de memória SRAM e DRAM

SRAM

Na memória de acesso aleatório estática (SRAM), outro tipo de memória semicondutora, os dados não são armazenados como carga em um capacitor, mas em um par de inversores de acoplamento cruzado , de modo que a SRAM não precisa ser atualizada. Os dois tipos básicos de memória têm vantagens e desvantagens. A memória estática pode ser considerada permanente enquanto está ligada, ou seja, uma vez escrita, a memória permanece até que seja especificamente alterada e, portanto, seu uso tende a ser simples em termos de design de sistema. No entanto, a construção interna de cada célula SRAM requer seis transistores, em comparação com o único transistor necessário para uma célula DRAM, então a densidade da SRAM é muito menor e o preço por bit muito maior do que a DRAM.

Atualização baseada em CPU

Alguns microprocessadores antigos (por exemplo, o Zilog Z80 ) forneciam registros internos especiais que podiam fornecer o Row-Address Strobe (RAS) para atualizar as células de memória dinâmica, sendo o registro incrementado a cada ciclo de atualização. Isso também poderia ser realizado por outros circuitos integrados já em uso no sistema, se estes já gerassem acessos cíclicos através da RAM ( por exemplo, o Motorola 6845 ). Em CPUs como o Z80, a disponibilidade de uma atualização RAS era um grande ponto de venda devido ao design de hardware simplificado. Aqui, a atualização do RAS é sinalizada por uma combinação única de endereços e fios de controle durante ciclos de clock operacionalmente redundantes (T-States), ou seja, durante a decodificação / execução de instruções quando os barramentos podem não ser necessários. Em vez de o barramento ficar inativo durante tais estados T, o registro de atualização seria apresentado no barramento de endereço junto com uma combinação de fios de controle para indicar o circuito de atualização.

Nas primeiras versões do Z80, a onipresença de chips de RAM de 16 kB ( ou seja, com 128 linhas) e algo de falta de previsão resultou no registro R apenas incrementando em um intervalo de 7 bits (0-127, ou seja , 128 linhas) ; o 8º bit poderia ser definido pelo usuário, mas não seria alterado pelo ciclo interno. Com o rápido advento dos chips de 64 kbit + DRAM (com um RAS de 8 bits), circuitos extras ou lógica tiveram que ser construídos em torno do sinal de atualização para sintetizar o 8º bit ausente e evitar que blocos de memória fossem perdidos após alguns milissegundos. Em alguns contextos, era possível utilizar interrupções para inverter o 8º bit no momento apropriado e, assim, cobrir toda a faixa do registro R (256 linhas). Outro método, talvez mais universal, mas também mais complexo em termos de hardware, era usar um chip contador de 8 bits, cuja saída forneceria o endereço RAS de atualização em vez do registro R: o sinal de atualização da CPU foi usado como o relógio para este contador, resultando na linha da memória a ser atualizada sendo incrementada a cada ciclo de atualização. Versões posteriores e "semelhantes" licenciados do núcleo Z80 remediaram a não inclusão do 8º bit no ciclo automático, e as CPUs modernas expandiram muito esse provisionamento básico para fornecer soluções multifuncionais ricas para atualização de DRAM.

DRAM pseudostática

A RAM pseudostática (PSRAM ou PSDRAM) é uma RAM dinâmica com atualização integrada e circuitos de controle de endereço para fazer com que se comporte de maneira semelhante à RAM estática (SRAM). Ele combina a alta densidade da DRAM com a facilidade de uso da SRAM verdadeira. PSRAM (feito pela Numonyx) é usado no iPhone da Apple e outros sistemas embarcados.

Alguns componentes DRAM têm um "modo de atualização automática", que envolve muito da mesma lógica necessária para a operação pseudo-estática, mas esse modo costuma ser equivalente a um modo de espera. É fornecido principalmente para permitir que um sistema suspenda a operação de seu controlador DRAM para economizar energia sem perder os dados armazenados na DRAM, em vez de não permitir a operação sem um controlador DRAM separado, como é o caso com PSRAM. Uma variante incorporada do PSRAM é vendida pela MoSys sob o nome 1T-SRAM . É tecnicamente DRAM, mas se comporta muito como SRAM e é usado nos consoles Nintendo Gamecube e Wii .

Outras tecnologias de memória usando atualização

Várias tecnologias iniciais de memória de computador também exigiam processos periódicos semelhantes em propósito à atualização da memória. O tubo de Williams tem a similaridade mais próxima, já que, assim como a DRAM, é essencialmente uma memória capacitiva na qual os valores armazenados para cada bit decairiam gradualmente, a menos que fossem atualizados.

Na memória de núcleo magnético , cada célula de memória pode reter dados indefinidamente, mesmo com a energia desligada, mas ler os dados de qualquer célula de memória apaga seu conteúdo. Como consequência, o controlador de memória normalmente adicionava um ciclo de atualização após cada ciclo de leitura para criar a ilusão de uma operação de leitura não destrutiva.

A memória da linha de atraso requer atualização constante porque os dados são, na verdade, armazenados como um sinal em uma linha de transmissão . Nesse caso, a taxa de atualização é comparável ao tempo de acesso à memória .

Veja também

Referências