Arquitectura Harvard
Harvard Mark I es la primer computadora hecha en la
Universidad de Harvard en la década de 1940 por
Howard H. Aiken.
Esta arquitectura separa el almacenamiento de datos e
instrucciones al igual que el bus que conecta el
almacenamiento de estas.
Este manejo separado de datos e instrucciones permite
que sean procesados al mismo tiempo, lo que mejora la
velocidad con respecto al uso de un bus único
La arquitectura Harvard fue desarrollada en la
Universidad de Harvard en la década de 1940, como
parte del proyecto Harvard Mark I, una de las primeras
computadoras electromecánicas. El diseño se basó en
la idea de separar las memorias y los buses para
instrucciones y datos, lo que permitía un acceso
simultáneo a ambos, mejorando el rendimiento.
Características Principales
Memorias Separadas: La arquitectura Harvard utiliza
dos memorias independientes: una para almacenar
instrucciones (código de programa) y otra para
almacenar datos. Esto permite que la CPU acceda a
ambas memorias de manera simultánea.
Buses Independientes: Hay dos buses separados: uno
para transferir instrucciones desde la memoria de
programa a la CPU, y otro para transferir datos entre la
memoria de datos y la CPU. Esto elimina el cuello de
botella que ocurre en la arquitectura de von Neumann,
donde el bus único debe ser compartido.
Acceso Simultáneo: La separación de memorias y
buses permite que la CPU pueda estar leyendo una
instrucción mientras escribe o lee datos al mismo
tiempo, lo que aumenta la eficiencia y el rendimiento.
Mayor Velocidad: Al no tener que competir por el
mismo bus, las operaciones de lectura/escritura de
datos y la captación de instrucciones pueden realizarse
en paralelo, lo que acelera la ejecución de programas.
Ventajas
Rendimiento Mejorado: La capacidad de acceder a
instrucciones y datos simultáneamente permite una
mayor velocidad de procesamiento.
Menor Contención de Bus: Al no compartir el bus, se
reduce la contención y los tiempos de espera, lo que es
especialmente útil en aplicaciones de tiempo real.
Seguridad y Fiabilidad: La separación de memorias
puede mejorar la seguridad, ya que las instrucciones no
pueden ser modificadas accidentalmente como datos, lo
que reduce el riesgo de corrupción de código.
Optimización para Aplicaciones Específicas: Es ideal
para sistemas embebidos y microcontroladores, donde
el rendimiento y la eficiencia son críticos.
Desventajas
Complejidad de Diseño: La necesidad de dos
memorias y buses independientes aumenta la
complejidad del diseño del sistema, lo que puede elevar
los costos.
Flexibilidad Reducida: La separación de memorias
puede limitar la flexibilidad en la gestión de memoria, ya
que no se puede reasignar dinámicamente el espacio
entre instrucciones y datos.
Mayor Consumo de Recursos: El uso de dos
memorias y buses puede aumentar el consumo de
energía y el tamaño físico del sistema.
Aplicaciones
La arquitectura Harvard es ampliamente utilizada en
sistemas donde el rendimiento y la eficiencia son
críticos, tales como:
Microcontroladores: Muchos microcontroladores,
como los de la familia PIC de Microchip, utilizan la
arquitectura Harvard para optimizar el rendimiento en
aplicaciones embebidas.
Procesadores de Señales Digitales (DSP): Los DSP
suelen emplear esta arquitectura para manejar grandes
volúmenes de datos y realizar operaciones en tiempo
real.
Sistemas Embebidos: En dispositivos como routers,
sistemas de control industrial y automóviles, donde se
requiere un procesamiento rápido y eficiente.
Arquitectura Harvard modificada
En las computadoras actuales no existe físicamente una
separación de las áreas de memoria utilizadas por los
programas y los datos. Se podría decir que
tecnológicamente tienen una arquitectura Von
Neumann.
Pero la arquitectura Harvard modificada sirve para
representar de la mejor manera a las computadoras de
hoy en día.
Aunque las unidades de procesamiento actuales
comparten la memoria, cuentan con instrucciones
exclusivas, que impiden que los datos se enreden con
las instrucciones. A esto se le llama arquitectura
Harvard modificada.
Así, la arquitectura Harvard modificada tiene dos buses
separados, uno para el código y otro para los datos,
pero la memoria en sí es un elemento compartido
físicamente.
El controlador de memoria es donde se asienta el
cambio, porque este dispositivo es el que maneja la
memoria y cómo se debe utilizar.