Académique Documents
Professionnel Documents
Culture Documents
La arquitectura de von Neumann es una familia de arquitecturas de computadoras que utilizan el mismo dispositivo de almacenamiento tanto para las instrucciones como para los datos (a diferencia de la arquitectura Harvard). La mayora de computadoras modernas estn basadas en esta arquitectura, aunque pueden incluir otros dispositivos adicionales, (por ejemplo, para gestionar las-interrupciones de dispositivos externos como ratn, teclado, etc).
Origen
El nacimiento u origen de la arquitectura Von Neumann surge a raz de una colaboracin en el proyecto ENIAC del matemtico de origen hngaro, John Von Neumann. Este trabajaba en 1945 en el Laboratorio Nacional Los lamos cuando se encontr con uno de los constructores de la ENIAC. Compaero de Albert Einstein, Kurt Gdel y Alan Turing en Princeton, Von Neumann se interes por el problema de la necesidad de recablear la mquina para cada nueva tarea. En 1949 haba encontrado y desarrollado la solucin a este problema, consistente en poner la informacin sobre las operaciones a realizar en la misma memoria utilizada para los datos, escribindola de la misma forma, es decir en cdigo binario. Su "EDVAC" fue el modelo de las computadoras de este tipo construidas a continuacin. Se habla desde entonces de la arquitectura de Von Neumann, aunque tambin dise otras formas de construccin. El primer computador comercial construido en esta forma fue
el UNIVAC I, fabricado en 1951 por la Sperry-Rand Corporation y comprado por la Oficina del Censo de Estados Unidos.
Organizacin
Los ordenadores con esta arquitectura constan de cinco partes: La unidad aritmtico-lgica o ALU, la unidad de control, la memoria, undispositivo de entrada/salida y el bus de datos que proporciona un medio de transporte de los datos entre las distintas partes. Un ordenador con esta arquitectura realiza o emula los siguientes pasos secuencialmente:
1. Enciende el ordenador y obtiene la siguiente instruccin desde la
memoria en la direccin indicada por el contador de programa y la guarda en el registro de instruccin. 2. Aumenta el contador de programa en la longitud de la instruccin para apuntar a la siguiente.
3. Decodifica la instruccin mediante la unidad de control. sta se
encarga de coordinar el resto de componentes del ordenador para realizar una funcin determinada. 4. Se ejecuta la instruccin. sta puede cambiar el valor del contador del programa, permitiendo as operaciones repetitivas. El contador puede cambiar tambin cuando se cumpla una cierta condicin aritmtica, haciendo que el ordenador pueda 'tomar decisiones', que pueden alcanzar cualquier grado de complejidad, mediante la aritmtica y lgica anteriores.
Posteriormente, Turing desarroll un informe tcnico detallado, Proposed Electronic Calculator, describiendo el Motor de Computacin Automtico (Automatic Computing Engine, ACE). Present ste al Laboratorio Nacional de Fsica Britnico el 19 de febrero de 1946. A pesar de que Turing saba por su experiencia de guerra en el Parque Bletchley que su propuesta era factible, el secretismo mantenido durante muchas dcadas acerca de los ordenadores Colossus le impidi manifestarlo. Varias implementaciones exitosas del diseo ACE fueron producidas. Los trabajos de ambos, von Neumann y Turing, describan ordenadores de programas almacenados, pero al ser anterior el artculo de von Neumann, consigui mayor circulacin y repercusin, as que la arquitectura de computadoras que esboz adquiri el nombre de arquitectura von Neumann. En 1945, el profesor Neumann que estaba trabajando en la escuela Moore de ingeniera de Filadelfia, donde el ENIAC haba sido construido, emiti en nombre de un grupo de sus compaeros de trabajo un informe sobre el diseo lgico de los ordenadores digitales. El informe contena una propuesta muy detallada para el diseo de la mquina que desde entonces se conoce como el EDVAC (electronic discrete variable automatic computer). Esta mquina ha sido recientemente completada en Amrica, pero el informe de Von Neumman inspir la construccin de la EDSAC (electronic delay-storage automatic calculator) en Cambridge. En 1947, Burks, Goldstine y Von Neumann, publicaron un informe en el que describen el diseo de otro tipo de mquina (una mqina paralela en este momento) que debera ser muy rpida, capaz de hacer 20.000 operaciones por segundo. Sealaron que el problema persistente en la construccin de tal mquina estaba en el desarrollo de una memoria adecuada, todos los contenidos de los cuales fueron instantneamente accesibles, y al principio se sugiri el uso de un tubo especial -llamado Selectron- que haba sido inventado por los laboratorios de Princeton de la RCA. Estos tubos son caros y difciles para fabricar, as Von Neumman decidi construir una mquina basada en la memoria de Williams. Esa mquina que se complet en junio de 1952 en Princeton se ha conocido como MANIAC I. El diseo de esta mquina que ha sido inspirado de una docena o ms de mquinas que estn actualmente en construccin en Amrica. Clculo automtico en el laboratorio nacional de fsica. Uno de los equipos digitales ms modernos que incorpora novedades y mejoras en la tcnica
de la computacin electrnica ha sido demostrado en el laboratorio nacional de fsica, Teddington, donde ha sido diseado y construido por un pequeo equipo de matemticos e ingenieros electrnicos investigadores sobre el personal del laboratorio, asistido por ingenieros de produccin de la compaa elctrica inglesa. El equipo construido hasta ahora en el laboratorio es solo el modelo piloto de muchas instalaciones muy grandes que se va a conocer como el motor de clculo automtico, pero aunque es relativamente pequeo en volumen y contiene solo 800 vlvulas termoinicas, es una mquina de clculo muy rpido y verstil. Los conceptos bsicos y principios abstractos de la computacin por una mquina fueron formuladas por el Dr A. M. Turing, pero el trabajo en dichas mquinas en el Reino Unido se retras por la guerra. En 1945, se hizo una revisin al problema en el laboratorio nacional de Fsica por el profesor J. R. Womersley. Se le adjunt al Dr. Turing un pequeo equipo de especialistas, y en 1947 la planificacin preliminaria era lo suficientemente avanzada para justificar el establecimiento del grupo especial ya mencionado. En abril de 1948, estos ltimos se convirtieron en la seccin de electrnica del laboratorio, bajo el cargo del Sr. F. M. Colebrook.
El diseo de un programa almacenado tambin daba la posibilidad a los programas de ser modificados ellos mismos durante su ejecucin. Uno de los primeros motivos para su creacin fue la necesidad de un programa que incrementara o modificara las direcciones de memoria de algunas instrucciones, las cuales tenan que ser hechas manualmente en los primeros diseos. Esto se volvi menos importante cuando el ndice de registros y el direccionamiento indirecto se convirtieron en algo habitual en laarquitectura de computadores. El cdigo automodificable fue en gran parte ganando posiciones. A gran escala, la habilidad de tratar instrucciones como datos es lo que hacen los ensambladores, compiladores y otras herramientas de programacin automticas. Se pueden "escribir programas para escribir programas". Existen inconvenientes en el diseo de Von Neumann. Las modificaciones en los programas poda ser algo perjudicial, por accidente o por diseo. En algunos simples diseos de computador con programas almacenados, un mal funcionamiento del programa puede daar el computador. Otros programas, o el sistema operativo, posiblemente puedan llevar a un dao total en el ordenador. La proteccin de la memoria y otras formas de control de acceso pueden ayudar a proteger en contra de modificaciones accidentales y/o maliciosas de programas.
El trmino cuello de botella de von Neumann fue acuado por John Backus en su conferencia de la concesin de 1977 ACM Turing. Segn Backus: Seguramente debe haber una manera menos primitiva de realizar grandes cambios en la memoria, que empujando tantaspalabras hacia un lado y otro del cuello de botella de von Neumann. No slo es un cuello de botella para el trfico de datos, sino que, ms importante, es un cuello de botella intelectual que nos ha mantenido atados al pensamiento de "una palabra a la vez" en vez de fomentarnos el pensar en unidades conceptuales mayores. Entonces la programacin es bsicamente la planificacin del enorme trfico de palabras que cruzan el cuello de botella de von Neumann, y gran parte de ese trfico no concierne a los propios datos, sino a dnde encontrar stos.2 El problema de funcionamiento se redujo introduciendo una memoria cach entre la CPU y la memoria principal, y mejorando los algoritmos del predictor de ramas. Est menos claro que el cuello de botella intelectual que Backus ha criticado haya cambiado mucho desde 1977. La solucin propuesta de Backus no ha tenido una influencia importante. La programacin funcional moderna y la programacin orientada a objetos se preocupan mucho menos de empujar tantas palabras hacia un lado y otro que los anteriores lenguajes como era Fortran.
Proving
Ground,
Maryland
IAS machine en Princeton University (Ene 1952) MANIAC I en Laboratorio Cientfico Los Alamos(Mar 1952) ILLIAC en la Universidad de Illinois, (Sept 1952) AVIDAC en Laboratorios Argonne National (1953) ORACLE en Laboratorio Nacional de Oak Ridge (Jun 1953) JOHNNIAC en RAND Corporation (Ene 1954) BESK en Estocolmo (1953)
BESM-1 en Mosc (1952) DASK en Dinamarca (1955) PERM en Munich (1956?) SILLIAC en Sydney (1956) WEIZAC en Rehovoth (1955)
SSEM ENIAC BINAC Manchester Mark I EDSAC EDVAC CSIRAC SEAC Pilot ACE SWAC Computadora Whirlwind UNIVAC 1101
Arquitectura Harvard
Originalmente, el trmino Arquitectura Harvard haca referencia a las arquitecturas de computadoras que utilizaban dispositivos de almacenamiento fsicamente separados para las instrucciones y para los datos (en oposicin a la Arquitectura de von Neumann). El trmino proviene de la computadora Harvard Mark I, que almacenaba las instrucciones en cintas perforadas y los datos en interruptores.
Todas las computadoras constan principalmente de dos partes, la CPU que procesa los datos, y la memoria que guarda los datos. Cuando hablamos de memoria manejamos dos parmetros, los datos en s, y el lugar donde se encuentran almacenados (o direccin). Los dos son importantes para la CPU, pues muchas instrucciones frecuentes se traducen a algo as como "coge los datos de sta direccin y adelos a los datos de sta otra direccin", sin saber en realidad qu es lo que contienen los datos. En los ltimos aos la velocidad de las CPUs ha aumentado mucho en comparacin a la de las memorias con las que trabaja, as que se debe poner mucha atencin en reducir el nmero de veces que se accede a ella para mantener el rendimiento. Si, por ejemplo, cada instruccin ejecutada en la CPU requiere un acceso a la memoria, no se gana nada incrementando la velocidad de la CPU (este problema es conocido como limitacin de memoria).
Se puede fabricar memoria mucho ms rpida, pero a costa de un precio muy alto. La solucin, por tanto, es proporcionar una pequea cantidad de memoria muy rpida conocida con el nombre de memoria cach. Mientras los datos que necesita el procesador estn en la cach, el rendimiento ser mucho mayor que si la cach tiene que obtener primero los datos de la memoria principal. La optimizacin de la cach es un tema muy importante de cara al diseo de computadoras. La arquitectura Harvard ofrece una solucin particular a este problema. Las instrucciones y los datos se almacenan en cachs separadas para mejorar el rendimiento. Por otro lado, tiene el inconveniente de tener que dividir la cantidad de cach entre los dos, por lo que funciona mejor slo cuando la frecuencia de lectura de instrucciones y de datos es aproximadamente la misma. Esta arquitectura suele utilizarse en DSPs, o procesador de seal digital, usados habitualmente en productos para procesamiento de audio y video.