minpic01.jpg

Transputer-(R)evolution H1

Inmos nennt erste Zahlen und Spezifikationen zum H1

Herbert Pichlik

Transputer-Hersteller Inmos - mittlerweile zu SGS-Thomson gehörig - schürte geschickt mit sehr knapp dosierten Informationen die Neugier auf die Chips der nächsten Transputer-Generation. Nach einem sehr kurzen Vorbericht in c't 11/90 hier nun die Details.

Unterthema: H1-Highlights im Überblick

Als man Ende 1987 endlich die ersten, lang erwarteten T800-Transputer mit integriertem Arithmetik-Coprozessor auslieferte, durfte dieser sich noch an Gespannen aus 80386/80387 (Intel) oder 68020/68881 (Motorola) messen. Dabei sah er schon als einzelner Chip sehr gut aus, und wenn die Leistung immer noch nicht reichte, konnte man die Leistung mit einem Netzwerk aus quasi beliebig vielen Transputern steigern. Aber die Konkurrenz schläft bekanntlich nicht, und im Zuge der RISC-Euphorie entstand nach rund drei Jahren ein massiver MIPS- und FLOPS-Zwang.

Zahlenspiele

Vor allem Intels auf einen Chip gebündelte Prozessor-Power in Gestalt des i860 ließ so manchen Entwickler nachdenklich werden: zwar konnte er solche Leistung auch mit einem Verbund aus genügend vielen Transputern erreichen -, aber warum soll man sich den Widrigkeiten der Parallel-Programmierung aussetzen und die Leiterplatten mit vielen Prozessoren vollstopfen, wenn´s auch anders geht. So nimmt es nicht Wunder, daß die Transputer-Schmiede bei Inmos `markige Zahlen´ präsentieren mußten, um den Wettbewerb wieder etwas spannender zu gestalten.

Laut Herstellerangaben prallen so in unserem Beispiel potentielle 150 MIPS Integer-Spitzenleistung (60 MIPS Dauer) eines H1-Chips auf 40 MIPS beim derzeit gelieferten i860 (40 MHz Takt). Bei Fließkomma-Operationen wird der H1 angeblich mit 20 MFLOPS (10 MFLOPS Dauer) aufwarten, der i860 setzt stolze 80 MFLOPS dagegen. Aufgrund chipinterner Parallelität addiert `die Werbung´ beim i860 die Werte zu stolzen 120 MIPS; den H1 wird man uns in ähnlicher Rechnung vermutlich zukünftig mit 170 MIPS präsentieren.

Realistische Betrachter haben sich bezüglich solcher `Spitzenwerte´ mittlerweile auf die lapidare Formel `Diese Werte werden garantiert nicht überschritten´ geeinigt. Aber auch wenn man diese Werte real höchst selten erreichen kann: beide Prozessoren gehören zur derzeitigen Spitzenklasse. Weitere MIPSereien seien auf die Verfügbarkeit real meßbarer Systeme vertagt.

