Arquitectura Harvard: origen, modelo, cómo funciona
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.
Es decir, es el término utilizado para 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.
Índice del artículo
- 1 Aplicaciones
- 2 Origen
- 3 Modelo
- 4 ¿Cómo funciona la arquitectura Harvard?
- 5 Ventajas
- 6 Desventajas
- 7 Referencias
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 la figura de la arquitectura Harvard.
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
El trabajo realizado en la Universidad de Harvard en la década de 1940 bajo el liderazgo de Howard Aiken creó una computadora original basada en relés, llamada Harvard Mark I, que es el 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
Este modelo se caracteriza en que 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 así la velocidad sobre el diseño de bus único.
Por tanto, el modelo Harvard resulta tener mayor complejidad. Sin embargo, al tener los buses de forma independiente 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 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 las instrucciones como los 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, tales 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 alguna transferencia ocasional 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 complicación.
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 veinticuatro bits, mientras que la dirección uno de datos podría indicar un byte de ocho bits, que no es parte de ese valor de veinticuatro bits.
Sistema de memoria
Como se tiene un área de memoria separado 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
– 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.
– Se accede a los datos y a las instrucciones de la misma manera.
– 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.
– Las dos memorias pueden usar diferentes tamaños de celda, con lo cual se hace un uso efectivo de los recursos.
– 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, tal como el desbordamiento de búfer.
Es por eso que 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 realizar el acceso a la memoria de datos simultáneamente a una velocidad rápida.
Ofrece un mayor rendimiento, ya que permite la obtención simultánea de datos e instrucciones por guardarse en memorias separadas y viajar a través de 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 en gran medida.
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, ahora se necesitan dos.
La producción de una computadora con dos buses es mucho más costosa y lleva más tiempo fabricarla. Requiere una unidad de control para dos buses, que es más complicada y cuyo desarrollo es costoso y necesita más tiempo.
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 tener que 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. Es por eso que rara vez se usa fuera de la CPU.
Sin embargo, esta arquitectura a veces se utiliza dentro de 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 hacerse cuidadosamente equilibradas en su fabricación.
Referencias
- List Differences (2019). Difference Between Von Neumann and Harvard Architecture? Tomado de: listdifferences.com.
- PC Magazine (2019). Definition of: Harvard architecture. Tomado de: pcmag.com.
- Techopedia (2019). Harvard Architecture. Tomado de: techopedia.com.
- Scott Thornton (2018). What’s the difference between Von-Neumann and Harvard architectures? Microcontroller Tips. Tomado de: microcontrollertips.com.
- Wikipedia, the free encyclopedia (2019). Harvard architecture. Tomado de: en.wikipedia.org.
- The Crazy Programmer (2019). Difference between Von Neumann and Harvard Architecture. Tomado de: thecrazyprogrammer.com.