Pular para o conteúdo principal

Aula 7 — Memória Principal: Organização e Classificação

Apresentação​

A Aula 6 fechou com uma promessa: "uma memória é, em primeira aproximação, um conjunto de registradores com um decodificador de endereço que escolhe qual deles responde." Esta aula cumpre essa promessa — e mostra por que ela é só uma "primeira aproximação".

A parte do decodificador de endereço será confirmada logo na primeira seção. A diferença central está na célula. Construir palavras de memória com flip-flops D, um por bit, é possível — e esse princípio é empregado em um banco de registradores pequeno, dentro da CPU. Para a memória principal, que precisa armazenar bilhões de bits, contudo, o custo de área por bit desse arranjo é proibitivo. Surge, então, a pergunta que organiza esta aula: o que substitui o flip-flop quando a densidade e o custo por bit são mais importantes que a velocidade?

A resposta tem duas metades. A primeira é de projeto de circuito: existe uma célula muito mais simples — um único transistor e um capacitor — que troca velocidade e estabilidade por área. A segunda é de sistema: como esse compromisso se desdobra em toda uma família de tecnologias de memória, cada uma otimizando um ponto diferente da mesma troca.

Por que estudar isso em Organização de Computadores​

Porque os módulos de memória principal de computadores atuais empregam as tecnologias DDR estudadas nesta aula. Especificações como capacidade, taxa de transferência e latência — por exemplo, DDR4-3200 — só podem ser interpretadas corretamente quando relacionadas à organização interna da memória. Mais adiante, na Unidade 4, o mesmo vocabulário de endereços e dados reaparece no caminho de dados da CPU; nas Unidades 5 e 6, as instruções executadas no Bisk-8 estarão armazenadas, palavra por palavra, em uma memória organizada segundo esses princípios.

Objetivos​

Ao final desta aula você deve ser capaz de:

  • Explicar o que é uma palavra de memória e como um endereço a localiza, distinguindo capacidade, largura de palavra e largura de endereço.
  • Calcular quantos bits de endereço uma memória de determinada capacidade exige e explicar como pastilhas de diferentes larguras são combinadas em um módulo.
  • Descrever a função dos sinais de uma memória na notação do livro-texto — A0…An, D0…Dn, R/W̄ e ME — e a sequência de uma operação de leitura ou escrita.
  • Classificar uma memória por acesso (aleatório × sequencial), por volatilidade (volátil × não volátil) e por tecnologia de célula (estática × dinâmica).
  • Comparar as vantagens e desvantagens das memórias estáticas e dinâmicas, e justificar por que um computador usa as duas.
  • Explicar a organização em matriz de uma memória dinâmica e o papel dos sinais RAS e CAS.
  • Distinguir DRAM assíncrona de síncrona, e descrever o que cada geração DDR (DDR a DDR4) melhora em relação à anterior.
  • Calcular a latência real de acesso a partir da frequência de relógio e do número de ciclos.
  • Justificar a necessidade de paridade ou de código de correção de erro, e aplicar a condição do código de Hamming.
  • Comparar as memórias Flash do tipo NOR e do tipo NAND quanto a acesso, granularidade de apagamento e uso típico.

Conteúdo​

1. Da célula ao módulo: conceitos básicos​

Uma memória guarda palavras: grupos de bits tratados em conjunto por uma determinada interface. A largura da palavra depende do nível e da organização considerados; em arquiteturas de propósito geral, operandos de 32 e 64 bits são comuns. O espaço de memória principal, entretanto, costuma ser endereçado byte a byte, e essa é a unidade adotada nos cálculos a seguir.

  • Bit: a menor unidade de informação binária, valendo 0 ou 1.
  • Byte: um grupo de 8 bits — e, o que importa aqui, é a menor unidade que tem endereço próprio na memória. "b" minúsculo é bit; "B" maiúsculo é byte, e a diferença nunca é decorativa: um HD "de 8 Tb" e um "de 8 TB" diferem em oito vezes.

A capacidade de uma memória é o total de bytes que ela armazena, e cada byte tem um endereço — um número binário que o identifica, usado tanto para ler quanto para escrever naquela posição. Se uma memória tem NN posições, o endereço precisa de ⌈log⁡2N⌉\lceil \log_2 N \rceil bits: 8 posições exigem 3 bits (000 a 111), 64 exigem 6 bits, e assim por diante — é a mesma conta que a Aula 1 já cobrou para multiplicadores binários.

Isto já apareceu na página de notação

A Referência de notação, Seção 11 já define o bloco de memória com barramentos de endereço (A) e de dados (D), e a fórmula 2bits de enderec¸o2^{\text{bits de endereço}} palavras. Esta aula retoma esse bloco e completa o que falta lá: os sinais de controle por extenso, a classificação por tecnologia, e como esse bloco é construído por dentro.

Uma unidade de memória pode ser composta por várias pastilhas (chips) reunidas em uma placa para formar um módulo. Essas pastilhas podem operar em paralelo para ampliar a largura da palavra transferida e, em outras organizações, formar grupos selecionados para ampliar a capacidade total. A Seção 3 apresenta um exemplo do primeiro caso.


2. Sinais de controle de uma memória​

O bloco de memória se comunica com o restante do sistema por quatro grupos de sinais. Nesta disciplina, a notação principal é a adotada por SILVA e BORGES (2024):

SinalFunção
A0…An — entrada de endereçoseleciona a posição a ser acessada. Uma memória de NN palavras precisa de ⌈log⁡2N⌉\lceil \log_2 N \rceil linhas de endereço
D0…Dn — entrada/saída de dadostransporta a palavra lida ou escrita; uma palavra de 8 bits utiliza D0…D7
R/W — leitura/escrita1 seleciona leitura; 0 seleciona escrita
ME — Memory Enable (habilita memória)habilita ou desabilita a pastilha, permitindo combinar várias pastilhas em uma memória maior

A sequência de uma operação de leitura ou escrita tem sempre quatro passos:

  1. Colocar o endereço nas linhas A0…An.
  2. Selecionar a operação por meio de R/W: 1 para leitura ou 0 para escrita.
  3. Se for uma escrita, fornecer a palavra nas linhas D0…Dn.
  4. Habilitar a pastilha por meio de ME.
Equivalência com simuladores e folhas de dados

Algumas ferramentas e pastilhas comerciais apresentam sinais como WE (Write Enable) e CS (Chip Select) no lugar de R/W e ME. Essas denominações devem ser interpretadas conforme a polaridade indicada no componente, mas são tratadas aqui como notações alternativas. Nos diagramas, explicações e exercícios da disciplina, devem-se priorizar R/W e ME, em conformidade com o livro-texto.

As operações de leitura e escrita não são instantâneas — levam um intervalo chamado tempo de acesso, que depende do tipo de operação e da tecnologia da memória. É exatamente esse tempo que organiza o resto da aula: cada tecnologia de memória, a partir daqui, é uma forma diferente de negociar tempo de acesso contra custo e capacidade.


3. Classificação geral e cálculo de endereçamento​

As memórias podem ser analisadas segundo eixos independentes. A classificação em um eixo não determina, por si só, a classificação nos demais:

EixoCategoriasExemplos
Método de acessoaleatório, sequencial ou associativoRAM; registrador de deslocamento/FIFO; CAM
Volatilidadevolátil ou não volátilSRAM/DRAM; Flash/ROM
Tecnologia da célula volátilestática ou dinâmicaSRAM; DRAM
Possibilidade de alteraçãoleitura e escrita ou somente leitura/programação restritaRAM/Flash; ROM de máscara/PROM

Acesso aleatório × sequencial é o primeiro eixo. Em uma memória de acesso aleatório, qualquer posição endereçável pode ser alcançada diretamente, sem percorrer as posições anteriores; o termo descreve o método de acesso, não a possibilidade de escrita. A sigla RAM (Random Access Memory) é usada, por convenção, para as memórias voláteis de leitura e escrita. Em uma memória de acesso sequencial, os dados são alcançados em uma ordem determinada: é o caso das memórias FIFO (First In, First Out) e dos registradores de deslocamento da aula anterior. A memória principal é de acesso aleatório, e é dela que trata a maior parte desta aula.