Gerade beim Transputer hängt ein gut Teil der Leistung einer aus mehreren Transputern aufgebauten Maschine auch davon ab, wie gut diese in einem Multi-Transputer-Netz miteinander kooperieren - viel Design-Know-how und dessen Umsetzung sind also ebenso gefragt. Über neue Ansätze bei der Vernetzung der H1-Transputer - Stichwort `Wormhole-Routing´ - hat c't bereits ausführlich berichtet [1]. In der Tabelle sind die wichtigsten Eckdaten des neuen H1-Chips rekapituliert, die weitgehend bereits in [2] zur Sprache kamen. Im folgenden geht es vornehmlich um den H1-Chip selbst.

Gemeinsamkeiten ...

Der Aufbau des neuen H1-Prozessors (siehe Blockdarstellungen) hat sich gegenüber der bisherigen T-Architektur (`T´ steht jetzt für alle `alten´ Transputer, also die T2x-, T4x- und T8x-Reihen) nicht grundlegend geändert. Es sind jedoch eine Reihe von zusätzlichen Komponenten vorgesehen, die eine beträchtliche Leistungssteigerung sowohl in der Integer- und Floatingpoint-Leistung als auch auf der Kommunikationsseite versprechen. Kenner des T800-Innenlebens (abgebildet ist die neueste Variante, der T805) dürften die Gemeinsamkeiten sofort erkennen: CPU, FPU, Systemdienste, Timer, Link-Interfaces, Event-Handler, Speicher-Interface zu externem Speicher und sogenanntes On-Chip-RAM.

... und Unterschiede

Völlig neu beim H1 ist zum Beispiel der Virtual Channel Processor (VCP), der zusammen mit verbesserten Link-Interfaces die Programmierung von virtuellen Kanälen in Transputer-Systemen ermöglicht [1]. Das On-Chip-RAM ist beim H1 16 KByte groß und läßt sich wahlweise als Befehls-/ Datencache oder als sehr schnelles internes RAM benutzen - für manche Anwendungen (etwa als Embedded-Controller) kann es externes RAM ganz überflüssig machen.

Auch eine Aufteilung in 8 KByte Cache und 8 KByte Arbeits-RAM ist möglich. So lassen sich zum einen die Vorteile des Caching nutzen, andererseits kann man kritische Programmteile, deren Zeitverhalten - etwa im Interrupt-Service - exakt bekannt sein muß, im schnellen Arbeits-RAM von allen Timing-Unwägbarkeiten eines Cache abkoppeln.

Statt der von den T-Chips her bekannten Signale `Reset´, `Error´ und `Analyse´ verfügt der H1 über zwei sogenannte Control-Links, deren Möglichkeiten zur Steuerung und zum komfortablen Debugging aber weit über die der T-Familie hinausgehen sollen. Die superskalare Processor-Pipeline-Architektur umfaßt Befehls-Puffer, Decoder, Grouper, Workspace Cache, zwei Adreßgeneratoren und die (gegenüber den T-Typen erweiterten) Funktionsblöcke ALU und FPU.

Die Link-Interfaces hat man völlig überarbeitet. Sie werden mit 100 MBit/s fünfmal schneller als die der Vorgänger sein und sind auch deshalb nicht mehr anschlußkompatibel zu diesen, weil Inmos das Protokoll verändert hat: die asynchrone Zweidraht-Linkverbindung mit reinem Software-Protokoll ist einem synchronen Verfahren (Strobe-Leitungen) gewichen. Inmos spricht beim H1 jetzt von Data-Strobe-Links (kurz DS-Links) und bei den T-Chips von OS-Links (steht für Oversampling). Die totale Link-Transfer-Bandbreite, wenn also alle vier Links mit Hilfe eigener DMA-Kanäle unter Volldampf senden und empfangen, soll bei 80 MByte/s liegen. Für die Kopplung von Systemen mit DS- und OS-Links hat Inmos ein Konverter-IC mit der Bezeichnung C100 vorgesehen.

High-Speed-Speicher

Der H1 ist zunächst - wie der T800 - in erster Linie ein 32-Bit-Prozessor: das heißt, seine `natürliche´ interne Wortbreite, etwa für Operanden in Registern, beträgt 32 Bit (FPU 64 Bit). In seinem Innern existieren allerdings vier unabhängige 32-Bit-Pfade einmal für Daten und einmal für Adressen - angeblich sei der Cache einer damit theoretisch möglichen Spitzenbandbreite von 200 MWord/s bei 50 MHz interner Taktrate gewachsen.

Durch die hohe interne Kommunikationsbandbreite und die Pipeline-Architektur kann der H1 bis zu acht Befehle gleichzeitig ausführen. Laut Inmos ist dazu - anders als etwa beim i860 - kein spezieller, optimierender Compiler nötig, sondern die Hardware (Decoder/Grouper) sorge selbst für die optimale Code-Klassifizierung und Verteilung auf verschiedene Ausführungseinheiten. Zusätzlich hat man die FPU gegenüber den T8xx-Chips um eine direkte Unterstützung trigonometrischer Funktionen erweitert.

Transputer - auch schon die erste Generation - stellen eine Mischform aus RISC- und CISC-Prozessor dar. Die relativ vielen Maschinenbefehle (mehr als hundert beim T800) weisen in Richtung CISC, die zum Teil sehr kurzen Befehle (4-Bit-Operand, 4-Bit-Opcode für die am häufigsten benötigten Befehle) sind typische RISC-Merkmale. Auch bereits die T-Chips arbeiten viele Befehle in ein oder zwei Takten ab, so daß der Befehlshunger von CPU und FPU (auch hier ist schon Parallelarbeit möglich) nach schnellem Nachschub, sprich: großer Speicherbus-Bandbreite verlangt.

Beim H1 ist diese Nachschublage weitaus prekärer: intern können weit mehr Befehle parallel verarbeitet werden, und auch 50 MHz Taktfrequenz (gegenüber derzeit maximal 30 MHz bei T8x) erzwingen eine erhöhte Speicherbandbreite. Um nun - trotz Cache - extern nicht allzu schnelle RAMs zu benötigen, stellt ein 64 Bit breiter Datenbus nach außen einen einfachen Weg zur Verdopplung der Speicherbandbreite dar.

Das Speicher-Interface bietet allerdings - noch weitergehend als bei der T-Serie - einige Extras, die Hardware-Designern das Leben drastisch erleichtern. So werden vier verschiedene Speicherarten - dynamisches RAM, statisches RAM, EPROM und Video-RAM - direkt unterstützt, also ohne Zusatz-Hardware. Diese können als verschiedene Bänke gleichzeitig (also auch gemischt) im System sein, und überdies läßt sich die Busbreite je Bank zu 8, 16, 32 und 64 Bit frei wählen. Der Speicherausbau kann ohne Zusatzbeschaltung allerdings nicht beliebig groß gewählt werden, sondern wird durch die Belastung - letztlich die Anzahl der Speicher-Chips - seitens der Speicherhardware vorgegeben. Inmos nennt noch keine exakten Werte, sondern spricht davon, daß sich derzeit `ohne Extras´ etwa 8 bis 16 MByte RAM realisieren lassen.

Zuverlässigkeit

Ein solch flexibles, bereits im Prozessor integriertes Speicher-Interface hat ganz wesentliche Bedeutung für die Zuverlässigkeit eines damit realisierten Rechnersystems. Zunächst reduzieren sich Entwurfsaufwand und Gefahr von Design-Fehlern für Transputer-Systeme verglichen mit anderen Rechnersystemen erheblich, weil nahezu alle Systemkomponenten `on Chip´ sind.

In der Transputer-Welt setzt man immer mehr sogenannte TRAMs ein, also kleine Steckkarten mit Transputern und RAM, die auf größeren Trägerboards zu Multi-Transputer-Systemen kombiniert werden können. Obwohl der H1-Chip wesentlich mehr Pins (siehe Tabelle) als die bisherigen Transputer haben wird, kann man durch die nicht mehr benötigte Peripherielogik davon ausgehen, daß sich TRAM-Leiterplatten auf H1-Basis weiterhin mit sehr kleiner Fläche und dabei mit maximal vier Signallagen herstellen lassen.

minpic02.jpg

minpic03.jpg

Blockschaltbilder von H1 und T805 mit den wesentlichen Anschlußbezeichnungen. Neu im H1 sind die `Processor Pipeline´, der vergrößerte On-Chip-Speicher (16 KByte), der `Virtual Channel Processor´ und die schnellen `Data-Strobe-Links´.

Für die Zuverlässigkeit haben Anzahl der Lagen und Durchkontaktierungen große Bedeutung, weil die Ausfallrate `failure in time´, abgekürzt fit, linear mit jeder dieser Größen ansteigt. Des weiteren bedeutet jedes eingesparte Bauteil - neben geringeren Kosten und generell reduziertem Aufwand - ein Bauteil weniger, das ausfallen kann. Und nicht zuletzt fallen Verbindungen zwischen diesen weg, auf denen sich Spikes, Glitches und anderweitig unerfreuliche Dinge tummeln können.

Software-Fortschritte

Das Konzept für die erste Transputer-Generation sollte einfach zu beherrschende Multiprozessor-Systeme ermöglichen. Als Mittel, parallele Prozesse auf mehrere Transputer in einem Netz zu verteilen, schuf man die prozessornahe Hochsprache Occam. Nicht in Erwägung gezogen hat man jedoch ein Konzept für ein eigenständiges, transputer-basiertes und `paralleles´ Betriebssystem. Vielmehr setzte man auf die Betriebssysteme bereits bestehender Rechnersysteme auf und verwendete Transputer beziehungsweise Transputer-Netzwerke als - vereinfacht gesagt - eine Art Hochleistungs-Coprozessor. Gemäß der Überlegung, daß man Parallel-Processing nur dort sinnvoll betreiben kann, wo sich die zu lösende Aufgabe hinreichend stark parallelisieren läßt, entstanden in der Hauptsache Spezial-Maschinen, etwa im Bereich Grafik-Animation oder numerischer Mathematik.

