O Batimento Cardíaco de Toda CPU
Um microprocessador executa programas repetindo um loop fundamental — o Ciclo de Instrução — biliões de vezes por segundo.
O Ciclo 5 Estágios (RISC Clássico / Simplificado)
- Fetch (Buscar)
- PC (Program Counter) guarda endereço próxima instrução.
- Endereço colocado no bus endereços; memória devolve palavra instrução.
- Instrução carregada em IR (Instruction Register).
- PC incrementado (ou atualizado por branch).
- Decode (Decodificar)
- Unidade controlo interpreta bits IR → opcode + operandos.
- Determina: operação ALU, acessos registos, acesso memória, branch?
- Gera sinais controlo para datapath.
- Execute (Executar)
- ALU executa aritmética/lógica (ADD, AND, SHIFT…).
- Cálculo endereço load/store (base + offset).
- Condição branch avaliada.
- Memory Access (Acesso Memória)
- Load: ler dados memória → registo.
- Store: escrever registo → memória.
- Branch taken: PC atualizado para target.
- Writeback (Escrita Registo)
- Resultado ALU ou dados lidos escrito registo destino.
- Flags (Z, N, C, V) atualizadas.
Melhorias Modernas
- Pipelining: Sobreposição estágios — 5+ instruções em voo simultaneamente.
- Superscalar: Múltiplas unidades decode/execute — emite 2–8 instruções/ciclo.
- Out-of-Order: Reordena instruções para evitar stalls (data hazards).
- Execução Especulativa: Prevê branches; rollback se errado.
- Caches (L1/L2/L3): Reduz latência memória (hit rates 95%+).
- Memória Virtual: MMU traduz VA → PA; TLB cache traduções.
Interrupções e Exceções
Externas (IRQ), internas (divisão zero, page fault), software (syscall) — guarda PC/FLAGS, salta para handler, retorna via IRET/ERET.
Analogia
Fetch = ler passo receita. Decode = entender instrução. Execute = picar/cozinhar. Memory = buscar/guardar ingredientes. Writeback = pôr resultado na tigela. Repetir.
De 4.77 MHz 8088 a 5 GHz Core i9 — mesmo ciclo, paralelismo exponencialmente maior.