Pular para o conteúdo principal

Arquitetura de Von Neumann

Como construir uma máquina real que computa

Se a Máquina de Turing responde o que é possível calcular, a Arquitetura de Von Neumann — descrita pelo matemático John von Neumann em 1945 — responde como organizar um computador real para fazer isso. É o modelo estrutural por trás de praticamente todo computador de propósito geral desde então: o seu notebook, seu celular e o servidor mais potente do mundo seguem, no fundo, a mesma organização básica.

Os componentes

  • CPU — dividida em Unidade de Controle (decide o que fazer a seguir) e ULA / Unidade Lógica e Aritmética (faz as contas e comparações de fato).
  • Memória — guarda tanto os dados quanto as instruções do programa, no mesmo espaço de endereçamento. Essa é a virada de chave histórica: antes de Von Neumann, o "programa" de uma máquina era definido por fiação física (como nos primeiros computadores eletromecânicos); a partir daqui, o programa é só mais um conjunto de dados guardado na memória, que pode ser carregado, trocado e modificado sem religar um único fio. É o conceito de programa armazenado.
  • Barramento — o "caminho" elétrico que liga CPU, memória e periféricos, por onde dados e instruções trafegam.
  • Entrada/Saída — teclado, tela, disco, rede: tudo que troca informação com o mundo fora da CPU e da memória.

O ciclo fetch-decode-execute

A CPU não faz mágica: ela repete um ciclo simples, bilhões de vezes por segundo:

Buscar (Fetch)Decodificar (Decode)Executar (Execute)
  1. Buscar — a CPU vai até a memória, no endereço indicado por um contador interno, e traz a próxima instrução.
  2. Decodificar — a Unidade de Controle interpreta essa instrução: o que ela pede para ser feito?
  3. Executar — a ULA (ou outro circuito relevante) executa de fato a operação, e o contador avança para a próxima instrução.

🎯 Simulador Interativo do Ciclo Fetch-Decode-Execute

Execute passo a passo (ou automaticamente) um programa real rodando num processador de brinquedo, e veja PC, IR e ACC mudando a cada fase:

⚙️

Simulador do Ciclo Fetch-Decode-Execute

Veja a CPU buscar, decodificar e executar instruções na memória — o ciclo que roda bilhões de vezes por segundo

ℹ️ ACC recebe MEM[4], soma MEM[5] e grava o resultado em MEM[6]. Sem desvios — um único ciclo por instrução.

FETCH
DECODE
EXECUTE
Velocidade:
🧠 CPU (Registradores)
PC0
IR
ACC0
💾 Memória (Programa + Dados)
PC ▾
0
LOAD 4
1
ADD 5
2
STORE 6
3
HALT
4
7
5
8
6
0
7
0
> // Escolha "Passo a Passo" ou "Executar" para começar o ciclo
Instruções Executadas
0
Fase Atual
FETCH
Acumulador (ACC)
0
💡 Como Funciona: A cada ciclo, a CPU repete 3 fases: FETCH busca a instrução apontada por PC na memória e a carrega em IR; DECODE interpreta o opcode e o operando dessa instrução; EXECUTE a Unidade de Controle/ULA realiza a ação — somar, gravar na memória ou até redirecionar o próprio PC (desvio/loop). Esse ciclo se repete bilhões de vezes por segundo em qualquer computador real.

O gargalo de Von Neumann

Como CPU e memória se comunicam pelo mesmo barramento, tanto para buscar instruções quanto para ler/escrever dados, existe um limite de quantos dados podem trafegar por vez — mesmo com uma CPU cada vez mais rápida, ela frequentemente fica esperando a memória. Esse limite é chamado de gargalo de Von Neumann, e é uma das razões por trás da existência das memórias cache (veja Tipos de Memória na trilha de Hardware): cópias pequenas e muito rápidas dos dados mais usados, guardadas fisicamente mais perto da CPU, para reduzir viagens até a memória principal.

Uma alternativa: arquitetura Harvard

Nem todo processador segue Von Neumann à risca. A arquitetura Harvard separa fisicamente a memória de instruções da memória de dados, com barramentos independentes — permite buscar uma instrução e ler um dado ao mesmo tempo, sem disputar o mesmo caminho. É comum em microcontroladores, como os usados em placas Arduino, onde previsibilidade e simplicidade importam mais do que a flexibilidade de um espaço de memória único.