
¿Qué es la arquitectura Harvard?
La arquitectura Harvard es una configuración de la computadora en la que los datos y las instrucciones de un programa están en celdas separadas de memoria, que se pueden abordar de forma independiente.
Es decir, es un sistema informático que contiene dos áreas separadas: para los comandos o instrucciones, y para los datos. Por tanto, la función principal de esta arquitectura es almacenar los datos separados físicamente, proporcionando diferentes rutas de señal para las instrucciones y los datos.
En esta arquitectura pueden ser desiguales tanto el formato como los medios de estos dos segmentos del sistema, ya que las dos partes están constituidas por dos estructuras separadas.
Algunos ejemplos de arquitecturas Harvard involucran los primeros sistemas informáticos, donde las instrucciones del programa podían estar en un medio, por ejemplo, en tarjetas perforadas, y los datos almacenados podían estar en otro medio, por ejemplo, en cintas magnéticas.
Aplicaciones
Este tipo de arquitectura tiene una amplia aplicación en los productos de procesamiento de video y audio. Con cada herramienta para procesar video y audio se podrá advertir esta arquitectura.
Los procesadores Blackfin, de Analog Devices, son el dispositivo particular donde ha conseguido su principal uso. En otros productos basados en chips electrónicos, la arquitectura Harvard también se usa ampliamente.
Sin embargo, la mayoría de las computadoras usan la arquitectura von Neumann y emplean cachés de CPU para lograr una superposición.
Origen de la arquitectura Harvard
El trabajo realizado en la Universidad de Harvard en los 40, bajo el liderazgo de Howard Aiken, creó una computadora original basada en relés, llamada Harvard Mark I, término de donde surge el concepto de la arquitectura Harvard.
Esta computadora empleaba unidades de memoria separadas para almacenar los datos y las instrucciones. Luego, ha habido un desarrollo significativo con esta arquitectura.
Aiken incitó a utilizar memorias separadas para los datos y para las instrucciones del programa, con buses separados para cada una. La arquitectura Harvard original almacenaba habitualmente las instrucciones en cintas perforadas y los datos en contadores electromecánicos.
El almacenamiento de datos de estas primeras máquinas estaba totalmente dentro de la unidad central de procesamiento. Por otro lado, no daban acceso para que las instrucciones se almacenaran como datos. Un operador debía cargar los programas.
Una arquitectura Harvard puede procesar los datos y ejecutar las instrucciones al mismo tiempo, porque cada uno de ellos tiene un bus de direcciones propio.
Modelo de arquitectura Harvard
Este modelo se caracteriza porque los buses de información y el almacenamiento se encuentran separados físicamente para los datos y el código del programa. Como los buses funcionan de manera autónoma, los datos y las instrucciones del programa se pueden obtener al mismo tiempo, mejorando la velocidad sobre el diseño de bus único.
Por tanto, el modelo Harvard resulta más complejo. Sin embargo, al tener los buses independientes se evita el cuello de botella producido por la arquitectura von Neumann.
Una computadora puede ser más veloz para un circuito de cierta complejidad, porque al buscar las instrucciones y acceder a los datos no tienen que luchar por un solo bus de memoria. Para trabajar existen dos direcciones de memoria. Por tanto, hay un registro de memoria para las instrucciones de máquina y otro registro de memoria para los datos.
A diferencia de la arquitectura von Neumann, que utiliza un bus para mover tanto instrucciones como datos de la memoria, la arquitectura Harvard usa un área de memoria para los datos y otro para las instrucciones.
- Arquitectura Harvard modificada. En las computadoras actuales no existe físicamente una disgregación de las áreas de memoria utilizadas por los programas y los datos. Por tal motivo, se podría decir que tecnológicamente tienen una arquitectura Von Neumann. No obstante, 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, disponen de ciertos elementos, como instrucciones exclusivas, que impiden que los datos se enreden con las instrucciones. A esto se 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. Los diseños de las computadoras modernas tienen como soporte la arquitectura Harvard modificada. Se usan en los microcontroladores y en el procesamiento de señal digital.
¿Cómo funciona la arquitectura Harvard?
La arquitectura Harvard tiene áreas diferentes de direcciones de memoria para el programa y para los datos. Esto trae como consecuencia la capacidad de diseñar un circuito de tal manera que se pueda usar un bus y un circuito de control para manejar el flujo de información desde la memoria del programa, y otro separado para manejar el flujo de información hacia la memoria de datos.
El uso de buses separados significa que es posible que la recuperación y ejecución de un programa se realice sin que haya ninguna interrupción por transferencias ocasionales de datos a la memoria de datos.
Por ejemplo, en una versión simple de esta arquitectura, la unidad de recuperación del programa podría estar ocupada recuperando la siguiente instrucción en la secuencia del programa, y en paralelo realizar una operación de transferencia de datos que pudieron haber sido parte de la anterior instrucción del programa.
En este nivel, la arquitectura Harvard tiene una limitación, ya que generalmente no es posible colocar el código del programa en la memoria de datos y ejecutarlo desde allí.
- Adiciones en la arquitectura. A la forma simple de la arquitectura Harvard se pueden agregar muchas variantes existentes de mayor complejidad. Una adición común es agregar un almacenamiento caché de instrucciones al bus de datos del programa, que le permita a la unidad de ejecución de instrucciones un acceso más rápido al siguiente paso del programa, sin tener que ir a una memoria más lenta para obtener el paso del programa cada vez que se requiera.
- Direcciones de memoria. Una computadora con arquitectura Harvard tiene distintas áreas de direcciones de datos y de instrucciones: la dirección uno de instrucciones no es la misma área que la dirección uno de datos. La dirección uno de instrucciones podría contener un valor de 24 bits, mientras que la dirección uno de datos podría indicar un byte de 8 bits, que no es parte de ese valor de 24 bits.
- Sistema de memoria. Como se tiene un área de memoria separada para las instrucciones y los datos, separando tanto las señales como el almacenamiento en memoria del código y los datos, esto hace posible acceder simultáneamente a cada uno de los sistemas de memoria.
Ventajas y desventajas de la arquitectura Harvard
Ventajas
- Menor corrupción de transmisión. Hay menos posibilidades de corrupción en la transmisión, ya que los datos y las instrucciones se transfieren a través de diferentes buses.
- Igual acceso. Se accede a los datos y a las instrucciones de la misma manera.
- Almacenamiento distinto. Permite diferentes medios de almacenamiento para las instrucciones y los datos. Por ejemplo, se pueden poner las instrucciones en una ROM económica y los datos en una RAM costosa.
- Diferentes tamaños de celda. Las dos memorias pueden usar diferentes tamaños de celda, con lo cual se hace un uso efectivo de los recursos.
- Ancho de banda más amplio. Se tiene un mayor ancho de banda de memoria, que es más predecible por tener memorias separadas para las instrucciones y datos.
- Nivel de protección. En sistemas que no tengan una unidad de administración de memoria ofrece un nivel de protección adicional, ya que no se podrá comenzar a ejecutar datos como si fuera código, lo que expondría al sistema a numerosos problemas, como el desbordamiento de búfer. Por eso es popular con los sistemas integrados pequeños, como el microondas o un reloj.
- Mayor velocidad. La arquitectura Harvard puede leer una instrucción y también acceder a la memoria de datos simultáneamente a una velocidad rápida. Ofrece un mayor rendimiento, porque permite la obtención simultánea de datos e instrucciones por guardarse en memorias separadas y viajar por buses diferentes. Una arquitectura Harvard generalmente ayudará a que una computadora con cierto nivel de complejidad funcione más rápido que una arquitectura Von Neumann, siempre que no sea necesario compartir recursos entre las memorias de datos y del código. Si las limitaciones de pines u otros factores obligan al uso de un solo bus para acceder a ambos espacios de memoria, es probable que tales ventajas se anulen.
Desventajas
- Mayor complejidad y costo. El problema con la arquitectura Harvard es su gran complejidad y costo debido a que, en lugar de un bus de datos, se necesitan dos. La producción de una computadora con dos buses es mucho más costosa y lleva más tiempo fabricarla. Esto significa una implementación más compleja para los fabricantes. Requiere más pines en la CPU, una tarjeta madre más compleja y duplicar los chips de la RAM, así como un diseño de caché más complejo.
- Poca utilización. La arquitectura Harvard no se usa mucho, por lo que es más difícil de implementar. Por eso rara vez se usa fuera de la CPU. Sin embargo, a veces se utiliza en la CPU para manejar sus cachés.
- Mal uso del espacio de memoria. Cuando hay espacio libre en la memoria de datos no se puede utilizar para almacenar instrucciones y viceversa. Por tanto, las memorias particulares que se dedican a cada uno de ellos deben fabricarse cuidadosamente equilibradas.
Referencias
- Difference Between Von Neumann and Harvard Architecture? Recuperado de listdifferences.com.
- Definition of: Harvard architecture. Recuperado de pcmag.com.
- Harvard Architecture. Recuperado de techopedia.com.
- Harvard architecture. Recuperado de en.wikipedia.org.
- Difference between Von Neumann and Harvard Architecture. Recuperado de thecrazyprogrammer.com.