
El transputer es una serie de microprocesadores de la década de 1980, diseñados para la computación paralela . Para ello, cada transputer contaba con su propia memoria integrada y enlaces de comunicación serial para intercambiar datos con otros transputers. Fueron diseñados y fabricados por Inmos , una empresa de semiconductores con sede en Bristol , Reino Unido . [ 1 ]
Durante un tiempo a finales de la década de 1980, muchos [ 2 ] consideraron que el transputer sería el próximo gran diseño para el futuro de la computación. Si bien el transputer no cumplió con esta expectativa, su arquitectura fue muy influyente al provocar nuevas ideas en la arquitectura de computadoras , varias de las cuales han resurgido en diferentes formas en los sistemas modernos. [ 3 ]
Fondo
A principios de la década de 1980, las unidades centrales de procesamiento (CPU) convencionales parecían haber alcanzado su límite de rendimiento. Hasta entonces, las dificultades de fabricación limitaban la cantidad de circuitos que podían caber en un chip. Las continuas mejoras en el proceso de fabricación habían eliminado en gran medida esta restricción. En una década, los chips podían albergar más circuitos de los que los diseñadores sabían cómo utilizar. Los diseños tradicionales de computadoras con conjuntos de instrucciones complejos (CISC) estaban alcanzando una meseta de rendimiento, y no estaba claro que pudiera superarse. [ 4 ]
Parecía que la única solución era aumentar el uso del paralelismo, es decir, el uso de varias CPU que trabajaran juntas para resolver varias tareas simultáneamente. Esto dependía de que dichas máquinas pudieran ejecutar varias tareas a la vez, un proceso denominado multitarea . Si bien esto había sido generalmente demasiado difícil de manejar para los diseños de microprocesadores anteriores, los diseños más recientes lograron hacerlo de manera efectiva. Era evidente que, en el futuro, esta sería una característica de todos los sistemas operativos .
Un efecto secundario de la mayoría de los diseños multitarea es que a menudo permiten que los procesos se ejecuten en CPU físicamente diferentes, en cuyo caso se denomina multiprocesamiento . Una CPU de bajo costo diseñada para el multiprocesamiento podría permitir aumentar la velocidad de una máquina añadiendo más CPU, potencialmente de forma mucho más económica que utilizando un único diseño de CPU más rápido.
Los primeros diseños de transputers fueron obra del científico informático David May y del consultor de telecomunicaciones Robert Milne. En 1990, May recibió un doctorado honoris causa en ciencias por la Universidad de Southampton , seguido en 1991 por su elección como miembro de la Royal Society y la concesión de la Medalla Patterson del Instituto de Física en 1992. Tony Fuge , entonces ingeniero jefe de Inmos, recibió el Premio Príncipe Felipe de Diseño en 1987 por su trabajo en el transputer T414. [ 5 ]
Diseño
El transputer fue el primer microprocesador de propósito general diseñado específicamente para su uso en sistemas de computación paralela . El objetivo era producir una familia de chips con diferentes niveles de potencia y costo que pudieran conectarse entre sí para formar una computadora paralela completa. El nombre, derivado de " transistor " y "computer " [6], se seleccionó para indicar el papel que desempeñarían los transputers individuales: varios de ellos se usarían como bloques de construcción básicos en un sistema integrado más grande, al igual que los transistores se habían usado en diseños anteriores.
Originalmente, el plan era que el transputer costara solo unos pocos dólares por unidad. Inmos preveía que se utilizarían para prácticamente todo, desde funcionar como la CPU principal de una computadora hasta actuar como controlador de canales para unidades de disco en la misma máquina. En una máquina tradicional, la capacidad de procesamiento de un controlador de disco, por ejemplo, estaría inactiva cuando no se accediera al disco. En cambio, en un sistema transputer, los ciclos libres de cualquiera de estos transputers podrían utilizarse para otras tareas, aumentando considerablemente el rendimiento general de las máquinas.
El transputer tenía una gran memoria integrada, lo que lo convertía esencialmente en un procesador en memoria . Incluso un solo transputer contaba con todos los circuitos necesarios para funcionar de forma autónoma, una característica más común en los microcontroladores . El objetivo era permitir la conexión de los transputers de la forma más sencilla posible, sin necesidad de un bus complejo ni de una placa base . Solo se requería alimentación y una señal de reloj simple: memoria de acceso aleatorio (RAM), un controlador de RAM, soporte para bus e incluso un sistema operativo en tiempo real (RTOS) estaban integrados. De esta forma, los últimos transputers fueron micronúcleos reutilizables (RMC) individuales en el entonces incipiente mercado de los SoC .
Arquitectura
El transputer original empleaba una arquitectura muy simple y bastante inusual para lograr un alto rendimiento en un área reducida. Utilizaba microcódigo como método principal para controlar la ruta de datos, pero a diferencia de otros diseños de la época, muchas instrucciones se ejecutaban en un solo ciclo. Los códigos de operación de las instrucciones se utilizaban como puntos de entrada a la memoria de solo lectura (ROM) del microcódigo, y las salidas de la ROM se enviaban directamente a la ruta de datos. Para las instrucciones de varios ciclos, mientras la ruta de datos realizaba el primer ciclo, el microcódigo decodificaba cuatro opciones posibles para el segundo ciclo. La decisión sobre cuál de estas opciones se utilizaría realmente se podía tomar cerca del final del primer ciclo. Esto permitía un funcionamiento muy rápido manteniendo la arquitectura genérica. [ 7 ]
La frecuencia de reloj de 20 MHz era bastante alta para la época, y los diseñadores estaban muy preocupados por la viabilidad de distribuir una señal de reloj tan rápida en una placa. Se utilizó un reloj externo más lento de 5 MHz, que se multiplicó hasta alcanzar la frecuencia interna necesaria mediante un bucle de enganche de fase (PLL). El reloj interno tenía cuatro fases no superpuestas , y los diseñadores podían usar cualquier combinación de estas, por lo que podría decirse que el transputer funcionaba a 80 MHz. Se empleó lógica dinámica en muchas partes del diseño para reducir el área y aumentar la velocidad. Desafortunadamente, estos métodos son difíciles de combinar con las pruebas de escaneo de generación automática de patrones de prueba, por lo que cayeron en desuso en diseños posteriores.
Prentice-Hall publicó un libro [ 8 ] sobre los principios generales del transputer.
Campo de golf
El diseño básico del transputer incluía enlaces seriales conocidos como "os-link" [ 9 ] [ 10 ] que le permitían comunicarse con hasta cuatro transputers más, cada uno a 5, 10 o 20 Mbit/s, lo cual era muy rápido para la década de 1980. Cualquier número de transputers podía conectarse entre sí a través de enlaces (que podían alcanzar decenas de metros mediante cableado diferencial) para formar una granja de computación . Una hipotética computadora de escritorio podría tener dos de los transputers de "gama baja" manejando tareas de entrada/salida (E/S) en algunas de sus líneas seriales (conectadas al hardware apropiado) mientras se comunicaban con uno de sus primos más grandes que actuaba como CPU en otra.
Existían limitaciones en el tamaño de los sistemas que podían construirse de esta manera. Dado que cada transputer estaba conectado a otro en una configuración punto a punto fija, el envío de mensajes a un transputer más distante requería que cada chip de la línea los retransmitiera. Esto introducía un retardo en cada salto a través del enlace, lo que provocaba largas demoras en redes extensas. Para solucionar este problema, Inmos también proporcionó un conmutador de retardo cero que conectaba hasta 32 transputers (o conmutadores) en redes aún mayores.
Arranque
Los transputers podían arrancar desde la memoria, como la mayoría de los ordenadores, pero también podían arrancar a través de sus enlaces de red . Un pin especial en los chips, BootFromROM, indicaba qué método debía utilizar. Si BootFromROM estaba activado al reiniciar el chip, comenzaba a procesar la instrucción dos bytes por debajo de la parte superior de la memoria, que normalmente se utilizaba para realizar un salto hacia atrás en el código de arranque. Si este pin no estaba activado, el chip esperaba a recibir bytes a través de cualquier enlace de red. El primer byte recibido indicaba la longitud del código siguiente. Los bytes subsiguientes se copiaban en la memoria baja y, una vez recibidos, se saltaba a la instrucción correspondiente.
El concepto general del sistema consistía en que un transputer actuara como autoridad central para el arranque de un sistema con varios transputers conectados. El transputer seleccionado mantendría la señal BootFromROM permanentemente activada, lo que provocaría que ejecutara un proceso de arranque desde la ROM al iniciar el sistema. Los demás transputers mantendrían la señal BootFromROM en estado bajo y simplemente esperarían. El cargador arrancaría el transputer central, que a su vez comenzaría a enviar código de arranque a los demás transputers de la red, pudiendo personalizar dicho código para cada uno; por ejemplo, enviando un controlador de dispositivo al transputer conectado a los discos duros.
El sistema también incluía las longitudes de código «especiales» 0 y 1, reservadas para PEEK y POKE . Esto permitía inspeccionar y modificar la RAM en un transputer sin arrancar. Tras un peek, seguido de una dirección de memoria, o un poke, con una dirección y una palabra de datos, el transputer volvía a esperar el arranque. Este mecanismo se utilizaba generalmente para la depuración.
Planificador
Se añadió un circuito programado para gestionar el tráfico a través de los enlaces. Los procesos que esperaban comunicaciones se pausaban automáticamente mientras el circuito de red finalizaba sus lecturas o escrituras. Otros procesos que se ejecutaban en el transputer disponían entonces de ese tiempo de procesamiento. Incluía dos niveles de prioridad para mejorar el funcionamiento en tiempo real y en multiprocesadores . El mismo sistema lógico se utilizaba para la comunicación entre programas que se ejecutaban en un transputer, implementado como enlaces de red virtuales en memoria. De este modo, los programas que solicitaban cualquier entrada o salida se pausaban automáticamente mientras se completaba la operación, una tarea que normalmente requería un sistema operativo como gestor del hardware. Los sistemas operativos del transputer no necesitaban gestionar la programación; el chip podía considerarse como un sistema operativo integrado.
Conjunto de instrucciones
Para incluir toda esta función en un solo chip, la lógica central del transputer era más simple que la de la mayoría de las CPU. Si bien algunos lo han llamado computadora de conjunto de instrucciones reducido (RISC) debido a su naturaleza bastante dispersa, y porque esa era entonces una palabra de moda deseable en el marketing , estaba fuertemente microcodificado , tenía un conjunto limitado de registros e instrucciones complejas de memoria a memoria, todo lo cual lo ubica firmemente en el grupo CISC . A diferencia de las CPU RISC de carga/almacenamiento con muchos registros , el transputer tenía solo tres registros de datos, que se comportaban como una pila. Además, un puntero de espacio de trabajo apuntaba a una pila de memoria convencional, fácilmente accesible a través de las instrucciones Load Localy Store Local. Esto permitía un cambio de contexto muy rápido simplemente cambiando el puntero de espacio de trabajo a la memoria utilizada por otro proceso (un método utilizado en varios diseños contemporáneos, como el TMS9900 ). El contenido de la pila de tres registros no se conservaba más allá de ciertas instrucciones, como Jump, cuando el transputer podía hacer un cambio de contexto.
El conjunto de instrucciones del transputer consistía en instrucciones de 8 bits ensambladas a partir de nibbles de código de operación y operando . El nibble superior contenía los 16 posibles códigos de instrucción primaria, lo que lo convertía en uno de los pocos ordenadores con un conjunto mínimo de instrucciones comercializados . El nibble inferior contenía el único operando constante inmediato, comúnmente utilizado como desplazamiento relativo al puntero del espacio de trabajo (pila de memoria). Dos instrucciones de prefijo permitían la construcción de constantes mayores anteponiendo sus nibbles inferiores a los operandos de las instrucciones subsiguientes. Se admitían instrucciones adicionales mediante el código de instrucción Operate ( ), que decodificaba el operando constante como un código de operación extendido de operando cero, lo que proporcionaba una expansión del conjunto de instrucciones casi ilimitada y sencilla a medida que se introducían nuevas implementaciones del transputer. Opr
Las 16 instrucciones "primarias" de un solo operando fueron:
Todas estas instrucciones requieren una constante, que representa un desplazamiento o una constante aritmética. Si esta constante es menor que 16, todas estas instrucciones se codifican en un byte.
Las primeras 16 instrucciones "secundarias" de operando cero (que utilizan la instrucción primaria OPR) fueron:
Desarrollo


Para facilitar la creación de prototipos, la construcción y la configuración de sistemas de múltiples transputers, Inmos introdujo el estándar TRAM (Módulo de Transputer) en 1987. Un TRAM era esencialmente una placa hija modular que comprendía un transputer y, opcionalmente, memoria externa y/o dispositivos periféricos, con conectores estandarizados sencillos que proporcionaban alimentación, enlaces de transputer, reloj y señales del sistema. Se definieron varios tamaños de TRAM, desde el tamaño básico 1 (3,66 x 1,05 pulgadas) hasta el tamaño 8 (3,66 x 8,75 pulgadas). Inmos produjo una gama de placas base TRAM para varios buses host, como Industry Standard Architecture (ISA), MicroChannel o VMEbus . Los enlaces TRAM operan a 10 Mbit/s o 20 Mbit/s. [ 11 ]
Software
Los transputers fueron diseñados para ser programados utilizando el lenguaje de programación occam , basado en el cálculo de procesos secuenciales comunicantes (CSP) . [ 12 ] El transputer fue construido específicamente para ejecutar occam , más que los diseños CISC contemporáneos fueron construidos para ejecutar lenguajes como Pascal o C. Occam admitía la concurrencia y la comunicación entre procesos o entre procesadores basada en canales como parte fundamental del lenguaje. Con el paralelismo y las comunicaciones integradas en el chip y el lenguaje interactuando directamente con él, escribir código para cosas como controladores de dispositivos se volvió trivial; incluso el código más básico podía monitorear los puertos serie para E/S y entraría automáticamente en modo de suspensión cuando no hubiera datos.
El entorno de desarrollo inicial de Occam para el transputer fue el Inmos D700 Transputer Development System (TDS). Se trataba de un entorno de desarrollo integrado poco convencional que incorporaba un editor, un compilador, un enlazador y un depurador (post mortem). El TDS era una aplicación para transputer escrita en Occam. El editor de texto del TDS destacaba por ser un editor plegable , que permitía ocultar y mostrar bloques de código para hacer más evidente su estructura. Desafortunadamente, la combinación de un lenguaje de programación desconocido y un entorno de desarrollo igualmente desconocido no contribuyó a la popularidad inicial del transputer. Posteriormente, Inmos lanzaría compiladores cruzados de Occam más convencionales, los Occam 2 Toolsets .
Posteriormente, tanto Inmos como proveedores externos lanzaron implementaciones de lenguajes de programación más populares, como C, FORTRAN , Ada , Forth y Pascal. Estas solían incluir extensiones o bibliotecas que proporcionaban, de forma menos elegante, concurrencia al estilo de Occam y comunicación basada en canales.
La falta de soporte para memoria virtual en el transputer dificultó la adaptación de las variantes más comunes del sistema operativo Unix , aunque se produjeron adaptaciones de sistemas operativos similares a Unix (como Minix e Idris de Whitesmiths ). Perihelion Software también diseñó Helios , un sistema operativo distribuido avanzado similar a Unix , específicamente para sistemas multitransputer .
Implementaciones
Los primeros transputadores se anunciaron en 1983 y se lanzaron al mercado en 1984.
En consonancia con su función como dispositivos tipo microcontrolador , incluían memoria RAM integrada y un controlador de RAM incorporado que permitía añadir más memoria sin necesidad de hardware adicional. A diferencia de otros diseños, los transputers no incluían líneas de E/S: estas debían añadirse mediante hardware conectado a los enlaces serie existentes. Contaban con una línea de «Evento», similar a la línea de interrupción de un procesador convencional. Al tratarse como un canal, un programa podía «recibir» datos del canal de eventos y continuar solo después de que la línea de eventos se activara.
Todos los transputers funcionaban con una entrada de reloj externa de 5 MHz; esta señal se multiplicaba para proporcionar la señal de reloj del procesador.
El transputer no incluía una unidad de gestión de memoria (MMU) ni un sistema de memoria virtual .
Las variantes de Transputer (excepto el modelo T9000, que fue cancelado) se pueden clasificar en tres grupos: la serie T2 de 16 bits , la serie T4 de 32 bits y la serie T8 de 32 bits con soporte para coma flotante IEEE 754 de 64 bits .
T2: 16 bits
El prototipo de transputer de 16 bits fue el S43 , que carecía del planificador y de la transferencia de bloques controlada por DMA en los enlaces. En su lanzamiento, el T212 y el M212 (este último con un controlador de disco integrado) eran las ofertas de 16 bits. El T212 estaba disponible con velocidades de reloj de procesador de 17,5 y 20 MHz. El T212 fue reemplazado por el T222 , con la RAM integrada ampliada de 2 KB a 4 KB, y, posteriormente, por el T225 . Este último añadió soporte para puntos de interrupción de depuración (mediante la extensión de la instrucción "J 0") además de algunas instrucciones adicionales del conjunto de instrucciones T800. Tanto el T222 como el T225 funcionaban a 20 MHz.
T4: 32 bits
Lanzado en octubre de 1985, el T414 empleaba el equivalente a 900.000 transistores y se fabricaba con un tamaño de característica de 1,5 micrómetros . Era un diseño de 32 bits, capaz de procesar unidades de datos de 32 bits y direccionar hasta 4 GB de memoria principal. [ 13 ] Originalmente, la primera variante de 32 bits iba a ser el T424 , pero las dificultades de fabricación hicieron que se rediseñara como el T414 con 2 KB de RAM integrada en lugar de los 4 KB previstos. El T414 estaba disponible en versiones de 15 y 20 MHz. Posteriormente, la RAM se restableció a 4 KB en el T425 (en versiones de 20, 25 y 30 MHz), que también añadió laJ 0Soporte para puntos de interrupción e instrucciones T800 adicionales. El T400 , lanzado en septiembre de 1989, era un derivado de bajo costo del T425 de 20 MHz con 2 KB y dos enlaces en lugar de cuatro, destinado al mercado de sistemas embebidos .
T8: punto flotante
El transputer T800 de segunda generación , presentado en 1987, contaba con un conjunto de instrucciones ampliado. La adición más importante fue una unidad de punto flotante (FPU) de 64 bits y tres registros adicionales para punto flotante, implementando el estándar IEEE 754-1985 . También disponía de 4 KB de RAM integrada y estaba disponible en versiones de 20 o 25 MHz. La compatibilidad con puntos de interrupción se añadió posteriormente en los modelos T801 y T805 ; el primero incorporaba buses de direcciones y datos separados para mejorar el rendimiento. El T805 también estuvo disponible más tarde en una versión de 30 MHz.
Se planeó una versión mejorada del T810 , que habría tenido más RAM, más enlaces y más rápidos, instrucciones adicionales y un microcódigo mejorado, pero este proyecto se canceló alrededor de 1990.
Inmos también fabricó diversos chips de soporte para los procesadores del transputer, como el conmutador de enlace de 32 vías C004 y los "adaptadores de enlace" C011 y C012 , que permitían conectar los enlaces del transputer a un bus de datos de 8 bits.
T400
Parte de la estrategia original de Inmos era fabricar CPU tan pequeñas y baratas que pudieran combinarse con otra lógica en un solo dispositivo. Aunque los sistemas en un chip (SoC), como se les conoce comúnmente, son omnipresentes hoy en día, el concepto era prácticamente desconocido a principios de la década de 1980. Dos proyectos se iniciaron alrededor de 1983: el M212 y el TV-toy . El M212 se basaba en un núcleo T212 estándar con la adición de un controlador de disco para los estándares ST 506 y ST 412 Shugart. El TV-toy iba a ser la base de una consola de videojuegos y fue un proyecto conjunto entre Inmos y Sinclair Research .
Los enlaces de los transputers T212 y T414/T424 contaban con motores DMA de hardware para que las transferencias se ejecutaran en paralelo con otros procesos. Una variante del diseño, denominada T400 (que no debe confundirse con un transputer posterior del mismo nombre), se diseñó en la que la CPU gestionaba estas transferencias. Esto redujo considerablemente el tamaño del dispositivo, ya que cuatro motores de enlace ocupaban aproximadamente el mismo espacio que la CPU completa. El T400 estaba pensado para utilizarse como núcleo en los entonces llamados sistemas en silicio (SOS), ahora conocidos como sistemas en un chip (SoC). Este diseño iba a formar parte del TV-toy. El proyecto se canceló en 1985.
T100
Aunque los proyectos SoC anteriores habían tenido un éxito limitado (el M212 se vendió durante un tiempo), muchos diseñadores seguían creyendo firmemente en el concepto y, en 1987, se inició un nuevo proyecto, el T100, que combinaba una versión de 8 bits de la CPU transputer con lógica configurable basada en máquinas de estados. El conjunto de instrucciones transputer se basa en instrucciones de 8 bits y puede utilizarse fácilmente con cualquier tamaño de palabra que sea múltiplo de 8 bits. El mercado objetivo del T100 eran los controladores de bus, como Futurebus, y una actualización para los adaptadores de enlace estándar (C011, etc.). El proyecto se interrumpió cuando se inició el T840 (que más tarde se convertiría en la base del T9000).
- Transcomputadoras de las series T2, T4 y T8
Inmos T212, PRECALIFICACIÓN
Inmos T222, PRECALIFICACIÓN
STMicroelectronics IMST225 (Inmos T225)
Inmos T400
Inmos T414
Inmos T425
Inmos T800, PRECALIFICACIÓN
STMicroelectronics IMST805 (Inmos T805)
TPCORE
TPCORE es una implementación del transputer, incluyendo los os-links, que se ejecuta en una matriz de puertas programables en campo (FPGA). [ 9 ] [ 14 ]
T9000

Inmos mejoró el rendimiento de los transputers de la serie T8 con la introducción del T9000 (nombre en clave H1 durante su desarrollo). El T9000 compartía la mayoría de las características con el T800, pero trasladó varias partes del diseño al hardware y añadió varias funciones para la compatibilidad con superescalares . A diferencia de los modelos anteriores, el T9000 tenía una caché de alta velocidad real de 16 KB (con reemplazo aleatorio) en lugar de RAM, pero también permitía usarla como memoria e incluía una funcionalidad similar a la de una MMU para gestionar todo esto (denominada PMI ). Para una mayor velocidad, el T9000 almacenaba en caché las 32 posiciones superiores de la pila, en lugar de las tres de las versiones anteriores.

El T9000 utilizaba una arquitectura de cinco etapas para lograr aún mayor velocidad. Una característica interesante era el agrupador [ 15 ] , que recogía las instrucciones de la caché y las agrupaba en paquetes más grandes de hasta 8 bytes para acelerar la ejecución de la arquitectura. Los grupos se completaban en un solo ciclo, como si fueran instrucciones individuales más grandes que se ejecutaban en una CPU más rápida.
El sistema de enlace se actualizó a un nuevo modo de 100 MHz, pero a diferencia de los sistemas anteriores, los enlaces ya no eran compatibles con versiones anteriores. Este nuevo protocolo de enlace basado en paquetes se denominó DS-Link [ 16 ] y posteriormente constituyó la base del estándar de interconexión en serie IEEE 1355. El T9000 también incorporó hardware de enrutamiento de enlaces denominado VCP (Virtual Channel Processor), que transformó los enlaces de punto a punto a una verdadera red, permitiendo la creación de cualquier número de canales virtuales en los enlaces. Esto significaba que los programas ya no tenían que conocer la disposición física de las conexiones. También se desarrolló una gama de chips de soporte para DS-Link, incluyendo el conmutador de barra cruzada de 32 vías C104 y el adaptador de enlace C101 .
Los largos retrasos en el desarrollo del T9000 provocaron que, para cuando se lanzó, los diseños de carga/almacenamiento más rápidos ya lo superaban en rendimiento. Constantemente fracasaba en alcanzar su objetivo de rendimiento de superar al T800 por un factor de diez. Cuando finalmente se canceló el proyecto, aún alcanzaba solo unos 36 MIPS a 50 MHz. Los retrasos en la producción dieron lugar a la broma de que la mejor arquitectura para un T9000 era un proyector de diapositivas.
Esto resultó demasiado para Inmos, que no contaba con la financiación necesaria para continuar el desarrollo. Para entonces, la empresa había sido vendida a SGS-Thomson (ahora STMicroelectronics ), cuyo enfoque era el mercado de sistemas embebidos, y finalmente el proyecto T9000 fue abandonado. Sin embargo, posteriormente se produjo un transputer de 32 bits completamente rediseñado para aplicaciones embebidas, la serie ST20 , que utilizaba tecnología desarrollada para el T9000. El núcleo ST20 se incorporó a los conjuntos de chips para decodificadores y sistemas de posicionamiento global (GPS).
ST20
Aunque no era estrictamente un transputer, el ST20 estuvo fuertemente influenciado por el T4 y el T9 y formó la base del T450, que fue posiblemente el último de los transputers. La misión del ST20 era ser un núcleo reutilizable en el entonces emergente mercado de SoC. El nombre original del ST20 era Reusable Micro Core (RMC). La arquitectura se basaba libremente en la arquitectura original del T4 con una ruta de datos controlada por microcódigo. Sin embargo, fue un rediseño completo, utilizando VHDL como lenguaje de diseño y con un compilador de microcódigo optimizado (y reescrito). El proyecto se concibió ya en 1990 cuando se comprendió que el T9 sería demasiado grande para muchas aplicaciones. El trabajo de diseño real comenzó a mediados de 1992. Se realizaron varios diseños de prueba, que iban desde una CPU de estilo RISC muy simple con instrucciones complejas implementadas en software a través de trampas hasta un diseño superescalar bastante complejo similar en concepto al algoritmo de Tomasulo . El diseño final era muy similar al núcleo T4 original, aunque se añadieron algunas agrupaciones de instrucciones sencillas y una caché de espacio de trabajo para mejorar el rendimiento.
Adopción

Si bien el transputer era sencillo pero potente en comparación con muchos diseños contemporáneos, nunca estuvo cerca de lograr su objetivo de ser utilizado universalmente tanto como CPU como microcontrolador. En el mercado de microcontroladores, predominaban las máquinas de 8 bits, donde el costo era el factor más importante. Incluso los T2 resultaban demasiado potentes y costosos para la mayoría de los usuarios.
En el campo de las computadoras de escritorio y estaciones de trabajo , el transputer era bastante rápido (operando a unos 10 millones de instrucciones por segundo (MIPS) a 20 MHz). Este era un rendimiento excelente para principios de la década de 1980, pero para cuando se lanzó el T800 equipado con una unidad de punto flotante (FPU), otros diseños RISC lo habían superado. Esto podría haberse mitigado en gran medida si las máquinas hubieran utilizado varios transputers como estaba previsto, pero los T800 costaban alrededor de 400 dólares cada uno cuando se lanzaron, lo que significaba una mala relación precio/rendimiento. Se diseñaron pocos sistemas de estaciones de trabajo basados en transputers; el más notable probablemente fue la Atari Transputer Workstation .
El transputer tuvo más éxito en el campo de la computación masivamente paralela , donde varios proveedores produjeron sistemas basados en transputers a finales de la década de 1980. Estos incluían Meiko Scientific (fundada por exempleados de Inmos), Floating Point Systems , Parsytec , [ 17 ] y Parsys. Varias instituciones académicas británicas fundaron actividades de investigación en la aplicación de sistemas paralelos basados en transputers, incluyendo el Bristol Transputer Centre de Bristol Polytechnic y el Edinburgh Concurrent Supercomputer Project de la Universidad de Edimburgo . Además, los sistemas de adquisición de datos y disparo de segundo nivel del experimento ZEUS de física de alta energía para el colisionador Hadron Elektron Ring Anlage (HERA) en DESY se basaban en una red de más de 300 transputers sincronizados, divididos en varios subsistemas. Estos controlaban tanto la lectura de la electrónica personalizada del detector como la ejecución de algoritmos de reconstrucción para la selección de eventos físicos.
A principios de la década de 1990, la mayor imprenta del mundo, RR Donnelley & Sons , comenzó a utilizar comercialmente las capacidades de procesamiento paralelo del transputer para el procesamiento de imágenes . La capacidad de transformar rápidamente imágenes digitales para su impresión le otorgó a la empresa una ventaja significativa sobre sus competidores. Este desarrollo fue liderado por Michael Bengtson en el Centro Tecnológico de RR Donnelley. En pocos años, la capacidad de procesamiento incluso de las computadoras de escritorio eliminó la necesidad de que la empresa utilizara sistemas multiprocesador personalizados.
La empresa alemana Jäger Messtechnik utilizó transputers para sus primeros productos de adquisición y control de datos en tiempo real ADwin . [ 18 ]
Una empresa francesa construyó la supercomputadora Archipel Volvox con hasta 144 transputers T800 y T400. Estaba controlada por una Silicon Graphics Indigo2 que ejecutaba UNIX y una tarjeta especial que se conectaba a los backplanes de Volvox.
Los transputers también se utilizaron en analizadores de protocolo como el Siemens/Tektronix K1103 y en aplicaciones militares donde la arquitectura de matriz se adaptaba a aplicaciones como el radar y los enlaces seriales (que eran de alta velocidad en la década de 1980) resultaron útiles para ahorrar costos y peso en las comunicaciones de subsistemas.
El transputer también apareció en productos relacionados con la realidad virtual , como el sistema ProVision 100 fabricado por Division Limited de Bristol, que presentaba una combinación de procesadores Intel i860 , 80486/33 y Toshiba HSP, junto con transputers T805 o T425, implementando un motor de renderizado al que luego se podía acceder como servidor desde sistemas PC , Sun SPARCstation o VAX . [ 19 ] [ 20 ]
Myriade , una plataforma europea de satélites miniaturizados desarrollada por Astrium Satellites y CNES y utilizada por satélites como el Picard , se basa en el T805, que produce alrededor de 4 MIPS, y está previsto que permanezca en producción hasta aproximadamente 2015. [ 21 ] [ 22 ]
El funcionamiento asíncrono de las comunicaciones y la computación permitió el desarrollo de algoritmos asíncronos, como el algoritmo de Bane "Búsqueda de ceros polinomiales asíncronos". [ 23 ] Es probable que el campo de los algoritmos asíncronos, y la implementación asíncrona de los algoritmos actuales, desempeñe un papel clave en la transición a la computación a exaescala .
La nave espacial High Energy Transient Explorer 2 (HETE-2) utilizó 4 transputers T805 y 8 DSP56001, lo que produjo un rendimiento de aproximadamente 100 millones de instrucciones por segundo (MIPS). [ 24 ]
Legado
El creciente paralelismo interno ha sido uno de los principales impulsores de las mejoras en los diseños de CPU convencionales. En lugar del paralelismo explícito a nivel de hilos (como se utiliza en el transputer), los diseños de CPU explotaban el paralelismo implícito a nivel de instrucciones, inspeccionando las secuencias de código en busca de dependencias de datos y emitiendo múltiples instrucciones independientes a diferentes unidades de ejecución. Esto se denomina procesamiento superescalar . Los procesadores superescalares son idóneos para optimizar la ejecución de fragmentos de código construidos secuencialmente. La combinación de procesamiento superescalar y ejecución especulativa proporcionó un aumento tangible del rendimiento en los conjuntos de código existentes, que en su mayoría estaban escritos en Pascal, Fortran, C y C++. Dadas estas mejoras sustanciales y constantes del rendimiento del código existente, había pocos incentivos para reescribir el software en lenguajes o estilos de codificación que expusieran un mayor paralelismo a nivel de tareas.
No obstante, el modelo de procesadores concurrentes cooperativos aún se encuentra en los sistemas de computación en clúster que dominan el diseño de supercomputadoras en el siglo XXI. A diferencia de la arquitectura de transputers, las unidades de procesamiento en estos sistemas suelen utilizar CPU superescalares con acceso a grandes cantidades de memoria y almacenamiento en disco, ejecutando sistemas operativos e interfaces de red convencionales. Como resultado de la mayor complejidad de los nodos, la arquitectura de software utilizada para coordinar el paralelismo en dichos sistemas suele ser mucho más pesada que en la arquitectura de transputers.
El propósito fundamental de la transputación persiste, aunque durante más de 20 años quedó enmascarado por la duplicación constante del número de transistores. Inevitablemente, los diseñadores de microprocesadores agotaron las aplicaciones de los mayores recursos físicos, casi al mismo tiempo que la miniaturización tecnológica alcanzaba sus límites. El consumo de energía y, por consiguiente, las necesidades de disipación de calor, hacen inviables nuevos aumentos en la frecuencia de reloj . Estos factores llevaron a la industria hacia soluciones que, en esencia, no difieren mucho de las propuestas por Inmos.
Algunas de las supercomputadoras más potentes del mundo, basadas en diseños de la Universidad de Columbia y construidas como IBM Blue Gene , son la materialización del sueño de la transcomputación. Son enormes conjuntos de SoC idénticos, de rendimiento relativamente bajo.
Las tendencias recientes también han intentado resolver el dilema del transistor de maneras que habrían sido demasiado futuristas incluso para Inmos. Además de agregar componentes al chip de la CPU y colocar múltiples chips en un solo sistema, los procesadores modernos colocan cada vez más múltiples núcleos en un solo chip. Los diseñadores de transputers tenían dificultades para integrar incluso un solo núcleo en su presupuesto de transistores. Hoy en día, los diseñadores, trabajando con un aumento de 1000 veces en la densidad de transistores, ahora pueden colocar muchos. Uno de los desarrollos comerciales más recientes ha surgido de la empresa XMOS , que ha desarrollado una familia de procesadores multinúcleo y multihilo integrados que resuenan fuertemente con el transputer e Inmos. Existe una clase emergente de procesadores multinúcleo/muchos núcleos que adoptan el enfoque de una red en un chip (NoC), como el procesador Cell , la arquitectura Adapteva Epiphany, Tilera, etc.
El transputer e Inmos contribuyeron a consolidar a Bristol , Reino Unido, como un centro neurálgico para el diseño y la innovación microelectrónica.
Véase también
- Adaptación
- David May (científico informático)
- Facilidad (lenguaje de programación)
- IEEE 1355
- Inmos
- iWarp
- Superficie de computación Meiko
Referencias
- ^ Allen Kent , James G. Williams (eds.) (1998) "Enciclopedia de Ciencias de la Computación y Tecnología", ISBN 0-8247-2292-2" La familia de productos Transputer" , por Hamid R. Arabnia.
- ^ Hola, Anthony JG (1990-01-01). "Supercomputación con transputers: pasado, presente y futuro". Actas de la 4.ª conferencia internacional sobre supercomputación - ICS '90 . Nueva York, NY, EE. UU.: ACM. págs. 479–489 . doi : 10.1145/77726.255192 . ISBN 0897913698. S2CID 8612995 .
- ^ Stoker, & White, A. (2000). Copia mecatrónica de películas cinematográficas mediante control por transputer. Mechatronics (Oxford), 10(7), 773–807. https://doi.org/10.1016/S0957-4158(99)00043-4
- ^ Fuller, Samuel H. y Millett, Lynette I., editores (2011). El futuro del rendimiento informático , CSTB, National Academic Press, pág. 84. ISBN 978-0-309-15951-7Consultado el 2 de noviembre de 2016.
- ^ "El Premio Príncipe Felipe de Diseño" . El Consejo de Diseño . Consultado el 1 de diciembre de 2019 .
- ^ Barron, Iann M. (1978). D. Aspinall (ed.). "The Transputer" . El microprocesador y su aplicación: un curso avanzado . Cambridge University Press : 343. ISBN 0-521-22241-9. Consultado el 18 de mayo de 2009 .
- ^ Stakem, Patrick H. La arquitectura de hardware y software del transputer, 2011, PRB Publishing, ASIN B004OYTS1K
- ^ Manual de referencia de Transputer (PDF) . Prentice-Hall . 1988. ISBN 0-13-929001-XArchivado (PDF) del original el 09/10/2022 .
- ^ Kazuto Tanaka ; Satoshi Iwanami; Takeshi Yamakawa; Chikara Fukunaga; Kazuto Matsui; Takashi Yoshida. "El diseño y rendimiento de la red de enrutadores SpaceWire utilizando CSP" . pag. 2.
- ^ "Computación y redes de alto rendimiento: Conferencia y exposición internacional, Ámsterdam, Países Bajos, 21-23 de abril de 1998. Actas" . BC O'Neill; G Coulson; KL Wong; R Hotchkiss; JH Ng; S Clark; y PD Thomas. "Un dispositivo de interfaz para soportar un sistema paralelo distribuido para el microprocesador StrongARM". pág. 1031.
- ^ "Nota técnica de Inmos 29: Módulos transputadores de doble línea (TRAM)" . Transputer.net. 4 de julio de 2008. Consultado el 12 de octubre de 2013 .
- ^ Borger, & Durdanovic, I. (1996). Corrección de la compilación de Occam a código transputador. Computer Journal, 39(1), 52–92. https://doi.org/10.1093/comjnl/39.1.52
- ^ Anning, Nick; Hebditch, David (1986-03-20). "Nuevo chip muestra sus poderes" . New Scientist . págs. 43–46 . Recuperado el 22 de junio de 2022 .
- ^ "Arquitecturas de procesos de comunicación 2004" . pag. 361. Makoto Tanaka; Naoya Fukuchi; Yutaka Ooki; y Chikara Fukunaga. "Diseño de un Transputer Core y su implementación en una FPGA". 2004.
- ^ Patente de CPU Inmos T9000, "Patente estadounidense 5742783" ,
- ^ Patente de Inmos DS Link, "Interfaz de comunicación, patente estadounidense 5341371"
- ^ Harald W. Wabnig (20-22 de septiembre de 1993). Canales virtuales para la comunicación sin bloqueos en redes de transputers . Congreso Mundial de Transputers de 1993. Aquisgrán, Alemania. pág. 1047. ISBN 9789051991406.
- ^ "Sistema de automatización en tiempo real rápido ADwin" (PDF) . Archivado del original (PDF) el 25/04/2012 . Consultado el 16/11/2011 .
- ^ Edmunds, Nick (julio de 1993). "Cuando dos mundos chocan". Personal Computer World .
- ^ Bangay, Sean (julio de 1993). Implementación paralela de un sistema de realidad virtual en una arquitectura transputer (PDF) . Universidad de Rhodes. Archivado (PDF) del original el 9 de octubre de 2022. Recuperado el 6 de mayo de 2012 .
- ^ "La plataforma Myriade" . Consultado el 22 de agosto de 2011 .
- ^ David Chemouil. "El diseño de sistemas espaciales" (PDF) . Archivado del original (PDF) el 21 de marzo de 2012. Consultado el 22 de agosto de 2011 .
- ^ TL Freeman y MK Bane, " Algoritmos asíncronos de búsqueda de ceros polinomiales ". Computación paralela 17, págs. 673-681. (1991)
- ^ Nave espacial HETE-2
Enlaces externos
- Las preguntas frecuentes de Transputer se archivaron el 26 de mayo de 2013 en Wayback Machine .
- Página principal de Transputer de Ram Meenakshisundaram
- WoTUG: Un grupo que aplica los principios de los transputers (por ejemplo, procesos secuenciales comunicantes (CSP)) en otros entornos.
- Emulador de transputer : emula un transputer T414 (es decir, sin FPU ni instrucciones de transferencia de datos) y proporciona los servicios de E/S de archivos y terminales que normalmente proporcionaba un sistema informático anfitrión.
- Emulador de transputer para PC : se trata de una versión para PC del emulador de transputer T414 original (llamado jserver), escrito por Julian Highfield a mediados o finales de la década de 1990.
- Los transputers pueden ser divertidos.
- La máquina virtual Transterpreter. Archivada el 3 de marzo de 2017 en Wayback Machine : un entorno de ejecución portátil para occam-pi y otros lenguajes basado en el código de bytes de transputer.
- El compilador occam Kent Retargettable. – El compilador occam-pi.
- transputer.net. – Documentos y más sobre transputer.
- Directorio de antiguos empleados de Inmos: fotos e información general. Mantenido por Ken Heddings.
- Ganadores del Premio Príncipe Felipe de Diseño de 1959 a 2009, sitio web del Consejo de Diseño
- Sistemas internos de la nave espacial HETE-2
- Desarrollo y aplicación de una máquina multiprocesador de bajo costo y alto rendimiento.
Patentes
- US4704678 - INMOS, [26 de noviembre de 1982], Conjunto de funciones para un microordenador
- US4724517 - INMOS, [26 de noviembre de 1982], Microcomputadora con funciones de prefijado
- US4758948 - INMOS, [19 de julio de 1988], Microcomputadora
- US4989133 - INMOS, [29 de enero de 1991], Sistema para ejecutar procesos dependientes del tiempo
- US4783734 - INMOS, [8 de noviembre de 1988], Computadora con comunicación de proceso de longitud variable
- US4794526 - INMOS, [27 de diciembre de 1988], Microcomputadora con planificación de prioridades
- Introducciones relacionadas con la informática en 1984
- Ordenadores diseñados en el Reino Unido.
- microprocesadores de 16 bits
- microprocesadores de 32 bits
- Computación paralela
- Máquinas apiladoras
- STMicroelectronics