Transputer - Transputer

T414 Transputer-Chip
IMSB008-Basisplattform mit montierten IMSB419- und IMSB404-Modulen

Der Transputer ist eine Reihe bahnbrechender Mikroprozessoren aus den 1980er Jahren mit integriertem Speicher und seriellen Kommunikationsverbindungen , die für paralleles Rechnen bestimmt sind . Sie wurden von Inmos , einem Halbleiterunternehmen mit Sitz in Bristol , Großbritannien, entworfen und hergestellt .

In den späten 1980er Jahren hielten viele den Transputer für einige Zeit als das nächste großartige Design für die Zukunft des Computers. Während Inmos und der Transputer diese Erwartungen nicht erfüllten, war die Transputer-Architektur sehr einflussreich, um neue Ideen in der Computerarchitektur zu provozieren , von denen einige in verschiedenen Formen in modernen Systemen wieder aufgetaucht sind.

Hintergrund

In den frühen 1980er Jahren schienen konventionelle Zentralprozessoren (CPUs) an eine Leistungsgrenze zu stoßen. Bis zu diesem Zeitpunkt beschränkten Herstellungsschwierigkeiten die Menge an Schaltungen, die auf einen Chip passen konnten. Kontinuierliche Verbesserungen des Herstellungsprozesses beseitigten jedoch diese Einschränkung. Innerhalb eines Jahrzehnts könnten Chips mehr Schaltungen aufnehmen, als die Designer zu verwenden wussten. Herkömmliche CISC-Designs ( Complex Instruction Set Computer ) erreichten ein Leistungsplateau, und es war nicht klar, dass es überwunden werden könnte.

Es schien, dass der einzige Weg in die Zukunft darin bestand, die Parallelität zu erhöhen, die Verwendung mehrerer CPUs, die zusammenarbeiten würden, um mehrere Aufgaben gleichzeitig zu lösen. Dies hing davon ab, dass solche Maschinen mehrere Aufgaben gleichzeitig ausführen konnten, ein Prozess, der als Multitasking bezeichnet wird . Dies war im Allgemeinen für frühere CPU-Designs zu schwierig zu handhaben, aber neuere Designs waren in der Lage, dies effektiv zu erreichen. Es war klar, dass dies in Zukunft ein Feature aller Betriebssysteme (OSs) sein würde.

Ein Nebeneffekt der meisten Multitasking-Konzepte besteht darin, dass die Prozesse oft auch auf physikalisch verschiedenen CPUs ausgeführt werden können, was in diesem Fall als Multiprocessing bezeichnet wird . Eine kostengünstige CPU, die für Multiprocessing entwickelt wurde, könnte es ermöglichen, die Geschwindigkeit einer Maschine zu erhöhen, indem mehr CPUs hinzugefügt werden, möglicherweise viel billiger als durch die Verwendung eines schnelleren CPU-Designs.

Die ersten Transputer-Designs stammen von dem Informatiker David May und dem Telekommunikationsberater Robert Milne. 1990 erhielt May einen Ehren-DSc der University of Southampton , 1991 folgte seine Wahl zum Fellow der Royal Society und 1992 die Verleihung der Patterson-Medaille des Institute of Physics . Tony Fuge , damals führender Ingenieur bei Inmos , wurde 1987 für seine Arbeit am Transputer T414 mit dem Prince Philip Designers Prize ausgezeichnet.

Entwurf

Der Transputer (der Name von „Herleiten trans istor“ und „com puter “) war der erste Universalmikroprozessor speziell in verwendet werden parallele Rechensysteme. Das Ziel bestand darin, eine Chipfamilie mit unterschiedlichen Leistungs- und Preisklassen herzustellen, die zu einem vollständigen Parallelcomputer verdrahtet werden konnte. Der Name wurde gewählt, um die Rolle der einzelnen Transputer zu verdeutlichen: Eine Anzahl von ihnen sollte als Grundbausteine ​​​​verwendet werden, genau wie früher Transistoren .

Ursprünglich war geplant, den Transputer nur wenige Dollar pro Einheit kosten zu lassen. Inmos sah, dass sie für praktisch alles verwendet wurden, vom Betrieb als Haupt-CPU für einen Computer bis hin zur Funktion als Kanal-Controller für Plattenlaufwerke in derselben Maschine. Bei einer herkömmlichen Maschine wäre die Prozessorleistung eines Plattencontrollers beispielsweise im Leerlauf, wenn auf die Platte nicht zugegriffen wurde. Im Gegensatz dazu könnten in einem Transputersystem Ersatzzyklen auf jedem dieser Transputer für andere Aufgaben verwendet werden, wodurch die Gesamtleistung der Maschinen stark erhöht wird.

Selbst ein Transputer hätte alle Schaltungen, die für den eigenständigen Betrieb erforderlich sind, eine Funktion, die häufiger mit Mikrocontrollern in Verbindung gebracht wird . Die Absicht war, Transputer so einfach wie möglich miteinander zu verbinden, ohne dass ein komplexer Bus oder Motherboard erforderlich ist . Strom und ein einfaches Taktsignal mussten geliefert werden, aber sonst wenig: Random Access Memory (RAM), ein RAM-Controller, Busunterstützung und sogar ein Echtzeit-Betriebssystem (RTOS) waren verbaut.

Die Architektur

Der ursprüngliche Transputer verwendete eine sehr einfache und eher ungewöhnliche Architektur, um auf kleinem Raum eine hohe Leistung zu erzielen. Es verwendete Mikrocode als Hauptmethode zur Steuerung des Datenpfads, aber im Gegensatz zu anderen Designs der Zeit dauerten viele Befehle nur einen Zyklus zur Ausführung. Instruktions- Opcodes wurden als Eintrittspunkte in den Mikrocode -Festwertspeicher (ROM) verwendet und die Ausgaben aus dem ROM wurden direkt in den Datenpfad eingespeist. Bei Mehrzyklusbefehlen decodierte der Mikrocode vier mögliche Optionen für den zweiten Zyklus, während der Datenpfad den ersten Zyklus durchführte. Die Entscheidung, welche dieser Optionen tatsächlich genutzt wird, könnte gegen Ende des ersten Zyklus fallen. Dies ermöglichte einen sehr schnellen Betrieb, während die Architektur generisch blieb.

Die Taktrate von 20 MHz war für die damalige Zeit ziemlich hoch und die Designer waren sehr besorgt über die Praktikabilität, ein so schnelles Taktsignal auf einer Platine zu verteilen. Es wurde ein langsamerer externer Takt von 5 MHz verwendet, der mit einer Phasenregelschleife (PLL) auf die benötigte interne Frequenz multipliziert wurde . Der interne Takt hatte tatsächlich vier sich nicht überlappende Phasen und die Entwickler konnten jede beliebige Kombination dieser Phasen verwenden, so dass argumentiert werden könnte, dass der Transputer tatsächlich mit 80 MHz lief. In vielen Teilen des Designs wurde dynamische Logik verwendet, um die Fläche zu reduzieren und die Geschwindigkeit zu erhöhen. Leider lassen sich diese Verfahren nur schwer mit einem automatischen Testmustererzeugungs-Scantest kombinieren , so dass sie für spätere Designs in Ungnade gefallen sind.

Prentice-Hall veröffentlichte ein Buch über die allgemeinen Prinzipien des Transputers.

Links

Das grundlegende Design des Transputers umfasste serielle Verbindungen, die als "Os-Link" bekannt sind und es ihm ermöglichten, mit bis zu vier anderen Transputern mit jeweils 5, 10 oder 20 Mbit/s zu kommunizieren – was für die 1980er Jahre sehr schnell war. Eine beliebige Anzahl von Transputer könnte zusammen über Links verbunden werden (die zehn Meter laufen konnte) eine Berechnung bilden Farm . Eine hypothetische Desktop-Maschine könnte zwei der "Low-End"-Transputer haben, die Eingabe/Ausgabe (I/O)-Aufgaben auf einigen ihrer seriellen Leitungen (angeschlossen an die entsprechende Hardware) erledigen, während sie mit einem ihrer größeren Cousins ​​sprachen, der als CPU fungierte übereinander.

Es gab Grenzen für die Größe eines Systems, das auf diese Weise gebaut werden konnte. Da jeder Transputer in einem festen Punkt-zu-Punkt-Layout mit einem anderen verbunden war, erforderte das Senden von Nachrichten an einen entfernteren Transputer, dass Nachrichten von jedem Chip in der Leitung weitergeleitet wurden. Dies führte bei jedem "Sprung" über einen Link zu einer Verzögerung, was in großen Netzen zu langen Verzögerungen führte. Um dieses Problem zu lösen, lieferte Inmos außerdem einen Zero-Delay-Switch, der bis zu 32 Transputer (oder Switches) in noch größere Netzwerke einbindet.

Booten

Transputer konnten, wie dies bei den meisten Computern der Fall ist, aus dem Speicher booten, aber auch über ihre Netzwerkverbindungen . Ein spezieller Pin auf den Chips, BootFromROM, zeigte an, welche Methode verwendet werden sollte. Wenn BootFromROM beim Zurücksetzen des Chips bestätigt wurde, würde es mit der Verarbeitung des Befehls zwei Bytes vom oberen Rand des Speichers beginnen, was normalerweise verwendet wurde, um einen Rückwärtssprung in den Boot-Code durchzuführen. Wenn dieser Pin nicht bestätigt wurde, würde der Chip stattdessen auf den Empfang von Bytes auf einer beliebigen Netzwerkverbindung warten. Das erste zu empfangende Byte war die Länge des folgenden Codes. Die folgenden Bytes wurden in den niedrigen Speicher kopiert und dann gesprungen, sobald diese Anzahl von Bytes empfangen wurde.

Das allgemeine Konzept für das System bestand darin, dass ein Transputer als zentrale Autorität für das Booten eines Systems mit mehreren angeschlossenen Transputern fungiert. Der ausgewählte Transputer würde das BootFromROM permanent aktiviert haben, was dazu führen würde, dass er beim Start mit der Ausführung eines Booter-Prozesses vom ROM aus beginnt. Die anderen Transputer hätten das BootFromROM niedrig gebunden und würden einfach warten. Der Loader bootet den zentralen Transputer, der dann damit beginnt, Boot-Code an die anderen Transputer im Netzwerk zu senden, und kann den an jeden einzelnen gesendeten Code anpassen, beispielsweise indem er einen Gerätetreiber an den mit den Festplatten verbundenen Transputer sendet .

