stringtranslate.com

Transputador

Chip transordenador T414
Plataforma base IMSB008 con módulos IMSB419 e IMSB404 montados

El transputer es una serie de microprocesadores pioneros de los años 1980, destinados a la computación paralela . Para respaldar esto, cada transputador tenía su propia memoria integrada y enlaces de comunicación en serie para intercambiar datos con otros transputadores. Fueron diseñados y producidos por Inmos , una empresa de semiconductores con sede en Bristol , Reino Unido . [1]

Durante algún tiempo a finales de la década de 1980, muchos [2] consideraron que el transordenador sería el próximo gran diseño para el futuro de la informática. 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 un límite de rendimiento. Hasta ese momento, 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 podrían contener más circuitos de los que los diseñadores sabían utilizar. Los diseños tradicionales de computadoras con conjuntos de instrucciones complejas (CISC) estaban alcanzando un nivel de rendimiento y no estaba claro que se pudiera superar. [4]

Parecía que el único camino a seguir era aumentar el uso del paralelismo, el uso de varias CPU que trabajarían juntas para resolver varias tareas al mismo tiempo. Esto dependía de que dichas máquinas pudieran ejecutar varias tareas a la vez, un proceso denominado multitarea . En general, esto había sido demasiado difícil de manejar para los diseños de microprocesadores anteriores, pero los diseños más recientes pudieron lograrlo de manera efectiva. Estaba claro que en el futuro esta sería una característica de todos los sistemas operativos (SO).

Un efecto secundario de la mayoría de los diseños multitarea es que a menudo también permite que los procesos se ejecuten en CPU físicamente diferentes, en cuyo caso se denomina multiprocesamiento . Una CPU de bajo costo construida para multiprocesamiento podría permitir aumentar la velocidad de una máquina agregando más CPU, potencialmente mucho más barato que usando un diseño de CPU más rápido.

Los primeros diseños de transputadores se debieron al informático David May y al consultor de telecomunicaciones Robert Milne. En 1990, May recibió un doctorado honorario de 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 destacado en Inmos , recibió el Premio Príncipe Felipe de Diseñadores en 1987 por su trabajo en el transordenador T414. [5]

Diseño

El transputer fue el primer microprocesador de propósito general diseñado específicamente para ser utilizado en sistemas informáticos paralelos . El objetivo era producir una familia de chips de diferentes potencias y costos que pudieran conectarse entre sí para formar una computadora paralela completa. El nombre, de " transistor " y "computadora " [ 6] , se seleccionó para indicar el papel que desempeñarían los transputadores individuales: varios de ellos se usarían como bloques de construcción básicos en un sistema integrado más grande, tal como lo habían hecho los transistores . sido utilizado en diseños anteriores.

Originalmente el plan era hacer que el transputador costara sólo unos pocos dólares por unidad. Inmos vio que se usaban para prácticamente todo, desde funcionar como CPU principal de una computadora hasta actuar como controlador de canal 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. Por el contrario, en un sistema de transputadores, los ciclos de repuesto de cualquiera de estos transputadores podrían usarse para otras tareas, aumentando considerablemente el rendimiento general de las máquinas.

El transputer tenía una gran memoria en el chip, lo que lo convertía esencialmente en un procesador en memoria . Incluso un transordenador tendría todos los circuitos necesarios para funcionar por sí solo, una característica más comúnmente asociada con los microcontroladores . La intención era permitir que las transputadoras se conectaran entre sí lo más fácilmente posible, sin necesidad de un bus complejo o una placa base . Había que suministrar alimentación y una simple señal de reloj , pero poco más: se integraban una memoria de acceso aleatorio (RAM), un controlador de RAM, soporte de bus e incluso un sistema operativo en tiempo real (RTOS). El último de los transordenadores fueron los micronúcleos reutilizables (RMC) individuales en el entonces emergente mercado de SoC .

Arquitectura

