Ir al contenido principal
Bethemesh
ReferenciaHistoria de la informática

L'architecture de von Neumann : le programme placé en mémoire

Comprenez le modèle de von Neumann, ses unités de calcul, de contrôle, de mémoire et d'entrée-sortie, ainsi que le principe du programme enregistré.

Publicado el 31 de julio de 2026Actualizado el 7 de agosto de 2026Lectura : 12 minPor Équipe Bethemesh
Principiante
Schéma éditorial de l'architecture de von Neumann reliant processeur, mémoire et entrées-sorties
Mostrar el contenido
  1. Antes del programa almacenado
  2. El proyecto EDVAC y el informe de 1945
  3. Una invención que no fue obra de una sola persona
  4. Las cinco grandes funciones de un ordenador
  5. La idea decisiva: instrucciones y datos en memoria
  6. ¿Cómo ejecuta un programa el procesador?
  7. 1. Buscar la instrucción
  8. 2. Decodificar la instrucción
  9. 3. Ejecutar la operación
  10. 4. Guardar el resultado
  11. Los registros: memoria lo más cerca posible del cálculo
  12. El cuello de botella de von Neumann
  13. Las memorias caché acercan los datos al procesador
  14. Arquitectura von Neumann y arquitectura Harvard
  15. Los procesadores modernos ya no trabajan estrictamente instrucción por instrucción
  16. Un programa puede convertirse a su vez en un dato
  17. Del hardware especializado a la máquina universal
  18. ¿Por qué sigue siendo importante la arquitectura de von Neumann?
  19. Lo esencial
  20. Preguntas frecuentes
  21. ¿John von Neumann inventó esta arquitectura él solo?
  22. ¿Cuál es la idea principal de la arquitectura de von Neumann?
  23. ¿Cuál es la diferencia entre la arquitectura von Neumann y la arquitectura Harvard?
  24. ¿Qué es el cuello de botella de von Neumann?
  25. ¿Los ordenadores modernos siguen utilizando la arquitectura de von Neumann?

La arquitectura de von Neumann es uno de los modelos fundamentales de la informática moderna. Formalizada a mediados de la década de 1940, en el contexto del desarrollo de los primeros ordenadores electrónicos, se basa en una idea que hoy parece casi evidente: las instrucciones de un programa pueden almacenarse en memoria, al igual que los datos sobre los que operan.

Este principio del programa almacenado transformó profundamente el diseño de los ordenadores. Una misma máquina podía realizar tareas muy diferentes simplemente cargando un nuevo programa, sin necesidad de modificar físicamente su cableado.

Más de ochenta años después de los primeros trabajos sobre el EDVAC, los procesadores se han vuelto infinitamente más complejos. Sin embargo, las nociones de memoria, cálculo, control y entrada/salida siguen estando en el centro de su funcionamiento.

Antes del programa almacenado

Las primeras máquinas de cálculo automático no se programaban necesariamente como nuestros ordenadores actuales.

En algunas máquinas, cambiar el cálculo que debía realizarse implicaba modificar conexiones, mover cables, ajustar interruptores o preparar nuevos soportes físicos. El ENIAC, desarrollado en Estados Unidos durante la Segunda Guerra Mundial, es un ejemplo célebre: su configuración inicial requería un importante trabajo manual.

Estas máquinas podían efectuar cálculos extraordinariamente rápidos para su época, pero pasar de un problema a otro seguía siendo complicado.

Entonces surgió una pregunta esencial:

¿Y si las instrucciones que indican a la máquina qué debe hacer se almacenaran también en su memoria?

El programa dejaría de estar representado únicamente por la configuración física de la máquina. Se convertiría en información que el ordenador podría cargar y leer.

Esta idea constituye el núcleo del concepto de programa almacenado.

El proyecto EDVAC y el informe de 1945

En 1945, cuando el ENIAC todavía no había sido presentado oficialmente al público, sus diseñadores ya trabajaban en su sucesor: el EDVAC, siglas de Electronic Discrete Variable Automatic Computer.

