Está en la página 1de 3

Caso practico 1.

Diferencias entre arquitecturas Von Newman y Harvard

F. Javier Monteagudo López


15 de marzo de 2019

La arquitectura von Neumann, es 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 programa 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.
El concepto ha evolucionado para convertirse en un computador de programa
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

Diagrama de la arquitectura von Neumann

La arquitectura Harvard es una arquitectura de computadora con pistas


de almacenamiento y de señal físicamente separadas para las instrucciones y para los
datos.
En la arquitectura Harvard, no hay necesidad de hacer que las dos memorias compartan
características. En particular, pueden diferir la anchura de palabra, el momento, la
tecnología de implementación y la estructura de dirección de memoria. 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 algunos
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.

Diagrama de la Arquitectura Harvard.

Diferencias entre la arquitectura Von Newman y Arquitectura Harvard

Bajo arquitectura de von Neumann pura, la CPU puede estar bien leyendo una
instrucción o leyendo/escribiendo datos desde/hacia la memoria, pero ambos procesos
no pueden ocurrir al mismo tiempo, ya que las instrucciones y datos usan el mismo
sistema de buses. En una computadora que utiliza la arquitectura Harvard, la CPU
puede tanto leer una instrucción como realizar un acceso a la memoria de datos al
mismo tiempo, incluso sin una memoria caché. En consecuencia, una arquitectura de
computadores Harvard puede ser más rápida para un circuito complejo, debido a que la
instrucción obtiene acceso a datos y no compite por una única vía de memoria.
Además, una máquina de arquitectura Harvard tiene distintos código y espacios de
dirección de datos: dirección de instrucción cero y dirección de datos cero son cosas
distintas. La instrucción cero dirección podría identificar un valor de veinticuatro bits,
mientras que dirección de datos cero podría indicar un byte de ocho bits que no forma
parte de ese valor de veinticuatro bits.

Los diseños modernos de chips de CPU de alto rendimiento incorporan tanto aspectos
de la arquitectura Harvard como de la von Neumann. En particular, está muy difundida
la versión "caché split" de la arquitectura Harvard modificada. La memoria caché de la
CPU se divide en una caché de instrucciones y una de datos. La arquitectura Harvard
se utiliza como la CPU accediendo a la memoria caché. No obstante, en el caso de un
fallo de caché, los datos son recuperados de la memoria principal, que no se divide
formalmente en secciones separadas de instrucción y datos, aunque también pueda
tener los controladores de memoria separados utilizados para el acceso simultáneo a la
memoria RAM, ROM y memoria flash (NOR).
Así, aunque una arquitectura de von Neumann esté visible en algunos contextos, como
cuando los datos y el código vienen por el mismo controlador de memoria, la
implementación de hardware gana las eficiencias de la arquitectura de Harvard para el
caché de accesos y al menos algo de accesos a la memoria principal.
Adicionalmente, las CPU suelen tener buffers de escritura que le permiten proceder
después de escribir en regiones no almacenadas en caché. De este modo, se visibiliza la
naturaleza von Neumann de la memoria, cuando las instrucciones se escriben como
datos de la CPU y el software debe garantizar que las caches (datos e instrucciones) y
la escritura de búfer están sincronizadas, antes de tratar de ejecutar esas
instrucciones simplemente escritas.