El transordenador original utilizaba una arquitectura muy simple y bastante inusual para lograr un alto rendimiento en un área pequeña. Utilizaba microcódigo como método principal para controlar la ruta de los datos, pero a diferencia de otros diseños de la época, muchas instrucciones tardaban solo un ciclo en ejecutarse. Los códigos de operación de instrucción se utilizaron como puntos de entrada a la memoria de solo lectura (ROM) del microcódigo y las salidas de la ROM se alimentaron directamente a la ruta de datos. Para 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 podría tomarse cerca del final del primer ciclo. Esto permitió una operación muy rápida 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 la frecuencia interna necesaria mediante un bucle de bloqueo de fase (PLL). En realidad, el reloj interno tenía cuatro fases que no se superponían y los diseñadores eran libres de usar cualquier combinación de ellas que quisieran, por lo que se podría argumentar que el transputador en realidad funcionaba a 80 MHz. Se utilizó 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 desgracia para diseños posteriores.

Prentice-Hall publicó un libro [8] sobre los principios generales del transputador.

Enlaces

El diseño básico del transputador incluía enlaces en serie conocidos como "os-link" [9] [10] que le permitían comunicarse con hasta otros cuatro transputadores, cada uno a 5, 10 o 20 Mbit/s, lo cual era muy rápido para la década de 1980. Se podría conectar cualquier número de transputers a través de enlaces (que podrían extenderse decenas de metros) para formar una granja de computación . Una máquina de escritorio hipotética podría tener dos de las transputadoras de "gama baja" que manejan tareas de entrada/salida (E/S) en algunas de sus líneas serie (conectadas al hardware apropiado) mientras hablaban con uno de sus primos más grandes que actúa como CPU. en otro.

Había límites al tamaño de un sistema que podía construirse de esta manera. Dado que cada transordenador estaba conectado a otro en un diseño fijo punto a punto, enviar mensajes a un transordenador más distante requería que los mensajes fueran transmitidos por cada chip de la línea. Esto introdujo un retraso con cada "salto" a través de un enlace, lo que provocó largos retrasos en redes grandes. Para resolver este problema, Inmos también proporcionó un conmutador sin retardo que conectaba hasta 32 transputadores (o conmutadores) en redes aún más grandes.

Arranque

Los transputers pueden arrancar desde la memoria, como es el caso de la mayoría de las computadoras, pero también pueden arrancar a través de sus enlaces de red . Un pin especial en los chips, BootFromROM, indicaba qué método debía utilizar. Si se afirmaba BootFromROM cuando se reiniciaba el chip, comenzaría a procesar la instrucción a dos bytes de la parte superior de la memoria, que normalmente se usaba para realizar un salto hacia atrás al código de inicio. Si este pin no se afirmaba, el chip esperaría a que se recibieran bytes en cualquier enlace de red. El primer byte que se recibió fue la longitud del código siguiente. Los siguientes bytes se copiaron en la memoria baja y luego se saltaron una vez que se recibió esa cantidad de bytes.

El concepto general del sistema era que un transputador actuara como autoridad central para iniciar un sistema que contenía varios transputadores conectados. La computadora seleccionada tendría BootFromROM afirmado permanentemente, lo que haría que comenzara a ejecutar un proceso de arranque desde la ROM al inicio. Las otras computadoras tendrían el BootFromROM atado bajo y simplemente esperarían. El cargador arrancaría el transputador central, que luego comenzaría a enviar código de arranque a los otros transputadores de la red, y podría personalizar el código enviado a cada uno, por ejemplo, enviando un controlador de dispositivo al transputador conectado a los discos duros.

El sistema también incluía las longitudes de código "especiales" de 0 y 1 que estaban reservadas para PEEK y POKE . Esto permitió inspeccionar y cambiar la RAM en una computadora no arrancada. Después de un vistazo, seguido de una dirección de memoria, o un toque, con una dirección y una sola palabra de datos, el transputador volvería a esperar un arranque. Este mecanismo se utilizó generalmente para la depuración.

Programador

Se agregaron circuitos de tráfico programado a través de los enlaces. Los procesos que esperaban comunicaciones se pausarían automáticamente mientras el circuito de red terminaba sus lecturas o escrituras. A otros procesos que se ejecutan en la computadora se les daría ese tiempo de procesamiento. Incluía dos niveles de prioridad para mejorar la operación en tiempo real y multiprocesador . Se utilizó el mismo sistema lógico para comunicarse entre programas que se ejecutan en una computadora, implementados como enlaces de red virtuales en la memoria. Por lo tanto, los programas que solicitaban cualquier entrada o salida se pausaban automáticamente mientras se completaba la operación, una tarea que normalmente requería que un sistema operativo la manejara como árbitro del hardware. Los sistemas operativos de la computadora no necesitaban manejar la programación; Se podría considerar que el chip tiene un sistema operativo en su interior.

Conjunto de instrucciones

Para incluir toda esta función en un chip, la lógica central del transordenador era más simple que la de la mayoría de las CPU. Si bien algunos lo han llamado computadora con conjunto de instrucciones reducido (RISC) debido a su naturaleza bastante escasa, y porque en ese entonces era una palabra de moda en marketing deseable , estaba muy microcodificado , tenía un conjunto de registros limitado e instrucciones complejas de memoria a memoria, todo de los cuales lo sitúan firmemente en el campo de la CISC . A diferencia de las CPU RISC de carga y almacenamiento con muchos registros , el transputador tenía sólo tres registros de datos, que se comportaban como una pila. Además, un puntero del espacio de trabajo apuntaba a una pila de memoria convencional, a la que se puede acceder fácilmente mediante las instrucciones Load Localy Store Local. Esto permitió un cambio de contexto muy rápido simplemente cambiando el puntero del espacio de trabajo a la memoria utilizada por otro proceso (un método utilizado en varios diseños contemporáneos, como el TMS9900 ). Los contenidos de la pila de tres registros no se conservaron más allá de ciertas instrucciones, como Jump, cuando el transputador podía realizar un cambio de contexto.

El conjunto de instrucciones del transputador constaba de instrucciones de 8 bits ensambladas a partir de códigos de operación y nibbles de operandos . El mordisco superior contenía los 16 posibles códigos de instrucción primaria, lo que la convierte en una de las pocas computadoras con conjunto mínimo de instrucciones comercializadas . El cuarteto inferior contenía un operando constante inmediato, comúnmente utilizado como desplazamiento relativo al puntero del espacio de trabajo (pila de memoria). Dos instrucciones de prefijo permitieron la construcción de constantes más grandes anteponiendo sus mordiscos inferiores a los operandos de las siguientes instrucciones. Se admitieron más instrucciones a través del código de instrucción Operate ( ), que decodificaba el operando constante como un código de operación extendido de operando cero, proporcionando una expansión del conjunto de instrucciones fácil y casi infinita a medida que se introducían nuevas implementaciones del transputer.Opr

Las 16 instrucciones de un operando "primarias" fueron:

Todas estas instrucciones toman una constante, que representa un desplazamiento o una constante aritmética. Si esta constante era menor que 16, todas estas instrucciones se codificaban en un byte.

Las primeras 16 instrucciones de operando cero 'secundarias' (utilizando la instrucción primaria OPR) fueron:

Desarrollo

Placa base B008 vacía
Selección de tranvías

Para proporcionar un medio sencillo para crear prototipos, construir y configurar sistemas de múltiples transputadores, Inmos introdujo el estándar TRAM (TRAnsputer Module) en 1987. Un TRAM era esencialmente una placa secundaria básica que comprendía un transputador y, opcionalmente, memoria externa y/o dispositivos periféricos. , con conectores estandarizados simples que proporcionan energía, enlaces de transputador, reloj y señales del sistema. Se definieron varios tamaños de TRAM, desde el TRAM básico Tamaño 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 funcionan a 10 Mbit/s o 20 Mbit/s. [11]

Software

Las transputadoras estaban destinadas a programarse utilizando el lenguaje de programación occam , basado en el cálculo de procesos de procesos secuenciales de comunicación (CSP) . [12] El transputer fue construido para ejecutar Occam específicamente, 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 que interactúa directamente con él, escribir código para cosas como controladores de dispositivos se convirtió en una trivialidad; Incluso el código más básico podría vigilar los puertos serie en busca de E/S y se suspendería automáticamente cuando no hubiera datos.

El entorno de desarrollo inicial de Occam para el transputer fue el sistema de desarrollo de transputer (TDS) Inmos D700. Se trataba de un entorno de desarrollo integrado poco ortodoxo que incorporaba un editor, compilador, enlazador y depurador (post-mortem). El TDS era una aplicación de transputación escrita en Occam. El editor de texto TDS se destacó porque era un editor plegable que permitía ocultar y revelar bloques de código para hacer más evidente la estructura del código. Desafortunadamente, la combinación de un lenguaje de programación desconocido y un entorno de desarrollo igualmente desconocido no contribuyó en nada a la popularidad inicial del transputer. Más tarde, Inmos lanzaría compiladores cruzados de Occam más convencionales, los Occam 2 Toolsets .

Posteriormente, tanto Inmos como otros proveedores lanzaron implementaciones de lenguajes de programación más convencionales, como C, FORTRAN , Ada , Forth y Pascal. Por lo general, incluían extensiones de lenguaje o bibliotecas que proporcionaban, de una manera menos elegante, concurrencia similar a Occam y comunicación basada en canales.

La falta de soporte de la computadora para la memoria virtual inhibió la portabilidad de las principales variantes 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ñó un sistema operativo distribuido avanzado similar a Unix , Helios , específicamente para sistemas de múltiples computadoras .

Implementaciones

Los primeros transordenadores se anunciaron en 1983 y se lanzaron al mercado en 1984.

De acuerdo con su función como dispositivos similares a microcontroladores , incluían RAM integrada y un controlador de RAM incorporado que permitía agregar más memoria sin hardware adicional. A diferencia de otros diseños, las transputadoras no incluían líneas de E/S: estas debían agregarse con hardware conectado a los enlaces serie existentes. Había una línea de 'Evento', similar a la línea de interrupción de un procesador convencional. Tratado como un canal, un programa podría "entrar" desde el canal de evento y continuar sólo después de que se afirmara la línea de evento.

Todos los transordenadores funcionaban desde una entrada de reloj externa de 5 MHz; esto se multiplicó para proporcionar el reloj del procesador.

El transordenador no incluía una unidad de gestión de memoria (MMU) ni un sistema de memoria virtual .

Las variantes de transputer (excepto el T9000 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 de punto flotante IEEE 754 de 64 bits.

T2: 16 bits

Muere Inmos T225

El prototipo de transordenador de 16 bits fue el S43 , que carecía del programador y de la transferencia en bloques controlada por DMA en los enlaces. En el lanzamiento, el T212 y el M212 (este último con un controlador de disco integrado) eran las ofertas de 16 bits. El T212 estaba disponible en velocidades de reloj de procesador de 17,5 y 20 MHz. El T212 fue reemplazado por el T222 , con RAM en chip ampliada de 2 KB a 4 KB, y, más tarde, el T225 . Esto agregó compatibilidad con puntos de interrupción de depuración (al extender la instrucción "J 0") además de algunas instrucciones adicionales del conjunto de instrucciones del T800. Tanto el T222 como el T225 funcionaron a 20 MHz.

T4: 32 bits

Muere Inmos T425

Lanzado en octubre de 1985, el T414 empleaba el equivalente a 900.000 transistores y estaba fabricado con un tamaño 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 significaron que fue rediseñado como el T414 con 2 KB de RAM integrada en lugar de los 4 KB previstos. El T414 estaba disponible en variedades de 15 y 20 MHz. Posteriormente, la RAM se restableció a 4 KB en el T425 (en variedades de 20, 25 y 30 MHz), que también agregó laJ 0soporte de punto de interrupción e instrucciones T800 adicionales. El T400 , lanzado en septiembre de 1989, era un derivado del T425 de 20 MHz de bajo costo con 2 KB y dos en lugar de cuatro enlaces, destinado al mercado de sistemas integrados .

T8: coma flotante

Muere Inmos T805

El transordenador T800 de segunda generación , presentado en 1987, tenía un conjunto de instrucciones ampliado. La adición más importante fue una unidad de punto flotante (FPU) de 64 bits y tres registros agregados para punto flotante, implementando el estándar de punto flotante IEEE 754-1985 . También tenía 4 KB de RAM integrada y estaba disponible en versiones de 20 o 25 MHz. Se agregó compatibilidad con puntos de interrupción en los modelos T801 y T805 posteriores ; el primero presentaba buses de datos y direcciones separados para mejorar el rendimiento. El T805 también estuvo disponible más tarde como pieza de 30 MHz.

Se planeó un T810 mejorado , que habría tenido más RAM, más enlaces y más rápidos, instrucciones adicionales y microcódigo mejorado, pero fue cancelado alrededor de 1990.

Inmos también produjo una variedad de chips de soporte para los procesadores de transputadores, como el conmutador de enlace de 32 vías C004 y los "adaptadores de enlace" C011 y C012 que permitieron que los enlaces de transputadores se interconectaran a un bus de datos de 8 bits.

T400

Parte de la estrategia original de Inmos era hacer que las CPU fueran 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 denomina comúnmente, son omnipresentes ahora, el concepto era casi desconocido a principios de la década de 1980. Alrededor de 1983 se iniciaron dos proyectos: el M212 y el TV-toy . El M212 se basó en un núcleo T212 estándar con la adición de un controlador de disco para los estándares Shugart ST 506 y ST 412. 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 en las computadoras T212 y T414/T424 tenían motores DMA de hardware para que las transferencias pudieran ocurrir en paralelo con la ejecución de otros procesos. Se diseñó una variante del diseño, denominada T400, que no debe confundirse con una transputadora posterior del mismo nombre, donde la CPU manejaba estas transferencias. Esto redujo considerablemente el tamaño del dispositivo ya que los motores de 4 enlaces tenían aproximadamente el mismo tamaño que toda la CPU. El T400 estaba destinado a ser utilizado como núcleo en lo que entonces se llamaban dispositivos de sistemas en silicio (SOS), ahora denominados y más conocidos como sistema en chip (SoC). Fue este diseño el que formaría parte del TV-toy. El proyecto fue cancelado en 1985.

T100

Aunque los proyectos anteriores de SoC habían tenido un éxito limitado (el M212 se vendió durante un tiempo), muchos diseñadores todavía creían firmemente en el concepto y, en 1987, se inició un nuevo proyecto, el T100, que combinaba una versión de 8 bits del transputer. CPU con lógica configurable basada en máquinas de estados. El conjunto de instrucciones del transputador se basa en instrucciones de 8 bits y se puede utilizar 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 detuvo cuando se inició el T840 (que más tarde se convertiría en la base del T9000).

TPCORE

TPCORE es una implementación del transputador, incluidos los enlaces del sistema operativo, que se ejecuta en una matriz de puertas programables en campo (FPGA). [9] [14]

T9000

Chip de computadora sin tapa que muestra la matriz de silicona instalada en ángulo
Transputador T9000 sin tapa para mostrar la matriz de silicona

Inmos mejoró el rendimiento de los transputadores de la serie T8 con la introducción del T9000 (nombre en código H1 durante el desarrollo). El T9000 compartió la mayoría de las funciones con el T800, pero trasladó varias piezas del diseño al hardware y agregó varias funciones para soporte superescalar . A diferencia de los modelos anteriores, el T9000 tenía un verdadero caché de alta velocidad de 16 KB (usando reemplazo aleatorio) en lugar de RAM, pero también permitía usarlo como memoria e incluía una funcionalidad similar a MMU para manejar todo esto (denominada PMI ) . . Para mayor velocidad, el T9000 almacenó en caché las 32 ubicaciones principales de la pila, en lugar de tres como en versiones anteriores.

Agua de silicio cubierta con un patrón de mosaico de transistores para procesadores que reflejan la luz del sol en patrones de arco iris
Oblea de silicio sin cortar de transputadores Inmos T9000

El T9000 utilizó una tubería de cinco etapas para lograr aún más velocidad. Una adición interesante fue el agrupador [15] que recopilaría instrucciones del caché y las agruparía en paquetes más grandes de hasta 8 bytes para alimentar la canalización más rápido. Luego, los grupos se completaron en un ciclo, como si fueran instrucciones individuales más grandes trabajando 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 llamó DS-Link , [16] y posteriormente formó la base del estándar de interconexión serial IEEE 1355 . El T9000 también agregó hardware de enrutamiento de enlaces llamado VCP (Procesador de canal virtual) que cambió los enlaces de punto a punto a una red verdadera, permitiendo la creación de cualquier número de canales virtuales en los enlaces. Esto significó que los programas ya no tenían que ser conscientes del diseño físico de las conexiones. También se desarrolló una gama de chips de soporte DS-Link, incluido el interruptor de barra transversal de 32 vías C104 y el adaptador de enlace C101 .

Los largos retrasos en el desarrollo del T9000 significaron que los diseños de carga/almacenamiento más rápidos ya lo estaban superando en el momento de su lanzamiento. Nunca logró alcanzar su propio objetivo de rendimiento de superar al T800 por un factor de diez. Cuando finalmente se canceló el proyecto, todavía alcanzaba sólo unos 36 MIPS a 50 MHz. Los retrasos en la producción dieron lugar a la idea de que la mejor arquitectura de host para un T9000 era un retroproyector.

Esto fue demasiado para Inmos, que no contaba con los fondos necesarios para continuar con el desarrollo. En ese momento, la empresa había sido vendida a SGS-Thomson (ahora STMicroelectronics ), cuyo enfoque era el mercado de sistemas integrados, y finalmente se abandonó el proyecto T9000. Sin embargo, más tarde se produjo una transputadora de 32 bits completamente rediseñada destinada a aplicaciones integradas, la serie ST20 , utilizando alguna tecnología desarrollada para el T9000. El núcleo ST20 se incorporó a conjuntos de chips para aplicaciones de decodificador y sistema de posicionamiento global (GPS).

ST20

Aunque no es estrictamente un transputador, el ST20 estuvo fuertemente influenciado por el T4 y el T9 y formó la base del T450, que posiblemente fue el último de los transputadores. La misión del ST20 era ser un núcleo reutilizable en el entonces emergente mercado de SoC. El nombre original del ST20 era Reutilizable Micro Core (RMC). La arquitectura se basó libremente en la arquitectura T4 original 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 van desde una CPU de estilo RISC muy simple con instrucciones complejas implementadas en software mediante trampas hasta un diseño superescalar bastante complejo similar en concepto al algoritmo de Tomasulo . El diseño final se parecía mucho al núcleo T4 original, aunque se agregaron algunas agrupaciones de instrucciones simples y un caché de espacio de trabajo para ayudar con el rendimiento.

Adopción

Computadora basada en transputer (izquierda)

Si bien el transputer era simple pero poderoso en comparación con muchos diseños contemporáneos, nunca estuvo cerca de cumplir su objetivo de ser utilizado universalmente tanto en funciones de CPU como de microcontrolador. En el mercado de los microcontroladores, el mercado estaba dominado por máquinas de 8 bits donde el costo era la consideración más seria. En este caso, incluso los T2 eran demasiado potentes y costosos para la mayoría de los usuarios.

En el campo de las computadoras de escritorio y estaciones de trabajo , la transputadora era bastante rápida (operaba a aproximadamente 10 millones de instrucciones por segundo (MIPS) a 20 MHz). Este fue un rendimiento excelente a principios de la década de 1980, pero cuando se envió el T800 equipado con 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 transordenadores como estaba previsto, pero los T800 costaban alrededor de 400 dólares cada uno cuando se introdujeron, lo que significaba una mala relación precio/rendimiento. Se diseñaron pocos sistemas de estaciones de trabajo basados ​​en computadoras; Probablemente la más notable sea la estación de trabajo Atari Transputer .

El transputer tuvo más éxito en el campo de la computación paralela masiva , donde varios proveedores produjeron sistemas basados ​​en transputer a finales de los años 1980. Estos incluían Meiko Scientific (fundada por ex empleados 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 transputadores, incluido el Bristol Transputer Center del 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 altas energías para el colisionador Hadron Elektron Ring Anlage (HERA) en DESY se basaron en una red de más de 300 transputadores sincronizados divididos en varios subsistemas. Estos controlaron tanto la lectura de la electrónica del detector personalizado como ejecutaron algoritmos de reconstrucción para la selección de eventos físicos.

Las capacidades de procesamiento paralelo del transputador fueron utilizadas comercialmente para el procesamiento de imágenes por la imprenta más grande del mundo, RR Donnelley & Sons , a principios de los años 1990. La capacidad de transformar rápidamente imágenes digitales en preparación para la impresión le dio a la empresa una ventaja significativa sobre sus competidores. Este desarrollo fue dirigido por Michael Bengtson en el Centro de Tecnología RR Donnelley. En unos pocos años, la capacidad de procesamiento incluso de las computadoras de escritorio acabó con la necesidad de sistemas multiprocesamiento personalizados para la empresa. [ cita necesaria ]

La empresa alemana Jäger Messtechnik utilizó transputadores para sus primeros productos de control y adquisición de datos en tiempo real ADwin . [18]

Una empresa francesa construyó la supercomputadora Archipel Volvox con hasta 144 transputadoras T800 y T400. Estaba controlado por un Silicon Graphics Indigo2 que ejecutaba UNIX y una tarjeta especial que conectaba con los backplanes Volvox.

Los transputers también encontraron uso en analizadores de protocolos como el Siemens/Tektronix K1103 y en aplicaciones militares donde la arquitectura de matriz se adaptaba a aplicaciones como el radar y los enlaces en serie (que eran de alta velocidad en la década de 1980) sirvieron bien para ahorrar costos y peso en sub- comunicaciones del sistema.

El transputador también apareció en productos relacionados con la realidad virtual como el sistema ProVision 100 fabricado por Division Limited de Bristol, que presenta una combinación de procesadores Intel i860 , 80486/33 y Toshiba HSP, junto con transputadores T805 o T425, implementando un motor de renderizado que Luego se podría acceder como servidor mediante PC , Sun SPARCstation o sistemas VAX . [19] [20]

Myriade , una plataforma satelital miniaturizada europea desarrollada por Astrium Satellites y CNES y utilizada por satélites como el Picard , se basa en el T805 y produce alrededor de 4 MIPS y está previsto que permanezca en producción hasta aproximadamente 2015. [21] [22]

La operación asincrónica de las comunicaciones y la computación permitió el desarrollo de algoritmos asincrónicos, como el algoritmo "Encontramiento de cero polinomial asincrónico" de Bane. [23] Es probable que el campo de los algoritmos asincrónicos y la implementación asincrónica de los algoritmos actuales desempeñen un papel clave en el paso a la computación a exaescala .

La nave espacial High Energy Transient Explorer 2 (HETE-2) utilizó 4 transputadores T805 y 8 × DSP56001, lo que produjo aproximadamente 100 millones de instrucciones por segundo (MIPS) de rendimiento. [24]

Legado

El creciente paralelismo interno ha sido una fuerza impulsora detrás de las mejoras en los diseños de CPU convencionales. En lugar de un paralelismo explícito a nivel de subproceso (como se usa en la transputadora), los diseños de CPU explotaron el paralelismo implícito a nivel de instrucción, inspeccionando 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 adecuados para optimizar la ejecución de fragmentos de código construidos secuencialmente. La combinación de procesamiento superescalar y ejecución especulativa generó un aumento tangible del rendimiento en los cuerpos de código existentes, que en su mayoría estaban escritos en Pascal, Fortran, C y C++. Dadas estas mejoras sustanciales y periódicas en el 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.

Sin embargo, el modelo de procesadores concurrentes cooperativos todavía se puede encontrar 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 transputadora, las unidades de procesamiento en estos sistemas suelen utilizar CPU superescalares con acceso a cantidades sustanciales de memoria y almacenamiento en disco, ejecutando sistemas operativos e interfaces de red convencionales. Como resultado de los nodos más complejos, la arquitectura de software utilizada para coordinar el paralelismo en tales sistemas suele ser mucho más pesada que en la arquitectura de transordenador.

El motivo fundamental del transordenador persiste, pero estuvo enmascarado durante más de 20 años por la repetida duplicación del número de transistores. Inevitablemente, los diseñadores de microprocesadores finalmente se quedaron sin usos para los mayores recursos físicos, casi al mismo tiempo que la ampliación de la tecnología comenzó a alcanzar sus límites. El consumo de energía y, por tanto, las necesidades de disipación de calor, hacen inviables mayores aumentos de la frecuencia del reloj . Estos factores llevaron a la industria hacia soluciones poco diferentes en esencia 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 encarnaciones reales del sueño de las transputadoras. Son enormes conjuntos de SoC idénticos y de rendimiento relativamente bajo.

Las tendencias recientes también han intentado resolver el dilema de los transistores de maneras que habrían sido demasiado futuristas incluso para Inmos. Además de agregar componentes a la CPU y colocar múltiples matrices en un sistema, los procesadores modernos colocan cada vez más núcleos en una sola matriz. Los diseñadores de transputadores lucharon por incluir siquiera un núcleo en su presupuesto de transistores. Hoy en día, los diseñadores, que trabajan con un aumento de 1.000 veces en la densidad de los transistores, normalmente pueden colocar muchos. Uno de los desarrollos comerciales más recientes ha surgido de la firma XMOS , que ha desarrollado una familia de procesadores integrados multinúcleo y multihilo que resuenan fuertemente con el transputer y con 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.

Transputer e Inmos ayudaron a establecer Bristol , Reino Unido, como centro para el diseño y la innovación microelectrónicos.

Ver también

Referencias

  1. ^ Allen Kent , James G. Williams (eds.) (1998) "Enciclopedia de informática y tecnología", ISBN  0-8247-2292-2 , "La familia de productos Transputer", de Hamid R. Arabnia.
  2. ^ Hola, Anthony JG (1 de enero de 1990). "Supercomputación con transputadores --- pasado, presente y futuro". Actas de la cuarta conferencia internacional sobre supercomputación - ICS '90 . Nueva York, NY, Estados Unidos: ACM. págs. 479–489. doi : 10.1145/77726.255192. ISBN 0897913698. S2CID  8612995.
  3. ^ Stoker y White, A. (2000). Copia mecatrónica de películas de cine mediante control por ordenador. Mecatrónica (Oxford), 10(7), 773–807. https://doi.org/10.1016/S0957-4158(99)00043-4
  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-7 Recuperado el 2 de noviembre de 2016. 
  5. ^ "Premio Príncipe Felipe de Diseñadores". El Consejo de Diseño . Consultado el 1 de diciembre de 2019 .
  6. ^ Barrón, Iann M. (1978). D. Aspinall (ed.). "El transputador". El microprocesador y su aplicación: un curso avanzado . Prensa de la Universidad de Cambridge : 343. ISBN 0-521-22241-9. Consultado el 18 de mayo de 2009 .
  7. ^ Stakem, Patrick H. La arquitectura de hardware y software del Transputer, 2011, PRB Publishing, ASIN B004OYTS1K
  8. ^ Manual de referencia de la computadora (PDF) . Prentice Hall . 1988.ISBN _ 0-13-929001-X. Archivado (PDF) desde el original el 9 de octubre de 2022.
  9. ^ ab 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.
  10. ^ "Computación y redes de alto rendimiento: conferencia y exposición internacional, Ámsterdam, Países Bajos, actas del 21 al 23 de abril de 1998". BC O'Neill; G Coulson; KL Wong; R Hotchkiss; JH Ng; S Clark; y P.D. Thomas. "Un dispositivo de interfaz para admitir un sistema paralelo distribuido para el microprocesador StrongARM". pag. 1031.
  11. ^ "Nota técnica 29 de Inmos: Módulos de transputador duales en línea (TRAM)". Transputer.net. 2008-07-04 . Consultado el 12 de octubre de 2013 .
  12. ^ Borger y Durdanovic, I. (1996). Corrección de la compilación de Occam al código del transputador. Diario de computadora, 39 (1), 52–92. https://doi.org/10.1093/comjnl/39.1.52
  13. ^ Anning, Nick; Hebditch, David (20 de marzo de 1986). "El nuevo chip muestra sus poderes". Científico nuevo . págs. 43–46 . Consultado el 22 de junio de 2022 .
  14. ^ "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.
  15. ^ Patente de CPU Inmos T9000, "Patente estadounidense 5742783",
  16. ^ Patente de Inmos DS Link, "Patente de interfaz de comunicación de EE. UU. 5341371"
  17. ^ Harald W. Wabnig (20 a 22 de septiembre de 1993). Canales virtuales para comunicación sin interbloqueos en redes Transputer. 1993 Congreso Mundial de Transputadoras. Aquisgrán, Alemania. pag. 1047.ISBN _ 9789051991406.
  18. ^ "Sistema de automatización rápido en tiempo real ADwin" (PDF) . Archivado desde el original (PDF) el 25 de abril de 2012 . Consultado el 16 de noviembre de 2011 .
  19. ^ Edmunds, Nick (julio de 1993). "Cuando dos mundos chocan". Mundo de las computadoras personales .
  20. ^ Bangay, Sean (julio de 1993). Implementación paralela de un sistema de realidad virtual sobre una arquitectura Transputer (PDF) . Universidad de Rodas. Archivado (PDF) desde el original el 9 de octubre de 2022 . Consultado el 6 de mayo de 2012 .
  21. ^ "La plataforma Myriade" . Consultado el 22 de agosto de 2011 .
  22. ^ David Chemouil. "El diseño de sistemas espaciales" (PDF) . Archivado desde el original (PDF) el 21 de marzo de 2012 . Consultado el 22 de agosto de 2011 .
  23. ^ TL Freeman y MK Bane, " Algoritmos polinomiales asíncronos de búsqueda de ceros ". Computación paralela 17, págs. 673-681. (1991)
  24. ^ Nave espacial HETE-2

enlaces externos

• SUPERNODO - Proyecto UE Esprit-1085 (1985-1988) [1]