La arquitectura de von Neumann: la historia del origen del término
La arquitectura de la máquina von Neumann, también conocidacomo modelo de von Neumann, o arquitectura de Princeton, se basa en una técnica descrita en 1945 por el matemático y físico John von Neumann como parte del informe "Primer Proyecto" en la computadora EDVAC.
Esquema de la arquitectura
El informe de von Neumann describió un esquema de arquitectura para una computadora digital electrónica con partes que consisten en unidades de procesamiento que contiene:
- unidad lógica aritmética;
- registros de procesador;
- una unidad de control que contiene un registro de comando y un contador de comando;
- un dispositivo de almacenamiento para almacenar datos;
- dispositivo de almacenamiento externo;
- mecanismos de entrada y salida.
El significado del desarrollo fue que cualquierLa información almacenada en la computadora podría ser utilizada por el programa en el que los datos de operación seleccionados no pueden reproducirse al mismo tiempo, porque comparten el bus común. Esto se menciona en el "Primer Proyecto", que describe los pensamientos del científico sobre qué arquitectura debería ser. Von Neumann llamó a esta situación un "cuello de botella", que a menudo limita el rendimiento del sistema.
Principios de la arquitectura de von Neumann
Una computadora digital es una computadora que almacena un programa,que contiene instrucciones de programa, datos para leer, escribir, y también incluye memoria de acceso aleatorio (RAM). Los principios de la arquitectura de John von Neumann también se exponen en su obra The First Project. Según él, las computadoras con un programa almacenado en la memoria fueron una mejora sobre la administración de computadoras, como ENIAC. Este último fue programado mediante el establecimiento de interruptores y la inserción de un parche que conduce al enrutamiento de datos y señales de control entre los diversos bloques de funciones. En la gran mayoría de las computadoras modernas, la memoria también se usa de forma similar. Al mismo tiempo, la arquitectura de la computadora de von Neumann difiere, por ejemplo, de Harvard, en que utiliza no la memoria principal, sino la memoria caché.
Prehistoria
Las primeras computadoras habían predeterminadoprogramas fijos. Algunas computadoras muy simples todavía usan este diseño por simplicidad o por propósitos educativos. Por ejemplo, una calculadora de escritorio también es una computadora con un programa fijo. Puede funcionar con los principios básicos de las matemáticas, pero no puede usarse como procesador de textos o consola de juegos. Cambiar el programa fijo de la máquina requiere la reinstalación, reestructuración o reorganización de la máquina. Las primeras computadoras no se enfocaron tan estrechamente, ya que se desarrollaron por primera vez y con fines científicos. La reprogramación apareció mucho más tarde, y fue un proceso que consumía mucho tiempo, comenzando con diagramas de bloque y facturas en papel y terminando con proyectos técnicos detallados. Especialmente difícil fue el proceso de modernización física de los canales de recuperación de la máquina. Puede llevar tres semanas instalar el programa en ENIAC e intentar que funcione.
Una nueva idea
Con la oferta de una computadora que almacena programas enmemoria, todo ha cambiado. Guardados en la memoria, son un diseño con un conjunto de instrucciones. Entonces, la máquina puede obtener de inmediato un conjunto de comandos para realizar cálculos.
El diseño de tales programas se refiere acódigos de auto-modificación. Una de las primeras plantas para un objeto tal era una necesidad de un algoritmo para aumentar o cambiar la parte de dirección de los comandos de otra manera. Fue colocado manualmente en los primeros diseños. Esto se hizo menos importante cuando los registros de índice y direccionamiento indirecto se convirtieron en características comunes que posee la arquitectura informática de las máquinas de John Von Neumann. Otros usos - para insertar datos de uso frecuente en la corriente de comandos con soluciones inmediatas. Pero el código auto-modificable en gran medida ha sido criticada ya que suele ser difícil de entender y de depuración. Además, también ha demostrado ser ineficaz en términos de esquemas de reproducción y almacenamiento en caché de los procesadores modernos.
En general, la capacidad de relacionarse conLas instrucciones sobre datos son lo que hacen los ensambladores, compiladores, constructores, cargadores y otras herramientas con posibles objetos de programación automatizada. Por decirlo así, escribe programas que escriben programas. En una escala más pequeña, las operaciones intensivas repetidas de entrada y salida, como las manipulaciones de BitBlt con imágenes de sombreadores primitivos o de píxel y vértices en gráficos 3D modernos, se han encontrado ineficaces para funcionar sin equipos de usuario.
Desarrollo del concepto de un programa almacenado en la memoria
El matemático Alan Turing, que estaba interesadoal problema de la lógica matemática después de las conferencias de Max Newman en la Universidad de Cambridge, escribió un artículo en 1936, que fue publicado en la edición de la London Mathematical Society. En él, describió una máquina hipotética, que llamó una "máquina de computación universal", y que ahora se conoce como una máquina universal de Turing. Tenía un almacén infinito (en terminología moderna - memoria), que contenía tanto instrucciones como datos, para lo cual se creó la arquitectura dada. Von Neumann conoció a Turing en un momento en que era un profesor visitante en Cambridge en 1935, y en el curso de la defensa de su tesis doctoral en el Instituto de Turing para Estudios Avanzados de Princeton (Nueva Jersey) en 1936-1937.
Independientemente de la otra, Ji Presper Eckert yJohn Mauchly, quien desarrolló ENIAC en la Escuela de Ingeniería Eléctrica de la Universidad de Pennsylvania, escribió sobre el concepto de una máquina que almacenó el programa en la memoria en diciembre de 1943. Al planear una nueva máquina, EDVAC, Eckert escribió en enero de 1944 que almacenaría datos y programas en un nuevo dispositivo con memoria de direccionamiento retrasando el mercurio metálico. Esta fue la primera vez que se propuso la construcción de una máquina que almacena un programa en memoria. Al mismo tiempo, él y Mauchly no estaban al tanto del trabajo de Turing (foto abajo).
Arquitectura de la computadora: el principio de von Neumann
Von Neumann estuvo involucrado en el Proyecto Manhattan enEl Laboratorio Nacional en Los Alamos, que requirió una gran cantidad de cálculos. Esto lo atrajo al proyecto ENIAC en el verano de 1944. Allí se unió a las discusiones sobre el desarrollo de la computadora EDVAC. En el marco de este grupo, escribió un artículo titulado "El primer borrador de informe sobre EDVAC", basado en el trabajo de Eckert y Mauchly. Fue incompleto cuando su colega Goldstein circuló un proyecto con el nombre de von Neumann (por cierto, Eckert y Mauchly quedaron estupefactos ante tales noticias). Este documento fue leído por docenas de colegas de von Neumann en América y Europa y tuvo un gran impacto en la próxima etapa del desarrollo de la computadora.
Los principios básicos de la arquitectura de von Neumann,establecido en el "Primer Proyecto" ganó gran popularidad, mientras que Turing cubrió su informe sobre la calculadora electrónica, que se describió en detalle en ingeniería y programación. Fue establecido y la presentación del autor de la máquina, que se llamó el motor de computación automática (ACE). Lo presentó al comité ejecutivo del British National Physical Laboratory en 1946. Después de algún tiempo, incluso se realizaron varias implementaciones exitosas del diseño de ACE.
Inicio de la implementación del proyecto.
Y el proyecto von Neumann, y los documentos de Turing.describieron las computadoras que almacenaban un determinado programa en la memoria, pero el artículo de von Neumann logró una mayor circulación en la sociedad y la arquitectura de las computadoras se conoció como la arquitectura de John von Neumann.
En 1945, el profesor Neumann, que era entoncesTrabajó en la escuela de ingeniería en Filadelfia, donde se construyó el primer ENIAC, y en nombre de un grupo de sus colegas, publicó un informe sobre el diseño lógico de las computadoras digitales. El informe contiene una propuesta bastante detallada para el diseño de la máquina, que desde entonces se conoce como EDVAC. Fue creado recientemente en América, pero el informe inspiró a von Neumann a crear EDSAC.
Maniacos y Joniacs
En 1947, Burks, Goldstein y von Neumann.publicó otro informe, que cubría el diseño de otro tipo de máquina (esta vez en paralelo), que se suponía que era extremadamente rápido, capaz de realizar hasta 20,000 operaciones por segundo. Señalaron que un problema no resuelto al construirlo era el desarrollo de una memoria adecuada, cuyo contenido completo debería estar accesible al instante. Al principio, sugirieron usar un tubo de vacío especial llamado Selectron, que se inventó en el laboratorio de Princeton. Tales tubos eran caros y es muy difícil fabricarlos, especialmente si se utiliza esta arquitectura. Von Neumann posteriormente decidió construir un automóvil basado en la memoria de Williams. Esta máquina, que se completó en junio de 1952 en Princeton, se hizo ampliamente conocida como MANIAC (o simplemente Maniacs). Su diseño inspiró a los creadores a diseñar media docena o más de dispositivos similares que ahora se están construyendo en Estados Unidos y que se llaman cómicamente Johniacs.
Principios de la creacion
Una de las computadoras digitales más avanzadas,El desarrollo y mejora de la técnica de computación electrónica automática se demostró en el National Physical Laboratory en Teddington, donde fue diseñado y construido por un pequeño grupo de matemáticos, ingenieros electrónicos e investigadores, con la asistencia de varios ingenieros de fabricación de British Electric Company Ltd. El equipo todavía está en el laboratorio, pero solo como un prototipo de una instalación mucho más grande, que se conoce como el motor de computación automática. Pero, a pesar de la masa relativamente pequeña y el contenido de solo 800 válvulas termoiónicas, es una máquina de conteo extremadamente rápida y versátil.
Conceptos básicos y principios abstractos de cálculo conel uso de la máquina fue formulado por el Dr. Turing en base a la misma Sociedad Matemática de Londres en 1936, pero el trabajo en tales máquinas en el Reino Unido se retrasó por la guerra. En 1945, la consideración de los problemas para crear tales dispositivos continuó en el Laboratorio Nacional de Física por el Dr. Wormsley, superintendente del laboratorio del Departamento de Matemáticas. Se unió a Turing con su pequeño equipo de especialistas, y en 1947 la planificación preliminar estaba lo suficientemente avanzada como para justificar la creación de un grupo especial.
Las primeras computadoras en la arquitectura de von Neumann.
El primer proyecto describe un esquema que fue utilizado por muchas universidades y corporaciones para construir sus computadoras. Entre ellos, solo ILLIAC y ORDVAC tenían conjuntos de instrucciones compatibles.
La arquitectura clásica de Von Neumann fueEl 21 de junio de 1948, que se realizó en la Máquina Experimental Pequeña de Manchester (SSEM), apodada Baby de la Universidad de Manchester, realizó su primer lanzamiento exitoso como dispositivo que almacena el programa en la memoria.
EDSAC de la Universidad de Cambridge, la primera computadora electrónica práctica de este tipo, se lanzó por primera vez con éxito en mayo de 1949.
Desarrollo de los modelos creados.
IBM SSEC tuvo la oportunidad de considerarInstrucciones como datos y se demostró públicamente el 27 de enero de 1948. Esta capacidad fue afirmada en la patente de Estados Unidos. Sin embargo, era una máquina parcialmente electromecánica, y no completamente electrónica. En la práctica, las instrucciones se leyeron de una cinta de papel debido a su memoria limitada.
Baby fue la primera computadora completamente electrónica.para ejecutar programas guardados. Ejecutó el programa de factoring durante 52 minutos el 21 de junio de 1948, después de lanzar un simple cálculo de división y cálculo, que muestra que dos números son mutuamente simples.
ENIAC ha sido modificado para trabajar comouna computadora primitiva es de solo lectura, pero para la misma arquitectura, y se demostró el 16 de septiembre de 1948, y el lanzamiento del programa Adel Goldstein organizó con la ayuda de von Neumann.
BINAC realizó varios programas de prueba enFebrero, marzo y abril de 1949, aunque no se completó hasta septiembre de 1949. Además, se implementaron lanzamientos de prueba (algunos exitosos) de otras computadoras electrónicas, que se caracterizan por esta arquitectura. Por cierto, Von Neumann continuó trabajando en el proyecto de Manhattan. Aquí hay una persona tan universal.
La evolución de la arquitectura del sistema de bus.
Después de décadas, ya en los años 60 y 70,Las computadoras en su conjunto se han vuelto más pequeñas y más rápidas, lo que lleva a algunas de las evoluciones que ha experimentado la arquitectura de computadoras de von Neumann. Por ejemplo, el mapeo en memoria de entrada y salida permite que los dispositivos correspondientes, los datos y las instrucciones para integrarse en el sistema que se procesará, permanezcan en la memoria. Se puede usar un sistema de bus para proporcionar un sistema modular con uno más pequeño. Esto a veces se llama la "racionalización" de la arquitectura. En décadas posteriores, los microcontroladores simples a veces no usan algunas de las características de un modelo típico para reducir el costo y el tamaño. Pero las computadoras grandes siguen la arquitectura instalada, ya que agregan funciones para mejorar el rendimiento.