MEMORIAS INTERNAS
A memória em um computador é um componente essencial que
armazena dados (instruções, arquivos, resultados intermediários) para acesso rápido pela
CPU ou outros dispositivos. Ela é organizada em uma hierarquia que equilibra velocidade,
custo e capacidade.
As memórias primárias (Reais) são aquelas em que o processador endereça
diretamente como: RAM, ROM, Registradores e o CACHE.
Já as memórias secundárias são aquelas que não podem ser endereçadas
diretamente, todas as informações deverão ser mandadas para uma memória
intermediária antes (primária). Exemplos: HD, SSD, CD, DVD.
O endereçamento de memória refere-se às maneiras pelas quais a localização dos dados na
memória pode ser especificada. Existem vários tipos de endereçamento em arquiteturas
computacionais:
Endereçamento Imediato: O próprio operando é especificado no campo da instrução.
É útil para constantes.
Endereçamento por Deslocamento: Usa um valor base e um deslocamento para
calcular o endereço efetivo. Comum em estruturas de dados como arrays.
Endereçamento por Pilha: Manipula dados usando a estrutura de dados pilha, com
operações como push e pop.
Endereçamento por Registrador: O endereço do dado está em um registrador
específico.
Em sistemas de memória semicondutora, as falhas podem ser categorizadas em
permanentes (hard errors) e não permanentes (soft errors).
Falhas permanentes são aquelas que resultam de danos físicos ou desgaste que
afetam permanentemente o funcionamento da memória. Exemplos incluem danos
causados por desgaste ou defeitos de fabricação.
Falhas não permanentes são temporárias e podem ser causadas por fatores como
interferências eletromagnéticas, radiação cósmica, ou problemas temporários de
energia. Essas falhas podem ser corrigidas, por exemplo, através de técnicas como
Error Correcting Code (ECC).
Definição de RAM (Random-Access Memory)
A RAM (Random-Access Memory) é um tipo de memória volátil de acesso aleatório, utilizada
para armazenar dados e instruções que a CPU precisa acessar rapidamente durante a
execução de programas. É chamada de "random-access" porque permite ler/escrever em
qualquer posição de memória com o mesmo tempo de acesso, diferentemente de memórias
sequenciais (como fitas magnéticas).
Os sistemas que utilizam memórias RAM de alta velocidade requerem a tecnologia
assíncrona para acesso, a qual não é sincronizada com o relógio do sistema?
A memória assícrona não utiliza o relógio do sistema para coordenar o acesso à memória.
As memórias síncronas são um tipo de DRAM, já que sincronizam as respostas dos módulos
da memória com o barramento do sistema.
Pessoal, as memórias RAM de alta velocidade exigem uma tecnologia síncrona. A memória
síncrona utiliza o clock ou relógio do sistema para coordenar o acesso à memória, isso faz
com que a velocidade seja aumentada, diferentemente da memória assíncrona, que não
utiliza.
Características Principais da RAM
Característica Descrição
Volatilidade Perde dados quando desligada (requer energia elétrica constante).
Acesso Qualquer endereço pode ser acessado diretamente, sem ordem
Aleatório prévia.
Muito mais rápida que armazenamento permanente (HDD/SSD), mas
Velocidade
mais lenta que cache.
Função
Armazenar dados em uso pelo sistema operacional e aplicativos.
Principal
Tipos de RAM
A RAM pode ser classificada por tecnologia e aplicação. Os principais tipos são: DRAM E
SRAM
A DRAM (Dynamic Random-Access Memory) é um tipo de memória volátil de acesso
aleatório, amplamente utilizada como memória principal (RAM) em computadores e
dispositivos eletrônicos. Diferente da SRAM (usada em caches), a DRAM armazena cada bit
em um capacitor (que perde carga com o tempo) e um transistor, exigindo refresh
periódico para manter os dados.
Principais Características
Característica Descrição
Baseada em capacitores + transistores (1T1C – 1 transistor e 1
Tecnologia
capacitor por bit).
Volatilidade Perde dados sem energia elétrica.
Necessidade de Requer atualização (refresh) a cada ~64 ms para evitar perda de
Refresh carga.
Tempo de acesso: 50–100 ns (mais lenta que SRAM, mas mais
Velocidade
rápida que SSDs/HDDs).
Alta (armazena mais dados por área que SRAM, pois usa apenas 1
Densidade
transistor por bit).
Mais barata que SRAM, mas mais cara que memórias não voláteis
Custo
(ex.: Flash).
Consumo de Energia Moderado (depende da frequência e do refresh).
Funcionamento da DRAM
1. Armazenamento de Bits
o Cada bit é armazenado como carga em um capacitor (1 = capacitor carregado,
0 = descarregado).
o O transistor atua como uma "chave" para ler/gravar o capacitor.
2. Leitura
o Ao acessar um bit, o capacitor é descarregado no barramento, destruindo o
dado original.
o Um circuito de rewrite restaura o valor lido (por isso a operação é
destrutiva).
3. Refresh
o Como os capacitores perdem carga naturalmente, a DRAM precisa de ciclos
de refresh (~8.192 vezes a cada 64 ms em DDR4).
4. Organização em Bancos
o A DRAM moderna é dividida em bancos para acesso paralelo (ex.: DDR4 tem
16 bancos).
Tipos de DRAM
Tipo Descrição Aplicação
Synchronous DRAM – Sincronizada com o clock
SDRAM PCs antigos (1990s).
do barramento.
DDR Double Data Rate – Transfere dados na DDR1 a DDR5 (PCs
SDRAM subida e descida do clock. modernos).
Low Power DDR – Consumo reduzido para
LPDDR Smartphones, tablets.
dispositivos móveis.
Graphics DDR – Alta largura de banda para Placas de vídeo (ex.:
GDDR
GPUs. GDDR6).
High Bandwidth Memory – Empilhamento 3D
HBM GPUs avançadas, IA.
para largura de banda extrema.
Vantagens e Desvantagens
Vantagens Desvantagens
✅ Alta densidade (mais barata que SRAM). ❌ Requer refresh constante.
✅ Custo-benefício para memória principal. ❌ Mais lenta que SRAM (~10x).
✅ Escalável (DDR4, DDR5, etc.). ❌ Operação de leitura destrutiva.
Comparação DRAM vs. SRAM
Critério DRAM SRAM
Tecnologia Capacitor + transistor (1T1C). 6 transistores por bit (6T).
Refresh Necessário. Não necessário.
Velocidade 50–100 ns. 1–10 ns.
Custo Mais barata. Muito mais cara.
Uso
Memória RAM (principal). Caches (L1, L2, L3).
Principal
Aplicações da DRAM
Memória principal (RAM) em PCs, servidores e smartphones.
GPUs (GDDR, HBM) para processamento gráfico e IA.
Roteadores e sistemas embarcados (LPDDR).
Exemplo Prático: DDR5 DRAM
Taxa de Transferência: Até 6.4 GT/s (gigatransfers por segundo).
Energia: ~1.1V (mais eficiente que DDR4).
Bancos: 16–32 para paralelismo.
Conclusão
A DRAM é a memória volátil padrão para sistemas computacionais, equilibrando custo,
densidade e desempenho. Sua necessidade de refresh e latência mais alta são compensadas
pela capacidade escalável (ex.: DDR5 com 128 GB módulos) e alta largura de banda,
essenciais para aplicações modernas como jogos, edição de vídeo e machine learning.
🔍 Curiosidade: A memória não volátil (como a Intel Optane) tenta substituir parcialmente a
DRAM, mas ainda não superou seu custo-benefício para uso geral.
Definição de SRAM (Static Random-Access Memory)
A SRAM (Static Random-Access Memory) é um tipo de memória volátil de alta velocidade
que armazena dados enquanto houver energia elétrica, sem necessidade de refresh
(diferente da DRAM). Cada bit é armazenado em um circuito baseado em transistores,
garantindo acesso rápido e baixa latência.
Por que a Cache usa SRAM?
A SRAM é a tecnologia preferida para caches devido às suas características essenciais para
desempenho:
1. Velocidade Extremamente Alta
o A SRAM tem tempos de acesso na faixa de nanossegundos (ns) ou menos,
enquanto a DRAM é mais lenta (geralmente acima de 10–50 ns).
o A CPU opera em frequências altíssimas (GHz), e a SRAM consegue acompanhar
essa velocidade sem gargalos.
2. Não Requer Refresh
o A SRAM mantém os dados enquanto houver energia, sem necessidade de
refresh (diferente da DRAM, que perde carga e precisa ser atualizada
periodicamente).
o Isso elimina overheads de tempo e simplifica o controle da cache.
3. Acesso Direto e Baixa Latência
o A SRAM permite acesso aleatório sem ciclos de pré-carregamento (como a
DRAM, que precisa reativar linhas de memória).
o Ideal para operações rápidas e previsíveis exigidas pela cache (L1, L2, L3).
4. Consumo de Energia em Operação
o Embora a SRAM consuma mais energia por bit que a DRAM em repouso, seu
consumo durante operações é mais eficiente para caches (que estão sempre
ativas).
Comparação SRAM vs. DRAM
Característica SRAM (Cache) DRAM (Memória Principal)
Velocidade Extremamente rápida (~1 ns) Mais lenta (~10–50 ns)
Refresh Não necessita Requer refresh constante
Complexidade 6 transistores por bit (maior 1 transistor + capacitor (mais
Celular área) compacta)
Característica SRAM (Cache) DRAM (Memória Principal)
Custo Muito mais cara Mais barata
Cache (L1, L2, L3),
Uso Típico RAM principal, módulos DDR
registradores
1. Hierarquia de Memória
A hierarquia segue o princípio: quanto mais rápida a memória, menor sua capacidade e
maior seu custo por bit.
Nível Exemplo Velocidade Capacidade Custo
Registradores
Registradores 1 ciclo ~KB Alto
da CPU
Cache (L1, L2, L3) SRAM (on-chip) 1–50 ns KB–MB Alto
Memória Principal DRAM (RAM) 50–100 ns GB Médio
Armazenamento ms
SSD/HDD TB Baixo
Secundário (milissegundos)
Armazenamento Muito
Fitas, Nuvem Segundos PB+
Terciário baixo
2. Localização da Memória
Tipo Descrição Exemplos
Memória Integrada ao sistema (CPU ou placa-mãe), Registradores, Cache,
Interna acesso ultrarrápido. RAM
Memória Dispositivos de armazenamento não HDD, SSD, pendrives,
Externa voláteis, fora do barramento principal. discos ópticos
3. Desempenho da Memória
Métrica Definição Exemplo
Tempo de Tempo desde a solicitação até a Cache L1: ~1 ns,
Acesso disponibilidade do dado. HDD: ~5 ms
Intervalo mínimo entre dois acessos DRAM: ~10 ns
Tempo de Ciclo
consecutivos. (com refresh)
Taxa de Velocidade de leitura/escrita (ex.: GB/s). DDR5 RAM: ~50
Transferência Depende da largura do barramento. GB/s
4. Métodos de Acesso
Tipo Descrição Exemplo
Fitas
Sequencial Dados são acessados em ordem (um após o outro).
magnéticas
Direto Acesso aleatório a um endereço físico específico. RAM, SSD
Associativ Busca por conteúdo (ex.: cache que usa tags para
Caches L1/L2
o localizar dados).
Qualquer posição pode ser acessada diretamente, sem
Aleatório DRAM, SRAM
ordem prévia.
5. Tipos Físicos de Memória
Tipo Tecnologia Exemplos
Baseada em transistores (volátil/não SRAM, DRAM, Flash
Semicondutor
volátil). (SSD)
HDD, fitas
Magnético Armazena dados em campos magnéticos.
magnéticas
Usa lasers para ler/gravar dados em
Óptico CDs, DVDs, Blu-ray
superfícies reflexivas.
Tipo Tecnologia Exemplos
Magnético- Combina laser e magnetismo para escrita Discos MO (raros
Óptico térmica. hoje)
6. Unidade de Transferência
Unidade Definição Exemplo
Palavra Tamanho padrão de dados processados pela CPU CPUs x86: 64-bit
(Word) (ex.: 32 bits, 64 bits). words
Bloco Conjunto de palavras transferidas entre Cache L1: blocos de
(Block) memórias (ex.: cache line = 64B). 64 bytes
7. Capacidade da Memória
Medida Descrição Exemplo
Número de Quantidade de palavras armazenadas (ex.: 16 GB = 2 bilhões de
Palavras RAM de 16 GB com palavras de 64 bits). palavras (64-bit)
Número de HDD de 1 TB = 1
Capacidade total em bytes (1 byte = 8 bits).
Bytes trilhão de bytes
Resumo das Características
Aspecto Opções
Localização Interna (CPU, RAM) vs. Externa (HDD, SSD)
Desempenho Tempo de acesso, ciclo, taxa de transferência
Método de Acesso Sequencial, direto, associativo, aleatório
Tipo Físico Semicondutor, magnético, óptico, magnético-óptico
Unidade de Palavra (CPU), bloco (cache/memória)
Aspecto Opções
Transferência
Capacidade Número de palavras × tamanho da palavra (ou bytes totais)
A memória cache é um componente crítico nos sistemas computacionais modernos, projetado
para acelerar o acesso aos dados e instruções frequentemente utilizados. Vamos explorar seus
aspectos principais:
1. Por que a Memória Cache foi Criada?
Problema da Lentidão: A CPU é muito mais rápida que a memória RAM, criando um
gargalo (o “gap de velocidade”). Sem a cache, a CPU ficaria ociosa aguardando dados
da RAM.
Solução: A cache armazena cópias de dados/instruções usados recentemente,
reduzindo o tempo de acesso (ela é mais rápida que a RAM, porém menor em
capacidade).
2. Modo de Funcionamento
Princípio da Localidade:
o Localidade Temporal: Dados acessados recentemente tendem a ser
reutilizados.
o Localidade Espacial: Dados próximos na memória (como arrays) são
frequentemente acessados em sequência.
Fluxo:
2. A CPU verifica se o dado está na cache (cache hit). Se estiver, usa-o
diretamente.
3. Se não estiver (cache miss), busca na RAM e armazena uma cópia na cache
para futuros acessos.
3. Endereços de Memória Cache
A cache não tem endereços próprios. Ela mapeia blocos da memória principal (RAM)
para suas linhas. O endereçamento envolve:
o Tag: Identifica qual bloco da RAM está naquela linha da cache.
o Índice: Define a linha da cache onde o bloco está (ou pode estar).
o Deslocamento (Offset): Localiza o dado específico dentro do bloco.
4. Tamanho da Memória Cache
Hierarquia:
o L1 (Level 1): Menor (KB a MB), mais rápida, integrada na CPU.
o L2/L3: Maiores (MB), mais lentas, porém ainda rápidas comparadas à RAM.
Trade-off: Caches maiores reduzem misses, mas aumentam latência e custo.
5. Funções de Mapeamento
Técnicas para associar blocos da RAM à cache:
a) Mapeamento Direto
Cada bloco da RAM vai para uma única linha específica na cache (calculada por Índice
= (Endereço RAM) mod (Número de linhas)).
Vantagem: Simplicidade.
Desvantagem: Conflitos se múltiplos blocos competirem pela mesma linha.
b) Mapeamento Associativo
Totalmente Associativo: Um bloco pode ocupar qualquer linha da cache.
o Vantagem: Minimiza conflitos.
o Desvantagem: Busca lenta (verifica todas as linhas).
Parcialmente Associativo (Conjunto-Associativo): Compromisso entre direto e
totalmente associativo. A cache é dividida em conjuntos, e cada bloco mapeia para um
conjunto, mas pode ocupar qualquer linha dentro dele.
Exemplo Prático
CPU acessa 0xABCD:
1. Extrai tag, índice e offset do endereço.
2. Verifica a linha correspondente ao índice na cache.
3. Compara a tag da linha com a tag do endereço:
Se iguais (hit), lê o dado no offset.
Se diferentes (miss), busca na RAM e atualiza a cache.
Detalhamento dos Algoritmos de Mapeamento em Memória Cache
Os algoritmos de mapeamento definem como os blocos da memória principal (RAM) são
alocados na memória cache. Existem três técnicas principais:
1. Mapeamento Direto
2. Mapeamento Associativo (Totalmente Associativo e Parcialmente Associativo)
Vamos detalhar cada uma delas.
1. Mapeamento Direto
Cada bloco da memória principal é mapeado para exatamente uma linha específica na cache.
o mapeamento direto em caches dispensa a aplicação de algoritmos de substituição de blocos.
Funcionamento
A cache é dividida em linhas, e cada linha armazena um bloco de dados da RAM.
O endereço da memória é dividido em três partes:
o Tag: Identifica o bloco único naquela linha.
o Índice: Determina qual linha da cache será usada.
o Offset: Seleciona o dado específico dentro do bloco.
📌 Fórmula do Índice:
Iˊndice=(Enderec¸o da Memoˊria)mod (Nuˊmero de Linhas na Cache)Iˊndice=(Enderec¸o da
Memoˊria)mod(Nuˊmero de Linhas na Cache)
Vantagens
✅ Simplicidade: Fácil implementação em hardware.
✅ Baixa latência: Acesso rápido, pois só uma linha precisa ser verificada.
Desvantagens
❌ Alto conflito: Se dois blocos diferentes mapearem para a mesma linha, ocorre conflito,
causando misses frequentes.
Exemplo
Cache com 4 linhas (índices 0 a 3).
Acesso ao endereço 14 (binário: 1110):
o Se cada linha armazena 4 bytes:
Offset: 2 bits (últimos 2 bits = 10 → dado no byte 2 do bloco).
Índice: 2 bits (11 → linha 3).
Tag: Restante (11).
Se outro endereço como 18 (10010) também mapear para a linha 3 (10), ocorre um conflito.
2. Mapeamento Associativo
Permite que um bloco da RAM seja colocado em qualquer linha da cache, reduzindo conflitos.
a) Totalmente Associativo
Qualquer bloco pode ocupar qualquer linha da cache.
Busca lenta: Todas as tags devem ser comparadas (usando comparadores paralelos).
Vantagens
✅ Baixos conflitos: Maximiza aproveitamento da cache.
Desvantagens
❌ Alto custo de hardware (todos os slots são verificados simultaneamente).
❌ Mais lento que mapeamento direto em caches grandes.
b) Parcialmente Associativo (Conjunto-Associativo)
Compromisso entre Direto e Totalmente Associativo.
A cache é dividida em conjuntos, e cada conjunto tem N linhas.
Um bloco é mapeado para um conjunto específico, mas pode ocupar qualquer linha
dentro dele.
📌 Fórmula do Conjunto:
Conjunto=(Enderec¸o da Memoˊria)mod (Nuˊmero de Conjuntos)Conjunto=(Enderec¸o da Me
moˊria)mod(Nuˊmero de Conjuntos)
Grau de Associatividade (N-way)
2-way: 2 linhas por conjunto.
4-way: 4 linhas por conjunto.
Fully Associative (N = total de linhas): 1 conjunto com todas as linhas.
Vantagens
✅ Menos conflitos que mapeamento direto.
✅ Mais rápido que totalmente associativo.
Desvantagens
❌ Mais complexo que mapeamento direto.
3. Políticas de Substituição (Replacement Policies)
Quando a cache está cheia e um novo bloco precisa ser carregado, qual bloco será
substituído?
a) LRU (Least Recently Used)
Remove o bloco menos recentemente usado.
Vantagem: Alta eficiência (usa princípio da localidade temporal).
Desvantagem: Complexidade de rastreamento (hardware caro para caches grandes).
b) FIFO (First-In, First-Out)
Remove o bloco mais antigo (independe de uso recente).
Vantagem: Simples de implementar.
Desvantagem: Pode remover blocos frequentemente usados.
c) Aleatório (Random)
Escolhe um bloco aleatório para substituição.
Vantagem: Simplicidade.
Desvantagem: Pior desempenho que LRU em geral.
d) LFU (Least Frequently Used)
Remove o bloco menos frequentemente acessado.
Vantagem: Bom para padrões de acesso repetitivos.
Desvantagem: Dificuldade de implementação eficiente.
Resumo Comparativo
Tipo de
Conflitos Complexidade Latência Uso Típico
Mapeamento
Direto Alto Baixa Mínima L1 Cache
Totalmente Quase TLB, Caches
Alta Alta
Associativo nenhum pequenas
Conjunto- L2/L3 Cache (4-
Moderado Média Balanceada
Associativo way a 16-way)
Conclusão
Mapeamento Direto: Rápido, mas sofre com conflitos.
Totalmente Associativo: Poucos conflitos, mas lento e caro.
Conjunto-Associativo: Melhor equilíbrio (usado na maioria das caches modernas).
Políticas de Substituição: LRU é o mais eficiente, mas FIFO e Aleatório são mais
simples.
Política de Escrita (Write Policy)
Define como escritas na cache são tratadas:
Política Funcionamento Vantagens Desvantagens
Dados são escritos tanto na cache Garante Lento (toda escrita
Write-Through
quanto na RAM simultaneamente. consistência. vai para RAM).
Dados são escritos apenas na
cache; RAM é atualizada só
quando o bloco é substituído (dirty
Rápido (evita
bit marca modificações). Risco de
escritas
Write-Back Os dados modificados são inconsistência em
desnecessárias
armazenados apenas no cache e falhas de energia.
na RAM).
escritos na memória principal
somente quando a linha de cache
correspondente é substituída.
Write Allocation: Se um write miss ocorre, o bloco é carregado na cache antes da
escrita.
No-Write Allocation: A escrita vai direto para a RAM, sem carregar o bloco na cache.
Latência e Taxa de Miss
Latência de Acesso: Tempo para ler/escrever na cache (L1: ~1–4 ciclos, L2: ~10 ciclos,
L3: ~30–50 ciclos).
Miss Rate: Porcentagem de acessos que não encontram dados na cache.
o Miss Types:
Compulsory (Cold) Miss: Primeiro acesso a um bloco.
Capacity Miss: Cache cheia, blocos úteis são substituídos.
Conflict Miss: Colisão em mapeamento direto/associativo.
Coerência em Sistemas Multiprocessados (Cache Coherence)
Problema: Se várias CPUs têm caches, como garantir que todas vejam a mesma versão
dos dados?
Soluções:
o Protocolo MESI (Modified, Exclusive, Shared, Invalid): Mantém estados para
cada bloco.
o Snooping: Caches "espionam" o barramento para detectar atualizações.
o Directory-Based: Um controlador central rastreia cópias dos dados.
Tipos de ROM
Como o nome sugere, uma memória somente de leitura (ROM — do inglês, Read-Only
Memory) contém um padrão permanente de dados, que não pode ser mudado. Uma ROM é
não volátil, ou seja, nenhuma fonte de energia é necessária para manter os valores dos bits na
memória. Embora seja possível ler uma ROM, não é possível escrever algo novo nela. Uma
aplicação importante das ROMs é a microprogramação.
Outras aplicações em potencial incluem:
Programas do sistema.
Sub-rotinas de biblioteca para funções frequentemente utilizadas.
Tabelas de função.
Existem diferentes tipos de memória ROM:
PROM (Programmable ROM) — Gravação feita após a fabricação através da queima
dos fusíveis sendo feita somente uma vez;
EPROM (Erasable PROM) — Pode ser programada e apagada várias vezes,
semelhante à RAM estática. No entanto, para apagar o seu conteúdo, é necessário
expor a memória a uma luz ultravioleta;
EEPROM (Electrically EPROM) — A programação, o apagamento e a reprogramação
são feitas por controle do processador. São lentas e caras em relação às RAMs e
ROMs, tendo baixa velocidade e capacidade de armazenamento;
Memória Flash (Tipo especial de EEPROM) — Pode ser apagada e regravada em
blocos e só suporta reprogramações.
Há dois tipos distintos de memória flash, designados como NOR e NAND
Na memória flash NOR, a unidade básica de acesso é um bit, referido como uma célula
de memória. As células na flash NOR são conectadas em paralelo às linhas de bit, de modo
que cada célula pode ser lida/gravada/apagada individual mente. Se qualquer célula de
memória do dispositivo for ligada pela linha de palavra correspondente, a linha de bit
diminui. Isso é similar em função a uma porta lógica NOR.
A memória flash NAND é organizada em arrays de transistor com 16 ou 32 transistores
em séries. A linha de bit diminui somente se todos os transistores nas linhas de palavra
correspondente forem ligados. Isso é similar em função a uma porta lógica NAND.
A memória flash NOR proporciona acesso aleatório de alta velocidade. Pode ler e
escrever dados para locais específicos e recuperar um único byte. A NAND lê e escreve em
pequenos blocos. Ela fornece densidade de bits mais alta e maior velocidade de gravação. A
flash NAND não oferece barramento de endereço externo de acesso aleatório, de modo que
os dados devem ser lidos em um bloco básico (também conhecida como acesso de página),
em que cada bloco mantém centenas a milhares de bits. Para a memória interna nos
sistemas embarcados, a memória flash NOR tem sido tradicionalmente preferida.
A memória NAND fez algumas incursões, mas a NOR permanece a tecnologia dominante
para a memória interna. É idealmente adequado para microcontroladores em que a
quantidade de código de programa é relativamente pequena e uma certa quantidade de
dados de aplicações não varia
A memória NAND é mais bem adequada para a memória externa, como drives flash USB,
cartões de memória (em câmeras digitais, tocadores de MP3 etc.), e neles são chamados de
discos em estado sólido (SSDs).
🔍 Comparação Detalhada (NOR vs. NAND)
Característica Flash NOR Flash NAND
Aleatório
Tipo de Acesso Sequencial (em blocos)
(como RAM)
⚡ Muito
Velocidade de 🐢 Mais lenta (requer
rápida (XIP
Leitura buffer)
possível)
Velocidade de ⚡ Rápida (ideal para
🐢 Lenta
Escrita escrita em massa)
Densidade de 👎 Baixa (mais 👍 Alta (mais barata por
Armazenamento cara por GB) GB)
👎 Ciclos
👎 Ciclos limitados
Durabilidade limitados
(~10.000-100.000)
(~100.000)
Firmware, Armazenamento em
Uso Típico
código executável massa (SSDs, pendrives)