Mesmo que a tecnologia utilizada nos computadores digitais tenha mudado dramaticamente desde os primeiros computadores da década de 1940 , muitos ainda utilizam a arquitetura de von Neumann proposta no final da década de 1940 por John von Neumann.

A arquitetura de von Neumann descreve o computador com quatro seções principais:
A Unidade lógica e aritmética (ULA), a Unidade de controle, a memória, e os dispositivos de entrada e saída (E/S ou I/O).
Estas partes são interconectadas por fios o “barramento do computador.”

Memoria

Memória de um PC. Neste sistema, a memória é uma sequência de células numeradas, cada uma contendo uma pequena quantidade de informação.
A informação pode ser uma instrução para dizer ao computador o que fazer.
As células podem conter também dados que o computador precisa para realizar uma instrução.
Qualquer célula pode conter instrução ou dado, assim o que em algum momento armazenava dados pode armazenar instruções em outro momento.

Em geral, o conteúdo de uma célula de memória pode ser alterado a qualquer momento – A memória é um rascunho e não um bloco de pedra.

O tamanho de cada célula, e o número de células, varia de computador para computador, e as tecnologias utilizadas para implementar a memória variam bastante.
Atualmente o mais comum é a implementação em circuitos integrados.

A memória no ciberespaço (nas Nuvens)

As tecnologias de memória usam materiais e processos bastante variados. Na informática, elas têm evoluído sempre em direção de uma maior capacidade de armazenamento, maior miniaturização, maior rapidez de acesso e confiabilidade, enquanto seu custo cai constantemente.

Entretanto, a memória de um computador não se limita a sua memoria individual e física, ela se apresenta de maneira mais ampla, e sem lugar definido (desterritorializada). Temos possibilidades de armazenar em diversos lugares na rede, podemos estar em Luanda e acessar arquivos que foram armazenados em sites no Brasil.

É crescente a tendência para o armazenamento das informações na memória do espaço virtual, ou o chamado ciberespaço, através de discos virtuais, anexos de e-mails etc. Assim, textos, imagens, vídeos, arquivos de audio, entre tantos outros formatos, se tornam disponíveis para o acesso de qualquer computador conectado à Internet.

Processamento

A ULA, é o dispositivo que faz as operações elementares (adição, subtração e etc.), operações lógicas (AND, OR, NOT), e operações de comparação (por exemplo, comparar dois bytes e dizer se são iguais). É nesta unidade que o “trabalho real” é feito.

A unidade de controle armazena a posição de memória que contém a instrução corrente que o computador está executando, informando à ULA qual operação a executar, buscando a informação (da memória) que a ULA precisa para executá-la e transferindo o resultado de volta para o local apropriado da memória.
Feito isto, a unidade de controle vai para a próxima instrução (tipicamente localizada na próxima posição da memória (endereço de memória), a menos que a instrução seja uma instrução de desvio informando o computador que a próxima instrução está em outra posição).

Entrada e Saída

A E/S permite ao computador obter informações do mundo externo, e envia os resultados do trabalho para o mundo externo. Existe uma infinidade de tipos de dispositivos de E/S, dos familiares teclados, monitores e drive de disquetes, até outros menos usuais como webcams e placas de captura de video (dispositivos que capturam seqüências de vídeo ou frames de vídeo e os armazenam no computador).

O que todos os dispositivos de entrada têm em comum é que eles precisam codificar (converter) a informação de algum tipo em dados que podem ser processados pelo sistema digital do computador. Dispositivos de saída por outro lado, descodificam os dados em informação que é entendida pelo usuário do computador. Neste sentido, um sistema de computadores digital é um exemplo de um sistema de processamento de dados.

Podemos ter dispositivos que funcionam tanto para entrada como para saída de dados, o modem, o drive do CD ou disquete, as portas USB entre outros, são exemplos destes dispositivos.

Instruções

As instruções discutidas acima não são um rico conjunto de instruções como a linguagem humana.
O computador tem apenas um limitado número de instruções bem definidas.

Um exemplo típico de uma instrução existente na maioria dos computadores é “copie o conteúdo da posição de memória 123 para a posição de memória 456”, “adicione o conteúdo da posição de memória 510 ao conteúdo da posição 511 e coloque o resultado na posição 507” e “se o conteúdo da posição 012 é igual a 0, a próxima instrução está na posição 678”.

Instruções são representadas no computador como números – o código para “copiar” poderia ser 007, por exemplo. O conjunto particular de instruções que um computador possui é conhecido como a linguagem de máquina do computador.

Na prática, as pessoas não escrevem instruções diretamente na linguagem de máquina mas em uma linguagem de programação, que é posteriormente traduzida na linguagem de máquina através de programas especiais (interpretadores e compiladores).

Algumas linguagens de programação se aproximam bastante da linguagem de máquina, como o assembler (linguagem de baixo nível); por outro lado linguagens como o Prolog são baseadas em princípios abstratos e se distanciam bastante dos detalhes da operação da máquina (linguagens de alto nível).