UNIVERSIDAD MARIANO GÁLVEZ DE GUATEMALA INGENIERÍA EN SISTEMAS DE INFORMACIÓN ARQUITECTUTA DE COMPUTADORAS ING.

SAMUEL GARCÍA

ARQUITECTURA DE VON NEUMANN ARQUITECTURA DE HARVARD

KAREN JEANNIRA DE LA CRUZ LÓPEZ CARNÉ: 0907-08-2594 JALAPA, 11 DE AGOSTO DE 2012

. 8 2 ............................................................................................................ 7 ARQUITECTURA DE HARVARD ............................................................................................................ 7 Cuello de botella de Von Neumann (Von Neumann bottleneck)..........................................................................................INDICE ARQUITECTURA DE VON NEUMANN .... 4 Origen ...................................................................................................... 4 Desarrollo del concepto de programa almacenado ................... 5 Descripción del concepto de programa almacenado ..................................

3 . en la cual la unidad central de proceso (CPU). Cuando hablamos de la Arquitectura Von Neumann: Tradicionalmente nos referimos a los sistemas con microprocesadores se basan en esta arquitectura. A dicha memoria se accede a través de un sistema de buses único (control. Y cuando hablamos de la Arquitectura Harvard nos referimos al modelo. está conectada a una memoria principal única (casi siempre sólo RAM) donde se guardan las instrucciones del programa y los datos. direcciones y datos). 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.INTRODUCCIÓN A continuación trataremos un tema de suma importancia dentro del Curso de Arquitectura de computadoras como lo son: La Arquitectura de Von Neumann y la Arquitectura de Harvard.

aunque también diseñó otras formas de construcción. fabricado en 1951 por la Sperry-Rand Corporation y comprado por la Oficina del Censo de Estados Unidos. escribiéndola de la misma forma. 4 . Compañero de Albert Einstein. El primer computador comercial construido en esta forma fue el UNIVAC I. un dispositivo de entrada/salida y el bus de datos que proporciona un medio de transporte de los datos entre las distintas partes. la unidad de control. Kurt Gödel y Alan Turing en Princeton. Su "EDVAC" fue el modelo de las computadoras de este tipo construidas a continuación. Los ordenadores con esta arquitectura constan de cinco partes: La unidad aritmético-lógica o ALU. En 1949 había encontrado y desarrollado la solución a este problema. es decir en código binario. la memoria. Un ordenador con esta arquitectura realiza o emula los siguientes pasos secuencialmente: 1. Enciende el ordenador y obtiene la siguiente instrucción desde la memoria en la dirección indicada por el contador de programa y la guarda en el registro de instrucción. John Von Neumann. Se habla desde entonces de la arquitectura de Von Neumann. Von Neumann se interesó por el problema de la necesidad de recablear la máquina para cada nueva tarea. Este trabajaba en 1945 en el Laboratorio Nacional Los Álamos cuando se encontró con uno de los constructores de la ENIAC. consistente en poner la información sobre las operaciones a realizar en la misma memoria utilizada para los datos.ARQUITECTURA DE VON NEUMANN Origen El nacimiento u origen de la arquitectura Von Neumann surge a raíz de una colaboración en el proyecto ENIAC del matemático de origen húngaro.