Das System beinhaltete auch die "speziellen" Längen 0 und 1, die für PEEK und POKE reserviert waren . Dies ermöglichte die Inspektion und Änderung des RAM in einem ungebooteten Transputer. Nach einem Peek, gefolgt von einer Speicheradresse oder einem Poke, mit einer Adresse und einem einzelnen Datenwort, kehrte der Transputer zum Warten auf einen Bootstrap zurück. Dieser Mechanismus wurde im Allgemeinen zum Debuggen verwendet.

Planer

Geplanter Verkehr über die Links wurde hinzugefügt. Auf Kommunikation wartende Prozesse würden automatisch pausieren, während die Netzwerkschaltung ihre Lese- oder Schreibvorgänge beendet. Anderen Prozessen, die auf dem Transputer laufen, würde dann diese Verarbeitungszeit gegeben. Es umfasste zwei Prioritätsstufen , um den Echtzeit- und Multiprozessorbetrieb zu verbessern . Das gleiche logische System wurde verwendet, um zwischen Programmen zu kommunizieren, die auf einem Transputer liefen, implementiert als virtuelle Netzwerkverbindungen im Speicher. Daher pausierten Programme, die nach Eingaben oder Ausgaben fragten, während der Vorgang abgeschlossen war, eine Aufgabe, für die normalerweise ein Betriebssystem als Arbiter der Hardware zuständig war. Betriebssysteme auf dem Transputer mussten keine Zeitplanung übernehmen; der Chip könnte als ein Betriebssystem angesehen werden.

Befehlssatz

Um all diese Funktionen auf einem Chip zu integrieren, war die Kernlogik des Transputers einfacher als die der meisten CPUs. Während einige ihn aufgrund seiner eher spärlichen Beschaffenheit als Computer mit reduziertem Befehlssatz (RISC) bezeichnet haben, und weil dies damals ein wünschenswertes Marketing- Schlagwort war , war er stark mikrocodiert , hatte einen begrenzten Registersatz und komplexe Memory-to-Memory-Befehle von denen es fest im CISC- Lager liegt. Im Gegensatz zu registerlastigen RISC- CPUs zum Laden/Speichern hatte der Transputer nur drei Datenregister, die sich wie ein Stapel verhielten. Außerdem zeigte ein Arbeitsbereichszeiger auf einen herkömmlichen Speicherstapel, der über die Anweisungen Load Localund leicht zugänglich ist Store Local. Dies ermöglichte einen sehr schnellen Kontextwechsel durch einfaches Ändern des Arbeitsbereichszeigers auf den von einem anderen Prozess verwendeten Speicher (eine Methode, die in einer Reihe von zeitgenössischen Designs verwendet wird, wie z. B. dem TMS9900 ). Der Inhalt des drei Registerstapels wurde nach bestimmten Befehlen wie Jump nicht beibehalten, wenn der Transputer einen Kontextwechsel durchführen konnte.

Der Transputer-Befehlssatz bestand aus 8-Bit-Befehlen, die aus Opcode- und Operanden- Nibbles zusammengesetzt waren . Das obere Halbbyte enthielt die 16 möglichen primären Befehlscodes, was ihn zu einem der sehr wenigen kommerzialisierten Computer mit minimalem Befehlssatz machte . Das untere Halbbyte enthielt den einen unmittelbaren konstanten Operanden, der üblicherweise als Offset relativ zum Arbeitsbereichszeiger (Speicherstapel) verwendet wird. Zwei prefix Anweisungen erlaubt den Bau von größeren Konstanten durch Voranstellen von ihren unteren Nibbles auf die Operanden des folgenden Anweisungen. Weitere Befehle wurden über den Befehlscode Operate ( Opr) unterstützt, der den konstanten Operanden als einen erweiterten Nulloperanden-Opcode decodierte, was eine fast endlose und einfache Befehlssatzerweiterung ermöglichte, als neuere Implementierungen des Transputers eingeführt wurden.

Die 16 „primären“ Ein-Operanden-Anweisungen waren:

Gedächtnisstütze Beschreibung
J Jump – sofortigen Operanden zum Befehlszeiger hinzufügen
LDLP Lokalen Zeiger laden – lädt einen arbeitsbereichsbezogenen Zeiger oben auf den Registerstapel
PFIX Präfix – allgemeine Methode zum Erhöhen des unteren Nibbles der folgenden primären Anweisung
LDNL Load non-local – lädt einen Wert-Offset von der Adresse oben auf dem Stack
LDC Konstante laden – Konstantenoperanden oben auf den Registerstapel laden
LDNLP Load non-local pointer – Ladeadresse, Offset vom oberen Ende des Stack
NFIX Negatives Präfix – allgemeine Methode zum Negieren (und möglicherweise Erhöhen) des unteren Nibbles
LDL Lokal laden – Wertoffset vom Arbeitsbereich laden
ADC Konstante hinzufügen – Konstantenoperanden zum Anfang des Registerstapels hinzufügen
ANRUF Unterprogrammaufruf – Befehlszeiger drücken und springen
CJ Bedingter Sprung – abhängig vom Wert oben im Registerstapel
AJW Arbeitsbereich anpassen – Operanden zum Arbeitsbereichszeiger hinzufügen
EQC Gleich Konstante – Testen Sie, ob der obere Teil des Registerstapels gleich dem konstanten Operanden ist
STL Lokal speichern – Speichern mit konstantem Abstand zum Arbeitsbereich
STNL Nicht-lokal speichern – Speichern am Adress-Offset vom oberen Ende des Stapels
OPR Operate – allgemeine Möglichkeit, den Befehlssatz zu erweitern

