-
Technisches Gebiet
-
Die
vorliegende Erfindung betrifft ein Rekonfigurierungsverfahren, anwendbar
auf ein Gatter von identischen Funktionselementen.
-
Das
Gebiet der Erfindung ist insbesondere das der parallelen Rechner,
die ein matrixförmig,
ringförmig oder
hypercubeförmig
zusammengeschaltetes System bilden, und das der 1D- oder 2D-Korrelatoren,
der Matrixarchitekturen von Blöcken
zur Berechnung der schnellen Fourier-Transformation (FFT). Zwei
Beispiele für den
ersten Anwendungstyp findet man in dem mit der Referenz [1] am Ende
der vorliegenden Beschreibung angegebenen Dokument.
-
Stand der Technik
-
Die
zunehmenden Möglichkeiten
der Mikroelektroniktechnik sowie die Entwicklung der Multiprozessoren-Architekturen
führen
zu immer komplexeren Rechnen, sowohl hinsichtlich der sie bildenden
Elemente (elektronische Ports, Speicher, Register, Prozessoren ...)
als auch hinsichtlich der verwendeten Software.
-
Die
Entwickler solcher Rechner mit massiv-parallelen, sehr integrierten
Strukturen sind mit zwei Problemen konfrontiert:
- 1-
Maschinen mit massiv-parallelen Strukturen sind aufgrund der großen Anzahl
von Rechnern und ihrer Komplexität
anfällig
für Fehler,
was zu einer schlechten Fabrikationsausbeute und zu schweren Fehlern
im Normalbetrieb führt.
- 2- Mit sehr fortschrittlichen Technologien und sehr integrierten
Systemen können
immer mehr Prozessoren in eine spezifische integrierte Schaltung
(englisch ASIC für "Application Specific
Integrated Circuit"),
einen Multichip-Modul (englisch MCM für "Multichip Module" oder eine Karte integriert werden.
Bei solchen Systemen besteht der Hauptnachteil in einer begrenzten
Bandbreite.
-
Um
dem ersten dieser Probleme zu begegnen, besteht eine Lösung aus
dem Stand der Technik darin, die fehlerhaften Prozessoren durch
zusätzliche,
in funktioneller Hinsicht identische Prozessoren zu ersetzen. Eine
solche Lösung,
die eine "Strukturfehlertoleranz" ermöglicht,
ist bemüht,
den einwandfreien Betrieb und insbesondere die Kohärenz des
Gatters zu garantieren. Im Falle von Fehlern findet eine Rekonfigurierung statt,
darin bestehend, fehlerhafte Elemente durch zusätzliche Elemente zu ersetzen,
die dank Zwischenverbindungs- und
Interkommunikationselementen verfügbar sind.
-
Bei
einem Gatter des 2D- oder zweidimensionalen Typs, bestehen die zur
Fehlertolerierung vorgeschlagenen Lösungen dann:
- • dem System
ebenso viele Prozessorenleitungen hinzuzufügen wie man Fehler tolerieren
will. Diese Lösung
ist sehr einfach und erfordert wenig zusätzliche Zwischenverbindungen,
wobei die Rekonfigurierung dort, wo ein Prozessor fehlerhaft ist,
durch einen einfachen "Bypass" der Leitungen erfolgt.
Die Leistungsverluste sind also begrenzt. Hingegen ist die Nutzung
bzw. Benutzung der zusätzlichen
Prozessoren sehr schlecht, da man eine Leitung braucht, um einen
Fehler zu tolerieren, und im Falle eines Bypass-Fehlers das komplette
System fehlerhaft ist; oder
- • Schalter,
zusätzliche
Prozessoren und Verbindungen des normalen Gatters hinzuzufügen.
-
Wie
beschrieben in dem Referenzdokument [2], wird eine diesem zweiten
Lösungstyp
entsprechende und "m-Track,
n-Spare" ("m Wege, n Zusätzliche") genannte Lösung durch
Prozessoren 10, Schalter und zusätzliche Verbindungen gebildet.
Zwei Arten von Schaltern werden benutzt: die Schalter 11,
die die Prozessoren mit den Verbindungen verbinden (PT für "Processor to Track"), und die Schalter 12,
die die Verbindungen untereinander verbinden (TT für "Track-to-Track"). Alle Verbindungen
des Gatters sind bidirektional, das heißt dass die Kommunikationen
in jeder Verbindung in beiden Richtungen erfolgen können. Zusätzliche
Prozessoren 13 (sp) sind an den Grenzen des Gatters positioniert.
Diese Prozessoren müssen,
damit die Rekonfiguratinsmethode wirksam ist, wenigstens in einer
Zeile und einer Spalte des Gatters vorhanden sein.
-
Die 1 ist
ein Beispiel eines Gatters des Typs "2-Track, 1-Spare". Zusätzliche Prozessoren 13 (sp) sind
um das gesamte Gatter herum platziert und dienen zur Rekonfigurierung
des Gatters im Falle von fehlerhaften Nutzprozessoren 10.
Schalter 11, 12 werden benutzt, um die Rekonfigurierung
zu ermöglichen.
Das Gatter umfasst hier 200 % zusätzlicher Verbindungen in Bezug
auf die sogenannten funktionellen Verbindungen.
-
Der
Fachmann kann dann eine Rekonfigurationsmethode anwenden, die auf
Fehlerkorrektur-Codes beruhen und zwei Phasen umfasst:
- – die
erste besteht darin, für
jeden fehlerhaften Prozessor einen Kompensationsweg zu finden, der
den fehlerhaften Prozessor umgeht und ihn durch einen zusätzlichen
Prozessor ersetzt;
- – im
Falle des Erfolgs der ersten Phase wird jeder Prozessor längs des
Kompensationswegs durch seinen nächsten
Nachbarn ersetzt, wobei man durch kaskadenartige Änderungen
zu einem zusätzlichen
Prozessor gelangt. Auf diese Weise wird das funktionelle Gatter
beibehalten.
-
Die
oben betrachtete Rekonfigurationsmethode weist zwei große Nachteile
auf:
- – sie
ist nicht an den Fall der monodirektionalen Verbindungen angepasst;
in diesem Fall sind nämlich
zwei Verbindungsbusse nötig,
einer hin und einer zurück,
um den betreffenden Prozessor mit jedem seiner Nachbarn zu verbinden.
- – die
Anzahl der zwischen zwei benachbarten Prozessoren durchquerten Schaltelemente
ist logischerweise nicht deterministisch, was die Methode ineffizient
macht für
die Behandlung des Falles der Synchronkommunikationen zwischen Prozessoren.
-
Das
Referenzdokument [3] beschreibt neue Rekonfigurationsalgorithmen
für VLSI/WSI-Gatter.
Es beschreibt insbesondere einen Rekonfigurationsalgorithmus, der
auch auf ein Gatter aus parallelen identischen Funktionselemente
mit Toleranz für
die Fehler dieser Funktionselemente anwendbar ist, wobei das Gatter
zusätzliche
Funktionselemente sowie Zwischenverbindungselemente umfasst.
-
Um
die Nachteile der Dokumente bzw. Vorrichtungen des Stands der Technik
zu beseitigen, bietet das Verfahren der Erfindung eine Lösung des
Problems der Toleranz gegenüber
Fehlern in einer massiv-parallelen Architektur, wo die Funktionselemente
sehr stark gekoppelt sind, indem es eine Lösung vorschlägt, die
folgenden Bedingungen entspricht:
- – Realisierung
eines fehlertoleranten Gatters mit Verbindungen, die monodirektional
sein können;
- – starke
Begrenzung der nichtfunktionellen Kommunikationssupporte des Gatters;
- – Begrenzung
der Kommunikationszeit zwischen Funktionselementen, indem die Anzahl
der zwischen zwei Funktionselementen durchquerten Rekonfigurierungsschalter
begrenzt wird;
- – mehr
Flexibilität
bei der Wahl der Anzahl der zusätzlichen
Funktionselemente;
- – Möglichkeit
einer Lösung
zur Unterstützung
unterschiedlicher Topologien, insbesondere des matrixförmigen,
ringförmigen
oder hypercubeförmigen
Typs.
-
Darstellung der Erfindung
-
Die
vorliegende Erfindung betrifft ein Rekonfigurierungsverfahren für ein Gatter
aus parallelen identischen Funktionselementen mit Toleranz für die Fehler
dieser Funktionselemente, wobei das Gatter die genannten Basisfunktionselemente,
zusätzliche
Funktionselemente und Zwischenverbindungs- bzw. Zusammenschaltungselemente
dieser Funktionselemente aufweist und das genannte Verfahren dabei
umfasst:
- – einen
Platzierungsschritt der Funktionselemente des logischen Gatters;
- – einen
Routing-Schritt, bestehend aus einer Programmierung der Zwischenverindungselemente
in dem physischen Gatter, indem man eine maximale Anzahl von Zwischenverbindungselementen
wählt,
die zwischen zwei benachbarten Funktionselementen durchquert werden
können,
wobei man einen Algorithmus zur Suche des kürzesten Wegs anwendet, dadurch
gekennzeichnet, dass es eine Steuereinheit umfasst, und dadurch:
- – dass
man eine Platzierungsordnung der Funktionselemente des Gatters bestimmt,
gebildet durch ein Ausgangsfunktionselement und eine alle Funktionselemente
umfassende Folge von Funktionselementen;
- – dass
man für
jedes der Funktionselemente versucht, es zu platzieren, beginnend
in seinem logischen Platz, und dann, wenn im Falle eines Misserfolgs
notwendig, in jedem der Plätze
mit einem Abstand 1, mit einem Abstand 2... von dem logischen Platz
dieses Funktionselements, mit der Einschränkung, dass ein und nur ein
zusätzlicher
Platz in Bezug auf die möglichen
Plätze
der vorhergehend platzierten Funktionselemente benutzt werden darf,
und endend, wenn S + 1 Plätze
versucht worden sind, wobei S die Anzahl der zusätzlichen Funktionselement ist;
- – dass
man, wenn S + 1 Plätze
ohne Erfolg versucht worden sind, zu dem vorhergehenden Funktionselement
in der Platzierungsordnung zurückkehrt
und für
dieses Funktionselement zum nächsten
Platz übergeht;
- – dass
man, wenn alle Funktionselemente platziert sind, eventuell für jede Dimension
des Gatters verifiziert, dass die logische Ordnung für jedes
Funktionselemente-Paar gewahrt ist, und, wenn dies nicht der Fall
ist, man die Plätze
dieser Funktionselemente umkehrt.
-
Bei
einer Realisierungsart wird die Platzierungsordnung folgendermaßen definiert:
das Ausgangsfunktionselement ist das Funktionselement links oben
und die nächsten
Funktionselemente sind die Funktionselemente rechts und unterhalb
des Ausgangsfunktionselements und so weiter, wobei man eine Diagonale
einhält.
-
Man
kann das Gatter auch in Funktionselemente-Blöcke unterteilen und eine Platzierungsordnung
der Blöcke
definieren, indem man von einem Ausgangsblock ausgeht und alle Blöcke von
Nachbarblock zu Nachbarblock durchläuft, wobei die für die Funktionselemente
eines Blocks möglichen
Plätze
keinen logischen Platz der Funktionselemente der vorhergehend platzierten
Blöcke
umfassen.
-
Vorteilhafterweise
kann dieses erfindungsgemäße Verfahren
während
des Betriebs entweder statisch oder dynamisch angewendet werden.
-
Es
erscheint wichtig, die folgenden beiden Punkte zu präzisieren:
- • Das
erfindungsgemäße Verfahren
gestattet leicht, Toleranzen gegenüber Fehlern bei den Zwischenverbindungen
und den Zwischenverbindungselemente einzuführen.
- • Das
erfindungsgemäße Verfahren
steht insofern im Widerspruch zu den früheren Verfahren, als die Charakteristika
des Gatters, nämlich
die Anzahl der zusätzlichen
Verbindungen und die Organisation der Zwischenverbindungen nicht
durch das Verfahren vorgeschrieben werden, was eine größere Flexibilität bei der Wahl
der fehlertoleranten Architektur ermöglicht.
-
Kurzbeschreibung der Zeichnungen
-
Die 1 ist
ein Prozessorengatter nach dem Stand der Technik.
-
Die 2A und 2B zeigen
ein Beispiel eines mit Hilfe des erfindungsgemäßen Verfahrens realisierten
Gatters.
-
Die 3 stellt
den Begriff der Distanz bei dem in der 2B gezeigten
Gatter dar.
-
Die 4 zeigt
ein Ablaufdiagramm des erfindungsgemäßen Verfahrens.
-
Die 5A und 5B zeigen
ein Nichtkohärenzbeispiel
des erfindungsgemäßen Verfahrens
nach der Platzierung der Funktionselemente.
-
Die 6A, 6B und 6C zeigen
ein direkt aus dem erfindungsgemäßen Verfahren
abgeleitetes Platzierungsalgorithmus-Beispiel.
-
Die 7 zeigt
einen aus dem erfindungsgemäßen Verfahren
abgeleiteten Block-Algorithmus.
-
Die 8A und 8B zeigen
Rekonfigurierungsbeispiele eines Gatters von Funktionselementen
in einer matrixförmigen
Topologie.
-
Die 9 zeigt
die Komposition eines mit Hilfe des erfindungsgemäßen Verfahrens
realisierten Prozessorengatters.
-
Die 10 zeigt
die Eingänge
und Ausgänge
eines Zwischenverbindungselements im Innern des Gatters der 9.
-
Die 11A bis 11H zeigen
die Eingänge
und Ausgänge
der Zwischenverbindungselemente an den Grenzen des Gatters der 9.
-
Die 12 zeigen
das Gatter der 9 mit den Verbindungen zwischen
Prozessoren und Zwischenverbindungselementen.
-
Die 13A bis 13C zeigen
die minimalen Kommunikationen in dem Gatter der 9.
-
Die 14A bis 14B zeigen
die praktische Realisierung eine Zwischenverbindungselements im Innern
des Gatters der 9, ausgehend von einem 6:1 Multiplexer.
-
Die 15 zeigt
ein Anwendungsbeispiel des Gatters der 9.
-
Die 16 bis 19 zeigen
mehrere Beispiele von Prozessorengattern des Typs Hypercube, nämlich einen
Hypercube der Dimension 3 in der 16, einen
Hypercube von gleichmäßiger virtueller
Struktur mit vier zusätzlichen
Prozessoren in der 17, ein Hypercube-Rekonfigurationsbeispiel
mit drei fehlerhaften Prozessoren, hergeleitet von dem erfindungsgemäßen Verfahren,
in der 18, und einen Hypercube der
Dimension 4 mit einer Reihe bzw. Zeile zusätzlicher Prozessoren in der 19.
-
Die 20 zeigt
die Architektur eines 2D-Korrelators.
-
Die 21 zeigt
ein Anwendungsbeispiel des erfindungsgemäßen Verfahrens bei der matrixförmigen Struktur
der in der 20 dargestellten Architektur.
-
Detaillierte Realisierungsarten
-
Die
vorliegende Erfindung betrifft ein Rekonfigurationsverfahren eines
Gatters von identischen Funktionselementen.
-
Rekonfigurationsverfahren
-
Bei
der "m-Track, n-Spare"-Struktur nach dem
Stand der Technik, dargestellt in der 1, besteht
das Rekonfigurierungsverfahren darin, einen Weg zu suchen, "Kompensationsweg" genannt, um ein
fehlerhaftes elementares Funktionselement durch ein zusätzliches
Funktionselement zu ersetzen. Anschließend, ausgehend von diesem
fehlerhaften elementaren Funktionselement, wird jedes Funktionselement
durch das auf dem Weg nächste
nachfolgende verfügbare
Funktionselement ersetzt. Aber dieses Verfahren ist nur dann wirklich effizient,
wenn in wenigstens einer Zeile und einer Spalte zusätzliche
Funktionselement existieren, was mit einer Zeile zusätzlicher
Funktionselemente und zwei monodirektionalen Wegen nicht möglich ist.
Außerdem
ermöglicht
ein solches Verfahren nicht, die Anzahl der Schalter in den Kommunikationswegen
zu reduzieren.
-
Hingegen
basiert das erfindungsgemäße Rekonfigurierungsverfahren
auf einer entkorrelierten Routing-Platzierungstechnik.
-
Die
Platzierung besteht in einer physischen Platzierung von benachbarten
logischen Funktionselementen. Der logische Platz eines Funktionselements
ist der Platz, den dieses Funktionselement in dem Gatter ohne fehlerhaftes
Funktionselement einnimmt; der physische Platz eines Funktionselements
ist der Platz, den dieses Funktionselement nach der Anwendung des
Verfahrens einnimmt, wenn ein Fehler detektiert worden ist. Die
Platzierung endet sicher, vorausgesetzt die Anzahl der fehlerhaften
Funktionselemente ist niedriger oder gleich der Anzahl der zusätzlichen
Funktionselemente.
-
Das
Routing besteht in einer Programmierung der Zwischenverbindungselemente.
Die Anzahl der Schalter, die zwischen zwei benachbarten Funktionselementen
durchquert werden können,
wird gewählt.
Diese Anzahl ist begrenzt: drei oder vier Schalter führen zu
einem guten Rekonfigurationseffekt. Ein geeigneter Routing-Algorithmus
kann also die größtmögliche Anzahl
Routing-Möglichkeiten
in sehr kurzer Zeit versuchen.
-
Bei
den Systemen nach dem Stand der Technik erfolgt die Programmierung
der Kommunikationselemente sobald für jedes fehlerhafte Funktionselement
ein Ersatzplatz gefunden ist, indem man einem genauen Algorithmus
folgt. Die Algorithmen zum Platzieren der Funktionselemente in dem
physischen Gatter und zum Routen der Kommunikationselemente sind
untrennbar.
-
Bei
dem erfindungsgemäßen Verfahren
ist nur die Platzierung der Funktionselemente neuartig. Das Routen
der Zwischenverbindungselemente erfolgt durch einen dem Fachmann
bekannten Algorithmus zur Suche des kürzesten Wegs, wobei dieser
Algorithmus in der Erfindung anwendbar ist dank der Restriktionen
bezüglich
der Länge
des Suchwegs und insbesondere bezüglich der Anzahl der durchquerten
Zwischenverbindungselemente.
-
• Platzierungsschritt
-
In
den 2 und 3 ist schematisch
ein Gatter aus identischen elementaren Funktionselementen 30 dargestellt,
wobei jedes Basisfunktionselement logisch verbunden ist mit einer
Anzahl identischer benachbarter Funktionselemente desselben Gatters,
mit Ausnahme der Funktionselemente, die sich an den Rändern des
Gatters befinden, und von zusätzlichen
Funktionselementen 31, von denen jedes dazu vorgesehen
ist, eines der elementaren Funktionselemente 30 zu ersetzen,
wenn dieses fehlerhaft wird.
-
Die 2A zeigt
ein Funktionselement des Gatters mit seinen vier logischen Nachbarn.
Die 2B zeigt ein Gatterbeispiel, wobei die zusätzlichen
Funktionselemente 31 fett bzw. schraffiert hervorgehoben
sind und die Verbindungen 32 logische Verbindungen sind.
-
Die 3 stellt
den Begriff der Distanz zwischen zwei Funktionselementen dar: diese
ist die minimale Anzahl notwendiger Verbindungen, um von einem Funktionselement
zu einem anderen zu gelangen. Die beiden fetten Funktionselemente 35 weisen
eine Distanz fünf
voneinander auf; zwei benachbarte Funktionselemente haben eine Distanz
eins.
-
Das
erfindungsgemäße Verfahren
hat die Aufgabe, die Funktionselemente in dem Gatter so zu platzieren,
das die Summe der Distanzen zwischen allen benachbarten Funktionselemente
minimal ist. Dieses Verfahren hat die folgenden Charakteristika:
- • Kriterium
1: um die Prozessorenplätze
so zu wählen,
dass eine minimale Distanz zwischen benachbarten Funktionselementen
gewährleistet
ist, führt
man eine Platzierung um die Position des Anfangsfunktionselements
herum durch, indem man die Funktionselemente mit einer Distanz 0,
dann 1, dann 2, dann 3 ... von dem logischen Platz dieses Funktionselements
benutzt.
- • Kriterium
2: um sicher zu sein, dass für
alle Funktionselemente des Gatters eine Platzierung möglich ist, unabhängig von
der Anzahl der fehlerhaften oder nicht validierten Funktionselemente,
definiert man zunächst
eine Platzierungsreihenfolge der Funktionselemente, die gebildet
wird durch ein Anfangsfunktionselement und eine alle Funktionselemente
umfassende Funktionselementefolge. Jedes neue Funktionselement wird
ausgewählt
unter den Funktionselementen, die den vorhergehenden logisch benachbart
sind. Dann, indem man dieser Reihenfolge folgt, vom Anfangsfunktionselement
bis zum letzten Funktionselement, definiert man S + 1 mögliche Plätze – wobei
S die Anzahl der zusätzlichen
Funktionselemente ist – und
die Reihenfolge der Plätze
jedes Funktionselements, mit der Restriktion, dass nur ein einziger
Zusatzplatz benutzt werden muss, bezogen auf die möglichen
Plätze
der vorhergehend platzierten Funktionselemente.
- • Kriterium
3: um die globale Kohärenz
des Gatters zu gewährleisten,
installiert man eventuell am Ende der Platzierung einen Kohärenzberücksichtigungsmechanismus,
bestehend in einer Detektion der logischen Inversionen jedes Paars
logisch benachbarter Funktionselemente in jeder Dimension und einer
Inversion der Plätze
der beiden Funktionselemente, wenn eine solche Inversion detektiert
wird.
-
Um
diese verschiedenen Kriterien zu erfüllen, umfasst das erfindungsgemäße Verfahren
die folgenden Schritte:
- – man bestimmt eine Platzierungsreihenfolge
wie oben in dem Kriterium 2 definiert;
- – für jedes
der Funktionselemente versucht man, es zu platzieren, indem man
mit seinem logischen Platz beginnt, dann – falls notwendig, im Misserfolgsfall
(fehlerhaftes Funktionselement oder durch ein anderes Funktionselement
besetzter Platz) – fortfährt mit
jedem der Plätze,
die sich in einer Distanz 1, einer Distanz 2 usw. befinden, wobei
man das in dem Kriterium 2 erwähnte
Gesetz berücksichtigt:
das heißt,
dass in Bezug auf die möglichen
Plätze
der vorhergehend platzierten Funktionselemente ein zusätzlicher
Platz benutzt werden muss. Wenn der Platz diesem Gesetz nicht entspricht,
versucht man es mit einem anderen Platz, der, falls notwendig, eine
größere Distanz
aufweisen kann. Man hält
an, wenn S + 1 Plätze
versucht worden sind;
- – wenn
S + 1 Plätze
erfolglos versucht worden sind, kehrt man zu dem in der Platzierungsreihenfolge
vorangehenden Funktionselement zurück und geht mit diesem Funktionselement
zu dem nachfolgenden Platz über;
- – wenn
alle Funktionselemente platziert sind, in Zeilen und Spalten in
einer Funktionselementetabelle, verifiziert man für jede Dimension
des Systems, dass für
jedes Funktionselementepaar die logische Reihenfolge respektiert
ist. Wenn dies nicht der Fall ist, vertauscht man die Plätze dieser
Funktionselemente.
-
Das
in der 4 dargestellte Ablaufdiagramm resümiert die
drei letzten Schritte dieses Verfahren.
-
Die 5A und 5B zeigen
ein Beispiel der Nichtkohärenz
in dem Gatter nach der Platzierung der Funktionselemente. In der 5A sind
die beiden Funktionselemente Pij und Pij+1 nämlich
logische Nachbarn und Pij befindet sich
vor Pij+1. In der 5B wurde
das Funktionselement Pij in der Richtung
des Pfeils 36 nach dem Funktionselement Pij+1 platziert,
entgegen der logischen Reihenfolge, wobei die mit einem Kreuz markierten
Plätze
solche sind, die durch fehlerhafte Funktionselementen besetzt sind.
-
Dieser
Platzierungsalgorithmus führt
mit Sicherheit zu einer Lösung,
wenn die Anzahl der fehlerhaften Funktionselemente niedriger oder
gleich der Anzahl der zusätzlichen
Funktionselemente ist.
-
Zwei
Typen von Platzierungsalgorithmen können aus dem erfindungsgemäßen Verfahren
gefolgert werden.
-
Der
erste Algorithmustyp besteht dann, das erfindungsgemäße Verfahren
direkt anzuwenden und ist in der 6 mit
einer Struktur von 4 × 4
elementaren Funktionselementen und 4 zusätzlichen Funktionselementen
dargestellt.
-
Die 6A stellt
das logische Gatter dar, wobei die logischen Nachbarn eines Funktionselements
sich in seinen vier Kardinalrichtungen befinden. Die 6B stellt
die Platzierungsordnung der Funktionselemente dar, und die 6C zeigt
die möglichen
Plätze
dieser Funktionselemente, wobei die Plätze mit einer Distanz von 1
vom logischen Platz des Funktionselements vor den Plätzen mit
einer Distanz von 2, usw., versucht werden.
-
In
dieser 6C werden folgende Darstellungen
benutzt:
- O: logischer Platz des Funktionselements
- X: neuer Platz des Funktionselements
- : möglicher
Platz des Funktionselements
-
Die
Platzierungsordnung ist die folgende: das Anfangsfunktionselement
ist das Funktionselement oben links P0,0.
Die folgenden Funktionselementen sind die Funktionselementen rechts
P0,1 und unterhalb P1,0 des
Anfangsfunktionselements P0,0, usw., wobei
die Diagonale P1,0; P0,2;
P1,1 ... berücksichtigt wird (s. 6B). Diese
Lösung,
die eine der für
die Wahl der Platzierungsordnung möglichen Lösungen ist, hat den Vorteil,
zu ermöglichen,
in der Folge das Kriterium 1 gut zu berücksichtigen und folglich eine
Platzierung zu liefern, die ein gutes Routing ermöglicht.
Aufgrund dieser Platzierungsordnung werden die Plätze jedes
Funktionselements ausgewählt
unter den fünf
in der 6C definierten Plätzen, wobei
ihre Selektionsordnung das Kriterium 1 berücksichtigt. Festzustellen ist,
dass das Kriterium 2 für
jedes Funktionselement berücksichtigt
wird.
-
Der
zweite Platzierungsalgorithmustyp ist eine Anwendung des erfindungsgemäßen Verfahrens
mit Unterteilung des Gatters in Funktionselementtypen. Nach dem
Definieren einer Platzierungsreihenfolge der Blöcke, indem man von einem Anfangsblock
ausgeht, durchläuft
man alle Blöcke,
von Nachbarblock zu Nachbarblock. Wenn ein solcher Algorithmus auf
jeden Block angewendet wird, indem man einer Platzierungsregel Rechnung
trägt,
die festlegt, dass die für
die Funktionselemente eines Blocks möglichen Plätze keinen logischen Platz
der Funktionselemente der Blöcke
umfassen, die vorhergehend platziert wurden, ist die Platzierung
sicher. Die 7 illustriert diesen zweiten
Algorithmustyp mittels eines durch eine Zeile von vier Funktionselementen
gebildeten Blocks. Die Funktionselementzeilen sind dann so platziert,
dass man von der oberen Zeile ausgehend in die untere Zeile gelangt.
Für jede
Zeile benutzt man Plätze
von dieser Zeile, zu der die logischen Funktionselemente gehören, und
von der unmittelbar darunterliegenden Zeile, was ermöglicht,
die oben genannte Regel einzuhalten. Für jede Zeile wird die Platzierungsreihenfolge
durch das Anfangsfunktionselement definiert, das sich am linken
Ende befindet, und dann durch die nächsten Funktionselemente rechts.
Dann werden die fünf
möglichen
Plätze
definiert, wie dargestellt in der 7. Für jede Zeile
wird derselbe Platzierungsalgorithmus benutzt. Die Kohärenzverifizierung,
nutzlos in dem betrachteten Beispiel, darf dann nur in den Zeilen
durchgeführt
werden. Der Vorteil dieser Variante des erfindungsgemäßen Verfahrens beruht
auf der Schnelligkeit des Algorithmus (weniger Retouroperationen,
kürzere
Kohärenzverifikation),
verbunden mit einer guten Platzierung, wenn die Blöcke gut
dimensioniert sind in Bezug auf die zusätzlichen Funktionselemente,
was bei dem betrachteten Beispiel der Fall ist.
-
Die 8A illustriert
ein Konfigurationsbeispiel des Gatters im Falle einer matrixförmigen Topologie – ohne fehlerhafte
Funktionselemente – für West-Ost-
und Nord-Süd-Verbindungen. Die 8B illustriert
ein Rekonfigurierungsbeispiel des Gatters im Falle eines fehlerhaften
Funktionselements, das schraffiert dargestellt ist.
-
Man
sieht, dass das Passieren von Schaltelementen selbst ohne fehlerhafte
Funktionselemente obligatorisch ist, was dem gesamten System eine
gewisse Kohärenz
verleiht.
-
• Routing-Schritt
-
Dieser
Schritt erfolgt mit Hilfe eines dem Fachmann bekannten Algorithmus
zur Suche des kürzesten Wegs
und zur vertieften Suche (recherche en profondeur).
-
Um
in Übereinstimmung
mit den in der Einführung
festgelegten Zielen zu bleiben, ist die Anzahl der Zwischenverbindungselemente
zwischen logischen benachbarten Funktionselementen auf eine kleine
Zahl begrenzt, typisch 3 oder 4. Die Anzahl der möglichen
Wege, um von einem Funktionselement zu einem benachbarten Funktionselement
zu gelangen, ist bekannt und ziemlich klein, nämlich durchschnittlich kleiner
als ungefähr
10. Man unterstellt, dass alle diese Wege bekannt sind, aber sie
können
durch einen Suchalgorithmus des kürzesten Wegs berechnet werden.
Es folgt ein einfaches Beispiel eines Routing-Algorithmus der Zwischenverbindungselemente:
-
Dies
ist nur ein Routing-Beispiel, dem Fachmann bekannt und geeignet,
ein Realisierungsbeispiel des erfindungsgemäßen Rekonfigurierungsverfahrens
zu liefern.
-
In
der Folge werden nacheinander Realisierungsbeispiele von Gattern
betrachtet, auf die das erfindungsgemäße Verfahren angewendet wird
und bei denen die Funktionselemente Prozessoren sind.
-
Beispiels eines Gatters
von parallelen Prozessoren
-
Ein
Prozessoren-Gatter wie dargestellt in der 9, auf das
die Erfindung angewendet wird, basiert auf einer Matrix von irgend
welchen Elementarprozessoren P mit zwei Eingängen und zwei Ausgängen, die durch
Zwischenverbindungselemente Cm miteinander verbunden sind. Das Gatter
wird durch sich abwechselnde Zeilen von Zwischenverbindungselementen 20 und
Prozessoren 21 gebildet. Jeder Prozessor P ist von vier
Zwischenverbindungselementen Cm umgeben. Die Randelemente des Gatters
sind Zwischenverbindungselemente Cm. Die Prozessorenzeilen des Gatters
sind Zeilen von Elementarprozessoren P, und die letzte Prozessorenzeile
ist eine Zeile zusätzlicher
Elementarprozessoren Sp. Eine solche Charakteristik ermöglicht eine
größere Flexibilität bei der
Wahl der Anzahl der zusätzlichen
Prozessoren, im Gegensatz zu der Vorrichtung nach dem in der 1 dargestellten
Stand der Technik, bei dem mit einer Zeile und einer Spalte der Anteil
der zusätzlichen
Prozessoren in Abhängigkeit
von dem Produkt aus Zeilenzahl mal Spaltenzahl variiert.
-
Die
Zwischenverbindungselemente Cm ermöglichen, die Verbindungen durch
Schaltung des Gatters zwischen den verschiedenen Prozessoren P zu
realisieren. Ein Element Cm dieses Typs ist in der 10 dargestellt,
mit seinen verschiedenen Eingängen
und Ausgängen.
Es besitzt sechs Eingänge
und sechs monodirektionale Ausgänge,
jeweils verbunden mit den Eingängen
der Süd-West-
oder Nord-Ost-Prozessoren, mit den Ausgängen der Nord-West- oder Süd-Ost-Prozessoren,
und mit den vier Eingängen
und vier Ausgängen der
Zwischenverbindungselemente, die sich im Norden, Osten, Süden und
Westen befinden. Ein so dargestelltes Element entspricht einem Element
aus der Gattermitte.
-
Wie
dargestellt in den 11A bis 11H besitzen die Zwischenverbindungselemente
der Ränder
des Gatters entsprechend ihrem Platz weniger Eingänge und/oder
weniger Ausgänge.
-
Man
hat also:
– Cm Nord-West: | Figur
11A; |
– Cm Nord: | Figur
11B; |
– Cm Nord-Ost: | Figur
11C; |
– Cm West: | Figur
11D; |
– Cm Süd-West: | Figur
11E; |
– Cm Süd: | Figur
11F; |
– Cm Ost: | Figur
11G; |
– Cm Süd-Ost: | Figur
11H. |
-
Jeder
Ausgang eines Zwischenverbindungselements Cm kann mit egal welchem
Eingang verbunden werden. Es ist möglich, auf dynamische Weise
die Art (Konfiguration genannt) der Realisierung dieser Verbindungen
zu ändern,
zum Beispiel mit Hilfe von einer Konfigurierungssteuerung zugeordneten
Konfigurationsregistern.
-
Wie
dargestellt in der 12 ist in dem Gatter jeder Prozessor
P mit vier Zwischenverbindungselementen Cm verbunden, wobei zwei
dieser Elemente Cm, die einander diametral entgegengesetzt sind,
mit zwei Eingängen
des Prozessors verbunden sind, und die beiden anderen Elemente Cm,
die einander ebenfalls diametral entgegengesetzt sind, mit zwei
Ausgängen
des Prozessors verbunden sind. Diese Zwischenverbindungselemente
Cm sind außerdem
durch horizontale und vertikale Verbindungen miteinander verbunden.
-
Jede
Kommunikation zwischen Prozessoren P erfolgt durch Zwischenverbindungselemente
Cm. Man erhält
so 50 % zusätzlicher
interner Verbindungen in Bezug auf die "funktionellen" Verbindungen und zusätzliche
Verbindungen mit der Außenseite
reduziert auf die Verbindungen der zusätzlichen Prozessoren Sp.
-
Die
durch das Gatter unterstützten
Kommunikationen sind zumindest die in der 13 beschriebenen,
nämlich
Süd-Nord-
und Ost-West-Kommunikationen ihn der 13A,
gemischte Kommunikationen in der 13B und
Ost-West-Kommunikationen in der 13C.
Jede in diesen Figuren dargestellte Kommunikation ist eine "duale" Kommunikation.
-
Es
sind selbstverständlich
weitere Kommunikationen vorstellbar.
-
Bei
dem Fehlertoleranzverfahren dieses Gatters werden die zusätzlichen
Prozessoren Sp der letzten Zeile benutzt, um fehlerhafte Elementarprozessoren
P in den anderen Zeilen zu ersetzen.
-
Beispiel einer
Realisierungsart eines solchen Prozessorengatters
-
Bei
dieser Realisierungsart wird das Prozessorengatter durch eine Matrix
aus neun Prozessoren und sechzehn Zwischenverbindungselementen gebildet.
Jeder Prozessor P ist ein einfaches Rechenelement mit einer logischen
und arithmetischen Einheit, einer Gruppe von Arbeitsregistern und
einer Testlogik, die ermöglicht,
den automatischen Test des Prozessors ("integrierter" Test genannt) durchzuführen. Bei
der Ausführung eines
Testprogramms sendet diese Logik ein Integritätstestsignal t_i, das angibt,
ob der Prozessor fehlerhaft ist. Der Prozessor P wird hier nicht
beschrieben, das der Fachmann ihn kennt.
-
Ein
Zwischenverbindungselement ist von dem in der 10 dargestellten
Typ, und die Elemente der 11A bis 11H sind nur vereinfachte Abweichungen
bzw. Varianten davon. Dieses Zwischenverbindungselement, dargestellt
in der 14A, wird durch sechs Datenmultiplexer
mit sechs Eingängen
auf einen Ausgang gebildet. Jeder dieser Multiplexer wird durch
drei Selektionsdrähte
des Ausgangskanals gesteuert, um zu ermöglichen, jeden der Ausgänge des
Zwischenverbindungselements mit einem beliebigen Eingang zu verbinden.
Die Breite des Datenfelds jedes Kanals beträgt hier 4 Bits. Die Selektionen
der sechs Multiplexer sind gespeichert in zwei Registern 40 von
jeweils 18 Bit (3 Selektrionsbits für jeden Multiplexer) im Innern
des Zwischenverbindungselements. Diese Register 40 haben
eine doppelte Funktionalität,
da sie als normale Register und als Schieberegister beim Laden funktionieren
können.
Diese beiden Konfigurationsregister 40 ermöglichen
die Koexistenz von zwei unterschiedlichen Konfigurationen des Gatters.
-
Die 14B illustriert das Detail der Steuerung eines
Multiplexers, wobei die Zone 41 die Steuerungszone dieses
Multiplexers in einem der Register 40 ist.
-
Das
Laden der beiden Rekonfigurationsregister 40 erfolgt in
Serie dank der Signale nw_sw und confsw_in. Das Signal nw_sw ("not-write switch") erlaubt das Einschreiben
des Konfigurationssignals confsw_in ("configuration switch input") in die erste Kippstufe
eines Registers 40, wenn es im Niedrigzustand ist, und
verbietet dieses Einschreiben im Hochzustand. Das Laden der Konfigurationen
ist synchron und gehorcht folglich dem globalen Takt des Systems
clk. Wenn das Einschreiben von confsw_in in die erste Kippstufe
eines Registers 40 erlaubt ist, wird der Inhalt dieser
Kippstufe in die zweite Kippstufe geladen, usw., bis zur letzten
Kippstufe, deren Inhalt das Signal confsw_in des nächsten Zwischenverbindungselements
bildet. Das Signal sel_sw12 ("selection
switch configuration 1/2")
ermöglicht
beim Laden die Selektion des Registers, in das man die Konfigurationen
lädt, und
ebenfalls die dynamische Selektion der Konfiguration der Zwischenverbindungselemente,
das heißt,
dass es möglich
ist, die Konfiguration der Zwischenverbindungselemente während des
Ablaufs eines Programms bei jedem Taktimpuls zu variieren. Ein Zwischenverbindungselement wird
also durch 24 Eingangsdatenbits und 24 Ausgangsdatenbits von zwei
Konfigurationsladesignalen und durch ein Signal zum dynamischen
Konfigurationenwechsel (im Laufe des Normalbetriebs) gebildet, zwischen den
in den internen Registern der Zwischenverbindungselemente geladenen
Konfigurationen.
-
Die
Prozessoren P und die Zwischenverbindungselemente Cm sind so geschaltet
wie in der 15 dargestellt. Das Ganze bildet
die Prozessorenmatrix, die durch eine Steuereinheit UC gesteuert
wird. Diese Steuereinheit UC sendet die Befehle an die Prozessoren,
die die Durchführung
der Operationen ermöglichen, und
kontrolliert die Zwischenverbindungselemente mit Hilfe der drei
oben genannten Signale confsw_in, nw_sw und sel_sw12. Die Steuereinheit
ermöglicht
also den Ablauf der Normalprogramme und der Prozessorentestprogramme.
Die Steuereinheit führt
periodisch Tests von Prozessoren durch, die mit dem Signal t_i einem
Controller ihren Zustand mitteilen. Der Controller führt dann
die Diagnose der Prozessorenmatrix durch, indem er die Signale t_i
aller Prozessoren interpretiert. Der Controller kann die Berechnung
neuer Konfigurationen durchführen,
die dem Zustand der Prozessorenmatrix entsprechen. Er informiert
dann die Steuereinheit über
diese neuen Konfigurationen. Die Steuereinheit sendet dann die Informationen
zur Konfigurierung der verschiedenen Zwischenverbindungselemente
und dann die Ausführungsbefehle
der Rechenprogramme an die aktiven Prozessoren.
-
Die
Prozessorenmatrix sowie die Zwischenverbindungselemente können in
eine spezifischen integrierten Schaltung (ASIC) integriert sein
und die Steuerungseinheit kann in rekonfigurierbare Logikkomponenten
(FPGA für "Field Programmable
Gate Array") integriert
sein, und dies für
eine größere Benutzungsflexibilität. Der Controller
kann mit Hilfe eines Computers, einer FPGA-Komponente oder sogar
eines entsprechenden Moduls realisiert werden.
-
In
der vorliegenden Beschreibung wird eine von jedem der Zwischenverbindungselemente
durch die Steuerungseinheit getrennte dynamische Steuerung betrachtet;
man könnte,
ohne den Rahmen der Erfindung zu verlassen, die genannte Steuerung
statisch realisieren, ohne die Steuerungseinheit zu durchlaufen,
zum Beispiel auf dem Umweg über
einen systemexternen Prozessor.
-
Beispiel eines
Hypercube-Gatters
-
Eine
große
Anzahl von Architekturen, die die Regelmäßigkeitsordnung besitzen oder
die man auf eine wie oben definierte regelmäßige Struktur zurückführen kann,
können
einen Nutzen aus dem Platzierungsverfahren der Erfindung ziehen.
-
Ein
Beispiel eines regelmäßigen Gatters
ist der Hypercube mit n Dimensionen. Bei diesem Prozessorengatter
ist jeder Prozessor direkt mit n anderen Prozessoren verbunden,
wobei eine binäre
Nummerierungsordnung der Prozessoren eingehalten wird (jeder Prozessor
ist mit den Prozessoren verbunden, deren Binärwort angrenzt, das heißt sich
nur um ein einziges Bit unterscheidet). Ein Hypercube-Beispiel der
Dimension 3 mit 16 Prozessoren ist in der 16 dargestellt.
-
Diese
Struktur, die regelmäßig ist,
wenn sie räumlich
dargestellt wird, verliert ihre Regelmäßigkeit auf dem Papier durch
einen perspektivischen Effekt. Aber sie verliert ihre Regelmäßigkeit
auch, wenn sie auf einer elektronischen Karte realisiert wird, die
nur Oberflächenkomponenten
möglich
macht. Um diesen Punkt zu berücksichtigen,
zeigt das in der 17 dargestellte Gatter die wirklichen
Verbindungen, die virtuellen Verbindungen, die ermöglichen,
die Struktur in zwei Dimensionen regelmäßig zu machen, und die zusätzlichen
Prozessoren Sp mit den (virtuellen) Verbindungen,
die sie mit der Hauptstruktur verbinden.
-
Es
handelt sich also um eine regelmäßige 2D-Struktur
mit vier zusätzlichen
Prozessoren. Der Distanzbegriff, der das Maß für die "nahestmögliche" Platzierung der Prozessoren definiert,
ist eine in Bezug auf diese Struktur berechnete Distanz. Unter diesen
Bedingungen sind die Platzierungsalgorithmen dieselben wie die für ein 2D-Netzwerk,
wobei die physische Realisierung des Gatter sich gegen seine logische
Funktion durchsetzt.
-
Die 18 zeigt
dann ein Rekonfigurierungsbeispiel im Falle von drei fehlerhaften
Prozessoren. Die durchgezogenen Linien sind physische Verbindungen,
die realisiert werden müssen,
um die Hypercubestruktur beizubehalten.
-
Schließlich zeigt
die 19 eine Ausdehnung des Prinzips der virtuellen
Verbindungen für
ein Hypercubegatter der Dimension 4 mit einer Zeile zusätzlicher
Prozessoren. Der angewandte Platzierungsalgorithmus ist dann derselbe
wie der für
die 2D-Netzwerkstruktur
mit 8 Zeilen × 4
Spalten und einer Zeile zusätzlicher Prozessoren
benutzte.
-
Das
Rekonfigurierungsverfahren schränkt
die Wahl der fehlertoleranten Struktur nicht ein, auf der eine solche
Struktur realisiert werden kann, die folglich völlig arbiträr sein kann.
-
Das
Verfahren der Erfindung kann auch hinsichtlich der Herstellung einer
fehlertoleranten Struktur bei Architekturen der digitalen elektronischen
Systeme angewandt werden, die eine große Anzahl identischer, zeilenförmig, matrixförmig oder
hypercubeförmig
zusammengeschalteter Funktionselemente umfassen. Die einzige Bedingung
besteht darin, zu gewährleisten,
dass jedes Funktionselement entweder lokal oder global testbar sein
muss, damit der Platzierungs-/Routingsalgorithmus Kenntnis von den
fehlerhaften Elementen haben kann.
-
Es
ist schwierig, alle elektronischen Architekturen zu identifizieren,
die einen Nutzen aus der Erfindung ziehen können. In der Folge werden einige
Beispiele präsentiert.
-
• 1D- oder 2D-Korrelator
-
Es
handelt sich um die zeilen- oder matrixförmige Verbindung von Funktionselementen,
deren Rolle darin besteht, eine Multiplikation der Eingänge durchzuführen, gefolgt
von einer Addition der Resultate dieser Multiplikation mit dem vorhergehenden
Resultat. Man spricht dann von einem Multiplizier-Akkumulier-Rechenwerk
(MAc), wie dargestellt in der 20. Die "Eingang Zeile"-Daten sind mit den "Eingang Spalte"-Daten korreliert
dank tabellenförmig
organisierter identischer MAc-Zellen. Es ist dann leicht, das erfindungsgemäße Verfahren
wie dargestellt in der 21 anzuwenden. Die letzte Zeile
der Matrix bildet die "MAc
spare"-Zeile.
-
• Matrixarchitektur von Blöcken zur
Berechnung der schnellen Fourier-Transformation (FFT)
-
Diese
Architektur ist ebenfalls um eine matrixförmige Anordnung von Funktionselementen
des MAc-Typs herum organisiert, mit einem komplexeren Zusammenschaltungsplan,
in Multistufen (Schmetterlings- bzw. Schmetterlingsgraphen-FFT)
aber immer mit zwei Eingängen
und zwei Ausgängen
durch MAc. Das Hinzufügen
einer zusätzlichen
Zeile von Funktionselementen sowie von Schaltelementen ermöglicht,
die Ausfälle
bei der kompletten logischen Struktur zu tolerieren.
-
Diese
beiden letzteren Beispiele zeigen, dass das erfindungsgemäße Verfahren
bei digitalen elektronischen Architekturen anwendbar ist, die eine
Gruppe identischer Funktionselemente verbinden, nicht nur Prozessoren.
Die sehr regelmäßigen Strukturen
der Baukomponenten des Typs FPGA ("Field Programmable Gate Array"), die ebenfalls
rekonfigurierbare Logikblöcke
(zum Beispiel auf der Basis eines RAM-Speichers) matrixförmig zusammenschalten,
können
ebenfalls einen Nutzen aus dem Verfahren der Erfindung ziehen.
-
Schließlich sollte
auch das Gebiet der Telekommunikationen einen Nutzen aus dem Verfahren
der Erfindung ziehen. Es werden nämlich zum Beispiel bei den
Nachrichtenroutern identische Funktionselemente zusammengeschaltet,
um das komplette System zu bilden.
-
REFERENZEN
-
- [1] "Architectures électroniques
(Elektronische Architekturen)" (CEA
Technologies Nr. 29 "Le
traitement du signal et de I'image
(Die Signal- und Bildverarbeitung", Seiten 3-5)
- [2] "Handwave-Efficient
and Highly-Reconfigurable 4- and 2-Track fault Tolerant Designs
For Mesch-Connected Multicomputers" von Nihar R. Mahapatra und Shantanu
Dutt (IEEE, 1996, Seiten 272 bis 281)
- [3] "New algorithms
for reconfiguring VLSI/WSI arrays" von Theodora A. Varvarigou, Vwani I.
Roychowdhury und Thomas Kaillath (Journal of VLSI signal processing,
NL. Kluwer Academic Publishers, Dordrecht, Band 3, Nr. 4, 1. Oktober
1991 (10.01.1991), Seiten 329-344, XP000262126 ISSN:0922-5773).