Escolar Documentos
Profissional Documentos
Cultura Documentos
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.