¿Cuáles son algunas arquitecturas informáticas generales viables y potencialmente útiles que no sean las de Von Neumann?

La arquitectura de Von Neumann se centra en las instrucciones: la secuencia de instrucciones es primordial y los datos son tangenciales. Este es un punto de vista válido, pero supone implícitamente que los datos se pueden encontrar y crear más rápido que la tasa de ejecución de la instrucción. Esto solía ser cierto en algún momento, cuando los datos podían transferirse en un ciclo y los procesadores tomaban varios ciclos para una instrucción.

Este no ha sido el caso durante 2 décadas más o menos. Como resultado, los procesadores ahora razonan sobre las instrucciones. Considera un programa

x <- a + b
y <- c + d
z <- x + y

Ahora el procesador puede razonar que las entradas para la segunda instrucción no se ven afectadas por la primera instrucción, por lo que pueden recuperarse de la memoria mucho antes de lo que dicta el modelo de Von Neumann. Por otro lado, la tercera instrucción tiene que esperar a que los dos primeros escriban sus resultados en la memoria (nota: supongo que aquí se procesa estrictamente Von Neumann; digamos que los cachés no existen. Antes de 1990 en otras palabras. )

Este análisis se conoce como análisis de ‘flujo de datos’: tanto el compilador como el procesador miran las instrucciones / bloques básicos / expresiones para determinar qué cálculos son dependientes y cuáles son independientes.

El análisis de flujo de datos también es atractivo por otra razón: si tiene una computadora paralela, entonces un análisis de flujo de datos puede decirle cómo mantener ocupados sus procesadores paralelos porque encuentra actividades independientes. Por esta razón, las personas han explorado la construcción de una arquitectura de flujo de datos explícita. En particular, en el MIT se construyeron algunas máquinas reales (la J – Machine) y se escribieron muchos informes (por ejemplo, la página en mit.edu).

Dataflow tiene muchas ideas interesantes, pero la noción de que un compilador podría hacer análisis de flujo de datos en un lenguaje de programación regular ha demostrado ser una quimera completa. Por otro lado, la programación explícita del flujo de datos es muy difícil.

En pocas palabras: el flujo de datos es un diseño de máquina que es diferente de Von Neumann, y de hecho se usa internamente en su CPU diaria, simplemente no lo ve.

(Nota al margen: soy bastante parcial al flujo de datos. Vea la respuesta de Victor Eijkhout a If por alguna razón tuvimos que comenzar de nuevo y construir computadoras completamente desde cero, pero con toda la retrospectiva de las últimas décadas de computación, ¿cuáles son algunos cosas que haríamos de manera diferente? Creo que es posible tener flujo de datos en un nivel mucho más alto que solo internamente al procesador).

En general, no muchos. Como máquinas de investigación, algunas. Dudo seriamente que la mayoría de ustedes haya oído hablar de la mayoría de estas máquinas:

Manchester Dataflow Machine
El HEP de Denelcor (este es discutible, pero depende de cómo se pueda usar). Otros amigos y yo estamos teniendo discusiones sobre estas máquinas en este momento.
Oh the Tera (-1), también podría considerarse como no Von. Supuestamente había una máquina Columbia llamada no-Von, pero nunca la vi, y entré en computación paralela después de que se anunció. También se declararon máquinas no euclidianas.

El SIGMA, tratando de recordar dónde estaba U. Tokio, ETL, …
PSI (motor de inferencia perSonal) El laboratorio financiado por MITI intenta recordar el nombre …
Muchas máquinas experimentales en Japón
Máquina francesa que ejecutaba el lenguaje de flujo de datos de Lau.
Máquina óptica de Bell Labs que utilizaba fotones para contar hasta 15.

Algunas personas citarían máquinas sistólicas como el iWarp. Quizás el Paracel.

Correladores ópticos para un trabajo rápido de radar FFT.

Procesadores asociativos como los utilizados a bordo de E-2 Hawkeyes y AWACS. El STARAN

Computadoras análogas como las utilizadas por Systron-Donner en la teoría del caos temprana y otros trabajos.

Tal vez la nueva máquina cuántica de onda D podría calificar.

Dejo de lado quizás algunas máquinas que son de naturaleza clasificada. Creo que la mayoría de los LISP eran básicos de von Neumann (el Cray-1 era una máquina LISP más rápida (tesis doctoral de Gabriel) que cualquiera de las llamadas máquinas LISP), por lo que no tengo idea de por qué escogiste LISP.

En el nivel más bajo, la mayoría de las computadoras actuales no usan una arquitectura von Neumann: si hay cachés I y D y rutas de datos separadas, el núcleo es en realidad Harvard. Sin embargo, esas memorias caché a menudo están respaldadas por un único espacio de memoria plana, de modo que para el usuario parecen ser von Neumann,

Sin embargo, algunos microcontroladores especializados utilizados para sistemas integrados utilizan arquitecturas de Harvard. Por lo general, se ejecutan desde memorias en chip, lo que permite memorias I y D separadas con el consiguiente aumento del rendimiento al mantener separados los buses de las dos memorias, lo que permite realizar una búsqueda de instrucciones y un acceso a datos al mismo tiempo.

Los procesadores de brazo, los procesadores x86 son algunos ejemplos destacados donde los datos y las insyrucciones están en diferentes memorias.

Todos ellos, porque no existe la arquitectura von Neumann. Von Neumann nunca diseñó nada, debería ser la arquitectura Mauchly-Eckert. Von Neumann esencialmente robó las ideas de John Mauchly y Prester Eckert que desarrollaron con el ENIAC. Von Neumann se atribuyó el trabajo durante la construcción en el EDVAC, Mauchly y Eckert no pudieron hacer nada porque el trabajo estaba clasificado.

Casi todos los procesadores DSP (es decir, la capa 1 PHY en teléfonos celulares, WiFi, cable módem, etc.) usan Harvard, no Von Neumann.

Como dice Alec Cawley. en el mundo real, casi todos los procesadores separan I y D para cachés, por lo que son realmente Harvard, incluso si “se parecen” a Von Neumann

La máquina de reducción de gráficos paralelos ALICE.

Está bastante lejos de cualquier aplicación práctica del mundo real en este momento, pero IBM está trabajando en un proyecto llamado SyNAPSE que utiliza chips neurosinápticos e imita el cerebro y las neuronas en general para su arquitectura.

Muy poco, VN tiene una gran ventaja en simplicidad y precio. Hay algunos nichos como DSP rápido y chips gráficos donde TIENEN que ir a separar datos y memorias de instrucciones, a veces porque tiene que haber una ruta directa a la memoria de datos desde algún dispositivo externo.