Mit der steigenden Akzeptanz des Transputers verstärkte sich aber der Wunsch vieler Anwender nach einer universellen Transputer-Maschine, also etwa einer Workstation mit einem `echten´, Parallelität unterstützenden Transputer-Betriebssystem. Das Betriebssystem Helios ist ein solcher Ansatz, dessen Schaffung jedoch einige ernsthafte Mängel der ersten Transputer-Generation offenbarte.

Das in [1] bereits vorgestellte neue Link-Konzept mit den Routing-Chips C104 dient vorwiegend der Vereinfachung und Erhöhung der `Connectivity´, verbessert also rundum die vernetzungsbezogene Software-Entwicklung; die Netzwerktopologie läßt sich zum Beispiel im laufenden Betrieb ständig neuen Erfordernissen anpassen, Prozesse können zur Laufzeit auf schnellstem Weg zu `unbeschäftigen´ Prozessoren geschickt werden, ohne daß - wie bei den T-Chips - die exakte Netztopologie schon beim Software-Entwurf bekannt sein muß.

mnqpic01.jpg

Systemdienste

mnqpic02.jpg

Programmierbares Speicher-Interface

mnqpic03.jpg

Event-Ein-/Ausgänge

mnqpic04.jpg

DS-Link-Interface

Die zahlreichen Hardware-Verbesserungen und -Erweiterungen ermöglichen den Designern von Systemsoftware, Real-Time-Kernels und fortschrittliche Betriebssysteme einfacher zu implementieren. Die hinzugekommene Monitor- und Debugging-Hardware erleichtert die Fehlersuche bei der Software-Entwicklung und auch spätere Online-Fehlerbehandlungen beträchtlich. Defekte Transputer-Knoten können sehr effizient erkannt und aus dem Netzwerk ausgegliedert werden. Dies ist vor allem für Anwendungen mit hohen Anforderungen an die Zuverlässigkeit interessant, da sich zwar im Fehlerfall die Performance verringert, das ganze System jedoch noch intakt bleibt.

Der transputer-interne Multitasking-Kernel ermöglicht bereits mit den Chips der T-Familie, parallelisierte Software auf nur einem Transputer zu entwickeln und zu erproben; die so entstandene Software läßt sich ohne Änderung des Quelltextes auf echte Multiprozessorsysteme übertragen. Der interne `Multitasker´ kam aber auch hardwarenahen Programmierern sehr zu statten. Während es die Systemprogrammierer bei den T-Chips aber relativ schwer hatten, das chipinterne Multitasking-Scheduling gezielt zu beeinflussen, versprechen die H1-Chips weitgehende Kontrolle über diese Interna.

Ein größeres Handicap für die Betriebssystementwickler dürfte aber das Fehlen jeglicher chipinterner Mechanismen für einen Speicherzugriffsschutz gewesen sein. In Hardware implementierter Speicherschutz und eine sogenannte Adreß-Translations-Logik verringern nun den Aufwand der Softwareentwicklung deutlich. Die vielen neuen Möglichkeiten auf Hard- und Softwareseite (etwa verbesserte Kapselung von Daten) lassen auf überschaubare, leistungsfähige Computersysteme mit hohem Grad an Wartbarkeit, Zuverlässigkeit, Qualität und Sicherheit hoffen.

Kompatibilität ...

Durch die Bereitstellung eines speziellen Prozeß-Typs (dem sogenannten G-Prozeß) erhalten die H1-Transputer ihre Binärcode-Kompatibilität zur T805-Serie. Das heißt, daß existierender Binärcode, der für den IMS T805 kompiliert wurde, auch auf einem H1 lauffähig sein wird, obwohl der H1 eine Fülle funktionaler Verbesserungen aufweist (die allerdings nicht alle in diesem Modus ausgenutzt werden können).

Damit man in der Anfangszeit des H1 bestehende T805-Applikationen auch auf reinen H1-Systemen betreiben kann, muß das T805-Boot-Verhalten über Links gesondert emuliert werden. Inmos kündigt dazu ein spezielles Board aus H1 und C100 an, das über ROM-Code das Boot-Zeit-Verhalten eines T805 nachbildet. Der IMS C100 führt einerseits die erwähnte Protokoll-Konvertierung zwischen den OS-Links und den DS-Links durch. Weiterhin setzt er die Signale `Reset´, `Analyse´ und `Error´ der T-Prozessoren in geeignete Kommandonachrichten an die H1-Control-Links um.

Wenn konfigurierter, T805-binärkompatibler Code auf einem H1-Transputer laufen soll, der über einen C100 mit einer Komponente der T-Familie verbunden ist, so muß über das VCP-Register (Virtual Channel Processor) auf dem H1 der `T-Mode´ gesetzt werden. Das heißt, es dürfen keine virtuellen Kanäle involviert werden. Der Code auf Vertretern beider Transputer-Generationen läuft dann ohne Veränderungen. Bei dieser Hardware-Konfiguration ist es jedoch trotzdem möglich, sich die virtuellen Kanäle des H1 zunutze zu machen, wenn man den T805-binärkompatiblen Code rekonfiguriert und dabei die externen Kanaladressen verändert.

