fbpx
Wikipedia

Arquitectura de Von Neumann

La arquitectura von Neumann, también conocida como modelo de von Neumann o arquitectura Princeton, es una arquitectura de computadoras basada en la descrita en 1945 por el matemático y físico John von Neumann y otros, en el primer borrador de un informe sobre el EDVAC.[1]​ Este describe una arquitectura de diseño para un computador digital electrónico con partes que constan de una unidad de procesamiento que contiene una unidad aritmético lógica y registros del procesador, una unidad de control que contiene un registro de instrucciones y un contador de programa, una memoria para almacenar tanto datos como instrucciones, almacenamiento masivo externo, y mecanismos de entrada y salida.[1][2]​ El concepto ha evolucionado para convertirse en un computador de programa almacenado en el cual no pueden darse simultáneamente una búsqueda de instrucciones y una operación de datos, ya que comparten un bus en común. Esto se conoce como el cuello de botella Von Neumann, y muchas veces limita el rendimiento del sistema.[3]

Diagrama de la arquitectura von Neumann.
Diagrama de la arquitectura von Neumann.
Diagrama de la arquitectura von Neumann.

El diseño de una arquitectura von Neumann es más simple que la arquitectura Harvard más moderna, que también es un sistema de programa almacenado, pero tiene un conjunto dedicado de direcciones y buses de datos para leer datos desde memoria y escribir datos en la misma, y otro conjunto de direcciones y buses de datos para ir a buscar instrucciones.

Un ordenador digital de programa almacenado es aquel que mantiene sus instrucciones de programa, así como sus datos, en una memoria de acceso aleatorio (RAM) de lectura-escritura. Las computadoras de programa almacenado representaron un avance sobre los ordenadores controlados por programas de la década de 1940, como la Colossus y la ENIAC, que se programaron mediante el establecimiento de conmutadores y la inserción de cables de interconexión para enrutar datos y para controlar señales entre varias unidades funcionales. En la gran mayoría de las computadoras modernas, se utiliza la misma memoria tanto para datos como para instrucciones de programa, y la distinción entre von Neumann vs. Harvard se aplica a la arquitectura de memoria caché, pero no a la memoria principal.

Historia

Las primeras máquinas de computación tenían programas fijos. Algunos equipos muy simples siguen utilizando este diseño, ya sea por motivos de simplificación o de formación. Por ejemplo, una calculadora de escritorio es (en principio) una computadora de programa fijo. En ella, se pueden hacer matemáticas básicas, pero no puede ser utilizada como procesador de texto o consola de juegos. Cambiar el programa de una máquina de programa fijo requiere re cablear, reestructurar, o re diseñar la máquina. Las primeras computadoras no eran tanto "programadas" ya que fueron "diseñadas"."Reprogramar" cuando era posible, era un proceso laborioso que comenzaba con diagramas de flujo y notas de papel, seguido de diseños detallados de ingeniería y luego el muchas veces arduo proceso de recablear físicamente y reconstruir la máquina. Podía tomar hasta tres semanas preparar un programa de ENIAC y conseguir que funcionara.[4]

Esa situación cambió con la propuesta de la computadora con programa almacenado. Una computadora de programa almacenado incluye, por diseño, un conjunto de instrucciones y puede almacenar en la memoria un conjunto de instrucciones (un programa) que detalla la computación.

Un diseño de programa almacenado también permite un código mutante. Una primera motivación para una instalación de este tipo fue la necesidad de que un programa incremente o modifique de otro modo la porción de dirección de instrucciones, lo cual, en los primeros diseños, tenía que hacerse manualmente. Esto llegó a ser menos importante cuando los registros índice y modos de direccionamiento se convirtieron en características habituales de la arquitectura de la máquina. Otro uso fue para incrustar datos frecuentemente usados en el flujo de instrucciones utilizando direccionamiento inmediato. El código mutante ha caído en gran parte en desuso, ya que suele ser difícil de entender y de depurar, además de ser ineficiente, en favor de los regímenes de los modernos procesadores pipelines y del almacenamiento en caché.

A gran escala, la capacidad para tratar a las instrucciones de la misma forma que si fueran datos es lo que hacen los ensambladores, compiladores, enlazadores, cargadores, y otras posibles herramientas automáticas de programación. Se puede "escribir programas que escriban programas". En una escala menor, las intensivas operaciones repetitivas de E/S –como los primeros manipuladores de imágenes BitBLT o los sombreadores de píxeles y vértices en los gráficos 3D modernos–, se consideraron ineficaces al funcionar sin necesidad de hardware personalizado. Estas operaciones podrían acelerarse en los procesadores de propósito general con tecnología de "compilación mosca" ("compilación en tiempo de ejecución"), por ejemplo, programas de código generado, una forma de código automodificable que ha mantenido popularidad.

Hay algunas desventajas para el diseño de von Neumann. Aparte del cuello de botella de von Neumann descrito a continuación, las modificaciones del programa pueden ser muy perjudiciales, ya sea por accidente o por diseño. En algunos diseños simples de computadora con programa almacenado, un programa que no funcione correctamente puede dañarse, dañar a otros programas, o inclusive al sistema operativo, lo que puede dar lugar a un desplome o crash de la computadora. Normalmente, la protección de memoria y otras formas de control de acceso pueden proteger tanto de modificaciones accidentales como de programas maliciosos.

Desarrollo del concepto de programa almacenado

El matemático Alan 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, escribió un artículo en 1936 titulado On Computable Numbers, with an Application to the Entscheidungsproblem, que fue publicado en los Proceedings of the London Mathematical Society.[5]​ 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 universal". 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. John von Neumann conoció a Turing cuando ejercía de profesor sustituto en Cambridge en 1935 y también durante el año PhD que Turing pasó en la Institute for Advanced Study en Princeton, Nueva Jersey durante 1936-37. Cuándo supo del artículo de 1936 de Turing no está claro.

En 1936, Konrad Zuse también anticipó en dos solicitudes de patente qué instrucciones de la máquina podían ser almacenadas en el mismo almacenamiento utilizado para los datos.[6]

Independientemente, J. Presper Eckert y John Mauchly, quienes estaban desarrollando el ENIAC en la Escuela Moore de Ingeniería Eléctrica en la Universidad de Pensilvania, escribieron sobre el concepto de “programa almacenado” en diciembre de 1943. En enero de 1944, mientras diseñaba una nueva máquina, EDVAC, Eckert escribió que se almacenarían datos y programas en un nuevo dispositivo de memoria direccionable, una memoria de línea de retardo. Ésta fue la primera vez que se propuso la construcción de un práctico programa almacenado. Por esas fechas, no tenían conocimiento del trabajo de Turing.