John von Neumann se incorporó a las conversaciones en torno al proyecto y redactó un documento que se haría famoso: el First Draft of a Report on the EDVAC.

El informe describía una máquina electrónica organizada alrededor de varias funciones principales: cálculo, control, memoria y comunicación con el exterior. Sobre todo, exponía el principio según el cual las instrucciones podían representarse de forma numérica y conservarse en memoria.

El documento circuló ampliamente y contribuyó de manera decisiva a difundir esta nueva forma de concebir un ordenador.

Esta es una de las principales razones por las que la expresión «arquitectura de von Neumann» acabó imponiéndose.

Sin embargo, esta denominación requiere una importante precisión histórica.

Una invención que no fue obra de una sola persona

Presentar a John von Neumann como el único inventor de esta arquitectura sería engañoso.

Las ideas relacionadas con el programa almacenado surgieron en un entorno científico y técnico mucho más amplio. Los ingenieros J. Presper Eckert y John Mauchly, que trabajaron en el ENIAC y posteriormente en el EDVAC, participaron directamente en el diseño de estas nuevas máquinas.

Otros investigadores también contribuyeron a la evolución de las ideas sobre los ordenadores electrónicos y programables.

No obstante, von Neumann desempeñó un papel decisivo en su formalización y, sobre todo, en su difusión. El First Draft llevaba su nombre y circuló ampliamente entre los investigadores que trabajaban en los futuros ordenadores.

Por ello, el término histórico perduró.

Hablar hoy de arquitectura de von Neumann sigue siendo perfectamente legítimo, siempre que recordemos que el nacimiento del ordenador moderno fue el resultado de un trabajo colectivo.

Las cinco grandes funciones de un ordenador

En una representación simplificada, una máquina de tipo von Neumann incluye varios elementos esenciales:

  • una unidad aritmético-lógica;
  • una unidad de control;
  • una memoria;
  • dispositivos de entrada;
  • dispositivos de salida.

La unidad aritmético-lógica, habitualmente denominada ALU, realiza las operaciones solicitadas: sumas, restas, comparaciones y operaciones lógicas.

La unidad de control coordina el funcionamiento de la máquina. Determina qué instrucción debe ejecutarse y dirige los demás componentes.

En los ordenadores modernos, estas dos funciones forman parte del procesador, o CPU.

La memoria conserva la información que necesita la máquina. Puede contener tanto los datos que se están procesando como las instrucciones del programa.

Por último, las entradas y salidas permiten al ordenador comunicarse con el mundo exterior mediante teclados, pantallas, dispositivos de almacenamiento, redes, sensores y muchos otros periféricos.

Esta representación está deliberadamente simplificada, pero sigue proporcionando una excelente base para comprender cómo funciona un ordenador.

La idea decisiva: instrucciones y datos en memoria

La característica más conocida del modelo reside en la forma de utilizar la memoria.

En una arquitectura de von Neumann clásica, los datos y las instrucciones pueden almacenarse en la misma memoria.

Imaginemos un programa extremadamente sencillo encargado de sumar dos números.

La memoria podría contener:

  • los dos números que deben sumarse;
  • la instrucción que solicita la suma;
  • la instrucción que indica dónde guardar el resultado;
  • y, posteriormente, el propio resultado.

Para la máquina, una instrucción también está representada mediante información numérica.

Esta idea abre enormes posibilidades.

Cambiar de programa ya no exige necesariamente reconstruir o recablear el ordenador. Basta con colocar nuevas instrucciones en la memoria.

Una misma máquina física puede así realizar tareas de contabilidad, cálculos científicos, ejecutar un videojuego o funcionar como editor de texto simplemente utilizando programas diferentes.

Este es uno de los principios que hacen posible el ordenador de propósito general.

¿Cómo ejecuta un programa el procesador?

El funcionamiento puede representarse mediante un ciclo conocido habitualmente como fetch-decode-execute, es decir, búsqueda, decodificación y ejecución.

Imaginemos que un programa ya está cargado en memoria.

1. Buscar la instrucción

El procesador debe saber primero qué instrucción tiene que ejecutar.

Un registro especial, denominado generalmente contador de programa o program counter, contiene la dirección de la siguiente instrucción.

El procesador obtiene esa instrucción de la memoria.

2. Decodificar la instrucción

Una vez cargada, la instrucción debe interpretarse.

La unidad de control determina la operación solicitada: realizar una suma, comparar dos valores, mover un dato, leer una posición de memoria o modificar el flujo de ejecución del programa.

3. Ejecutar la operación

A continuación se realiza la operación.

Si se necesita un cálculo, puede intervenir la unidad aritmético-lógica. Si la instrucción necesita un dato, el procesador puede recuperarlo de la memoria.

4. Guardar el resultado

El resultado puede colocarse en un registro, escribirse en memoria o enviarse a otro componente.

Después, el procesador pasa a la siguiente instrucción.

Con algunos procesadores actuales funcionando a miles de millones de ciclos por segundo, esta sucesión de operaciones resulta invisible para el usuario.

Los registros: memoria lo más cerca posible del cálculo

La memoria principal no es el único lugar donde el procesador conserva información.

También dispone de pequeñas zonas de almacenamiento extremadamente rápidas denominadas registros.

Pueden contener temporalmente:

  • valores utilizados en cálculos;
  • direcciones de memoria;
  • resultados intermedios;
  • la instrucción actual;
  • la dirección de la siguiente instrucción.

Su capacidad es minúscula en comparación con la memoria principal, pero su proximidad a las unidades de procesamiento hace que sean mucho más rápidos.

Esta diferencia ilustra un problema que adquiere cada vez más importancia a medida que los procesadores aceleran: el cálculo puede llegar a ser más rápido que el acceso a los datos que necesita.

El cuello de botella de von Neumann

En el modelo clásico, las instrucciones y los datos comparten la memoria y las vías de comunicación con el procesador.

Por tanto, el procesador debe recuperar continuamente nuevas instrucciones y los datos necesarios para ejecutarlas, y puede tener que devolver después los resultados a la memoria.

Aunque el procesador sea extremadamente rápido, su rendimiento puede verse limitado por la velocidad a la que circula la información entre la memoria y las unidades de procesamiento.

Este fenómeno se conoce como cuello de botella de von Neumann.

La expresión fue popularizada especialmente por el informático John Backus en la década de 1970.

El problema no ha desaparecido en los ordenadores modernos. La diferencia de rendimiento entre los procesadores y la memoria ha sido durante mucho tiempo uno de los grandes desafíos de la arquitectura informática.

Las memorias caché acercan los datos al procesador

Una de las respuestas a este problema consiste en añadir varios niveles de memoria caché.

Una caché es mucho más pequeña que la memoria principal, pero también mucho más rápida.

El procesador intenta conservar en ella las instrucciones y los datos que considera que probablemente utilizará próximamente.

Los procesadores modernos suelen disponer de varios niveles:

  • caché L1, muy pequeña y extremadamente rápida;
  • caché L2, de mayor capacidad;
  • caché L3, todavía mayor y a menudo compartida entre varios núcleos.

El objetivo es sencillo: evitar en la medida de lo posible tener que esperar a la memoria principal.

Esta jerarquía muestra hasta qué punto las máquinas modernas se han alejado de los esquemas elementales de la década de 1940, al mismo tiempo que intentan resolver una dificultad directamente relacionada con el modelo original.

Arquitectura von Neumann y arquitectura Harvard

Otra organización importante es la arquitectura Harvard.

En una arquitectura Harvard estricta, las instrucciones y los datos utilizan memorias separadas y pueden disponer de vías de comunicación independientes.

Esto permite, entre otras cosas, obtener simultáneamente una instrucción y un dato.

La diferencia teórica puede resumirse así:

von Neumann: las instrucciones y los datos comparten un espacio de memoria.

Harvard: las instrucciones y los datos están separados.

En la práctica, los ordenadores modernos difuminan considerablemente esta distinción.

