Categories: Notícias

A arquitetura de von Neumann

A arquitetura de von Neumann (afinal!)

Bem, agora que temos uma clara noção da diferença entre “organização” e “arquitetura” de computadores e sabemos como von Neumann esperava que sua máquina tratasse as instruções, poderemos analisar o que se diz por aí sobre o assunto.

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

Primeiro, para não ser injusto com Mário Monteiro, um respeitável autor do respeitabilíssimo livro didático “Introdução à Organização de Computadores”, editora LTC, 5ª edição, citado na coluna anterior e fartamente adotado pelos professores das disciplinas “Arquitetura de computadores” e “Organização de computadores” (sim, existem as duas e as ementas são diferentes), vejamos o que diz ele quando se refere ao First Draft:

Em resumo, os sistemas atuais, embora mais potentes, possuem os mesmos componentes básicos e realizam suas funções essenciais orientados pelos mesmos conceitos fundamentais expostos no relatório apresentado por John von Neumann, relativo à arquitetura de seu sistema EDVAC e do IAS, quais sejam:

– dados e instruções são armazenados em uma memória do tipo que escreve e recupera (leitura);

– o conteúdo da memória é endereçável conforme sua posição independente do tipo de informação nele contido;

– a execução das instruções ocorre de forma sequencial (a não ser que uma instrução específica mude momentaneamente a sequência) uma em seguida à outra“.

Neste ponto convém ter em mente que os três conceitos fundamentais coincidem exatamente com o que é proposto por von Neumann. E, o que é mais importante: referem-se não aos componentes ou partes da máquina, mas a forma pela qual estes componentes “realizam suas funções essenciais” ? e este é justamente o domínio “arquitetura”.

Agora, “limpemos a barra” do Tanenbaum lembrando que, na tradução para o português de seu livro “Organização Estruturada de Computadores”, Prentice Hall do Brasil, ao descrever a primeira geração dos computadores e referindo-se a von Neumann, afirma: “Ele começou a perceber que o programa poderia ser representado em forma digital na memória do computador, juntamente com os dados” e, mais adiante: “seu projeto básico, agora conhecido como ?Máquina de von Neumann?, foi utilizado no EDSAC, o primeiro computador com programa armazenado e é ainda a base de quase todos os computadores digitais, até mesmo hoje“.

Neste parágrafo não apenas ele reconhece a importância da colaboração de von Neumann no que toca ao conceito de “computador de programa armazenado” como cita o EDSAC ? e não o EDVAC ? como primeira máquina a adotá-lo. E ele está correto: embora o projeto do EDVAC ? mais particularmente, o First Draft ? tenha, reconhecidamente, servido de modelo para a montagem do EDSAC (mostrado na Figura 4, obtida na Wikipedia), questões ligadas à burocracia e às dificuldades para resolver certos problemas de hardware fizeram com que este último, cuja montagem foi iniciada posteriormente à do primeiro ? pudesse entrar em funcionamento efetivo antes. De fato o EDSAC ? Electronic Delay Storage Automatic Calculator ?  efetuou seu primeiro cálculo em maio de 1949, em Cambridge, Reino Unido, onde foi construído, enquanto o EDVAC, cujo contrato para montagem foi assinado em abril de 1946 com o governo americano, somente foi instalado em agosto de 1949 porém, devido a problemas no sistema de memória e E/S, apenas entrou efetivamente em serviço, ainda assim em bases limitadas, no final de 1951. Porém nada disto empana a participação de von Neumann na criação da primeira máquina de programa armazenado pois tanto uma máquina quanto a outra foram construídas baseadas em suas diretivas, portanto ambas foram por ele concebidas.

Agora, ainda no campo dos livros-texto, vejamos o que diz Williams Stallings, autor daquela que, em minha modesta opinião, é a melhor publicação didática sobre o tema, seu excelente “Computer Organization & Architecture ? Designing for Performance”, da Pearson ? Prentice Hall:

Such a design is referred to as the ?von Neumann Architecture? and is based in three key concepts: a) Data and instructions are stored in a single read-write memory; b) The content of this memory is addressable by location, without regard to the type of data contained there; c) Execution occurs in a sequential fashion (unless explicitly modified) from one instruction to the next” (Esta concepção é designada de “arquitetura de von Neumann e é baseada em três conceitos chave: a) dados e instruções são armazenados em uma única memória do tipo escrita e leitura; b) o conteúdo desta memória é endereçável por posição, independentemente do tipo de dado lá contido; c) a execução ocorre de modo sequencial (exceto se explicitamente modificada) de uma instrução para a seguinte). O que coincide quase integralmente com aquilo que foi afirmado por Mário Monteiro, citado alguns parágrafos acima.