Von Neumann estaba involucrado en el Proyecto Manhattan en el Laboratorio Nacional Los Álamos, 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 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 lo hizo circular con sólo el nombre de von Neumann escrito en él, para consternación de Eckert y Mauchly. El artículo fue leído por docenas de compañeros de trabajo de von Neumann en América y Europa, e influenció la siguiente hornada de diseños de computadoras.

Por lo tanto, von Neumann no se encontraba solo en el desarrollo de la idea de la arquitectura de programa almacenado, y Jack Copeland considera que es "históricamente inapropiado referirse a las computadoras electrónicas digitales de programa almacenado como 'máquinas de von Neumann'".[7]​ Su colega del colegio Los Álamos, Stan Frankel dijo de las consideraciones de von Neumann con respecto a las ideas de Turing:

Sé que en o alrededor de 1943 o '44 von Neumann era muy consciente de la importancia fundamental del papel de 1936 de Turing... von Neumann me introdujo a ese papel y en su insistencia lo estudié con cuidado. Muchas personas han aclamado a von Neumann como el "padre de la computadora" (en el sentido moderno del término), pero estoy seguro de que nunca habría hecho que el propio error. Él bien podría haberse llamado tal vez la partera, pero con firmeza enfatizó para mí, y para otros, que estoy seguro, que la concepción fundamental se debe a Turing—en la medida en que no anticipado por Babbage... Por supuesto, tanto Turing como von Neumann también hicieron importantes contribuciones a la "reducción a la práctica" de estos conceptos, pero yo no consideraría esto como comparable en importancia con la introducción y explicación del concepto de una computadora capaz de almacenar en su memoria su programa de actividades y de modificar ese programa en el curso de estas actividades[8]

En el mismo momento en que el informe "Primer Borrador" fue distribuido, Turing desarrolló un informe técnico detallado, Proposed Electronic Calculator, que describe en detalle la ingeniería y la programación, su idea de una máquina que fue llamada la Automatic Computing Engine (ACE).[9]​ Presentó este al Laboratorio Nacional de Física Británico el 19 de febrero de 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 ordenadores Colossus le impidió manifestarlo. Se produjeron varias implementaciones del diseño ACE de forma exitosa.

Los trabajos tanto de von Neumann como de Turing, describían computadoras de programas almacenados, pero al ser anterior el artículo de von Neumann, consiguió mayor circulación y repercusión, así que la arquitectura de computadoras que esbozó adquirió el nombre de "arquitectura von Neumann". En la publicación de 1953 Faster than Thought: A Symposium on Digital Computing Machines (Más rápido que el pensamiento: Un Simposio sobre Máquinas informáticas digitales -editado por BV Bowden-), una sección en el capítulo sobre Computers in America (Computadoras en América) dice lo siguiente:[10]

La Máquina del Instituto de Estudios Avanzados, Princeton

En 1945, el profesor J. von Neumann, que en ese entonces trabajaba en la Escuela Moore de Ingeniería en Filadelfia, donde se había construido el ENIAC, emitido en nombre de un grupo de sus compañeros de trabajo un informe sobre el diseño lógico de las computadoras digitales. El informe contenía una propuesta bastante detallada para el diseño de la máquina que, desde entonces, se conoce como la EDVAC (computadora de retardo variable discreta). Esta máquina ha sido recientemente completada en América, pero el informe von Neumann inspiró la construcción de la EDSAC (calculadora automática de almacenamiento electrónico de retardo) en Cambridge (véase página 130).

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 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 MANIAC 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.

En el mismo libro, los dos primeros párrafos de un capítulo sobre ACE dicen lo siguiente:[11]

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 una máquina fueron formuladas por el Dr A. M. Turing, en un papel1 leído ante la Sociedad Matemática de Londres en 1936, 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 un pequeño equipo de especialistas, y en 1947 la planificación preliminar fue lo suficientemente avanzada como para justificar el establecimiento del grupo especial ya mencionado. En abril de 1948, estos últimos pasaron a estar en la sección de electrónica del laboratorio, bajo el cargo del Sr. F. M. Colebrook.

Definición formal

Las computadoras son máquinas de arquitectura von Neumann cuando:

  1. Tanto los programas como los datos se almacenan en una memoria en común. Esto hace posible la ejecución de comandos de la misma forma que los datos.
  2. Cada celda de memoria de la máquina se identifica con un número único, llamado dirección.
  3. Las diferentes partes de la información (los comandos y los datos) tienen diferentes modos de uso, pero la estructura no se representa en memoria de manera codificada.
  4. Cada programa se ejecuta de forma secuencial que, en el caso de que no haya instrucciones especiales, comienza con la primera instrucción. Para cambiar esta secuencia se utiliza el comando de control de transferencia.

Estructura clásica de las máquinas von Neumann

Una máquina von Neumann, al igual que prácticamente todos los computadores modernos de uso general, consta de cuatro componentes principales:

  1. Dispositivo de operación (DO), que ejecuta instrucciones de un conjunto especificado, llamado sistema (conjunto) de instrucciones, sobre porciones de información almacenada, separada de la memoria del dispositivo operativo (aunque en la arquitectura moderna el dispositivo operativo consume más memoria -generalmente del banco de registros-), en la que los operandos son almacenados directamente en el proceso de cálculo, en un tiempo relativamente corto
  2. Unidad de control (UC), que organiza la implementación consistente de algoritmos de decodificación de instrucciones que provienen de la memoria del dispositivo, responde a situaciones de emergencia y realiza funciones de dirección general de todos los nodos de computación. Por lo general, el DO y la UC conforman una estructura llamada CPU. Cabe señalar que el requisito es consistente, el orden de la memoria (el orden del cambio de dirección en el contador de programa) es fundamental a la hora de la ejecución de la instrucción. Por lo general, la arquitectura que no se adhiere a este principio no se considera von Neumann
  3. Memoria del dispositivo — un conjunto de celdas con identificadores únicos (direcciones), que contienen instrucciones y datos.
  4. Dispositivo de E/S (DES), que permite la comunicación con el mundo exterior de los computadores, son otros dispositivos que reciben los resultados y que le transmiten la información al computador para su procesamiento.

Primeras computadoras basadas en arquitectura von Neumann

