Visita Encydia-Wikilingue.com

Arquitectura de von Neumann

arquitectura de von neumann - Wikilingue - Encydia

Arquivo:Arquitecturaneumann.jpg
Diagrama da arquitectura Von Neumann.

A arquitectura de von Neumann é uma família de arquitecturas de computadores que utilizam o mesmo dispositivo de armazenamento tanto para as instruções como para os dados (a diferença da arquitectura Harvard).

A maioria de computadores modernas estão baseadas nesta arquitectura, ainda que podem incluir outros dispositivos adicionais, (por exemplo, para gerir as interrupções de dispositivos externos como rato, teclado, etc).

Conteúdo

Origem

O nascimento ou origem da arquitectura Von Neumann surge a raiz de uma colaboração no projecto ENIAC do matemático de origem húngaro, John Von Neumann. Leste trabalhava em 1947 no laboratório atómico dos Alamos quando se encontrou com um dos construtores da ENIAC. Colega de Albert Einstein, Goedel e Turing em Princeton, Von Neumann interessou-se pelo problema da necessidade de "recablear" a máquina para a cada nova tarefa.

Em 1949 tinha encontrado e desenvolvido a solução a este problema, consistente em pôr a informação sobre as operações a realizar na mesma memória utilizada para os dados, escrevendo-a da mesma forma, isto é em código binário. Seu "EDVAC" foi o modelo dos computadores deste tipo construídas a seguir. Fala-se desde então da "arquitectura de Von Neumann", ainda que também desenhou outras formas de construção. O primeiro computador comercial construído nesta forma foi o UNIVAC 1, fabricado em 1951 pela Sperry-Rand Corporation e comprado pelo Escritório do Censo dos Estados Unidos.

Organização

Os computadores com esta arquitectura constam de cinco partes: A unidade aritmético-lógica ou ALU, a unidade de controle, a memória, um dispositivo primeiramente/saída e o autocarro de dados que proporciona um médio de transporte dos dados entre as diferentes partes.

Um computador com esta arquitectura realiza ou emula os seguintes passos sequencialmente:

  1. Acende o computador e obtém a seguinte instrução desde a memória na direcção indicada pelo contador de programa e guarda-a no registo de instrução.
  2. Aumenta o contador de programa na longitude da instrução para apontar à seguinte.
  3. Decodifica a instrução mediante a unidade de controle. Esta se encarrega de coordenar o resto de componentes do computador para realizar uma função determinada.
  4. Executa-se a instrução. Esta pode mudar o valor do contador do programa, permitindo assim operações repetitivas. O contador pode mudar também quando se cumpra uma verdadeira condição aritmética, fazendo que o computador possa 'tomar decisões', que podem atingir qualquer grau de complexidade, mediante a aritmética e lógica anteriores.
  5. Volta ao passo 1.

Origem de termo Arquitectura Von Neumann

O termo arquitectura de von Neumann se acuñó a partir do memorando First Draft of a Report on the EDVAC (1945) escrito pelo conhecido matemático John von Neumann no que se propunha o conceito de programa armazenado. Dito documento foi redigido em vistas à construção do sucessor do computador ENIAC e seu conteúdo foi desenvolvido por John Presper Eckert, John William Mauchly, Arthur Burks e outros durante vários meses dantes de que von Neumann redigisse o rascunho do relatório. É por isso que outros tecnólogos como David A. Patterson e John L. Hennessy promovem a substituição deste termo pelo de arquitectura Eckert-Mauchly.[1]

Desenvolvimento do conceito de programa armazenado

O matemático Alan Turing, quem tinha sido alertado de um problema de lógica matemática pelas lições de Max Newman na Universidade de Cambridge, escreveu um artigo em 1936 titulado “On Computable Numbers, with an Application to the Entscheidungs problem”, que foi publicado nos “Proceedings of the London Mathematical Society”. Nele descrevia uma máquina hipotética que chamou máquina computador universal”, e que agora é conhecida como a “Máquina de Turing”. A máquina hipotética ténia um armazenamento infinito (memória na terminología actual) que continha tanto as instruções como os dados. O engenheiro alemão Konrad Zuse escreveu de forma independente sobre este conceito em 1936. Von Neumann conheceu a Turing quando exercia de professor substituto em Cambridge em 1935 e também durante o ano que Turing passou na Universidade de Princeton em 1936-37. Quando soube do artigo de 1936 de Turing não está claro.

