# Célula de memória (computação)

A célula de memória é o bloco de construção fundamental da memória de computador. A célula de memória é um circuito eletrônico que armazena um bit de informação binária e deve ser configurada para armazenar uma lógica 1 (nível de alta tensão) e resetada para armazenar uma lógica 0 (nível de baixa tensão). Seu valor é mantido/armazenado até que seja alterado pelo processo de configurar/resetar. O valor na célula de memória pode ser acessado o lendo.
Ao longo da história da computação, diferentes arquiteturas de células de memória foram usadas, incluindo a de memória de núcleo e a de memória de bolha. Hoje, a arquitetura de célula de memória mais comum é a memória de metal-óxido-semicondutor MOS, que consiste em células de memória de metal-óxido-semicondutor (MOS). A memória de acesso aleatório (RAM) moderna usa transistores de efeito de campo (FETs) de metal-óxido-semicondutor (MOS) (MOSFETs) como flip-flops, juntamente com capacitores de metal-óxido-semicondutor (MOS) para certos tipos de memória de acesso aleatório (RAM).
A célula de memória da memória estática de acesso aleatório (SRAM, RAM estática) é um tipo de circuito flip-flop, normalmente implementado usando transistores de efeito de campo de metal-óxido-semicondutor (MOSFETs). Estes requerem energia muito baixa para manter o valor armazenado quando não estão sendo acessados. Um segundo tipo, o da memória dinâmica de acesso aleatório (DRAM, RAM dinâmica), é baseado em capacitores de metal-óxido-semicondutor (MOS). Carregar e descarregar um capacitor pode armazenar um "1" ou um "0" na célula. No entanto, a carga neste capacitor vazará lentamente e deve ser atualizada periodicamente. Devido a esse processo de atualização, a memória dinâmica de acesso aleatório (DRAM) consome mais energia. No entanto, a memória dinâmica de acesso aleatório (DRAM) pode atingir maiores densidades de armazenamento.
Por outro lado, a maioria das memórias não voláteis (NVM) é baseada em arquiteturas de células de memória de porta flutuante. As tecnologias de memória não volátil, incluindo a memória programável apagável somente leitura (EPROM), a memória programável apagável eletricamente somente leitura (EEPROM) e a memória flash, usam células de memória de porta flutuante, que são baseadas em transistores de efeito de campo de metal-óxido-semicondutor (MOSFETs) de porta flutuante.

## Descrição

A célula de memória é o bloco de construção fundamental da memória. Ela pode ser implementada usando diferentes tecnologias, como a bipolar, a de metal-óxido-semicondutor (MOS) e a de outros dispositivos semicondutores. Também pode ser construída a partir de material magnético, como núcleos de ferrite ou bolhas magnéticas. Independentemente da tecnologia de implementação utilizada, a finalidade da célula de memória binária é sempre a mesma. Ela armazena um bit de informação binária que pode ser acessada pela leitura da célula e deve ser configurada para armazenar um 1 e redefinida para armazenar um 0.

## Importância

Os circuitos lógicos sem células de memória ou caminhos de realimentação são chamados combinacionais, seus valores de saída dependem apenas do valor atual de seus valores de entrada. Eles não têm memória. Mas a memória é um elemento-chave dos sistemas digitais. Em computadores, ela permite armazenar tanto programas como dados e células de memória também são usadas para armazenamento temporário da saída de circuitos combinacionais para serem usados posteriormente por sistemas digitais. Os circuitos lógicos que usam células de memória são chamados de circuitos sequenciais. Sua saída depende não apenas do valor presente de suas entradas, mas também do estado anterior do circuito, determinado pelos valores armazenados em suas células de memória. Esses circuitos requerem um gerador de temporização (ou clock) para sua operação.
A memória de computador usada na maioria dos sistemas de computador contemporâneos é construída principalmente a partir de células da memória dinâmica de acesso aleatório (DRAM); como o esquema é muito menor que o da memória estática de acesso aleatório (SRAM), ela pode ser mais compactada, resultando em memória mais barata e com maior capacidade. Como a célula de memória da memória dinâmica de acesso aleatório (DRAM) armazena seu valor como a carga de um capacitor e há problemas de vazamento de corrente, seu valor deve ser constantemente reescrito. Esse é um dos motivos que tornam as células da memória dinâmica de acesso aleatório (DRAM) mais lentas que as células da memória estática de acesso aleatório (SRAM, RAM estática) maiores, que têm seu valor sempre disponível. Essa é a razão pela qual a memória estática de acesso aleatório (SRAM) é usada para cache no chip incluído em chips de microprocessadores modernos.

## História

Em 11 de dezembro de 1946, Freddie Williams solicitou uma patente em seu dispositivo de armazenamento de tubo de raios catódicos (CRT) (tubo de Williams) com 128 palavras de 40 bits. Ele estava operacional em 1947 e é considerado a primeira implementação prática de memória de acesso aleatório (RAM). Naquele ano, os primeiros pedidos de patente para memória de núcleo magnético foram apresentados por Frederick Viehe. A memória de núcleo magnético prática foi desenvolvida por An Wang, em 1948, e melhorada por Jay Forrester e Jan A. Rajchman, no início da década de 1950, antes de ser comercializada com o computador Whirlwind em 1953. Ken Olsen também contribuiu para o seu desenvolvimento.
A memória de semicondutores começou no início dos anos 1960 com células de memória bipolares, feitas de transistores bipolares. Embora melhorasse o desempenho, não podia competir com o preço mais baixo da memória de núcleo magnético.

## Células de memória de metal-óxido-semicondutor (MOS)

A invenção do transistor de efeito de campo de metal-óxido-semicondutor (MOSFET), também conhecido como transistor de metal-óxido-semicondutor (MOS), por Mohamed M. Atalla e Dawon Kahng nos laboratórios da Bell em 1959, permitiu o uso prático de transistores de metal-óxido-semicondutor (MOS) como elementos de armazenamento de células de memória, uma função anteriormente servida por núcleos magnéticos. As primeiras células de memória modernas foram introduzidas em 1964, quando John Schmidt projetou a primeira memória estática de acesso aleatório (SRAM) de metal-óxido-semicondutor (MOS) de canal p de 64 bits (PMOS).
A memória estática de acesso aleatório (SRAM) normalmente possui células de seis transistores, enquanto a memória dinâmica de acesso aleatório (DRAM) normalmente possui células de transistor único. Em 1965, a calculadora eletrônica Toscal BC-1411 da Toshiba usou uma forma de memória dinâmica de acesso aleatório (DRAM) bipolar capacitiva, armazenando dados de 180 bits em células de memória discretas, consistindo de transistores e capacitores bipolares de germânio. A tecnologia de metal-óxido-semicondutor (MOS) é a base para a memória dinâmica de acesso aleatório (DRAM) moderna. Em 1966, o Dr. Robert H. Dennard no centro de pesquisa Thomas J. Watson da IBM estava trabalhando na memória de metal-óxido-semicondutor (MOS). Ao examinar as características da tecnologia de metal-óxido-semicondutor (MOS), ele descobriu que era capaz de construir capacitores e que armazenar uma carga ou nenhuma carga no capacitor de metal-óxido-semicondutor (MOS) poderia representar o 1 e o 0 de um bit, enquanto o transistor de metal-óxido-semicondutor (MOS) poderia controlar a escrita da carga no capacitor de metal-óxido-semicondutor (MOS). Isso levou ao desenvolvimento de uma célula de memória de memória dinâmica de acesso aleatório (DRAM) de transistor único. Em 1967, Dennard registrou uma patente para uma célula de memória de memória dinâmica de acesso aleatório (DRAM) de transistor único, baseada na tecnologia de metal-óxido-semicondutor (MOS).
A primeira memória estática de acesso aleatório (SRAM) bipolar de 64 bits comercial foi lançada pela Intel em 1969 com a lógica transistor-transistor (TTL) de Schottky 3101. Um ano depois, foi lançado o primeiro chip de circuito integrado de memória dinâmica de acesso aleatório (DRAM), o Intel 1103, baseado na tecnologia de metal-óxido-semicondutor (MOS). Em 1972, bateu os recordes anteriores em vendas de memória de semicondutores. Os chips de memória dinâmica de acesso aleatório (DRAM), no início da década de 1970, tinham células de três transistores, antes que as células de transistor único se tornassem padrão, desde meados da década de 1970.
A memória de metal-óxido-semicondutor complementar (CMOS) foi comercializada pela corporação de rádio da América (RCA), que lançou um chip de memória estática de acesso aleatório (SRAM) de metal-óxido-semicondutor complementar (CMOS) de 288 bits em 1968. A memória de metal-óxido-semicondutor complementar (CMOS) foi inicialmente mais lenta do que a memória de metal-óxido-semicondutor de tipo n (NMOS), que foi mais amplamente utilizada por computadores na década de 1970. Em 1978, a Hitachi introduziu o processo de metal-óxido-semicondutor complementar (CMOS) de poço duplo, com seu chip de memória HM6147 (memória estática de acesso aleatório - SRAM - de 4 kilobits - kb), fabricado com um processo de 3 micrômetros (µm). O chip HM6147 foi capaz de igualar o desempenho do chip de memória de metal-óxido-semicondutor de tipo n (NMOS) mais rápido da época, enquanto também consumia significativamente menos energia. Com desempenho comparável e muito menos consumo de energia, o processo de metal-óxido-semicondutor complementar (CMOS) de poço duplo eventualmente ultrapassou o de metal-óxido-semicondutor de tipo n (NMOS) como o processo de fabricação de semicondutores mais comum para memória de computador na década de 1980.
Os dois tipos mais comuns de células de memória de memória dinâmica de acesso aleatório (DRAM), desde a década de 1980, são as células de capacitores de trincheira e as células de capacitores empilhados. Células de capacitores de trincheira são onde buracos (trincheiras) são feitos em um substrato de silício, cujas paredes laterais são usadas como uma célula de memória, enquanto células de capacitores empilhados são a forma mais antiga de memória tridimensional (memória 3D), onde as células de memória são empilhadas verticalmente em uma estrutura celular tridimensional. Ambos os tipos foram lançados em 1984, quando a Hitachi introduziu a memória de capacitor de trincheira e a Fujitsu introduziu a memória de capacitor empilhado.

### Células de memória de metal-óxido-semicondutor (MOS) de porta flutuante

O transistor de efeito de campo de metal-óxido-semicondutor (MOSFET) de porta flutuante (FGMOS) foi inventado por Dawon Kahng e Simon Sze nos laboratórios da Bell em 1967. Eles propuseram o conceito de células de memória de porta flutuante, usando transistores de efeito de campo de metal-óxido-semicondutor (MOSFET) de porta flutuante (FGMOS), que poderiam ser usados para produzir memória somente leitura (ROM) reprogramável. Células de memória de porta flutuante mais tarde se tornaram a base para tecnologias de memória não volátil (NVM), incluindo a memória somente leitura programável apagável (EPROM), a memória somente leitura programável apagável eletricamente (EEPROM) e a memória flash.
A memória flash foi inventada por Fujio Masuoka na Toshiba em 1980. Masuoka e seus colegas apresentaram a invenção flash NOR em 1984 e, depois, a flash NAND em 1987. A memória flash de célula multinível (MLC) foi introduzida pela NEC, que demonstrou células de nível quádruplo em um chip flash de 64 mebibit (Mb) armazenando 2 bits por célula em 1996. A V-NAND 3D, onde as células de memória flash são empilhadas verticalmente usando a tecnologia flash de captura de carga (CTP) 3D, foi anunciada pela Toshiba em 2007 e fabricada pela Eletrônicos Samsung em 2013.

## Implementação

Os esquemas a seguir detalham as três implementações mais usadas para células de memória:
* A célula de memória dinâmica de acesso aleatório (DRAM);
* A célula de memória estática de acesso aleatório (SRAM);
* Flip-flops como o J/K mostrado abaixo.
| Célula de DRAM (1 transistor e um capacitor). | Célula de memória estática de acesso aleatório (SRAM) (6 transistores). | Flip-flop J/K com clock. |

## Operação
### Célula de memória de memória dinâmica de acesso aleatório (DRAM)
#### Armazenamento

O elemento de armazenamento da célula de memória da memória dinâmica de acesso aleatório (DRAM) é o capacitor rotulado (4) no diagrama acima. A carga armazenada no capacitor se degrada ao longo do tempo, portanto, seu valor deve ser atualizado (lido e reescrito) periodicamente. O transistor nMOS (3) atua como uma porta para permitir leitura ou escrita quando aberto ou armazenamento quando fechado.

#### Leitura

Para ler, a linha de palavra (2) aciona uma lógica 1 (tensão alta) na porta do transistor nMOS (3) que o torna condutor e a carga armazenada no capacitor (4) é então transferida para a linha de bits (1) . A linha de bits terá uma capacitância parasita (5) que drenará parte da carga e retardará o processo de leitura. A capacitância da linha de bits determinará o tamanho necessário do capacitor de armazenamento (4). É uma troca. Se o capacitor de armazenamento for muito pequeno, a tensão da linha de bits levaria muito tempo para aumentar ou nem mesmo ultrapassaria o limite necessário para os amplificadores no final da linha de bits. Como o processo de leitura degrada a carga no capacitor de armazenamento (4), seu valor é reescrito após cada leitura.

#### Escrita