La primera saga se basaba en un diseño que fue utilizado por muchas universidades y empresas para construir sus computadoras.[12]​ Entre estas, solo ILLIAC y ORDVAC tenían un conjunto de instrucciones compatible.

  • Máquina Experimental de Pequeña Escala de Mánchester (SSEM), apodada "Baby" (Universidad de Mánchester, Inglaterra) hizo su primera ejecución exitosa de un programa almacenado el 21 de junio de 1948.
  • EDSAC (Universidad de Cambridge, Inglaterra) fue el primer computador electrónico práctico de programa almacenado (mayo de 1956)
  • Manchester Mark I (Universidad de Mánchester, Inglaterra) Desarrollado a partir de la SSEM (junio de 1947)
  • CSIRAC (Consejo de Investigación Científica e Industrial) Australia (noviembre de 1949)
  • EDVAC (Laboratorio de Investigación Balística, Laboratorio de Informática de Aberdeen Proving Ground, 1951)
  • ORDVAC (U-Illinois) en Aberdeen Proving Ground, Maryland (completado en noviembre de 1951)[13]
  • IAS machine en Princeton University (enero 1952)
  • MANIAC I en Laboratorio Científico Los Álamos (marzo de 1952)
  • ILLIAC en la Universidad de Illinois, (septiembre de 1952)
  • AVIDAC en Laboratorios Argonne National (1953)
  • ORACLE en Laboratorio Nacional de Oak Ridge (junio de 1953)
  • JOHNNIAC en RAND Corporation (enero de 1954)
  • BESK en Estocolmo (1953)
  • BESM-1 en Moscú (1952)
  • DASK en Dinamarca (1955)
  • PERM en Múnich (1956?)
  • SILLIAC en Sídnei (1956)
  • WEIZAC en Rehovoth (1955)

Primeras computadoras de programa almacenado

La información de la fecha en la siguiente cronología es difícil de establecer en el orden correcto. Algunas fechas son de la primera ejecución de un programa de pruebas, algunas fechas son de la primera vez que el equipo se demostró o completó, y algunas fechas son de la primera entrega o instalación.

  • La IBM SSEC tenía la capacidad para tratar instrucciones como datos, y se demostró públicamente el 27 de enero de 1948. Esta capacidad fue reivindicada en una patente estadounidense.[14]​ Sin embargo, fue parcialmente electromecánica, no totalmente electrónica. En la práctica, las instrucciones eran leídas desde una cinta de papel debido a su memoria limitada.[15]
  • La Manchester SSEM (la bebé) fue la primera computadora completamente electrónica que ejecutaba un programa almacenado. Se corrió un programa de factoraje durante 52 minutos el 21 de junio de 1948, después de ejecutar un simple programa de división y un programa para demostrar que dos números eran primos entre sí.
  • La ENIAC fue modificada para funcionar como un computador primitivo con programa almacenado de solo lectura (usando la tabla de funciones de programa ROM) y se demostró como tal el 16 de septiembre de 1948, ejecutando un programa de Adele Goldstine para von Neumann.
  • La BINAC corrió algunos programas de prueba en febrero, marzo y abril de 1949, aunque no se terminó hasta septiembre de 1949.
  • La Manchester Mark I desarrollada basada en el proyecto SSEM. En abril de 1949, con el fin de para ejecutar programas, se hizo disponible una versión intermedia de la Mark 1, pero no se terminó hasta octubre de 1949.
  • La EDSAC corrió su primer programa el 6 de mayo de 1949.
  • La EDVAC fue presentada en agosto de 1949, pero tuvo problemas que la mantuvieron fuera de su puesta en funcionamiento regular hasta 1951.
  • La CSIR Mark I corrió su primer programa en noviembre de 1949.
  • La SEAC fue demostrada en abril de 1950.
  • La Pilot ACE corrió su primer programa el 10 de mayo de 1950 y fue demostrada en diciembre de 1950.
  • La SWAC se completó en julio de 1950.
  • La Computadora Whirlwind se completó en diciembre de 1950 y estuvo en uso real en abril de 1951.
  • La ERA 1101 (más tarde la ERA 1101/UNIVAC 1101 comercial) se instaló en diciembre de 1950.

Evolución

 
Evolución de la arquitectura del bus simple del sistema

A lo largo de las décadas de los años 1960 y 1970, las computadoras se hicieron, en general, tanto más pequeñas como rápidas, lo que llevó a algunas evoluciones en su arquitectura. Por ejemplo, el mapeado en memoria de E/S permitió que los dispositivos de entrada y salida fueran tratados de la misma como la memoria.[16]​ Un único bus de sistema podría ser utilizado para proporcionar un sistema modular con un menor coste. A veces esto se denomina "racionalización" de la arquitectura.[17]​ En las décadas siguientes, los microcontroladores sencillos permitirían algunas veces omitir características del modelo a menor costo y tamaño. Las computadoras más grandes añadían características para un mayor rendimiento.

Cuello de botella de von Neumann (von Neumann bottleneck)

El canal de transmisión de los datos compartido entre CPU y memoria genera un cuello de botella de von Neumann, un rendimiento limitado (tasa de transferencia de datos) entre la CPU y la memoria en comparación con la cantidad de memoria. En la mayoría de computadoras modernas, 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, 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. Puesto a que la velocidad de procesamiento y la cantidad de memoria han aumentado mucho más rápidamente que el rendimiento de transferencia entre ellos, el cuello de botella se ha vuelto más que un problema, un problema cuya gravedad aumenta con cada nueva generación de CPU.

El término “cuello de botella de von Neumann” fue acuñado por John Backus en su conferencia de la concesión del Premio Turing ACM de 1977. Según 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 solo es un cuello de botella para el tráfico de datos, sino 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, y gran parte de ese tráfico no concierne a los propios datos, sino a dónde encontrar estos.»[18][19]

El problema de rendimiento puede ser aliviado (hasta cierto punto) utilizando diversos mecanismos. Ofreciendo una memoria caché entre la CPU y la memoria principal, proporcionando cachés separadas o vías de acceso independientes para datos e instrucciones (la llamada arquitectura Harvard modificada), utilizando algoritmos y lógica de predictor de saltos y proporcionando una limitada pila de CPU u otro en el chip de memoria reutilizable para reducir el acceso a memoria, son cuatro de las maneras que se dispone para aumentar el rendimiento. El problema también se puede eludir, en cierta medida, usando computación paralela, utilizando por ejemplo la arquitectura de acceso a memoria no uniforme (NUMA), —este enfoque es comúnmente empleado por las supercomputadoras. Está menos claro si el cuello de botella intelectual que criticaba Backus ha cambiado mucho desde 1977. La solución que propuso Backus no ha tenido influencia importante.[cita requerida] La moderna programación funcional y la programación orientada a objetos se preocupan mucho menos de "empujar un gran número de palabras hacia un lado a otro" que los lenguajes anteriores como era Fortran, pero internamente, esto sigue siendo lo que las computadoras pasan gran parte del tiempo haciendo, incluso las supercomputadoras altamente paralelas.

A partir de 1996, un estudio de referencia de base de datos se encontró que tres de cada cuatro ciclos de CPU se dedican a la espera de memoria. Los investigadores esperan que el aumento del número de instrucciones simultáneas arroye con el multihilo o el multiprocesamiento de un solo chip hará que este cuello de botella aún peor. [20]

Procesadores no von Neumann

El National Semiconductor (Semiconductor nacional) COP8 se introdujo en 1986; tiene una arquitectura Harvard modificada.[21][22]

Tal vez el tipo más común de estructura no von Neumann se utiliza en las computadoras modernas es la memoria de contenido direccionable (CAM).

Véase también

Referencias

  1. von Neumann, John (1945), (pdf) (en inglés), archivado desde el original el 14 de marzo de 2013, consultado el 24 de agosto de 2011 .
  2. Ganesan, 2009
  3. Markgraf, Joey D. (2007), (en inglés), archivado desde el original el 17 de agosto de 2011, consultado el 24 de agosto de 2011 .
  4. Copeland, 2006, p. 104
  5. Turing, A.M. (1936), «On Computable Numbers, with an Application to the Entscheidungsproblem», Proceedings of the London Mathematical Society, 2 (1937) 42: 230-65, doi:10.1112/plms/s2-42.1.230 . (y Turing, A.M. (1938), «On Computable Numbers, with an Application to the Entscheidungsproblem. A correction», Proceedings of the London Mathematical Society, 2 (1937) 43 (6): 544-6, doi:10.1112/plms/s2-43.6.544 .)
  6. , Nature (en inglés) 162, 25 de septiembre de 1948: 487, doi:10.1038/162487a0, archivado desde el original el 6 de abril de 2009, consultado el 10 de abril de 2009 .
  7. Copeland, Jack (2000), A Brief History of Computing: ENIAC and EDVAC (en inglés), consultado el 27 de enero de 2010 .
  8. Copeland, Jack (2000), A Brief History of Computing: ENIAC and EDVAC (en inglés), consultado el 27 de enero de 2010 . que cita Randell, B. (1972), «On Alan Turing and the Origins of Digital Computers», en Meltzer, B.; Michie, D., eds., Machine Intelligence 7 (en inglés) (Edinburgh: Edinburgh University Press): 10, ISBN 0-902383-26-4 .
  9. Copeland, 2006, pp. 108–111
  10. Bowden, 1953, pp. 176,177
  11. Bowden, 1953, p. 135
  12. «Electronic Computer Project» (en inglés). Institute for Advanced Study. Consultado el 16 de mayo de 2011. 
  13. James E. Robertson (1955), Illiac Design Techniques (en inglés), report number UIUCDCS-R-1955-146, Digital Computer Laboratory, University of Illinois at Urbana-Champaign .
  14. F.E. Hamilton, R.R. Seeber, R.A. Rowley, and E.S. Hughes (19 de enero de 1949). . US Patent 2,636,672. Archivado desde el original el 2 de febrero de 2017. Consultado el 28 de abril de 2011.  Publicado el 28 de abril 1953.
  15. Herbert R.J. Grosch (1991), Computer: Bit Slices From a Life (en inglés), Third Millennium Books, ISBN 0-88733-085-1 .
  16. C. Gordon Bell; R. Cady; H. McFarland; J. O'Laughlin; R. Noonan; W. Wulf (1970), «A New Architecture for Mini-Computers—The DEC PDP-11», Spring Joint Computer Conference (en inglés): 657-675. .
  17. Linda Null; Julia Lobur (2010), The essentials of computer organization and architecture (en inglés) (3ra edición), Jones & Bartlett Learning, pp. 36,199-203, ISBN 978-1-4496-0006-8 .
  18. Backus, John W.. Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs (en inglés). doi:10.1145/359576.359579. 
  19. Dijkstra, Edsger W.. «E. W. Dijkstra Archive: A review of the 1977 Turing Award Lecture» (en inglés). Consultado el 11 de julio de 2008. 
  20. Richard L. Sites, Yale Patt. "Architects Look to Processors of Future". Microprocessor report. 1996. (en inglés)
  21. (en inglés). National Semiconductor. Archivado desde el original el 19 de marzo de 2005. Consultado el 20 de enero de 2012. 
  22. (en inglés). National Semiconductor. Archivado desde el original el 3 de noviembre de 2005. Consultado el 20 de enero de 2012. 


Enlaces externos

  •   Datos: Q189088
  •   Multimedia: Von Neumann architecture

