A Arquitetura que Revolucionou o Mundo: Uma breve introdução ao trabalho de John Von Neumann
Published: 2024-03-06 23:34:24

Os computadores atuais seguem a arquitetura concebida em 1946 por John von Neumann. Computadores são máquinas digitais ou analógicas capazes de processar dados. No entanto, os computadores modernos são definidos por sua capacidade de armazenar programas no mesmo local onde armazenam os dados, o que lhes permite manipular esses dados.

Os primeiros computadores, como o ENIAC, serviam ao propósito de realizar cálculos e permitiam a possibilidade de reconfiguração através de válvulas que comutavam sinais, alternando bits entre 0 e 1. Isso permitia realizar operações matemáticas e utilizava tambores magnéticos e fitas perfuradas como memória principal.

Apesar de estarem muito à frente das calculadoras comuns, os primeiros computadores sofriam de diversos problemas, como falta de memória, alto custo de energia e humano. No entanto, o que nos trouxe até a arquitetura atual foi a forma como eles funcionavam. Os "programas" utilizados não eram armazenados em memória, o que comprometia a capacidade de guardar estados e realizar operações mais complexas. Apesar disso, os primeiros computadores apresentavam a capacidade de executar contextos mais complexos como condicionais e loops.

A arquitetura de Von Neumann estabelece cinco unidades principais para um computador:

    Unidade de memória
    Unidade de controle
    Unidade lógica e aritmética
    Unidade de entrada
    Unidade de saída

Atualmente, conhecemos essas unidades respectivamente como:

    Discos de memória não volátil como SSDs
    ULA (Unidade Lógica e Aritmética) concebida pelo próprio John von Neumann e atualmente incorporada pelos processadores
    CPU (Unidade Central de Processamento), que também integrada aos processadores realiza os cálculos aritméticos
    Mouses e teclados
    Dispositivos de saída como monitores

O alinhamento dessas unidades permite a um computador manipular os programas gravados em sua memória, o que os torna máquinas programáveis. Isso permite realizar qualquer problema computacional (todas as funções computáveis, com resultado determinístico) e até mesmo simular outros computadores. Essas capacidades combinadas tornam um computador Turing complete, o que significa que ele é capaz de realizar qualquer tarefa que possa ser descrita por um algoritmo. A definição literal de Turing complete é "projetado segundo as limitações de hardware atual", já que na concepção teórica de Turing a máquina possuía memória infinita em formato de fita de bits.

Claro que os computadores modernos incorporam muitos outros conceitos posteriores, que complementam essa arquitetura, como o uso de registradores, barramentos e múltiplos núcleos. Mas a ideia central da arquitetura continua a mesma, o que permite hoje as linguagens de programação de alto nível que são utilizadas pelos programadores. Isso permite que os computadores não só realizem operações matemáticas, mas também alterem o estado de seus próprios programas armazenados em memória em tempo de execução. Isso os torna muito mais "programáveis" que os primeiros computadores e abre um grande leque de possibilidades para a computação moderna.

*********

Esse foi meu primeiro texto baseado na série de estudos que estou desenvolvendo atualmente, pretendo manter tudo em learning in public pra me motivar a continuar, criticas construtivas e correções são muito bem vindas, assim como seu like e compartilhamento, muito obrigado!