Un procesador puede presentar al programador un espacio de memoria unificado correspondiente al modelo de von Neumann y, al mismo tiempo, utilizar internamente cachés separadas para instrucciones y datos.

En ocasiones se habla de arquitectura Harvard modificada.

Muchos microcontroladores y procesadores especializados también utilizan distintas variantes de esta organización.

Por tanto, sería incorrecto imaginar que todos los ordenadores actuales encajan perfectamente en uno u otro modelo.

Los procesadores modernos ya no trabajan estrictamente instrucción por instrucción

El ciclo de búsqueda, decodificación y ejecución es un excelente modelo pedagógico, pero un procesador moderno es mucho más sofisticado.

Para mejorar el rendimiento, puede empezar a procesar una nueva instrucción antes de que la anterior haya terminado por completo. Este es el principio del pipeline de instrucciones.

También puede disponer de varias unidades de ejecución capaces de realizar distintas operaciones simultáneamente.

Algunos procesadores incluso reorganizan el orden de ejecución de las instrucciones cuando esto permite utilizar sus recursos de forma más eficiente, asegurándose al mismo tiempo de que el programa produzca el resultado esperado.

La ejecución especulativa permite anticipar el camino que probablemente seguirá un programa y comenzar ciertos cálculos antes incluso de saber si serán necesarios.

Además, los procesadores actuales suelen disponer de varios núcleos, cada uno capaz de ejecutar sus propios flujos de instrucciones.

Por tanto, un ordenador moderno está muy lejos del esquema elemental procesador-memoria-entrada/salida.

Sin embargo, a nivel de software seguimos encontrando una idea fundamental: unas instrucciones almacenadas dirigen una máquina de propósito general que manipula datos.

Un programa puede convertirse a su vez en un dato

El principio del programa almacenado tiene una consecuencia especialmente importante: dado que un programa se representa numéricamente en memoria, un programa puede manipular otro programa.

Un compilador, por ejemplo, puede leer código fuente y producir un programa ejecutable.

Un sistema operativo puede cargar un programa desde un dispositivo de almacenamiento hasta la memoria.

Un editor puede modificar un archivo que contiene código.

Un programa puede incluso generar automáticamente nuevas instrucciones.

La frontera entre «programa» y «dato» depende, por tanto, en parte de cómo se interprete la información.

Esta propiedad se volvió esencial para el desarrollo de los sistemas operativos, los compiladores, los lenguajes de programación y, de manera más general, de la industria del software.

Del hardware especializado a la máquina universal

El concepto de programa almacenado contribuyó a una transformación fundamental.

En lugar de construir una máquina diferente para cada problema, se hizo posible construir una máquina de propósito general y modificar su comportamiento mediante software.

Esta idea mantiene una estrecha relación conceptual con los trabajos de Alan Turing.

En 1936, varios años antes del EDVAC, Turing describió una máquina abstracta capaz de realizar operaciones definidas simbólicamente. Demostró, entre otras cosas, que una máquina universal podía simular el funcionamiento de muchas otras máquinas si recibía sus descripciones.

La máquina de Turing es un modelo matemático, mientras que la arquitectura de von Neumann se refiere a la organización práctica de los ordenadores electrónicos.

Por tanto, ambos conceptos no deben confundirse.

Sin embargo, forman parte de la misma revolución intelectual: una máquina no tiene por qué construirse para una única tarea; su comportamiento puede estar determinado por la información que recibe.

¿Por qué sigue siendo importante la arquitectura de von Neumann?

Los ordenadores actuales incluyen GPU, múltiples núcleos, complejas jerarquías de caché, controladores especializados, aceleradores de inteligencia artificial y numerosos mecanismos que no existían en la década de 1940.

Por ello, decir que un ordenador moderno es simplemente «una máquina de von Neumann» sería muy reduccionista.

Pero el modelo sigue siendo extremadamente útil.

Permite comprender por qué un ordenador dispone de memoria y procesador, cómo se ejecuta un programa, por qué los datos deben circular entre distintos componentes y por qué la velocidad de la memoria influye en el rendimiento.

También representa una etapa fundamental de la historia de la informática: aquella en la que el programa pasó a convertirse en información almacenable y modificable, en lugar de ser únicamente una configuración física del hardware.

Esta idea parece hoy tan natural que resulta fácil olvidar hasta qué punto fue decisiva.

Cada vez que instalamos una aplicación, iniciamos un videojuego, cargamos una página web o ejecutamos unas líneas de código, seguimos utilizando esta propiedad fundamental: una misma máquina puede convertirse en algo diferente simplemente porque le proporcionamos nuevas instrucciones.

Lo esencial

La arquitectura de von Neumann no es un plano exacto de los ordenadores modernos. Es, ante todo, un modelo histórico y conceptual.

Sin embargo, sus principios esenciales siguen siendo fundamentales:

  • una máquina dispone de unidades de cálculo y control;
  • utiliza memoria para almacenar información;
  • las instrucciones de un programa pueden almacenarse en memoria;
  • esas instrucciones dirigen las operaciones realizadas sobre los datos;
  • una misma máquina puede, por tanto, ejecutar programas muy diferentes.

Su influencia va mucho más allá del esquema clásico de un procesador conectado a una memoria.

El concepto de programa almacenado contribuyó a convertir el ordenador en una máquina versátil definida tanto por su software como por su hardware.

Preguntas frecuentes

¿John von Neumann inventó esta arquitectura él solo?

No. Von Neumann desempeñó un papel fundamental en la formalización y difusión del concepto, especialmente a través del First Draft of a Report on the EDVAC de 1945. Sin embargo, las ideas asociadas al EDVAC surgieron de un trabajo colectivo en el que participaron, entre otros, J. Presper Eckert y John Mauchly.

¿Cuál es la idea principal de la arquitectura de von Neumann?

El principio esencial es el programa almacenado: las instrucciones pueden representarse numéricamente y conservarse en memoria, lo que permite que una misma máquina ejecute programas diferentes.

¿Cuál es la diferencia entre la arquitectura von Neumann y la arquitectura Harvard?

En el modelo clásico de von Neumann, las instrucciones y los datos comparten la memoria. En una arquitectura Harvard, utilizan memorias o vías separadas. Muchos procesadores modernos emplean una organización híbrida.

¿Qué es el cuello de botella de von Neumann?

Es la limitación de rendimiento provocada por la comunicación entre el procesador y la memoria. Un procesador muy rápido puede tener que esperar a recibir las instrucciones o los datos necesarios para realizar sus cálculos.

¿Los ordenadores modernos siguen utilizando la arquitectura de von Neumann?

Conservan varios de sus principios fundamentales, especialmente el concepto de programa almacenado, pero incorporan numerosas optimizaciones adicionales, como memorias caché, pipelines, ejecución paralela, múltiples núcleos y, en algunos casos, separación interna entre instrucciones y datos.

Fuentes y referencias

  1. 1.First Draft of a Report on the EDVAC
  2. 2.Stanford Encyclopedia --- Modern History of Computing
  3. 3.IEEE Computer Society --- John von Neumann

Colección

Pioneros de la informática

  1. 01Ada Lovelace: la visionaria que imaginó la programación informática
  2. 02Charles Babbage: el inventor que imaginó el ordenador mecánico
  3. 03La máquina diferencial: automatizar los cálculos antes del ordenador
  4. 04Tarjetas perforadas: del telar Jacquard a los primeros ordenadores
  5. 05La máquina analítica: el ordenador mecánico imaginado por Babbage
  6. 06Alan Turing: el matemático que dio forma al cálculo
  7. 07Claude Shannon: el ingeniero que convirtió la información en ciencia
  8. 08John von Neumann: el científico que unió matemáticas y ordenadores
  9. 09La máquina de Turing: el modelo abstracto que define el cálculo
  10. 10L'architecture de von Neumann : le programme placé en mémoire
  11. 11Teoría de la información: medir, comprimir y transmitir mensajes

¿Te ha resultado útil este artículo?