3. El término “von Neumann architecture” surgió del primer artículo de von Neumann: “First Draft of a Report on the EDVAC”. Von Neumann estaba involucrado en el Proyecto Manhattan en el Laboratorio Nacional Los Alamos. el EDVAC. e influenció la siguiente hornada de diseños de computadoras. no tenían conocimiento del trabajo de Turing. quien había sido alertado de un problema de lógica matemática por las lecciones de Max Newman en la Universidad de Cambridge. El ingeniero alemán Konrad Zuse escribió de forma independiente sobre este concepto en 1936. se ofreció voluntario a escribir una descripción de él. Estaba inconcluso cuando su compañero Herman Goldstine lo hizo circular con solo el nombre de von Neumann en él. La máquina hipotética tenía un almacenamiento infinito (memoria en la terminología actual) que contenía tanto las instrucciones como los datos. Ésta puede cambiar el valor del contador del programa. Aumenta el contador de programa en la longitud de la instrucción para apuntar a la siguiente. que fue publicado en los “Proceedings of the London Mathematical Society”. el cual incluía ideas de Eckert y Mauchly. escribió un artículo en 1936 titulado “On Computable Numbers. Mientras diseñaba una nueva máquina. Von Neumann conoció a Turing cuando ejercía de profesor sustituto en Cambridge en 1935 y también durante el año que Turing pasó en la Universidad de Princeton en 1936-37. permitiendo así operaciones repetitivas. El contador puede cambiar también cuando se cumpla una cierta condición aritmética. Esto le condujo al proyecto ENIAC. EDVAC. Independientemente. Allí se incorporó a los debates sobre el diseño de un ordenador con programas almacenados. Presper Eckert y John Mauchly. 5 . mediante la aritmética y lógica anteriores. Por esas fechas. El artículo fue leído por docenas de compañero de trabajo de von Neumann en América y Europa. y que ahora es conocida como la “Máquina de Turing”. escribieron sobre el concepto de “programa almacenado” en diciembre de 1943. J. haciendo que el ordenador pueda 'tomar decisiones'. Cuándo supo del artículo de 1936 de Turing no está claro. Se ejecuta la instrucción. Desarrollo del concepto de programa almacenado El matemático Alan Turing. Esta fue la primera vez que se propuso la construcción de un programa almacenado práctico. Ésta se encarga de coordinar el resto de componentes del ordenador para realizar una función determinada. Como parte del grupo. 4. fechado el 30 de junio de 1945. una línea de retardo de mercurio.2. Decodifica la instrucción mediante la unidad de control. para consternación de Eckert y Mauchly. quienes estaban desarrollando el ENIAC en la Escuela Moore de Ingeniería Eléctrica en la Universidad de Pennsylvania. en verano de 1944. with an Application to the Entscheidungs problem”. En él describía una máquina hipotética que llamó “máquina computadora universal”. Eckert escribió en enero de 1944 que se almacenarían datos y programas en un nuevo dispositivo de memoria direccionable. el cual requería ingentes cantidades de cálculos. que pueden alcanzar cualquier grado de complejidad.

consiguió mayor circulación y repercusión. Turing.000 operaciones por segundo. y al principio se sugirió el uso de un tubo especial -llamado Selectron. es una máquina de cálculo muy rápido y versátil. pero el informe de Von Neumman inspiró la construcción de la EDSAC (electronic delay-storage automatic calculator) en Cambridge. Varias implementaciones exitosas del diseño ACE fueron producidas. capaz de hacer 20. se hizo una revisión al problema en el laboratorio nacional de Física por el profesor J. describiendo el Motor de Computación Automático (Automatic Computing Engine. pero al ser anterior el artículo de von Neumann. asistido por ingenieros de producción de la compañía eléctrica inglesa. Esta máquina ha sido recientemente completada en América. pero aunque es relativamente pequeño en volumen y contiene solo 800 válvulas termoiónicas. A pesar de que Turing sabía por su experiencia de guerra en el Parque Bletchley que su propuesta era factible. pero el trabajo en dichas máquinas en el Reino Unido se retrasó por la guerra. En 1945. publicaron un informe en el que describen el diseño de otro tipo de máquina (una máquina paralela en este momento) que debería ser muy rápida. describían ordenadores de programas almacenados. Teddington. Burks. Cálculo automático en el laboratorio nacional de física. 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 cálculo automático. así que la arquitectura de computadoras que esbozó adquirió el nombre de “arquitectura von Neumann”. Señalaron que el problema persistente en la construcción de tal máquina estaba en el desarrollo de una memoria adecuada. Womersley. donde el ENIAC había sido construido. Estos tubos son caros y difíciles para fabricar. “Proposed Electronic Calculator”. El informe contenía una propuesta muy detallada para el diseño de la máquina que desde entonces se conoce como el EDVAC (electronic discrete variable automatic computer). y en 1947 la planificación 6 . R. Los trabajos de ambos. emitió en nombre de un grupo de sus compañeros de trabajo un informe sobre el diseño lógico de los ordenadores digitales. Los conceptos básicos y principios abstractos de la computación por una máquina fueron formuladas por el Dr A. Uno de los equipos digitales más modernos que incorpora novedades y mejoras en la técnica de la computación electrónica ha sido demostrado en el laboratorio nacional de física. donde ha sido diseñado y construido por un pequeño equipo de matemáticos e ingenieros electrónicos investigadores sobre el personal del laboratorio. todos los contenidos de los cuales fueron instantáneamente accesibles. el secretismo mantenido durante muchas décadas acerca de los ordenadores Colossus le impidió manifestarlo. Esa máquina que se completó en junio de 1952 en Princeton se ha conocido como MANIAC I. ACE). En 1945. Turing un pequeño equipo de especialistas.Posteriormente. así Von Neumman decidió construir una máquina basada en la memoria de Williams. Turing desarrolló un informe técnico detallado. En 1947. Goldstine y Von Neumann. el profesor Neumann que estaba trabajando en la escuela Moore de ingeniería de Filadelfia. Se le adjuntó al Dr.que había sido inventado por los laboratorios de Princeton de la RCA. M. El diseño de esta máquina que ha sido inspirado de una docena o más de máquinas que están actualmente en construcción en América. von Neumann y Turing. Presentó éste al Laboratorio Nacional de Física Británico el 19 de febrero de 1946.

Otros programas. la velocidad de comunicación entre la memoria y la CPU es más baja que la velocidad a la que puede trabajar esta última. posiblemente puedan llevar a un daño total en el ordenador. La CPU se ve forzada 7 . Existen inconvenientes en el diseño de Von Neumann. Las modificaciones en los programas podía ser algo perjudicial. Se pueden "escribir programas para escribir programas". F. una calculadora es un computador que tiene un programa almacenado. era un proceso laborioso. cuando era posible. M. El código automodificable fue en gran parte ganando posiciones. Y tras esto llegaba el a veces complicado proceso de reescritura y reestructuramiento físico del computador. reestructurar y/o rediseñar el dispositivo. En algunos simples diseños de computador con programas almacenados. En la mayoría de computadoras modernas. por accidente o por diseño. Uno de los primeros motivos para su creación fue la necesidad de un programa que incrementara o modificara las direcciones de memoria de algunas instrucciones. reduciendo el rendimiento del procesador y limitando seriamente la velocidad de proceso eficaz. Descripción del concepto de programa almacenado Los primeros computadores constaban de programas almacenados. o sea.preliminaria era lo suficientemente avanzada para justificar el establecimiento del grupo especial ya mencionado. por ejemplo. Algunos muy simples siguen utilizando este diseño. estos últimos se convirtieron en la sección de electrónica del laboratorio. Puede hacer operaciones matemáticas simples. compiladores y otras herramientas de programación automáticas. La tarea de reprogramar. un mal funcionamiento del programa puede dañar el computador. A gran escala. El diseño de un programa almacenado también daba la posibilidad a los programas de ser modificados ellos mismos durante su ejecución. se pensó en un computador que en su diseño contenía un conjunto de instrucciones que podían ser almacenadas en memoria. Esto se volvió menos importante cuando el índice de registros y el direccionamiento indirecto se convirtieron en algo habitual en la arquitectura de computadores. Los primeros computadores no estaban lo suficiente programados cuando fueron diseñados. El concepto de programa almacenado cambió por completo. sobre todo cuando se necesitan procesar grandes cantidades de datos. La protección de la memoria y otras formas de control de acceso pueden ayudar a proteger en contra de modificaciones accidentales y/o maliciosas de programas. Cambiar el programa que contenían los dispositivos que usaban esta tecnología requería reescribir. En abril de 1948. pero no puede ser usada como procesador de textos o videoconsola. o el sistema operativo. empezando con notas en papel y siguiendo con detallados diseños de ingeniería. las cuales tenían que ser hechas manualmente en los primeros diseños. bajo el cargo del Sr. Colebrook. Cuello de botella de Von Neumann (Von Neumann bottleneck) El canal de transmisión de los datos entre CPU y memoria genera un cuello de botella para el rendimiento del procesador. la habilidad de tratar instrucciones como datos es lo que hacen los ensambladores. un programa que detallaba la computación del mismo.

a esperar continuamente a que lleguen los datos necesarios desde o hacia la memoria. por ejemplo. El término proviene de la computadora Harvard Mark I. los datos en sí. El término “cuello de botella de von Neumann” fue acuñado por John Backus en su conferencia de la concesión de 1977 ACM Turing. Está menos claro que el cuello de botella intelectual que Backus ha criticado haya cambiado mucho desde 1977. que almacenaba las instrucciones en cintas perforadas y los datos en interruptores. por tanto.2 El problema de funcionamiento se redujo introduciendo una memoria caché entre la CPU y la memoria principal. sino a dónde encontrar éstos. Los dos son importantes para la CPU. La solución propuesta de Backus no ha tenido una influencia importante. y la memoria que guarda los datos. Cuando hablamos de memoria manejamos dos parámetros. que empujando tantas palabras hacia un lado y otro del cuello de botella de von Neumann. En los últimos años la velocidad de las CPUs ha aumentado mucho en comparación a la de las memorias con las que trabaja. sin saber en realidad qué es lo que contienen los datos. No sólo es un cuello de botella para el tráfico de datos. lo que ha agravado el problema del cuello de botella. el rendimiento será mucho mayor que si la caché 8 . y el lugar donde se encuentran almacenados (o dirección). Si. Se puede fabricar memoria mucho más rápida. es proporcionar una pequeña cantidad de memoria muy rápida conocida con el nombre de memoria caché. no se gana nada incrementando la velocidad de la CPU (este problema es conocido como limitación de memoria). cada instrucción ejecutada en la CPU requiere un acceso a la memoria. Entonces la programación es básicamente la planificación del enorme tráfico de palabras que cruzan el cuello de botella de von Neumann. la CPU que procesa los datos. Todas las computadoras constan principalmente de dos partes. el término Arquitectura Harvard hacía referencia a las arquitecturas de computadoras que utilizaban dispositivos de almacenamiento físicamente separados para las instrucciones y para los datos (en oposición a la Arquitectura de von Neumann). La programación funcional moderna y la programación orientada a objetos se preocupan mucho menos de “empujar tantas palabras hacia un lado y otro” que los anteriores lenguajes como era Fortran. sino que. 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. y gran parte de ese tráfico no concierne a los propios datos. pues muchas instrucciones frecuentes se traducen a algo así como "coge los datos de ésta dirección y añádelos a los datos de ésta otra dirección". Según Backus: Seguramente debe haber una manera menos primitiva de realizar grandes cambios en la memoria. ARQUITECTURA DE HARVARD Originalmente. Mientras los datos que necesita el procesador estén en la caché. pero a costa de un precio muy alto. La velocidad de procesamiento y la cantidad de memoria han aumentado mucho más rápidamente que el rendimiento de transferencia entre ellos. así que se debe poner mucha atención en reducir el número de veces que se accede a ella para mantener el rendimiento. y mejorando los algoritmos del predictor de saltos. más importante. La solución.

Esta arquitectura suele utilizarse en DSPs. Como los buses son independientes éstos pueden tener distintos contenidos en la misma dirección y también distinta longitud. logrando así mayor velocidad y menor longitud de programa. Por otro lado. tiene el inconveniente de tener que dividir la cantidad de caché entre los dos. y al mismo tiempo leer la siguiente instrucción a ejecutar. Para un procesador de Set de Instrucciones Reducido. 9 . lo que optimiza el uso de la memoria en general. Ventajas de esta arquitectura:  El tamaño de las instrucciones no está relacionado con el de los datos. Además.tiene que obtener primero los datos de la memoria principal. o procesador de señal digital. por lo que funciona mejor sólo cuando la frecuencia de lectura de instrucciones y de datos es aproximadamente la misma. y la otra sólo almacena datos (Memoria de Datos). logrando una mayor velocidad en cada operación. Ambos buses son totalmente independientes lo que permite que la CPU pueda acceder de forma independiente y simultánea a la memoria de datos y a la de instrucciones. Las instrucciones y los datos se almacenan en cachés separadas para mejorar el rendimiento. Entonces podemos decir que la arquitectura de computadoras es la parte mas importante del estudio general del computador. el set de instrucciones y el bus de memoria de programa pueden diseñarse de tal manera que todas las instrucciones tengan una sola posición de memoria de programa de longitud. usados habitualmente en productos para procesamiento de audio y video.  El tiempo de acceso a las instrucciones puede superponerse con el de los datos. La arquitectura Harvard ofrece una solución particular a este problema. y por lo tanto puede ser optimizado para que cualquier instrucción ocupe una sola posición de memoria de programa. o RISC (Reduced Instrucción Set Computer). Una de las memorias contiene solamente las instrucciones del programa (Memoria de Programa). La optimización de la caché es un tema muy importante de cara al diseño de computadoras. la CPU puede acceder a los datos para completar la ejecución de una instrucción. al ser los buses independientes. También la longitud de los datos y las instrucciones puede ser distinta.

en la arquitectura Harvard se propone que el programa esté totalmente separado de los datos con los que trabaja: es decir. Está claro que se hacía necesario almacenar un programa en forma de una secuencia de instrucciones. y ha cambiado la tecnología a emplearse para su construcción. el programa en una memoria. y los datos en otra memoria independiente.CONCLUSIÓN Aunque ya han pasado muchísimos años desde que se fabricaron las primeras computadoras. 10 . En conclusión hay dos formas distintas de construir ordenadores: utilizando una única memoria para datos e instrucciones. o bien. la gran mayoría de computadores sigue utilizando la Arquitectura de Von Neuman. dos memorias separadas e independientes: una para datos y otra para instrucciones. pero a diferencia de la arquitectura de Von Neumann.

com/articulos/1518-arquitectura-de-von-neumann-y-arquitectura-harvard 11 .org/node/187 http://es.org/wiki/Arquitectura_Harvard http://latecladeescape.wikipedia.org/wiki/Arquitectura_de_von_Neumann http://es.wikipedia.BIBLIOGRAFÍA http://seccperu.

Sign up to vote on this title
UsefulNot useful