Arquitectura de Von Neumann
March 24, 2023 | Author: Anonymous | Category: N/A
Short Description
Download Arquitectura de Von Neumann...
Description
Arquitectura de von Neumann
Diagrama de la arquitectura Von Neumann. arquitectura de von Neumann es una familia de La de arquitecturas de computadoras computadoras quelos utilizan el mismo dispositivo de almacenamiento tanto para las instrucciones como para Harvard)). datos (a diferencia de la la arquitectura Harvard
La mayoría de computadoras modernas están basadas en esta arquitectura, aunque pueden incluir otros dispositivos adicionales (por ejemplo, para gestionar las las interrupciones interrupciones de dispositivos externos como ratón, teclado, etc).
Origen El nacimiento u origen de la arquitectura Von Neumann surge a raíz de una colaboración en el proyecto proyecto ENIAC ENIAC del matemático de origen húngaro, húngaro, John Von Neumann Neumann.. Este trabajaba en 1945 en el de Laboratorio Los Álamos se ,encontró con yuno deTuring los en Einstein, Kurt Gödel Gödel Alan Turing constructores la ENIAC.Nacional Compañero de Albertcuando de Einstein Princeton, Princeton, Von Neumann se interesó por el problema de la necesidad de recablear la máquina para cada nueva tarea. En 1949 había encontrado y desarrollado la solución a este problema, consistente en poner la información sobre las operaciones a realizar en la misma memoria utilizada para los datos, escribiéndola de la misma forma, es decir en código binario. Su "EDVAC" fue el modelo de las computadoras de este tipo construidas a continuación. Se habla desde entonces de la arquitectura de Von Neumann, aunque también diseñó otras formas de construcción. El primer computador comercial construido en esta forma fue el el UNIVAC I, I, fabricado en 1951 por la Sperry-Rand Corporation y comprado por la Oficina del Censo de Estados Unidos.
Organización aritmético-lógica Los ordenadores con esta arquitectura constan de cinco partes: La La unidad aritmético-lógica o ALU, ALU, la la unidad de control, control, la la memoria memoria,, un un dispositivo de entrada/salida entrada/salida y el el bus bus de datos 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 instrucción desde la memoria en la dirección el contador de programa programa y la guarda en el el registro de dirección indicada por el instrucción.. instrucción 2. Aumenta el contador de programa en la longitud de la instrucción para apuntar a la siguiente. 3. Decodifica la instrucción mediante la la unidad de control. control. Ésta se encarga de coordinar el resto de componentes del ordenador para realizar una función determinada. 4. Se ejecuta la instrucción. Ésta puede cambiar el valor del contador del programa, permitiendo así operaciones repetitivas. El contador puede cambiar también cuando se cumpla una cierta condición aritmética, haciendo que el ordenador pueda 'tomar decisiones', pueden alcanzar cualquier grado de complejidad, mediante la aritmética y que lógica anteriores.
Origen de término Arquitectura Von Neumann El término arquitectura de von Neumann se acuñó a partir del memorando First Draft of a Report on the the EDVAC EDVAC (1945) 1945) escrito por el conocido matemático matemático John von Neumann Neumann en el almacenado.. Dicho documento fue redactado en que se proponía el concepto de de programa programa almacenado computadora ENIAC ENIAC y su contenido fue vistas a la construcción del sucesor de la la computadora Eckert,, John William Mauchly, Mauchly, Arthur Burks Burks y otros durante desarrollado por John Presper Eckert varios meses antes de que von Neumann redactara el borrador del informe. Es por ello que otros tecnólogos como como David A. Patterson Patterson y John L. Hennessy Hennessy promueven promueven la sustitución de 1
este término por el de arquitectura Eckert-Mauchly.
Desarrollo del concepto de programa almacenado Turing,, quien había sido alertado de un problema de lógica matemática El matemático matemático Alan Turing por las lecciones de Max Newman en la la Universidad de Cambridge, Cambridge, escribió un artículo en 1936 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 describía una máquina hipotética que llamó “máquina computadora universal”, y que ahora es conocida como la “Máquina de Turing”. 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. El ingeniero alemán alemán Konrad Zuse Zuse escribió de forma independiente sobre este concepto en 1936. 1936. Von Neumann 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 Princeton en 1936-37. Cuándo supo del artículo de 1936 de Turing no está claro. Independientemente, J. Presper Eckert Independientemente, Eckert y John Mauchly Mauchly,, quienes estaban desarrollando el ENIAC la Universidad de Pennsylvania Pennsylvania,, ENIAC en la Escuela Moore de Ingeniería Eléctrica en la escribieron sobre el concepto de “ programa almacenado ” en diciembre de 1943. Mientras diseñaba una nueva máquina, máquina, EDVAC, EDVAC, Eckert escribió en enero de 1944 que se almacenarían datos y programas en un nuevo dispositivo de memoria direccionable, una línea de retardo de mercurio. Esta fue la primera vez que se propuso la construcción de un programa almacenado práctico. Por esas fechas, no tenían conocimiento del trabajo de Turing. Neumann estaba involucrado en el el Proyecto Manhattan Manhattan en el Laboratorio Nacional Von Neumann Los Alamos, el cual requería ingentes cantidades de cálculos. Esto le condujo al proyecto ENIAC, en verano de 1944. Allí se incorporó a los debates sobre el diseño de un ordenador ENIAC, con programas almacenados, el EDVAC. Como parte del grupo, se ofreció voluntario a escribir una descripción de él. El término “von Neumann architecture” surgió del primer artículo de von Neumann: “First Draft of a Report on the EDVAC”, fechado el 30 de junio
de 1945, el cual incluía ideas de Eckert y Mauchly. Estaba inconcluso cuando su compañero Herman Goldstine compañero Goldstine lo hizo circular con solo el nombre de von Neumann en él, para consternación de Eckert y Mauchly. El artículo fue fu e leído por docenas de compañe compañeros ros de trabajo de Von Neumann en América y Europa, e influenció la siguiente hornada de diseños de computadoras. Posteriormente, Turing desarrolló un informe técnico detallado, “Proposed Electronic Calculator”, describiendo el Motor de Computación Automá tico (Automatic Computing
Engine, ACE). Presentó éste al al Laboratorio Nacional de Física Británico Británico el 19 de febrero de 1946. 1946. A pesar de que Turing sabía por su experiencia de guerra en el Parque Bletchley que su propuesta era factible, el secretismo mantenido durante muchas décadas acerca de los Colossus le impidió manifestarlo. Varias implementaciones exitosas del diseño ordenadores Colossus ordenadores ACE fueron producidas. Los trabajos depero ambos, Neumann y Turing, describían ordenadores programas almacenados, al servon anterior el artículo de von Neumann, consiguióde mayor circulación y repercusión, 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 ingeniería de Filadelfia, donde el ENIAC había sido construido, emitió en nombre de un grupo de sus compañeros de trabajo un informe sobre el diseño lógico de los ordenadores digitales. 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). Esta máquina ha sido recientemente completada en América, pero el informe de Von Neumman inspiró la construcción de la EDSAC (electronic delay-storage delay-stora ge automatic calculator) en Cambridge.
En 1947, Burks, Goldstine y Von Neumann, 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, capaz de hacer 20.000 operaciones por segundo. Señalaron que el problema persistente en la construcción de tal máquina estaba en el desarrollo desar rollo de una memoria adecuada, todos los contenidos de los cuales fueron instantáneamente accesibles, y al principio se sugirió el uso de un tubo especial -llamado Selectron- que había sido inventado por los laboratorios de Princeton de la RCA. Estos tubos son caros y difíciles para fabricar, así Von Neumman decidió construir una máquina basada en la memoria de Williams. Esa máquina que se completó en junio de 1952 en Princeton se ha conocido como como MANIAC I. I. 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. Cálculo automático en el laboratorio nacional de física. 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, Teddington, 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, asistido por ingenieros de producción de la compañía eléctrica 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 cálculo automático, pero aunque es relativamente pequeño en volumen y contiene solo 800 válvulas termoiónicas, es una máquina de cálculo muy rápido y versátil. Los conceptos básicos y principios abstractos de la computación por p or una máquina fueron formuladas por el Dr A. M. Turing, pero el trabajo en dichas máquinas en el Reino Unido se retrasó por la guerra. En 1945, se hizo una revisión al problema en el laboratorio nacional de Física por el profesor J. R. Womersley. Se le adjuntó al Dr. Turing Tur ing un pequeño equipo de especialistas, y en 1947 la planificación preliminaria era lo suficientemente avanzada para justificar el establecimiento del grupo especial ya mencionado. En abril de 1948, estos últimos se convirtieron en la sección de electrónica del laboratorio, bajo el cargo del Sr. F. M. Colebrook.
Descripción del concepto de programa almacenado Los primeros primeros computadores computadores constaban de programas almacenados. Algunos muy simples calculadora es un computador que tiene un siguen utilizando este diseño, por ejemplo, una una calculadora programa almacenado. Puede hacer operaciones oper aciones matemáticas simples, pero no puede ser usada como como procesador procesador de textos textos o videoconsola. Cambiar el programa que contenían los dispositivos que usaban esta tecnología requería reescribir, reestructurar y/o rediseñar el dispositivo. Los primeros primeros computadores computadores no estaban lo suficiente programados cuando fueron diseñados. La tarea de reprogramar, cuando era posible, era un proceso laborioso, empezando empez ando con notas en papel y siguiendo con detallados ingeniería.. Y tras esto llegaba el a veces complicado proceso de reescritura y diseños de de ingeniería reestructuramiento físico del computador.
El concepto de programa almacenado cambió por completo, se pensó en un un computador instrucciones que podían ser almacenadas en que en su diseño contenía un un conjunto de instrucciones memoria, o sea, un programa que detallaba la computación del mismo. El diseño de un programa almacenado también daba la posibilidad a los los programas programas de ser modificados ellos mismos durante su ejecución. 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, las cuales tenían que ser hechas manualmente en los primeros diseños. Esto se volvió menos importante cuando el índice de de registros registros y el direccionamiento computadores.. El código indirecto se convirtieron en algo habitual en la la arquitectura de computadores automodificable fue en gran parte ganando posiciones. A gran escala, la habilidad de tratar instrucciones como datos es lo que hacen los ensambladores, compiladores ensambladores, compiladores y otras herramientas de programación automáticas. Se pueden "escribir programas para escribir escr ibir programas". Neumann.. Las modificaciones en los Existen inconvenientes en el diseño de de Von Neumann programas podía ser algo perjudicial, por accidente accident e o por diseño. En algunos simples diseños de computador con programas almacenados, un mal funcionamiento del programa puede dañar el computador. Otros programas, programas , o el el sistema operativo operativo,, posiblemente puedan llevar a un daño total en el ordenador. 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.
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. En la mayoría de computadoras modernas, la velocidad de comunicación entre la memoria el y larendimiento CPU es más que la velocidad a laseriamente que puede la trabajar esta última, reduciendo delbaja procesador y limitando 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 más rápidamente que el rendimiento de transferencia entre ellos, lo que ha agravado el problema del cuello de botella. El término “cuello de botella de von Neumann” fue acuñado por John Backus Backus en su
conferencia de la concesión de 1977 ACM Turing. Según Backus:
Seguramente debe haber una manera menos primitiva de realizar grandes cambios en la memoria, que empujando tantas tantas palabras palabras hacia un lado y otro del cuello de botella de von Neumann. No sólo es un cuello de botella para el tráfico de datos, sino s ino que, más 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 programación es básicamente la planificación del enorme tráfico de palabras que cruzan el cuello de botella de von Neumann, Ne umann, y gran parte de ese tráfico no concierne a los propios datos, sino a dónde encontrar éstos. éstos .2 caché entre la CPU y El problema de funcionamiento se redujo introduciendo una una memoria caché 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 solución propuesta de Backus no ha tenido una influencia importante. La programación funcional moderna y la programación programa ción orientada a objetos se preocupan mucho menos de “empujar tantas palabras hacia un lado y otro” que los anteriores lenguajes como era era Fortran. Fortran.
Primeros ordenadores basados en arquitecturas von Neumann La primera saga se basaba en un diseño que fue utilizado por muchas universidades y empresas para construir sus equipos. Entre estos, sólo ILLIAC y ORDVAC tenían un conjunto de instrucciones compatible.
ORDVAC ORDVAC (U-Illinois) en en Aberdeen Proving Ground, Ground, Maryland (completado en noviembre de 1951) IAS machine machine en Princeton University (Ene 1952) I en Laboratorio Científico Los Alamos(Mar 1952) MANIAC I ILLIAC ILLIAC en la Universidad de Illinois, (Sept 1952) AVIDAC AVIDAC en Laboratorios Argonne National (1953) ORACLE ORACLE en Laboratorio Nacional de Oak Ridge (Jun 1953) JOHNNIAC JOHNNIAC en RAND Corporation (Ene 1954) BESK en Estocolmo (1953) BESM-1 BESM-1 en Moscú (1952) DASK en Dinamarca (1955) PERM en Munich (1956?) PERM SILLIAC SILLIAC en Sydney (1956) WEIZAC en Rehovoth (1955) WEIZAC
Arquitectura Harvard
Arquitectura Harvard. Originalmente, el término Arquitectura Harvard hacía referencia a las las arquitecturas de computadoras que utilizaban dispositivos de almacenamiento físicamente separados para computadoras las instrucciones y para los datos (en oposición a la la Arquitectura de von Neumann) Neumann). El término proviene de la computadora computadora Harvard Mark II,, que almacenaba las instrucciones en cintas perforadas y los datos en interruptores. CPU que procesa los Todas las computadoras constan principalmente de dos partes, la la CPU datos, y la la memoria memoria que guarda los datos. Cuando hablamos de memoria manejamos dos dirección)). Los parámetros, los datos en sí, y el lugar donde se encuentran en cuentran almacenados (o (o dirección dos son importantes para la CPU, 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", sin saber en realidad qué es lo que contienen los datos. 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, así que se debe poner mucha atención en reducir el número de veces que se accede a ella para mantener el rendimiento. Si, por ejemplo, cada instrucción 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 limitación de memoria). Se puede fabricar memoria mucho más rápida, pero a costa de un precio muy alto. La solución, por tanto, es proporcionar una pequeña cantidad de memoria muy rápida conocida con el nombre de de memoria caché caché.. Mientras los datos que necesita el procesador estén en la caché, el rendimiento será mucho mayor que si la caché tiene que obtener primero los datos
de la memoria principal. La optimización de la caché es un tema muy importante de cara al diseño de computadoras. La arquitectura Harvard ofrece una solución particular a este problema. Las instrucciones y los datos se almacenan en cachés 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 sólo cuando la frecuencia de lectura de instrucciones y de datos es aproximadamente la misma. Esta arquitectura suele utilizarse en DSPs, o o procesador procesador de señal digital, digital, usados habitualmente en productos para procesamiento de audio y video. Arquitectura Harvard: 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 sólo almacena datos (Memoria de Datos). 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. Como los buses son independientes estos pueden tener distintos contenidos en la misma dirección y también 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 Instrucción Set Computer), 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. Además, al ser los buses independientes, la CPU puede acceder a los datos para completar la ejecución de una instrucción, y al mismo tiempo leer la siguiente instrucción a ejecutar. Ventajas de esta arquitectura: * El tamaño de las instrucciones no esta relacionado con el de los datos, y por lo tanto
puede ser optimizado para que cualquier instrucción ocupe una sola posición 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 operación.
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; limitación que es superada por la arquitectura de Harvard la cual consiste en dos memorias que están 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 desempeño mejora ya que es posible acceder a programas y datos a la misma vez (la instrucción 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 realización de la instrucción.
Ventajas y desventajas:
La gran ventaja de este modelo es que se pueden ejecutar al mismo tiempo tanto accesos como también a los bancos de datos, agilizando las operaciones; y que el tamaño de las instrucciones no están asociadas con los datos lo cual lleva a que la instrucción ocupe una sola posición en la memoria de programa. Además 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 también tiene un gran inconveniente o desventaja la cual es la mayor complicación estructural, ya que exige el uso de múltiples sistemas de buses.
View more...
Comments