Agora, finalmente, apelemos para a Wikipedia. Sua definição de “Arquitetura de von Neumann” diz que: “is a design model for a stored-program digital computer that uses a central processing unit (CPU) and a single separate storage structure (“memory”) to hold both instructions and data. It is named after the mathematician and early computer scientist John von Neumann” (é um modelo de concepção para um computador digital de programa armazenado que usa uma unidade central de processamento e uma única unidade independente de armazenamento (“memória”) para armazenar tanto instruções quanto dados. Foi batizada em homenagem ao matemático e pioneiro cientista da computação John von Neumann).

Uma definição bastante confusa. Para começar, mistura componentes (UCP e memória, cujo domínio é a organização) com funcionalidades (armazenamento de dados e instruções, o que cai no domínio da arquitetura). Pior que isto, afirma que: “The terms ?von Neumann architecture? and ?stored-program computer? are generally used interchangeably” (Os termos “arquitetura de von Neumann e “computador de programa armazenado” são, em geral, intercambiáveis), o que à luz do próprio First Draft é bastante discutível. É certo que “computador de programa armazenado” (“stored program computer“) e “arquitetura de von Neumann” são conceitos muito próximos e não se pode definir o segundo sem estabelecer claramente em que consiste o primeiro, mas daí a dizer que são “intercambiáveis” é exagerar um pouco. Portanto, não convém se basear na Wikipedia para definir arquitetura de von Neumann ou computador digital de programa armazenado, já que ela confunde uma com o outro.

Mas o fato é que não precisamos dela, posto que nesta altura dos acontecimentos o próprio First Draft, a fonte confiável por excelência no que toca a este tema, já nos forneceu informações mais que suficientes para definir ambos os conceitos.

Então vamos a elas, exclusivamente à luz do disposto no First Draft (que, afinal, é o único documento que interessa em toda esta quizomba):

Computador de programa armazenado (“stored program computer“) é aquele que armazena em um único espaço endereçável de memória de leitura e escrita tanto dados quanto instruções.

Arquitetura de von Neumann é uma concepção de computador de programa armazenado cujas instruções são executadas sequencialmente na ordem em que são encontradas na memória, exceto se esta ordem for explicitamente modificada por uma destas instruções.

Aí estão as definições de ambos os conceitos segundo o que este vosso criado conseguiu garimpar no First Draft.

Quem concordar, basta acenar com a cabeça. Quem discordar, que fale agora (de preferência nos comentários da coluna) ou cale-se para sempre.

E acabou-se o que era doce… Exceto por um comentário final:

Eu não sei se vocês desfrutaram algum prazer em ler esta série de colunas que, de tão longa, correu o risco de assemelhar-se à espada de Affonso Henriques, tornando-se comprida e chata. Mas de uma coisa tenho certeza: eu tive um prazer imenso em escrevê-la…

B. Piropo

Page: 1 2 3 4

Recent Posts

Com IA nas mãos de atacantes e defensores, vantagem está no tempo de reação, diz Cisco

O vice-presidente sênior e diretor-geral de Segurança da Cisco, Peter Bailey, não esquiva da pergunta…

3 dias ago

Agentes de IA consomem 450% mais rede que humanos, e a Cisco quer ser a infraestrutura que sustenta isso

Cada agente de inteligência artificial consome 450% mais tráfego de rede do que um humano…

4 dias ago

EUA acusam o Pix de concorrência desleal e ameaçam taxar produtos brasileiros

O governo dos Estados Unidos colocou o Pix na mira. O escritório do Representante Comercial…

4 dias ago

Como Anderson Figueiredo transformou experiência em legado no setor de tecnologia

Anderson Figueiredo pertence a uma geração que viu a tecnologia deixar os laboratórios e ocupar…

4 dias ago

Estaríamos diante de um ponto de inflexão com o IPO da SpaceX?

Por Cláudio Fontes O potencial IPO da SpaceX não deve ser interpretado apenas como um…

4 dias ago

Microsoft deve anunciar novas tecnologias de IA para PCs e nuvem

A Microsoft realiza nesta terça-feira (02), sua conferência anual de desenvolvedores de software, com expectativa…

4 dias ago