O cálculo que toda memória exige: quantos bits de endereço?​

A conta é sempre a mesma: escrever a capacidade como potência de 2 (usando os multiplicadores binários da Aula 1) e somar os expoentes.

Exemplo 1 — quantos bits de endereço para 512 MiB?

512 MiB=29⋅220 bytes=229 bytes  ⇒  29 bits de enderec¸o512\text{ MiB} = 2^9 \cdot 2^{20}\text{ bytes} = 2^{29}\text{ bytes} \;\Rightarrow\; 29 \text{ bits de endereço}

Exemplo 2 — quantas pastilhas de 8 bits de dados compõem um módulo de 64 bits com essa capacidade, e qual a capacidade de cada uma?

64 b/8 b=8 pastilhas229÷23 bytes=226 bytes=64 MiB por pastilha64\text{ b} / 8\text{ b} = 8 \text{ pastilhas} \qquad\qquad 2^{29} \div 2^{3}\text{ bytes} = 2^{26}\text{ bytes} = 64\text{ MiB por pastilha}

As oito pastilhas operam em paralelo: todas recebem o mesmo endereço interno e cada uma fornece 8 dos 64 bits transferidos. Portanto, não há três bits de endereço destinados a selecionar uma pastilha. Em um sistema endereçado por byte, os 3 bits menos significativos identificam um dos oito bytes da palavra de 64 bits; os 26 bits mais significativos identificam uma das 2262^{26} palavras armazenadas em cada pastilha. Em uma transferência de palavra completa, todas as oito pastilhas respondem simultaneamente.

Confira você mesmo

Repita a conta para um módulo de 2 GiB: 2 GiB=2312\text{ GiB} = 2^{31} bytes, portanto o espaço endereçado por byte exige 31 bits. Com oito pastilhas ×8 em paralelo, há 2282^{28} palavras de 64 bits; cada pastilha armazena 2282^{28} posições de 8 bits, isto é, 256 MiB. Os 28 bits mais significativos selecionam a palavra, e os 3 menos significativos selecionam o byte dentro dela.


4. Voláteis e não voláteis​

O segundo eixo de classificação é a volatilidade: se a memória perde o conteúdo ao desligar a alimentação.

  • Memórias voláteis perdem o conteúdo sem energia. É o caso da RAM, que forma a maior parte da memória principal.
  • Memórias não voláteis preservam a informação mesmo desligadas. São usadas para iniciar o computador — o código de BIOS ou UEFI — porque esse código precisa estar disponível antes mesmo de a memória RAM ser inicializada.

Três tecnologias não voláteis de leitura/escrita valem menção, em ordem histórica:

TecnologiaComo se apagaObservação
EPROM (Erasable PROM)luz ultravioleta, com o chip removido do circuitoprocesso lento e físico
EEPROM (Electrical Erasable PROM)eletricamente, sem remover o chipmais prático, mas ainda demorado
Flasheletricamente, em blocos (não byte a byte)evolução direta da EEPROM; é a tecnologia da Seção 8

O nome "Flash" foi cunhado pela Toshiba para expressar a rapidez de apagamento em relação à EEPROM tradicional — e é a memória não volátil usada hoje tanto para BIOS/UEFI quanto para armazenamento secundário (SSDs, pendrives, cartões de memória).


5. Estáticas e dinâmicas​

Este é o eixo central da aula, porque é aqui que a pergunta da Apresentação se resolve: as memórias voláteis de acesso aleatório se dividem, pela tecnologia de célula, em estáticas e dinâmicas.

  • Estáticas (SRAM): não precisam de nenhuma operação além de ler e escrever — preservam a informação enquanto houver alimentação.
  • Dinâmicas (DRAM): precisam de leitura e reescrita periódica, sob risco de perder a informação — o ciclo de refresh.

A Figura 1 compara a organização das células SRAM e DRAM.

