Você está na página 1de 9

Arquitectura de von Neumann

Diagrama de la arquitectura Von Neumann. 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, un dispositivo 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.

Origen de trmino Arquitectura Von Neumann


El trmino arquitectura de von Neumann se acu a partir del memorando First Draft of a Report on the EDVAC (1945) escrito por el conocido matemtico John von Neumann en el que se propona el concepto de programa almacenado. Dicho documento fue redactado en vistas a la construccin del sucesor de la computadora ENIAC y su contenido fue desarrollado por John Presper Eckert, John William Mauchly, Arthur Burks y otros durante varios meses antes de que von Neumann redactara el borrador del informe. Es por ello que otros tecnlogos como David A. Patterson y John L. Hennessy promueven la sustitucin de este trmino por el de arquitectura Eckert-Mauchly.1

Desarrollo del concepto de programa almacenado


El matemtico Alan Turing, quien haba sido alertado de un problema de lgica matemtica por las lecciones de Max Newman en la Universidad de Cambridge, escribi un artculo en 1936 titulado On Computable Numbers, with an Application to the Entscheidungs problem, que fue publicado en los Proceedings of the London Mathematical Society. En l describa una mquina hipottica que llam mquina computadora universal, y que ahora es conocida como la Mquina de Turing. La mquina hipottica tena un almacenamiento infinito (memoria en la terminologa actual) que contena tanto las instrucciones como los datos. El ingeniero alemn Konrad Zuse escribi de forma independiente sobre este concepto en 1936. Von Neumann conoci a Turing cuando ejerca de profesor sustituto en Cambridge en 1935 y tambin durante el ao que Turing pas en la

Universidad de Princeton en 1936-37. Cundo supo del artculo de 1936 de Turing no est claro. Independientemente, J. Presper Eckert y John Mauchly, quienes estaban desarrollando el ENIAC en la Escuela Moore de Ingeniera Elctrica en la Universidad de Pennsylvania, escribieron sobre el concepto de programa almacenado en diciembre de 1943. Mientras diseaba una nueva mquina, EDVAC, Eckert escribi en enero de 1944 que se almacenaran datos y programas en un nuevo dispositivo de memoria direccionable, una lnea de retardo de mercurio. Esta fue la primera vez que se propuso la construccin de un programa almacenado prctico. Por esas fechas, no tenan conocimiento del trabajo de Turing. Von Neumann estaba involucrado en el Proyecto Manhattan en el Laboratorio Nacional Los Alamos, el cual requera ingentes cantidades de clculos. Esto le condujo al proyecto ENIAC, en verano de 1944. All se incorpor a los debates sobre el diseo de un ordenador con programas almacenados, el EDVAC. Como parte del grupo, se ofreci voluntario a escribir una descripcin de l. El trmino von Neumann architecture surgi del primer artculo de von Neumann: First Draft of a Report on the EDVAC, fechado el 30 de junio de 1945, el cual inclua ideas de Eckert y Mauchly. Estaba inconcluso cuando su compaero Herman Goldstine lo hizo circular con solo el nombre de von Neumann en l, para consternacin de Eckert y Mauchly. El artculo fue ledo por docenas de compaeros de trabajo de Von Neumann en Amrica y Europa, e influenci la siguiente hornada de diseos de computadoras. 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 mquina 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.

Descripcin del concepto de programa almacenado


Los primeros computadores constaban de programas almacenados. Algunos muy simples siguen utilizando este diseo, por ejemplo, una calculadora es un computador que tiene un programa almacenado. Puede hacer operaciones matemticas simples, pero no puede ser usada como procesador de textos o videoconsola. Cambiar el programa que contenan los dispositivos que usaban esta tecnologa requera reescribir, reestructurar y/o redisear el dispositivo. Los primeros computadores no estaban lo suficiente programados cuando fueron diseados. La tarea de reprogramar, cuando era posible, era un proceso laborioso, empezando con notas en papel y siguiendo con detallados diseos de ingeniera. Y tras esto llegaba el a veces complicado proceso de reescritura y reestructuramiento fsico del computador.

El concepto de programa almacenado cambi por completo, se pens en un computador que en su diseo contena un conjunto de instrucciones que podan ser almacenadas en memoria, o sea, un programa que detallaba la computacin del mismo. 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 la arquitectura 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.

Cuello de botella de Von Neumann (Von Neumann bottleneck)


El canal de transmisin de los datos entre CPU y memoria genera un cuello de botella para el rendimiento del procesador. En la mayora de computadoras modernas, la velocidad de comunicacin entre la memoria y la CPU es ms baja que la velocidad a la que puede trabajar esta ltima, reduciendo el rendimiento del procesador y limitando seriamente la velocidad de proceso eficaz, sobre todo cuando se necesitan procesar grandes cantidades de datos. La CPU se ve forzada a esperar continuamente a que lleguen los datos necesarios desde o hacia la memoria. La velocidad de procesamiento y la cantidad de memoria han aumentado mucho ms rpidamente que el rendimiento de transferencia entre ellos, lo que ha agravado el problema del cuello de botella. 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 tantas palabras 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 saltos. 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.

Primeros ordenadores basados en arquitecturas von Neumann


La primera saga se basaba en un diseo que fue utilizado por muchas universidades y empresas para construir sus equipos. Entre estos, slo ILLIAC y ORDVAC tenan un conjunto de instrucciones compatible.

ORDVAC (U-Illinois) en Aberdeen Proving Ground, Maryland (completado en noviembre de 1951) 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)

Arquitectura Harvard

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. Arquitectura Harvard: Este modelo, que utilizan los Microcontroladores PIC, tiene la unidad central de proceso (CPU) conectada a dos memorias (una con las instrucciones y otra con los datos) por medio de dos buses diferentes.

Una de las memorias contiene solamente las instrucciones del programa (Memoria de Programa), y la otra slo almacena datos (Memoria de Datos). Ambos buses son totalmente independientes lo que permite que la CPU pueda acceder de forma independiente y simultnea a la memoria de datos y a la de instrucciones. Como los buses son independientes estos pueden tener distintos contenidos en la misma direccin y tambin distinta longitud. Tambien la longitud de los datos y las instrucciones puede ser distinta, lo que optimiza el uso de la memoria en general. Para un procesador de Set de Instrucciones Reducido, o RISC (Reduced Instruccin Set Computer), el set de instrucciones y el bus de memoria de programa pueden disearse de tal manera que todas las instrucciones tengan una sola posicin de memoria de programa de longitud. Adems, al ser los buses independientes, la CPU puede acceder a los datos para completar la ejecucin de una instruccin, y al mismo tiempo leer la siguiente instruccin a ejecutar. Ventajas de esta arquitectura: * El tamao de las instrucciones no esta relacionado con el de los datos, y por lo tanto puede ser optimizado para que cualquier instruccin ocupe una sola posicin de memoria de programa,

logrando as mayor velocidad y menor longitud de programa. * El tiempo de acceso a las instrucciones puede superponerse con el de los datos, logrando una mayor velocidad en cada operacin.

Modelo o Arquitectura de Harvard


Luego de estudiar la arquitectura de Von Neumann podemos observar que tiene un solo bus para los datos de memoria y programas, lo cual produce la sobrecarga del bus para llevar las distintas instrucciones al CPU, ya que exige varios accesos a memoria; limitacin que es superada por la arquitectura de Harvard la cual consiste en dos memorias que estn conectadas al CPU por medio de sistemas de buses completamente independientes (separados), una de las memorias es encargada solo de almacenar datos (Memoria de Datos) mientras que la otra es la responsable de llevar las instrucciones de los programas (Memoria de Programa), gracias a estas memorias el tiempo de desempeo mejora ya que es posible acceder a programas y datos a la misma vez (la instruccin es llevada a l CPU en una sola entrada a la Memoria de Programa, mientras el bus de datos esta libre entra a l para obtener los datos necesarios para la realizacin de la instruccin.

Ventajas y desventajas: La gran ventaja de este modelo es que se pueden ejecutar al mismo tiempo tanto accesos como tambin a los bancos de datos, agilizando las operaciones; y que el tamao de las instrucciones no estn asociadas con los datos lo cual lleva a que la instruccin ocupe una sola posicin en la memoria de programa. Adems el tiempo de acceso a las operaciones puede superponerse con el de los datos. Aunque este modelo de Harvard supero las limitaciones de Von Neumann tambin tiene un gran inconveniente o desventaja la cual es la mayor complicacin estructural, ya que exige el uso de mltiples sistemas de buses.

Você também pode gostar