¿Cómo puedo saber si mi computadora es arquitectura Harvard o von Neumann?

12

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?

Niklas
fuente
3
Usos modernos de la arquitectura de Harvard . Todo lo demás en uso típico es Von Neumann.
Robert Harvey
1
Si bien los sistemas modernos tampoco son estrictamente von-Neumann. pensando en GPU y todas esas otras cosas :)
johannes
1
Hay otros tipos de arquitectura. La arquitectura de flujo de datos es mi favorita. Pero es poco probable que lo veas en la naturaleza.
Martin York
1
A menos que esté haciendo algo realmente muy bajo, no estoy seguro de por qué necesitaría saber la diferencia (¿está escribiendo un código auto modificable?). Aunque la mayoría de las máquinas modernas son von-Neumann, el sistema operativo generalmente marca las páginas de códigos de manera diferente a las páginas de datos para evitar modificaciones accidentales (maliciosas) del código.
Martin York

Respuestas:

13

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).

Ross Patterson
fuente
3
Esto seguramente depende de la definición. Si reemplaza la dicotomía bastante obsoleta por una tricotomía , la mayoría de las computadoras de uso general actuales son Arquitectura Harvard modificada.
maaartinus
3
Muchos microcontroladores integrados utilizan arquitecturas de Harvard. Por lo general, ejecutan código desde algún tipo de ROM o memoria flash, y se ganaría poco utilizando un bus común para el código y los datos.
supercat
6

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).

¿Podría haber otra arquitectura o son estas arquitecturas las únicas conocidas?

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.

maaartinus
fuente
4

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 .

Mouviciel
fuente
3

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

Martin Beckett
fuente
1

Cuando lo programe: modifique una región de memoria y luego salte allí y ejecútela.

Si es Havard no puedes hacerlo.

Usuario
fuente
O podría ser una máquina Von Neumann con un administrador de memoria W ^ X.