arquitectura, neumann, arquitectura, neumann, también, conocida, como, modelo, neumann, arquitectura, princeton, arquitectura, computadoras, basada, descrita, 1945, matemático, físico, john, neumann, otros, primer, borrador, informe, sobre, edvac, este, descri. La arquitectura von Neumann tambien conocida como modelo de von Neumann o arquitectura Princeton es una arquitectura de computadoras basada en la descrita en 1945 por el matematico y fisico John von Neumann y otros en el primer borrador de un informe sobre el EDVAC 1 Este describe una arquitectura de diseno para un computador digital electronico con partes que constan de una unidad de procesamiento que contiene una unidad aritmetico logica y registros del procesador una unidad de control que contiene un registro de instrucciones y un contador de programa una memoria para almacenar tanto datos como instrucciones almacenamiento masivo externo y mecanismos de entrada y salida 1 2 El concepto ha evolucionado para convertirse en un computador de programa almacenado en el cual no pueden darse simultaneamente una busqueda de instrucciones y una operacion de datos ya que comparten un bus en comun Esto se conoce como el cuello de botella Von Neumann y muchas veces limita el rendimiento del sistema 3 Diagrama de la arquitectura von Neumann Diagrama de la arquitectura von Neumann Diagrama de la arquitectura von Neumann El diseno de una arquitectura von Neumann es mas simple que la arquitectura Harvard mas moderna que tambien es un sistema de programa almacenado pero tiene un conjunto dedicado de direcciones y buses de datos para leer datos desde memoria y escribir datos en la misma y otro conjunto de direcciones y buses de datos para ir a buscar instrucciones Un ordenador digital de programa almacenado es aquel que mantiene sus instrucciones de programa asi como sus datos en una memoria de acceso aleatorio RAM de lectura escritura Las computadoras de programa almacenado representaron un avance sobre los ordenadores controlados por programas de la decada de 1940 como la Colossus y la ENIAC que se programaron mediante el establecimiento de conmutadores y la insercion de cables de interconexion para enrutar datos y para controlar senales entre varias unidades funcionales En la gran mayoria de las computadoras modernas se utiliza la misma memoria tanto para datos como para instrucciones de programa y la distincion entre von Neumann vs Harvard se aplica a la arquitectura de memoria cache pero no a la memoria principal Indice 1 Historia 2 Desarrollo del concepto de programa almacenado 3 Definicion formal 4 Estructura clasica de las maquinas von Neumann 5 Primeras computadoras basadas en arquitectura von Neumann 6 Primeras computadoras de programa almacenado 7 Evolucion 8 Cuello de botella de von Neumann von Neumann bottleneck 9 Procesadores no von Neumann 10 Vease tambien 11 Referencias 12 Enlaces externosHistoria EditarLas primeras maquinas de computacion tenian programas fijos Algunos equipos muy simples siguen utilizando este diseno ya sea por motivos de simplificacion o de formacion Por ejemplo una calculadora de escritorio es en principio una computadora de programa fijo En ella se pueden hacer matematicas basicas pero no puede ser utilizada como procesador de texto o consola de juegos Cambiar el programa de una maquina de programa fijo requiere re cablear reestructurar o re disenar la maquina Las primeras computadoras no eran tanto programadas ya que fueron disenadas Reprogramar cuando era posible era un proceso laborioso que comenzaba con diagramas de flujo y notas de papel seguido de disenos detallados de ingenieria y luego el muchas veces arduo proceso de recablear fisicamente y reconstruir la maquina Podia tomar hasta tres semanas preparar un programa de ENIAC y conseguir que funcionara 4 Esa situacion cambio con la propuesta de la computadora con programa almacenado Una computadora de programa almacenado incluye por diseno un conjunto de instrucciones y puede almacenar en la memoria un conjunto de instrucciones un programa que detalla la computacion Un diseno de programa almacenado tambien permite un codigo mutante Una primera motivacion para una instalacion de este tipo fue la necesidad de que un programa incremente o modifique de otro modo la porcion de direccion de instrucciones lo cual en los primeros disenos tenia que hacerse manualmente Esto llego a ser menos importante cuando los registros indice y modos de direccionamiento se convirtieron en caracteristicas habituales de la arquitectura de la maquina Otro uso fue para incrustar datos frecuentemente usados en el flujo de instrucciones utilizando direccionamiento inmediato El codigo mutante ha caido en gran parte en desuso ya que suele ser dificil de entender y de depurar ademas de ser ineficiente en favor de los regimenes de los modernos procesadores pipelines y del almacenamiento en cache A gran escala la capacidad para tratar a las instrucciones de la misma forma que si fueran datos es lo que hacen los ensambladores compiladores enlazadores cargadores y otras posibles herramientas automaticas de programacion Se puede escribir programas que escriban programas En una escala menor las intensivas operaciones repetitivas de E S como los primeros manipuladores de imagenes BitBLT o los sombreadores de pixeles y vertices en los graficos 3D modernos se consideraron ineficaces al funcionar sin necesidad de hardware personalizado Estas operaciones podrian acelerarse en los procesadores de proposito general con tecnologia de compilacion mosca compilacion en tiempo de ejecucion por ejemplo programas de codigo generado una forma de codigo automodificable que ha mantenido popularidad Hay algunas desventajas para el diseno de von Neumann Aparte del cuello de botella de von Neumann descrito a continuacion las modificaciones del programa pueden ser muy perjudiciales ya sea por accidente o por diseno En algunos disenos simples de computadora con programa almacenado un programa que no funcione correctamente puede danarse danar a otros programas o inclusive al sistema operativo lo que puede dar lugar a un desplome o crash de la computadora Normalmente la proteccion de memoria y otras formas de control de acceso pueden proteger tanto de modificaciones accidentales como de programas maliciosos Desarrollo del concepto de programa almacenado EditarEl matematico Alan Turing quien habia sido alertado de un problema de logica matematica por las lecciones de Max Newman en la Universidad de Cambridge escribio un articulo en 1936 titulado On Computable Numbers with an Application to the Entscheidungsproblem que fue publicado en los Proceedings of the London Mathematical Society 5 En el describia una maquina hipotetica que llamo maquina computadora universal y que ahora es conocida como la Maquina de Turing universal La maquina hipotetica tenia un almacenamiento infinito memoria en la terminologia actual que contenia tanto las instrucciones como los datos John von Neumann conocio a Turing cuando ejercia de profesor sustituto en Cambridge en 1935 y tambien durante el ano PhD que Turing paso en la Institute for Advanced Study en Princeton Nueva Jersey durante 1936 37 Cuando supo del articulo de 1936 de Turing no esta claro En 1936 Konrad Zuse tambien anticipo en dos solicitudes de patente que instrucciones de la maquina podian ser almacenadas en el mismo almacenamiento utilizado para los datos 6 Independientemente J Presper Eckert y John Mauchly quienes estaban desarrollando el ENIAC en la Escuela Moore de Ingenieria Electrica en la Universidad de Pensilvania escribieron sobre el concepto de programa almacenado en diciembre de 1943 En enero de 1944 mientras disenaba una nueva maquina EDVAC Eckert escribio que se almacenarian datos y programas en un nuevo dispositivo de memoria direccionable una memoria de linea de retardo Esta fue la primera vez que se propuso la construccion de un practico programa almacenado Por esas fechas no tenian conocimiento del trabajo de Turing Von Neumann estaba involucrado en el Proyecto Manhattan en el Laboratorio Nacional Los Alamos el cual requeria ingentes cantidades de calculos Esto le condujo al proyecto ENIAC en verano de 1944 Alli se incorporo a los debates sobre el diseno de un ordenador con programas almacenados el EDVAC Como parte del grupo se ofrecio voluntario a escribir una descripcion de el El termino von Neumann architecture surgio del primer articulo de von Neumann First Draft of a Report on the EDVAC fechado el 30 de junio de 1945 el cual incluia ideas de Eckert y Mauchly Estaba inconcluso cuando su companero Herman Goldstine lo hizo circular con solo el nombre de von Neumann escrito en el para consternacion de Eckert y Mauchly El articulo fue leido por docenas de companeros de trabajo de von Neumann en America y Europa e influencio la siguiente hornada de disenos de computadoras Por lo tanto von Neumann no se encontraba solo en el desarrollo de la idea de la arquitectura de programa almacenado y Jack Copeland considera que es historicamente inapropiado referirse a las computadoras electronicas digitales de programa almacenado como maquinas de von Neumann 7 Su colega del colegio Los Alamos Stan Frankel dijo de las consideraciones de von Neumann con respecto a las ideas de Turing Se que en o alrededor de 1943 o 44 von Neumann era muy consciente de la importancia fundamental del papel de 1936 de Turing von Neumann me introdujo a ese papel y en su insistencia lo estudie con cuidado Muchas personas han aclamado a von Neumann como el padre de la computadora en el sentido moderno del termino pero estoy seguro de que nunca habria hecho que el propio error El bien podria haberse llamado tal vez la partera pero con firmeza enfatizo para mi y para otros que estoy seguro que la concepcion fundamental se debe a Turing en la medida en que no anticipado por Babbage Por supuesto tanto Turing como von Neumann tambien hicieron importantes contribuciones a la reduccion a la practica de estos conceptos pero yo no consideraria esto como comparable en importancia con la introduccion y explicacion del concepto de una computadora capaz de almacenar en su memoria su programa de actividades y de modificar ese programa en el curso de estas actividades 8 En el mismo momento en que el informe Primer Borrador fue distribuido Turing desarrollo un informe tecnico detallado Proposed Electronic Calculator que describe en detalle la ingenieria y la programacion su idea de una maquina que fue llamada la Automatic Computing Engine ACE 9 Presento este al Laboratorio Nacional de Fisica Britanico el 19 de febrero de 1946 A pesar de que Turing sabia por su experiencia de guerra en el Parque Bletchley que su propuesta era factible el secretismo mantenido durante muchas decadas acerca de los ordenadores Colossus le impidio manifestarlo Se produjeron varias implementaciones del diseno ACE de forma exitosa Los trabajos tanto de von Neumann como de Turing describian computadoras de programas almacenados pero al ser anterior el articulo de von Neumann consiguio mayor circulacion y repercusion asi que la arquitectura de computadoras que esbozo adquirio el nombre de arquitectura von Neumann En la publicacion de 1953 Faster than Thought A Symposium on Digital Computing Machines Mas rapido que el pensamiento Un Simposio sobre Maquinas informaticas digitales editado por BV Bowden una seccion en el capitulo sobre Computers in America Computadoras en America dice lo siguiente 10 La Maquina del Instituto de Estudios Avanzados Princeton En 1945 el profesor J von Neumann que en ese entonces trabajaba en la Escuela Moore de Ingenieria en Filadelfia donde se habia construido el ENIAC emitido en nombre de un grupo de sus companeros de trabajo un informe sobre el diseno logico de las computadoras digitales El informe contenia una propuesta bastante detallada para el diseno de la maquina que desde entonces se conoce como la EDVAC computadora de retardo variable discreta Esta maquina ha sido recientemente completada en America pero el informe von Neumann inspiro la construccion de la EDSAC calculadora automatica de almacenamiento electronico de retardo en Cambridge vease pagina 130 En 1947 Burks Goldstine y von Neumann publicaron un informe en el que describen el diseno de otro tipo de maquina una maquina paralela en este momento que deberia ser muy rapida capaz de hacer 20 000 operaciones por segundo Senalaron que el problema persistente en la construccion de tal maquina estaba en el desarrollo de una memoria adecuada todos los contenidos de los cuales fueron instantaneamente accesibles y al principio se sugirio el uso de un tubo especial llamado Selectron que habia sido inventado por los laboratorios de Princeton de la RCA Estos tubos son caros y dificiles para fabricar asi Von Neumman decidio construir una maquina basada en la memoria de Williams Esa maquina que se completo en junio de 1952 en Princeton se ha conocido como MANIAC I El diseno de esta maquina que ha sido inspirado de una docena o mas de maquinas que estan actualmente en construccion en America En el mismo libro los dos primeros parrafos de un capitulo sobre ACE dicen lo siguiente 11 Calculo automatico en el laboratorio nacional de fisica Uno de los equipos digitales mas modernos que incorpora novedades y mejoras en la tecnica de la computacion electronica ha sido demostrado en el Laboratorio Nacional de Fisica Teddington donde ha sido disenado y construido por un pequeno equipo de matematicos e ingenieros electronicos investigadores sobre el personal del laboratorio asistido por ingenieros de produccion de la compania electrica 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 calculo automatico pero aunque es relativamente pequeno en volumen y contiene solo 800 valvulas termoionicas es una maquina de calculo muy rapido y versatil Los conceptos basicos y principios abstractos de la computacion por una maquina fueron formuladas por el Dr A M Turing en un papel1 leido ante la Sociedad Matematica de Londres en 1936 pero el trabajo en dichas maquinas en el Reino Unido se retraso por la guerra En 1945 se hizo una revision al problema en el laboratorio nacional de Fisica por el profesor J R Womersley Se le adjunto al Dr Turing un pequeno equipo de especialistas y en 1947 la planificacion preliminar fue lo suficientemente avanzada como para justificar el establecimiento del grupo especial ya mencionado En abril de 1948 estos ultimos pasaron a estar en la seccion de electronica del laboratorio bajo el cargo del Sr F M Colebrook Definicion formal EditarLas computadoras son maquinas de arquitectura von Neumann cuando Tanto los programas como los datos se almacenan en una memoria en comun Esto hace posible la ejecucion de comandos de la misma forma que los datos Cada celda de memoria de la maquina se identifica con un numero unico llamado direccion Las diferentes partes de la informacion los comandos y los datos tienen diferentes modos de uso pero la estructura no se representa en memoria de manera codificada Cada programa se ejecuta de forma secuencial que en el caso de que no haya instrucciones especiales comienza con la primera instruccion Para cambiar esta secuencia se utiliza el comando de control de transferencia Estructura clasica de las maquinas von Neumann EditarUna maquina von Neumann al igual que practicamente todos los computadores modernos de uso general consta de cuatro componentes principales Dispositivo de operacion DO que ejecuta instrucciones de un conjunto especificado llamado sistema conjunto de instrucciones sobre porciones de informacion almacenada separada de la memoria del dispositivo operativo aunque en la arquitectura moderna el dispositivo operativo consume mas memoria generalmente del banco de registros en la que los operandos son almacenados directamente en el proceso de calculo en un tiempo relativamente corto Unidad de control UC que organiza la implementacion consistente de algoritmos de decodificacion de instrucciones que provienen de la memoria del dispositivo responde a situaciones de emergencia y realiza funciones de direccion general de todos los nodos de computacion Por lo general el DO y la UC conforman una estructura llamada CPU Cabe senalar que el requisito es consistente el orden de la memoria el orden del cambio de direccion en el contador de programa es fundamental a la hora de la ejecucion de la instruccion Por lo general la arquitectura que no se adhiere a este principio no se considera von Neumann Memoria del dispositivo un conjunto de celdas con identificadores unicos direcciones que contienen instrucciones y datos Dispositivo de E S DES que permite la comunicacion con el mundo exterior de los computadores son otros dispositivos que reciben los resultados y que le transmiten la informacion al computador para su procesamiento Primeras computadoras basadas en arquitectura von Neumann EditarLa primera saga se basaba en un diseno que fue utilizado por muchas universidades y empresas para construir sus computadoras 12 Entre estas solo ILLIAC y ORDVAC tenian un conjunto de instrucciones compatible Maquina Experimental de Pequena Escala de Manchester SSEM apodada Baby Universidad de Manchester Inglaterra hizo su primera ejecucion exitosa de un programa almacenado el 21 de junio de 1948 EDSAC Universidad de Cambridge Inglaterra fue el primer computador electronico practico de programa almacenado mayo de 1956 Manchester Mark I Universidad de Manchester Inglaterra Desarrollado a partir de la SSEM junio de 1947 CSIRAC Consejo de Investigacion Cientifica e Industrial Australia noviembre de 1949 EDVAC Laboratorio de Investigacion Balistica Laboratorio de Informatica de Aberdeen Proving Ground 1951 ORDVAC U Illinois en Aberdeen Proving Ground Maryland completado en noviembre de 1951 13 IAS machine en Princeton University enero 1952 MANIAC I en Laboratorio Cientifico Los Alamos marzo de 1952 ILLIAC en la Universidad de Illinois septiembre de 1952 AVIDAC en Laboratorios Argonne National 1953 ORACLE en Laboratorio Nacional de Oak Ridge junio de 1953 JOHNNIAC en RAND Corporation enero de 1954 BESK en Estocolmo 1953 BESM 1 en Moscu 1952 DASK en Dinamarca 1955 PERM en Munich 1956 SILLIAC en Sidnei 1956 WEIZAC en Rehovoth 1955 Primeras computadoras de programa almacenado EditarLa informacion de la fecha en la siguiente cronologia es dificil de establecer en el orden correcto Algunas fechas son de la primera ejecucion de un programa de pruebas algunas fechas son de la primera vez que el equipo se demostro o completo y algunas fechas son de la primera entrega o instalacion La IBM SSEC tenia la capacidad para tratar instrucciones como datos y se demostro publicamente el 27 de enero de 1948 Esta capacidad fue reivindicada en una patente estadounidense 14 Sin embargo fue parcialmente electromecanica no totalmente electronica En la practica las instrucciones eran leidas desde una cinta de papel debido a su memoria limitada 15 La Manchester SSEM la bebe fue la primera computadora completamente electronica que ejecutaba un programa almacenado Se corrio un programa de factoraje durante 52 minutos el 21 de junio de 1948 despues de ejecutar un simple programa de division y un programa para demostrar que dos numeros eran primos entre si La ENIAC fue modificada para funcionar como un computador primitivo con programa almacenado de solo lectura usando la tabla de funciones de programa ROM y se demostro como tal el 16 de septiembre de 1948 ejecutando un programa de Adele Goldstine para von Neumann La BINAC corrio algunos programas de prueba en febrero marzo y abril de 1949 aunque no se termino hasta septiembre de 1949 La Manchester Mark I desarrollada basada en el proyecto SSEM En abril de 1949 con el fin de para ejecutar programas se hizo disponible una version intermedia de la Mark 1 pero no se termino hasta octubre de 1949 La EDSAC corrio su primer programa el 6 de mayo de 1949 La EDVAC fue presentada en agosto de 1949 pero tuvo problemas que la mantuvieron fuera de su puesta en funcionamiento regular hasta 1951 La CSIR Mark I corrio su primer programa en noviembre de 1949 La SEAC fue demostrada en abril de 1950 La Pilot ACE corrio su primer programa el 10 de mayo de 1950 y fue demostrada en diciembre de 1950 La SWAC se completo en julio de 1950 La Computadora Whirlwind se completo en diciembre de 1950 y estuvo en uso real en abril de 1951 La ERA 1101 mas tarde la ERA 1101 UNIVAC 1101 comercial se instalo en diciembre de 1950 Evolucion Editar Evolucion de la arquitectura del bus simple del sistema A lo largo de las decadas de los anos 1960 y 1970 las computadoras se hicieron en general tanto mas pequenas como rapidas lo que llevo a algunas evoluciones en su arquitectura Por ejemplo el mapeado en memoria de E S permitio que los dispositivos de entrada y salida fueran tratados de la misma como la memoria 16 Un unico bus de sistema podria ser utilizado para proporcionar un sistema modular con un menor coste A veces esto se denomina racionalizacion de la arquitectura 17 En las decadas siguientes los microcontroladores sencillos permitirian algunas veces omitir caracteristicas del modelo a menor costo y tamano Las computadoras mas grandes anadian caracteristicas para un mayor rendimiento Cuello de botella de von Neumann von Neumann bottleneck EditarEl canal de transmision de los datos compartido entre CPU y memoria genera un cuello de botella de von Neumann un rendimiento limitado tasa de transferencia de datos entre la CPU y la memoria en comparacion con la cantidad de memoria En la mayoria de computadoras modernas la velocidad de comunicacion entre la memoria y la CPU es mas baja que la velocidad a la que puede trabajar esta ultima 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 Puesto a que la velocidad de procesamiento y la cantidad de memoria han aumentado mucho mas rapidamente que el rendimiento de transferencia entre ellos el cuello de botella se ha vuelto mas que un problema un problema cuya gravedad aumenta con cada nueva generacion de CPU El termino cuello de botella de von Neumann fue acunado por John Backus en su conferencia de la concesion del Premio Turing ACM de 1977 Segun 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 solo es un cuello de botella para el trafico de datos sino que mas 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 programacion es basicamente la planificacion del enorme trafico de palabras que cruzan el cuello de botella de von Neumann y gran parte de ese trafico no concierne a los propios datos sino a donde encontrar estos 18 19 El problema de rendimiento puede ser aliviado hasta cierto punto utilizando diversos mecanismos Ofreciendo una memoria cache entre la CPU y la memoria principal proporcionando caches separadas o vias de acceso independientes para datos e instrucciones la llamada arquitectura Harvard modificada utilizando algoritmos y logica de predictor de saltos y proporcionando una limitada pila de CPU u otro en el chip de memoria reutilizable para reducir el acceso a memoria son cuatro de las maneras que se dispone para aumentar el rendimiento El problema tambien se puede eludir en cierta medida usando computacion paralela utilizando por ejemplo la arquitectura de acceso a memoria no uniforme NUMA este enfoque es comunmente empleado por las supercomputadoras Esta menos claro si el cuello de botella intelectual que criticaba Backus ha cambiado mucho desde 1977 La solucion que propuso Backus no ha tenido influencia importante cita requerida La moderna programacion funcional y la programacion orientada a objetos se preocupan mucho menos de empujar un gran numero de palabras hacia un lado a otro que los lenguajes anteriores como era Fortran pero internamente esto sigue siendo lo que las computadoras pasan gran parte del tiempo haciendo incluso las supercomputadoras altamente paralelas A partir de 1996 un estudio de referencia de base de datos se encontro que tres de cada cuatro ciclos de CPU se dedican a la espera de memoria Los investigadores esperan que el aumento del numero de instrucciones simultaneas arroye con el multihilo o el multiprocesamiento de un solo chip hara que este cuello de botella aun peor 20 Procesadores no von Neumann EditarEl National Semiconductor Semiconductor nacional COP8 se introdujo en 1986 tiene una arquitectura Harvard modificada 21 22 Tal vez el tipo mas comun de estructura no von Neumann se utiliza en las computadoras modernas es la memoria de contenido direccionable CAM Vease tambien Editar Portal Informatica Contenido relacionado con Informatica Wikimedia Commons alberga una categoria multimedia sobre Arquitectura de Von Neumann Arquitectura Harvard Little man computer Maquina de TuringReferencias Editar a b von Neumann John 1945 First Draft of a Report on the EDVAC pdf en ingles archivado desde el original el 14 de marzo de 2013 consultado el 24 de agosto de 2011 Ganesan 2009 Markgraf Joey D 2007 The Von Neumann bottleneck en ingles archivado desde el original el 17 de agosto de 2011 consultado el 24 de agosto de 2011 Copeland 2006 p 104 Turing A M 1936 On Computable Numbers with an Application to the Entscheidungsproblem Proceedings of the London Mathematical Society 2 1937 42 230 65 doi 10 1112 plms s2 42 1 230 y Turing A M 1938 On Computable Numbers with an Application to the Entscheidungsproblem A correction Proceedings of the London Mathematical Society 2 1937 43 6 544 6 doi 10 1112 plms s2 43 6 544 Electronic Digital Computers Nature en ingles 162 25 de septiembre de 1948 487 doi 10 1038 162487a0 archivado desde el original el 6 de abril de 2009 consultado el 10 de abril de 2009 Copeland Jack 2000 A Brief History of Computing ENIAC and EDVAC en ingles consultado el 27 de enero de 2010 Copeland Jack 2000 A Brief History of Computing ENIAC and EDVAC en ingles consultado el 27 de enero de 2010 que cita Randell B 1972 On Alan Turing and the Origins of Digital Computers en Meltzer B Michie D eds Machine Intelligence 7 en ingles Edinburgh Edinburgh University Press 10 ISBN 0 902383 26 4 Copeland 2006 pp 108 111 Bowden 1953 pp 176 177 Bowden 1953 p 135 Electronic Computer Project en ingles Institute for Advanced Study Consultado el 16 de mayo de 2011 James E Robertson 1955 Illiac Design Techniques en ingles report number UIUCDCS R 1955 146 Digital Computer Laboratory University of Illinois at Urbana Champaign F E Hamilton R R Seeber R A Rowley and E S Hughes 19 de enero de 1949 Selective Sequence Electronic Calculator US Patent 2 636 672 Archivado desde el original el 2 de febrero de 2017 Consultado el 28 de abril de 2011 Publicado el 28 de abril 1953 Herbert R J Grosch 1991 Computer Bit Slices From a Life en ingles Third Millennium Books ISBN 0 88733 085 1 C Gordon Bell R Cady H McFarland J O Laughlin R Noonan W Wulf 1970 A New Architecture for Mini Computers The DEC PDP 11 Spring Joint Computer Conference en ingles 657 675 Linda Null Julia Lobur 2010 The essentials of computer organization and architecture en ingles 3ra edicion Jones amp Bartlett Learning pp 36 199 203 ISBN 978 1 4496 0006 8 Backus John W Can Programming Be Liberated from the von Neumann Style A Functional Style and Its Algebra of Programs en ingles doi 10 1145 359576 359579 fechaacceso requiere url ayuda Dijkstra Edsger W E W Dijkstra Archive A review of the 1977 Turing Award Lecture en ingles Consultado el 11 de julio de 2008 Richard L Sites Yale Patt Architects Look to Processors of Future Microprocessor report 1996 en ingles COP8 Basic Family User s Manual en ingles National Semiconductor Archivado desde el original el 19 de marzo de 2005 Consultado el 20 de enero de 2012 COP888 Feature Family User s Manual en ingles National Semiconductor Archivado desde el original el 3 de noviembre de 2005 Consultado el 20 de enero de 2012 Enlaces externos EditarHarvard vs von Neumann en ingles Una herramienta que emula el comportamiento de una maquina de von Neumann Archivado el 19 de febrero de 2008 en Wayback Machine en ingles JOHNNY Un sencillo simulador de codigo abierto de una maquina de von Neumann para fines educativos en ingles Descripcion de la arquitectura von Neumann Esta obra contiene una traduccion total y ampliada derivada de Von Neumann architecture de Wikipedia en ingles concretamente de esta version publicada por sus editores bajo la Licencia de documentacion libre de GNU y la Licencia Creative Commons Atribucion CompartirIgual 3 0 Unported Datos Q189088 Multimedia Von Neumann architecture Obtenido de https es wikipedia org w index php title Arquitectura de Von Neumann amp oldid 139036894, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos