DE60033624T2 - Rekonfigurierungsverfahren für ein gatter von identischen funktionselementen - Google Patents

Rekonfigurierungsverfahren für ein gatter von identischen funktionselementen Download PDF

Info

Publication number
DE60033624T2
DE60033624T2 DE60033624T DE60033624T DE60033624T2 DE 60033624 T2 DE60033624 T2 DE 60033624T2 DE 60033624 T DE60033624 T DE 60033624T DE 60033624 T DE60033624 T DE 60033624T DE 60033624 T2 DE60033624 T2 DE 60033624T2
Authority
DE
Germany
Prior art keywords
functional elements
elements
gate
functional
places
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60033624T
Other languages
English (en)
Other versions
DE60033624D1 (de
Inventor
Fabien Clermidy
Thierry Collette
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Original Assignee
Commissariat a lEnergie Atomique CEA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Commissariat a lEnergie Atomique CEA filed Critical Commissariat a lEnergie Atomique CEA
Publication of DE60033624D1 publication Critical patent/DE60033624D1/de
Application granted granted Critical
Publication of DE60033624T2 publication Critical patent/DE60033624T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • G06F15/17343Direct connection machines, e.g. completely connected computers, point to point communication networks wherein the interconnection is dynamically configurable, e.g. having loosely coupled nearest neighbor architecture

Description

  • 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:
    Figure 00110001
    Figure 00120001
  • 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).

Claims (5)

  1. Rekonfigurierungsverfahren für ein Gatter von parallelen identischen Funktionselementen mit Toleranz für die Fehler dieser Funktionselemente, wobei das Gatter die genannten Basisfunktionselemente (P), zusätzliche Funktionselemente (Sp) und Zusammenschaltungselemente (Cm) dieser Funktionselemente aufweist und das genannte Verfahren dabei umfasst: – einen Platzierungsschritt der Funktionselemente des logischen Gatters; – einen Routing-Schritt, bestehend aus einer Programmierung der Zusammenschaltungselemente in dem physischen Gatter, indem man eine maximale Anzahl von Zusammenschaltungselementen 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 Kontrolleinheit 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... des logischen Platzes 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.
  2. Verfahren nach Anspruch 1, bei dem man, wenn alle Funktionselemente platziert sind, 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.
  3. Verfahren nach Anspruch 1, bei dem die Platzierungsordnung folgendermaßen definiert wird: das Ausgangsfunktionselement ist das Funktionselement links oben, die nächsten Funktionselemente sind die Funktionselemente rechts und unterhalb des Ausgangsfunktionselements und so weiter, wobei man eine Diagonale einhält.
  4. Verfahren nach Anspruch 1, bei dem man das Gatter in Funktionselemente-Blöcke unterteilt und eine Platzierungsordnung der Blöcke definiert, 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.
  5. Verfahren nach Anspruch 1, bei dem die Funktionselemente Prozessoren sind.
DE60033624T 1999-07-02 2000-06-30 Rekonfigurierungsverfahren für ein gatter von identischen funktionselementen Expired - Lifetime DE60033624T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR9908554 1999-07-02
FR9908554A FR2795839B1 (fr) 1999-07-02 1999-07-02 Procede de reconfiguration applicable a un reseau d'elements fonctionnels identiques
PCT/FR2000/001861 WO2001002960A1 (fr) 1999-07-02 2000-06-30 Procede de reconfiguration applicable a un reseau d'elements fonctionnels identiques

Publications (2)

Publication Number Publication Date
DE60033624D1 DE60033624D1 (de) 2007-04-12
DE60033624T2 true DE60033624T2 (de) 2007-11-15

Family

ID=9547641

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60033624T Expired - Lifetime DE60033624T2 (de) 1999-07-02 2000-06-30 Rekonfigurierungsverfahren für ein gatter von identischen funktionselementen

Country Status (6)

Country Link
US (1) US6826709B1 (de)
EP (1) EP1116116B1 (de)
AT (1) ATE355557T1 (de)
DE (1) DE60033624T2 (de)
FR (1) FR2795839B1 (de)
WO (1) WO2001002960A1 (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6938256B2 (en) 2000-01-18 2005-08-30 Galactic Computing Corporation System for balance distribution of requests across multiple servers using dynamic metrics
US6816905B1 (en) 2000-11-10 2004-11-09 Galactic Computing Corporation Bvi/Bc Method and system for providing dynamic hosted service management across disparate accounts/sites
US8538843B2 (en) 2000-07-17 2013-09-17 Galactic Computing Corporation Bvi/Bc Method and system for operating an E-commerce service provider
GB2370380B (en) 2000-12-19 2003-12-31 Picochip Designs Ltd Processor architecture
US7606819B2 (en) 2001-10-15 2009-10-20 Maya-Systems Inc. Multi-dimensional locating system and method
GB2417586B (en) 2002-07-19 2007-03-28 Picochip Designs Ltd Processor array
US20080058106A1 (en) 2002-10-07 2008-03-06 Maya-Systems Inc. Multi-dimensional locating game system and method
US7451183B2 (en) * 2003-03-21 2008-11-11 Hewlett-Packard Development Company, L.P. Assembly and method for balancing processors in a partitioned server
JP2006236106A (ja) * 2005-02-25 2006-09-07 Canon Inc データ処理装置及びデータ処理方法
US8327114B1 (en) 2008-07-07 2012-12-04 Ovics Matrix processor proxy systems and methods
US7958341B1 (en) 2008-07-07 2011-06-07 Ovics Processing stream instruction in IC of mesh connected matrix of processors containing pipeline coupled switch transferring messages over consecutive cycles from one link to another link or memory
US8131975B1 (en) 2008-07-07 2012-03-06 Ovics Matrix processor initialization systems and methods
US8145880B1 (en) 2008-07-07 2012-03-27 Ovics Matrix processor data switch routing systems and methods
GB2470037B (en) 2009-05-07 2013-07-10 Picochip Designs Ltd Methods and devices for reducing interference in an uplink
GB2470891B (en) 2009-06-05 2013-11-27 Picochip Designs Ltd A method and device in a communication network
GB2470771B (en) 2009-06-05 2012-07-18 Picochip Designs Ltd A method and device in a communication network
GB2482869B (en) 2010-08-16 2013-11-06 Picochip Designs Ltd Femtocell access control
KR101731929B1 (ko) 2011-02-08 2017-05-02 삼성전자주식회사 재구성 가능 프로세서 및 구동 제어 방법
GB2489919B (en) 2011-04-05 2018-02-14 Intel Corp Filter
GB2489716B (en) 2011-04-05 2015-06-24 Intel Corp Multimode base system
US8990616B2 (en) * 2012-09-28 2015-03-24 International Business Machines Corporation Final faulty core recovery mechanisms for a two-dimensional network on a processor array
US9160617B2 (en) 2012-09-28 2015-10-13 International Business Machines Corporation Faulty core recovery mechanisms for a three-dimensional network on a processor array

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0190813B1 (de) * 1985-01-29 1991-09-18 The Secretary of State for Defence in Her Britannic Majesty's Government of the United Kingdom of Great Britain and Verarbeitungszelle für fehlertolerante Matrixanordnungen
US6646989B1 (en) * 1998-06-29 2003-11-11 Lucent Technologies Inc. Hop-by-hop routing with node-dependent topology information
FR2795840B1 (fr) * 1999-07-02 2001-08-31 Commissariat Energie Atomique Reseau de processeurs paralleles avec tolerance aux fautes de ces processeurs, et procede de reconfiguration applicable a un tel reseau

Also Published As

Publication number Publication date
EP1116116B1 (de) 2007-02-28
DE60033624D1 (de) 2007-04-12
WO2001002960A1 (fr) 2001-01-11
ATE355557T1 (de) 2006-03-15
US6826709B1 (en) 2004-11-30
FR2795839A1 (fr) 2001-01-05
FR2795839B1 (fr) 2001-09-07
EP1116116A1 (de) 2001-07-18

Similar Documents

Publication Publication Date Title
DE60033624T2 (de) Rekonfigurierungsverfahren für ein gatter von identischen funktionselementen
DE60020933T2 (de) Gatter von parallelen prozessoren mit fehlertoleranz der prozessoren und rekonfigurierungsverfahren dafür
DE3049437C2 (de) Matrixanordnung einer Vielzahl von Verarbeitungselementen
DE69837335T2 (de) Vielfach-array-prozessor und verbindungssystem
DE69827589T2 (de) Konfigurierbare Verarbeitungsanordnung und Verfahren zur Benutzung dieser Anordnung, um eine Zentraleinheit aufzubauen
DE2819571C2 (de)
DE19835216B4 (de) Prozessor und Verfahren zur parallelen Datenverarbeitung
DE4137515C2 (de) Integrierte Halbleiterschaltungsvorrichtung
DE19722365B4 (de) Rekonfigurierbares Rechenbauelement
DE102020122174A1 (de) Berechne-in/nahe speicher- (cim) schaltungsarchitektur für vereinheitlichte matrix-matrix- und matrix-vektor-berechnungen
DE602004009324T2 (de) Integrierte datenverarbeitungsschaltung mit mehreren programmierbaren prozessoren
DE3533800C1 (de) Verfahren zum Betreiben eines hochintegrierten Wellenfront-Feldrechners sowie entsprechender Wellenfront-Feldrechner
DE4134192A1 (de) Integrierter schaltkreis mit verarbeitung im speicher
DE3338333A1 (de) Logiksimulatorgeraet zur gueltigkeitspruefung einer logikstruktur
DE102009053578A1 (de) Verfahren und Vorrichtung zum Durchführen eines parallelen Routens unter Verwendung einer Multithreaded-Routing-Prozedur
DE60034470T2 (de) Massiv paralleles Datenverarbeitungssystem und skalierbares Verbindungsnetz für ein solches System
DE3909153C2 (de)
WO1997031318A1 (de) Mehrprozessor-zentraleinheit
DE112012003335T5 (de) Integrierte Schaltung
EP1038235B1 (de) Vorrichtung zum hierarchischen verbinden einer mehrzahl von funktionseinheiten in einem prozessor
DE602004012156T2 (de) Taktverteilung in integrierten schaltungen
DE3708887C2 (de)
DE1574997A1 (de) Digitalrechner
DE102016013579A1 (de) Speicherungs-Prozessorarray für wissenschaftliche Berechnungen
DE102015205027A1 (de) Datenverarbeitungsvorrichtung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition