En este momento estás viendo Arquitectura Von Neumann y arquitectura Harvard

Arquitectura Von Neumann y arquitectura Harvard

Arquitectura Von Neumann y arquitectura Harvard

En los sistemas informáticos encontramos dos arquitecturas distintas relacionadas con el uso y distribución de la memoria. Vamos a ver en que consisten y cuales son sus diferencias y ventajas o inconvenientes.

Sumario

  • Arquitectura Von Neumann
    • Estructura
    • Principales limitaciones
  • Arquitectura Harvard
    • Estructura
    • Ventajas de esta arquitectura

Arquitectura Von Neumann

La arquitectura von Neumann, también conocida como arquitectura Princeton, es una arquitectura de computadoras basada en la descrita en 1945 por el matemático y físico John von Neumann.

John Von Neumann fue un matemático de origen austrohúngaro que durante su vida trajo con científicos como Albert Einstein, Alan Turing en el Instituto de Estudios Avanzados de la Universidad de Princenton y posteriormente también con Robert Oppenheimer. Aparte de desarrollar la arquitectura común de casi todos los procesadores para PCs, trabajó en el Proyecto Manhattan donde se desarrolló la bomba atómica. Una de cal y otra de arena.

Estructuradas con el uso y distribución de la memoria.

Esta arquitectura está conformada por 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

Tradicionalmente los sistemas con microprocesadores se basan en esta arquitectura, en la cual la unidad central de proceso (CPU), está conectada a una memoria principal única (casi siempre sólo RAM) donde se guardan las instrucciones del programa y los datos. A dicha memoria se accede a través de un sistema de buses único (control, direcciones y datos)

En un sistema con arquitectura Von Neumann, el tamaño de la unidad de datos o instrucciones está fijado por el ancho del bus, que comunica la memoria con la CPU. Así un microprocesador de 8 bits con un bus de 8 bits, tendrá que manejar datos e instrucciones de una o más unidades de 8 bits (bytes) de longitud. Si tiene que acceder a una instrucción o dato de más de un byte de longitud, tendrá que realizar más de un acceso a la memoria.

El tener un único bus hace que el microprocesador sea más lento en su respuesta, ya que no puede buscar en memoria una nueva instrucción mientras no finalicen las transferencias de datos de la instrucción anterior.

Las principales limitaciones

Las principales limitaciones que nos encontramos con la arquitectura Von Neumann son

  • La limitación de la longitud de las instrucciones por el bus de datos, que hace que el microprocesador tenga que realizar varios accesos a memoria para buscar instrucciones complejas.
  • La limitación de la velocidad de operación a causa del bus único para datos e instrucciones que no deja acceder simultáneamente a unos y otras, lo cual impide superponer ambos tiempos de acceso. Esto se conoce como el cuello de botella Von Neumann, y muchas veces limita el rendimiento del sistema.

Arquitectura Harvard

El término proviene de la computadora Harvard Mark I basada en relés, que almacenaba las instrucciones sobre cintas perforadas (de 24 bits de ancho) y los datos en interruptores electromecánicos.

Este modelo, que utilizan los microcontroladores PIC, tiene la unidad central de proceso (CPU) conectada a dos memorias (una con las instrucciones y otra con los datos) por medio de dos buses diferentes.

Estructura

La arquitectura Harvard es una configuración de la computadora en la que los datos y las instrucciones de un programa se encuentran en celdas separadas de memoria, que se pueden abordar de forma independiente.

Una de las memorias contiene solamente las instrucciones del programa (Memoria de Programa), y la otra sólo almacena datos (Memoria de Datos).

Ambos buses son totalmente independientes, lo que permite que la CPU pueda acceder de forma independiente y simultánea a la memoria de datos y a la de instrucciones. Como los buses son independientes, éstos pueden tener distintos contenidos en la misma dirección y también distinta longitud.

También la longitud de los datos y las instrucciones puede ser distinta, lo que optimiza el uso de la memoria en general.

En algunos sistemas, se pueden almacenar instrucciones en memoria de solo lectura mientras que, en general, la memoria de datos requiere memoria de lectura-escritura.

En otros sistemas, hay mucha más memoria de instrucciones que memoria de datos, así que las direcciones de instrucción son más anchas que las direcciones de datos.

Para un procesador de Set de Instrucciones Reducido, o RISC (Reduced Instrucción Set Computer), el set de instrucciones y el bus de memoria de programa pueden diseñarse de tal manera, que todas las instrucciones tengan una sola posición de memoria, de programa y de longitud.

Además, al ser los buses independientes, la CPU puede acceder a los datos para completar la ejecución de una instrucción, y al mismo tiempo leer la siguiente instrucción a ejecutar.

Ventajas de esta arquitectura

El tamaño de las instrucciones no está relacionado con el de los datos, y por lo tanto puede ser optimizado para que cualquier instrucción ocupe una sola posición de memoria de programa, logrando así mayor velocidad y menor longitud de programa.

El tiempo de acceso a las instrucciones puede superponerse con el de los datos, logrando una mayor velocidad en cada operación.

Si tienes algún comentario que hacer sobre este artículo, al pie del post tienes un formulario para hacerlo.

Si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, en la página de contacto, tienes un formulario más adecuado.

Y para suscribirte y recibir las novedades publicadas, tienes un enlace en el pie de la página o desde aquí mismo.

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.