Es una arquitectura de computadora con pistas de almacenamiento y de
señal físicamente separadas para las instrucciones y para los datos. 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. Estas primeras máquinas tenían almacenamiento de datos totalmente contenido dentro la unidad central de proceso, y no proporcionaban acceso al almacenamiento de instrucciones como datos. Los programas necesitaban ser cargados por un operador; el procesador no podría arrancar por sí mismo. La arquitectura Harvard forma parte de los modelos clásicos en cuanto a la estructura de un computador. Sin embargo podemos resumir su funcionamiento de la siguiente manera:
La organización del modelo Harvard se distingue por una división de
memoria en una memoria de instrucciones y de datos. Cabe destacar que la unidad de procesamiento se conecta con dos memorias diferente:
Memoria de programa: Contiene todas las instrucciones del programa
desarrollado Memoria de datos: Dispositivo que almacena datos permanentes del usuario. Ventajas de arquitectura de Harvard:
Se evita las formaciones de cuello de botella debido a utilizar diferente
almacenamiento para datos y programa.
El tamaño de las instrucciones no está relacionado con el tamaño de datos.
El diseño del bus de programa ayuda a determinar el tamaño máximo de una instrucción. Se mejora la velocidad y menor longitud del programa Se puede acceder a datos y programa al mismo tiempo.
La arquitectura Harvard cuenta con los mismos módulos o unidades que la
arquitectura Von Neumann es decir unidad de control, buses de comunicación, ALU, E/S, memoria para datos y para programa.
Arquitectura Von Neumann
También conocida como modelo de Von Neumann o arquitectura
Princeton, es una arquitectura de computadoras basada en la descrita en 1945 por el matemático y físico John von Neumann y otros, en el primer borrador de un informe sobre el EDVAC. Este describe una arquitectura de diseño para un computador digital electrónico con partes que constan de 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.
El concepto ha evolucionado para convertirse en un computador de
programas almacenado en el cual no pueden darse simultáneamente una búsqueda de instrucciones y una operación de datos, ya que comparten un bus en común. Esto se conoce como el cuello de botella Von Neumann, y muchas veces limita el rendimiento del sistema.
El diseño es más simple que la arquitectura Harvard y más moderna, que
también es un sistema de programa almacenado, pero tiene un conjunto dedicado de direcciones y buses de datos para leer datos desde memoria y escribir datos en la misma, y otro conjunto de direcciones y buses de datos para ir a buscar instrucciones. Un ordenador digital de programa almacenado es aquel que mantiene sus instrucciones de programa, así como sus datos, en una memoria de acceso aleatorio (RAM) de lectura-escritura. Las computadoras de programa almacenado representaron un avance sobre los ordenadores controlados por programas de la década de 1940, como la Colossus y la ENIAC, que se programaron mediante el establecimiento de conmutadores y la inserción de cables de interconexión para enrutar datos y para controlar señales entre varias unidades funcionales. En la gran mayoría de las computadoras modernas, se utiliza la misma memoria tanto para datos como para instrucciones de programa, y la distinción entre Von Neumann vs. Harvard se aplica a la arquitectura de memoria caché, pero no a la memoria principal.