Tipos de Memoria
Video da aula estara disponivel em breve
Volatil vs. Nao-Volatil
A classificacao mais fundamental de memorias semicondutoras e baseada na retencao de dados na ausencia de alimentacao eletrica:
- Memoria volatil: perde o conteudo quando a energia e desligada. Exemplos: SRAM, DRAM. Usada para armazenamento temporario durante a execucao de programas.
- Memoria nao-volatil: mantem o conteudo sem energia. Exemplos: ROM, EPROM, EEPROM, Flash. Usada para firmware, bootloaders e armazenamento persistente.
Memorias Semicondutoras
/ \
Volatil Nao-Volatil
/ \ / \
SRAM DRAM ROM Flash
(cache) (RAM principal) (PROM/EPROM/ (SSD, USB,
EEPROM) cartoes)
SRAM — Static Random Access Memory
A SRAM armazena cada bit usando um latch composto por 6 transistores MOSFET (celula 6T). A informacao e mantida enquanto houver alimentacao, sem necessidade de refresh.
VDD VDD
| |
[M3] [M4] M3, M4: PMOS (pull-up)
| |
Q ---+---+ +---+--- Q' Q e Q' sao complementares
| | | |
[M1] | | [M2] M1, M2: NMOS (pull-down)
| | | |
GND | | GND
| |
[M5] [M6] M5, M6: NMOS (acesso)
| |
BL BL' BL = Bit Line, BL' = Bit Line complementar
| |
(Word Line WL ativa M5 e M6)
Caracteristicas da SRAM:
- Velocidade: muito rapida (tempo de acesso tipico: 1-10 ns)
- Sem refresh: os inversores cruzados (M1-M3 e M2-M4) mantem o estado enquanto houver alimentacao
- Custo: alto — 6 transistores por bit consomem grande area de silicio
- Densidade: baixa — tipicamente usada para caches L1, L2, L3
- Consumo: menor consumo estatico que DRAM (sem corrente de refresh), mas maior area
DRAM — Dynamic Random Access Memory
A DRAM armazena cada bit como carga eletrica em um capacitor, acessado por um unico transistor (celula 1T1C). Essa simplicidade permite altissima densidade, mas a carga vaza ao longo do tempo, exigindo refresh periodico.
Word Line (WL)
|
[T] ← transistor de acesso (NMOS)
|
BL --+-- [C] ← capacitor de armazenamento
|
GND
Bit = 1: capacitor carregado (Vc ≈ VDD)
Bit = 0: capacitor descarregado (Vc ≈ 0V)
Problema: a carga vaza em ~64 ms
Solucao: refresh periodico (leitura + reescrita)
Comparacao SRAM vs. DRAM:
Caracteristica SRAM DRAM
─────────────────────────────────────────────────
Transistores/bit 6 1 (+ capacitor)
Velocidade 1-10 ns 50-70 ns
Densidade Baixa Alta
Custo/bit Alto Baixo
Refresh Nao necessario A cada ~64 ms
Consumo estatico Baixo Moderado (refresh)
Uso tipico Cache (L1/L2/L3) Memoria principal
Memorias ROM e suas Evolucoes
As memorias somente de leitura (ROM — Read-Only Memory) e suas variantes armazenam dados de forma permanente ou semi-permanente:
- ROM (Mask ROM): conteudo gravado durante a fabricacao. Impossivel de alterar. Usada em producao de alto volume (ex: firmware de calculadoras simples).
- PROM (Programmable ROM): pode ser programada uma unica vez pelo usuario usando um programador de fussiveis. Cada bit comeca em 1; a gravacao queima fussiveis seletivamente para criar 0s.
- EPROM (Erasable PROM): pode ser apagada por exposicao a luz ultravioleta (janela de quartzo no chip) e reprogramada. Usa transistores com floating gate — a carga presa no gate determina o bit.
- EEPROM (Electrically Erasable PROM): pode ser apagada e reescrita eletricamente, byte a byte. Mais lenta que Flash, mas permite escrita granular. Usada para armazenar configuracoes (ex: enderecos MAC em placas de rede).
- Flash (NOR e NAND): evolucao da EEPROM. Apagamento em blocos, nao byte a byte. Duas arquiteturas:
- NOR Flash: acesso aleatorio, usada para executar codigo in-place (XIP). Mais lenta para escrita.
- NAND Flash: acesso sequencial, altissima densidade. Base dos SSDs, pendrives e cartoes SD.
ROM → PROM → EPROM → EEPROM → Flash
(fixa) (1x) (UV) (eletrica, (eletrica,
byte) bloco)
Flexibilidade crescente →→→
Complexidade do circuito crescente →→→
Organizacao de Arrays de Memoria
Fisicamente, as celulas de memoria sao organizadas em um array bidimensional de linhas e colunas. O enderecamento funciona da seguinte forma:
Endereco (n bits)
┌────────────────────┐
│ Row Address (r bits)│ → Decodificador de linhas → seleciona 1 de 2^r linhas
│ Col Address (c bits)│ → Multiplexador de colunas → seleciona 1 de 2^c colunas
└────────────────────┘
Col 0 Col 1 Col 2 ... Col 2^c-1
┌────────┬────────┬────────┬───┬──────────┐
Row 0 │ celula │ celula │ celula │ │ celula │
├────────┼────────┼────────┼───┼──────────┤
Row 1 │ celula │ celula │ celula │ │ celula │
├────────┼────────┼────────┼───┼──────────┤
... │ ... │ ... │ ... │ │ ... │
├────────┼────────┼────────┼───┼──────────┤
Row │ celula │ celula │ celula │ │ celula │
2^r-1 │ │ │ │ │ │
└────────┴────────┴────────┴───┴──────────┘
Capacidade total = 2^r x 2^c = 2^n celulas
Em um chip de DRAM, o endereco e enviado em duas etapas (multiplexado) para reduzir o numero de pinos:
- RAS (Row Address Strobe): envia o endereco da linha, que ativa todas as celulas da linha selecionada para o sense amplifier
- CAS (Column Address Strobe): envia o endereco da coluna, selecionando a celula desejada
Tecnologias Emergentes
Alem de SRAM, DRAM e Flash, existem tecnologias emergentes que buscam combinar o melhor de ambos os mundos (velocidade + nao-volatilidade):
- MRAM (Magnetoresistive RAM): usa juncoes de tunelamento magnetico. Rapida, nao-volatil, resistente a radiacao.
- PCM (Phase-Change Memory): alterna entre estados amorfo e cristalino de um material calcojenideo. Mais densa que SRAM, mais rapida que Flash.
- ReRAM (Resistive RAM): muda a resistencia de um dieletrico por formacao/destruicao de filamentos condutores. Promissora para neuromorphic computing.
No harness.os
A distincao entre memoria volatil e nao-volatil aparece diretamente na arquitetura do harness.os:
- Contexto de sessao (volatil): assim como a DRAM perde dados ao desligar, o contexto de uma sessao Claude e descartado ao fim da conversa. O harness.os resolve isso com handoffs — serializando o estado critico antes do "desligamento".
- Knowledge base (nao-volatil): o banco de dados Neon funciona como a Flash do sistema — armazenamento persistente que sobrevive entre sessoes. Decisoes, learnings e regras sao gravados aqui.
- Hierarquia de acesso: regras em CLAUDE.md (acesso local, como cache L1) vs. regras no banco de dados (acesso remoto, como memoria principal). O harness.os implementa uma hierarquia de memoria para conhecimento.
- Trade-off velocidade/persistencia: manter tudo em arquivos locais e rapido mas fragil. Manter tudo no banco e persistente mas requer I/O. A arquitetura ideal combina ambos — exatamente como SRAM + DRAM.
Exercicios
- Uma celula SRAM 6T usa 6 transistores por bit. Se um chip de cache L2 tem 256 KB, quantos transistores sao necessarios apenas para o array de dados (ignore logica de controle)?
- Um chip de DRAM precisa de refresh a cada 64 ms e tem 8192 linhas. Qual e o intervalo entre refreshes consecutivos de linhas diferentes (refresh distribuido)?
- Explique por que a NAND Flash e preferida em relacao a NOR Flash para SSDs, apesar de nao suportar acesso aleatorio eficiente.
- Compare EEPROM e Flash em termos de granularidade de escrita e apagamento. Quando EEPROM e preferivel?
- Projete (em pseudocodigo) um decodificador de enderecos para uma memoria de 1024 palavras de 8 bits organizada como 32 linhas x 32 colunas.
Resumo
- Memorias volateis (SRAM, DRAM) perdem dados sem energia; nao-volateis (ROM, Flash) retêm
- SRAM usa 6 transistores por bit: rapida, cara, baixa densidade — usada em caches
- DRAM usa 1 transistor + 1 capacitor: mais lenta, barata, alta densidade — usada como RAM principal
- Evolucao ROM → PROM → EPROM → EEPROM → Flash: flexibilidade crescente
- Flash NAND domina armazenamento de massa; NOR Flash permite execucao in-place
- Arrays de memoria sao organizados em linhas x colunas com decodificadores e sense amplifiers
Verifique seu entendimento
Por que a DRAM necessita de refresh periodico enquanto a SRAM nao?