Duas células de memória lado a lado. À esquerda, a célula estática: um par de inversores cruzados formando um laço biestável, com dois transistores de acesso controlados por uma linha de palavra WL conectando o laço às duas linhas de bit complementares BL e BL barrado. À direita, a célula dinâmica: um único transistor de acesso, controlado pela mesma linha de palavra WL, conectando um capacitor a uma única linha de bit BL
A célula estática é o laço biestável da Aula 3 com dois transistores de acesso; a dinâmica troca o laço inteiro por um único capacitor.

A célula estática emprega o laço biestável de dois inversores cruzados apresentado na Aula 3, acrescido de dois transistores de acesso controlados pela linha de palavra (WLWL). Esses transistores conectam o laço às linhas de bit (BLBL e BL) durante a leitura ou a escrita. A implementação SRAM 6T utiliza, portanto, seis transistores por bit.

A célula dinâmica é mais simples: um transistor e um capacitor. O transistor, também controlado por WLWL, liga o capacitor à linha de bit BLBL. Como a corrente de fuga altera gradualmente a carga do capacitor, o valor precisa ser restaurado periodicamente por meio do refresh.

Estáticas (SRAM)Dinâmicas (DRAM)
Vantagensdados permanecem enquanto houver alimentação; menor latência; estado estável, sem refreshcélula menor (1 transistor + 1 capacitor); maior densidade; menor custo por bit
Desvantagenscélula maior (~6 transistores); menor densidade; maior custo por bitexige atualização periódica; leitura é destrutiva e exige restauração; maior latência

Em computadores de propósito geral, as memórias dinâmicas formam a memória principal, em razão da alta densidade e do baixo custo por bit; uma quantidade menor de memória estática, de menor latência, é empregada nas caches. A próxima aula situará ambas na hierarquia.

A organização em matriz​

Como cada célula armazena 1 bit, as células dinâmicas são organizadas em matrizes de linhas e colunas. O endereço é multiplexado em duas partes — endereço de linha (row address) e endereço de coluna (column address) —, o que reduz a quantidade de pinos necessários no encapsulamento.

A Figura 2 representa, de forma simplificada, a seleção de uma linha e de uma coluna em uma matriz DRAM.

Matriz de quatro por quatro células de memória dinâmica, cada uma um pequeno retrato do par transistor-capacitor. Quatro linhas horizontais rotuladas WL entram pela esquerda, uma por linha da matriz, saindo de um bloco lateral chamado endereço de linha. Quatro linhas verticais rotuladas BL saem por baixo de cada coluna e convergem para um bloco chamado endereço de coluna, que entrega um único fio de dado na base da figura
O endereço de linha seleciona uma fileira inteira para os registradores-buffer; o de coluna escolhe, dentro dela, qual bit sai.

O acesso acontece em duas etapas:

  • Leitura: chega primeiro o endereço de linha, e toda a linha selecionada é conectada aos amplificadores de leitura (sense amplifiers). O compartilhamento de carga altera o estado elétrico das células; por isso, a leitura é considerada destrutiva e exige que os valores detectados sejam restaurados na linha. Só então o endereço de coluna seleciona, no buffer de linha, os bits enviados à saída.
  • Escrita: semelhante, mas o bit novo é inserido no buffer antes de a linha (já atualizada) ser regravada por inteiro.

Um chip DRAM real reúne vários bancos e matrizes, dos quais múltiplos bits são acessados em paralelo. No módulo do Exemplo 2, oito chips ×8 trabalham simultaneamente para formar a interface externa de 64 bits.


6. DRAM assíncrona e síncrona​

A forma como a memória dinâmica recebe o endereço de linha e de coluna define mais uma divisão: assíncrona ou síncrona.

DRAM assíncrona​

O protocolo assíncrono é simples, porém pouco eficiente: o barramento de endereços é compartilhado entre linha e coluna, chegando um depois do outro, coordenado por dois sinais:

SinalFunção
RAS (Row Address Strobe)indica que o endereço de linha está disponível no barramento
CAS (Column Address Strobe)indica que o endereço de coluna está disponível no barramento
WEem 0, indica escrita
OE (Output Enable)em 0 logo após CAS, indica leitura — a informação lida aparece nos pinos de dados após um tempo determinado

A Figura 3 contrasta a temporização de uma DRAM assíncrona com a de uma DRAM síncrona.

Dois cronogramas empilhados. No de cima, memória assíncrona: uma linha de endereços mostra primeiro o endereço de linha e depois, mais à direita, o endereço de coluna; abaixo, os sinais RAS barrado e CAS barrado descem em sequência, cada um alinhado ao respectivo endereço; por fim RW e uma linha de dados de saída que só fica válida bem depois do CAS. No de baixo, memória síncrona: um sinal de relógio regular ao fundo; RAS e CAS descem ainda em sequência, mas alinhados a bordas do relógio; e quatro valores de dados D0 a D3 aparecem em sequência, um a cada borda de subida, formando uma rajada
A diferença central: na assíncrona, cada sinal de controle dispara o próximo passo por si mesmo; na síncrona, tudo se alinha às bordas de um relógio comum, o que permite entregar vários dados em rajada.

É condição de erro WE e OE estarem ativos ao mesmo tempo. Como toda DRAM, a assíncrona também precisa de refresh periódico.

DRAM síncrona​

Nas DRAM síncronas, comandos e transferências são coordenados por um relógio, o que permite operar em modo rajada (burst mode): após a latência inicial, vários dados consecutivos são transferidos em bordas sucessivas. Esse comportamento é adequado ao preenchimento de uma linha de cache após uma falha, pois transfere um bloco de endereços contíguos e explora a localidade espacial, formalizada na próxima aula.

SDRAM (Synchronous DRAM): a primeira geração síncrona, também chamada SDR SDRAM (Single Data Rate) depois que vieram gerações mais rápidas. A matriz de células opera na mesma frequência do barramento externo (100 ou 133 MHz — módulos comerciais PC-100 e PC-133), em módulos DIMM de 168 pinos, entregando 64 bits (sem correção de erro) ou 72 bits (com ECC — ver Seção 7) por acesso.

DDR, DDR2, DDR3 e DDR4 (Double-Data-Rate SDRAM): transferem dados tanto na subida quanto na descida do relógio, dobrando a taxa de transferência sem dobrar a frequência da interface com o processador. Cada geração muda a forma como a matriz interna se relaciona com essa taxa dobrada:

GeraçãoPrefetch típicoTensão nominalAvanço principal em relação à geração anterior
DDR2n2,5 Vduas transferências por ciclo do relógio de E/S
DDR24n1,8 Vinterface de E/S mais rápida e prefetch ampliado
DDR38n1,5 Vmaior taxa de transferência, menor tensão e prefetch ampliado
DDR48n1,2 Vmaior paralelismo interno, com grupos de bancos, e menor tensão

O custo dessas otimizações é sempre o mesmo: latência maior. Uma DDR2 opera efetivamente ao dobro da velocidade de uma DDR sem acelerar a célula em si — o preço é que as células levam mais ciclos de barramento (em termos absolutos) para produzir o primeiro resultado.

Tabela — comparação de alguns padrões DDR:

PadrãoRelógio da célulaRelógio do barramentoLargura de banda
DDR-200100 MHz100 MHz1.600 MB/s
DDR2-400100 MHz200 MHz3.200 MB/s
DDR2-800200 MHz400 MHz6.400 MB/s
DDR3-800100 MHz400 MHz6.400 MB/s
DDR3-1600200 MHz800 MHz12.800 MB/s
DDR4-1600200 MHz800 MHz12.800 MB/s
DDR4-3200400 MHz1600 MHz25.600 MB/s

(A largura de banda é sempre relógio do barramento × 2 [dupla taxa] × 8 bytes de largura do canal.)

Latência real: convertendo ciclos em tempo​

O nome comercial de um módulo ("DDR3-2000", por exemplo) e a sua latência CAS (CL7, CL9...) só são comparáveis depois de convertidos em tempo absoluto:

lateˆncia (ns)=tempo de ciclo do reloˊgio (ns)×nuˊmero de ciclos (CL)\text{latência (ns)} = \text{tempo de ciclo do relógio (ns)} \times \text{número de ciclos (CL)}

O tempo de ciclo é o inverso da frequência de barramento, que é a metade do número "comercial" citado no nome do padrão.

Exemplo resolvido — DDR3-2000 CL7 × DDR3-2666 CL9:

DDR3-2000: f=1000 MHz⇒T=1 ns⇒lateˆncia=7×1=7,00 ns\text{DDR3-2000: } f = 1000\text{ MHz} \Rightarrow T = 1\text{ ns} \Rightarrow \text{latência} = 7 \times 1 = 7{,}00\text{ ns} DDR3-2666: f=1333 MHz⇒T≈0,75 ns⇒lateˆncia=9×0,75=6,75 ns\text{DDR3-2666: } f = 1333\text{ MHz} \Rightarrow T \approx 0{,}75\text{ ns} \Rightarrow \text{latência} = 9 \times 0{,}75 = 6{,}75\text{ ns}

Mesmo com mais ciclos de espera (CL9 contra CL7), a DDR3-2666 tem latência absoluta menor — porque cada ciclo dela é mais curto. É o mesmo cuidado que a Aula 1 já pediu ao comparar bases numéricas: um número maior, sozinho, não diz nada sem saber a unidade.

Módulos de gerações diferentes não são compatíveis

O entalhe do conector muda de posição a cada geração (DDR: 184 pinos, 2,5 V; DDR2: 240 pinos, 1,8 V; DDR3: 240 pinos, 1,5 V; DDR4: 288 pinos, 1,2 V) — de propósito, para impedir a inserção física de um módulo incompatível. Um módulo que não entra no soquete não deve ser forçado.


7. Paridade e código de correção de erro​

Memórias estão sujeitas a erros de bit, nos quais o valor armazenado muda de 0 para 1 ou de 1 para 0 por ruído elétrico, radiação ionizante ou falhas físicas. Mecanismos de detecção e correção acrescentam bits de verificação para reduzir o risco de corrupção silenciosa dos dados.

O esquema mais simples é o bit de paridade: um bit adicional por palavra garante que o número total de bits '1' seja sempre par (paridade par) ou sempre ímpar (paridade ímpar). Se um bit mudar de valor, isso se torna detectável na leitura seguinte. Mas a paridade simples só detecta — não corrige — e só de forma confiável para erro de 1 bit.

O código de Hamming distribui mm bits de verificação pela palavra e permite corrigir um erro de 1 bit. O Hamming básico, porém, não distingue com segurança todos os erros de 2 bits. Para obter correção de erro simples e detecção de erro duplo, acrescenta-se um bit de paridade global; esse esquema é denominado SECDED (Single Error Correction, Double Error Detection). Para determinar a quantidade de bits de Hamming necessária a kk bits de dados, utiliza-se:

k+m+1≤2mk + m + 1 \le 2^m

Exemplo resolvido — palavra de 64 bits (comum em módulos de memória atuais):

64+m+1≤2m  ⇒  m=7 (menor valor que satisfaz)64 + m + 1 \le 2^m \;\Rightarrow\; m = 7 \text{ (menor valor que satisfaz)}

Em uma palavra de 64 bits, são necessários 7 bits de Hamming para corrigir um erro simples. Um oitavo bit de verificação fornece a paridade global do SECDED, permitindo também detectar erros duplos. Por isso, módulos ECC com interface de 64 bits de dados costumam transferir 72 bits: 64 de dados e 8 de verificação, frequentemente organizados com nove chips ×8.

Bits de paridade (mm)Bits de dados (kk)Total (m+km+k)
213
347
41115
52631
65763
7120127
8247255

8. Memórias Flash​

A memória Flash — introduzida na Seção 4 como uma memória não volátil derivada da EEPROM — apresenta granularidades diferentes para suas operações. A leitura pode acessar unidades pequenas; a programação ocorre em palavras ou páginas, conforme a arquitetura; e o apagamento sempre abrange blocos inteiros. Não é possível apagar isoladamente um único bit.

