arquitectura de Von Neumann


La arquitectura de von Neumann , también conocida como modelo de von Neumann o arquitectura de Princeton , es una arquitectura informática basada en una descripción de 1945 de John von Neumann y otros en el primer borrador de un informe sobre EDVAC . [1] Ese documento describe una arquitectura de diseño para una computadora digital electrónica con estos componentes:

El término "arquitectura de von Neumann" ha evolucionado para referirse a cualquier computadora con programa almacenado en la que una instrucción de búsqueda y una operación de datos no pueden ocurrir al mismo tiempo porque comparten un bus común . Esto se conoce como el cuello de botella de von Neumann y, a menudo, limita el rendimiento del sistema. [3]

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

Una computadora digital programable con memoria mantiene ambas instrucciones de programas y datos de lectura-escritura , la memoria de acceso aleatorio (RAM). Las computadoras de programa almacenado fueron un avance sobre las computadoras controladas por programa de la década de 1940, como Colossus y ENIAC . Estos se programaron configurando interruptores e insertando cables de conexión para enrutar datos y señales de control entre varias unidades funcionales. La gran mayoría de las computadoras modernas usan la misma memoria tanto para los datos como para las instrucciones del programa, pero tienen cachés entre la CPU y la memoria y, para las cachés más cercanas a la CPU, tienen cachés separados para las instrucciones y los datos, de modo que la mayoría de las instrucciones y los datos busca usar buses separados (arquitectura de caché dividida ).

Las primeras máquinas informáticas tenían programas fijos. Algunas computadoras muy simples todavía usan este diseño, ya sea por simplicidad o con fines de capacitación. Por ejemplo, una calculadora de escritorio (en principio) es una computadora de programa fijo. Puede hacer matemáticas básicas , pero no puede ejecutar un procesador de textos o juegos. Cambiar el programa de una máquina de programa fijo requiere volver a cablear, reestructurar o rediseñar la máquina. Las primeras computadoras no estaban tanto "programadas" como "diseñadas" para una tarea en particular. La "reprogramación", cuando era posible, era un proceso laborioso que comenzaba con diagramas de flujoy notas en papel, seguidas de diseños de ingeniería detallados, y luego el proceso, a menudo arduo, de volver a cablear físicamente y reconstruir la máquina. Podría llevar tres semanas configurar y depurar un programa en ENIAC . [4]

Con la propuesta de la computadora con programa almacenado, esto cambió. Una computadora con programa almacenado incluye, por diseño, un conjunto de instrucciones y puede almacenar en la memoria un conjunto de instrucciones (un programa ) que detalla el cálculo .


Un esquema de arquitectura de von Neumann
Evolución de la arquitectura del bus de sistema único