... und ihre Grenzen

Aber auch der Code für die neuen Prozeßtypen, mit denen man die neuen Möglichkeiten des H1 ausschöpfen kann, ist immer noch befehlssatzkompatibel zum T805-Transputer. Das bedeutet, daß die Hersteller von derzeit für den T805 angebotenen Compilern nur relativ geringfügige Änderungen an diesen vornehmen müssen, um die H1-Welt zu unterstützen. Speziell neue Befehle und neue beziehungsweise geänderte interne Datenstrukturen sind davon betroffen. Sofern die Compiler keine sprachspezifischen Erweiterungen im Hinblick auf die Verteilung von Prozessen auf Prozessoren und Kanäle haben, sollte sich der Quell-Code für T805-Prozessoren ohne Änderungen mit den neuen Compilern übersetzen lassen.

Es wäre ein Wunder, gäbe es bei so viel Innovation nicht doch ein paar Probleme bei der Kompatibilität zwischen beiden Transputer-Welten. Die Probleme werden wohl weniger in kompiliertem Binärcode als vielmehr in Assembler-Code und bei Systemsoftware wie Echtzeit-Kernels auftreten. Folgende Unverträglichkeiten sind derzeit bekannt:

Mehr Kommunikation

Die 20 MBit/s, die maximal über ein T800-Link (in eine Richtung) erreichbar sind, ergeben als Nettorate (protokollbereinigt) rund 800 KByte/s. Zum Vergleich: eine solche Datenrate schaffen gerade mal die `etwas besseren´ PC-Festplatten (SCSI oder AT-Bus). Emsige Transputer-Anwender stießen aber auch mit solch hohen Raten gar nicht so selten an Grenzen: die insgesamt vorhandenen Verluste durch Kommunikationszeiten zwischen Transputern bestimmen nämlich, wie fein man Aufgaben parallelisieren kann.

So läßt sich zum Beispiel die Parallelisierung einer Matrizenmultiplikation theoretisch recht weit treiben, also auf viele Prozessoren verteilen. In der Praxis erreicht man aber durch Verwendung weiterer Transputer irgendwann keine Leistungssteigerung mehr, weil das Verschicken der Teilaufgaben ins Netz und das Einsammeln der Teilergebnisse länger dauert als die Berechnungen. Die Steigerung der Link-Geschwindigkeit beim H1 hat also einen guten Grund, und in Verbindung mit den Routing-Chips C104 lassen sich - etwa durch gleichzeitige Benutzung aller vier Links zwischen zwei beliebig auswählbaren Transputern - weitere kräftige Beschleunigungen erzielen.

Die folgenden Beispiele mögen die Flexibilität und leichte Skalierbarkeit der neuen H1-Transputer verdeutlichen. In manchen Applikationen ist es sinnvoll, ein sogenanntes Clos-Netzwerk aus Routing-Chips C104 zu konstruieren (der C104 kann jedes seiner 32 Links mit jedem anderen verbinden).

minpic04.jpg

Ein zweidimensionales 16×16-Feld bestehend aus 256 Transputern mit ebenso vielen Routing-Chips (gemäß Block links unten) bringt es auf eine netzinterne Gesamtdatenrate von 1,3 GByte/s.

Bei dem beispielhaft abgebildeten Netzwerk aus 48 Routing-Chips hat man 512 Links für den Anschluß von Transputern zur Verfügung, wobei jeder Transputer (letztlich jedes Link) über die Routing-Chips direkt mit jedem anderen verbunden werden kann. Der Weg von einem Transputer zum andern führt dabei grundsätzlich immer über drei Routing-Chips: also etwa vom ersten C104 in der linken Spalte zu irgendeinem in der rechten und von dort wieder zu einem in der linken Spalte. Die Latenzzeit beträgt ungefähr eine Mikrosekunde (Niedriglastbetrieb), und die netzwerkinterne Gesamtbandbreite erreicht den respektablen Wert von 5 GByte/s.

minpic05.jpg

Das dreistufige Clos-Netzwerk besteht aus 48 Routing-Chips IMS C104. Es bietet 512 freie Links, von denen jedes mit jedem anderen über maximal drei Routing-Chips verbunden werden kann.

Interessant sind auch Topologien, die jeweils einen H1-Transputer mit lokalem RAM und einen C104-Routing-Chip zu einem Knotenelement zusammenfassen, um als Basis für eine Hypercube-Architektur oder ein Knotenfeld zu dienen (auch Prozessorfarm genannt). Die nächste Darstellung zeigt ein zweidimensionales 16×16-Feld aus 256 solcher `Building-Blocks´ aus H1-Transputer und Routing-Element C104.

