-
Die
Erfindung betrifft eine Prozessoranordnung und insbesondere eine
Prozessoranordnung mit einem gewissen Grad an Redundanz, der es
der Anordnung auch dann erlaubt, normal zu arbeiten, wenn ein oder
mehrere Prozessoren defekt sind.
-
GB-A-2370380 offenbart
eine Prozessoranordnung, in der Datenverarbeitungsfunktionen auf
die Prozessoren in der Anordnung verteilt sind, wobei die Prozessoren über Busse
und Schaltelemente verbunden sind, die bestimmen, wie Daten von
einem Feldelement zu einem anderen übertragen werden.
-
Die
Herstellungsverfahren für
Halbleitervorrichtungen arbeiten nicht völlig fehlerfrei. Diese Fehler
führen
zu punktuellen Defekten, die über
einen Siliciumwafer verteilt sind. Werden für eine vorgegebene Defektdichte
die Abmessungen größer, so
steigt der Anteil an fehlerbehafteten Vorrichtungen. Für die meisten
Halbleitervorrichtungen gilt, dass bei einem Defekt irgendwo auf
dem Halbleiterplättchen
das Plättchen
verworfen werden muss, da für
einen korrekten Betrieb alle Schaltkreise in der Vorrichtung benötigt werden.
-
Eine
bekannte Ausnahme hiervon sind Speichervorrichtungen, beispielsweise
Random Access Memories (RAMs). Da in diesem Fall der überwiegende
Teil der Vorrichtung aus einer regelmäßigen Anordnung von Speicherzellen
besteht, kann man (redundante) Ersatzspalten von Zellen in die Vorrichtung
aufnehmen, die man dazu verwenden kann, Spalten zu ersetzen, in
denen beim Prüfen
Defekte erkannt werden. Zum Ersetzen der defekten Spalten werden
Schalter in die Schaltungen aufgenommen, die über Laserfuses gesteuert werden.
Die Fuses werden anhand der im Prüfvorgang gewonnenen Information
gezielt durchgebrannt. Dadurch erhöht sich der Anteil der nutzbaren
Vorrichtungen, die man aus einem Wafer erhält.
-
In
US-5,253,308 ist eine Prozessoranordnung
offenbart, die mindestens eine redundante Spalte enthält. Falls
ein Fehler in einem bestimmten Prozessorelement innerhalb einer
Spalte von Chips erkannt wird, kann für diese Spalte von Chips ein
Umgehungssignal aktiviert werden, und die Funktionalität wird auf
die redundante Zeile übertragen.
-
In
einem Artikel von Popli und Bayoumi ("A reconfigurable VLSI array for reliability and
yield enhancement",
Proceedings of the International Conference on Systolic Arrays,
San Diego CA, IEEE Comput. Soc. Proc., pp 631–642) ist ein ähnliches
Schema offenbart, wodurch die Funktion eines fehlerhaften Verarbeitungselements
auf ein korrekt arbeitendes benachbartes Verarbeitungselement übertragen
wird.
-
Die
Erfindung stellt eine Anordnung von Prozessorelementen bereit, in
der ein gewisser Grad an Redundanz enthalten sein kann. Im Einzelnen
enthält
die Anordnung eine oder mehrere Ersatz- oder Redundanzzeilen von
Feldelementen zusätzlich
zu der Anzahl, die zum Implementieren der beabsichtigten Funktion
oder Funktionen der Vorrichtung erforderlich ist. Tritt in einem
der Prozessoren in der Vorrichtung ein Defekt auf, so wird die gesamte
Zeile, die den fehlerhaften Prozessor enthält, nicht verwendet und durch
eine Ersatzzeile ersetzt.
-
Gemäß einem
ersten Aspekt der Erfindung wird ein Verfahren zum Zuweisen einer
Funktionalität
an Prozessorelemente in einer Prozessoranordnung bereitgestellt.
Die Prozessoranordnung umfasst zahlreiche Prozessorelemente, die
in einer Anordnung mit Zeilen und Spalten arrangiert sind, und die
Prozessorelemente sind durch Busse verbunden, die zwischen den Zeilen
und Spalten verlaufen, und durch Schalter, die sich an den Kreuzungen
der Busse befinden. Bei Betrieb der Prozessoranordnung werden Daten
während
Zeitschlitzen zwischen Prozessorelementen übertragen, und zwar über horizontale
Busse, die zwischen den Zeilen der Prozessorelemente verlaufen,
und über
vertikale Busse, die zwischen den Spalten der Prozessorelemente verlaufen.
Das Verfahren umfasst das Kennzeichnen einer Zeile als redundante
Zeile, der anfänglich
keine Funktionalität
zugewiesen wird, so dass man für
den Fall, dass man ein erstes Prozessorelement als fehlerhaft erkennt,
die Funktionalität
von der Zeile entfernen kann, die das erste Prozessorelement enthält, und
man die Funktionalität
statt dessen der redundanten Zeile zuweisen kann. Beim Zuweisen
der Funktionalität
an die Prozessorelemente, so dass Daten, die für das Übertragen eingeplant sind,
und zwar während
eines ersten Zeitschlitzes von einem ersten Prozessorelement in
einer ersten Zeile an ein zweites Prozessorelement in einer zweiten
Zeile, die sich von der ersten Zeile unterscheidet, und dies über einen
der Schalter ohne irgendeinen vertikalen Bus zu benutzen, wird der
Zeitschlitz für
die geplante Datenübertragung
auf einem Segment eines vertikalen Busses reserviert, den man im
Fall der Neuzuweisung von Funktionalität verwendet, nachdem man festgestellt
hat, dass entweder das erste Prozessorelement oder das zweite Prozessorelement
fehlerhaft ist.
-
Dies
erlaubt es, die erforderliche Funktionalität auch auf einer Vorrichtung
auszuführen,
die ein fehlerhaftes Prozessorelement enthält. Dies kann den Anteil der
nutzba ren Vorrichtungen, die man aus dem Herstellungsvorgang erhält, beträchtlich
erhöhen.
-
Gemäß einem
zweiten Aspekt der Erfindung wird eine Prozessoranordnung bereitgestellt,
die das beschriebene Verfahren ausführt. In einer bevorzugten Ausführungsform
verlaufen Paare von horizontalen Bussen zwischen den Zeilen der
Prozessorelemente, wobei jedes Paar einen ersten horizontalen Bus
umfasst, der Daten in einer ersten Richtung überträgt, und einen zweiten horizontalen
Bus, der Daten in einer zweiten Richtung entgegengesetzt zur ersten
Richtung überträgt. Vertikale
Busse laufen zwischen den Spalten von Prozessorelementen, wobei
einige Paare von benachbarten Spalten der Prozessorelemente keine
vertikalen Busse aufweisen, die zwischen ihnen verlaufen, und andere
Paare von benachbarten Spalten zwei zwischen ihnen verlaufende Busse
aufweisen, die Daten in einer ersten Richtung befördern, und
zwei Busse, die Daten in einer zweiten Richtung befördern, die
der ersten Richtung entgegengesetzt ist. An den Kreuzungspunkten der
horizontalen und vertikalen Busse befinden sich Schalter.
-
Diese
Feldgestaltung und insbesondere die ungleichmäßige Anordnung der vertikalen
Busse erlaubt den wirksamsten Gebrauch des Verfahrens gemäß dem ersten
Aspekt der Erfindung.
-
Die
Erfindung wird nunmehr zur besseren Darstellung und um zu zeigen,
wie sie ausgeführt
werden kann, beispielhaft mit Bezug auf die beiliegenden Zeichnungen
beschrieben.
-
Es
zeigt:
-
1 einen
Blockschaltplan einer Anordnung der Erfindung;
-
2 einen
Blockschaltplan eines Schalters in der Anordnung in 1;
-
3 einen
vergrößerten Blockschaltplan
eines Teils der Anordnung in 1;
-
4 eine
Skizze eines Halbleiterwafers, der zum Herstellen der Anordnung
in 1 verwendet wird;
-
5 einen
Blockschaltplan der Anordnung in 1, wobei
die Auswirkung eines möglichen
Defekts dargestellt ist;
-
6–16 vergrößerte Blockschaltpläne eines
Teils der Anordnung in 1, wobei die Arbeitsweise der
Vorrichtung im Fall möglicher
Defekte dargestellt wird.
-
1 zeigt
eine Feldarchitektur der Erfindung. Die Feldarchitektur entspricht
im Allgemeinen der Beschreibung in
GB-A-2370380 und
GB-A-2370381 , jedoch mit
Modifikationen, die im Weiteren beschrieben werden.
-
Die
Anordnung besteht aus einer Anzahl Feldelemente 20, die
in einer Matrix angeordnet sind. Zur Vereinfachung der Darstellung
weist das Beispiel in 1 sechs Zeilen auf, wobei jede
Zeile aus zehn Feldelementen (AE0, AE1, ..., AE9) besteht, so dass
insgesamt 60 Feldelemente vorhanden sind. Eine umsetzbare Ausführungsform
der Erfindung kann jedoch beispielsweise insgesamt über 400
Feldelemente aufweisen. Jedes Feldelement 20 ist jeweils über entsprechende
Verbinder 50 mit einem Segment eines entsprechenden ersten
horizontalen Busses 32 verbunden, der von links nach rechts
läuft,
und mit einem Segment eines entsprechenden zweiten horizontalen
Busses 36, der von rechts nach links verläuft. Die
horizontalen Bussegmente 32, 36 sind an Schaltern 55 mit
vertikalen Bussegmenten 41, 43 verbunden, die
nach oben laufen, und mit vertikalen Bussegmenten 42, 44,
die nach unten laufen. Im Einzelnen weist jeder Schalter 55 ein
horizontales Eingangsbussegment 32 auf, das von links nach
rechts läuft,
ein horizontales Eingangsbussegment 36, das von rechts
nach links verläuft,
zwei vertikale Eingangsbussegmente 41, 43, die
nach oben laufen, und zwei vertikale Eingangsbussegmente 42, 44,
die nach unten laufen, sowie ein horizontales Ausgangsbussegment 32,
das von links nach rechts läuft,
ein horizontales Ausgangsbussegment 36, das von rechts
nach links verläuft,
zwei vertikale Ausgangsbussegmente 41, 43, die
nach oben laufen, und zwei vertikale Ausgangsbussegmente 42, 44,
die nach unten laufen.
-
Alle
horizontalen Bussegmente 32, 36 und vertikalen
Bussegmente 41, 43, 42, 44 sind
32 Bit breit.
-
Einige
Paare benachbarter Spalten von Prozessorelementen (z. B. AE1 und
AE2, AE6 und AE7) weisen keine zwischen ihnen verlaufenden vertikalen
Busse auf. Dagegen besitzen andere Paare von benachbarten Spalten
(z. B. AE4 und AE5, AE8 und AE9) zwei Busse, die Daten in einer
ersten Richtung befördern
und zwei Busse, die Daten in einer zweiten Richtung entgegengesetzt
zur ersten Richtung befördern,
die zwischen den Spalten verlaufen. Diese ungleichmäßig verteilte
Anordnung, die zwei Paare von vertikalen Bussen nach einer Gruppe
von vier Spalten von Feldelementen bereitstellt und nicht beispielsweise
ein Paar vertikaler Busse nach einer Gruppe von zwei Spalten von
Feldelementen, ist wirksamer, und zwar aus Gründen, die im Folgenden beschrieben
werden.
-
2 zeigt
die Struktur eines der Schalter 55, wobei alle Schalter
untereinander gleich sind. Der Schalter enthält ein Random Access Memory
RAM 61, das mit Daten vorgeladen ist. Der Schalter 55 wird
lokal von einem Controller 60 gesteuert, der einen Zähler enthält, der
die Adressen im RAM 61 in vorbestimmter Folge durchzählt. Diese
gleiche Folge wird unbegrenzt wiederholt, und die Zeit, die gemessen
in Zyklen des Sys temtakts zum einmaligen vollständigen Durchlaufen der Folge
benötigt
wird, wird als Folgenperiode bezeichnet. Bei jedem Taktzyklus werden
die Ausgabedaten aus dem RAM 61 in ein Register 62 geladen.
Der Inhalt des Registers 62 dient zum Wählen der Quelle für jeden
Ausgabebus 66, der den Multiplexer 64 verwendet.
-
Die
Quelle für
den Ausgabebus 66 kann irgendeiner der sechs Eingabebusse
sein, nämlich
das horizontale Eingangsbussegment LeftIn von links nach rechts,
das horizontale Eingangsbussegment RightIn von rechts nach links,
die beiden vertikalen nach oben gehenden Eingangsbussegmente Up1In
und Up2In oder die beiden vertikalen nach unten gehenden Eingangsbussegmente
Down1In und Down2In. Zusätzlich
kann der Wert null als Quelle für
einen Ausgabebus gewählt
werden, und ebenso der Wert, der sich während eines vorhergehenden
Taktzyklus auf dem Ausgabebus befunden hat, der gesteuert durch
eines der Bits im Register 62 in ein Register 65 geladen
wird.
-
Wird
ein Ausgabebus nicht verwendet, so ist es vorteilhaft, null als
Quelle zu wählen,
wodurch der Wert auf dem Bus über
mehrere Taktzyklen unverändert
bleibt und dadurch Energie eingespart wird.
-
In 2 sind
nur ein Multiplexer 64 und sein zugeordnetes Register 65 dargestellt.
Der Schalter 55 enthält
jedoch sechs derartige Multiplexer und zugeordnete Register, nämlich einen
für jeden
Ausgabebus.
-
Die
größte Komponente
des Schalters 55 ist das RAM 61, obwohl es gemessen
an üblichen
RAMs noch eher klein ist. Die Größe des RAM 61 wird
daher in großem
Umfang durch den Adressdecodierabschnitt des RAM bestimmt. Da dies
nicht von der Anzahl der Busse abhängt, die im Schalter 55 geschaltet
werden, kann man die Gesamtgröße der Vorrichtung
verringern, indem man zwei Paare von vertikalen Bussen bereitstellt
sowie einen Schalter in jeder Zeile nach einer Gruppe von vier Spalten
von Feldelementen, anstatt beispielsweise ein Paar vertikaler Busse
und einen Schalter in jeder Zeile nach jeder Gruppe von zwei Spalten von
Feldelementen bereitzustellen.
-
3 zeigt
ausführlicher,
wie jedes Feldelement 20 mit den Segmenten der horizontalen
Busse 32, 36 an einem Verbinder 50 verbunden
wird. Jeder derartige Verbinder 50 enthält einen Multiplexer 51,
und ein Segment des Busses ist definiert als der Abschnitt zwischen
zwei solchen Multiplexern 51. Jedes Segment eines von links
nach rechts laufenden horizontalen Busses 32 ist mit Hilfe
einer Verbindung 21 an einen Eingang eines entsprechenden
Feldelements 20 angeschlossen. Ein Ausgang 22 eines
je den Feldelements 20 ist über einen weiteren Multiplexer 51 an
ein entsprechendes Segment eines von rechts nach links laufenden
horizontalen Busses 36 angeschlossen.
-
Jeder
Multiplexer 51 wird von einer Schaltung (nicht dargestellt)
innerhalb des zugeordneten Feldelements 20 gesteuert, die
festlegt, ob der Multiplexer die Daten auf dem Eingangsbussegment
oder die Daten auf dem Feldelementausgang ausgibt.
-
Alle
Kommunikationsvorgänge
in der Anordnung geschehen in einer vorbestimmten Reihenfolge, die eine
vorbestimmte Anzahl (beispielsweise 1024) von Taktzyklen dauert
(die oben beschriebene Folgenperiode). Jeder Schalter und jedes
Feldelement enthält
einen Zähler,
der die Folgenperiode zählt.
Wie beschrieben wählt
in jedem Zyklus dieser Folge jeder Schalter Daten von einer der
acht möglichen
Quellen auf jeden seiner sechs Ausgabebusse. In vorbestimmten Zyklen
laden Feldelemente Daten von den entsprechenden Eingabebussegmenten über die
jeweiligen Verbindungen 21 herein und leiten die Daten
mit Hilfe der Multiplexer 51 auf die jeweiligen Ausgabebussegmente
weiter.
-
Jedes
Feldelement kann seinen zugeordneten Multiplexer steuern und zu
den korrekten Zeiten in der Folge Daten von den Bussegmenten laden,
mit denen es verbunden ist, und auf den Daten gewisse nützliche Funktionen
ausführen.
Die nützliche
Funktion kann beispielsweise nur im Speichern der Daten bestehen.
-
In
einer bevorzugten Ausführungsform
der Erfindung enthält
jedoch jedes Feldelement einen komplizierten Mikroprozessor, dessen
Fläche
ein Mehrfaches der Fläche
eines jeden Schalters einnimmt. Dieser Unterschied in der Größe macht
die Erfindung, die Fehler in den Feldelementen ausgleichen will
und nicht in den Schaltern, besonders wirksam.
-
Sind
die Feldelemente nicht alle identisch, so sollten, damit sich die
Erfindung besonders wirksam einsetzen lässt, wenigstens in jeder Spalte
der Anordnung alle Feldelemente identisch sein.
-
Die
Herstellungsvorgänge
für Halbleitervorrichtungen
sind fehlerbehaftet. Dies führt
zu Punktfehlern, die über
einen Siliciumwafer verteilt sind. Für einen gegebenen Herstellungsvorgang
mit einem gegebenen Reifegrad ist diese Fehlerdichte im Wesentlichen
konstant. Dies ist in 4 dargestellt, die den Rand
eines kreisförmigen
Siliciumwafers 60 zeigt sowie die einzelnen quadratischen
Chips 61, die zum Herstellen der einzelnen Vor richtungen
verwendet werden, und zufällig
verteilte Defekte 62.
-
Nimmt
bei einer gegebenen Defektdichte die Plättchengröße zu, so wächst der Anteil an fehlerbehafteten
Vorrichtungen.
-
Tritt
irgendwo auf dem Plättchen
ein Defekt auf, so müssen
die meisten Halbleitervorrichtungen verworfen werden, da für den korrekten
Betrieb alle Schaltkreise in der Vorrichtung benötigt werden.
-
Gemäß der Erfindung
enthält
die Anordnung von Prozessorelementen einen gewissen Grad an Redundanz.
Im Einzelnen sind eine oder mehrere (redundante) Ersatzzeilen von
Feldelementen über
die Anzahl hinaus, die zum Implementieren der beabsichtigten Funktion
oder Funktionen der Vorrichtung erforderlich ist, in der Anordnung
enthalten. Tritt in einem der Prozessorelemente ein Defekt auf,
und zwar entweder während der
Herstellung oder bei Betrieb der Vorrichtung, so wird die gesamte
Zeile von Feldelementen, die das fehlerhafte Prozessorelement enthält, nicht
verwendet, und sie wird durch eine Ersatzzeile ersetzt.
-
Da
die Feldelemente innerhalb einer Spalte wie erwähnt alle identisch sind, ist
jede Zeile von Feldelementen identisch, und die gesamte Funktionalität einer
Zeile, die das fehlerhafte Prozessorelement enthält, kann von der Ersatzzeile übernommen
werden.
-
5 zeigt
eine Anordnung von Prozessorelementen wie in 1, wobei
die sechs Zeilen als Zeile n (n = 0, ..., 5) und die zehn Feldelemente
in jeder Zeile als AEnm (m = 0, ..., 9) bezeichnet sind. Wird beispielsweise
in irgendeinem der Feldelemente in der Zeile 2 ein Defekt erkannt,
so wird diese gesamte Feldelementzeile nicht verwendet. War im Einzelnen
ursprünglich
beabsichtigt, dass die Zeile 5 die Ersatzzeile ist, und der Produktionsprüfvorgang
erkennt einen Fehler in einem Feldelement in Zeile 2, so werden
die Softwareprogramme, die sonst in die Feldelemente von Zeile 2
geladen worden wären,
in die entsprechenden Feldelemente der Zeile 3 geladen. Die Softwareprogramme,
die sonst in die Feldelemente von Zeile 3 geladen worden wären, werden
in die entsprechenden Feldelemente der Zeile 4 geladen, und die
Softwareprogramme, die sonst in die Feldelemente von Zeile 4 geladen
worden wären,
werden in die entsprechenden Feldelemente der Zeile 5 geladen.
-
Bezeichnet
man das Softwareprogramm, das ursprünglich für irgendeines der Feldelemente
AEnm bestimmt war, mit Prognm, so ist die vollständige Neuverteilung der Programme
im Folgenden angegeben.
Feldelement | Originalprogramm | Überarbeitetes Programm | Feldelement | Originalprogramm | Überarbeitetes Programm | Feldelement | Originalprogramm | Überarbeitetes Programm |
AE00 | Prog00 | Prog00 | AE01 | Prog01 | Prog01 | AE02 | Prog02 | Prog02 |
AE03 | Prog03 | Prog03 | AE04 | Prog04 | Prog04 | AE05 | Prog05 | Prog05 |
AE06 | Prog06 | Prog06 | AE07 | Prog07 | Prog07 | AE08 | Prog08 | Prog08 |
AE09 | Prog09 | Prog09 | AE10 | Prog10 | Prog10 | AE11 | Prog11 | Prog11 |
AE12 | Prog12 | Prog12 | AE13 | Prog13 | Prog13 | AE14 | Prog14 | Prog14 |
AE15 | Prog15 | Prog15 | AE16 | Prog16 | Prog16 | AE17 | Prog17 | Prog17 |
AE18 | Prog18 | Prog18 | AE19 | Prog19 | Prog19 | AE20 | Prog20 | Unbenutzt |
AE21 | Prog21 | Unbenutzt | AE22 | Prog22 | Unbenutzt | AE23 | Prog23 | Unbenutzt |
AE24 | Prog24 | Unbenutzt | AE25 | Prog25 | Unbenutzt | AE26 | Prog26 | Unbenutzt |
AE27 | Prog27 | Unbenutzt | AE28 | Prog28 | Unbenutzt | AE29 | Prog29 | Unbenutzt |
AE30 | Prog30 | Prog20 | AE31 | Prog31 | Prog21 | AE32 | Prog32 | Prog22 |
AE33 | Prog33 | Prog23 | AE34 | Prog34 | Prog24 | AE35 | Prog35 | Prog25 |
AE36 | Prog36 | Prog26 | AE37 | Prog37 | Prog27 | AE38 | Prog38 | Prog28 |
AE39 | Prog39 | Prog29 | AE40 | Prog40 | Prog30 | AE41 | Prog41 | Prog31 |
AE42 | Prog42 | Prog32 | AE43 | Prog43 | Prog33 | AE44 | Prog44 | Prog34 |
AE45 | Prog45 | Prog35 | AE46 | Prog46 | Prog36 | AE47 | Prog47 | Prog37 |
AE48 | Prog48 | Prog38 | AE49 | Prog49 | Prog39 | AE50 | Unbenutzt | Prog40 |
AE51 | Unbenutzt | Prog41 | AE52 | Unbenutzt | Prog42 | AE53 | Unbenutzt | Prog43 |
AE54 | Unbenutzt | Prog44 | AE55 | Unbenutzt | Prog45 | AE56 | Unbenutzt | Prog46 |
AE57 | Unbenutzt | Prog47 | AE58 | Unbenutzt | Prog48 | AE59 | Unbenutzt | Prog49 |
-
Zusätzlich zum
Umverteilen der Programme, die auf den Feldelementen laufen, müssen die
Inhalte der RAMs in den Schaltern ebenfalls geändert werden, damit die Daten
zu dem Feldelement überfragen
werden, das sie nun verwendet. Man kann der obigen Tabelle entnehmen,
dass die Programme derart umverteilt werden, dass Programme, die
auf Feldelementen über
der Zeile mit dem fehlerhaften Feldelement laufen, auf den gleichen
Feldelementen abgearbeitet werden, wogegen Programme, die auf Feldelementen
in oder unter der Zeile mit dem fehlerhaften Feldelement laufen,
auf dem entsprechenden Feldelement in der Zeile unter der ursprünglichen
Zeile abgearbeitet werden. In der gleichen Weise werden daher die
RAMs umprogrammiert, so dass die von den Daten genommenen Wege mit
der fehlerhaften Zeile und den Zeilen darunter nach unten wandern
und in der Zeile über
der fehlerhaften Zeile an ihrem Platz bleiben. Beginnen oder enden
die Wege an der fehlerhaften Zeile oder durchlaufen sie die fehlerhafte
Zeile, so ist die Situation etwas komplizierter. Alle Fälle werden
mit Hilfe von 6 beschrieben, die eine Detailansicht
eines Teils der Anordnung in 5 darstellt,
und anhand von 7 bis 16, die
besondere Beispiele für
die Anforderungen beim Umprogrammieren der Schalter zeigen.
-
Wie
in 5 dargestellt wird angenommen, dass eines der
Feldelemente in Zeile 2 ausgefallen ist und dass somit alle Feldelemente
in dieser Zeile nicht länger
verwendbar sind. Im Einzelnen, siehe 6, werden die
Programme, die auf AE24, AE25 und AE26 gelaufen wären, auf
AE34, AE35 bzw. AE36 übertragen.
In ähnlicher
Weise werden die Programme, die auf AE34, AE35 und AE36 gelaufen
wären,
auf AE44, AE45 und AE46 übertragen,
usw. In 7 bis 16 bezeichnen
fette punktierte Linien Ressourcen (Verbinder, Schalter oder Multiplexer),
die in der ursprünglichen
(fehlerfreien) Konfiguration verwendet werden, Doppellinien bezeichnen
Ressourcen, die in der neuen Konfiguration verwendet werden, und
fette durchgezogenen Linien bezeichnen Ressourcen, die sowohl in
der ursprünglichen
als auch in der neuen Konfiguration verwendet werden.
-
Die
Daten werden gemäß den im
Folgenden angegebenen Regeln umgeleitet.
-
Für einen
horizontalen Weg über
der fehlerhaften Zeile ergeben sich keine Änderungen.
-
Für einen
horizontalen Weg auf der fehlerhaften Zeile oder darunter werden
alle Wege um eine Zeile nach unten verlegt. Dies ist in 7 dargestellt,
die zeigt, dass ein Weg von AE24 nach AE25 über die Bussegmente 80 und 81 und
den Schalter SW21 auf einen Weg von AE34 nach AE35 über die
Bussegmente 88 und 89 und den Schalter SW31 verlegt
wird.
-
Wege,
die vollständig über der
fehlerhaften Zeile liegen, sind nicht betroffen, siehe 8.
-
Wege,
die vollständig
unter der fehlerhaften Zeile liegen, werden wie die beschriebenen
horizontalen Wege alle um eine Zeile nach unten verschoben.
-
Wege,
die von unten zur fehlerhaften Zeile verlaufen, werden so behandelt
wie Wege, die vollständig unter
der fehlerhaften Zeile liegen; dies ist in 9 dargestellt.
Man kann sehen, dass ein Weg von AE35 nach AE25 über das Bussegment 95,
den Schalter SW41, das Bussegment 91, den Schalter SW31,
das Bussegment 83, den Schalter SW21 und das Bussegment 81 auf
einen Weg verschoben wird, der von AE45 nach AE35 ver läuft, und
zwar über
das Bussegment 105, den Schalter SW51, das Bussegment 101,
den Schalter SW41, das Bussegment 91, den Schalter SW31
und das Bussegment 89.
-
Wege,
die von oben zur fehlerhaften Zeile verlaufen, wobei der Originalweg
mindestens ein vertikales Bussegment enthält, erfordern, dass der vertikale
Weg nach unten um einen zusätzlichen
Schalter erweitert wird. Dies ist in 10 dargestellt.
Gezeigt wird ein Teilweg vom Schalter SW11 nach AE25 über das
Bussegment 73, den Schalter SW21 und das Bussegment 81,
der vom Schalter SW21 nach AE35 erweitert wird, und zwar über das
Bussegment 85, den Schalter SW31 und das Bussegment 89.
-
Wege,
die von der darüber
liegenden Zeile zur fehlerhaften Zeile verlaufen und keinerlei vertikales Bussegment
verwenden, bilden einen Sonderfall. Insbesondere, siehe 11,
enthält
der Originalweg anders als im Beispiel in 10 keine
vorhandenen vertikalen Bussegmente, die zu erweitern sind. Daher
muss ein neuer vertikaler Abschnitt eingefügt werden. Dies kann möglicherweise
zu Problemen führen,
da das vertikale Bussegment, das für den neuen Weg benötigt wird,
während
des erforderlichen Zeitschlitzes bereits einem anderen Weg zugewiesen
sein kann.
-
Daher
muss man beim Zuweisen von Wegen diese Anforderung beachten. Insbesondere
dann, wenn irgendein Weg geplant wird, der von einer Zeile zu einer
anderen Zeile geht, ohne dass irgendwelche vertikalen Bussegmente
verwendet werden, sollte das System eine Verbindung auf dem Bussegment
reservieren, das im Fall eines Versagens in der unteren der beiden
Zeilen benötigt
würde.
-
Die
beschriebene Anordnung der vertikalen Busse mit ungleichmäßigen Abständen, bei
der zwei Paare vertikaler Busse nach jeder Gruppe aus vier Spalten
von Feldelementen bereitgestellt werden, erlaubt es, diese Verbindungen
wirksamer zu reservieren, und zwar bezogen auf eine alternative
gleichförmigere
Verteilung, bei der beispielsweise ein Paar vertikaler Busse nach
jeder Gruppe von zwei Spalten von Feldelementen vorhanden ist.
-
In 11 wird
der Weg vom Feldelement AE15 zum Feldelement AE25 über das
Bussegment 75, den Schalter SW21 und das Bussegment 81 so
verschoben, dass das Bussegment 81 nicht verwendet wird,
und der Weg vom Schalter SW21 wird zum Feldelement AE35 über das
vertikale Bussegment 85, den Schalter SW31 und das Bussegment 89 erweitert.
Eine Verbindung auf dem Bussegment 85 (oder auf dem anderen Bussegment 82,
das vom Schalter SW21 nach SW31 verläuft) muss vom ursprünglichen
We gezuweisungsvorgang für
diesen Zeitschlitz reserviert werden.
-
Wege,
die an der fehlerhaften Zeile beginnen und nach unten verlaufen,
siehe 12, werden genau so behandelt
wie Wege, die vollständig
unter der fehlerhaften Zeile liegen. Beispielsweise wird ein Weg
vom Feldelement AE25 nach AE35 über
das Bussegment 87, den Schalter SW31 und das Bussegment 89 auf
einen Weg vom Feldelement AE35 nach AE45 über das Bussegment 95,
den Schalter SW41 und das Bussegment 107 verschoben.
-
Man
beachte, dass in diesem Fall weder der ursprüngliche Weg noch der Ersatzweg
irgendeinen Abschnitt eines vertikalen Busses enthält. Dadurch
tritt das oben anhand von 11 beschriebene
potentielle Problem nicht auf.
-
Wege,
die an der fehlerhaften Zeile beginnen und nach oben verlaufen,
und bei denen der Originalweg mindestens ein vertikales Bussegment
enthält,
werden wie in 13 erläutert um ein vertikales Bussegment erweitert.
Dabei wird ein Weg vom Feldelement AE25 nach AE15 über das
Bussegment 87, den Schalter SW31, das Bussegment 83,
den Schalter SW21, das Bussegment 71 und den Schalter SW11
so verändert, dass
er am Feldelement AE35 beginnt, und er wird über das Bussegment 95,
den Schalter SW41 und das Bussegment 91 zum Schalter SW31
geführt.
Anschließend
geht der Weg wie vorher nach AE15.
-
Ein
Weg von der fehlerhaften Zeile zur darüber liegenden Zeile, der keine
vertikalen Bussegmente enthält,
ist in 14 dargestellt. Dies entspricht
dem oben in 11 dargestellten Fall. Im Einzelnen
wird ein Weg vom Feldelement AE24 nach AE14 über das Bussegment 80,
den Schalter SW21 und das Bussegment 74 durch einen Weg
vom Feldelement AE34 nach AE14 über
das Bussegment 88, den Schalter SW31, das Bussegment 84,
den Schalter SW21 und das Bussegment 74 ersetzt. Damit
muss der ursprüngliche
Wegezuweisungsvorgang eine Verbindung auf dem Bussegment 84 (oder
auf dem anderen Bussegment 83, das vom Schalter SW31 nach
SW21 verläuft)
reservieren, um mögliche
Konflikte zu vermeiden.
-
Wege,
die die fehlerhafte Zeile kreuzen, sind in 15 (nach
oben verlaufend) und in 16 (nach unten
verlaufend) dargestellt. In diesen Fällen werden die Zuweisungen
aller vertikalen Bussegmente unter der fehlerhaften Zeile um eine
Zeile nach unten verschoben, und ein zusätzliches Bussegment in der
fehlerhaften Zeile wird zugewiesen.
-
Der
Vorgang des Bestimmens der erforderlichen Inhalte des RAM 61 für jeden
Schalter ist einem Fachmann für
jeden der obigen Fälle
geläufig.
-
Die
obige Beschreibung zeigt, wie eine einzige fehlerhafte Zeile durch
eine Ersatzzeile ersetzt werden kann. Sind in der Anordnung zwei
Ersatzzeilen enthalten, so können
zwei fehlerhafte Zeilen ersetzt werden. Die Vorgehensweise gleicht
exakt der beschriebenen, wird jedoch zwei Mal wiederholt. Zuerst
wird die oberste fehlerhafte Zeile ersetzt, wobei ignoriert wird,
dass eine zweite fehlerhafte Zeile vorhanden ist. Anschließend wird
die untere fehlerhafte Zeile ersetzt. Prinzipiell kann man jede
beliebige Anzahl fehlerhafter Zeilen in gleicher Weise reparieren.
Eine praktische Beschränkung
für die
Anzahl der Ersetzungen liegt darin, dass vertikale Wege für jede ersetzte
Zeile länger
werden können
(da der Weg in der Tat über
die fehlerhafte Zeile "gestreckt" wird) und dies die Übertragungszeit
für die
Daten erhöht.
Schließlich
würde die
erhöhte Übertragungszeit
dazu führen,
dass die Daten nicht mehr mit der erforderliche Rate verarbeitet
werden können.
-
Werden
Fehler im Zuge der Fertigungsüberprüfung erkannt,
so kann man die Information bezüglich der
fehlerhaften Zeile dazu verwenden, in den geprüften Vorrichtungen Laserfuses
aufzutrennen. Der Vorgang, der Programme auf die Feldelemente lädt und die
Daten in den RAMs der Schalter manipuliert, kann diese Information
zum Zeitpunkt der Konfiguration der Anordnung verwenden. Wahlweise
kann das hier beschriebene Verfahren dazu eingesetzt werden, Defekte
zu reparieren, die während
des Betriebs im Feld auftreten. In diesem Fall kann man Defekte
in den Feldelementen dadurch erkennen, dass man eine Prüfsoftware
auf den Feldelementen laufen lässt.
-
Das
Verfahren und die Vorrichtung sind hier hauptsächlich bezüglich einer Anordnung beschrieben,
in der die Prozessorelemente Mikroprozessoren enthalten. Wie bereits
angegeben können
die Prozessorelemente auch einfach die Fähigkeit haben, Daten zu speichern.
Im Gegensatz dazu kann jedes Prozessorelement selbst eine Anordnung
von kleineren Prozessorelementen enthalten.