Em uma implementação tradicional, a célula Flash é um transistor de efeito de campo com uma porta flutuante (floating gate), isolada por uma fina camada de óxido. A carga armazenada altera a tensão de limiar do transistor, permitindo distinguir estados lógicos; a convenção que associa esses estados a 0 e 1 depende do dispositivo. Apagar um bloco redefine conjuntamente as células desse bloco; a programação posterior altera células selecionadas, mas desfazer essa alteração exige novo apagamento do bloco.

Duas famílias, com compromissos opostos:

Flash NOR (Intel, 1988)Flash NAND (Toshiba)
Leituraacesso aleatório de baixa latência, adequado à execução direta de códigoorientada a páginas, com acesso por meio de um controlador
Programação e apagamentoprogramação de unidades pequenas; apagamento em setores/blocosprogramação em páginas; apagamento em blocos maiores
Densidade e custo por bitmenor densidade e maior customaior densidade e menor custo
Desempenho característicoleitura aleatória rápidamaior vazão em operações sequenciais de dados
Uso típicoexecutar código diretamente (BIOS, firmware)armazenamento massivo (SSD, pendrive, cartão de memória)

Nas células NAND com mais bits por célula (MLC, TLC, QLC), a densidade e o custo por byte melhoram, mas a vida útil (ciclos de apagamento) diminui — compensado, na prática, por algoritmos de distribuição de desgaste (wear leveling) entre os blocos.

Limitação de durabilidade

As células Flash suportam um número finito de ciclos de programação e apagamento. Por isso, controladores de SSDs e outros dispositivos distribuem as gravações entre os blocos e monitoram o desgaste do meio.


9. Para onde isso vai​

Esta aula respondeu "como uma memória é construída por dentro" — célula, matriz, sinais de controle, tecnologias. A pergunta que sobra é "por que um computador usa várias memórias diferentes ao mesmo tempo, em vez de escolher a melhor e usar só ela": é exatamente o assunto da Aula 8 — Hierarquia de Memória.

  • Na Aula 8, a distinção estática × dinâmica desta aula volta como o eixo central: memórias estáticas, pequenas e rápidas, ficam perto do processador (cache); memórias dinâmicas, grandes e mais lentas, formam a memória principal.
  • Na Unidade 4 — CPU, o bloco de memória desta aula (A0…An, D0…Dn, R/W e ME) é o que a unidade de controle comanda a cada ciclo de busca de instrução.
  • Nas Unidades 5 e 6, o programa em linguagem de máquina do Bisk-8 é armazenado, palavra por palavra, numa memória organizada como a desta aula — e o contador de programa da Aula 5 é o registrador que fornece o endereço a cada ciclo.

Exercícios (checkpoints)​

Verificação rápida​

Quiz6 questões

1. Uma memória tem capacidade de 16 MiB, endereçada byte a byte. Quantos bits de endereço ela exige?

  • a)16 bits
  • b)20 bits
  • c)24 bits
  • d)8 bits
  • e)32 bits

2. Na notação adotada pelo livro-texto, qual é a função do sinal ME?

  • a)Determinar qual endereço será acessado
  • b)Transportar a palavra lida ou escrita
  • c)Habilitar ou desabilitar a pastilha de memória
  • d)Selecionar leitura quando vale 1 e escrita quando vale 0
  • e)Solicitar um ciclo de atualização da DRAM

3. Por que a célula de memória dinâmica precisa de ciclos periódicos de refresh, enquanto a estática não precisa?

  • a)Porque a célula dinâmica usa um capacitor, que perde carga com o tempo por corrente de fuga
  • b)Porque a célula dinâmica opera em frequência mais alta e por isso esquenta mais
  • c)Porque a célula dinâmica não tem transistor de acesso
  • d)Porque o refresh é uma exigência do barramento, não da célula
  • e)Porque a célula estática já é atualizada a cada leitura

