arquitectura von Neumann


La arquitectura de von Neumann , también conocida como modelo de von Neumann o arquitectura de Princeton , es una arquitectura de computadora basada en una descripción de 1945 de John von Neumann y otros en el primer borrador de un informe sobre el 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 significar cualquier computadora de programa almacenado en la que una búsqueda de instrucciones 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 buses de direcciones y datos para leer y escribir en la memoria, y otro conjunto de buses de direcciones y datos para buscar 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 programas de la década de 1940, como Colossus y ENIAC . Estos se programaron estableciendo 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 los cachés más cercanos a la CPU, tienen cachés separados para instrucciones y datos, de modo que la mayoría de las instrucciones y los datos las recuperaciones usan autobuses separadosarquitectura 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 texto ni 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 fue posible, fue un proceso laborioso que comenzó con diagramas de flujo.y notas en papel, seguidas de diseños de ingeniería detallados, y luego el proceso, a menudo arduo, de recablear y reconstruir físicamente la máquina. Puede 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