Seu navegador não oferece leitura em voz alta. Você pode ler o guia normalmente.
Por que um computador tem registradores, cache, memória principal e disco, em vez de um único tipo de memória? Porque velocidade, capacidade e custo não se combinam: o rápido é caro e pequeno; o barato é grande e lento. A hierarquia de memória organiza esses níveis para dar a impressão de uma memória grande e rápida. Provas de informática e de arquitetura de computadores cobram a ordem dos níveis e, às vezes, contas simples de desempenho, todas conferidas aqui por cálculo. Os componentes básicos estão em hardware e software: conceitos básicos.
A pirâmide de memória
Do topo (mais rápido, menor, mais caro por byte) à base:
| Nível | Característica | Volátil? |
|---|---|---|
| Registradores | dentro do processador; acesso mais rápido | sim |
| Cache (L1, L2, L3) | memória pequena e muito rápida entre o processador e a memória principal; L1 é a mais rápida e menor, e os níveis seguintes crescem em tamanho e latência | sim |
| Memória principal (RAM) | guarda programas e dados em uso | sim |
| Armazenamento secundário (SSD, HD) | grande, lento, guarda dados de forma persistente | não |
| Armazenamento terciário e cópias (fitas, nuvem) | arquivo e backup | não |
Regra de ouro: quanto mais perto do processador, mais rápida, menor e mais cara por byte; quanto mais distante, mais lenta, maior e mais barata. A RAM é volátil: perde o conteúdo sem energia. Memórias ROM e flash são não voláteis; a flash é a base do SSD.
Tipos de RAM, em linhas gerais
- SRAM: estática, mais rápida e cara, usada em caches.
- DRAM: dinâmica, precisa ser periodicamente reenergizada (“refresh”), mais barata e densa, usada como memória principal.
Por que a cache funciona: localidade
Os programas tendem a reutilizar o que usaram há pouco (localidade temporal) e a acessar dados vizinhos aos recentes (localidade espacial, por exemplo percorrer um vetor). A cache guarda blocos de memória recentes, aproveitando essas duas tendências.
- Acerto (hit): o dado está na cache.
- Falha (miss): o dado não está; é preciso buscá-lo no nível seguinte.
- Taxa de acertos (h): fração dos acessos que são acertos. A taxa de falhas é 1 - h.
Tempo médio de acesso
O cálculo cai em prova, e a pegadinha é que existem duas fórmulas conforme o enunciado.
Fórmula 1 (o tempo de falha é o tempo total para obter o dado na memória principal):
tempo médio = h x t_cache + (1 - h) x t_memória
Fórmula 2 (a cache é sempre consultada primeiro; a falha acrescenta o tempo da memória):
tempo médio = t_cache + (1 - h) x t_memória
Exemplo: cache com 2 ns, memória principal com 100 ns e taxa de acertos h = 0,9.
| Fórmula | Conta | Resultado |
|---|---|---|
| 1 | 0,9 x 2 + 0,1 x 100 | 11,8 ns |
| 2 | 2 + 0,1 x 100 | 12,0 ns |
A taxa de acertos pesa muito. Com os mesmos tempos e a fórmula 1:
| Taxa de acertos (h) | Tempo médio |
|---|---|
| 0,90 | 11,8 ns |
| 0,95 | 6,9 ns |
| 0,99 | 2,98 ns |
Subir a taxa de acertos de 0,90 para 0,99 reduz o tempo médio de 11,8 para quase 3 ns, porque cada falha custa cinquenta vezes mais que um acerto. O enunciado costuma indicar qual modelo usar; na falta, leia as palavras: “a cache é acessada primeiro, e a falha acrescenta o acesso à memória” sugere a fórmula 2.
Mapeamento e substituição
Como saber em que linha da cache um bloco da memória fica? Três formas:
| Mapeamento | Ideia |
|---|---|
| Direto | cada bloco só pode ir para uma posição fixa; simples, mas sujeito a conflitos |
| Associativo | o bloco pode ir para qualquer posição; flexível e mais caro |
| Associativo por conjuntos | o bloco vai para um conjunto e, dentro dele, para qualquer posição; meio-termo muito usado |
Quando a cache enche, uma política de substituição escolhe a vítima (como LRU, já vista em substituição de páginas). Na escrita, a política write-through grava ao mesmo tempo na cache e na memória; a write-back grava só na cache e leva o dado à memória quando o bloco é substituído.
Desempenho do processador
Três grandezas se combinam:
- Instruções (I): quantas instruções o programa executa.
- CPI: ciclos por instrução (média).
- Frequência (f): ciclos por segundo, ou seu inverso, o período do ciclo.
tempo de CPU = I x CPI / f
Exemplo: um programa com 2 bilhões de instruções, CPI médio de 1,5 e processador de 3 GHz (3 bilhões de ciclos por segundo):
tempo = 2.000.000.000 x 1,5 / 3.000.000.000 = 1,0 segundo.
A taxa de instruções por segundo é f / CPI = 3.000 / 1,5 = 2.000 milhões de instruções por segundo (2.000 MIPS). Ponto cobrado: frequência alta não significa, por si só, desempenho maior: um processador de frequência menor com CPI menor pode ser mais rápido. E mais núcleos ajudam apenas quando o programa consegue dividir o trabalho em paralelo.
Lei de Amdahl
Melhorar uma parte do sistema tem efeito limitado pela fração que não melhorou. Se uma fração p do tempo pode ser acelerada por um fator s:
ganho total = 1 / ((1 - p) + p / s)
Exemplo: a fração p = 0,6 do tempo acelerada 4 vezes (s = 4): ganho = 1 / (0,4 + 0,15) = 1 / 0,55 ≈ 1,82. Não é 4, nem perto. No limite, com aceleração infinita da parte p = 0,5, o ganho máximo seria 1 / 0,5 = 2. Lição: o gargalo é a parte que não melhora; é o argumento contra supor que dobrar núcleos dobra o desempenho.
Armazenamento: HD x SSD
| Aspecto | HD | SSD |
|---|---|---|
| Tecnologia | discos magnéticos com partes móveis | memória flash, sem partes móveis |
| Acesso | latência maior (movimento mecânico) | latência muito menor |
| Resistência a choque | menor | maior |
| Custo por capacidade | historicamente menor | historicamente maior |
Para unidades de capacidade e conversões, veja sistema binário, bits, bytes e unidades, e para redundância de discos, RAID.
Erros comuns
- Inverter a ordem da pirâmide (colocar a RAM acima da cache).
- Dizer que cache é memória secundária ou persistente.
- Usar a fórmula errada do tempo médio sem ler o enunciado.
- Achar que o dobro da frequência dobra o desempenho.
- Esquecer que a lei de Amdahl limita o ganho pela parte não acelerada.
- Confundir cache de processador com cache de navegador (a de navegador é cópia local de arquivos da web).
Fontes e atualização
Não há norma oficial brasileira sobre arquitetura de computadores; o conteúdo segue a literatura clássica da área. Todos os cálculos foram conferidos por execução. Tamanhos típicos de cache e termos como L1, L2 e L3 variam entre produtos: confira o edital.
Próximos passos
- Reveja os componentes em hardware e software: conceitos básicos.
- Veja a substituição de páginas em memória virtual: FIFO, LRU e ótimo.
- Pratique a base numérica em sistema binário, bits, bytes e unidades.