A arquitetura de von Neumann define o modelo básico de computadores digitais, com uma unidade central de processamento (CPU), memória e unidade de controle que executa instruções armazenadas na memória. Isso permitiu que programas fossem armazenados e modificados na memória, em contraste com computadores iniciais que tinham programas fixos. No entanto, a transferência limitada de dados entre a CPU e memória cria um "gargalo de von Neumann" que reduz a eficiência.
A arquitetura de von Neumann define o modelo básico de computadores digitais, com uma unidade central de processamento (CPU), memória e unidade de controle que executa instruções armazenadas na memória. Isso permitiu que programas fossem armazenados e modificados na memória, em contraste com computadores iniciais que tinham programas fixos. No entanto, a transferência limitada de dados entre a CPU e memória cria um "gargalo de von Neumann" que reduz a eficiência.
A arquitetura de von Neumann define o modelo básico de computadores digitais, com uma unidade central de processamento (CPU), memória e unidade de controle que executa instruções armazenadas na memória. Isso permitiu que programas fossem armazenados e modificados na memória, em contraste com computadores iniciais que tinham programas fixos. No entanto, a transferência limitada de dados entre a CPU e memória cria um "gargalo de von Neumann" que reduz a eficiência.
John von Neumann. Ilustrao representando a "Arquitetura de von Neumann" Ilustrao detalhando a Arquitetura Ciclo de von Neumann: Buscar-Decodifcar-Executar Diagrama da Arquitetura A Arquitetura de von Neumann - de John von Neumann (pronunciado Nimann) - uma arquitetura de computador que se caracteriza pela possibilidade de uma mquina digital armazenar seus programas no mesmo espao de memria que os dados, podendo assim manipular tais programas. Esta arquitetura um projeto modelo de um computador digital de programa armazenado que utiliza uma unidade de processamento (CPU) e uma de armazenamento ("memria") para comportar, respectivamente, instrues e dados. A mquina proposta por Von Neumann rene os seguintes componentes: (i) uma memria, (ii) uma unidade aritmtica e lgica (ALU), (iii) uma unidade central de processamento (CPU), composta por diversos registradores, e (iv) uma Unidade de Controle (CU), cuja funo a mesma da tabela de controle da Mquina de Turing universal: buscar um programa na memria, instruo por instruo, e execut-lo sobre os dados de entrada. Todos os elementos dessa arquitetura so alinhados da estrutura hardware do CPU, assim o sistema pode realizar todas as suas atividades sem apresentar erros no desempenho. Von Neumann continuamente infuenciado pela evoluo tecnolgica, tendo peas mais modernas inseridas. Cada um dos elementos apresentados realizado custa de componentes fsicos independentes, cuja implementao tem variado ao longo do tempo, consoante a evoluo das tecnologias de fabricao, desde os rels electromagnticos, os tubos de vcuo (ou vlvulas), at aos semicondutores, abrangendo os transistores e os circuitos eletrnicos integrados, com mdia, alta ou muito alta densidade de integrao (MSI - medium scale, LSI -large scale, ou VLSI - very large scale integration), medida em termos de milhes transistores por pastilhade silcio. As novas interaes entre os elementos exibem tempos tpicos que tambm tm variado ao longo do tempo, consoante as tecnologias de fabricao. Atualmente, as CPUs processam instrues sob controlo de relgios cujos perodos tpicos so da ordem de 1 nanosegundo, ou seja, segundos. As memrias centrais tm tempos tpicos de acesso da ordem da dezena de nanosegundos. As unidades de entrada e sada exibem tempos tpicos extremamente variveis, mas que so tipicamente muito superiores escala do nanosegundo. Por exemplo, os discos rgidos exibem tempos da ordem dos milissegundos (milsimo de segundo, ). Outros dispositivos perifricos so inertes, a no ser que sejam ativados por utilizadores humanos. Por exemplo, ao se fazer "copy and paste" nao se-percebe nada do que foi descrito acima, pois um teclado s envia informao para o computador aps serem pressionada as devidas teclas. Assim, este dispositivo se comunica com a CPU eventualmente e, portanto, exibe tempos indeterminados. O modelo (ou arquitetura) de Von Neumann foi concebido a partir de 1946, quando John von Neumann e sua equipe desenvolveram um novo projeto de computador de programa armazenado. Projetado pela IAS (Princeton Institute for Advanced Studies), este computador foi largamente difundido, infuenciando muitos projetos subsequentes de outras mquinas. Descrio[editar | editar cdigo-fonte] As primeiras mquinas de computao tinham programas fxos. Alguns computadores muito simples ainda usam este projeto, quer para fns de simplicidade ou de formao. Por exemplo, uma calculadora de mesa (em princpio) um programa de computador fxo. Ele pode fazer a matemtica bsica, mas no pode ser usado como um processador de texto ou um emulador de console de videogame. Alterar o programa de uma mquina de programa fxo exige re-ligao, re-estruturao ou re-projetar a mquina. Os primeiros computadores no eram to "programados", como eles foram "desenhados". Era um processo trabalhoso, comeando com fuxogramas e cdulas de papel, seguido de desenhos detalhados de engenharia e, em seguida o processo muitas vezes penoso fsicamente de re-ligao e re-construo da mquina. Podendo levar trs semanas para criar um programa no ENIAC e comear a trabalhar. A ideia do computador de programa armazenado, mudou tudo isso: um computador que pelo projeto inclui um conjunto de instrues e pode armazenar na memria um conjunto de instrues (programa) que detalha o clculo. Um projeto de programa armazenado tambm permite que os programas possam se modifcar durante a execuo. Uma motivao precoce para uma instalao desse tipo foi a necessidade de um programa para incrementar ou modifcar a poro do endereo das instrues, o que tinha que ser feito manualmente em projetos adiantados. Isto tornou-se menos importante quando registradores de ndice e endereamento indireto foram as caractersticas usuais da arquitetura da mquina. Cdigo de Auto-modifcao foi amplamente cado em desuso, j que normalmente difcil de entender e depurar, bem como sendo inefciente em pipelining processador moderno, e esquemas de cache. Em grande escala, a capacidade de tratar as instrues como os dados o que faz montadores, compiladores e outras ferramentas de programao automatizada possveis. Pode-se "escrever programas que escrevem programas." Em uma escala menor, instrues de I / O da mquina intensiva, como o BitBlt primitivos usados para modifcar imagens em um display bitmap. Foi mostrado posteriormente que estas instrues podem ser implementadas de forma efciente por "na compilao fy" ("just-in-time de compilao) de tecnologia, por exemplo, gerao de cdigo de programas, uma forma de cdigo de auto-modifcao que se manteve popular. H desvantagens para a concepo de von Neumann. Alm do gargalo de von Neumann descrito abaixo, alterar o programa pode ser bastante prejudicial, quer por acidente ou design. Em alguns projetos simples computador de programa armazenado, um programa com defeito pode danifcar outros programas, ou o sistema operacional, possivelmente levando a uma pane no computador. Proteo de memria e outras formas de controle de acesso. O matemtico Alan Turing, que tinha sido alertado para um problema de lgica matemtica pelas palestras de Max Newman na Universidade de Cambridge, escreveu um artigo em 1936 intitulado On Computable Numbers, com um aplicativo para o Entscheidungsproblem, que foi publicado nos Anais da Sociedade Matemtica de Londres. Nela, ele descreveu uma mquina hipottica que ele chamou de "mquina de computao universal", e que agora conhecida como a "mquina de Turing universal". A mquina hipottica tinha uma loja de infnitas (memria, na terminologia de hoje instrues e dados). O engenheiro alemo Konrad Zuse, independentemente escreveu sobre este conceito em 1936. John von Neumann tornou-se familiarizado com Turing, quando ele era professor visitante na Universidade de Cambridge em 1935 e tambm durante o ano que Turing passou na Universidade de Princeton, em 1936-1937. Von Neumann estava envolvido no Projeto Manhattan no Los Alamos National Laboratory, que exigiu enormes quantidades de clculo. Isso o levou para o projeto ENIAC, no vero de 1944. L ele se juntou ao debate em curso sobre a concepo deste computador de programa armazenado, o EDVAC. Como parte desse grupo, ele se ofereceu para escrever uma descrio do mesmo. O termo "arquitetura de von Neumann" surgiu a partir de uma publicao de von Neumann, o primeiro esboo de um relatrio sobre o EDVAC datado de 30 de junho de 1945, que inclua ideias de Eckert e Mauchly. O esboo estava inacabado quando seu colega Herman Goldstine que circulou somente com o nome de von Neumann sobre ele, para a consternao de Eckert e Mauchly. O documento foi lido por dezenas de colegas de von Neumann nos Estados Unidos e Europa, infuenciando a prxima rodada de modelos de computador. Ambas publicaes de von Neumann e Turing descreveram um programa armazenado para computadores, mas a publicao de von Neumann alcanou maior circulao e a arquitetura do computador que ele exps fcou conhecida como a "arquitetura de von Neumann". Von Neumann foi, ento, o criador da arquitetura de programa armazenado, mas Jack Copeland considera que "historicamente inadequado" referir-se a eletrnica de programa armazenado e computadores digitais como "mquinas de von Neumann" Gargalo de von Neumann[editar | editar cdigo-fonte] O canal de transmisso de dados entre a CPU e a memria leva ao gargalo de von Neumann, a troca de dados limitada (taxa de transferncia) entre a CPU e a memria em relao quantidade de memria. Na maioria dos computadores modernos, a troca de dados entre o processador e a memria muito menor do que a taxa com que o processador pode trabalhar. Isso limita seriamente a velocidade efcaz de processamento, principalmente quando o processador exigido para realizar o processamento de grandes quantidades de dados. A CPU constantemente forada a esperar por dados que precisam ser transferidos para, ou a partir da, memria. Como a velocidade da CPU e o tamanho da memria tm aumentado muito mais rapidamente que a taxa de transferncia entre eles, o gargalo se tornou mais um problema, um problema cuja gravidade aumenta com cada gerao de CPU. O termo "gargalo de von Neumann" foi cunhado por John Backus em sua palestra Award 1977 ACM Turing. Segundo Backus: Certamente deve haver uma maneira menos primitiva de se fazer grandes alteraes na memria, do que empurrando um grande nmero de palavras, de um lado a outro, do gargalo de von Neumann. No somente um gargalo literal para o trfego de dados, mas, o mais importante, um gargalo intelectual que nos tem mantido atados a um pensamento de "uma palavra por vez" em vez de encorajar-nos a pensar em termos unidades conceituais maiores. Assim, a programao basicamente o planejamento e detalhamento do enorme trfego de palavras atravs do gargalo de von Neumann e grande parte desse trfego no diz respeito aos dados propriamente ditos, e sim a onde esses dados so encontrados. 1 O problema de desempenho pode ser aliviado (at certo ponto) por diversos mecanismos. Colocando uma memria cache entre o processador e a memria principal, proporcionando caches separados com os caminhos de acesso separado para dados e instrues (a chamada arquitetura Harvard Modifcada), utilizando um algortmo preditor de salto e lgica. O problema tambm pode ser contornado usando um pouco de computao paralela, por exemplo a arquitetura NUMA, esta abordagem geralmente utilizada em supercomputadores. Primeiros computadores de arquitetura von Neumann[editar | editar cdigo-fonte] A Primeira Ideia (primeiro rascunho - First Draft) descrevia um design de computador que foi usado por muitas universidades e corporaes para construir seus computadores. 2 Dentre esses computadores, somente o ILLIAC e o ORDVAC possuam instrues compatveis. ORDVAC (U-Illinois) @ Aberdeen Proving Ground, Maryland (completado em novembro de 1951 3 ) IAS machine @ Princeton University (jan. de 1952) MANIAC I @ Los Alamos Scientifc Laboratory (mar. 1952) ILLIAC @ the University of Illinois, (set. 1952) AVIDAC @ Argonne National Laboratory (1953) ORACLE @ Oak Ridge National Laboratory (jun. 1953) JOHNNIAC @ RAND Corporation (jan. 1954) BESK em Stockholm (1953) BESM-1 em Moscow (1952) DASK em Denmark (1955) PERM em Munich (1956?) SILLIAC em Sydney (1956) WEIZAC em Rehovoth (1955)