Entiendo que la diferencia entre las dos arquitecturas es la separación de las instrucciones de los datos en la arquitectura de Harvard. Pero, ¿cómo sé en qué tipo de sistema estoy? ¿Es posible escribir un programa de manera que el programa determine si el sistema es von Neumann o Harvard? ¿Podría haber otra arquitectura o son estas arquitecturas las únicas conocidas?
12
Respuestas:
Su computadora es una máquina von Neumann. Todas las computadoras de uso general son. Las únicas excepciones son los coprocesadores especializados como las GPU. No es que no puedas tener una máquina Harvard (o cualquier otra arquitectura). Es solo que nadie los construye, especialmente no para la venta (coprocesadores de módulos, por supuesto).
fuente
La mayoría de las CPU de uso general actuales utilizan la arquitectura Harvard modificada . Los núcleos de la CPU pueden acceder al programa y a los datos de forma independiente en sus cachés L1 separados. En el exterior, no hay memorias de programa y datos separadas (ni los otros niveles de caché están separados).
Todas las demás arquitecturas están bastante restringidas en su uso. Debido a la extrema complejidad y los costos asociados con el desarrollo del procesador, no creo que nadie lo intente en serio nuevamente.
Sin embargo, aunque las CPU modernas son básicamente von Neumann, incorporan muchas ideas como Dataflow Architecture internamente.
fuente
Ambas arquitecturas de Von Neumann y Harvard pertenecen al paradigma de control de flujo.
Hay otro paradigma, que es el flujo de datos .
Un ejemplo común de computación de flujo de datos, aunque implementado en computadoras de flujo de control, es la hoja de cálculo (desde Visicalc y Multiplan a Excel).
Las redes neuronales también pertenecen a esta categoría.
FPGA son otro ejemplo de arquitectura de flujo de datos. Están programados con lenguajes de descripción de hardware como VHDL .
fuente
Harvard Architecture generalmente solo se usa en microprocesadores integrados donde el programa se almacena en la memoria eeprom integrada. El único que probablemente verá es un Atmel AVR como se usa en el Arduino
fuente
Cuando lo programe: modifique una región de memoria y luego salte allí y ejecútela.
Si es Havard no puedes hacerlo.
fuente