Introdução ao Modelo de Von Neumann
Proposta em 1945 pelo matemático John von Neumann, esta arquitetura define um computador digital eletrônico com subsistemas específicos trabalhando de forma integrada. O grande marco foi o conceito de Programa Armazenado, onde os dados de trabalho e as instruções do programa compartilham o mesmo espaço de endereçamento de memória física.
Os Três Pilares do Hardware
Qualquer sistema computacional fundamentado neste modelo divide-se em três macro-componentes:
- CPU (Unidade Central de Processamento): O "cérebro" do sistema, responsável por executar operações lógicas e matemáticas e controlar os demais componentes.
- Memória Principal: Um vetor linear de células endereçáveis que armazena temporariamente os códigos operacionais (instruções) e os operandos (dados).
- Subsistema de Entrada e Saída (I/O): Mecanismos de comunicação com o ecossistema externo (redes, usuários, armazenamento magnético/óptico).
O Gargalo de Von Neumann
Como dados e instruções trafegam pelas mesmas vias físicas (barramentos), a CPU não consegue realizar a busca de uma instrução e a leitura/escrita de um dado simultaneamente. Esse limite físico de vazão é chamado de Gargalo de Von Neumann. Para mitigar esse problema, arquiteturas modernas utilizam caches complexas e técnicas de pipeline.
Arquitetura Harvard: A Alternativa
Diferente de Von Neumann, a Arquitetura Harvard possui barramentos e memórias fisicamente separados para dados e para instruções. Isso permite acessos simultâneos, eliminando o gargalo de barramento comum. É amplamente utilizada em Processadores de Sinal Digital (DSP) e microcontroladores modernos (como arquiteturas ARM Cortex-M).
O Sistema de Barramentos (Buses)
A interconexão entre CPU, Memória e I/O é realizada por linhas de comunicação paralelas divididas em três categorias funcionais:
- Barramento de Dados (Data Bus): Bidirecional. Transporta a informação útil (dados ou instruções) entre os módulos.
- Barramento de Endereços (Address Bus): Unidirecional (gerado pela CPU). Determina a origem ou o destino do dado no barramento. A largura desse barramento define a capacidade máxima de memória mapeável (ex: $2^{32}$ endereços para 32 bits).
- Barramento de Controle (Control Bus): Misto. Conduz sinais de sincronismo e ordens do sistema, como comandos de leitura (Read), escrita (Write) e requisições de interrupção (IRQ).