El procesador de elementos heterogéneos ( HEP ) fue introducido por Denelcor, Inc. en 1982. El arquitecto del HEP fue Burton Smith . La máquina fue diseñada para resolver problemas de dinámica de fluidos para el Laboratorio de Investigación Balística . [1] Un sistema HEP, como su nombre lo indica, se ensambló a partir de muchos componentes heterogéneos : procesadores , módulos de memoria de datos y módulos de E / S. Los componentes se conectaron a través de una red conmutada .
Un solo procesador, llamado PEM, en un sistema HEP (se podían conectar hasta dieciséis PEM) era bastante poco convencional; a través de una "cola de palabra de estado del programa (PSW)", se pueden mantener hasta cincuenta procesos en el hardware a la vez. El sistema más grande jamás entregado tenía 4 PEM. La canalización de instrucciones de ocho etapas permitió que las instrucciones de ocho procesos diferentes procedieran a la vez. De hecho, solo se permitió que una instrucción de un proceso dado estuviera presente en la canalización en cualquier momento. Por lo tanto, el rendimiento total del procesador de 10 MIPS solo se puede lograr cuando hay ocho o más procesos activos; ningún proceso por sí solo podría lograr un rendimiento superior a 1,25 MIPS. Este tipo de procesamiento de subprocesos múltiples clasifica al HEP como un procesador de barril . La implementación de hardware del HEP PEM fue lógica de emisor acoplado .
Los procesos se clasificaron como a nivel de usuario o a nivel de supervisor. Los procesos a nivel de usuario podrían crear procesos a nivel de supervisor, que se utilizaron para administrar procesos a nivel de usuario y realizar E / S. Se requirió que los procesos de la misma clase se agruparan en una de siete tareas de usuario y siete tareas de supervisor.
Cada procesador, además de la cola PSW y la canalización de instrucciones, contenía memoria de instrucciones, 2048 registros de propósito general de 64 bits y 4096 registros constantes. Los registros constantes se diferenciaron por el hecho de que solo los procesos supervisores podían modificar su contenido. Los procesadores en sí no contenían memoria de datos; en cambio, los módulos de memoria de datos podrían conectarse por separado a la red conmutada.
La memoria HEP constaba de una memoria de instrucciones completamente separada (hasta 128 MB) y una memoria de datos (hasta 1 GB). Los usuarios vieron palabras de 64 bits, pero en realidad, las palabras de memoria de datos eran de 72 bits y los bits adicionales se usaban para el estado, consulte el siguiente párrafo, paridad, etiquetado y otros usos.
El HEP implementó un tipo de exclusión mutua en el que todos los registros y ubicaciones en la memoria de datos tenían estados asociados "vacío" y "lleno". La lectura desde una ubicación establece el estado en "vacío", mientras que la escritura establece el estado en "lleno". Un programador podría permitir que los procesos se detengan después de intentar leer desde una ubicación vacía o escribir en una ubicación completa, haciendo cumplir las secciones críticas.
La red conmutada entre elementos se parecía, en muchos sentidos, a una red informática moderna. En la red había conjuntos de nodos, cada uno de los cuales tenía tres enlaces. Cuando un paquete llegó a un nodo, consultó una tabla de enrutamiento e intentó reenviar el paquete más cerca de su destino. Si un nodo se congestionaba, los paquetes entrantes se pasaban sin enrutamiento. Los paquetes tratados de esa manera aumentaron su nivel de prioridad; cuando varios paquetes compiten por un solo nodo, un paquete con un nivel de prioridad más alto se enruta antes que otros con niveles de prioridad más bajos.
Otro componente de la red conmutada era el sistema sO, con su propia memoria y muchos buses DEC UNIBUS individuales conectados para discos y otros periféricos. El sistema también tenía la capacidad de guardar los bits llenos / vacíos que normalmente no son visibles directamente. Se demostró que el rendimiento inicial del sistema IO era lamentablemente inadecuado debido a la alta latencia en el inicio de las operaciones IO. Ron Natalie (de BRL) y Burton Smith diseñaron un nuevo sistema con repuestos en servilletas en un asador local y lo pusieron en funcionamiento en el transcurso de la semana siguiente.
El lenguaje de programación de aplicaciones principal del HEP era una variante exclusiva de Fortran . En el tiempo C , se agregaron Pascal y SISAL . La sintaxis de las variables de datos que utilizan bits completamente vacíos precedidos de '$' antes de su nombre. Entonces, 'A' nombraría una variable local, pero $ A sería una variable de bloqueo lleno-vacío. Por lo tanto, fue posible el bloqueo de la aplicación. Problemático, la falla en '$' podría introducir imprecisiones numéricas involuntarias.
El primer sistema operativo HEP fue HEPOS. Mike Muuss estuvo involucrado en un puerto Unix para el Laboratorio de Investigación Balística. HEPOS no era un sistema operativo similar a Unix.
Aunque se sabía que tenía un bajo costo-rendimiento, el HEP recibió atención debido a lo que eran, en ese momento, varias características revolucionarias. El HEP tenía el rendimiento de una computadora de clase CDC 7600 en la era Cray-1 . Los sistemas HEP fueron adquiridos por el Laboratorio de Investigación Balística (cuatro sistemas PEM), Los Álamos , el Laboratorio Nacional Argonne (PEM único), la Agencia de Seguridad Nacional y Messerschmitt de Alemania (tres sistemas PEMS. Denelcor también entregó dos sistemas PEM a la Universidad of Georgia a cambio de que proporcionaran asistencia con el software (el sistema también se había ofrecido a la Universidad de Maryland). [2] Messerschmitt fue el único cliente que puso el HEP en uso para aplicaciones "reales"; los otros clientes lo usaron para experimentar con algoritmos paralelos. El sistema BRL se utilizó para preparar una película utilizando el software BRL-CAD como su única aplicación real. Se iniciaron diseños más rápidos y más grandes para HEP-2 y HEP-3, pero nunca se completaron. El concepto arquitectónico se materializaría más tarde con el nombre en clave Horizon.
Ver también
Referencias
- ^ "La historia de la informática en BRL" .
- ^ Padua, David (2011). Enciclopedia de Computación Paralela, Volumen 4 . Nueva York, NY : Springer Verlag.