Arquitetura de Computadores · Ibmec RJ

Cap. 4 — Sistema
de Memória

leitura ~35 min Prof. Clayton J A Silva Rev 2026.2

Objetivos de aprendizagem

  • Descrever a hierarquia do sistema de memória e seus parâmetros (capacidade, tempo de acesso, ciclo)
  • Classificar as tecnologias de memória: ROM x RAM, estática x dinâmica, síncrona x assíncrona
  • Compreender a organização endereçável da memória principal
  • Aplicar o princípio da localidade e a organização MP-cache
  • Calcular o tempo médio de acesso e analisar técnicas de mapeamento e substituição de cache

Hierarquia do sistema de memória

As características de performance de cada tipo de memória usado no sistema de computação podem ser representadas por uma pirâmide, que relaciona capacidade de armazenamento, velocidade e custo.

Registradores Cache Memória Principal Memória Secundária ↑ velocidade, custo/bit ↑ capacidade, tempo de uso

Fig. 4.1 — Pirâmide de hierarquia do sistema de memória: registradores, cache, memória principal e memória secundária

Quanto mais próximo da base, maior a capacidade de armazenamento e o tempo de uso, e menor o custo por bit armazenado. Os quatro tipos de memória usados são: memória secundária, memória principal, memória cache e registradores.

TipoCapacidadeVelocidadeCusto/bit
Registradoresmenormaiormaior
Cachebaixa/médiaaltaalto
Memória Principalmédiamédiamédio
Memória Secundáriamaiormenormenor

parâmetros de memória

Capacidade: número de bits que a memória pode armazenar — em bytes (B), com múltiplos 210=1K, 220=1M, 230=1G.
Tempo de acesso: tempo entre a disponibilização do endereço e a disponibilização do dado.
Ciclo de memória: tempo entre duas operações sucessivas de acesso (leitura ou escrita).

$$t_C = t_A + t_S$$

tC: ciclo de memória · tA: tempo de acesso · tS: tempo de outras operações do sistema

Tecnologias de construção

Memória ROM RAM PROM EPROM/EEPROM/Flash estática dinâmica

Fig. 4.2 — Árvore de classificação das tecnologias de memória: ROM e RAM

AtributoROM (Read Only Memory)RAM (Random Access Memory)
Leitura/escritaNão admite livremente — escrita controladaAdmite leitura e escrita livremente
VolatilidadeNão volátil — mantém dados sem alimentaçãoVolátil — perde dados sem alimentação
Forma de acessoAleatórioAleatório
No acesso aleatório, o tempo de acesso é curto e igual para todas as células, sem necessidade de ler outras posições antes. No acesso sequencial, é necessária uma sucessão preliminar de posições antes de acessar a célula de interesse.

A evolução das ROMs venceu o inconveniente de não admitir reprogramação:

TecnologiaCaracterística
PROM (Programmable ROM)Programável uma única vez
EPROM (Erasable PROM)Apagada e programada novamente
EEPROM (Electrically-Erasable PROM)Apagada e gravada eletricamente
FlashTipo de EEPROM reprogramável no próprio circuito — cada vez mais usada

Aplicações típicas das ROMs:

ClassificaçãoTipo ATipo B
Quanto à retenção do dadoEstática — dado permanece armazenadoDinâmica — requer refresh periódico
Quanto à temporizaçãoAssíncrona — libera dados só após sinal de controleSíncrona (SDRAM) — acompanha o clock do sistema
A evolução mais recente é a SDRAM DDR (Double Data Rate), que transfere dados tanto na transição positiva quanto na negativa do ciclo de clock.

Os dispositivos de memória são construídos com semicondutores — destacam-se as tecnologias MOS (óxido metálico) e CMOS (óxido complementar) — além de meios magnéticos e ópticos.

Nível da hierarquiaTecnologiaFunção principal
Memória secundáriaMeios ópticos e magnéticosArmazenar grandes volumes, tempo de acesso/ciclo lentos, custo baixo
Memória principalSemicondutor (RAM estática/dinâmica)Armazenar programa e dados acessados pelo processador
Memória cacheSemicondutor (ROM), interna ou não ao processadorArmazenar dados localmente/temporalmente mais prováveis de acesso (localidade)
RegistradoresSemicondutorDezenas de bits, internos ao processador

Memória Principal ou Primária

A MP armazena programas e dados. As instruções compreendem um campo de código (opcode) e um campo de operandos — ambos ocupam endereços bem definidos na MP.

O endereço de memória pode ser entendido como uma matriz de células, cada uma armazenando 0 ou 1. A MP contém M linhas de endereço de palavra de N bits, endereçáveis em forma binária por 2L, tal que 2L=M.

RAM 4Kbit (Motorola) A0–A9 VCC, VSS W̄ (R/W) S̄ (enable) I/O1–I/O4

Fig. 4.3 — Exemplo de memória RAM Motorola, 4096 bits (4 Kbits)

PinoFunção
A0–A9Barramento de endereço (10 bits → 210=1024 posições, faixa 000H–3FFH)
I/O1–I/O4Barramento de dados — cada posição armazena uma palavra de 4 bits
Habilita leitura ou escrita: $\bar{W}=0$ → escrita; $\bar{W}=1$ → leitura
Habilita/desabilita o chip: $\bar{S}=0$ → memória habilitada
VCC, VSSAlimentação do chip
Células adjacentes em memória têm endereços consecutivos. O tamanho típico de cada célula é de 8 bits (1 byte); bytes são agrupados em palavras de 4 ou 8 bytes. Exemplo: a memória Motorola MCM2114 possui tempo de ciclo de leitura fixo de 200 ns.

Memória cache

4.4.1 Organização MP e cache

A cache ocupa o terceiro nível a partir da base da pirâmide: média/baixa capacidade, custo alto, velocidade elevada — equilíbrio custo-benefício no desempenho.

princípio da localidade

Os programas armazenados se situam, na execução, localmente próximos no tempo ou no espaço.
Localidade espacial: instruções subsequentes tendem a estar em endereços próximos (o PC normalmente incrementa em 1 unidade).
Localidade temporal: uma instrução tem alta probabilidade de ser executada novamente em curto espaço de tempo.

CPU + L1 Cache L2 Cache L3 MemóriaPrincipal controlador de cache coordena leitura/escrita entre níveis

Fig. 4.4 — Níveis de cache (L1 interno ao processador, L2 no pacote da CPU, L3 externa) e Memória Principal

No L1, instruções e dados são separados. No L2, dados do L3 ficam prontamente disponíveis via barramento local, desonerando o barramento externo. No L3, dados são armazenados para desonerar o tempo de resposta da MP (mais lenta).

Para explorar o princípio da localidade, a MP e a cache são organizadas em blocos:

Memória Principal — N linhas de cache, K posições cada L0 L1 L2 L3 L4 ...N-1 Cache — M blocos, K posições cada (M < N) Bloco 0 Bloco 1 Bloco 2 B = L mod M

Fig. 4.5 — Organização MP-cache: a MP possui N×K posições, a cache possui M×K posições (M < N)

A cache armazena, em cada bloco: o campo de dados (tamanho da linha de cache), um flag de validade, e um campo tag que identifica qual linha de cache da MP está ali armazenada.

4.4.2 Processo de requisição de dados à cache

Como N > M, nem todos os dados da MP podem ser mapeados na cache simultaneamente.

processo

Requisição de dado pelo processador

  1. O processador requisita um dado/instrução ao controlador da cache
  2. O controlador verifica se o dado está presente na cache (e em qual bloco/endereço)
  3. Acerto (hit): o dado está presente — disponibilizado no tempo de resposta da cache
  4. Falta (miss): o dado não está presente — buscado na MP (tempo de resposta da MP), a cache é atualizada, e o dado é disponibilizado ao processador

O tempo médio de acesso ao sistema de memória, considerando o uso de cache, é dado por:

$$t_{medio} = c + (1-h).m$$

c: tempo de acesso à cache · m: tempo de acesso à MP · h: taxa de acertos

A taxa de acertos h é calculada considerando que, em k acessos, ocorreram k-1 acertos e 1 falta: h = (k-1)/k.

4.4.3 Mapeamento MP-cache

É necessário definir uma política de mapeamento que relacione os blocos da MP aos blocos da cache. Existem três técnicas:

TécnicaCaracterística
Mapeamento diretoRelacionamento predefinido entre linhas de cache da MP e blocos da cache — aumenta eficiência, mas mantém dados pouco usados por causa do relacionamento fixo
Totalmente associativoSem relação predeterminada — maior eficiência, porém maior complexidade de circuito para o espelhamento de dados
Associativo por conjuntoConcilia a simplicidade do mapeamento direto com a eficiência do totalmente associativo
MP: N=12 linhas de cache, K=4 palavras cada (48 posições) L0L1 L2L3 L4L5 L6L7 L8L9 L10L11 Cache: M=3 blocos, K=4 palavras cada (12 posições) Bloco 0 — L0,L3,L6,L9 Bloco 1 — L1,L4,L7,L10 Bloco 2 — L2,L5,L8,L11 B = L mod M · exemplo: linha 7 → bloco (7 mod 3) = 1

Fig. 4.6 — Exemplo de mapeamento direto: linhas de cache da MP (3n, 3n+1, 3n+2) mapeadas nos blocos 0, 1 e 2

As relações de endereçamento do sistema MP-cache:

RelaçãoFórmula
Bloco a partir da linha$$B = L \bmod M$$
Linha a partir do endereço MP$$L = EndMP \;div\; K$$
Bloco a partir do endereço cache$$B = EndCache \;div\; K$$
Posição na linha/bloco$$P = End \bmod K$$
Exemplo: o endereço 25 da MP está na posição 1 da linha 6 (K=4). O endereço 11 da cache está na posição 3 do seu bloco.

4.4.4 Substituição de dados da cache

Quando ocorre uma falta, é necessário buscar o dado na MP e substituir os dados de algum bloco da cache:

TécnicaCritério de substituição
FIFO (First-In-First-Out)Substitui o bloco cujos dados foram os primeiros a ser inseridos
LRU (Least Recently Used)Substitui o bloco que há mais tempo não é acessado

Política de escrita de dados — o controlador também atualiza os dados escritos na cache de volta para a MP:

Escrita direta (write through) CPU Cache MP escreve simultaneamente na cache e na MP Escrita retardada (write back) CPU Cache MP só é atualizada quando o bloco precisa ser substituído

Fig. 4.7 — Políticas de escrita: escrita direta (atualiza MP a cada escrita) vs. escrita retardada (atualiza MP apenas na substituição)

A escrita direta mantém os dados de uma linha de cache da MP sempre iguais aos do bloco da cache, com perda de eficiência pelo tempo de escrita na MP. A escrita retardada é mais eficiente, adiando a atualização até a substituição do bloco.

Teste seus conhecimentos

? Pergunta 1 de 3

Na pirâmide de hierarquia de memória, ao se aproximar da base, o que ocorre?

? Pergunta 2 de 3

No mapeamento direto MP-cache, o bloco de destino de uma linha L é calculado por:

? Pergunta 3 de 3

Qual a diferença essencial entre escrita direta (write through) e escrita retardada (write back)?

← anteriorCap. 3 — Nível de Lógica Digital