Anda di halaman 1dari 6

Arquitetura de von Neumann

Origem: Wikipdia, a enciclopdia livre.


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)