Der Witz eines solchen Systems liegt vor allem darin, daß zwischen allen Knoten eine Verbindung aus vier Links besteht, über die ein Transputer gleichzeitig mit einem anderen kommunizieren kann. Im Niedriglastbetrieb wird eine interne Gesamtbandbreite von 1,3 GByte/s erreicht, bei einer Latenzzeit von rund 10 Mikrosekunden. Einzelne Messages müssen maximal 32 C104-Router durchlaufen, etwa wenn die Messages zwischen zwei diagonal gegenüberliegenden Transputern über alle äußeren Knoten geroutet werden.

minpic07.jpg

Maximal 32 Transputer lassen sich über ein Link auch bereits über nur einen C104-Routing-Chip zu einem Crossbar-Netzwerk verkoppeln. Die Gesamtbandbreite für netzinterne Kommunikation liegt bei 320 MByte/s.

Man kann aber auch etwas sparsamer mit Routing-Chips umgehen. Das kleine Crossbar-Netzwerk (Kreuzschienenverteiler) verbindet 32 Transputer über jeweils ein Link miteinander. Wenn 16 Transputer-Paare gebildet werden, die alle miteinander bidirektional über ein Link kommunizieren, erreicht man eine netzinterne Datenrate von 320 MByte/s bei einer Latenzzeit von 0,5 Mikrosekunden (nur ein Routing-Chip zu durchlaufen). Man kann an den freien Transputer-Links noch drei weitere Routing-Chips parallel schalten und erhält - bei identischer Latenzzeit - eine lineare Steigerung in der Kommunikationsbandbreite.

minpic06.jpg

Ein Hypercube 10. Ordnung bestehend aus 1024 Knoten, die ihrerseits aus je einem Transputer plus Routing-Chip zusammengesetzt sind. Der längste Weg einer Message zwischen zwei Transputern führt über fünf Routing-Chips.

Die derzeit beliebteste Prozessoranordnung bei parallelen Supercomputern ist wohl der `Hypercube´. Abgebildet sehen Sie einen Hypercubus zehnter Ordnung mit insgesamt 1024 Knoten auf der Basis des bereits beschriebenen Building Blocks. Der Maximal-Weg für Messages führt über fünf Router (der mittlere Message-Weg hängt von der Routing-Software ab). Die Maximal-Latenzzeit beträgt bei einer Spitzenbandbreite im Kommunikationsbereich von 10 GBytes/s nur etwa 1,5 Mikrosekunden.

Interval-Routing

Obwohl in [1] genauer ausgeführt, sei hier noch einmal eine wesentliche Neuerung hinsichtlich der Wegfindung (Routing) von Botschaften durch H1-Transputer-Netze rekapituliert. Beim sogenannten `Wormhole´-Routing werden Labels verwendet, um Messages an Zielprozessoren zu senden. Jedes Netzwerk kann `gelabelt´ werden, um ein Deadlock-freies Routing zu ermöglichen.

Es gibt zwar optimale Labeling-Methoden für Baum-, Hypercube- und Ringarchitekturen sowie für Arrays und Clos-Netzwerke, solch strikte Topologien haben aber auch gewisse Nachteile. Einerseits erlauben sie kein arbiträres (willkürliches) Routing durch ein Netzwerk, andererseits kann eine Botschaft nicht durch eine Anordnung aus mehreren Netzwerken geroutet werden.

Normalerweise wird der Zielknoten innerhalb eines Netzwerkes durch einen Vorspann der Botschaft (Message Header) gekennzeichnet. Darüber sind maximal 64 K (16 Bit) Transputer eindeutig in einem Netzwerk erreichbar. Beim Interval-Labeling sorgt man dafür, daß jeder C104-Vermittlungsknoten über ein Ausgangs-Link für einen bestimmten Bereich (Intervall) von Zielknoten eine Verbindung zum nächsten Vermittlungsknoten schafft. Der nächste Knoten engt dann das Intervall weiter ein, bis man letztlich den Zielknoten eindeutig adressiert.

Da die Intervallvergabe eindeutig sein muß, sind die Wege der Botschaften völlig festgelegt, und es kann zu Häufungen an bestimmten Schaltstellen kommen. Solange ein Pfad im Netzwerk für eine Message durchgeschaltet ist, können andere Messages diesen Pfad nicht benutzen, müssen also warten. Eine Auflockerung dieses starren Vorgehens beim einfachen Interval-Routing besteht darin, die Message zunächst zufällig zu einem beliebigen Knoten zu senden, damit die eigentliche Wegfindung erst von dort beginnt (also nicht immer am selben Ausgangspunkt), woraus sich zwangsläufig eine andere Route für die Message ergibt.

Dazu kann man einen erweiterten Header vor die Message setzen, den speziell programmierte C104-Knoten beim Aussenden über bestimmte Ausgangs-Links wieder entfernen: dazu muß natürlich sichergestellt sein, daß man als `beliebige´ Knoten - die übrigens nicht nur zufällig, sondern auch ganz gezielt über einen erweiterten Header adressiert werden können - entsprechend vorbereitete C104-Chips wählt.

Der erweiterte Header läßt also zum einen willkürliches Routing entgegen vorgegebener Pfade zu, zum andern kann man auf diese Art von Netzwerk zu Netzwerk routen: dazu ist nur eine Message mit erweitertem Header an einen C104-Chip zu senden, der als `Gateway´ zu einem anderen Netz diesen erweiterten Header löscht. Dann gilt der verbleibende, normale Header als Ziel innerhalb des anderen Netzwerkes. Im Prinzip könnte man auch mehrere `bleibende´ Header verwenden, aber die Löschung des jeweils überflüssig werdenden Headers beschleunigt die Kommunikation innerhalb des Netzwerkes deutlich.

minpic08.jpg

Die neuen Routing-Möglichkeiten aus H1 und C104 unterstützen den Aufbau hierarchischer Netzwerke. Ein solches kann zum Beispiel dadurch erzeugt werden, daß die Knoten eines Netzes nicht durch einzelne Transputer, sondern durch Teilnetze aus mehreren Transputern ersetzt werden.

Eine andere wichtige Anwendung erweiterter Header zeigt die Konstruktion hierarchischer Netzwerke. In einem zweidimensionalen Feld könnte jeder Transputer durch ein lokales Netzwerk von Transputern ersetzt werden. Adressiert man alle Knoten im Netz über erweiterte Header, kann eine solche Ersetzung zu einem späteren Zeitpunkt durchgeführt werden und ermöglicht immer noch eine eindeutige Adressierung von Transputern, dann halt im Teilnetz. Die Header werden gelöscht, wenn einzelne Pakete in ein Netzwerk gelangen oder es wieder verlassen.

Ausblick

Die neue Transputer-Generation ermöglicht leistungsfähige, parallele Universalrechner. Das noch flexiblere Hardware-Layout verspricht zudem interessante neue Möglichkeiten, um eine Vielfalt von Rechnermodellen und Paradigmen in Hard- und Software abbilden zu können. Vor allem Hardware-Strukturen, die sich durch hohe Vernetzung auszeichnen und damit prädestiniert für `Neuronal Networking´ sind, könnten sich zur künftigen Domäne bei Transputer-Anwendern entwickeln. (gr)

Literatur
[1] Dick Pountain, H1 - neue Transputer-Generation, Virtuelle Kanäle verheißen portable parallele Programme, c't 7/90, S. 34 ff.

[2] Herbert Pichlik, H1-Transputer bis 150 MIPS, c't 11/90, S. 22

[3] Inmos Product preview `H1 transputer´, SGS-Thomson Microelectronics, September 1990

[4] David May, Next Generation Transputer and Beyond, Seminarvortrag TAT ´90, Aachen, September 1990

Kasten 1


H1-Highlights im Überblick

Leistungsdaten
Architektur-Merkmale
Diverses