4. Em uma memória dinâmica organizada em matriz, o que torna a leitura de uma linha uma operação destrutiva?

  • a)O endereço de coluna apaga a linha antes de a ler
  • b)O compartilhamento de carga com as linhas de bit altera o estado das células, que precisa ser restaurado pelos amplificadores de leitura
  • c)Cada leitura incrementa automaticamente o endereço de linha
  • d)A operação de leitura consome o sinal RAS, que precisa ser reenviado
  • e)O buffer de saída sobrescreve a linha original com zeros

5. Uma memória DDR3-1600 CL10 e uma DDR3-2400 CL16 são comparadas. Qual tem a menor latência CAS absoluta?

  • a)A DDR3-1600 CL10, porque tem menos ciclos de espera
  • b)A DDR3-2400 CL16, porque seu ciclo de relógio é mais curto o suficiente para compensar os ciclos extras
  • c)As duas têm exatamente a mesma latência absoluta
  • d)Não é possível comparar sem saber a tensão de alimentação
  • e)A DDR3-2400 CL16, porque frequência mais alta sempre implica latência absoluta menor, independentemente do CL

6. Qual é a principal diferença de uso entre uma memória Flash do tipo NOR e uma do tipo NAND?

  • a)NOR só armazena texto; NAND armazena qualquer tipo de dado
  • b)NOR permite acesso aleatório a bytes individuais, sendo ideal para executar código diretamente; NAND é organizada em páginas e é voltada a armazenamento massivo
  • c)NOR é volátil; NAND é não volátil
  • d)NOR precisa de refresh periódico; NAND não precisa
  • e)NAND é mais rápida em todas as operações e por isso substituiu completamente a NOR

Questões dissertativas​

Q1

Um colega propõe construir a memória principal de um computador inteiramente com células estáticas, argumentando que assim ela seria mais rápida e não precisaria de refresh. Avalie a proposta, explicando por que ela não é adotada na prática.

Q2Difícil

Explique, com suas palavras, por que a leitura de uma memória dinâmica é chamada de destrutiva, e descreva o que precisa acontecer entre o instante em que uma linha é lida e o instante em que a memória está pronta para o próximo acesso àquela linha.

Q3

Um fabricante anuncia dois módulos: um DDR3-1866 CL13 e um DDR4-2400 CL17. Calcule a latência CAS absoluta de cada um, em nanossegundos, e explique por que o módulo de maior frequência comercial não é necessariamente o de menor latência.

Q4

Um sistema embarcado de missão crítica precisa detectar e corrigir automaticamente qualquer erro de 1 bit em suas palavras de memória de 32 bits, sem intervenção humana. Explique por que um simples bit de paridade não resolveria esse requisito, e calcule quantos bits de paridade Hamming seriam necessários.


Referências​

Principais (essenciais)​

  • SILVA, Gabriel Pereira da; BORGES, José Antonio dos S. Arquitetura e organização de computadores: uma introdução. Rio de Janeiro: LTC, 2024. Recurso online — Acervo Virtual. Número de chamada: Ac.5063593
    • Capítulo 4, Seções 4.1 e 4.2 — Memória principal e classificação das memórias (texto de referência desta aula)

Aprofundamento (opcionais)​

  • CAPUANO, Francisco Gabriel. Sistemas digitais: circuitos combinacionais e sequenciais. São Paulo: Érica, 2014. Número de chamada: Ac.5012157

    • A célula de memória estática e dinâmica do ponto de vista do circuito lógico, complementando a visão de sistema desta aula
  • TOCCI, Ronald J.; WIDMER, Neal S.; MOSS, Gregory L. Sistemas digitais: princípios e aplicações. São Paulo: Pearson Prentice Hall, 2018. Número de chamada: Ac.131146

    • Memórias comerciais, pinagem e temporização detalhada de DRAM
  • STALLINGS, William. Arquitetura e organização de computadores. São Paulo: Pearson, 2024. Número de chamada: Ac.132127

    • Discussão aprofundada de hierarquia e tecnologias de memória, incluindo os fundamentos do código de Hamming
  • BIGNELL, James. Eletrônica digital. São Paulo: Cengage Learning, 2018. Número de chamada: Ac.5038600

    • Memórias Flash do ponto de vista do dispositivo de estado sólido

Pré-requisito​