Articulo de referencia

HLH Orión

La serie Orion consistía en una serie de superminicomputadoras de 32 bits diseñadas y producidas en la década de 1980 por High Level Hardware Limited ( HLH ), una empresa con se...

La serie Orion consistía en una serie de superminicomputadoras de 32 bits diseñadas y producidas en la década de 1980 por High Level Hardware Limited ( HLH ), una empresa con sede en Oxford , Reino Unido .

La empresa produjo cuatro versiones de la máquina:

  • El Orion original , a veces denominado "Orion microcodificable".
  • El Orion 1/05 , en el que la CPU microcodificable fue reemplazada por el procesador Fairchild Clipper RISC C-100, mucho más rápido, que proporcionaba aproximadamente 5,5 MIPS de rendimiento de enteros y 1 Mflop de rendimiento de punto flotante de doble precisión.
  • El Orion 1/07 ofrecía un rendimiento aproximadamente un 33% superior al del 1/05 (7,3 MIPS y 1,33 Mflops).
  • El Orion 1/10 se basaba en una generación posterior del C-300 Clipper de la División de Procesadores Avanzados de Intergraph Corporation, que requería una refrigeración intensiva. El Orion 1/10 ofrecía una mejora adicional del 30 % en operaciones de punto flotante de precisión simple y entera , y una mejora de más del 150 % en operaciones de punto flotante de precisión doble (10 MIPS y 3 Mflops).

Las cuatro máquinas utilizaban el mismo subsistema de entrada/salida.

Fondo

High Level Hardware fue una empresa británica independiente fundada a principios de 1982 por David G. Small y Timothy B. Robinson. David Small había sido accionista fundador y director de Research Machines Limited, con sede en Oxford . Ambos socios habían sido miembros destacados del Grupo de Proyectos Especiales de Research Machines. En 1984, como resultado de esa investigación, High Level Hardware lanzó Orion, un superminiordenador UNIX de alto rendimiento y con capacidad de microprogramación , diseñado especialmente para aplicaciones científicas como el modelado matemático , la inteligencia artificial y el álgebra simbólica .

En abril de 1987, High Level Hardware presentó una serie de ordenadores Orion basados ​​en el procesador Fairchild Clipper , pero abandonó el mercado del hardware a finales de 1989 para concentrarse en las ventas de ordenadores Apple Macintosh de gama alta .

Orión microcodificable

El Orion original empleaba una arquitectura de procesador basada en dispositivos de la serie Am2900 . Esta CPU era novedosa porque su microcódigo era modificable; es decir, su conjunto de instrucciones podía redefinirse. Esta funcionalidad se utilizó para personalizar algunos Orion con conjuntos de instrucciones optimizados para ejecutar los lenguajes de programación Occam y LISP [ 1 ] o incluso para calcular fractales. [ 2 ] [ 3 ]

La unidad central de procesamiento

La CPU constaba de una ALU basada en el microprocesador Am2901 de segmentación de bits . A esta se le añadió una unidad de manipulación de bytes, capaz de realizar las operaciones de desplazamiento, rotación y enmascaramiento necesarias para el manejo de datos de ocho y dieciséis bits. Se proporcionó lógica adicional para admitir comparaciones de complemento a dos con y sin signo en una sola operación, aritmética de precisión múltiple y normalización de punto flotante . La mayoría de las operaciones podían realizarse en 150 ns; sin embargo, el tiempo de ciclo era variable, de 125 ns a 200 ns, bajo el control del microprograma, lo que permitía optimizar la temporización. Un microsecuenciador, basado en el Am2910, dirigía el flujo de control a través del microprograma. Podía realizar bifurcaciones, bucles y llamadas a subrutinas, la mayoría de las cuales podían estar condicionadas a diversas condiciones de estado de la CPU.

El decodificador de instrucciones de la CPU decodificaba instrucciones a nivel de máquina (a diferencia de las microinstrucciones). Esto se lograba mediante tablas de mapeo almacenadas en una memoria RAM rápida con verificación de paridad, que asignaban códigos de operación de un byte a direcciones de microinstrucciones. El control se transfería a estas direcciones mediante una operación de secuenciador especial, que se ejecutaba en paralelo con otras funciones de la CPU . Por lo tanto, la decodificación de instrucciones se superponía a la ejecución de las mismas.

Se proporcionó un mecanismo de escape para permitir que el conjunto de instrucciones se expandiera más allá de las 256 entradas seleccionadas por cualquier código de operación. Existía otro mecanismo para alternar entre varios conjuntos de tablas de despacho, lo que permitía que la máquina admitiera múltiples conjuntos de instrucciones simultáneamente. Mediante este mecanismo, se podía seleccionar un conjunto de instrucciones diferente cada vez que se producía un cambio de contexto. Este mecanismo también se utilizó para implementar instrucciones privilegiadas, perfilado dinámico (para la monitorización del rendimiento) y múltiples modos de CPU (por ejemplo, Usuario y Núcleo ).

La función de la memoria caché , independiente de la memoria principal, era almacenar la parte superior de la pila de evaluación para un lenguaje orientado a procedimientos. La caché tenía una latencia de dos ciclos, tras la cual podía entregar una palabra por ciclo, y estaba dividida en varias páginas, cada una con 512 palabras de 32 bits con protección de paridad. Las páginas se agrupaban en pares, con un máximo arquitectónico de 16 pares. La máquina original implementaba dos pares. El segundo miembro de cada par se utilizaba normalmente como registros rápidos adicionales y almacenamiento temporal sin afectar a la página de la pila. Los nueve bits inferiores del registro de la CPU, que direccionaban la caché, se implementaban con contadores y permitían operaciones de incremento y decremento (push y pop), así como acceso aleatorio.

El almacén de control

La memoria de control se construyó utilizando RAM estáticas de alta velocidad . Normalmente, esta se cargaba durante el arranque, lo que permitía que la máquina fuera totalmente microprogramable por el usuario. El tiempo de ciclo de la memoria de control era de 125 ns, igual al ciclo de CPU más rápido. La arquitectura permitía hasta 32 Kwords (longitud de palabra de 64 bits) de memoria de control; sin embargo, debido a las limitaciones de la tecnología de memoria, la implementación original permitía un máximo de 8 Kwords. La configuración estándar tenía 4 Kwords en una sola placa de circuito. Se podían instalar dos de estas placas. Se proporcionaba comprobación de paridad. Para lograr la velocidad requerida a un coste razonable, se empleó una arquitectura de segmentación de dos niveles alrededor de la memoria de control. Posteriormente, se implementó una placa de 16 Kwords, lo que proporcionó un tamaño máximo de memoria de control de 32 Kwords.

Memoria principal

La memoria principal estaba organizada en palabras de 32 bits con entrelazado bidireccional, lo que permitía recuperar o almacenar 64 bits de datos en una sola operación. En funcionamiento normal, se accedía a la memoria principal mediante una unidad de gestión de memoria virtual.

En la implementación original, cada módulo de memoria principal contenía 0,5 Mbytes de almacenamiento con protección de paridad, construidos con memorias RAM MOS dinámicas de 64K. El tiempo de ciclo de acceso aleatorio era de 500 ns por palabra de 32 bits, pero las transferencias de varias palabras, por ejemplo, hacia y desde la caché, arrojaban un tiempo de ciclo efectivo de 250 ns por palabra de 32 bits (16 Mbytes por segundo). Los módulos de memoria decodificaban direcciones de palabras físicas de 26 bits, y dentro de este límite, la capacidad total de memoria estaba restringida únicamente por el número de ranuras de bus del sistema disponibles; dependiendo de la configuración de E/S del sistema, se podían instalar hasta 10 Mbytes de memoria física. Una implementación posterior del módulo de memoria aumentó el tamaño a 2 MB utilizando memorias RAM de 256K.

La traducción de direcciones lógicas a físicas se realizaba mediante un conjunto de tablas de traducción de direcciones. Cada proceso tenía acceso a tres regiones de memoria extensibles de forma independiente, utilizadas normalmente para el programa, el montón y la pila. Una cuarta región solía estar reservada para el sistema operativo. Las tablas también contenían un conjunto de bits de derechos para cada página de memoria, lo que proporcionaba protección total y permitía la implementación de memoria virtual paginada bajo demanda. Las tablas de traducción se almacenaban en caché en la CPU, lo que, en la mayoría de los casos, resultaba en una sobrecarga de tan solo una microinstrucción al realizar la traducción de direcciones. El tamaño de página, fijo por el hardware, era de 4 Kbytes. Cada región lógica podía tener hasta 256 Mbytes.

El subsistema de entrada/salida

Los subsistemas de E/S de Orion incluían varios microordenadores conectados para realizar tareas de bajo nivel, como ejecutar diagnósticos y gestionar terminales y discos.

El microordenador de diagnóstico (basado en el Zilog Z80 ) estaba integrado en la CPU. Sus funciones incluían realizar una comprobación de confianza del sistema al encenderlo, arrancar la CPU y tomar el control si se detectaba un error de paridad irrecuperable en la memoria de control. También podía utilizarse para cargar nuevo microcódigo dinámicamente mientras la máquina estaba en funcionamiento. Se proporcionaba una interfaz RS-232C a la que se podía conectar un terminal. De esta forma, se podían ejecutar diagnósticos exhaustivos junto con un microcódigo especial para realizar análisis de fallos en caso de avería del sistema. Por lo general, los problemas podían aislarse en uno o dos circuitos integrados.

Uno o más canales de E/S inteligentes controlaban la actividad de los periféricos. Cada uno de ellos incluía un microordenador completo basado en el Z80, que realizaba funciones de control y mantenimiento. Las transferencias de datos hacia y desde los dispositivos periféricos se realizaban mediante una ruta de acceso directo a memoria (DMA) construida con microprocesadores de división de bits Am2901. Esto permitía aprovechar al máximo el rendimiento del sistema de memoria Orion y del dispositivo periférico, y el microordenador podía corregir los errores de E/S. El software del Orion se comunicaba con el microordenador mediante un protocolo de paso de mensajes de alto nivel.

Sistema operativo

El sistema operativo para el microprocesador Orion era OTS (Orion Time Sharing) versión 1.x, una adaptación del sistema operativo UNIX 4.1BSD .

Los sistemas Orion con procesador Clipper ejecutaban OTS versión 2.x, una adaptación de UNIX 4.2BSD con algunas adiciones. Esto no era particularmente fiable ni seguro, y tendía a "olvidar" los ID de usuario de los procesos, dejando aleatoriamente procesos de usuario ejecutándose como root .

HLH también produjo un terminal gráfico para el Orion llamado StarPoint , al que adaptaron el sistema X Window .

HLH Oriones en la Universidad de Kent

La serie Orion fue moderadamente popular entre los departamentos de ciencias de la computación de las universidades británicas, incluyendo Westfield College, Londres , [ 4 ] Bath , Edimburgo , Heriot-Watt , Kingston Polytechnic , Kent , Southampton , Warwick , York , King's College, Londres . Una configuración típica multiusuario de Orion habría tenido 8 MB de RAM , un disco duro SMD (por ejemplo, un Kennedy de 168 MB o un Fujitsu Eagle de 434 MB ), una unidad de cinta QIC -24 de 60 MB y de 8 a 32 puertos de terminal RS-232 .

Referencias

  1. "Re: Orión occam" . 10 de febrero de 1988. Archivado del original el 21 de mayo de 2003.
  2. "Definición del código de operación de Orion para el mapeo de Mandelbrot" . Archivado del original el 10 de febrero de 1999.
  3. York, Universidad de. "Superminicomputadora Orion" . Universidad de York . Consultado el 5 de enero de 2026 .
  4. "Hardware de alta tecnología, hecho a mano en casa" . Archivado del original el 10 de mayo de 2017.

Bibliografía

  • Orion, un ordenador personal de alto rendimiento: folleto de ventas producido por High Level Hardware Limited.
  • Orion 1/05 – Folleto de ventas producido por High Level Hardware Limited.
  • Guía de configuración de Orion: información del producto elaborada por High Level Hardware Limited.
  • Fiedler, S. "Buscando alto rendimiento con Orion." Unique, The UNIX System Information Source. 7.9 (1989): 11–12. Impreso.
  • Fotografía de un HLH Orion en la Universidad de Bath.
  • Un Orion original actualizado a un Orion 1/05 en la colección de computadoras de Jim Austin.