Independentemente, J. Presper Eckert e John Mauchly, quem estavam a desenvolver o ENIAC na Escola Moore de Engenharia Eléctrica na Universidade de Pennsylvania, escreveram sobre o conceito de programa armazenado” em dezembro de 1943. Enquanto desenhava uma nova máquina, EDVAC, Eckert escreveu em janeiro de 1944 que armazenar-se-iam dados e programas em um novo dispositivo de cor direccionable, uma linha de retardo de mercurio. Esta foi a primeira vez que se propôs a construção de um programa armazenado prático. Por essas datas, não tinham conhecimento do trabalho de Turing.

Von Neumann estava envolvido no Projecto Manhattan no Laboratório Nacional Os Alamos, o qual requeria ingentes quantidades de cálculos. Isto lhe conduziu ao projecto ENIAC, em Verão de 1944. Ali incorporou-se aos debates sobre o desenho de um computador com programas armazenados, o EDVAC. Como parte do grupo, se ofereceu voluntário a escrever uma descrição dele. O termo “von Neumann architecture” surgiu do primeiro artigo de von Neumann: “First Draft of a Report on the EDVAC”, datado o 30 de junho de 1945, o qual incluía ideias de Eckert e Mauchly. Estava inconcluso quando seu colega Herman Goldstine o fez circular com só o nome de von Neumann nele, para consternación de Eckert e Mauchly. O artigo foi lido por dúzias de colega de trabalho de von Neumann na América e Europa, e influenciou a seguinte hornada de desenhos de computadores.

Posteriormente, Turing desenvolveu um relatório técnico detalhado, “Proposed Electronic Calculator”, descrevendo o Motor de Computação Automático (Automatic Computing Engine, ACE). Apresentou este ao Laboratório Nacional de Física Britânico o 19 de fevereiro de 1946 . Apesar de que Turing sabia por sua experiência de guerra no Parque Bletchley que sua proposta era factible, o secretismo mantido durante muitas décadas a respeito dos computadores Colossus lhe impediu o manifestar. Várias implementações exitosas do desenho ACE foram produzidas.

Os trabalhos de ambos, von Neumann e Turing, descreviam computadores de programas armazenados, mas ao ser anterior o artigo de von Neumann, conseguiu maior circulação e repercussão, de modo que a arquitectura de computadores que esboçou adquiriu o nome de arquitectura von Neumann”.

Em 1945, o professor J.VON. NEUMANN que estava a trabalhar na escola Moore de engenharia de Filadelfia, onde o ENIAC tinha sido construído, emitiu em nome de um grupo de seus colegas de trabalho um relatório sobre o desenho lógico dos computadores digitais. O relatório continha uma proposta muito detalhada para o desenho da máquina que desde então se conhece como o EDVAC (electronic discrete variável automatic computer). Esta máquina tem sido recentemente completada na América, mas o relatório de Von Neumman inspirou a construção da EDSAC (electronic delay-storage automatic calculator) em Cambridge.

Em 1947, Burks, Goldstine e Von Neumann, publicaram um relatório no que descrevem o desenho de outro tipo de máquina ( uma máqina paralela neste momento ) que deveria ser muito rápida, capaz de fazer 20.000 operações por segundo. Assinalaram que o problema persistente na construção de tal máquina estava no desenvolvimento de uma memória adequada, todos os conteúdos dos quais foram instantaneamente acessíveis, e ao princípio se sugeriu o uso de um cano especial - chamado Selectron - que tinha sido inventado pelos laboratórios de Princeton da RCA. Estes canos são caros e difíceis para fabricar, assim Von Neumman decidiu construir uma máquina baseada na memória de Williams. Essa máquina que se completou em junho de 1952 em Princeton se conheceu como o Mañatico. O desenho desta máquina que tem sido inspirado de uma dúzia ou mais de máquinas que estão actualmente em construção na América.

 Calculo automático no laboratório nacional de física.

Um das equipas digitais mais modernos que incorpora novidades e melhoras na técnica da computação electrónica tem sido demonstrado no laboratório nacional de física, Teddington, onde tem sido desenhado e construído por uma pequena equipa de matemáticos e engenheiros electrónicos pesquisadores sobre o pessoal do laboratório, assistido por engenheiros de produção da companhia eléctrica inglesa. A equipa construída até agora no laboratório é só o modelo piloto de muitas instalações muito grandes que se vai conhecer como o motor de cálculo automático, mas ainda que é relativamente pequeno em volume e contém só 800 válvulas termoiónicas, é uma máquina de cálculo muito rápido e versátil.

