A máquina de von Neumann

Author Photo
3:01 pm - 02 de maio de 2011

Arquitetura ou organização?

O primeiro passo é nos pormos de acordo com exatamente o que vem a ser “arquitetura de computadores” e em que ela difere do conceito semelhante, porém distinto, de “organização de computadores” já que, além de se entrelaçarem, são frequentemente confundidos.

[singlepic id=3118 w=320 h=240 float=]

Há diversas definições e tentativas de distingui-los, todas bastante semelhantes, mas a que me pareceu mais esclarecedora foi a que encontrei no sítio “History of computing“, que diz literalmente: “computer architecture is a view of the whole design with the important characteristics visible to programmer, computer organization is how features are implemented with the specific building blocks visible to designer or constructor” (arquitetura de computadores é uma visão global do projeto com as características importantes do ponto de vista do programador [enquanto] organização de computadores tem a ver com a forma pela qual os recursos são implementados e agrupados em blocos de montagem, visíveis ao projetista ou montador). E, mais adiante, após citar os principais componentes de um “computador de programa armazenado”, encerra o assunto com esta frase definitiva: “Computer organization defines the ways in which these components are interconnected, and controlled” (Organização de computadores define as formas pelas quais estes componentes são interconectados e controlados).

Em suma: tudo o que diz respeito às “partes que compõem um computador” e “como se conectam” pertence ao domínio da organização de computadores (veja, na figura 2, a capa do livro de Andrew Tanembaun sobre organização de computadores que ilustra ? muito bem ? este conceito), enquanto o que estiver relacionado com o funcionamento da máquina e seu encadeamento de instruções, ou seja, aquilo que diz respeito ao programador e seus programas, tem a ver com o campo da “arquitetura”.

O terceiro conceito é o de “computador de programa armazenado”, ou “Stored program computer“. Eu não sou um grande fã da Wikipedia quando se trata de definir conceitos técnicos e científicos, porém neste caso particular vou abrir uma exceção já que a conceituação exposta na edição em inglês não somente é clara, correta e concisa como se encaixa muito bem em meus propósitos. Diz ela: “A stored-program digital computer is one that keeps its programmed instructions, as well as its data, in read-write, random-access memory (RAM). Stored-program computers were an advancement over the program-controlled computers of the 1940s, such as the Colossus and the ENIAC..” (um computador digital de programa armazenado é aquele que mantém as instruções de seu programa, assim como os dados, na memória (RAM) de leitura e escrita. Computadores de programas armazenados constituíram um avanço em relação aos computadores controlados por programas dos anos 1940, como o Colossus e o ENIAC…).

Será com estas ideias em mente que nos reportaremos ao “First Draft”.

Para isto usaremos trechos extraídos de uma tradução feita por mim de alguns itens selecionados do referido documento (mencionando os itens de acordo com a numeração originalmente atribuída a eles por von Neumann).

O First Draft é riquíssimo e contém joias como a primorosa justificativa de von Neumann para o uso interno do sistema binário e do emprego de válvulas eletrônicas na nova máquina em lugar de relés, a descrição de um tipo interessantíssimo de memória denominado “de linha de retardo”, o detalhamento da escolha cuidadosa das operações que a unidade aritmética deveria realizar e a descrição e justificativa de todo o conjunto de instruções (“instruction set“) da máquina proposta. Foi difícil resistir à tentação de citá-los todos mas, por amor à clareza, me restringirei apenas àqueles que, a meu ver, dizem respeito ao tema desta coluna.

Se você quiser conferir a tradução consultando diretamente o documento original, pode encontrá-lo aqui no formato PDF (e aproveite para fazer uma viagem virtual no intrigante sítio que a contém, o Virtual Travelog). Quanto à tradução feita por mim, muito provavelmente eu a publicarei, comentada, algum dia, já que fiquei vivamente impressionado com todo o conteúdo do First Draft e dificilmente resistirei à tentação de voltar a abordá-lo (só não sei ainda em que termos isto será feito).

Porém, aqui e nos itens seguintes, você encontrará apenas alguns trechos selecionados e pertinentes exclusivamente ao tema desta coluna.

Então vamos adiante.

Newsletter de tecnologia para você

Os melhores conteúdos do IT Forum na sua caixa de entrada.