Históricamente tem havido 2 tipos de Computadores:
- Computadores de Programa Fixo – A sua função é muito específica e não podiam ser programados, por exemplo, Calculadoras.
- Computadores de Programa Armazenados – Estes podem ser programados para realizar muitas tarefas diferentes, as aplicações são armazenadas neles, daí o nome.
Os computadores modernos são baseados num conceito de programa armazenado introduzido por John Von Neumann. Neste conceito de programa armazenado, programas e dados são armazenados em uma unidade de armazenamento separada chamada memórias e são tratados da mesma forma. Esta ideia inovadora significava que um computador construído com esta arquitectura seria muito mais fácil de reprogramar.
A estrutura básica é como,
É também conhecido como computador IAS e tem três unidades básicas:
- A Unidade Central de Processamento (CPU)
- A Unidade de Memória Principal
- O Dispositivo de Entrada/Saída
Vamos considerá-los em detalhes.
- Unidade de controle –
Uma unidade de controle (CU) lida com todos os sinais de controle do processador. Ela direciona todo o fluxo de entrada e saída, busca o código para instruções e controla como os dados se movem pelo sistema.
- Unidade Aritmética e Lógica (ALU) –
A unidade lógica aritmética é aquela parte da CPU que lida com todos os cálculos que a CPU pode precisar, por exemplo, Adição, Subtração, Comparações. Ela realiza operações lógicas, operações de deslocamento de bits e operações aritméticas.
Figura – Estrutura básica da CPU, ilustrando a ALU - Unidade de memória principal (Registros) –
- Acumulador: Armazena os resultados dos cálculos feitos por ALU.
- Contador de Programas (PC): Mantém um registo da localização da memória das próximas instruções a serem tratadas. O PC passa então este próximo endereço para Memory Address Register (MAR).
- Memory Address Register (MAR): Armazena a localização da memória das instruções que precisam ser buscadas na memória ou armazenadas na memória.
- Registro de Dados da Memória (MDR): Armazena as instruções que devem ser buscadas na memória ou quaisquer dados a serem transferidos e armazenados na memória.
- Current Instruction Register (CIR): Armazena as instruções buscadas mais recentemente enquanto espera para ser codificado e executado.
- Instruction Buffer Register (IBR): A instrução que não deve ser executada imediatamente é colocada no registro do buffer de instruções IBR.
- Input/Output Devices – Programa ou dados são lidos na memória principal a partir do dispositivo de entrada ou armazenamento secundário sob o controle da instrução de entrada da CPU. Os dispositivos de saída são usados para emitir a informação a partir de um computador. Se alguns resultados são avaliados pelo computador e são armazenados no computador, então com a ajuda dos dispositivos de saída, podemos apresentá-los ao usuário.
- Buses – Os dados são transmitidos de uma parte de um computador para outra, conectando todos os principais componentes internos à CPU e memória, por meio de Buses. Tipos:
- Barramento de dados: Transporta dados entre a unidade de memória, os dispositivos I/O e o processador.
- Barramento de endereços: Transporta o endereço dos dados (não os dados reais) entre a memória e o processador.
- Barramento de controle: Transporta comandos de controle da CPU (e sinais de status de outros dispositivos) para controlar e coordenar todas as atividades dentro do computador.
Von Neumann bottleneck –
O que quer que façamos para melhorar o desempenho, não podemos fugir ao facto de que as instruções só podem ser feitas uma de cada vez e só podem ser executadas sequencialmente. Ambos os factores retêm a competência da CPU. Isto é normalmente referido como o ‘Von Neumann bottleneck’. Podemos fornecer um processador Von Neumann com mais cache, mais RAM ou componentes mais rápidos, mas se os ganhos originais forem feitos no desempenho da CPU, então uma inspeção influente precisa ocorrer na configuração da CPU.
Esta arquitetura é muito importante e é usada em nossos PCs e até mesmo em Super Computadores.