Alle diese Befehle nehmen eine Konstante an, die einen Offset oder eine arithmetische Konstante darstellt. Wenn diese Konstante kleiner als 16 war, wurden alle diese Befehle auf ein Byte codiert.

Die ersten 16 'sekundären' Null-Operanden-Befehle (unter Verwendung des OPR-Primärbefehls) waren:

Gedächtnisstütze Beschreibung
REV Reverse – Vertauschen Sie zwei oberste Elemente des Registerstapels
PFUND Byte laden
BSUB Byte tiefgestellt
ENDP Prozess beenden
DIFF Unterschied
HINZUFÜGEN Hinzufügen
GCALL Allgemeiner Aufruf – Vertauschen Sie die Spitze des Stapels und den Befehlszeiger
IN Eingabe – Nachricht empfangen
PROD Produkt
GT Größer als – die einzige Vergleichsanweisung
WSUB Wort tiefgestellt
AUS Ausgabe – Nachricht senden
SUB Subtrahieren
STARTP Prozess starten
OUTBYTE Ausgangsbyte – Ein-Byte-Nachricht senden
AUSWORTEN Ausgangswort – Ein-Wort-Nachricht senden

Entwicklung

Leeres B008- Motherboard
Auswahl an TRAMs

Um ein einfaches Mittel zum Prototyping, Konstruieren und Konfigurieren von Systemen mit mehreren Transputern bereitzustellen, führte Inmos 1987 den TRAM- Standard (TRAnsputer Module) ein. Ein TRAM war im Wesentlichen eine Baustein- Tochterplatine, die einen Transputer und optional externen Speicher und/oder Peripheriegeräte umfasste , mit einfachen standardisierten Anschlüssen für Stromversorgung, Transputer-Links, Takt- und Systemsignale. Es wurden verschiedene TRAM-Größen definiert, von der Basisgröße 1 TRAM (3,66 Zoll x 1,05 Zoll) bis zur Größe 8 (3,66 Zoll x 8,75 Zoll). Inmos produzierte eine Reihe von TRAM- Motherboards für verschiedene Hostbusse wie Industry Standard Architecture (ISA), MicroChannel oder VMEbus . TRAM-Links arbeiten mit 10 Mbit/s oder 20 Mbit/s.

Software

Transputer sollten mit der Programmiersprache occam programmiert werden , basierend auf dem Prozesskalkül der kommunizierenden sequentiellen Prozesse (CSP) . Der Transputer wurde speziell für die Ausführung von Occam entwickelt , mehr als moderne CISC- Designs wurden entwickelt, um Sprachen wie Pascal oder C auszuführen . Occam unterstützte Parallelität und kanalbasierte Kommunikation zwischen Prozessen oder zwischen Prozessoren als grundlegender Bestandteil der Sprache. Mit der in den Chip integrierten Parallelität und Kommunikation und der direkten Interaktion mit der Sprache wurde das Schreiben von Code für Dinge wie Gerätecontroller zu einer Trivialität; selbst der einfachste Code konnte die seriellen Ports auf I/O überwachen und würde automatisch schlafen, wenn keine Daten vorhanden waren.

Die ursprüngliche Occam-Entwicklungsumgebung für den Transputer war das Inmos D700 Transputer Development System (TDS). Dies war eine unorthodoxe integrierte Entwicklungsumgebung mit einem Editor, Compiler, Linker und (post-mortem) Debugger. Das TDS war eine in Occam geschriebene Transputer-Anwendung. Der TDS-Texteditor zeichnete sich dadurch aus, dass es sich um einen Falteditor handelte , der es ermöglichte, Codeblöcke auszublenden und zu enthüllen, um die Struktur des Codes deutlicher zu machen. Leider hat die Kombination aus einer unbekannten Programmiersprache und einer ebenso unbekannten Entwicklungsumgebung nichts zur frühen Popularität des Transputers beigetragen. Später veröffentlichte Inmos konventionellere Occam-Cross-Compiler, die Occam 2 Toolsets .

Implementierungen von gängigeren Programmiersprachen wie C, FORTRAN , Ada und Pascal wurden später auch von Inmos und Drittanbietern veröffentlicht. Dazu gehörten in der Regel Spracherweiterungen oder Bibliotheken, die auf weniger elegante Weise Occam-ähnliche Parallelität und kanalbasierte Kommunikation ermöglichten.

Die fehlende Unterstützung des Transputers für virtuellen Speicher verhinderte die Portierung von Mainstream-Varianten des Unix- Betriebssystems, obwohl Portierungen von Unix-ähnlichen Betriebssystemen (wie Minix und Idris von Whitesmiths ) produziert wurden. Ein fortschrittliches Unix-ähnliches verteiltes Betriebssystem , HeliOS , wurde ebenfalls speziell für Multi-Transputer-Systeme von Perihelion Software entwickelt .

Implementierungen

Die ersten Transputer wurden 1983 angekündigt und 1984 veröffentlicht.

Entsprechend ihrer Rolle als Mikrocontroller- ähnliche Geräte enthielten sie On-Board-RAM und einen integrierten RAM-Controller, der es ermöglichte, mehr Speicher ohne zusätzliche Hardware hinzuzufügen. Im Gegensatz zu anderen Designs enthielten Transputer keine E/A-Leitungen: Diese mussten mit Hardware hinzugefügt werden, die an die vorhandenen seriellen Verbindungen angeschlossen war. Es gab eine 'Ereignis'-Leitung, ähnlich der Unterbrechungsleitung eines herkömmlichen Prozessors. Als Kanal behandelt, konnte ein Programm vom Ereigniskanal 'eingeben' und erst fortfahren, nachdem die Ereignisleitung bestätigt wurde.

Alle Transputer liefen von einem externen 5-MHz-Takteingang; dies wurde multipliziert, um den Prozessortakt bereitzustellen.

Der Transputer enthielt weder eine Speicherverwaltungseinheit (MMU) noch ein virtuelles Speichersystem .

Transputer-Varianten (mit Ausnahme des abgebrochenen T9000) können in drei Gruppen eingeteilt werden: die 16-Bit- T2- Serie, die 32-Bit- T4- Serie und die 32-Bit- T8- Serie mit 64-Bit- IEEE754- Gleitkomma- Unterstützung.

T2: 16-Bit

Inmos T225 sterben

Der Prototyp des 16-Bit-Transputers war der S43 , dem der Scheduler und die DMA-gesteuerte Blockübertragung auf den Verbindungen fehlten. Bei der Markteinführung waren der T212 und der M212 (letzterer mit einem On-Board-Disk-Controller) die 16-Bit-Angebote. Der T212 war in den Prozessortaktraten 17,5 und 20 MHz erhältlich. Der T212 wurde durch den T222 ersetzt , wobei der On-Chip-RAM von 2 KB auf 4 KB erweitert wurde, und später durch den T225 . Dadurch wurde Debugging- Breakpoint- Unterstützung hinzugefügt (durch Erweiterung der Anweisung "J 0") plus einige zusätzliche Befehle aus dem T800-Befehlssatz. Sowohl der T222 als auch der T225 liefen mit 20 MHz.

T4: 32-Bit

Inmos T425 stirbt

Bei der Markteinführung war der T414 das 32-Bit-Angebot. Ursprünglich sollte die erste 32-Bit-Variante der T424 sein , aber aufgrund von Fertigungsschwierigkeiten wurde dieser als T414 mit 2 KB Onboard-RAM statt der vorgesehenen 4 KB umgestaltet. Der T414 war in 15- und 20-MHz-Varianten erhältlich. Der Arbeitsspeicher wurde später beim T425 auf 4 KB (in den Varianten 20, 25 und 30 MHz) wiederhergestellt , was auch dieJ 0Breakpoint-Unterstützung und zusätzliche T800-Anweisungen. Das im September 1989 veröffentlichte T400 war ein kostengünstiges 20-MHz-T425-Derivat mit 2 KB und zwei statt vier Links, das für den Markt für eingebettete Systeme gedacht war .

T8: Gleitkomma

Inmos T805 sterben

Der 1987 eingeführte Transputer T800 der zweiten Generation verfügte über einen erweiterten Befehlssatz. Die wichtigste Ergänzung war eine 64-Bit- Gleitkommaeinheit (FPU) und drei zusätzliche Register für Gleitkomma, die den Gleitkomma-Standard IEEE754-1985 implementieren. Es hatte auch 4 KB On-Board-RAM und war in 20- oder 25-MHz-Versionen erhältlich. Breakpoint-Unterstützung wurde in den späteren T801 und T805 hinzugefügt , wobei erstere separate Adress- und Datenbusse aufweisen, um die Leistung zu verbessern. Der T805 war später auch als 30-MHz-Teil erhältlich.

Ein verbessertes T810 war geplant, das mehr RAM, mehr und schnellere Links, zusätzliche Anweisungen und verbesserten Mikrocode hätte, aber dies wurde um 1990 abgebrochen.

Inmos auch eine Vielzahl von Unterstützungschips für die Transputer - Prozessoren, wie beispielsweise die erzeugte C004 32-Wege - Verbindungsschalter und den C011 und C012 „Link - Adapter“, die Transputerverbindungen erlaubt zu ein 8-Bit - Datenbus angeschlossen sind.

T400

Teil der ursprünglichen Inmos-Strategie war es, CPUs so klein und billig zu machen, dass sie mit anderer Logik in einem Gerät kombiniert werden können. Obwohl Systeme auf einem Chip (SoC), wie sie gemeinhin genannt werden, heute allgegenwärtig sind, war das Konzept Anfang der 1980er Jahre fast unbekannt. Um 1983 wurden zwei Projekte gestartet, der M212 und das TV-Spielzeug . Der M212 basierte auf einem Standard-T212-Kern mit zusätzlichem Festplatten-Controller für die Shugart-Standards ST 506 und ST 412. TV-Spielzeug sollte die Basis für eine Videospielkonsole sein und war ein Gemeinschaftsprojekt von Inmos und Sinclair Research .

Die Verbindungen in den Transputern T212 und T414/T424 verfügten über Hardware-DMA-Engines, sodass Übertragungen parallel zur Ausführung anderer Prozesse erfolgen konnten. Eine Variante des Designs, die als T400 bezeichnet wird und nicht mit einem späteren Transputer gleichen Namens zu verwechseln ist, wurde entworfen, bei der die CPU diese Übertragungen abwickelte. Dies reduzierte die Größe des Geräts erheblich, da 4 Link-Engines ungefähr die gleiche Größe wie die gesamte CPU hatten. Der T400 sollte als Kern in so genannten Systemen auf Silizium (SOS) verwendet werden, die heute als System-on-a-Chip (SoC) bezeichnet werden. Es war dieses Design, das Teil von TV-Spielzeug werden sollte. Das Projekt wurde 1985 abgebrochen.

T100

Obwohl die früheren SoC-Projekte nur begrenzten Erfolg hatten (der M212 wurde zeitweise verkauft), glaubten viele Designer immer noch fest an das Konzept und 1987 wurde ein neues Projekt, der T100, gestartet, der eine 8-Bit-Version des Transputers kombinierte CPU mit konfigurierbarer Logik basierend auf Zustandsmaschinen. Der Transputer-Befehlssatz basiert auf 8-Bit-Befehlen und kann problemlos mit jeder Wortgröße verwendet werden, die ein Vielfaches von 8 Bit ist. Zielmarkt für den T100 sollten Bus-Controller wie Futurebus und ein Upgrade für die Standard-Link-Adapter (C011 etc.) sein. Mit dem Start des T840 (später Basis des T9000) wurde das Projekt gestoppt.

TPCORE

TPCORE ist eine Implementierung des Transputers, einschließlich der Os-Links, die in einem FPGA läuft.

T9000

Inmos verbesserte die Leistung der Transputer der T8-Serie mit der Einführung des T9000 ( während der Entwicklung unter dem Codenamen H1 ). Der T9000 teilte die meisten Funktionen mit dem T800, verlagerte jedoch mehrere Teile des Designs in die Hardware und fügte mehrere Funktionen für die superskalare Unterstützung hinzu. Im Gegensatz zu den früheren Modellen hatte der T9000 einen echten 16-KB-Hochgeschwindigkeits- Cache (mit zufälligem Austausch) anstelle von RAM, ermöglichte jedoch auch die Verwendung als Speicher und enthielt eine MMU-ähnliche Funktionalität, um all dies zu verarbeiten (als PMI bezeichnet ). . Für mehr Geschwindigkeit hat der T9000 die Top 32 des Stacks zwischengespeichert, anstatt wie in früheren Versionen drei.

Der T9000 verwendet eine fünfstufige Pipeline für noch mehr Geschwindigkeit. Eine interessante Ergänzung war der Grouper, der Anweisungen aus dem Cache sammelt und sie in größere Pakete von bis zu 8 Byte gruppiert, um die Pipeline schneller zu versorgen. Gruppen werden dann in einem Zyklus abgeschlossen, als wären sie einzelne größere Befehle, die auf einer schnelleren CPU arbeiten.

Das Link-System wurde auf einen neuen 100-MHz-Modus aufgerüstet, aber im Gegensatz zu den früheren Systemen waren die Links nicht mehr abwärtskompatibel. Dieses neue paketbasierte Verbindungsprotokoll wurde DS-Link genannt und bildete später die Grundlage des seriellen Verbindungsstandards IEEE 1355 . Der T9000 fügte außerdem eine Link-Routing-Hardware namens VCP (Virtual Channel Processor) hinzu, die die Verbindungen von Punkt zu Punkt in ein echtes Netzwerk umwandelte und die Erstellung einer beliebigen Anzahl virtueller Kanäle auf den Verbindungen ermöglichte. Dies bedeutete, dass Programme die physikalische Anordnung der Verbindungen nicht mehr kennen mussten. Außerdem wurde eine Reihe von DS-Link-Unterstützungschips entwickelt, darunter der 32-Wege-Crossbar-Switch C104 und der Link-Adapter C101 .

Lange Verzögerungen bei der Entwicklung des T9000 führten dazu, dass die schnelleren Lade-/Speicher-Designs es bereits zum Zeitpunkt der Veröffentlichung übertrafen. Sein eigenes Leistungsziel, das T800 um den Faktor zehn zu schlagen, verfehlte es durchweg. Als das Projekt endgültig eingestellt wurde, erreichte es bei 50 MHz immer noch nur etwa 36 MIPS. Die Produktionsverzögerungen führten zu dem Witz, dass die beste Host-Architektur für einen T9000 ein Overhead-Projektor sei.

Dies war zu viel für Inmos, das nicht über die erforderlichen Mittel für die weitere Entwicklung verfügte. Zu diesem Zeitpunkt war das Unternehmen an SGS-Thomson (jetzt STMicroelectronics ) verkauft worden, deren Schwerpunkt auf dem Markt für eingebettete Systeme lag, und schließlich wurde das T9000-Projekt aufgegeben. Später wurde jedoch ein umfassend überarbeiteter 32-Bit-Transputer für eingebettete Anwendungen, die ST20- Serie, unter Verwendung einer für den T9000 entwickelten Technologie hergestellt. Der ST20-Kern wurde in Chipsätze für Set-Top-Box- und Global Positioning System (GPS)-Anwendungen integriert.

ST20

Obwohl der ST20 nicht unbedingt ein Transputer war, wurde er stark von den T4 und T9 beeinflusst und bildete die Grundlage des T450, der wohl der letzte der Transputer war. Die Mission des ST20 war es, ein wiederverwendbarer Kern im damals aufstrebenden SoC-Markt zu sein. Der ursprüngliche Name des ST20 war Reusable Micro Core (RMC). Die Architektur basierte lose auf der ursprünglichen T4-Architektur mit einem mikrocodegesteuerten Datenpfad. Es handelte sich jedoch um ein vollständiges Redesign mit VHDL als Designsprache und einem optimierten (und neu geschriebenen) Mikrocode-Compiler. Das Projekt wurde bereits 1990 ins Leben gerufen, als erkannt wurde, dass der T9 für viele Anwendungen zu groß sein würde. Die eigentliche Konstruktionsarbeit begann Mitte 1992. Es wurden mehrere Versuchsdesigns durchgeführt, von einer sehr einfachen CPU im RISC-Stil mit komplexen Anweisungen, die über Traps in Software implementiert wurden, bis hin zu einem ziemlich komplexen superskalaren Design, das im Konzept dem Tomasulo-Algorithmus ähnelt . Das endgültige Design sah dem ursprünglichen T4-Kern sehr ähnlich, obwohl einige einfache Befehlsgruppierungen und ein Workspace-Cache hinzugefügt wurden, um die Leistung zu verbessern.

Annahme

Obwohl der Transputer im Vergleich zu vielen zeitgenössischen Designs einfach, aber leistungsstark war, erreichte er jedoch nie annähernd sein Ziel, universell in CPU- und Mikrocontroller-Rollen eingesetzt zu werden. Auf dem Mikrocontroller-Markt wurde der Markt von 8-Bit-Maschinen dominiert, bei denen die Kosten die größte Rolle spielten. Hier waren selbst die T2s den meisten Nutzern zu mächtig und zu teuer.

Im Computer-Desktop- und Workstation- Bereich war der Transputer ziemlich schnell (mit etwa 10 Millionen Instruktionen pro Sekunde (MIPS) bei 20 MHz). Dies war eine hervorragende Leistung für die frühen 1980er Jahre, aber als die mit einer Gleitkommaeinheit (FPU) ausgestattete T800 ausgeliefert wurde, hatten andere RISC-Designs sie übertroffen. Dies hätte weitgehend abgemildert werden können, wenn die Maschinen wie geplant mehrere Transputer verwendet hätten, aber T800s kosteten bei der Einführung jeweils etwa 400 US-Dollar, was ein schlechtes Preis-Leistungs-Verhältnis bedeutete. Es wurden nur wenige Transputer-basierte Arbeitsplatzsysteme entwickelt; am bemerkenswertesten dürfte die Atari Transputer Workstation sein .

Der Transputer war im Bereich des massiv parallelen Computings erfolgreicher, wo in den späten 1980er Jahren mehrere Anbieter transputerbasierte Systeme herstellten. Dazu gehörten Meiko Scientific (gegründet von ehemaligen Inmos-Mitarbeitern), Floating Point Systems , Parsytec und Parsys. Mehrere britische akademischen Institutionen gegründet Forschungsaktivitäten in der Anwendung von Transputer-basierte parallele Systeme, darunter Bristol Polytechnic ‚s Bristol Transputer - Center und der University of Edinburgh ‘ s Edinburgh Concurrent Supercomputer - Projekt. Auch die Datenerfassungs- und Second-Level-Trigger-Systeme des Hochenergiephysik- ZEUS- Experiments für den Collider Hadron-Elektron-Ring-Anlage (HERA) bei DESY basierten auf einem Netzwerk von über 300 synchron getakteten Transputern, die in mehrere Subsysteme unterteilt sind. Diese steuerten sowohl das Auslesen der benutzerdefinierten Detektorelektronik als auch die Rekonstruktionsalgorithmen für die Auswahl physikalischer Ereignisse.

Die Parallelverarbeitungsfähigkeit des Transputers wurde Anfang der 90er Jahre von der weltgrößten Druckerei RR Donnelley & Sons kommerziell für die Bildverarbeitung genutzt . Die Fähigkeit, digitale Bilder zur Druckvorbereitung schnell umzuwandeln, verschaffte dem Unternehmen einen erheblichen Vorteil gegenüber seinen Mitbewerbern. Diese Entwicklung wurde von Michael Bengtson im RR Donnelley Technology Center geleitet. Innerhalb weniger Jahre beendete die Verarbeitungsfähigkeit sogar von Desktop-Computern den Bedarf an benutzerdefinierten Multiprozessorsystemen für das Unternehmen.

Die deutsche Firma Jäger Messtechnik verwendete Transputer für ihre frühen ADwin- Produkte zur Echtzeit- Datenerfassung und -Steuerung.

Ein französisches Unternehmen baute den Archipel Volvox Supercomputer mit bis zu 144 T800 und T400 Transputern. Es wurde von einem Silicon Graphics Indigo2 mit UNIX und einer speziellen Karte gesteuert, die mit den Volvox-Backplanes verbunden war.

Transputer fanden auch Anwendung in Protokollanalysatoren wie dem Siemens/Tektronix K1103 und in militärischen Anwendungen, wo die Array-Architektur für Anwendungen wie Radar und serielle Verbindungen (die in den 1980er Jahren Hochgeschwindigkeitsverbindungen waren) gut dazu dienten, Kosten und Gewicht in Sub- Systemkommunikation.

Der Transputer tauchte auch in Produkten mit Bezug zur virtuellen Realität auf, wie dem ProVision 100-System von Division Limited, Bristol, das eine Kombination aus Intel i860- , 80486 / 33- und Toshiba- HSP-Prozessoren zusammen mit T805- oder T425-Transputern aufweist und eine Rendering-Engine implementiert , die kann dann als Server von PC , Sun SPARCstation oder VAX- Systemen angesprochen werden.

Myriade , eine europäische miniaturisierte Satellitenplattform , die von Astrium Satellites und CNES entwickelt und von Satelliten wie dem Picard verwendet wird , basiert auf dem T805 mit einer Leistung von etwa 4 MIPS und soll bis etwa 2015 in Produktion bleiben.

Der asynchrone Betrieb der Kommunikation und Berechnung ermöglichte die Entwicklung asynchroner Algorithmen, wie beispielsweise Banes "Asychronous Polynomial Zero Finding"-Algorithmus. Der Bereich der asynchronen Algorithmen und die asynchrone Implementierung aktueller Algorithmen werden wahrscheinlich eine Schlüsselrolle beim Übergang zum Exascale-Computing spielen .

Die Raumsonde High Energy Transient Explorer 2 (HETE-2) verwendet 4 × T805-Transputer und 8 × DSP56001 mit einer Leistung von etwa 100 Millionen Befehlen pro Sekunde (MIPS).

Erbe

Die wachsende interne Parallelität war eine treibende Kraft für Verbesserungen bei herkömmlichen CPU-Designs. Anstelle von expliziter Parallelität auf Thread-Ebene (wie sie im Transputer verwendet wird) nutzten CPU-Entwürfe implizite Parallelität auf Befehlsebene, indem sie Codesequenzen auf Datenabhängigkeiten untersuchen und mehrere unabhängige Befehle an verschiedene Ausführungseinheiten ausgeben. Dies wird als superskalare Verarbeitung bezeichnet. Superskalare Prozessoren eignen sich zum Optimieren der Ausführung von sequentiell aufgebauten Codefragmenten. Die Kombination aus superskalarer Verarbeitung und spekulativer Ausführung lieferte eine spürbare Leistungssteigerung bei bestehenden Code-Bodys – die meist in Pascal, Fortran, C und C++ geschrieben wurden. Angesichts dieser erheblichen und regelmäßigen Leistungsverbesserungen des bestehenden Codes gab es wenig Anreiz, Software in Sprachen oder Codierungsstilen umzuschreiben, die mehr Parallelität auf Aufgabenebene offenlegen.

Nichtsdestotrotz findet sich das Modell kooperierender nebenläufiger Prozessoren immer noch in Cluster-Computing- Systemen, die das Design von Supercomputern im 21. Jahrhundert dominieren . Im Gegensatz zur Transputer-Architektur verwenden die Verarbeitungseinheiten in diesen Systemen typischerweise superskalare CPUs mit Zugriff auf beträchtliche Mengen an Arbeitsspeicher und Plattenspeicher, auf denen konventionelle Betriebssysteme und Netzwerkschnittstellen laufen. Aufgrund der komplexeren Knoten ist die zur Koordinierung der Parallelität in solchen Systemen verwendete Softwarearchitektur typischerweise weitaus schwerer als in der Transputer-Architektur.

Das grundlegende Transputer-Motiv bleibt bestehen, wurde jedoch über 20 Jahre lang durch die wiederholte Verdoppelung der Transistorzahlen maskiert. Unweigerlich gingen den Entwicklern von Mikroprozessoren schließlich die Verwendungsmöglichkeiten für die größeren physischen Ressourcen aus, fast zur gleichen Zeit, als die Technologieskalierung an ihre Grenzen stieß. Der Stromverbrauch und damit der Wärmeableitungsbedarf machen weitere Taktratenerhöhungen unmöglich. Diese Faktoren führten die Branche zu Lösungen, die sich im Wesentlichen kaum von den von Inmos vorgeschlagenen unterscheiden.

Die leistungsstärksten Supercomputer der Welt, die auf Entwürfen der Columbia University basieren und als IBM Blue Gene gebaut wurden , sind reale Inkarnationen des Transputer-Traums. Es handelt sich um riesige Baugruppen identischer, relativ leistungsschwacher SoCs.

Die jüngsten Trends haben auch versucht, das Transistordilemma auf eine Weise zu lösen, die selbst für Inmos zu futuristisch gewesen wäre. Neben dem Hinzufügen von Komponenten zum CPU-Die und dem Platzieren mehrerer Dies in einem System platzieren moderne Prozessoren zunehmend mehrere Kerne in einem Die. Die Transputer-Designer hatten Mühe, auch nur einen Kern in ihr Transistorbudget zu stecken. Heute können Designer, die mit einer 1000-fachen Erhöhung der Transistordichten arbeiten, in der Regel viele platzieren. Eine der jüngsten kommerziellen Entwicklungen ist aus der Firma XMOS hervorgegangen , die eine Familie von eingebetteten Multi-Core-Multi-Threaded-Prozessoren entwickelt hat, die stark mit dem Transputer und Inmos harmonieren. Es gibt eine aufstrebende Klasse von Multicore-/Manycore-Prozessoren, die den Ansatz eines Network on a Chip (NoC) verfolgen, wie der Cell-Prozessor , die Adapteva Epiphany-Architektur, Tilera usw.

Der transputer und Inmos trugen dazu bei, Bristol , Großbritannien, als Drehscheibe für mikroelektronisches Design und Innovation zu etablieren.

Siehe auch

Verweise

Externe Links