A CPU e o ciclo de instrução
A CPU só sabe fazer uma coisa: buscar uma instrução, entendê-la e executá-la. Mas faz isso bilhões de vezes por segundo.
Uma máquina que segue instruções
Imagine um cozinheiro extremamente rápido e obediente. Ele olha a receita (busca), lê a próxima etapa (decodifica), executa a ação (executa), e volta para a próxima linha. Sem criatividade, sem julgamento — só instrução após instrução, bilhões de vezes por segundo.
Esse é o ciclo buscar–decodificar–executar (BDE). O Contador de Programa (PC) aponta
para a próxima instrução. Após cada execução, o PC avança. Ao encontrar um HALT (ou equivalente), a CPU para.
Simule o ciclo da CPU
Use Próximo passo para avançar fase a fase (BUSCAR → DECODIFICAR → EXECUTAR) e ver exatamente o que muda em cada momento. Ou clique Executar tudo para a animação automática.
O que acontece em cada fase
- BUSCAR: a unidade de controle lê o endereço no PC e carrega a instrução da memória para o registrador de instrução (IR). PC é incrementado.
- DECODIFICAR: o decodificador identifica a operação (opcode) e os operandos. Sinais de controle são preparados.
- EXECUTAR: a ULA (Unidade Lógica e Aritmética) realiza o cálculo ou a memória é lida/escrita.
A mini ISA do simulador
# Mini ISA (Instruction Set Architecture) LOAD R1, 10 # R1 ← 10 (carrega valor imediato) LOAD R2, 4 # R2 ← 4 ADD R1, R2 # R1 ← R1 + R2 (ALU) PRINT R1 # saída: 14 SUB R1, R2 # R1 ← R1 − R2 (ALU) PRINT R1 # saída: 10 HALT # fim
Pipeline: fazer várias fases ao mesmo tempo
CPUs modernas sobrepõem as fases de instruções diferentes — enquanto uma está na fase EXECUTAR, a próxima já está sendo DECODIFICADA e a seguinte está sendo BUSCADA:
# Sem pipeline: uma instrução por vez Ciclo 1: [BUSCAR I1] [-------] [--------] [--------] Ciclo 2: [-------] [DEC. I1] [--------] [--------] Ciclo 3: [-------] [-------] [EXEC. I1] [--------] Ciclo 4: [BUSCAR I2] [-------] [--------] [--------] # Com pipeline: sobreposição de fases Ciclo 1: [BUSCAR I1] [-------] [--------] Ciclo 2: [BUSCAR I2] [DEC. I1] [--------] Ciclo 3: [BUSCAR I3] [DEC. I2] [EXEC. I1] Ciclo 4: [BUSCAR I4] [DEC. I3] [EXEC. I2] # 4× mais throughput
Implemente sua própria CPU virtual
Mini projeto: implemente as funções fetch(), decode() e execute() em JavaScript, onde o programa é um array de strings como ["LOAD R1 5", "LOAD R2 3", "ADD R1 R2", "HALT"].
Projeto principal: adicione suporte a saltos (JUMP addr e JZ addr) para criar loops e condicionais. Escreva um programa que soma os números de 1 a 10.
Desafio extra: adicione uma pilha de chamadas (CALL e RET) para implementar funções recursivas.
Teste sua intuição
Onde você encontra isso
Jogos
A IA dos personagens, a física e os gráficos são milhões de instruções de CPU e GPU executadas a cada frame (60× por segundo).
Benchmarks
Testes como Cinebench medem quantas instruções por segundo a CPU executa — é literalmente o ciclo BDE sendo medido.
Machine Learning
Treinar modelos é bilhões de multiplicações de ponto flutuante — GPUs têm milhares de núcleos para isso.
Spectre & Meltdown
Vulnerabilidades que exploram a execução especulativa da CPU — o processador "adivinha" instruções futuras e executa antes de confirmar permissão.