Os conceitos básicos e princípios abstratos da computação por uma máquina foram formuladas pelo Dr A.m. Turing, mas o trabalho em ditas máquinas no Reino Unido atrasou-se pela guerra. In 1945, fez-se uma examinación ao problema no laboratório nacional de física pelo professor J.R. Womersley. Anexou-se-lhe o Dr. Turing ou pequena equipa de especialistas, e em 1947 o planejamento preliminaria era o suficientemente avançada para justificar o estabelecimento do grupo especial já mencionado. Em abril de 1948, estes últimos converteram-se na sessão da electrónica do laboratório baixo o cargo do Sr. F.M. Colebrook.

Descrição do conceito de programa armazenado

Os primeiros computadores constavam de programas armazenados. Alguns muito simples seguem utilizando este desenho, por exemplo, uma calculadora é um computador que tem um programa armazenado. Pode fazer operações matemáticas simples, mas não pode ser usada como processador de textos ou videoconsola.

Mudar o programa que continham os dispositivos que usavam esta tecnologia requeria reescribir, reestruturar e/ou redesenhar o dispositivo. Os primeiros computadores não estavam o suficiente programados quando foram desenhados. A tarefa de reprogramar, quando era possível, era um processo laborioso, começando com notas em papel e seguindo com detalhados desenhos de engenharia. E depois disto chegava o às vezes complicado processo de reescritura e reestructuramiento físico do computador.

O conceito de programa armazenado mudou por completo, pensou-se em um computador que em seu desenho continha um conjunto de instruções que podiam ser armazenadas em memória, ou seja, um programa que detalhava a computação do mesmo.

O desenho de um programa armazenado também dava a possibilidade aos programas de ser modificados eles mesmos durante sua execução. Um dos primeiros motivos para sua criação foi a necessidade de um programa que incrementasse ou modificasse as direcções de cor de algumas instruções, as quais tinham que ser feitas manualmente nos primeiros desenhos.

Isto se voltou menos importante quando o índice de registos e o direccionamiento indirecto se converteram em algo habitual na arquitectura de computadores. O código automodificable foi em grande parte ganhando posições.

A grande escala, a habilidade de tratar instruções como dados é o que fazem os ensambladores, compiladores e outras ferramentas de programação automáticas. Podem-se "escrever programas para escrever programas".

Existem inconvenientes no desenho de Von Neumann. As modificações nos programas podia ser algo perjudicial, por acidente ou por desenho. Em alguns simples desenhos de computador com programas armazenados, um mau funcionamento do programa pode danificar o computador. Outros programas, ou o sistema operativo, possivelmente possam levar a um dano total no computador. A protecção da memória e outras formas de controle de acesso podem ajudar a proteger na contramão de modificações acidentais e/ou maliciosas de programas.

Embotellamiento de Von Neumann (Von Neumann bottleneck)

A separação entre a CPU e a memória leva ao embotellamiento de Von Neumann, ao rendimento de processamento limitado (tarifa de transferência de dados) entre a CPU e à memória comparada à quantidade de cor. Na maioria dos computadores modernos, o rendimento de processamento é bem mais pequeno que a tarifa na qual a CPU pode trabalhar. Isto limita seriamente a velocidade do processo eficaz quando a CPU se requer para realizar o processo mínimo em grandes quantidades de dados. A CPU é forçada continuamente para esperar os dados necessários que transferir-se-ão desde ou para memória. Desde a CPU o tamanho da velocidade e da memória tem aumentado bem mais rapidamente que o rendimento de processamento entre eles, o embotellamiento se converteu em mais de um problema. O termo “embotellamiento de Von Neumann” foi acuñado por Juan Backus em sua conferência da concessão de 1977 ACM Turing. Segundo Backus: Seguramente deve ter uma maneira menos primitiva de realizar mudanças grandes no almacén que empurrando os grandes números de palavras para adiante e para atrás através do embotellamiento de Von Neumann. O problema de funcionamento é reduzido por um cache entre a CPU e o de cor principal, e pelo desenvolvimento dos algorítmos do calculador do ramo. Está menos claro que o embotellamiento intelectual que Backus tem criticado tem mudado muito desde 1977. A solução proposta de Backus não tem tido uma influência importante. A programação funcional moderna e a programação orientada a objectos se engranan muito menos para “empurrar os grandes números de palavras para adiante e para atrás” que as anteriores linguagens como era o FORTRAN.

Primeiros computadores baseados em arquitecturas von Neumann

A primeira saga baseava-se em um desenho que foi utilizado por muitas universidades e empresas para construir suas equipas. Entre estes, só ILLIAC e ORDVAC tinham um conjunto de instruções compatível.

Veja-se também

Referências

  1. David A. Patterson e John L. Hennessy, Organização e desenho de computadores, Aravaca. McGraw-Hill / Interamericana de Espanha, S.A., 09/1994

Obtido de http://ks312095.kimsufi.com../../../../articles/a/n/d/Andorra.html"