O processo de escrita é o mais fácil, o valor lógico 1 (alta tensão) ou lógico 0 (baixa tensão) desejado é direcionado para a linha de bits. A linha de palavra ativa o transistor nMOS (3) o conectando ao capacitor de armazenamento (4). O único problema é o manter aberto o tempo suficiente para garantir que o capacitor esteja totalmente carregado ou descarregado antes de desligar o transistor nMOS (3).

### Célula de memória de memória estática de acesso aleatório (SRAM)
#### Armazenamento

O princípio de funcionamento da célula de memória de memória estática de acesso aleatório (SRAM) pode ser mais fácil de entender se os transistores M1 a M4 forem desenhados como portas lógicas. Dessa forma, fica claro que, em sua essência, o armazenamento de células é construído usando dois inversores de acoplamento cruzado. Este loop simples cria um circuito bi-estável. Um 1 lógico na entrada do primeiro inversor se transforma em 0 em sua saída e é alimentado no segundo inversor que transforma esse 0 lógico de volta em um 1 lógico que retorna o mesmo valor para a entrada do primeiro inversor. Isso cria um estado estável que não muda com o tempo. Da mesma forma, o outro estado estável do circuito é ter um 0 lógico na entrada do primeiro inversor. Após ser invertido duas vezes, ele também retornará o mesmo valor. Portanto, existem apenas dois estados estáveis em que o circuito pode estar:
   * $\scriptstyle Q$ = 0 e $\scriptstyle {\overline {Q}}$ = 1
   * $\scriptstyle Q$ = 1 e $\scriptstyle {\overline {Q}}$ = 0

#### Leitura

Para ler o conteúdo da célula de memória armazenada no loop, os transistores M5 e M6 devem estar ligados. quando eles recebem tensão para seus portões da linha de palavras ($\scriptstyle WL$), eles se tornam condutores e assim os valores $\scriptstyle Q$ e $\scriptstyle {\overline {Q}}$ são transmitidos para a linha de bits ($\scriptstyle BL$) e para seu complemento ($\scriptstyle {\overline {BL}}$). Finalmente, esses valores são amplificados no final das linhas de bits.

#### Escrita

O processo de escrita é semelhante, a diferença é que agora o novo valor que será armazenado na célula de memória é direcionado para a linha de bits ($\scriptstyle BL$) e o invertido para seu complemento ($\scriptstyle {\overline {BL}}$). Os próximos transistores M5 e M6 são abertos conduzindo um 1 lógico (voltagem alta) na linha de palavras ($\scriptstyle WL$). Isso conecta efetivamente as linhas de bits ao loop do inversor estável. Há duas possibilidades:
   * Se o valor do loop for o mesmo que o novo valor acionado, não haverá alteração;
   * se o valor do loop for diferente do novo valor acionado existem dois valores conflitantes, para que a tensão nas linhas de bits sobrescreva a saída dos inversores, o tamanho dos transistores M5 e M6 deve ser maior que o dos transistores M1-M4. Isso permite que mais corrente flua através dos primeiros e, portanto, inclina a tensão na direção do novo valor; em algum ponto, o loop amplificará esse valor intermediário para um trilho completo.

### Flip-flop

O flip-flop tem muitas implementações diferentes, seu elemento de armazenamento é geralmente um ferrolho (latch) que consiste em um loop de porta NAND ou um loop de porta NOR com portas adicionais usadas para implementar o clock. Seu valor está sempre disponível para leitura como saída. O valor permanece armazenado até que seja alterado através do processo de definição ou redefinição. Flip-flops são normalmente implementados usando transistores de efeito de campo de metal-óxido-semicondutor (MOSFETs).

### Porta flutuante

As células de memória de porta flutuante, baseadas em transistores de efeito de campo de metal-óxido-semicondutor (MOSFETs) de porta flutuante, são usadas para a maioria das tecnologias de memória não volátil (NVM), incluindo a memória programável apagável somente leitura (EPROM), a memória programável apagável eletricamente somente leitura (EEPROM) e a memória flash. Segundo R. Bez e A. Pirovano: {{quote|Uma célula de memória de porta flutuante é basicamente um transistor de metal-óxido-semicondutor (MOS) com uma porta completamente cercada por dielétricos (fig. 1.2), a porta flutuante (FG), e eletricamente governada por uma porta de controle acoplada capacitiva (CG). Sendo isolado eletricamente, a porta flutuante (FG) atua como eletrodo de armazenamento para o dispositivo de célula. A carga injetada na porta flutuante (FG) é mantida lá, permitindo a modulação da tensão de limiar "aparente" (ou seja, VT visto da porta de controle (CG)) do transistor da célula.