Arquitetura de Computadores · Ibmec RJ
Objetivos de aprendizagem
4.1 / 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.
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.
| Tipo | Capacidade | Velocidade | Custo/bit |
|---|---|---|---|
| Registradores | menor | maior | maior |
| Cache | baixa/média | alta | alto |
| Memória Principal | média | média | médio |
| Memória Secundária | maior | menor | menor |
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).
tC: ciclo de memória · tA: tempo de acesso · tS: tempo de outras operações do sistema
4.2 / tecnologias de construção
Fig. 4.2 — Árvore de classificação das tecnologias de memória: ROM e RAM
| Atributo | ROM (Read Only Memory) | RAM (Random Access Memory) |
|---|---|---|
| Leitura/escrita | Não admite livremente — escrita controlada | Admite leitura e escrita livremente |
| Volatilidade | Não volátil — mantém dados sem alimentação | Volátil — perde dados sem alimentação |
| Forma de acesso | Aleatório | Aleatório |
A evolução das ROMs venceu o inconveniente de não admitir reprogramação:
| Tecnologia | Característica |
|---|---|
| PROM (Programmable ROM) | Programável uma única vez |
| EPROM (Erasable PROM) | Apagada e programada novamente |
| EEPROM (Electrically-Erasable PROM) | Apagada e gravada eletricamente |
| Flash | Tipo de EEPROM reprogramável no próprio circuito — cada vez mais usada |
Aplicações típicas das ROMs:
| Classificação | Tipo A | Tipo B |
|---|---|---|
| Quanto à retenção do dado | Estática — dado permanece armazenado | Dinâmica — requer refresh periódico |
| Quanto à temporização | Assíncrona — libera dados só após sinal de controle | Síncrona (SDRAM) — acompanha o clock do sistema |
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 hierarquia | Tecnologia | Função principal |
|---|---|---|
| Memória secundária | Meios ópticos e magnéticos | Armazenar grandes volumes, tempo de acesso/ciclo lentos, custo baixo |
| Memória principal | Semicondutor (RAM estática/dinâmica) | Armazenar programa e dados acessados pelo processador |
| Memória cache | Semicondutor (ROM), interna ou não ao processador | Armazenar dados localmente/temporalmente mais prováveis de acesso (localidade) |
| Registradores | Semicondutor | Dezenas de bits, internos ao processador |
4.3 / memória principal
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.
Fig. 4.3 — Exemplo de memória RAM Motorola, 4096 bits (4 Kbits)
| Pino | Função |
|---|---|
| A0–A9 | Barramento de endereço (10 bits → 210=1024 posições, faixa 000H–3FFH) |
| I/O1–I/O4 | Barramento de dados — cada posição armazena uma palavra de 4 bits |
| W̄ | Habilita leitura ou escrita: $\bar{W}=0$ → escrita; $\bar{W}=1$ → leitura |
| S̄ | Habilita/desabilita o chip: $\bar{S}=0$ → memória habilitada |
| VCC, VSS | Alimentação do chip |
4.4 / memória 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.
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:
Fig. 4.5 — Organização MP-cache: a MP possui N×K posições, a cache possui M×K posições (M < N)
Como N > M, nem todos os dados da MP podem ser mapeados na cache simultaneamente.
O tempo médio de acesso ao sistema de memória, considerando o uso de cache, é dado por:
c: tempo de acesso à cache · m: tempo de acesso à MP · h: taxa de acertos
É necessário definir uma política de mapeamento que relacione os blocos da MP aos blocos da cache. Existem três técnicas:
| Técnica | Característica |
|---|---|
| Mapeamento direto | Relacionamento 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 associativo | Sem relação predeterminada — maior eficiência, porém maior complexidade de circuito para o espelhamento de dados |
| Associativo por conjunto | Concilia a simplicidade do mapeamento direto com a eficiência do totalmente associativo |
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ção | Fó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$$ |
Quando ocorre uma falta, é necessário buscar o dado na MP e substituir os dados de algum bloco da cache:
| Técnica | Crité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:
Fig. 4.7 — Políticas de escrita: escrita direta (atualiza MP a cada escrita) vs. escrita retardada (atualiza MP apenas na substituição)
checkpoint
Na pirâmide de hierarquia de memória, ao se aproximar da base, o que ocorre?
No mapeamento direto MP-cache, o bloco de destino de uma linha L é calculado por:
Qual a diferença essencial entre escrita direta (write through) e escrita retardada (write back)?