Controlador de memória - Memory controller

O controlador de memória é um circuito digital que gerencia o fluxo de dados que entram e saem da memória principal do computador . Um controlador de memória pode ser um chip separado ou integrado em outro chip, como sendo colocado na mesma matriz ou como parte integrante de um microprocessador ; no último caso, é normalmente denominado controlador de memória integrado ( IMC ). Às vezes, um controlador de memória também é chamado de controlador de chip de memória ( MCC ) ou unidade de controlador de memória ( MCU ).

Uma forma comum de controlador de memória é a unidade de gerenciamento de memória (MMU), que em muitos sistemas operacionais, como Unix , implementa endereçamento virtual .

História

A maioria dos microprocessadores de desktop ou workstation modernos usa um controlador de memória integrado (IMC), incluindo microprocessadores da Intel , AMD e aqueles construídos em torno da arquitetura ARM .

Antes do K8 (por volta de 2003), os microprocessadores AMD tinham um controlador de memória implementado na ponte norte da placa-mãe . No K8 e posteriores, a AMD empregou um controlador de memória integrado. Da mesma forma, até Nehalem (por volta de 2008), os microprocessadores Intel usavam controladores de memória implementados na ponte norte da placa-mãe. Nehalem e depois mudou para um controlador de memória integrado.

Outros exemplos de microprocessadores que usam controladores de memória integrados incluem o POWER5 da IBM e o UltraSPARC T1 da Sun Microsystems .

Embora um controlador de memória integrado tenha o potencial de aumentar o desempenho do sistema, reduzindo a latência da memória , por exemplo, ele bloqueia o microprocessador a um tipo (ou tipos) específico de memória, forçando um redesenho para oferecer suporte a tecnologias de memória mais recentes. Quando a SDRAM DDR2 foi introduzida, a AMD lançou novas CPUs Athlon 64. Esses novos modelos, com controlador DDR2, utilizam um soquete físico diferente (conhecido como soquete AM2 ), de forma que só cabem em placas-mãe projetadas para o novo tipo de RAM. Quando o controlador de memória não está no chip, a mesma CPU pode ser instalada em uma nova placa-mãe, com um Northbridge atualizado .

Alguns microprocessadores na década de 1990, como o DEC Alpha 21066 e o HP PA-7300LC , tinham controladores de memória integrados; no entanto, em vez de ganhos de desempenho, isso foi implementado para reduzir o custo dos sistemas, eliminando a necessidade de um controlador de memória externo.

Algumas CPUs são projetadas para ter seus controladores de memória como componentes externos dedicados que não fazem parte do chipset. Um exemplo é o IBM POWER8 , que usa chips Centaur externos montados em módulos DIMM e atuam como buffers de memória, chips de cache L4 e como controladores de memória reais. A primeira versão do chip Centaur usava memória DDR3, mas uma versão atualizada foi lançada depois que pode usar DDR4.

Propósito

Os controladores de memória contêm a lógica necessária para ler e gravar na DRAM e para "atualizar" a DRAM . Sem atualizações constantes, a DRAM perderá os dados gravados, pois os capacitores vazam sua carga em uma fração de segundo (não mais do que 64 milissegundos de acordo com os padrões JEDEC ).

A leitura e a gravação em DRAM são realizadas selecionando os endereços de dados de linha e coluna da DRAM como as entradas para o circuito do multiplexador , onde o demultiplexador na DRAM usa as entradas convertidas para selecionar a localização correta da memória e retornar os dados, que são então passado de volta por um multiplexador para consolidar os dados a fim de reduzir a largura do barramento necessária para a operação.

A largura do barramento é o número de linhas paralelas disponíveis para se comunicar com a célula de memória. As larguras de barramento dos controladores de memória variam de 8 bits em sistemas anteriores a 512 bits em sistemas e placas de vídeo mais complicados (geralmente implementados como quatro controladores de memória simultâneos de 64 bits operando em paralelo, embora alguns sejam projetados para operar em "modo gang "onde dois controladores de memória de 64 bits podem ser usados ​​para acessar um dispositivo de memória de 128 bits ).

Alguns controladores de memória, como o integrado aos processadores PowerQUICC II, incluem hardware de detecção e correção de erros .

Segurança

Alguns controladores de memória experimentais (principalmente voltados para o mercado de servidores onde a proteção de dados é legalmente exigida) contêm um segundo nível de tradução de endereços, além do primeiro nível de tradução de endereços realizado pela unidade de gerenciamento de memória da CPU .

Os controladores de memória integrados em determinados processadores Intel Core também fornecem embaralhamento de memória como um recurso que transforma os dados do usuário gravados na memória principal em padrões pseudo-aleatórios .

O Memory Scrambling (na teoria criptográfica) deve impedir a análise forense e de engenharia reversa com base na remanência de dados DRAM, tornando ineficazes vários tipos de ataques de inicialização a frio . Na prática atual, isso não foi alcançado.

No entanto, o Memory Scrambling foi projetado apenas para resolver problemas elétricos relacionados à DRAM. Os padrões de embaralhamento de memória do final da década de 2010 não corrigem ou evitam questões ou problemas de segurança. Os padrões de embaralhamento de memória da década de 2010 não são criptograficamente seguros ou necessariamente de código-fonte aberto ou abertos para revisão ou análise pública.

ASUS e Intel têm seus próprios padrões de codificação de memória. Atualmente as placas-mãe ASUS permitem que o usuário escolha quais padrões de codificação de memória usar [ASUS ou Intel] ou se deseja desligar o recurso totalmente.

Variantes

Memória com dupla taxa de dados

Os controladores de memória de taxa de dados dupla (DDR) são usados ​​para conduzir DDR SDRAM , onde os dados são transferidos nas bordas ascendente e descendente do clock da memória do sistema. Os controladores de memória DDR são significativamente mais complicados quando comparados aos controladores de taxa de dados simples, mas permitem que o dobro dos dados sejam transferidos sem aumentar a taxa de clock da célula de memória ou a largura do barramento.

Memória multicanal

Os controladores de memória multicanal são controladores de memória em que os dispositivos DRAM são separados em vários barramentos diferentes para permitir que o (s) controlador (es) de memória os acessem em paralelo. Isso aumenta a quantidade teórica de largura de banda do barramento por um fator do número de canais. Embora um canal para cada célula DRAM seja a solução ideal, adicionar mais canais é muito difícil devido à contagem de fios, capacitância da linha e a necessidade de as linhas de acesso paralelas terem comprimentos idênticos.

Memória totalmente armazenada em buffer

Os sistemas de memória totalmente bufferizada colocam um dispositivo de buffer de memória em cada módulo de memória (chamado de FB-DIMM quando Fully Buffered RAM é usado), que ao contrário dos dispositivos controladores de memória tradicionais, usa um link de dados serial para o controlador de memória em vez do link paralelo usado em designs de RAM anteriores. Isso diminui o número de fios necessários para colocar os dispositivos de memória em uma placa-mãe (permitindo que um número menor de camadas seja usado, o que significa que mais dispositivos de memória podem ser colocados em uma única placa), à custa do aumento da latência (o tempo necessário para acessar um local de memória). Esse aumento é devido ao tempo necessário para converter as informações paralelas lidas da célula DRAM para o formato serial usado pelo controlador FB-DIMM e de volta para um formato paralelo no controlador de memória na placa-mãe.

Em teoria, o dispositivo de buffer de memória do FB-DIMM poderia ser construído para acessar qualquer célula DRAM, permitindo um design de controlador de memória independente de célula de memória, mas isso não foi demonstrado, pois a tecnologia está em sua infância.

Controlador de memória flash

Muitos dispositivos de memória flash , como cartões de memória USB, incluem um controlador de memória flash no chip. A memória Flash é inerentemente mais lenta para acessar do que a RAM e muitas vezes se torna inutilizável após alguns milhões de ciclos de gravação, o que geralmente a torna inadequada para aplicativos de RAM.

Veja também

Referências

links externos