Transputers: una revolución de los sistemas multiprocesador que no sucedió / Sudo Null IT News

A principios de los años 80, como muchas veces en años posteriores, se creía que los procesadores convencionales habían llegado al límite de su rendimiento. Entonces, al menos, existían todos los requisitos previos para ello: las tecnologías disponibles en ese momento ya no permitían colocar más circuitos lógicos en un chip. Las computadoras CISC tradicionales se estaban acercando al límite de sus capacidades informáticas y no estaba claro si podrían superarlo. Fue entonces cuando nacieron las transputadoras, chips con una arquitectura fundamentalmente nueva, que inmediatamente fue considerada un avance científico y técnico, un desarrollo revolucionario y el futuro de la tecnología informática. Nuestra historia de hoy trata sobre los propios transputadores y cómo se desarrolló su destino.

Desarrolladores

El inventor de los transordenadores es la empresa británica INMOS, cuya sede se encontraba en la bella ciudad de Bristol. La empresa fue fundada en 1978 como parte de los esfuerzos del gobierno británico para desarrollar la industria nacional de semiconductores. El gobierno, a través de la Junta Nacional de Empresas (NEB), proporcionó £50 millones en inversiones consideradas una medida estratégica para garantizar que el Reino Unido siga siendo competitivo en la industria electrónica mundial en rápido crecimiento. El principal objetivo de los padres fundadores, Ian Barron, Richard Petritz y Paul Schroeder, era desafiar el dominio de los fabricantes estadounidenses y japoneses en el mercado británico de semiconductores.

Ian Marchant Barrónun ingeniero con experiencia en arquitecturas informáticas, se convirtió en el principal impulsor de INMOS. Anteriormente, trabajó para Elliott Brothers y Computer Technology Limited, donde desarrolló una computadora de transistores. Elliot 803 y una computadora de 16 bits construida con lógica de emisor acoplado Modular uno. El concepto INMOS se basó en el procesamiento paralelo, un enfoque que Barron creía que revolucionaría la informática al superar las limitaciones del procesamiento secuencial tradicional en las arquitecturas de procesadores existentes. Richard Petritz, uno de los fundadores de la empresa, era un experimentado experto en semiconductores. Aportó una valiosa experiencia de su trabajo en RCA y General Electric, que fue muy útil en proyectos INMOS posteriores.

Los primeros productos INMOS fueron chips de memoria de acceso aleatorio estáticos, seguidos de RAM dinámica y EEPROM. Pero el principal desarrollo de la empresa fue el transputador, que la convirtió en uno de los líderes del mercado británico de fabricantes de semiconductores.

Nacimiento del transordenador

Dado que las capacidades técnicas de los procesadores existentes a principios de la década de 1980 ya estaban al borde del agotamiento, se creía que la única manera de avanzar era mediante un mayor uso del paralelismo, es decir, el uso de varios procesadores que trabajarían juntos para resolver problemas simultáneamente. Las generaciones anteriores de microprocesadores no permitían este caso de uso, por lo que la industria necesitaba nuevas arquitecturas que pudieran hacerlo. El aumento de la frecuencia de reloj de los chips existentes ya no conducía a un aumento del rendimiento, lo que era especialmente crítico para aplicaciones que requerían informática de alto rendimiento. Ian Barron creía con razón que en el futuro todos los sistemas operativos soportarían el paralelismo y la multitarea.

Los transputadores desarrollados desde cero en INMOS eran microprocesadores, cada uno con su propia memoria incorporada y enlaces de comunicación en serie para intercambiar datos con otros transputadores, permitiéndoles comunicarse directamente entre sí. En teoría, esta arquitectura permitió diseñar varios sistemas, desde servidores y estaciones de trabajo con una pequeña cantidad de procesadores hasta supercomputadoras equipadas con cientos de chips de transputadora. En aquel momento, este concepto era innovador; nadie había diseñado algo así antes de INMOS.

La genialidad del transputer fue su escalabilidad, que permitió a los desarrolladores crear grandes sistemas multiprocesador interconectados para fines como la investigación científica y sistemas de control en tiempo real para diversos equipos.

Había otro factor importante: el económico: agregar más procesadores es potencialmente mucho más barato que usar un procesador más rápido. Los desarrolladores creían que el transordenador costaría sólo unos pocos dólares por unidad. Al mismo tiempo, había una gran variedad de formas de utilizar el microcircuito: por ejemplo, un transordenador podía instalarse como procesador central de una computadora personal y otro, en lugar del controlador principal de las unidades de disco, en la misma máquina. En una arquitectura de PC tradicional, las capacidades informáticas del controlador de disco estarán inactivas cuando no se acceda a la unidad o unidad de disco. Por el contrario, en un sistema de transputadores, los ciclos libres de cualquiera de estos transputers se pueden utilizar para otras tareas, lo que aumenta significativamente el rendimiento de todo el sistema.

Anatomía de un transputador.

Externamente, el transordenador no se diferenciaba mucho de otros microprocesadores de la época: una carcasa cerámica rectangular y contactos metálicos para conectar a placas de circuito impreso. El modelo más famoso, el INMOS T414, estaba empaquetado en un paquete DIL (doble en línea) de 32 pines, que era un factor de forma común para los microprocesadores en la década de 1980. Sin embargo, dentro de la carcasa del transputador se escondía una arquitectura compleja que lo distinguía de sus competidores.

Técnicamente, las transputadoras ni siquiera pueden atribuirse a microprocesadores de uso general, sino a microcontroladores, ya que tenían su propia RAM y estaban equipadas con casi todo lo necesario para su funcionamiento autónomo. En el chip se integraron un controlador de RAM e incluso un microprograma que desempeña el papel de un sistema operativo en tiempo real (RTOS). Por tanto, el transordenador fue uno de los primeros prototipos de un dispositivo System-on-Chip (SoC) que aún no existía en la naturaleza.

Cada transordenador tenía una memoria en chip que oscilaba entre 2 y 4 kilobytes, según el modelo. Esta memoria local fue muy importante para reducir la latencia de acceso a los datos y minimizar la necesidad de mantener una comunicación constante con la memoria externa. La inclusión de memoria local permitió que cada transputador trabajara en tareas de forma independiente, sin depender de RAM o buses compartidos, que a menudo se convertían en un cuello de botella en los sistemas multiprocesador.

El chip funcionaba a 20 MHz, lo que se consideraba bastante alto para la época, hasta el punto de que los diseñadores estaban muy preocupados por implementar una señal de reloj de tan alta frecuencia en la placa. Por tanto, la frecuencia del reloj externo era mucho menor: 5 MHz, y se utilizó un multiplicador para aumentarla. El núcleo del chip utilizaba cuatro fases que no se superponían y los diseñadores podían utilizar cualquier combinación de ellas. Por lo tanto, se puede decir con cierto grado de aproximación que el transputador realmente funcionó a una frecuencia de 80 MHz.

La principal herramienta para controlar la transferencia de datos era el microcódigo: los códigos de operación de instrucciones se usaban como puntos de entrada al almacenamiento de solo lectura y la información de salida de la ROM se transfería directamente a la ruta de datos. Para instrucciones de varios ciclos, el microcódigo decodificó cuatro opciones posibles para el segundo ciclo mientras la ruta de datos ejecutaba el primero. La decisión sobre cuál de estas opciones se utilizaría realmente se tomó hacia el final del primer ciclo, lo que dio como resultado un rendimiento muy alto.

La característica más singular e innovadora de los transputers eran las líneas de comunicación de hardware en serie, que se llamaban “os-links”. Cada transputador tenía cuatro enlaces de comunicaciones serie bidireccionales de alta velocidad que le permitían comunicarse directamente con otros transputadores a velocidades de datos de 5, 10 o 20 Mbit/s. Se podría conectar cualquier número de transputers a través de canales de comunicación (que podrían extenderse por decenas de metros), formando una granja de computación. Es cierto que la transferencia de datos entre transordenadores se realizaba a lo largo de una cadena, lo que inevitablemente provocaba retrasos en los sistemas grandes. Para resolver este problema, INMOS desarrolló un conmutador de latencia cero que conectaba hasta 32 transputadores (o conmutadores) a redes aún más grandes.

Las transputadoras se podían cargar desde la memoria o mediante os-link; se utilizó una salida especial del chip BootFromROM para seleccionar la fuente de arranque. Esto implicaba una instrucción de dos bytes desde la parte superior de la memoria, que normalmente volvería al código de inicio. Si el comando no se recibe cuando se aplica energía, el chip esperará para recibir datos a través de cualquier canal de red. Esto permitió la creación de dispositivos multiprocesador en los que un transordenador siempre arrancaba desde la ROM y luego comenzaba a enviar código de arranque a otros transordenadores y podía enviar códigos diferentes a diferentes chips. Por ejemplo, el controlador correspondiente se puede cargar en una computadora que funciona como controlador de disco duro o unidad de disquete en el dispositivo.

El transordenador tenía sólo tres registros de datos y un puntero de área de trabajo a una pila de memoria normal a la que se podía acceder mediante instrucciones. Esto hizo posible cambiar de contexto muy rápidamente simplemente cambiando el puntero del espacio de trabajo a la memoria utilizada por otro proceso. El conjunto de instrucciones constaba de instrucciones de ocho bits que constaban de un código de operación y nibbles de operandos. Esto convirtió al transputer en uno de los pocos procesadores comerciales con la arquitectura MISC (computadora con conjunto mínimo de instrucciones).

La computación paralela fue proporcionada por un programador que podía cambiar eficientemente entre múltiples procesos (o “hilos”), permitiendo al procesador procesar una amplia gama de tareas simultáneamente. Los procesos que esperaban comunicación se suspendían automáticamente mientras el circuito de red completaba la lectura o escritura, y este tiempo de inactividad se concedía a otros procesos. Este enfoque aceleró significativamente el chip en comparación con el software multitarea utilizado en otros sistemas.

idioma occam
Para facilitar el uso del paralelismo, INMOS desarrolló un lenguaje de programación especial para transputadores llamado Occam, que lleva el nombre de William Occam y su principio de simplicidad (la navaja de Occam). Occam se basó en el modelo CSP (Comunicación de procesos secuenciales), en el que los procesos intercambiaban mensajes a través de canales, similares a los canales de comunicación del propio transputador.

Occam permitió a los programadores definir procesos y especificar cómo interactúan entre sí, lo que permitió una computación paralela eficiente. La comunicación entre procesos basada en canales se ha convertido en una parte fundamental del lenguaje. Por ejemplo, escribir código para controladores de dispositivos se volvió trivial: incluso el programa más simple podía monitorear los puertos serie para E/S y entrar automáticamente en suspensión cuando no había actividad.

Occam ha utilizado un comportamiento determinista siempre que ha sido posible. En muchos otros sistemas, el no determinismo (donde el tiempo y el orden de ejecución de los elementos del código pueden cambiar) es una fuente importante de error y complejidad. El diseño de Occam evita esto proporcionando reglas estrictas sobre cómo interactúan los procesos. El modelo de comunicación de Occam define los procesos como entidades independientes que interactúan a través de canales. Los procesos no intercambian estados, lo que evita muchos de los errores asociados con la programación paralela, como las condiciones de carrera.

Como la mayoría de los lenguajes de programación, Occam admite la ejecución secuencial de declaraciones utilizando el operador SEQ. La secuencia de declaraciones se ejecuta en el orden en que aparecen. El paralelismo se expresa utilizando el constructo PAR. Cuando se colocan varios procesos o declaraciones en un bloque PAR, se ejecutan simultáneamente, en paralelo. La comunicación entre procesos paralelos en Occam se realiza mediante canales unidireccionales. Un proceso puede enviar datos a otro proceso a través de una tubería y el proceso receptor esperará a que lleguen los datos. A continuación se muestra un ejemplo de código en el que un proceso envía un valor a otro proceso a través de una tubería:

CHAN INT c:        -- объявляем целочисленный канал 'c' 
PAR
  c ! 42           -- Процесс 1 посылает integer-число  42 по каналу 'c'
  INT x:
  c ? x            -- Процесс 2 получает значение из 'c' и сохраняет его в переменной 'x'

Occam fue un lenguaje pionero que introdujo conceptos clave en la programación paralela que siguen siendo relevantes en la actualidad. Su énfasis en la simplicidad lo ha ayudado a convertirse en una herramienta eficaz para programar transputadores.

Decadencia de una era

A pesar de su arquitectura innovadora, los transordenadores nunca lograron un éxito comercial generalizado. Con la llegada de los procesadores multinúcleo de uso general y el creciente dominio de jugadores establecidos como Intel y Motorola, INMOS se ha convertido en un desafío para permanecer en el mercado. Además, la dificultad de programar sistemas paralelos y la naturaleza de nicho de muchas aplicaciones de transputación limitaron su uso más amplio.

En 1989, INMOS fue adquirida por SGS-Thomson (ahora STMicroelectronics) y finalmente cesó el desarrollo de transputadores. Sin embargo, el legado británico sigue vivo. Muchos de los conceptos inherentes a las transputadoras, como el paralelismo y el procesamiento distribuido, influyeron en el desarrollo de procesadores multinúcleo, chips gráficos y tecnologías modernas de computación paralela.

El artículo cuenta con el apoyo del equipo. Espacio de servidor.

Espacio de servidor – un proveedor de servicios en la nube que ofrece alquiler servidores virtuales con sistema operativo Linux y Windows en 8 centros de datos: Rusia, Bielorrusia, Kazajstán, Países Bajos, Turquía, Estados Unidos, Canadá y Brasil. Para construir una infraestructura de TI, el proveedor también ofrece: creación de redes, gateways, copias de seguridad, CDN, servicios DNS, Almacenamiento de objetos S3.

Infraestructura de TI | Duplicar el primer pago por código HABR

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *