DE3880478T2 - Geschichtetes netz. - Google Patents
Geschichtetes netz.Info
- Publication number
- DE3880478T2 DE3880478T2 DE8989900410T DE3880478T DE3880478T2 DE 3880478 T2 DE3880478 T2 DE 3880478T2 DE 8989900410 T DE8989900410 T DE 8989900410T DE 3880478 T DE3880478 T DE 3880478T DE 3880478 T2 DE3880478 T2 DE 3880478T2
- Authority
- DE
- Germany
- Prior art keywords
- request
- stage
- devices
- switching
- response
- 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 - Fee Related
Links
- 230000004044 response Effects 0.000 claims description 199
- 241001442055 Vipera berus Species 0.000 description 33
- 239000000872 buffer Substances 0.000 description 21
- 238000012546 transfer Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 17
- 230000000903 blocking effect Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 13
- 238000004422 calculation algorithm Methods 0.000 description 12
- 239000011159 matrix material Substances 0.000 description 9
- 238000012986 modification Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 9
- 238000000034 method Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000000295 complement effect Effects 0.000 description 5
- 238000004088 simulation Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 240000003537 Ficus benghalensis Species 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 241000196324 Embryophyta Species 0.000 description 1
- 102100039250 Essential MCU regulator, mitochondrial Human genes 0.000 description 1
- 101000813097 Homo sapiens Essential MCU regulator, mitochondrial Proteins 0.000 description 1
- 101100310541 Mus musculus Snap23 gene Proteins 0.000 description 1
- 206010000210 abortion Diseases 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 208000011580 syndromic disease Diseases 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q3/00—Selecting arrangements
- H04Q3/64—Distributing or queueing
- H04Q3/68—Grouping or interlacing selector groups or stages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
- H04L49/1507—Distribute and route fabrics, e.g. sorting-routing or Batcher-Banyan
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/101—Packet switching elements characterised by the switching fabric construction using crossbar or matrix
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/205—Quality of Service based
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
- H04L49/254—Centralised controller, i.e. arbitration or scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/40—Constructional details, e.g. power supply, mechanical construction or backplane
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
- Small-Scale Networks (AREA)
- Telephonic Communication Services (AREA)
Description
- Die Erfindung betrifft ein Netzwerk-Kommunikationssystem zur Verbindung von digitalen Rechnern.
- Die Leistungsfähigkeit eines Datenverarbeitungssystems, welches aus vielen Prozessoren besteht, die im gleichen Zeitintervall jeweils ein Teilproblem bearbeiten, ist gegenwärtig trotz guter Rechnerausstattung relativ begrenzt. Eines der Haupthindernisse für einen wirksamen Einsatz der Prozessoren ist die Kommunikation zwischen diesen.
- Ein Wesentlicher Faktor bei aus vielen einzelnen digitalen Rechnern zusammengesetzten Systemen ist dabei der erforderliche große Umfang des Datenaustausches. Bekannte Verbindungsnetzwerke sind zu kostspielig oder zu langsam oder erlauben nur eine kleine Anzahl gewünschter Verbindungsmuste. Mit dem erfindungsgemäßen geschichteten Netzwerk wird der volle Bereich von sehr billigen Blocknetzwerken bis zu universellen, vollständigen Leitungsnetzwerken gespannt. Der Systementwickler kann in Abhängigkeit von den Systemanforderungen einen geeigneten Teil der geschichteten Struktur auswählen.
- Klassische Verbindungsnetzwerke (Baseline, Banyan, usw.) verwenden zur Vermeidung der mit der Steuerung von zentralisierten Netzwerken verbundenen Probleme verteilte (dezentrale) Leitungsschemen. In klassischen Netzwerken wird eine Verbindung dadurch hergestellt, daß jeder Schalter durch eines der Bits in dem Abrufsignal ("Anforderung") gesetzt wird. Das Abrufsignal stellt lediglich die Nummer des Prozessors dar, mit dem die Verbindung hergestellt werden soll. Bei einem Baseline-Netzwerk mit N Prozessoren wird jedes der log&sub2;N Bits zum Setzen eines der log&sub2;N Schalter mit einer 2x2 Schaltstruktur verwendet. Eine stehende Verbindung verhindert dabei jedoch den Aufbau vieler anderer Verbindungen. Wenn folglich zwei Abrufsignale gleichzeitig an einem Schalter eintreffen und beide den gleichen Anschluß verwenden müssen, tritt eine Blockierung auf. Mit geschichteten Netzwerken kann zur Leitungsführung aus mehr als einer Stelle eine Auswahl getroffen werden, so daß auch Verbindungen hergestellt werden können, die normalerweise blockiert wären.
- Die Druckschrift "Interconnection Networks for Parallel and Distributed Processing", herausgegeben von Wu und Feng und veröffentlicht 1984 durch die IEEE Computer Society enthält eine Sammlung von Aufsätzen, die den Stand der Technik bei Verbindungsnetzwerken beinhalten. In dem Aufsatz "A Sampler of Circuit Switching Networks" (Computer, Juni 1979) werden verschiedene Netzwerke einschließlich eines Cantor-Netzwerkes beschrieben. Dieser Aufsatz enthält einen einfachen Beweis dafür, daß das Cantor-Netzwerk nicht blockierend ist (d.h. daß von jedem nicht genutzten Eingang zu jedem nicht genutzten Ausgang eine Verbindung gefunden werden kann), beschreibt jedoch gleichzeitig, daß Leitungsalgorithmen zur gleichen Zeit nur einen Weg führen können (siehe S. 154, Pippenger).
- Der Kreuzschienenschalter (siehe S. 146 bei Wu und Feng) kann zwar in schneller und nicht blockierender Weise durchgeschaltet werden, seine Kosten erhöhen sich aber mit der Anzahl der zu verbindenden Prozessoren erheblich. Wu und Feng zeigen in ihrem Aufsatz "The Reverse Exchange Interconnection Network" (IEEE Trans Computer, September 1980) die funktionale Beziehung zwischen vielen der untersuchten Verbindungsnetzwerke einschließlich Baseline, Omega, Flip, Banyan und anderen. Sie erläutern weiterhin die kleine Teilnehmeranzahl, die diese Netzwerke mit allen möglichen Permutationen versorgen können. Die von Wu und Feng beschriebenen topologischen Transformationen können in Verbindung mit der erfindungsgemäßen Topologie verwendet werden und ermöglichen alternative Ausführungsformen, so daß sie vom Schutzumfang der Erfindung erfaßt sind.
- Im Gegensatz zu den Cantor-Netzwerken haben Baseline- Netzwerke schnelle Leitungsalgorithmen, sie neigen jedoch zu Blockierungen. Wu und Feng beschreiben auch das Benes-Netzwerk. Dieses Netzwerk kann durch Kaskadierung zweier Baseline-Netzwerke aufgebaut werden. Das Benes- Netzwerk implementiert alle N Fakultät (N!) Permutationen. Weiterhin erfordern Leitungsalgorithmen, die alle Permutationen und wesentlich weniger Kombinationen erlauben, eine zentralisierte Matrixmanipulation. Zusammengefaßt sind also bekannte Netzwerke entweder zu teuer (Kreuzschienen), haben keinen wirksamen Leitungsalgorithmus (Cantor, Benes) oder können nicht alle Permutationen und Kombinationen (Baseline) implementieren.
- Der Kreuzschienenschalter (Fig. 1) ist aufgrund seiner hohen Geschwindigkeit, seines regelmäßigen Aufbaus und seines vollen Verbindungsvermögens in vielen bekannten Verbindungssystemen verwendet worden. Eine Kreuzschiene ist im wesentlichen eine Ein-Richtungs-Anordnung, bei der die Ausgänge auf die Eingangssignale ansprechen. Jeder Ausgang kann dabei auf jeden gewünschten Eingang reagieren, ohne daß Konflikte auftreten. Aufgrund der nicht blockierenden Eigenschaften der Kreuzschienen und ihrer verteilten Steuerung dienen Sie als idealer Standard. Die Kosten von Kreuzschienen steigen jedoch in der Größenordnung von 0(N²) und erlauben keinen speziellen Sendebetrieb, bei dem verschiedene Empfänger verschiedene Werte von dem gleichen Eingang empfangen. (Der Ausdruck 0(N²) bezeichnet einen Wert Proportional zu N², wobei N die Anzahl der mit dem Netzwerk verbundenen Verarbeitungsknoten darstellt.) In großen Multiprozessorsystemen sind z.B. "Fetch-And-Op"-Befehle nützlich.
- Diese Einschränkungen haben die Entwickler zu mehrstufigen Verbindungsnetzwerken, die topologisch den Baseline- Netzwerken äquivalent sind, geführt, wie z.B. dem in Fig. 2 gezeigten Omega-Netzwerk. Das reversierte Banyan- Netzwerk gemäß Fig. 3 kommt unter den klassischen, baseline-äquivalenten Netzwerken dem erfindungsgemäßen geschichteten Netzwerk am nächsten. Auch wenn solche Netzwerke verteilte Leitungsalgorithmen, günstige Kosten und einen vertretbaren Anstieg der Zugriffsverzögerung aufweisen sowie "Fetch-and-op" Befehle unterstützen, so führen doch die solchen Netzwerken anhaftenden Blockiereigenschaften zu einer unbestimmten Verzögerung, die bei der Ausführung von eng aneinander gekoppelten Prozessen nachteilig ist. Das in Fig. 4 gezeigte Cantor-Netzwerk ist aufgrund seiner Kostensteigerung mit dem Faktor 0(Nlog²N) und seiner leicht nachzuweisenden nicht blockierenden Eigenschaften vorteilhaft. Das Setzen der Schalter eines solchen Netzwerkes ist jedoch relativ zeitaufwendig und nicht in geeigneter Weise verteilt.
- Fünf Leistungsmerkmale werden bei Netzwerken gewünscht: volle Vermaschung, verteilte Leitungsalgorithmen, minimale Zugriffszeiten, geringer Kostenanstieg und die Unterstützung besonderer Sendebefehle (wie z.B. Fetch-and- op). Die erfindungsgemäße neue Klasse geschichteter Verbindungsnetzwerke erfüllt alle diese Anforderungen und kann alle NN Verbindungsmuster mit einer Kostensteigerung von 0(Nlog³N) herstellen.
- Durch die Erfindung wird eine neue Art von mehrstufigen Verbindungsnetzwerken (synchronisierten geschichteten Netzwerken) zum Austausch von Daten zwischen Prozessoren eines im gleichen Zeitintervall betriebenen Computersystems offenbart. Geschichtete Netzwerke stellen eine Alternative zu den im hohen Maße blockierenden klassischen Netzwerken, die den Baseline-Netzwerken äquivalent sind, dar. Geschichtete Netzwerke unterstützen einen wesentlich größeren Verbindungssatz, als klassische Netzwerke. Ferner wird eine Unterklasse geschichteter Netzwerke, nämlich binäre, voll geschichtete Netzwerke gezeigt, die alle Verbindungen implementieren, die bei einem Kreuzschienensystem unter Verwendung der verteilten Algorithmen zum Setzen der Schalter möglich sind, jedoch mit wesentlich geringerer Kostensteigerung bei Übertragung auf Systeme mit mehreren Prozessoren.
- Das offenbarte Netzwerk (geschichtetes Netzwerk) weist eine Klasse mehrstufiger Verbindungsnetzwerke auf. Es dient zur Schaffung von Kommunikationswegen zwischen digitalen Computern oder anderen elektronischen Einrichtungen, sowie einer Struktur identischer Schalter und einem verteilten Verfahren zur Bestimmung der Schalterstellungen. Eine wesentliche Beschränkung, die solchen Systemen anhaftet, die aus vielen einzelnen digitalen Computern zusammengesetzt sind, besteht darin, daß ein großer Informationsaustausch erforderlich ist. Bekannte Verbindungsnetzwerke sind zu teuer, zu langsam oder ermöglichen nur eine kleine Untergruppe der gewünschten Verbindungsmuster. Die Klasse der geschichteten Netzwerke umfaßt den ganzen Bereich von sehr billigen blockierenden Netzwerken zu robusten Leitungsnetzwerken. Ein Systementwickler kann auf der Grundlage der besonderen Systemanforderungen aus der Klasse der geschichteten Netzwerke einen geeigneten Teil auswählen.
- Erfindungsgemäß wird ein Netzwerk-Verbindungssystem zur Verbindung von bis zu N Antworteinrichtungen mit bis zu N Abrufeinrichtungen geschaffen, welches folgende Merkmale aufweist:
- S Stufen von Schalteinrichtungen, die jeweils N Schalteinrichtungen aufweisen, wobei s gleich [(logbN) + 1] und b eine ausgewählte ganzzahlige Logarithmusbasis größer als eins ist,
- b mal p erste Anschlußeinrichtungen für jede der Schalteinrichtungen mit Ausnahme einer Abrufstufe der Schalteinrichtungen, die Abrufanschlüsse aufweist,
- b mal p zweite Anschlußeinrichtungen für jede der Schalteinrichtungen mit Ausnahme einer Antwortstufe der Schalteinrichtungen, die Antwortanschlüsse aufweist,
- wobei p eine ausgewählte ganze Zahl größer als eins ist,
- jede Schalteinrichtung der Abrufstufe der Schalteinrichtungen eine Abruf-Anschlußeinrichtung aufweist, die mit einer der Abrufeinrichtungen verbindbar ist,
- jede Schalteinrichtung der Antwortstufe der Schalteinrichtung eine Ausgangs-Anschlußeinrichtung aufweist, die mit einer der Abrufeinrichtungen verbindbar ist,
- die ersten und zweiten Anschlußeinrichtungen der Schalteinrichtungen mit den Ausgangs- bzw. Eingangsanschlußeinrichtungen einer anderen Stufe verbindbar sind, so daß jede zweite Anschlußeinrichtung, die einer Schalteinrichtung zugeordnet ist, die in einer näher an der Abrufeinrichtung liegenden Stufe liegt, mit einer ersten Anschlußeinrichtung verbindbar ist, die einer Schalteinrichtung zugeordnet ist, die in einer näher an der Antworteinrichtung liegenden Stufe liegt,
- wobei die S Stufen der Schalteinrichtungen mit 0 bis S-1 bezeichnet sind, so daß Stufe 0 eine Abrufstufe und Stufe S-1 eine Antwortstufe ist,
- die N Schalteinrichtungen innerhalb jeder Stufe mit 0 bis N - 1 bezeichnet sind und N eine binäre, nicht negative ganze Zahl mit S - 1 Stellen ist,
- die b mal P ersten und zweiten Anschlußeinrichtungen jeweils in p Ebenen gruppiert sind, die mit 0 bis P - 1 bezeichnet sind und die aus b Anschlüssen pro Ebene bestehen, die mit 0 bis b - 1 bezeichnet sind,
- die ersten und zweiten Anschlußeinrichtungen jeweils durch vier Parameter dargestellt werden, und zwar einen Stufenparameter, einen Schaltparameter, einen Ebenen-Parameter und einen Stellenparameter,
- wobei die Schaltparameter jeweils durch logbN Stellen und die Stellenparameter jeweils durch eine einzige binäre Stelle dargestellt sind, der zweite Stufenparameter die gleiche Stufe wie der erste Stufenparameter plus eins darstellt, die Ebenen-Parameter die gleiche Ebene darstellen und die Schalt- und Stellenparameter der ersten Stufe und der zweiten Stufe durch ein vorbestimmtes Verhältnis bestimmt werden, welches dazu führt, daß jeder der ersten Anschlüsse einer Stufe mit höchstens einem der zweiten Anschlüsse einer anderen Stufe verbunden ist, und zwar gemäß der folgenden Formeln:
- Die verschiedenen Eigenschaften und Vorteile der Erfindung sollen im folgenden anhand einer detaillierten Beschreibung der Erfindung in Verbindung mit den Zeichnungen erläutert werden. Es zeigt:
- Fig. 1 das Blockschaltbild eines bekannten 4x4 Kreuzschienenschalter-Netzwerks;
- Fig. 2 das Blockschaltbild eines bekannten Baseline-Netzwerks;
- Fig. 3 das Blockschaltbild eines bekannten reversierten Banyan-Netzwerks;
- Fig. 4 das Blockschaltbild eines bekannten Cantor- Netzwerks;
- Fig. 5 ein Blockschaltbild eines zweifach geschichteten Netzwerkes gemäß einer Ausführungsform der Erfindung;
- Fig. 6 ein Blockschaltbild eines voll geschichteten Netzwerkes gemäß einer Ausführungsform der Erfindung;
- Fig. 7 ein Blockschaltbild einer Schaltstufe des Netzwerks;
- Fig. 8 ein Gesamt-Blockschaltbild einer Schalteinrichtung, die in der erfindungsgemäßen Ausführungsform verwendbar ist; und
- Fig. 9 - 26 detaillierte Blockschaltbilder einer Implementierung der in Fig. 8 gezeigten Schalteinrichtung.
- Das erfindungsgemäße geschichtete Netzwerk ist aus einer Vielzahl von Schaltern aufgebaut, die untereinander Punkt-zu-Punkt verbunden sind. Das Netzwerk stellt Verbindungen zwischen anfordernden und antwortenden Einheiten dadurch her, daß die Anforderungssignale (Abrufsignale) über die Schalter weiter vermittelt bzw. übertragen werden. In jedem Schalter ist eine Steuerlogik eingebaut, um die Anforderungen (Anfragen, Abfragen) und Antworten zu übertragen. Die Schaltereinstellung wird in Abhängigkeit von einem Vergleich der Anforderung mit der momentanen Stelle der Anforderung in dem Netzwerk bestimmt. Jeder Schalter führt die Anforderungen nur unter Verwendung der in den Anforderungen enthaltenen Informationen weiter, so daß eine verteilte Weiterleitung ohne eine zentrale Steuereinheit möglich ist. Die Schalterstellung wird gespeichert, um die Antworten in umgekehrter Richtung auf den gleichen Wegen wie die zugeordneten Anforderungen zu führen.
- Geschichtete Netzwerke sind so aufgebaut, daß ein Schalter ein Signal zu einem anderen Schalter führen kann, der in der nächsten Stufe mit Ausnahme einer binären Stelle die gleiche Schalternummer aufweist. Eine Anforderung enthält eine binäre Zahl, die den gewünschten Antwort-Anschluß identifiziert. Der Schalter vergleicht die Anforderung mit der Schalternummer. Wenn die verglichene binäre Stelle die gleiche ist, wird die Anforderung direkt durchgeleitet, im anderen Fall wird die Anforderung zu einem anderen Schalter geführt, mit dem die Stelle in der Anforderung übereinstimmt. Am Ende des Netzwerkes sollte die Anforderung den Schalter in der logbNth-Stufe erreicht haben, dessen Schalternummer genau mit der Anforderung übereinstimmt. Bei der beschriebenen Ausführungsform werden binäre Stellen verwendet.
- Bekannte Verbindungsnetzwerke (baseline-äquivalent) verwenden verteilte Führungsschemen, um die mit einer zentralen Netzwerksteuerung verbundenen Probleme zu vermeiden. Bei diesen klassischen Netzwerken wird eine Verbindung dadurch aufgebaut, daß jeder Schalter durch eines der Bits in der Anforderung gesetzt wird. Die "Anforderung" stellt lediglich die Nummer des Prozessors dar, mit dem die Verbindung hergestellt werden soll. Bei einem Baseline-Netzwerk mit N Prozessoren wird jedes der log&sub2;N Bits zum Setzen eines der log&sub2;N Schalter mit der Größe 2 mal 2 auf dem entsprechenden Weg verwendet. Nachteilig dabei ist jedoch, daß eine vollständige Verbindung den Aufbau vieler anderer Verbindungen verhindert. Demzufolge tritt eine Blockierung auf, wenn zwei Anforderungen an einem Schalter den gleichen Anschluß benutzen müssen. Bei geschichteten Netzwerken kann andererseits eine Auswahl aus mehr als einer Verbindung getroffen werden, so daß Anforderungen und Antworten, die in einem klassischen, baseline-äquivalenten Netzwerk blockiert werden, weitergeführt werden können.
- Ein geschichtetes Netzwerk wird mit drei Parametern definiert, und zwar mit N, welcher die Anzahl der in dem Netzwerk verbundenen Prozessoren darstellt, mit b, der Basis des Logarithmus und der Nummerndarstellung bezeichnet, sowie p, welcher die Anzahl von "Ebenen" von Verbindungen in dem Netzwerk darstellt. Die Ebenen in einem geschichteten Netzwerk stellen zusätzliche Wege zur Verfügung, so daß Konflikte bei der Schaltereinstellung reduziert werden. Einen allgemeinen Überblick über ein geschichtetes Netzwerk mit N=32, b=2 und p=2 ist in Fig. 5 gezeigt. Geschichtete Netzwerke sind so aufgebaut, daß ein Schalter ein Signal (Anforderungs- oder Antwortsignal) zu anderen Schaltern in der nächsten Stufe führen kann, die die gleiche Schalternummer mit Ausnahme einer einzigen binären (Basis b) Stelle aufweisen. In Fig. 6 ist ein geschichtetes Netzwerk mit N=8, p=log&sub2;N und b=2 gezeigt.
- Der Algorithmus zur Schaltereinstellung erfordert Informationen, die nur die Verbindungen betreffen, die den Schalter verwenden. Jeder Schalter wird unabhängig gesetzt, ohne daß ein Informationsaustausch zwischen Schaltern in der gleichen Stufe stattfindet, so daß eine verteilte Schaltereinstellung möglich ist. Der Schalter vergleicht die Anforderung mit einer binären Zahl, die den gewünschten Antwortanschluß mit der Schalternummer identifiziert. Wenn die verglichenen binären Stellen die gleichen sind, wird die Anforderung direkt hindurchge führt, während anderenfalls die Anforderung zu einem anderen Schalter geleitet wird, der mit der binären Stelle in der Anforderung übereinstimmt. Am Ende des Netzwerkes sollte die Anforderung den Schalter in der logbNth-Stufe erreicht haben, dessen Schalternummer genau mit der Anforderung übereinstimmt.
- Eine andere Möglichkeit zum Betrieb geschichteter Netzwerke besteht darin, das Konzept der Hamming-Distanz zu verwenden. Im binären Fall (b=2) ist die Hamming-Distanz zwischen zwei Zahlen die Anzahl der Bits, die bei diesen Zahlen unterschiedlich sind. Jedes Bit wird mit einem Bit der anderen Zahl mit gleicher Wertigkeit verglichen, und die abweichenden Bits werden gezählt. In ähnlicher Weise ist für b größer als 2 die Hamming-Distanz d die Anzahl binärer Stellen, die sich um die Größe der Zahl r exklusiv ODER verknüpft mit der Größe einer zweiten Zahl t (d = r XOR t) unterscheidet. Die Hamming-Distanz für eine Anforderung wird durch Vergleich der Zahl, die den gewünschten Antwortanschluß (als Anforderung bezeichnet) identifiziert, mit der Schalternummer, die den durch sie besetzten Schalter identifiziert, verglichen. Wenn die Hamming-Distanz der Anforderung Null ist, ist die Anforderung gleich der Schalternummer. Die Schalter der letzten Stufe werden mit den Antwortanschlüssen verbunden, deren Eingangsnummern mit den Schalternummern übereinstimmen. Wenn eine Anforderung einen Schalter der letzten Stufe erreicht und einen Hamming-Abstand von Null aufweist, ist die gewünschte Verbindung erfolgreich hergestellt worden. Die Stufen verringern die Hamming-Distanz der Anforderungen in dem Maße, wie sie durch Schaltung der Anforderungen zu einem Schalter in einer nächsten Stufe, die mit einer weiteren binären Stelle übereinstimmt, voranschreiten. Wenn b = 2 und p = logbN ist, werden alle NNAnforderungssätze erfolgreich durchverbunden.
- In der US-PS 4,084,260 von Fleming et al vom 11. April 1978 mit dem Titel "Best Match Content Addressable Memory", die auf den Anmelder der vorliegenden Erfindung übertragen wurde, ist eine Hamming-Distanz-Schaltung offenbart, die an die vorliegende Erfindung angepaßt werden kann. Diese US-PS soll durch Bezug Bestandteil dieser Beschreibung sein. Zur Anpassung der in der genannten US-PS beschriebenen Schaltung an diese Erfindung soll das Search Word-Register dieses Patentes die binäre Darstellung des Komplementes der Schalternummer, das Best Match Word-Register eine der Prozessoradressen und das Searchfile-Register die darauf folgenden anderen Prozessoradressen enthalten. Da das Komplement der Schalternummer verwendet wird, ist das letzte Wort in dem Match-Register die Prozessoradresse mit der maximalen Hamming-Distanz anstatt der minimalen Distanz.
- Die Adresse mit der größten Hamming-Distanz wird aus dem File entfernt, woraufhin der Vorgang unter Verwendung der übrigen Searchfile-Register-Prozessoradresse wiederholt wird, um die zweitgrößte Hamming-Distanz zu erhalten. Der Vorgang wird weiter solange wiederholt, bis alle Anforderungen entsprechend ihrer Hamming-Distanz geordnet sind.
- Die Anforderungs-Anschlußzahl muß zu jedem, mit einem Label adressierten Prozessor gesendet werden. Die Anforderungszahl wird jedoch nicht in die Hamming-Distanz- Berechnungen einbezogen.
- Die in diesem Teil angegebene Netzwerkstruktur dient zur Benennung der Grundlagen geschichteter Netzwerke. Dieser Abschnitt befaßt sich mit der Größe der Schalter und ihrer Verbindung, ohne Bezug auf die Implementierung, die Verwendung oder die Technologie zu nehmen.
- Drei Parameter spezifizieren ein geschichtetes Netzwerk: N - die Anzahl der Prozessoren, b - die Basis des Logarithmus, p - die Anzahl von Ebenen. Die verwendeten Schalter müssen b*p Eingänge und b*p Ausgänge aufweisen, wobei jeweils die sich ergebenden Produkte maßgeblich sind. Ein geschichtetes Netzwerk weist N*(logbN+1) identische Schalter auf. Die Anzahl der Prozessoren N muß eine ganzzahlige Potenz von b sein (N=bn und n=logbN). Unter der Annahme, daß die Kosten der Schalter proportional zum Quadrat der Anzahl ihrer Eingänge sind (was bei Kreuzschienenschaltern zutrifft), sind die Gesamt- Netzwerkkosten proportional zu N*(logbN+1)*(b*p)². Die Schalter sind in Spalten angeordnet, die Stufen genannt werden, wobei sich in jeder Stufe N Schalter befinden. Zur Bildung des Netzwerkes werden logbN+1-Stufen verbunden. Sofern erforderlich, können geschichtete Netzwerke ähnlich wie Baseline-Netzwerke kaskadiert werden, um einen höheren Prozentsatz erfolgreicher Durchleitungen zu erzielen.
- Jeder Gegenstand (Anfrageanschlüsse, Antwortanschlüsse, Stufen, Schalter sowie Schalt- oder Netzwerkanschlüsse) hat eine Benennung in der Form: Identifier (Parameterliste). Stufen sind mit Stage (Stufennummer) benannt, wobei die Stufennummer im Bereich zwischen 0 und logbN liegt. Schalter sind mit Switch (Stufennummer, Schalternummer) bezeichnet, wobei die Schalternummer im Bereich zwischen 0 und N-1 liegt. Schalteranschlüssen sind mit SwTermL (Stufennummer, Schalternummer, Ebenennummer, Stellennummer) bezeichnet, und zwar in diesem Falle für linksseitige Anschlüsse (entsprechend SwTermR für rechtsseitige Anschlüsse), wobei die Ebenennummer im Bereich zwischen 0 und p-1 und die Stellennummer im Bereich zwischen 0 und b-1 liegt.
- Alle geschichteten Netzwerke verwenden zur Bestimmung der Verdrahtung der Schalter die gleiche Verbindungsformel. Die Parameter N, b und p legen die Version des geschichteten Netzwerkes fest. Mit den folgenden Konstruktionsvorgängen ergibt sich ein geschichtetes Netzwerk.
- C1) Auswahl der Anzahl von Prozessoren N, der Basis des Logarithmus b und der Anzahl der Ebenen p. Bestimmung der Schaltergröße mit b*p linksseitigen Anschlüssen und b*p rechtsseitigen Anschlüssen (* bedeutet Multiplikation). Ein Anschluß kann dabei aus mehr als einer Leitung oder Verbindung bestehen.
- C2) Aufbau von logbN+1 Stufen von Schaltern, die mit Stage (Stufennummer) bezeichnet sind, wobei die Stufennummer im Bereich zwischen 0 und logbN liegt.
- C3) Einbau von N Schaltern in jede Schalterstufe, die mit Switch (Stufennummer, Schalternummer) bezeichnet sind, wobei die Schalternummer im Bereich zwischen 0 und N-1 liegt.
- C4) Verbindung jedes rechtsseitigen Schalteranschlusses mit einem linksseitigen Schalteranschluß durch:
- C5) Aufbau von N Antwortanschlüssen an der rechten Seite des Netzwerkes und von N Abfrageanschlüssen an der linken Seite, die Res (Eingangsnummer) bzw. Req (Ausgangsnummer) bezeichnet sind, wobei die Eingangs- und Ausgangsnummer im Bereich zwischen 0 und N-1 liegt. Die Schalter werden durch Anforderungen von den Prozessoren gesetzt. Die "Eingänge des Netzwerks" antworten auf die eingetroffenen Anforderungen und übertragen die gewünschten Daten.
- C6) Verbindung der Anforderungsanschlüsse mit der "ersten" Spalte von Schaltern durch:
- C7) Verbindung der Antwortanschlüsse mit der "letzten" Spalte von Schaltern durch
- Damit ist die vollständige Definition eines geschichteten Netzwerks ohne Kaskadierung abgeschlossen. Bei einem kaskadiertem Netzwerk wären mehrere Sätze von Schalterstufen gemäß obiger Beschreibung vorhanden. Das geschichtete Netzwerk ist jedoch mit einem einzigen Stufensatz so leistungsfähig, daß durch eine Kaskadierung nur geringfügig mehr Verknüpfungen hergestellt werden könnten.
- Durch Befolgung dieser Netzwerk-Strukturvorschriften ergibt sich für jede Auswahl von N, b und p ein Muster von Verbindungsleitungen zwischen Eingangs- und Ausgangsanschlüssen. Gemäß Figur 5 ergeben sich z.B. bei N=32, b=2 und p=2 zwei Verbindungsmuster, von denen eines durch Verbindung jedes Schalters in einer Spalte über zwei Leitungen (welche in der Figur durch horizontale Linien dargestellt sind) mit dem Schalter mit gleicher Nummer in der benachbarten Spalte implementiert ist. Das andere Muster ist durch die übrigen Leitungen (die in der Figur durch die schrägen Linien dargestellt sind) implementiert. Der Wert von p bezeichnet dabei die Nummer horizontaler Leitungen in einem Muster sowie die entsprechende Nummer schräger Linien in dem anderen Muster von einer Spalte mit Schaltern zu einer benachbarten Spalte.
- Bei der Darstellung in Figur 6, bei der N=8, b=2 und p=3 ist, wird ein Verbindungsmuster durch drei horizontale Leitungen von Schaltern in einer Spalte zu den Schaltern mit der gleichen Nummer in der benachbarten Spalte angefordert. Das andere Muster wird durch die übrigen schrägen Leitungen implementiert. Die zwei Verbindungsmuster sind folglich eine Funktion von N und b, die durch die Netzwerk-Strukturregeln C1 bis C7 festgelegt wird.
- Zusätzlich zu einer neuen Verbindung der Schalter ist bei dem geschichteten Netzwerk auch ein spezieller Algorithmus zum Setzen der Schalter erforderlich. Eine einfache Realisierung eines solchen Schalters ist eine Kreuzschiene, die jede Permutation oder Kombination ihrer Eingänge mit den Ausgängen verbinden kann, sowie ein Mechanismus zum Einstellen des Schalters.
- Der Schalter eines geschichteten Netzwerkes kann höchstens b*p Anforderungen gleichzeitig empfangen. Die Hamming-Distanz jeder Anforderung in Bezug auf den Schalter wird berechnet. Durch die Anforderung mit der größten Distanz wird einer der b*p Anschlüsse ausgewählt, mit dem diese Distanz verringert wird, sofern ein solcher Anschluß vorhanden ist. Die anderen Anforderungen wählen dann Anschlüsse in abnehmender Hamming-Distanz-Reihenfolge aus. Auf diese Weise haben die Signale, die die höchste "Korrektur" benötigen, zur Reduzierung des Abstandes bei der Anschlußauswahl eine Priorität.
- Die Führung von Anforderungen beginnt damit, daß jeder Anforderungs-Anschluß eine aus mindestens den Antwort- Anschlußparametern bestehende Anforderung ausgibt. Zusätzliche Bits können eine Speicheradresse, einen fetch- and-op-Parameter, Fehlercodebits oder Handshake-Leitungen darstellen. Mit einem Anforderungs-Anschluß darf nicht mehr als ein Antwort-Anschluß verbunden werden, während mit einem einzigen Antwort-Anschluß jede beliebige Anzahl von Anforderungs-Anschlüssen verbunden werden kann. Die Durchverbindung geschichteter Netzwerke wird durch die folgenden Schritte bewirkt:
- S1) Abgabe einer Anforderung von jedem benötigten Anforderungs-Anschluß.
- S2) Übertragung der Anforderungen zu den 0ten-Stufenschaltern gemäß obiger Regel C6.
- S3) Setzen einer Stufe von Schaltern durch Wiederholung der folgenden Schritte für jeden Schalter in der Stufe:
- S3a) Kombinierung identischer Anforderungen zu einer Anforderung und Aufzeichnung der Kombination.
- S3b) Bestimmung der Hamming-Distanz jeder Anforderung.
- S3c) Zuordnung der rechtsseitigen Anschlüsse:
- 1) Signale mit großer Hamming-Distanz haben bei der Anschlußauswahl Priorität.
- 2) Dem gleichen Anschluß kann nicht mehr als eine Anforderung zugeordnet werden.
- 3) Verwendung der wirksamen Ebene efpl mit der höchsten Wertigkeit (höchste Nummerierung), die die Hamming-Distanz reduziert, wobei efpl = (plane + logbN-1-Stage) MOD logbN.
- 4) Durch die Anforderung wird ein Anschluß ausgewählt, wenn die betreffende wirksame Ebene die Distanz verringert. Ferner wird die Stelle ("digit") ausgewählt, die mit der entsprechenden Stelle in der Anforderung übereinstimmt.
- 5) Führung alle Anforderungen, die durch die vorhergehenden Schritte nicht zugeordnet wurden, zu einem Hilfsanschluß, vorzugsweise unter Verwendung gerader Verbindungen in der wirksamen Ebene mit der kleinsten Nummer.
- S3d) Übertragung der Anforderungen zu der nächsten Stufe über die gemäß obigem Schritt C4 hergestellten Verbindungen.
- S4) Widerholung von S3 für alle übrigen Stufen.
- S5) Übertragung der Anforderungen von der Stufe logbN zu den Antwortanschlüssen über die gemäß obigem Schritt C7 geschaffenen Verbindungen.
- Damit ist das geschichtete Netzwerk durchlaufen worden. Durch geeignete Abspeicherung der Führung der Anforderung durch die Schalter können die Antworten den gleichen Weg in umgekehrter Richtung zurück zu den Anforderungsanschlüssen nehmen.
- Vollgeschichtete Netzwerke sind geschichtete Netzwerke mit P=logbN. Die logbN-Ebenen ermöglichen die Führung einer Anforderung zu jedem Schalter in der nächsten Stufe, dessen Schalternummer sich um eine Hamming-Distanz von 0 oder 1 unterscheidet. Binäre, vollgeschichtete Netzwerke weisen eine Kostensteigerung in der Größenordnung von Nlog³N ohne rekursive Definition auf, wobei dieser Wert durch Einsetzen von b=2 und p=log&sub2;N in die Netzwerk-Kostengleichung bestimmt wurde. Ein binäres, vollgeschichtetes Netzwerk mit N=8, b=2 und p=3 ist in Figur 6 gezeigt. Wenn die oben angenommenen Kreuzschienenschalter, deren Kosten proportional zum Quadrat Ihrer Anschlüsse sind, durch das geschichtete Netzwerk ersetzt werden, fallen die Kosten auf eine Größenordnung von Nlog²N*loglog³N ab,
- Der folgende Nachweis der nicht blockierenden Eigenschaften des binären, vollgeschichteten Netzwerkes und des Algorithmus zeigen, daß die Hamming-Distanz zwischen Anforderungen und Schalternummern auf Null reduziert wird, wenn die Anforderung durch das Netzwerk übertragen wird. Eine Hamming-Distanz von 0 zwischen der Anforderung und der Schalternummer in der letzten Stufe bedeutet, daß die Durchleitung abgeschlossen ist. Auf den folgenden Seiten bezieht sich logN auf log&sub2;N.
- Wenn ein Signal in jeder Stufe an ein die Hamming- Distanz reduzierenden Anschluß gelangt, können die logN verschiedenen Bits zwischen der Ausgangsnummer und der Anforderung in logN Stufen geändert werden. Aufgrund von "Kollisionen" zwischen Anforderungen bei der Anschlußauswahl kann jedoch nicht in allen Stufen die Hammingdistanz von allen Signalen reduziert werden. Eine "Kollision" tritt während einer Schaltereinstellung dann auf, wenn zwei Anforderungen den gleichen SwTermR auswählen. Gemäß der Regel S3c wird eine Auswahl für eine Anforderung getroffen, während die andere zu einem anderen Anschluß weitergeleitet wird. Durch die Beschreibung wird weiterhin deutlich, daß die Hamming-Distanz aller weitergeleiteten Signale klein genug ist, um durch nachfolgende Stufen des Netzwerkes aufgelöst zu werden. Weiterhin ergibt sich daraus, daß nach der Stufe j die Anzahl der Anforderungen mit einer Hamming-Distanz (dr,t) höchstens logN-j ist.
- Um ein Signal in der beschriebenen Weise weiterzuleiten, müssen alle Anschlüsse, die die unterschiedlichen Bits der Anforderung beeinflussen, durch Anforderungen mit gleicher oder größerer Distanz beansprucht werden. Wenn folglich die Anforderung g in einer sequentiellen Ebenen-Auswahl weitergeleitet wird, ist ihre Distanz dg,t kleiner als g. "dr,t" ist die Hamming-Distanz zwischen der Anforderung r und dem Ausdruck t. Sowohl r als auch t haben einen Bereich von [0..N-1], der in logN Bits ausgedrückt wird. Die Werte von dr,t haben einen Bereich von [0..logN].
- Die Anforderungs-Anschlüsse werden mit der Stufe 0 und der Ebene 0 der Netzwerkanschlüsse verbunden. Da in der ersten Stufe von Schaltern nur eine Anforderung durch Ebenenauswahl beeinflußt wird, treten keine Kollisionen (und Weiterleitungen) auf. Ferner müssen die Signale, bei denen dr,t=logN ist, die Ebene 0 auswählen, welche die Ebene ist, deren wirksame Ebene logN-1 ist. Folglich ist nach der ersten Stufe die größte Distanz jeder Anforderung logN-1, wobei diese Anforderungen die Ebene 0 besetzen. In ähnlicher Weise besetzten nach der Stufe j alle Signale mit der maximalen Distanz logN-j die wirksame Ebene j-l. Am Beginn der Stufe j+l ist nur ein Signal mit einer Distanz logN-j für jeden Ebenen-Auswahlschalter vorhanden, während auch die Beträge aller anderen Signale mit kleinerer Distanz begrenzt sind. Jedes Signal mit maximaler Distanz erhält die erste Auswahl für eine Ebene, so daß das Signal näher zu seinem Bestimmungspunkt gebracht wird. Aus diesem Grund ist die maximale Distanz jedes Signales nach der Stufe jlogN-j. Nach der Stufe logN ist die maximale Distanz 0.
- In diesem Abschnitt wird beschrieben, wie der erwähnte Algorithmus die Wegesteuerung des binären, vollgeschichteten Netzwerkes durchführt. Ein solches Netzwerk ist insbesondere für gleichzeitig betriebene Prozessorsysteme geeignet, bei denen alle Leitwege gleichzeitig ausgewählt werden. Die herkömmliche Difinition von "nicht blockierend", worunter die Fähigkeit verstanden wird, jede Verbindung ohne Störung von vorhandenen Verbindungen aufzubauen, ist für solche Netzwerke, in denen versucht wird, alle Anforderungen gleichzeitig weiterzuleiten, nicht brauchbar. Wichtig ist, daß das Netzwerk (logN)-mal durchgeschaltet werden kann. (Das Cantor- Netzwerk ist nicht blockierend, jedoch nicht "durchschaltbar" in dem hier gebrauchten Sinn.)
- Das binäre, vollgeschichtete Netzwerk besteht aus Schaltern mit 2logN linksseitigen Anschlüssen und rechtsseitigen Anschlüssen 2logN. Auch wenn die Konstruktion für einzelne Verbindungen und Anschlüsse spricht, erfordert der Weg w Leitungen, wobei w die Breite des Datenweges ist. W = 1 würde eine serielle Verbindung bedeuten, während w = log&sub2;N ein paralleles Wort bedeutet.
- A) Jeder Schalter kann Anforderungen auf Anschlüsse setzen, die mit Schaltern verbunden sind, die sich in ihrer Schalternummer nur um die Stelle der Ebene unterscheiden.
- Es sei ein willkürlicher Schalter S (stage, switch) betrachtet. Gemäß Regel C4 werden die rechtsseitigen Schalteranschlüsse SwTermR (stage, switch, plane, digit) mit den linksseitigen Schalteranschlüssen SwTermL (stage+1, S.W., plane, dig) verbunden, wobei plane = [0..logN-1], digit = [0..1], efpl = (plane + log2N-1-stage) MOD log&sub2;N, dig = (switch DIV 2efpl) MOD 2 und sw = switch + ((digit - dig) MOD 2) * 2efpl ist. Die Differenz der Schalternummern sw - switch = ((digit - dig) MOD 2) * 2efpl. Folglich sind sw und switch identisch mit Ausnahme des efpl-ten Bits und haben eine Hamming-Distanz von 1.
- B) Wenn eine Anforderung in Regel S3c in einer bestimmten Stufe nicht kollidiert, wird die Hamming- Distanz dieser Anforderung um 1 reduziert.
- Wenn eine Anforderung in eine Ebene kommt, bei der eines ihrer verschiedenen Bits in Regel S3c übereinstimmt, so ist die Anforderung gemäß obigem Schritt A zu einem Anschluß bewegt worden, dessen efpl-te Stelle verändert ist. Folglich ist diese Stelle nicht mehr verschieden und damit die Hamming-Distanz der Anforderung gegenüber dem neuen Schalter in der nächsten Stufe um 1 reduziert.
- C) Wenn während der Ebenenauswahl das g-te Signal, welches einer Ebene zugeordnet ist, als kollidierend ausgewählt ist, so ist g > dg,t
- Der einzige Weg für das g-te Signal um zu kollidieren ist für Anforderungen mit gleicher oder größerer Distanz um alle Ebenen dg,t, die die Distanz reduzieren können, zu beanspruchen. Folglich müssen die Anforderungen g-1 mit größerer oder gleicher Distanz die Anschlüsse dg,t mit g > dg,t beanspruchen.
- D) Bei sperrenden Kollisionen wird bei einer Stufe eines Schalters j und für eine beliebige Distanz dr,t, die Anzahl der Anforderungen an einem einzigen Schalter mit der Distanz dr,t oder größer k, auf k = logN - j + 1 - dr,t begrenzt.
- Nach der ersten Stufe, bei nur einem Signal für jeden Schalter gemäß C6 des Netzwerk-Struktur-Abschnittes, hat jede Anforderung die Ebene ihres Bits mit der höchsten Wertigkeit der Differenz gemäß Regel S3C3 ausgewählt. Diejenigen Signale mit dr,t = logN an ihren Ausgängen müssen die wirksame Ebene logN-1 belegen, da sie sich hinsichtlich jedes Bits unterscheiden. Beim Durchlauf der Anforderungen durch das Netzwerk wählen an jeder Stufe alle Anforderungen mit der maximalen Distanz dr,t = logN-j die gleiche wirksame Ebene (logN-j-1) aus.
- In ähnlicher Weise müssen Anforderungen, die mit dr,t = logN-1 beginnen, entweder eine wirksame Ebene logN-1 oder logN-2 gemäß Regel S3C3 auswählen und mit einer Besetzung von höchstens zwei Ebenen forfahren. Da auch ein Signal mit maximaler Distanz vorhanden sein kann, ist die mögliche Gesamtanzahl von Signalen mit dr,t = logN-j somit k = 2. Für Anforderungen mit geringerer Distanz sind aufgrund der Eigenschaften höchsten k Signale in der Weise möglich, daß k < = logN - j + 1 - dr,t ist.
- E) Jede Anforderung muß für Kollisionen eine Hamming- Distanz von dr,t < (logN-j+1)/2 aufweisen.
- Gemäß obiger Regel C ist für Kollisionen g > dg,t Gemäß obiger Regel D treten höchstens k Signale mit dr,t auf, so daß k < = logN-j+1-dr,t ist. Wenn g = r = k gewählt wird, so ist dr,t < g < = logN-j+1-dr,t. Folglich ist dr,t < (logN-j+1)/2.
- F) Keine die Stufe j erreichende Anforderungen mit einer Distanz von entweder logN-j oder logN-j-1 wird kollidieren und wird ihre Distanz um 1 verringern.
- Gemäß obiger Regel C ist in dem Fall, in dem die Anforderung g kollidiert, g > dg,t Gemäß obiger Regel E ist dg,t < (logN-j+1)/2. Da Anforderungen mit dr,t = logN-j oder logN-j-1 nicht kleiner sein können, als (logN-j+1)/2, können diese nicht kollidieren. Gemäß obiger Regel B wird die Distanz der Anforderung um 1 reduziert.
- G) Nach der Stufe logN haben alle Anforderungen dr,t = 0.
- Gemäß obiger Regel F ist nach der Stufe j die maximale Distanz jeder Anforderung logN-j. Wenn j = logN, so ist dr,t = 0.
- H) Die letzte Stufe erhält Informationen von den geeigneten Eingängen.
- Gemäß obiger Regel G haben vor der letzten Stufe (Regel C7 des Netzwerk-Struktur-Abschnittes) alle Anforderungen eine Distanz von Null, was bedeutet, daß der Netzwerkanschluß mit dem gewünschten Eingang übereinstimmt. Die letzte Stufe führt die Anforderungen zu der 0-ten wirksamen Ebene gemäß Regel S3C5 und C4, um die Verbindung mit den Eingängen gemäß Regel C7 zu vervollständigen.
- Bei der Untersuchung geschichteter Netzwerke wurden Simulationen ursprünglich zur Bestimmung und Verfeinerung der Verbindungsdefinitionen und der Leitungsalgorithmen verwendet. Die Beobachtungen vollgeschichteter Netzwerke bei der Simulation führten zu einer Formalisierung des Nachweises der möglichen Leitungsführungen. Interessanterweise schalten vollgeschichtete Netzwerke mit b=3 oder 4 vollständig alle Muster bei der Simulation durch, nicht jedoch solche, bei denen b=5 oder größer ist. Simulationen zeigen, daß geschichtete Netzwerke mit p=2 wesentlich weniger unvollständige Verbindungen aufweisen, als Netzwerke mit p=1 (die in hohem Maße den Baseline- äquivalenten Netzwerken ähneln). Wenn zwei geschichtete Netzwerke mit p=2 und b=2 bei der Simulation kaskadiert werden, werden alle Verbindungen erfolgreich durchgeschaltet.
- Es wird angenommen, daß ein geschichtetes Netzwerk mit zwei Ebenen mit einer Fetch-And-Add Anforderungs-Kombinierung im Vergleich zu Baseline- äquivalenten Netzwerken einen wesentlich verringerten "Hot Spot" Konkurrenzbetrieb aufweist. Geschichtete Netzwerke bieten folglich eine schnelle uneingeschränkte Kommunikation, wie sie für eng aneinander gekoppelte und in gleichen Zeitabschnitten laufende Systeme erforderlich ist. Binäre, vollgeschichtete Netzwerke implementieren alle NN Verbindungen einer Kreuzschiene, jedoch mit Stufen in der Größenordnung von (logN) und einer Kostensteigung in der Größenordnung von (Nlog³N). Geschichtete Netzwerke mit zwei Ebenen haben einen wesentlich größeren Satz erlaubter Verbindungen als Netzwerke mit einer Ebene.
- Die Netzwerke der Figuren 5 und 6 sind vorzugsweise aus identischen Schaltern (Figur 7) aufgebaut. Jedes Schalter-IC bildet ein selbstsetzendes Gatter, welches Anforderungen und Antworten zwischen vier parallelen Anschlüssen an jeder Seite des Schalter durchleitet. Ein Prozessorknoten gibt eine Anforderung heraus, die zu dem Knoten durchgeleitet wird, der die gewünschte Speicherstelle enthält. Der Knoten holt dann das gewünschte Wort aus dem Speicher, und die Antwort wird durch das Netzwerk auf dem gleichen Weg wie die ursprüngliche Anforderung zurückvermittelt. Anforderungen und Antworten werden so durch das Netzwerk hindurchgeführt, daß eine neue Anforderungen von jedem Knoten alle 150ns herausgegeben werden kann, wobei die Netzwerk-Taktperiode 25ns beträgt, die gleiche Periode wie der Knotentakt.
- Jeder Netzwerkschalter kann als einziger, 30K Gatter-, CMOS, VHSIC-Scale-Chip ausgebildet sein. Jede Anforderung kann drei 25ns-Taktzyklen bei dem Durchlauf durch jeden Schalter sowohl in Vorwärtsrichtung als auch auf dem Antwortweg einnehmen. Der Chip kann dann zur Verbindung von Systemen mit bis zu 1024 Prozessoren ohne Modifikation eingesetzt werden. Eine Abwandlung des Chips zur Verwendung bei mehr als 1024 Prozessoren ist sehr einfach möglich. Der Schalter kann zur Verbesserung des Systems Einrichtungen zur Fehlerkorrektur und zur Fehlervermeidung aufweisen.
- Das Netzwerk besteht aus identischen 4 * 4 selbsteinstellenden Schaltern. Das Netzwerk hat zwei Arten von Eingangs/Ausgangsanschlüssen: Solche für Anforderungen und solche für Antworten. Jeder Prozessorknoten in dem System weist von jedem Anschluß einen auf. Wenn ein Prozessor auf einen entfernten Speicher zugreifen will, erzeugt er an seinem Anforderungsanschluß eine "Anforderung" mit vier Zyklen. Die ersten zwei Zyklen enthalten Knotenpunkt- und Speicheradressen, während die weiteren zwei Zyklen Datentransfer- oder Fetch-And-Add-Parameter beinhalten. Die Anforderung wird über das Netzwerk zu dem Antwortanschluß des adressierten Knotens übertragen. Der adressierte Knoten holt die gewünschte Speicherstelle, worauf die Daten durch das Netzwerk zurück zu dem ursprünglichen Anforderungs-Anschluß geführt werden. Die Fetch-And-Add- sowie die Datentranferoperationen erfordern, daß der empfangende Knoten zur Modifizierung der Speicherzelle als unteilbar nach dem Lesen schreibt. Die Anforderungs- und Antwortanschlüsse werden durch ein Netzwerk-Interface-Chip in jedem Knoten verwaltet. Das Netzwerk-Interface-Chip veranlaßt Anforderungen, holt Antworten und modifiziert die Abruf-Speicherstellen in geeigneter Weise.
- Ein zweifach geschichtetes Netzwerk hat für manche Anwendungen gegenüber einem vollgeschichteten Netzwerk einen Vorteil, da die zweifach geschichtete Ausführung einen unempfindlichen Satz möglicher Verbindungen zur Verfügung stellt und gegenwärtig mit der vorhandenen Technologie und Packungsdichte (VHSIC-Scale 1,25 Micron) aufgebaut werden kann. Ein Netzwerk für 64 Prozessorknoten kann aus 448 identischen CMOS-Chips bestehen, die in sieben Stufen mit je 64 Chips angeordnet sind. Der Schalter implementiert die Funktionalität, die für ein geschichtetes Netzwerk mit zwei Ebenen und einer Anzahl von Prozessorknoten N, die gleich einer Potenz von zwei bis zu 1024 beträgt, erforderlich ist. Ein Schalter nimmt einen einzigen VLSI-Chip ein. Der Schalter hat vier "Eingänge" zu den Anforderungen und vier "Ausgänge" zu den Antworten. Jeder Eingang und Ausgang besteht aus einem 16Bit bidirektionalen parallelen Weg, der zusätzlich geeignete Steuersignale umfaßt. Die Schalter führen Anforderungen und Antworten auf Anforderungen in gesammelten Blöcken durch das Netzwerk.
- Jeder Schalter empfängt Anforderungen an seinen linksseitigen Anschlüssen, berechnet dann seine Schaltereinstellung und die Parametermodifikationen, überträgt die Anforderungen an die geeigneten rechtsseitigen Anschlüsse, speichert die Antwort-Schalterstellung sowie die geeigneten Fetch-And-Add- (oder "Fetch-And-Op") oder Datentransfer-Parameter. Beim Empfang der Antworten an den rechtsseitigen Anschlüssen werden schließlich die Schalterstellungen und die Parameter wieder aufgerufen, um die möglicherweise modifizierten Antworten an die geeigneten linksseitigen Anschlüsse zu übertragen.
- Die Schalter werden parallel gesetzt unter Verwendung nur der in den durch einen bestimmten Schalter beeinflußten Anforderungen enthaltenen Informationen. An einem bestimmten Schalter können bis zu vier Anforderungen gleichzeitig eintreffen. Jede Anforderungen wird im Hinblick auf einen Fehlercode geprüft, wobei fehlerhafte Anforderungen nicht weitergeschaltet werden. Wenn zwei oder mehr Anforderungen den gleichen Bestimmungs-Prozessorknoten, die gleiche Speicheradresse und den gleichen Betrieb aufweisen, werden sie kombiniert. Fetch-And-Add- Anforderungen werden durch Addition der Parameter kombiniert. Datentransfer- (Swap-)Anforderungen werden durch Auswahl einer der Parameter und seine Weiterführung kombiniert. In allen anderen Fällen, in denen der Bestimmungsknoten übereinstimmt, die Funktion bzw. der Betrieb oder die Speicheradresse jedoch nicht übereinstimmen, erhält eine Anforderung den Vorrang vor den anderen. Wenn die Schaltereinstellung einmal bestimmt ist, werden die Anforderungen zu der nächsten Stufe mit Schaltern übertragen. Da die Schaltereinstellungen während der Durchleitung einer Anforderung gespeichert werden, laufen die Antworten nach einem erneuten Aufruf der ursprünglichen Einstellung auf dem gleichen Weg in umgekehrter Richtung durch das Netzwerk.
- Geschichtete Netzwerke stellen zwei Betriebsarten bzw. Funktionen zur Verfügung, um die Koordination von gleichzeitigen Abläufen zu erleichtern, und zwar "Fetch- And-Add" und "Swap". Die Fetch-And-Add-Funktion kann zur Organisation einer Warteschlange verwendet werden, die für Joblisten und Datenfluß-Puffer eingesetzt wird. Die Swap-Funktion erlaubt die Modifikation von Zeigern, die bei dynamischen Datenstrukturen eingesetzt werden. Die Fetch-And-Add-Funktion erlaubt vielen Prozessoren, die gleiche Speicherstelle gleichzeitig zu lesen und dann zu addieren und antworten zu empfangen, so als ob die Operationen in einer bestimmten Reihenfolge aufgetreten wären. Die Fetch-And-Add-Funktion ermöglicht eine gleichzeitige Bezugnahme auf den Zeiger einer Jobliste durch mehrere Benutzer und versorgt jeden Prozessor mit einem anderen Jobzeiger. Die Swap-Funktion ermöglicht eine Manipulation der in dynamischen gemeinsamen Datenstrukturen verwendeten Zeiger.
- Die Fetch-And-Add-Funktion läßt den Wert der bezeichneten Speicherstelle zurückkehren, inkremmentiert jedoch den in dem Speicher zurückgelassenen Wert durch Addition der Fetch-And-Add-Parameter. Wenn die Speicherstelle als Listenzeiger verwendet wird, führt jede Fetch-And-Add Bezugnahme zur Rückkehr eines anderen Wertes. Das Netzwerk erlaubt jedem oder allen Prozessorknoten einen gleichzeitigen Zugriff auf die gleiche Speicherstelle mit der Fetch-And-Add-Funktion, wobei jeder Knoten unterschiedliche Werte erhält, so als ob die Fetch-And- Add-Funktionen in einer bestimmten Reihenfolge aufgetreten wären. Diese Eigenschaft erlaubt vielen Prozessoren einen gleichzeitigen Zugriff auf die Job-Liste, so daß alle Prozessoren mit einem minimalen Overhead arbeiten. In gleicher Weise kann gleichzeitig durch mehrere Prozessorknoten auf Datenflußlisten für Vielfachlesen- Vielfachschreiben zugegriffen werden. Ein einfaches Lesen von Speichern ist durch eine Fetch-And-Add-Operation mit einem Parameter von Null möglich.
- Durch die Transfer-Operation wird der Wert der bezeichneten Speicherzelle zurückgeführt, und dieser Wert in dem Speicher durch den Transfer-Parameter ersetzt. Die Transfer-Operation dient zur Manipulation von Zeigern. Die Einfügung eines Eintrages in eine einseitig gekoppelte Liste würde z.B. durch Ausführung einer Transfer- Operation auf den Zeiger des Eintrages ausgeführt werden, nach dem der neue Eintrag eingefügt werden soll. Der Transfer-Parameter würde der Zeiger auf den neuen Eintrag sein und der zurückgeführte Wert würde zu dem Zeiger in dem neuen Eintrag geschrieben werden, um die Liste fortzusetzen. Transfer-Operationen werden in dem Netzwerk kombiniert, um jedem oder allen Prozessorknoten zu ermöglichen, die gleiche Speicherstelle gleichzeitig zu verschieben und zurückgeführte Werte zu erhalten, so als wenn die Transfer-Operationen in einer bestimmten Reihenfolge stattgefunden hätten. Die Kombinierung von Transfer-Operationen ermöglicht jeder beliebigen Anzahl von Prozessorknoten eine gleichzeitige Einfügung neuer Einträge in die gleiche Liste.
- Wie in Figur 7 gezeigt ist, hat der Netzwerkschalter vier linksseitige Anschlüsse zu der Anforderungseinheit, vier rechtsseitige Anschlüsse zu der Antworteinheit, verschiedene fest verdrahte Parameter, verschiedene Takte und ein Verwaltungs-Interface. Anforderungen werden an den linksseitigen Anschlüssen empfangen und zu den rechtsseitigen Anschlüssen mit geeigneten Modifikationen zu Anforderungs-Parametern geführt. Antworten werden an den rechtsseitigen Anschlüssen empfangen und mit Modifikationen zu den linksseitigen Anschlüssen geführt, wobei gespeicherte Informationen über die ursprüngliche Anforderungs-Führung verwendet werden.
- Die Anforderungen enthalten die zum Setzen der Schalter verwendete Information. Anforderungen können kombiniert, zurückgestellt oder entsprechend ihrer Knotenadresse, Speicheradresse und ihrem Anforderungstyp geschaltet werden. Die Antworten enthalten das möglicherweise modifizierte Wort, das in der adressierten Speicherstelle durch die zugeordnete Anforderung gespeichert ist. Die Antworten können modifiziert werden, wenn ihre zugeordneten Anforderungen kombiniert werden. Gespeicherte Antwortparametern, die aus Anforderungsparametern berechnet werden, werden zu den Antworten addiert, wenn die Anforderungen kombiniert werden. Zusätzlich kann eine Antwort in zwei oder mehr Antworten aufgespaltet werden, wenn die zugeordneten Anforderungen zu einer Anforderung kombiniert werden.
- Fetch-And-Modify-Operationen, wie z.B. Fetch-On, Fetch- And, Fetch-Multiply, können zusammen mit Transferoperationen verwendet werden, so daß die Parameter in Abhängigkeit von ihren zugeordneten Anforderungen modifiziert werden können. Durch eine Parametermodifikation wird bei einer Kombinierung von Anforderungen die scheinbare Serialisierung von gleichzeitigen Operationen unterstützt, die zur Koordinierung gleichzeitig ablaufender Vorgänge erforderlich ist.
- Die links- und rechtsseitigen Schalteranschlüsse des Schalters 20 bestehen aus vier Gruppen von Leitungen. Jede Leitungsgruppe enthält 16 Datenleitungen, zwei Fehlercodeleitungen und drei Steuerleitungen. Alle Leitungen werden bidirektional verwendet. Die linksseitigen Schalteranschlüsse empfangen Anforderungen und übertragen Antworten. Die Anforderungen werden in vier Taktzyklen getrieben: Die ersten zwei Zyklen enthalten Knotenbestimmungen und Speicher-Adressinformationen, die anderen zwei Zyklen enthalten die Fetch-And-Add- oder Transfer-(Swap-)Parameter. Die Antworten werden in der entgegengesetzten Richtung auf den gleichen Leitungen in zwei weiteren Zyklen gesteuert. Jeder Schalter in dem Netzwerk führt jeden dieser sechs Austauschvorgänge parallel durch. Folglich können neue Anforderungen von dem Netzwerk-Interface von jedem oder allen Prozessorknoten alle sechs Taktzyklen abgegeben werden.
- Jeder der in Figur 7 gezeigten vier linksseitigen und vier rechtsseitigen Anschlüsse besteht aus 21 bidirektionalen Leitungen: 16 Datenleitungen, zwei Prüfcodeleitungen und drei Transaktionsleitungen. 15 Chip-Anschlüsse werden für fest verdrahtete Parameter verwendet: vier für jede der zwei Bit Pick-Auswahlen, zwei für die geeigneten Adressbits dieses Chips und fünf für Slider- Offset. Die Chip-Anschlüsse können durch Konfigurations- Register ersetzt werden, die bei der System-Initialisierung gesetzt werden. Durch den Chip werden sieben Takte verwendet: Ein 40MHz-Systemtakt sowie sechs Transaktions-Phasentakte, die die sechs System-Taktzyklen zur Durchleitung von Daten koordinieren. Die sieben Takte können durch zwei Takte ersetzt werden: einen 40MHz-Systemtakt und einen synchronisierenden Takt zur Ableitung der sechs Phasen.
- Knoten- und Speicheradressen für eine Anforderung werden von den rechtsseitigen Netzwerk-Anschlüssen eines Schalters zu den linksseitigen Netzwerkanschlüssen eines Schalters in der nächsten Stufe übertragen, wenn die zwei zum Empfang von Anforderungen vorgesehenen Takte aktiv sind. Die Parameter für die Anforderung (entweder Fetch-And-Add oder Swap) werden bei den nächsten Systemzyklen in der gleichen Richtung übertragen, wenn die zwei zum Empfang von Parametern vorgesehenen Takte aktiv sind. Schließlich werden Antworten auf die Anforderungen in der entgegengesetzten Richtung übertragen, und zwar zurück zu der Anforderungseinheit, wenn die zwei zum Senden von Antworten vorgesehenen Takte aktiv sind. Die sechs Transaktions-Takte gewährleisten eine geordnete Übertragung von Daten zwischen den Schaltern.
- Auch wenn die Transaktionen durch den Chip geführt werden, so ist es doch einfacher, die drei Teile einer Operation (drei Sätze von jeweils zwei Operationen) einzeln zu beschreiben, anstatt die Vorgänge in dem Schalter darzustellen, wenn jeder der Transaktions-Takte aktiv ist. Das Schalten der Anforderung, die Knotenadressen, Speicheradressen sowie den Anforderungstyp enthält, wird zunächst beschrieben. Die in der Anforderung enthaltene Information dient zur Bestimmung des Schaltens der Anforderung, der Parameter und einer eventuellen Antwort. Als zweites wird das Schalten und eine mögliche Modifikation der Parameter beschrieben. Als letztes erfolgt eine Beschreibung des Schaltens und einer möglichen Modifikation der Antwort.
- Ein Schalter kann gleichzeitig bis zu vier Anforderungen an seinen linksseitigen Netzwerkanschlüssen empfangen, wenn die zum Empfang von Anforderungen vorgesehenen Phasen aktiv sind. Die zwei 16-Bit Datenfelder werden als 10-Bit Knotenadresse und 22-Bit Speicheradresse interpretiert. Eine Anforderung ist entweder vom Typ Fetch- And-Add oder Swap. Anforderungen mit der gleichen Knotenadresse, Speicheradresse und dem gleichen Typ werden zu einer einzigen Anforderung kombiniert. Da jeder Knoten einen Speicher mit einem einzigen Anschluß aufweist, kann zu einem Zeitpunkt nur auf eine Speicheradresse Zugriff genommen werden. Deshalb können zwei oder mehr Anforderungen mit der gleichen Knotenadresse, jedoch verschiedenen Speicheradressen nicht kombiniert werden, so daß nur eine Anforderung zu der nächsten Stufe übertragen und die andere zurückgestellt wird. Die Regeln zur Kombination oder zum zurückstellen von Nachrichten lauten wie folgt:
- 1. Fetch-And-Add-Kombination aller Anforderungen, deren Knoten und Speicheradressen gleich sind und deren Typ Fetch-And-Add ist.
- 2. Swap-Kombination aller Anforderungen, deren Knoten und Speicheradressen gleich sind und die vom Typ Swap sind.
- 3. Wenn zwei (oder mehr) Anforderungen gleiche Knotenadressen, jedoch unterschiedliche Speicheradressen aufweisen, werden bis auf die Anforderung mit der kleinsten Speicheradresse alle anderen zurückgestellt.
- 4. Wenn eine (oder mehrere) Swap-Anforderungen die gleiche Knotenadresse wie eine Fetch-And-Add-Anforderung aufweisen, wird die Fetch-And-Add-Anforderung zurückgestellt.
- 5. Jede Anforderung mit einem Prüfcode-Fehler in ihrem Datenweg oder einem Paritätsfehler bezüglich ihres Typs wird automatisch zurückgestellt.
- 6. Wenn eine Auswahl noch nicht getroffen worden ist, wird die Anforderung mit der kleineren linksseitigen Anschlußnummer gewählt.
- Wenn eine Anforderung mit einer anderen kombiniert oder gegenüber einer anderen zurückgestellt wird, wird die Kombination oder Zurückstellung erfaßt, so daß das sich eventuell ergebende Durchschalten bestimmt werden kann. Alle nicht zurückgestellten oder kombinierten Anforderungen werden zur Beanspruchung von Anschlüssen freigegeben.
- Bevor Anforderungen einen rechtsseitigen Anschluß beanspruchen können, muß bestimmt werden, welche Anschlüsse hilfreich sind. Der Schalter kann Anforderungen in eine von zwei "Ebenen" von Verbindungen zur nächsten Stufe setzen. Jede der Ebenen gemäß den Figuren 5 und 6 entspricht einem Bit der Knotenadresse der Anforderung. Der Schalter kann Anforderungen auf einen "geraden" oder "gekreuzten" Anschluß in jeder Ebene setzen. Durch einen geraden Anschluß wird eine Verbindung zu dem Schalter in der nächsten Stufe hergestellt, der die gleiche Schalternummer hat. Die gekreuzten Anschlüsse verbinden mit einem Schalter in der nächsten Stufe, der die gleiche Schalternummer mit Ausnahme eines einzigen Bits hat, wobei das Bit der Ebene entspricht.
- Die den Ebenen entsprechenden Bits werden für den Chip durch zwei fest verdrahtete 4-Bit Parameter identifiziert. Diese zwei Bits werden aus der Knotenadresse jeder Anforderung extrahiert. Die Bits werden mit zwei Bits der Schalternummer verglichen und sind fest verdrahtet. Wenn das extrahierte Bit einer Anforderung sich von dem entsprechenden fest verbundenen Bit unterscheidet, führt der gekreuzte Anschluß auf dieser Ebene die Anforderung näher zu dem adressierten Knoten heran. Jede der beiden gekreuzten Anschlüsse, die hilfreich sind, wird zur Beanspruchung des rechtsseitigen Anschlusses verwendet.
- Für jede freigegebene Anforderung wird in Abhängigkeit davon, welcher gekreuzte Anschluß (sofern ein solcher vorhanden ist) hilfreich ist, ein anderer rechtsseitiger Anschluß beansprucht. Zur gleichzeitigen Ausführung aller Ansprüche ist eine besondere logische Struktur erfunden worden. Die Regeln für die Anschlußbeanspruchung lauten wie folgt:
- 1. Bevorzugung der Beanspruchung gekreuzter Anschlüsse gegenüber gerade verlaufenden, sowie der Ebene 1 gegenüber der Ebene 0.
- 2. Keine Beanspruchung irgendwelcher Anschlüsse, die mit einem durch den Fehler-Steuerteil angezeigten fehlerhaften Schalter verbunden sind.
- 3. Wenn alles andere gleich ist, haben Anforderungen an linksseitigen Anschlüssen mit geringerer Nummer Priorität.
- 4. Wenn die gewünschten gekreuzten Anschlüsse beansprucht sind, sollen die verfügbaren geraden Anschlüsse verwendet werden. Wenn keine geraden Anschlüsse verfügbar sind, soll ein gekreuzter Anschluß selbst dann verwendet werden, wenn er nicht hilfreich ist, und zwar vorzugsweise in der Ebene 0.
- Wenn die rechtsseitigen Anschlüsse beansprucht worden sind, muß die Schaltereinstellung bestimmt werden. Zur Leitungsführung und Kombination wird ein Satz von vier Addier-Bäume verwendet. Jeder Addier-Baum kann wahlweise jedes oder alle vier Datenfelder der vier Anforderungen addieren. Wenn die Anforderungen geschaltet werden, arbeiten die Addier-Bäume wie einfache Selektoren. Jeder Baum ist einem rechtsseitigen Anschluß zugeordnet. Jeder Baum wählt die Anforderung aus, die seinen rechtsseitigen Anschluß beanspruchte und addiert Null hinzu. Schließlich werden die Anforderungen von dem rechtsseitigen Anschluß zu der nächsten Stufe übertragen.
- Die in dem Falle, in dem die Empfangs-Parameterphasen aktiv sind, jeder Anforderung folgenden Anforderungs- Parameter werden etwas abweichend geführt. Der zu verwendende rechtsseitige Anschluß ist schon bestimmt worden. Die Parameter können jedoch addiert werden, wenn zwei oder mehr Anforderungen kombiniert werden. Die Parameter aller Fetch-And-Add- kombinierten Anforderungen werden zur Bildung des Parameters für die kombinierte Anforderung addiert. Der Parameter von dem linksseitigen Anschluß mit der kleinsten Nummer wird ausgewählt, wenn die Anforderungen Swap- kombiniert werden.
- Zusätzlich zur Leitungsführung der Anforderungen und der Parameter werden die Addier-Bäume auch zur Berechnung von Antwortparametern verwendet, die zu verwenden sind, wenn die Antwort empfangen wird. Die Antwort auf eine Fetch-And-Add-Anforderung, die in dem Schalter kombiniert wurde, muß modifiziert werden, so daß jede kombinierte Anforderung Daten erhält, so als wenn die Anforderungen sequentiell aufgetreten wären. Die gespeicherten Parameter werden zu der Antwort während der Antwort-Weiterführung addiert. Der Parameter stellt die Summe aller Fetch-And-Add- kominierten Anforderungsparameter dar, die von linksseitigen Anschlüssen mit kleineren Nummern kommen.
- Wenn Swap-Anforderungen kombiniert werden, wird einer der Parameter weiter gesendet, während die anderen eingespart werden. Bei Erhalt der Antwort wird diese unmodifiziert für eine der Anforderungen gesendet, während die anderen den Anforderungs-Parameter einer der anderen Swap- kombinierten Anforderungen nehmen. Der Swap-Parameter für jede kombinierte Anforderung ist der Parameter der Anforderung, der von dem nächstgrößeren linksseitigen Anschluß oder, sofern dies der größte ist, von Null kommt.
- Nach dem Durch lauf durch logbN+1 Schalter erreichen die Anforderungen und ihre Parameter den gewünschten Knoten. Die Speicherstelle wird entnommen und der Wert als Antwort auf dem Netzwerk zurückgeführt. Antworten werden von linksseitigen Anschlüssen zu rechtsseitigen Anschlüssen der vorhergehenden Stufe übertragen, wenn die Sende-Antwort aktiv ist. Jeder Schalter behält einen Parameter und eine Antwort-Schaltereinstellung in einem RAM-File, welches so konfiguriert ist, daß es sich als Schieberegister verhält. Ein RAM-File, genannt Slider, benutzt einen Parameter, der "Stage-Delay" genannt wird, um die Länge des scheinbaren Schieberegisters zu bestimmen. Dieser Wert ist fest verdrahtet und entspricht näherungsweise der Anzahl von Stufen zu der rechten Seite des Netzwerkes (siehe bezüglich der genauen Formel Abschnitt 7c des Schalter-Chip-Spezifikationsteils dieser Beschreibung.) Der Slider präsentiert automatisch die erforderlichen Parameter und Antwort-Schalterstellungen, wenn die Antworten in den Schalter von seinen rechtsseitigen Anschlüssen durchgeschaltet werden.
- Die Antwort-Schalterstellung und die Antwort-Parameter, die während der Anforderungs-Führung berechnet und in dem Slider gespeichert wurden, variieren in Abhängigkeit davon, ob die Anforderungen kombiniert, zurückgestellt oder unmodifiziert geschaltet wurden. Durch die Antwort- Schalterstellung wird eines der zu dem gespeicherten Parameter zu addierenden Antwort-Datenwörter oder Null ausgewählt. Zusätzlich wird der der Antwort zugeordnete Typ ausgewählt oder durch einen Typ ersetzt, der anzeigt, daß die Anforderung zurückgestellt wurde. Die die Antwort-Schalterstellung beinflussenden Regeln lauten wie folgt:
- 1. Nicht kombinierte und nicht zurückgestellte Anforderungen wählen den Anschluß aus, zu dem die Anforderung für das Antwort-Datenwort und den Typ geführt wurde. Der zu addierende Antwort- Parameter ist Null.
- 2. Fetch-And-Add- kombinierte Anforderungen wählen den Anschluß aus, zu dem die kombinierte Anforderung für Antwortdaten und Typ geführt wurde. Der zu addierende Antwort-Parameter stellt die Summe aller kombinierten Anforderungen dar, die von linksseitigen Anschlüssen mit kleineren Nummern kommen.
- 3. Swap- kombinierte Anforderungen wählen den Anschluß aus, zu dem die kombinierte Anforderung nur für den Typ geführt wurde. Die von dem linksseitigen Anschluß mit der höchsten Nummer kommende Anforderung wählt das Antwort-Datenwort aus und addiert einen Null-Antwortparameter.
- Alle anderen wählen eine Null aus, die zu dem Antwortparameter zu addieren ist, der der gespeicherte Antwort-Parameter von dem linksseitigen Anschluß mit der nächsthöheren Nummer ist.
- 4. Zurückgestellte Anforderungen wählen eine zu einem Null-Auswahlparameter zu addierenden Null aus und bewirken die Rückführung eines Signals vom Typ "Netzwerk-Konflikt".
- Die möglicherweise modifizierten Anforderungstypen und Datenwörter werden von den linksseitigen Anschlüssen übertragen, wenn die Sende-Antwortphasen aktiv sind.
- Zusammengefaßt führt der Netzwerkschalter Anforderungen und Antworten in sechs 25ns-Taktzyklen durch den Schalter. Der Schalter kombiniert Fetch-And-Add- oder Swap- Anforderungen und spaltet die Antwort auf. Durch die Anforderungs-Kombination können viele Prozessorknoten auf die gleiche Speicherstelle durch Fetch-And-Add oder Swap zugreifen und Antworten erhalten, so als ob jede der Anforderungen sequentiell aufgetreten wäre. Am bedeutsamsten ist, daß die Netzwerk-Wartezeit sehr gering ist, da die Anforderungen und Antworten nur drei Taktzyklen benötigen, um jeden Schalter in jeder Richtung zu durchlaufen und der Durchsatz hoch ist, da die Anforderungen und Antworten (bündelweise) durch das Netzwerk geführt werden, wobei eine neue Anforderung von jedem Prozessorknoten alle 150 ns abgegeben werden kann.
- Ein wesentliches Kennzeichen der geschichteten Netzwerkverbindung besteht in seiner Fähigkeit, kompatible Anforderungen zu kombinierten Anforderungen zu kombinieren, die blockweise an dem Antwortknoten in der gleichen Netzwerk-Übertragungszeit bearbeitet werden können, wie einzelne Anforderungen. Das einfachste Beispiel für diese Wirkung ist das Übertragungslesen, bei dem mehrere Prozessoren gleichzeitig ein Lesen der gleichen Speicherzelle anfordern. Jeder von der Übertragung betroffene Schalter kombiniert zwei oder mehr solcher Anforderungen zu einer einzigen, weiterzusetzenden Anforderung und speichert das Auftreten der Koinzidenz. Wenn die gelesenen Daten zurückkehren, werden diese durch den Schalter auf jede der ursprünglich eintreffenden Anforderungen kopiert.
- Das gleiche Prinzip kann auch auf komplexere Anforderungen angewandt werden. Das wesentliche Erfordernis ist, daß die Anforderung in jeder Reihenfolge kombinierbar ist und daß die Kombination in einer einzigen Anforderung darstellbar ist. Vorausgesetzt, daß solche Anforderungen vorliegen, können diese für gemeinsame Speicherstellen angewandt werden, ohne daß entweder im Netzwerk oder dem Knoten, der die Speicherstelle enthält, zeitaufwendige Kollisionen oder Konflikte auftreten. Programme, die auf solche Stellen Bezug nehmen, müssen so vorbereitet sein, daß sie mit diesen in jeder auftretenden Reihenfolge umgehen können, was das wesentliche bei Multitasking-Betrieb ist. Umgekehrt wird durch das Netzwerk und den Knotenspeicher sichergestellt, daß eine äquivalente serielle Reihenfolge vorhanden ist, d.h. eine serielle Reihenfolge von Operationen, die zu den gleichen Werten in der Speicherzelle und allen Tasks führt.
- Anforderungs-Kombinationen können zum Speicherlesen und Speicherschreiben leicht definiert werden. Die Klasse arithmetischer und logischer Operationen, die "Fetch- And-OP" genannt wird, ist in der Literatur beschrieben worden (siehe "Issues Related to MIMD Shared-Memory Computer: The NYU Ultracomputer Approach, The 12th Annual Symposium on Computer Architecture", 1985, S. 126). Diese definiert Operationen, bei denen die Speicherzelleninhalte durch assotiative Operationen wie z.B. ADD oder AND modifiziert werden. Der Wert der Speicherzelle vor der Modifikation wird zur Anforderungseinheit zurückgeführt. Durch die Swap-Operation wird der Speicherzelleninhalt mit den zugeführten Daten der Anforderung ausgetauscht, so daß die ursprünglichen Inhalte der Speicherzelle wieder vorhanden sind. Diese Operation ist nicht assoziativ, obgleich es sehr einfach für das Netzwerk ist, eine äquivalente serielle Reihenfolge für kombinierte Anforderungen zu garantieren. Nicht assoziative Einrichtungen der die Swap-Operationen verwendenden Software müssen so vorbereitet werden, daß sie die verschiedenen möglichen Reihenfolgen bearbeiten können.
- Der Bedarf nach kombinierbaren Anforderungen entsteht aufgrund des Problems gemeinsamer Variablen von Tasks in Sprachen höherer Ordnung (HOL-High Order Language). Wenn zu viele, z.B. tausende von Tasks gleichzeitig auf eine gemeinsame Variable Zugriff nehmen, so können diese nicht sequentiell auftreten, ohne daß dies drastische Folgen für die Leistungsfähigkeit hat. Es ist also darauf zu achten, daß alle gemeinsamen Variablen nur durch kombinierbare Operationen angesprochen werden sollten.
- Wartezeiten und Durchsatzraten sind kritische Anforderungen an ein paralleles System. Da eine neue Anforderung alle sechs Taktzyklen oder 150 ns herausgegeben werden kann, können in jeder Sekunde durch jeden Knoten 6,6 Millionen Anforderungen herausgegeben und Antworten empfangen werden. Bei einem System mit 64 Knoten können im Netzwerk 53 Billionen Bits pro Sekunde (40 MHz * 64 Knoten * 21 Bits pro Anschluß) übertragen werden. Auch wenn der Durchsatz des Netzwerkes linear mit der Anzahl von Prozessoren steigt, so erhöht sich die Netzwerk-Wartezeit logarithmisch mit den zusätzlichen Knoten. Die Wartezeit einer Nachricht (die Zeit von der Herausgabe der Anforderung bis zum Empfang der Antwort) ist die Summe aus der Anforderungs-Leitung, dem Speicherzugriff und der Rückleitung der Antwort. Ein System mit 64 Prozessoren hätte sieben (logN+1) Spalten von Schaltern, wobei jede Spalte zu einer Netzwerk-Verzögerung (sechs Taktzyklen insgesamt) für die Leitung der Anforderung und der Antwort führt.
- Wenn der Speicherzugriff in 150 ns durchgeführt werden kann, ist die gesamte Wartezeit für ein System mit 64 Prozessorknoten (zwei Durchläufe durch das Netzwerk plus Speicherzugriff) 1200 ns. Die bei dem Netzwerk mögliche sehr günstige Wartezeit und der gute Durchsatz erlauben eine Hochgeschwindigkeits-Kommunikation, die für eine wirksame Nutzung der durch zusätzliche Prozessoren erhaltenen Prozessorleistung erforderlich ist.
- Die folgende Chip-Spezifikation für eine geschichtetes Netzwerk stellt Pin-Verbindungen, Formatierung, Taktsteuerung und die Art und Weise dar, in der Anforderungen kombiniert, dekombiniert und geführt werden (z.B. durch Verwendung von Fetch-And-Add- und Swap-Operationen).
- 1. Übersicht über die I-O-Anschlußliste
- A. Daten
- B. Prüfbits
- C. Befehlstyp
- D. Takt (300)
- E. Fest verdrahtete Steuerung
- F. Rücksetzen (611)
- G. Spannungsversorgung, Masse
- H. Organisationsanschluß (Test), Fehlerreport (637)
- 2. Anforderungsformat
- 3. Antwortformat
- 4. Typenformat
- 5. Handshakeformat
- 6. Taktformat
- 7. Fest verdrahtete Steueranschlüsse
- A. EFPLO (330), EFPL1 (331)
- B. DICITO (332) , DIGIT1 (333)
- C. STAGE_DELAY (610)
- 8. Rücksetzen (611)
- 9. Leistungsanschluß-Anforderungen
- 10. Organisationsanschluß (Test) -Fehlerreport
- 11. Funktionen
- A. Kombination von Anforderungen, Dekombination von Anworten
- B. Führung von Anforderungen
- C. Speicherung des Rücklaufweges und gespeicherte Antwort-Parameter
- D. Fehlerdetektion
- 12. Beispiel einer fest verdrahteten Steuer-Anschlußein stellung bei 32 Knoten.
- Die Gesamtanzahl von Anschlüssen (pins) ist 213 einschließlich der Spannungsversorgung und Nasse. Es sind acht Sätze von 21 Bit-Anschlüssen vorhanden. Vier Sätze liegen zur Verbindung mit der vorhergehenden Stufe des Netzwerks an der linken Seite und vier Sätze zur Verbindung mit der nächsten Stufe des Netzwerkes auf der rechten Seite.
- 16 Bits pro Anschluß, 128 insgesamt. Pin-Typ: I-O. Die Datenleitungen werden zum Senden und Empfangen von Adress-, Parameter- und Antwort- Daten verwendet.
- Linksseitiger Netzwerk-Datenanschluß 0, Bits 0 bis 15:
- LHNTDTO[0..15] (307A)
- LHNTDT1[0..15] (307B)
- LHNTDT2[0..15] (307C)
- LHNTDT3[0..15] (307D]
- Rechtsseitiger Netzwerk-Datenanschluß 0, Bits 0 bis 15:
- RHNTDT0[0..15] (546A) (stellt die gerade Ebene 0 dar)
- RHNTDT1[0. .15] (546B) (stellt die Querebene 0 dar)
- RHNTDT2[0..15] (546C) (stellt die gerade Ebene 1 dar)
- RHNTDT3[0..15] (546D) (stellt die Querebene 1 dar)
- Zwei Bits pro Anschluß, 16 insgesamt. Pin-Type: I-O. Die Prüfbits stellen ihre entsprechenden Datenanschlüsse MOD 3 dar.
- Linksseitiger Netzwerk-Prüfcode-Anschluß 0, Bits 0,1:
- LHNTCCO[0..1] (308A)
- LHNTCC1[0..1] (308B)
- LHNTCC2[0..1] (308C)
- LHNTCC3[0..1] (308D)
- Rechtsseitiger Netzwerk-Prüfcode-Anschluß 0, Bits 0,1:
- RHNTCCO[0..1] (547A) (stellt die gerade Ebene 0 dar)
- RHNTCC1[0..1] (547B) (stellt die Querebene 0 dar)
- RHNTCC2[0..1] (547C) (stellt die gerade Ebene 1 dar)
- RHNTCC3[0..1] (547D) (stellt die Querebene 1 dar)
- 3 Bits pro Anschluß, 24 insgesamt. Pin-Typ: I-O. Der Befehlstyp besteht aus zwei Bits vom Befehlstyp und einem Bit mit ungerader Parität. Bit zwei ist das Paritätsbit. Die Typen-Bits werden zur Steuerung des Anforderungstyps, zum Handshaking zwischen Stufen des Netzwerkes und für Fehlercodes verwendet, wenn ein Fehler in dem Netzwerk auftritt.
- Linksseitiger Netzwerk-Typen-Anschluß 0, Bits 0,1, 2:
- LHNTTY0[0..2] (309A)
- LHNTTY1[0..2] (309B)
- LHNTTY2[0..2] (309C)
- LHNTTY3[0..2] (309D)
- Rechtsseitiger Netzwerk-Typen-Anschluß 0, Bits 0,1, 2:
- RHNTTY0[0..2] (548A) (stellt die gerade Ebene 0 dar)
- RHNTTY1[0..2] (548B) (stellt die Querebene 0 dar)
- RHNTTY2[0..2] (548C) (stellt die gerade Ebene 1 dar)
- RHNTTY3[0..2] (548D) (stellt die Querebene 1 dar) D. Takt (Clock) Es gibt sieben Takte. Pin-Typ: Einang.
- Es gibt 15 Steuer-Pins. Pin-Typ: Eingang. Die Steuer-Pins übermitteln dem Schalter seine Stelle im Netzwerk.
- 1 Rücksetz-Pin, Pin-Typ: Eingang
- Insgesamt 12 oder mehr, Pin-Typ: Leistungsversorgung
- 10 Pins.
- Die Anforderung von dem Ausgangsknoten muß in vier Teile aufgeteilt werden. Der Schalt-Chip tastet die Leitungen an der negativen Flanke der steuernden Taktphase (RCV_REQA (301), usw.) ab. An den linksseitigen Anschlüssen des Schalt-Chips müssen anliegen:
- Es ist zu beachten, daß die Anforderung die Hälfte mit der höchsten Wertigkeit zuerst (RCV_REQ_A, 301) und der Parameter die Hälfte mit der geringsten Wertigkeit zuerst (RCV_PARAM_A, 303) aufweist. Die Anforderung benötigt für eine geeignete Führung die Hälfte mit der höchsten Wertigkeit zuerst. Die Parameter benötigen zur Addition über zwei Hälften die Hälfte mit der geringsten Wertigkeit zuerst.
- Die führende Flanke der Anforderung erfordert drei Taktphasen, um durch jeden Schalt-Chip zu gelangen. Die Information erscheint folglich an den rechtsseitigen Anschlüssen während folgender Zeitabschnitte:
- Da die oben erwähnten Phasen nicht mit den Signalen zusammenpassen, die an dem linksseitigen Anschluß der nächsten Stufe erwartet werden, müssen die Taktphasen für jede Stufe verschieden zugeordnet werden. Es hat sich herausgestellt, daß jede andere Stufe die gleichen Phasenzuordnungen aufweist, da es sechs Taktphasen gibt und drei Phasen zum Durchlauf durch einen Chip erforderlich sind. Die folgenden Eingangs-Pin, die sich auf der gleichen Leitung befinden, müssen die gleichen Taktphasen erhalten:
- Der Eingangs-Pin RCV_REQ_A (301) in Stufe 0 muß z.B. die gleiche Taktphase empfangen, wie der Eingangs-Pin RCV_PARAM_B (304) in Stufe 1.
- Die Antwort wird während der folgenden Taktphasen von dem linksseitigen Anschluß zu der vorhergehenden Stufe gesendet:
- Da die Taktphasen benachbarter Stufen unterschiedlich zugeordnet sind, tastet der rechtsseitige Anschluß die Antwort an der negativen Flanke der folgenden Phasen ab:
- Der Befehlstyp besteht aus drei Bits. Die zwei Bits mit der geringsten Wertigkeit zeigen den Befehlstyp an, während das Bit mit der höchsten Wertigkeit für die ungerade Parität dient. Die Typen lauten wie folgt:
- Zwischen den Stufen tritt auf den Typen-Leitungen (309A-D, 548A-D) Handshaking auf. The möglichen Handshake-Zustände lauten wie folgt:
- 4 (100) Anforderung empfangen
- 7 (111) Fehler erfaßt
- Der Handshake wird durch die linksseitigen Anschlüsse während RCV_PARAM_A (303) und RCV_PARAM_B (304) an die vorhergehende Stufe ausgegeben und von der nächsten Stufe durch die rechtsseitigen Anschlüsse an den negativen Flanken von SND_RESP_B (306) und RCV_REQ_A (301) abgetastet. 6. Taktformat
- Die Zielknoten-Adresse besteht aus 10 Bits, die mit 0 bis 9 nummeriert sind. EFPLO (330) ist die wirksame Ebene für Ebene 0 und kann alle Werte von 0 bis 9 einnehmen. EFPL0 (330) ist die Bitstelle in der Knotenadresse, auf der die Ebene 0 arbeitet. Beispiel:
- Wenn die Ebene 0 auf der Grundlage des Wertes von Bit 6 in die Knotenadresse schaltet, so wäre EFPLO (330) als "sechs" verdrahtet. Bezüglich EFPL1 (331) gilt dasselbe mit der Ausnahme, daß es sich um die wirksame Ebene für die Ebene 1 handelt.
- In einem Netzwerk mit N Knoten gibt es N Reihen von Schaltern und log2N+1 Spalten. Die Reihennummer (0..N-1), in der ein Schalter auftritt, wird auch Schalternummer genannt. DIGITO (332) ist das Bit EFPLO (330) der Schalternummer. DIGIT1 (333) ist das Bit EFPL1 (331) der Schalternummer. Beispiel: Wenn die Schalternummer 64 ist (binär 00 0100 0000) und EFPLO (330) := 6, so ist DIGITO (332) := 1.
- Die oben erwähnten Steuereingänge werden in der Weise benutzt, daß in dem Fall, in dem DIGITO (332) nicht mit dem Bit EFPLO (330) der Zielknoten-Adresse übereinstimmt, die Anforderung eine Querung der Ebene 0 verlangt, im anderen Fall einen geraden Durchlauf durch Ebene 0. Wenn DIGIT1 (333) nicht mit dem Bit EFPL1(331) der Zielknoten-Adresse übereinstimmt, so verlangt die Anforderung eine Querung der Ebene 1, im anderen Falle einen geraden Durchlauf durch Ebene 1. Das Verlangen nach einem querverbundenen Anschluß hat Priorität gegenüber dem Verlangen eines direkt verbundenen Anschlusses.
- Die STAGE_DELAY (610)-Pins (Stufenverzögerung) informieren den Schalt-Chip darüber, wie lange zu warten ist, bis für die aktuelle Anforderung eine Antwort zurückkommt. Es gibt log&sub2;(N)+1 Stufen (Spalten) von Schaltern in dem Netzwerk für N Knoten.
- STAGE_DELAY (610) := 1 + (log&sub2;(N)-stage) + (Speicherzugriffszyklen und andere Zyklen - 10)/6 Dort, wo die Stufe die Spaltennummer darstellt, ist der Schalter im Netzwerk. Die Stufe kann Werte von zwischen 0 und log&sub2;(N) annehmen. Die linke Seite des Netzwerkes (ganz links) ist Stufe 0 und die rechte Seite (ganz rechts) ist Stufe log&sub2;(N). Die Speicher- Zugriffszyklen stellen die Anzahl von Netzwerk-Takten dar, die eine Anforderung zum Zugriff auf die gleiche Speicherstelle benötigt. Eine neue Anforderung erscheint alle sechs Netzwerk-Takte. Innerhalb dieser sechs Netzwerk-Takte muß folgendes durchgeführt werden: Auslesen der Speicherstelle, Korrektur von Fehlern, Durchführung einer MOD3-Berechnung, modifiziert entsprechend Fetch-Add oder Swap, Berechnung eines neuen Syndroms und schließlich Wiedereinschreiben in die gleiche Speicherstelle. (Eine Alternative besteht darin, keine Korrektur der Antwort durchzuführen und nur einen Speicherfehler auszugeben, wenn ein Fehler auftritt. Das ausgelesene Wort wird dann korrigiert und die korrigierte Version in den Speicher zurückgeschrieben, wobei der modifizierende Vorgang übersprungen wird. Die Anforderung würde dann später zurückgesendet werden.) Es dürfen höchstens sechs Speicher-Zugriffszyklen auftreten, damit der Speicher die aktuelle Anforderung beenden kann, bevor die nächste Anforderung eintrifft. Andere Zyklen umfassen die Zeit, die erforderlich ist, um beide Wege durch jedes Netzwerk-Interface-Chip zu gehen und für alle anderen Durchführungen oder Verzögerungen. Alle anderen Zyklen müssen aus einer "Pipeline" bestehen. Die Zeit wird in Netzwerk-Taktzyklen gemessen. (Speicher-Zugriffszyklen + andere Zyklen) ist die Gesamtzeit zwischen der führenden Flanke der Anforderung, die die rechte Seite des Netzwerkes verläßt und der führenden Flanke der Antwort, die zur rechten Seite des Netzwerkes zurückkommt. (Speicher-Zugriffszyklen + andere Zyklen) können nur die folgenden Werte annehmen:
- 10, 16, 22, 28, 34, .... 10+6*i i > = 0
- Wenn der Wert von (Speicher-Zugriffszyklen + andere Zyklen) zwischen zwei der o.g. Werte abfällt, müssen die Verzögerungsstufen (Delay-Stages) addiert werden, um eine Aufrundung zu dem nächsthöheren Wert zu erreichen. Beispiel: N := 32, Stufe :=3, Speicher-Zugriffszyklen := 6 (maximaler Wert) und andere Zyklen := 4 (der minimale Wert für andere Zyklen ist 4, da [Speicher-Zugriffszyklen + andere Zyklen] größer oder gleich 10 sein muß.) In diesem Fall gilt:
- Durch die Schalterstufe 3 werden drei neue Anforderungen ausgesendet, bevor die Antwort für die aktuelle Anforderung zu dieser Stufe zurückkommt.
- Die Größenbereiche der STAGE_DELAY (610) bewegen sich wie folgt:
- Es ist zu beachten, daß 0 nicht erlaubt ist. Der Chip arbeitet nicht zuverlässig, wenn STAGE_DELAY (610) := 0, und zwar aufgrund des Weges, auf dem die Abläufe innerhalb des Chips geführt werden.
- Der Reset (611)-Pin muß auf hohen Pegel gebracht und dort gehalten werden, während die Slider-Resetsteuerung (613) durch die 32 RAM Adressen läuft. Das RAM (RAM_LS 603, PAN_MS 606) in dem Slider (103) muß initialisiert werden, so daß das Resetsignal nicht asynchron mit dem Takt sein kann.
- Die Berechnung basiert auf einem Satz von Versorgungs-/Masseleitungen für jeweils 16 Ausgänge. Es gibt 168 I-O Pins, von denen jedoch nur die Hälfte zur gleichen Zeit als Ausgang arbeitet, so daß 168/2/16:=5,25. Aufgerundet ergeben sich also sechs Sätze von Versorgungs-/Masseleitungen.
- Fehler müssen dem Rest der Anlage gemeldet werden, so daß in dem Fall, in dem Fehler einen Knoten von dem Rest des Netzwerks isolieren, eine Rekonfiguration stattfinden kann. Externe LSSD- und selbsttestende Einheiten sind eingschlossen.
- Anforderungen mit der gleichen Zielknoten-Adres se, der gleichen Speicheradresse, dem gleichen Typ und ohne Prüfcode-Fehler in der Anforderung werden zu einer Anforderung kombiniert. Wenn die Typen verschieden sind, wird das Swap gesendet und das Fetch-Add abgebrochen. Wenn die Speicheradressen verschieden sind, die Knotenadressen jedoch dieselben sind, wird die Speicheradresse mit dem geringeren Wert gesendet und die Speicheradresse mit dem höheren Wert wird abgebrochen. Ein beispielhaftes Zeitdiagramm in der Tabelle auf Seite 68 zeigt drei Sätze von Anforderungen Die Zeit wird in halben Netzwerkzyklen gemessen. Die fest verdrahteten Parameter für die Beispiele lauten wie folgt:
- Der erste Satz Anforderungen während der Zeitpunkte 2 bis 9 besteht aus vier Fetch-Adds, die zu den gleichen Zielknoten und Speicheradresse gelangen. Sie lauten (sofern nicht anders angegeben, sind die Zahlen in diesen Beispielen hexadezimal):
- Die Adressen und Parameter sind so aufgelistet, daß zur Verbesserung der Lesbarkeit die Hälfte mit der höchsten Wertigkeit zuerst erscheint. Der Parameter wird in dem Zeitdiagramm mit der Hälfte mit geringster Wertigkeit zuerst ausgesendet. Die Zielknoten-Adresse für die obigen Anforderungen lautet wie folgt:
- Die Speicheradresse ist 0.
- Die vier Anforderungen werden zu einer Anforderung kombiniert und liegen an dem rechten Anschluß 1 (Ebene 0 quer) während der Zeitpunkte 8 bis 15 an. Die kombinierte Anforderung lautet wie folgt:
- wobei 0031 110E := 000A AAAA + 000B BBBB + 000C CCCC + 000D DDDD. Die gespeicherten Antwortparameter (zur Dekombination der Antworten) lauten wie folgt:
- Die Rückkehr-Wegwerte (zur umgekehrten Rückführung) lauten wie folgt:
- Die Antwort auf die obige Anforderung kommt von dem Speicher (oder der nächsten Stufe) während der Zeitpunkte 28 bis 31 und besteht aus den Parametern 000D FDDD. Die neuen Speicherinhalte lauten wie folgt:
- Die dekombinierten Antworten werden von den linksseitigen Anschlüssen während der Zeitpunkte 34 bis 37 zu der vorhergehenden Stufe gesendet. Die Antworten lauten wie folgt:
- Das Ergebnis ist das gleiche, als wenn vier Anforderungen sequentiell in der Reihenfolge 0, 1, 2, 3 verarbeitet worden wären.
- Der zweite Satz von Anforderungen während der Zeitpunkte 14 bis 21 besteht aus vier Swaps, die zu dem gleichen Zielknoten und der Speicheradresse gelangen. Sie lauten wie folgt:
- Die vier Anforderungen werden zu einer Anforderung kombiniert und während der Zeitpunkte 20 bis 27 an dem rechten Anschluß 1 (Ebene 0 quer) abgegeben. Die kombinierte Anforderung lautet wie folgt:
- Die gespeicherten Antwortparameter (zur Dekombination der Antworten) lauten wie folgt:
- Die Rückkehr-Wegwerte (für die umgekehrte Führung) lauten wie folgt
- Die Antwort auf die obige Anforderung kommt während der Zeitpunkte 40 bis 43 von dem Speicher (oder der nächsten Stufe) und besteht aus dem Parameter FFFD FDDD. Die neuen Speicherinhalte sind:
- Die dekombinierten Antworten werden von den linken Anschlüssen während der Zeitpunkte 46 bis 49 an die vorhergehende Stufe abgegeben. Die Anworten sehen wie folgt aus:
- Das Ergebnis ist das gleiche, als wenn vier Anforderungen sequentiell in der Reihenfolge 3, 2, 1, 0 verarbeitet worden wären. Der Grund dafür, daß die sequentielle Swap-Reihenfolge sich von der Fetch-Add-Reihenfolge unterscheidet, liegt darin, daß die Logik bei obiger Reihenfolge einfacher ist. Die tatsächliche Reihenfolge führt jedoch nicht zu Unterschieden, da die Programme nicht von der Reihenfolge parallel auftretender Vorgänge abhängen.
- Der dritte Satz von Anforderungen während der Zeitpunkte 26 bis 33 besteht aus zwei Fetch-Adds und zwei Swaps. Sie lauten wie folgt:
- Die Zielknoten-Adresse für zwei Fetch-Adds lautet:
- Die Zielknoten-Adresse für zwei Swaps lautet:
- Die Speicheradresse ist bei allen vier Anforderungen 1. Die zwei Fetch-Adds werden zu einer Anforderung kombiniert und an dem rechten Anschluß 3 (Ebene 1 quer) während der Zeitpunkte 32 bis 39 abgegeben. Die kombinierte Anforderung lautet:
- wobei 5000 1111 := A000 0000 + B000 1111 abgekürzt auf 32 Bits. Es ist zu beachten, daß während der Addition der zwei ursprünglichen Parameter ein Überlauf des Zweierkomplements auftritt. Mit dem Netzwerk wird bei dem beschriebenen Aufbau ein Überlauf nicht erfaßt, dies wäre jedoch durch zusätzliche Logik möglich. Die zwei Swaps werden zu einer Anforderung kombiniert und liegen dann am rechten Anschluß 2 (Ebene 1 gerade) während der Zeitpunkte 32 bis 39 an. Die kombinierte Anforderung lautet:
- Die gespeicherten Antwortparameter (zur Dekombiniation der Antworten) lauten:
- Anforderung 0: 0000 0000
- Die Rückkehr-Wegwerte (für umgekehrte Führung) lauten:
- Die Antworten kommen von dem Speicher (oder der nächsten Stufe) während der Zeitpunkte 52 bis 55 zurück. In diesem Fall kommen zwei Antworten von zwei verschiedenen Speichergruppen, da die Zielknoten-Adresse für die Fetch-Adds und die Swaps verschieden ist. Der Fetch-Add-Antwortparameter lautet 3000 7777 am rechten Anschluß 3 (Ebene 1 quer), während der Swap-Antwortparameter 2000 6666 am rechten Anschluß 2 (Ebene 1 gerade) ist. Die neuen Speicherinhalte für die Fetch-Add Stellen lauten: (Überlauf des Zweierkomplements)
- Die neuen Speicherinhalte für Swap lauten:
- Die dekombinierten Antworten werden an den linken Anschlüssen während der Zeitpunkte 58 bis 61 abgegeben. Die Antworten sind wie folgt gebildet:
- Das Ergebnis ist dasselbe, als wenn die zwei Fetch-Adds sequentiell in der Reihenfolge 0, 1 und die zwei Swaps sequentiell in der Reihenfolge 3, 2 verarbeitet worden wären. Tabelle: Beispielhaftes Zeitdiagramm, alle Ziffern im hexadezimalen Format ZEIT In diesem Zeitdiagramm stellt die Ziffer "1" ein hochpegeliges Signal und die Ziffer "0" ein Signal mit niedrigem Pegel dar. ZEIT ZEIT
- Im folgenden werden vier weitere Beispiele angegeben, die nicht in dem Zeitdiagramm gezeigt sind. Drei Fetch-Add-Anforderungen werden in der folgenden Weise kombiniert und dekombiniert:
- Die gespeicherten Antwortparameter (zur Dekombination der Antworten) lauten:
- Zwei Fetch-Add-Anforderungen werden wie folgt kombiniert und dekombiniert:
- Die gespeicherten Antwortparameter (zur Dekombination der Antworten) lauten:
- Drei Swap-Anforderungen werden wie folgt kombiniert und dekombiniert:
- Die gespeicherten Antwortparameter (zur Dekombination der Antworten) lauten:
- Zwei Swap-Antworten werden wie folgt kombiniert und dekombiniert:
- Die gespeicherten Antwortparameter (zur Dekombination der Antworten) lauten:
- Die Reihenfolge dar Prioritäten ist so festgesetzt, daß Ebene 1 immer gegenüber Ebene 0 bevorzugt ist. Querverbundene Anschlüsse werden gegenüber gerade verbundenen Anschlüssen bevorzugt, wenn die Anforderung einen querverbundenen Anschluß verlangt. Wenn eine Anforderung keinen der querverbundenen Anschlüsse verlangt (also einen direkt verbundenen Anschluß) und keine direkt verbundenen Anschlüsse verfügbar sind, so wird eine querverbundenen Anschluß unter Bevorzugung der Ebene 0 gewählt, da in der nächsten Stufe die Möglichkeit besteht, unter Verwendung der "Catch-Up"-Ebene wieder zurück auf die Spur zu gelangen. Wenn alle anderen Zustände gleich sind, wird eine willkürliche Entscheidung gefällt, um den linksseitigen Anforderungs-Anschlüssen mit der geringsten Nummer die Priorität zu geben.
- Ebene 1 ist die "Catch-Up"-Ebene, so daß jede Anforderung, die die Ebene 1 verlangt, diese jetzt bekommen muß, da es dazu keine andere Möglichkeit gibt, sofern sie sich nicht in der ersten Stufe befindet, wo eine zweite Möglichkeit für die Catch-Up-Ebene an der letzten Stufe besteht. Die Ebene 0 ist die Hauptebene. Die nächste Stufe hat die gleiche wirksame Ebene, wie die Catch-Up-Ebene, so daß eine zweite Möglichkeit zur Leitungsführung besteht.
- Beispiel: In dem obigen beispielhaften Zeitdiagramm ist EFPL0 (330) 9, EFPL1 (331) := 0, DIGIT0 (332) := 0, DIGIT1 (333) := 0. Die Zielknoten-Adresse ist: 11 0000 0000 (binär) (C000 0000 HEX). DIGIT0 (332) stimmt nicht mit Bit 9 der Zielknoten-Adresse überein, so daß die Anforderung eine Querung der Ebene 0 verlangt. DIGIT1 (331) stimmt mit Bit 0 der Zielknoten- Adresse überein, so daß die Anforderung nicht eine Querung von Ebene 1 verlangt. Die kombinierte Anforderung endet mit einer Querung der Ebene 0 (RHNTDT1, 546B).
- Der Schalt-Chip speichert die Rücklaufwege und Parameter, die zur Führung und Dekombination der Antworten verwendet werden müssen. Die Rückkehrwege und die gespeicherten Antwort-Parameter werden in Speicherstellen entsprechend dem linken Anschluß, an dem die Anforderung eintraf, gespeichert. Der Wert des Rückkehrweges ist der rechtsseitige Anschluß, an dem die Anforderung abgegeben wurde. Als Beispiel für den Rückkehrweg und die gespeicherten Antwort-Parameter wird auf den Abschnitt verwiesen, der die Kombination von Anforderungen und die Dekombination von Antworten beschreibt.
- Der Schalt-Chip unterwirft die Anforderungen und Antworten bei ihrem Durchgang durch den Chip einer Fehlerdetektion. Wenn ein Fehler auftritt, wird die Anforderung gestoppt, sofern sie den Chip noch nicht verlassen hat, und der Antworttyp für diese Anforderung wird einer Fehlerbedingung unterworfen. Wenn ein Fehler erfaßt wird, nachdem ein rechtsseitiger Anschluß beansprucht worden ist, wird die Anforderung durchgelassen, die Antwort jedoch als erzwungene fehlerhafte Antwort gespeichert.
- Das beispielhafte Netzwerk besteht aus 32 Knoten. Es gibt sechs Stufen in dem Netzwerk, so daß 192 := 6*32 Schalter-Chips erforderlich sind. Der linksseitige Anschluß 0 der Stufe 0 wird über das Netzwerk-Interface-Chip mit dem anfordernden Knoten verbunden. Die anderen drei linksseitigen Anschlüsse werden mit Widerständen abgekoppelt, so daß ständig der "keine Anforderung"-Typ gesendet wird. (Das Netzwerk-Interface kann dieses berücksichtigen.) Die Anschlüsse sind bidirektional, so daß Abkoppelungen mit Widerständen erforderlich sind. Der linksseitige Anschluß 0 hat die höchste Priorität. Der rechtsseitige Anschluß 2 (Ebene 1 in direkter Verbindung) der Stufe 5 wird über den Netzwerk-Interface-Chip mit dem Speicher verbunden. Das Netzwerk-Interface kann die Abkopplung der anderen drei rechtsseitigen Anschlüsse überwachen. Ein Leitungsfehler wird nur dann zurückgesendet, wenn eine Anforderung tatsächlich an einem der nichtbenutzten Anschlüsse anliegt. Wenn keine Anforderung anliegt, so wird der "keine Anforderung"-Antworttyp zurückgesendet. Der rechtsseitige Anschluß 2 hat die höchste Priorität, wenn ein direkter Anschluß verlangt wird. Die fest verdrahteten Verbindungen für jeden Schalt-Chip sehen wie folgt aus: STUFE STAGE_DELAY STELLE SCHALTERNUMMER
- Figur 8 zeigt ein Gesamt-Blockschaltbild eines Chips für einen Schalter 20. Bis zu vier Anforderungen können von der vorhergehenden Stufe in den linken Puffer (100) geführt werden. Die eintreffenden Anforderungen werden vorwärts zu dem richtigen rechten Anschluß geführt und, sofern möglich, kombiniert. Die Anforderungen laufen dann über einen rechten Puffer (105) zu der nächsten Stufe. Der Slider (103) behält die umgekehrten Schaltereinstellungen und die gespeicherten Antwortparameter zur Dekombination der Antworten auf die Anforderungen, die kombiniert wurden. Die Antworten kommen von der nächsten Stufe durch den rechten Puffer (105) zurück und gelangen in eine Einrichtung (104) zur Führung und Dekombination von reversierten Antworten. Die Antworten werden zu dem geeigneten linken Anschluß geführt und dort dekombiniert, sofern dies erforderlich ist. Die Antworten gelangen dann durch den linken Puffer (100) zu der vorhergehenden Stufe. Eine Fehler-Steuereinheit (101) überwacht die vier Wege durch den Chip, zeichnet das Auftreten von Fehlern auf und schaltet diesen Weg ab, wenn zu viele Fehler auf diesem Weg auftreten, so daß dann alle Daten über die übrigen Wege geführt werden müssen.
- Die mit "Bit Pick" (200) bezeichnete Schaltung prüft die Knotenadresse der Anforderungen und bestimmt, welchen rechten Anschluß jede Anforderung verlangt. In einer Anforderungs-Auswertung (201) wird jede Anforderung mit jeder anderen Anforderung verglichen und bestimmt, ob die Anforderungen kombiniert werden können und welche Anforderungen Prioriäten gegenüber anderen Anforderungen haben. Die Anforderungs-Auswertung (201) prüft auch auf MOD 3-Fehler auf den Datenwegen. Ein Claim-Teil (202) vergleicht die verlangten rechten Anschlüsse mit den Prioritäten jeder Anforderung und ordnet jeder Anforderung einen rechten Anschluß zu. Ein Snap-Register (204) speichert Daten zwischen den Taktphasen für eine zukünftige Verwendung.
- Eine Schaltereinstellung (203) erfaßt die zugeordneten rechten Anschlüsse und die Informationen bezüglich der Kombinierbarkeit und stellt eine Verbindung der Steuerleitungen mit selektiven Addierern (205) her, um die Anforderungen zu den richtigen rechten Anschlüssen zu führen und zu kombinieren. Die Schaltereinstellung (203) setzt auch die Steuerleitungen der selektiven Addierer, um zur Antwort-Dekombination die gespeicherten Antwortparameter zu berechnen. Die Schaltereinstellung (203) berechnet auch für die Führung der Antwort durch den Antwort-Selektor (104) die umgekehrte Schaltereinstellung. Wenn nicht genug rechte Anschlüsse für alle Anforderungen arbeiten, wird anstatt die umgekehrte Schaltereinstellung in dem Slider (103) zu speichern in dem Slider ein erzwungenes Fehler-Antwortbit gesetzt, welches anzeigt, daß die Anforderung nicht weiter geführt wurde. Die selektiven Addierer (205) dienen zur Führung der Anforderung, zur Führung und Berechnung der Vorwärts- Parameter und zur Berechnung des gespeicherten Antwortparameter.
- Die Figuren 9 bis 26 zeigen detailierte Blockschaltbilder des Netzwerkschalters. Alle Blöcke, die mit "Latch" bezeichnet sind, sind Durchführungsschalter. Die Daten werden zu dem Ausgang durchgeführt, wenn der Takt auf hohem Pegel liegt, während der Ausgang gehalten wird, wenn der Takt niedrigen Pegel aufweist. In dem linken Puffer (100) (der die bidirektionalen I/O-Steuerschaltungen 310A bis 310D aufweist) treffen 16 Bits Anforderungsdaten (LHNTDT_, 307A bis D) und zwei Bits Prüfcodes für die Daten (LHNTCC_, 308A-D) von der vorhergehenden Stufe ein und zwar während der Taktphasen RCV_REQ_A (301), RCV_ REQ_B (302), RCV_PARAM_A (303) und RCV_PARAM_B (304). Die Antwortdaten und die Prüfcodes werden zu der vorhergehenden Stufe auf den gleichen Leitungen während der Taktphasen SND_RESP_A (305) und SND_RESP_B (306) geführt. Von der vorhergehenden Stufe werden während der Taktphasen RCV_REQ_A (301) und RCV_REQ_B (302) drei Bits vom Anforderungstyp (LHNTTY_, 309A-D) angenommen. Der Antworttyp wird zu der vorhergehenden Stufe während der Taktphasen SND_RESP_A (305) und SND RESP_B (306) gesendet. Während der Taktphasen RCV_PA- RAM_A (303) und RCV_PARAM_B (304) wird ein Handshake- Signal "gültige Anforderung empfangen" (314A-D) zu der vorhergehenden Stufe auf den Typenleitungen (309A-D) gesendet. Die linken Puffer-Handshake-Schaltungen (315A-D) sind in Figur 26 gezeigt. Die Handshake-Schaltungen überprüfen, ob der empfangene Typ eine ungerade Parität aufweist, gibt eine vier ab, wenn die Parität ungerade ist und eine sieben, wenn die Parität gerade ist (Anzeige eines Fehlers).
- Die oberen 10 Bits der Datenleitungen (LRQDT_[6..15], 327E-H) werden zu der Bit-Pick-Einheit (200) gesendet, um zu bestimmen, welche rechten Anschlüsse verlangt werden (338A-H) . Diese 10 Bits stellen die Zielprozessor-Adresse während RCV_REQ_B (302) dar. Nur die querverbundenen rechten Anschlüsse haben "gewünschte" Signale. Die geraden durchverbundenen rechten Anschlüsse sind vorgegeben, wenn durch eine Anforderung keine Quer-Anschlüsse verlangt werden.
- Figur 14 zeigt die Details der Bit-Pick. 10:1 Multiplexer (MUX) innerhalb der Bit-Pick wählen ein Bit der Zielprozessor-Adresse unter Verwendung der EFPL0 (330) oder EFPL1 (331) als Steuerleitungen aus, um die wirksamen Ebenen zu bezeichnen. Das ausgewählte Bit wird dann entweder mit DIGIT0 (332) oder DIGIT1 (333) EXKLUSIV-ODER verknüpft, um REQ_WANT_(338A-H) zu erzeugen. Das Signal LRQDT_[6..15] (327E-H) wird auch zu einer 10 Bit Gleichheits-Prüfeinrichtungen (335) gesendet, um festzustellen, ob jeweils zwei Zielprozessor-Adressen gleich sind. Die erzeugten Signale lauten PA_EQ_ (340A-F).
- Die vollen 16 Bits der Daten (LRQDT_327A-D) werden zu einer 16 Bit Größen-Vergleichseinheit (336) geleitet, um zu erfassen, welche Speicheradressen gleich (MA_EQ_ 341A-F) und welche Speicheradressen größer als andere Speicheradressen (MA_GT_, 342A-L) sind. Der Größenvergleich ist nur zulässig während der Signale RCV_REQ_B (302) und RCV_PARAM_A (303).
- Während der Signale RCV_REQ_B (302), RCV_PARAM_A (303), RCV_PARAM_B (304) und SND_RESP_A (305) werden die Daten (LRQDT_, 327A-D) einer MOD 3 Überprüfung unterzogen und innerhalb des Blockes "Anforderungsauswertung MOD 3 Überprüfung (404)" mit den Prüfcodes (LRQCC_, 328A-D) verglichen. Die MOD 3 Prüfanordnung (Figur 15) besteht aus einem Baum aus zwei Bit MOD 3 Addierern. Der erste Ast des Baumes stellt einen besonderen reduzierten MOD 3 Addierer dar, der die Umwandlung einer binären 16 Bit Zahl zu Sätzen von zwei Bit MOD 3 Zahlen bewirkt. Die Logik der MOD 3 Addierer ist in Figur 24 gezeigt. Innerhalb des Blockes der Anforderungsauswertung-MOD 3 Überprüfung wird eine weitere Überprüfung der Typenleitungen durchgeführt. Die Anforderungstypen werden innerhalb des Suspend-Checks (405) entweder zu Fetch-Add oder Swap (TY_ISFA, 400A-D und TY_ISSW, 400E-H) decodiert.
- Die Typendecodierung ist in Figur 16 gezeigt. Wenn der Typ weder Fetch-Add (d.h. Fetch-And-Add) noch Swap ist, so wird die Leitung DT_OK (402A_D) dieser Anforderung auf niedriges Niveau gesetzt, was bedeutet, daß die Daten zu ignorieren sind. Es ist entweder ein Fehler aufgetreten, oder keine Anforderung vorhanden. Das Komplement der DT_OK (402A-D)-Leitungen ist RQE_ER_ (401A-D) und wird zur Überwachung der Fehler auf jedem Weg durch den Chip zu der Fehlersteuerung gesendet.
- Mit dem Suspend Check (405) wird überprüft, ob eine Anforderung zurückgestellt werden muß, und zwar entweder aufgrund eines Fehlers in einer Anforderung oder einer geringen Priorität einer Anforderung, so daß der gleiche Zielprozessor eine Anforderung mit einer höheren Priorität adressiert, wobei jedoch eine Kombination mit dieser Anforderung nicht möglich ist.
- Die Suspend Check-Logik ist in Figur 16 gezeigt. Eine kleinere Speicheradresse hat die Priorität gegenüber einer größeren Speicheradresse. Swap hat die Priorität gegenüber Fetch-Add. SUSPEND_ (403A-D) wird dann dem Merge-Check (452) und Req_active (453) zugeführt. Bei dem Merge-Check wird jede Anforderung mit jeder anderen Anforderung verglichen und geprüft, welche Anforderungen miteinander zu einer Anforderung kombiniert werden können.
- Figur 23 zeigt die Logik für den Merge-Check und REQ ACTIVE. Anforderungen werden nur dann kombiniert, wenn ihre Zielprozessor-Adressen gleich sind, ihre Spreicheradressen gleich sind, Ihre Typen gleich sind und sie nicht zurückgestellt worden sind. REQ-ACTIVE (453) bestimmt, welche Anforderungen nach Ausführung der Kombination aktiv sind. Bei einem Satz kombinierter Anforderungen ist diejenige, die den linken Anschluß mit der geringsten Nummer aufweist, diejenige, die aktiv bleibt und durch die kombinierte Anforderung gesteuert wird. Anforderungen, die nicht kombiniert werden und nicht zurückgestellt werden sind auch aktiv. Da die Anforderung in zwei Hälften aufgespaltet wird (Multiplexung zur Begrenzung der externen Pin-Anzahl), muß ein Vergleich zwischen den zwei Hälften der Anforderung durchgeführt werden, um festzustellen, ob die während der ersten Hälfte getroffene Entscheidung während der zweiten Hälfte noch gültig ist. UND-Gattergruppen 454 und 455 vergleichen das Merge-Signal der ersten Hälfte mit der zweiten Hälfte.
- Die einzige Möglichkeit für das Auftreten einer Verschmelzung (Merge) besteht darin, daß die Ergebnisse sowohl der ersten also auch der zweiten Hälfte eine Verschmelzung anfordern. Die UND-Gatter Gruppe 456 (REQ_ABORT, 429A-C) überprüft, ob ein REQ_ACTIVE (408A-D)-Signal aufgrund von kollidierenen Speicheradressen bei einer vorhergehenden Verschmelzung oder aufgrund von kollidierenden Typen oder Fehlern in der zweiten Hälfte der Anforderung abgebrochen wurde. Es gibt kein REQ3_ABORT, da die Anforderung 3 niemals aktiv ist, wenn sie mit einer anderen Anforderung verschmolzen wird. Die UND-Gatter Gruppe 457 (REQ_ NEW, 430A-C) überprüft für eine neue aktive Anforderung während der zweiten Hälfte, wann sie während der ersten Hälfte nicht aktiv war. Eine REQ_NEW-Leitung liegt auf hohem Potential, wenn die Anforderung mit der niedrigsten Nummer in einer Gruppe von Anforderungen, die verschmolzen werden, während der zweiten Hälfte der Anforderung zurückgestellt wird.
- Es gibt keine REQ0NEW-Leitung, da in dem Fall, in dem die Anforderung mit einer anderen Anforderung verschmolzen wurde, die an dem linken Anschluß 0 ankommende Anforderung immer die während der ersten Hälfte der Anforderung steuernde Anforderung sein würde. Die Anforderung hat die höchste Priorität. Die MERGE-, BORT- und NEW-Signale werden zu der neuen steuernden Anforderung (437) übertragen, um zu bestimmen, welche Anforderung während der ersten Hälfte gesteuert wurde, bzw. welche Anforderung während der zweiten Hälfte gesteuert wird. Die Logik für die neue steuernde Anforderung (437) ist in Figur 17 gezeigt. Die Ausgangssignale sind R_NEW (436A-I), wobei die Ziffer vor NEW die alte steuernde Anforderung und die Ziffer nach NEW die neue steuernde Anforderung bezeichnet.
- Die Beanspruchungs-Matrix (202) ordnet den Anforderungen rechte Anschlüsse zu. Die Fehlersteuerung kann einen rechten Anschluß abschalten, indem eine der Leitungen P0SBAD, P0CBAD, P1SBAD oder P1CBAD (600A-D) auf hohem Potential liegt. Die Beanspruchungs-Matrix verwendet REQ_WANT_ (338A-H) und REQ_ACTIVE (408A-D)- Leitungen, um rechte Anschlüsse zuzuordnen. Die Beanspruchungs-Matrix ist in Figur 18 gezeigt. Eine Beanspruchungs-Zelle ist in Figur 22 dargestellt. Die Reihenfolge der Prioritäten bei der Zuordnung rechter Anschlüsse lautet wie folgt Ebene 1 gekreuzt (PIC), Ebene 0 gekreuzt (P0C), Ebene 1 gerade (P1S) und Ebene 0 gerade (P0S).
- Dieses Prioritätsschema wird durch die Reihenfolge der Spalten in der Beanspruchungs-Matrix dargestellt. Wenn eine Anforderung keinen gekreuzten Anschluß verlangte und beide geraden Anschlüsse schon beansprucht werden, so bekommt diese Anforderung einen Quer-Anschluß aus den letzten zwei Spalten der Beanspruchungs-Matrix. Die gekreuzte Ebene 0 hat gegenüber der gekreuzten Ebene 1 die Priorität. Die gekreuzte Ebene 0 hat deshalb Priorität, weil in der nächsten Stufe die Anforderung die gekreuzte Ebene 1 verlangt und durch Verwendung der "Catch-Up"-Ebene zu der Spur zurückgelangen kann.
- Die Reihenfolge der Reihen zeigt die Priorität der Anforderungen auf der Grundlage der linken Anschluß nummer an. Wenn alle anderen Zustände gleich sind, hat die an dem linken Anschluß mit geringerer Nummer eintref fende Anforderung die Priorität. Die Spalten- Prioritätsreihenfolge hat Vorrang vor der Reihen- Prioritätsreihenfolge. Das Verlangen nach einem rechten gekreuzten Anschluß hat höhere Priorität, als ein linker Anschluß mit geringerer Nummer. Die Ausgänge der Beanspruchungs-Matrix sind R_GET_ (417A-P).
- Die Signale HR_GET (419A-P) und R_NEW_ (436A-I) werden zu dem Block "New Got Its" (438) geführt, um zu bestimmen, wie die rechten Anschlüsse während der zweiten Hälte der Anforderung erneut zuzuordnen sind. Es ist nicht ausreichend, die Beanspruchungen während der zweiten Hälfte einfach erneut mit der Beanspruchungs-Matrix auszuführen, da sich die Prioritäten aufgrund von Abbrüchen während der zweiten Hälfte geändert haben können. Wenn sich die Prioritäten ändern, und die Beanspruchungen erneut ausgeführt werden, kann eine Anforderung zwischen zwei rechten Anschlüssen aufgespalten werden. Beispiel: Wenn die Anforderung 0, 2 und 3 kombiniert werden und die gekreuzte Ebene 1 verlangen und Anforderung 1 von selbst hindurchtritt und ebenfalls die gekreuzte Ebene 1 verlangt, dann bekommt am Ende der ersten Hälfte der Anforderung Anforderung 0 die gekreuzte Ebene 1 und Anforderung 1 die gerade Ebene 1. Wenn während der zweiten Hälfte die Anforderung 0 abgebrochen wird, würde eine erneute Auswertung mit der Beanspruchungs-Matrix dazu führen, daß Anforderung 1 die gekreuzte Ebene 1 und Anforderung 2 die gerade Ebene 1 bekommt. Die zwei Sätze von Anforderungen würden vermischt werden. Es ist erforderlich, das Signal HR0GETP1C (419D) zu nehmen und dieses mit NEW_ R2GETP1C (445L) erneut zuzuordnen. Die Anforderungen liegen nun an den richtigen rechten Anschlüssen an und werden nicht miteinander vermischt. Die Logik für die Einrichtung "New Got Its" ist in Figur 17 gezeigt.
- Das Snap-Register (204) wird zum Halten von Daten zur zukünftigen Verwendung bei Taktphasen verwendet. Register 420 hält die Typen SNTY_ (421A-D). Das Register 424 hält die erste Hälfte der Parameterdaten und die Prüfbits. Die zweite Hälfte der Parameterdaten und die Prüfbits werden in den linken Pufferregistern 324A-D und 325A-D gehalten. Die erste und zweite Hälte der Parameter wird in das Register 451 gemultiplext (44G), so daß die Signale SNDT (449A-D) und SNCC_ (450A-D) entstehen, die dann zu den selektiven Addierern (205, 520) übertragen werden.
- Der Grund für das Erfordernis des Snap-Registers liegt darin, daß der Anforderungs-Parameter zweimal verwendet werden muß: Einmal zur Berechnung der Vorwärtsparameter und einmal zur Berechnung der gespeicherten Antwortparameter. Bei der Berechnung der Vorwärtsparameter fließen dann beide Hälten des Parameters durch Anschluß 0 des Multiplexers (446). Wenn der gespeicherte Antwortparameter berechnet wird, kommt die erste Hälfte des Parameters von Anschluß 1 des Multiplexers (446) und die zweite Hälfte des Parameters von Anschluß 0 des Multiplexers (446). Register 433 speichert die Verschmelzungssignale SNR_FA (434A-F) und SNR_SW_ (435A-F) für eine zukünftige Verwendung.
- Die Schaltereinstellung (203) setzt die Steuerleitungen für die selektiven Addierer (205). Die gespeicherten Schalterstellungen (205) für Antwortparameter- selektive Addierer erfassen die Verschmelzungssignale SNR_FA_ (434A-F) und SNR_SW_ (435A-F) und bestimmen, wie die selektiven Addierer zur Berechnung der gespeicherten Antwortparameter zu setzen sind. Die Logik für die gespeicherten Antwortparameterselektiven Addierschalterstellung (502) ist in Figur 20 gezeigt. Wenn eine Anforderung nicht mit einer anderen Anforderung kombiniert wird, ist der gespeicherte Antwortparameter 0. Wenn eine Anforderung mit anderen Anforderungen Fetch-Add kombiniert ist, ist der gespeicherte Antwortparameter die Summe der Parameter der anderen kombinierten Anforderungen, die geringere linke Anschlußnummern aufweisen. Wenn die Anforderung die geringste linke Anschlußnummer der kombinierten Anforderunge aufweist, so ist der gespeicherte Antwortparameter 0.
- Wenn die Anforderung mit anderen Anforderungen Swapkombiniert wird, ist der gespeicherte Antwortparameter der Parameter der Anforderung (von den kombinierten Anforderungen) mit der nächsthöcheren linken Anschlußnummer. Wenn die Anforderung die höchste linke Anschlußnummer der kombinierten Anforderungen aufweist, ist der gespeicherte Antwortparameter 0.
- Die selektive Addierer-Schaltereinstellung (514) erhält die Signale SNR_FA_ (434A-F), SNR_SW_ (435A-F), NEW_R_GET (445A-P) und HF_ADD_ (509A-P), (gespeicherte Antwortparameter- selektive Addierschalterstellungen) und erzeugt die Signale, die die selektiven Addierer steuern: F_ADD_ (515A-P). Bei F_ADD_ bezeichnet die Ziffer vor ADD die linke Anschlußnummer und die Ziffer nach ADD die rechte Anschlußnummer.
- Die Logik für die selektiven Addierer-Schalterstellungen (514) ist in Figur 20 gezeigt. Während der Signale RCV_PARAM_A (303) und RCV_PARAM_B (304) wird die Anforderung durch die selektiven Addierer geführt, und zwar nur aufgrund des rechten Anschlusses, den die Anforderung erhielt. Es findet keine Addition statt. Während der Signale SND_RESP_A (305) und SND _-RESP_B (306) werden die Vorwärts-Anforderungsparameter berechnet.
- Wenn die Anforderung nicht mit irgendeiner anderen Anforderung kombiniert wird, wird der Parameter durch den selektiven Addierer geführt und zwar auf der Grundlage des rechten Anschlusses, den die Anforderung erhielt. Wenn die Anforderung mit anderen Anforderungen Fetch-Add kombiniert ist, ist der Vorwärtsparameter die Summe aller kombinierten Parameter. Wenn die Anforderung mit anderen Anforderungen Swapkombiniert ist, ist der Vorwärtsparameter der Parameter der Anforderung mit dem linken Anschluß mit geringster Nummer. Während der Signale RCV_REQ_A (301) und PCV_REQ_B (302) wird der gespeicherte Antwortparameter wie oben beschrieben berechnet.
- Die Antwortauswahl-Schaltereinstellung (501) berechnet den rechten Anschluß, an dem jede Anforderung tatsächlich anlag, auf der Basis der Verschmelzungssignale SNR_FA_ (434A-F), SNR_SW (435A-F) sowie der "New Got Its" NEW_R_GET (445A-P) . Die Logik für die Antwortauswahl-Schaltereinstellung (501) ist in Figur 19 gezeigt. Der zugeordnete rechte Anschluß ist mit den zwei Bits mit geringer Ordnung in B_SEL (513A-D) codiert. Das Bit mit hoher Ordnung in B_SEL (513A-D) wird gesetzt, wenn eine Anforderung aufgrund von Kollisionen oder Fehlern von keinem der rechten Anschlüsse abgesendet wurde. Das Bit mit der hohen Ordnung wird zur Erzwingung einer Fehlerantwort verwendet, wenn die Antwort durch den Chip zurückkommt. Die Antwortauswahl-Schaltereinstellungs-Bits werden in dem Slider (103) zur Verwendung bei der umgekehrten Führung der Antwort gespeichert.
- "Force Zero Add" (500) wird zur Steuerung verwendet, wenn eine Antwort, die Swap- kombiniert wurde, dekombiniert wird. Die Logik für "Force Zero Add" (500) ist in Figur 17 gezeigt. Wenn ein Swap dekombiniert wird, bekommt die ursprüngliche Anforderung mit dem linken Anschluß mit der höchsten Nummer den Antwortparameter, der in den rechten Puffer (105) gelangt. Die anderen Anforderungen ignorieren die von dem rechten Puffer (105) kommende Antwort und benutzen ihre gespeicherten Antwortparameter auf der Grundlage der "Force Zero Add" Bits ZE_(512A-D) . Die "Force Zero Add"-Bits werden in dem Slider (103) gespeichert, um bei der Rückkehr der Antwort verwendet zu werden.
- Die selektiven Addierer (205) werden zur Führung der Anforderung, zur Führung und Berechnung des Vorratsparameters und zur Berechung des gespeicherten Antwortparameter gemäß obiger Beschreibung verwendet. Da die Parameter in zwei Hälften aufgespalten sind, werden Trägerbits zwischen Hälften durch ein Register (522) gespeichert. Die selektiven Addierer bestehen aus vier Sätzen von Addierern, von denen jeder jede Kombination der vier Eingangs-Datenleitungen (SNDT_, 449A-D) addieren kann. Da bis zu vier Operanten addiert werden können, müssen in jedem Addiersatz zwei Trägerbits vorhanden sein.
- Die Logik für die selektiven Addierer ist in den Figuren 11 und 21 gezeigt. Die Prüfcodes für die Operanten, die addiert wurden, werden unter Verwendung der MOD 3 Addierer addiert. Während der zweiten Hälfte der Addition werden die Übertragsbits von der ersten Hälfte der Addition (HCARRY_, 521A-H) unter Verwendung eines besonderen MOD 3 Addierers (Figur 24) in den Prüfcode addiert. Während der ersten Hälfte der Addition sind die gespeicherten Übertragsbits HCARRY_ (521A-H) Null. Während beider Hälften der Addition werden die laufenden Übertragsbits (CARRY_, 524A-H) von den selektiven Addierern in einem besonderen MOD 3 Addierer addiert und dann von den Prüfbits MOD 3 subtrahiert, um die abschließenden Prüfcods FSWCC (529A-D) zu erzeugen. Dies ist für die Prüfcodes für jede der 16 Bithälften des Parameters erforderlich, um bei dem Vorhandensein von Überträgen korrekt zu bleiben. Ein MOD 3-Subtrahierer ist in Figur 25 gezeigt.
- Die Anforderungs-Typen werden mit der Anforderung während der Signale RCV_PARAM_A (303) und RCV_PARAM_B (304) weitergeleitet und zu allen anderen Zeitpunkten ignoriert. Die UND-Gattergruppe 2018 (Figur 21) gibt ein Signal "keine Anforderung" ab, wenn der besondere rechte Anschluß von keiner Anforderung benutzt wird. Die weitergeführten Anforderungs-Typen sind FSWTY_ (530A-D). Die geführten Datensignale sind FSWDT (528A-D).
- Gemäß Figur 11 gelangt der Ausgang der selektiven Addierer (520) zu zwei Registern. Ein Register (536) führt die Anforderung und den Vorwärtsparameter zu dem rechten Puffer (105), während das andere Register (535) den gespeicherten Antwortparameter zu dem Slider (103) führt. Der rechte Puffer (105) sendet die Daten und die Prüfcodes zu der nächsten Stufe während der Signale RCV_PARAM_B (304), SND_PESP_A (305), SND_ RESP_B (306) und RCV_REQ_A (301). Man beachte den 3- Phasen-Offset zwischen der in den linken Puffer (100) geführten Anforderung und der von dem rechten Puffer (105) abgehenden Anforderung. Die Antwortdaten und Prüfcodes werden von der nächsten Stufe während der Signale RCV_REQ_B (302) und RCV_PARAM_A (303) angenommen.
- Der Anforderungs-Typ wird zur nächsten Stufe während der Signale RCV_PARAM_B (304) und SND_RESP_A (305) ausgesendet. Handshake-Signale werden von der nächsten Stufe auf den Typenleitungen während der Signale SND_RESP_B (306) und RCV_REQ_A (301) entgegengenommen. Der Antworttyp wird von der nächsten Stufe während der Signale RCV_REQ_B (302) und PCV_PARAM_A (303) angenommen. Die Handshake-Logik (557) ist in Figur 26 gezeigt. Wenn ein Handshake-Fehler auftritt, so wird der Fehlersteuerung (101) über die Leitungen HANDERR_ (559A-D) gemeldet, daß ein Weg eine Störung aufweist.
- Der Slider (103) besteht aus zwei RAM-Abschnitten und ist in Figur 12 gezeigt. Der erste Abschnitt RAM_LS (603) ist 88 Bit breit und 32 Wörter tief. Der zweite Abschnitt RAM_MS (606) ist 72 Bit breit und 32 Worte tief. Die Slider-Rücksetzsteuerung (613) läd den binären Wert 100 (dezimal 4) in alle B_SEL (513A-D) Speicherstellen und eine Null in alle anderen RAM- Speicherstellen, wenn das Signal RESET (611) aktiv ist. Der binäre Wert 100 zeigt an, daß "keine Anforderung" vorhanden ist. Die Slider-Rücksetzsteuerung (613) läuft schrittweise durch alle 32 Adressen des RAM_ (603, 606), wodurch die Datenleitungen (512, 513A-D, 537A-D, 538A-D) die korrekten Werte annehmen müssen und während jeder Adresse die Schreib-Aktivierungsleitung (602, 605) aktivieren. Es ist ein 5 Bit Schreibzähler (609) und ein 5 Bit Lesezähler (612) vorhanden. Der Lesezähler ist auf 0 initialisiert, während der Schreibzähler auf STAGE-DELAY (610) initialisiert ist, wenn RESET (611) aktiv ist. Die Lese- und Schreizähler erhalten während der gesamten Operation des Schalt-Chips immer durch das Signal STAGE-DELAY (610) einen Offset. Das Signal STAGE-DELAY (610) zeigt an, wann die Rückkehr einer Antwort zu dem Schalt-Chip an dem rechten Puffer zu erwarten ist.
- Der Schreib- und der Lesezähler werden zum gleichen Zeitpunkt (RCV_PARAM_B, 304) vorgesetzt, um die Möglichkeit zu vermeiden, daß einer der Zähler ein weiteres Mahl während des Startens des Taktes vorgesetzt wird. Das RAM_LS (603) speichert die "Force Zero Add"-Bits (ZE_, 512A-D), die umgekehrten Schalterstellungen (B_SEL, 513A-D) und die ersten Hälfte des gespeicherten Antwortparameters (HFSWDT_, 537A-D und HFSWCC 538A-D) während des Signals RCV_REQ_B (302). Die zweite Hälfte des gespeicherten Antwortparameters wird während des Signals RCV_PARAM_A (303) in dem RAM _-MS (606) gespeichert. Die gespeicherte Information wird während des Signals SND_RESP_B (306) ausgelesen und in einem Register (627) für zukünftige Verwendung gespeichert. Die Daten werden frühzeitig ausgelesen und gespeichert, um Konflikte mit dem Einschreiben in das RAMM (603, 606) zu vermeiden. Die (erste) Hälfte mit geringster Wertigkeit des gespeicherten Antwortparameters wird zu dem Antwort-Selektor (104) gesendet und während des Signals RCV_PARAM_A (303) verwendet.
- Die (zweite) Hälfte mit höchster Wertigkeit des gespeicherten Antwortparameters wird zu dem Antwort-Selektor (104) gesendet und während des Signals SND RESP_A (305) verwendet. Der Grund für die Berechnung der zwei Hälften der Antwort während nicht aneinandergrenzender Taktphasen liegt darin, ein Register in dem linken Puffer (100) zu sparen.
- Die Antwort-Selektor (104)-Logik ist in Figur 13 gezeigt. Die Daten (LRSDT_, 554A-D) von dem rechten Puffer (105) werden zu dem richtigen linken Anschluß (MUX_DT_, 704A-D) durch den Multiplexer MUX (703) auf der Basis der umgekehrten Schalterstellungs-Bits von dem Slider (SLSS_[0..1], 629A-D) geführt. Wenn das "Force Zero Add"-Bit (SLZE_, 628A-D) gesetzt ist, werden die Daten von dem rechten Puffer (105) ignoriert. Die geführten Daten (MUX_DT_, 704A-D) werden mit dem 16 Bit-Addierer (717) zu dem gespeicherten Antwortparameter (SLDT_, 635A-D) addiert. Überträge werden zwischen Hälften der Antwort (HCARRY_, 725A-D) gespeichert. Die Ausgänge der Addierer (717) werden in Registern (716) gespeichert und zu dem linken Puffer (100) als HRSDT_ (700A-D) gesendet. Die Prüfcodes (LRSCC 555A-D) werden in ähnlicher Weise zu dem richtigen linken Anschluß (MUX_CC_, 706A-D) geführt.
- Die Prüfcodes (MUX_CC_, 706A-D) werden zu den gespeicherten Prüfcodes (SLCC_, 636A-D) MOD 3- addiert und zu den gespeicherten Übertrags-Bits (HCARRY_, 725A-D) addiert. Die laufenden Übertrags-Bits (CARRY_, 719A- D) werden von den Prüfcodes MOD 3- subtrahiert. Die Prüfcodes werden in einem Register (716) gespeichert und zu dem linken Puffer (100) als HRSCC_ (701A-D) gesendet. Der Antwort-Selektor (104) führt ebenfalls eine MOD 3-Überprüfung (Figur 15) bezüglich der eintreffenden Datenwege (554A-D, 555A-D) durch. Jeder Fehler wird mit dem MUX (731) zu dem richtigen linken Anschluß geführt, wo dieser eine Fehlerantwort an dem den Typ führenden MUX (735) verursacht. Der Antworttyp wird mit den MUX (735) zu dem richtigen linken Anschluß geführt.
- Wenn das höchstwertigste Bit der Leitungen für die umgekehrte Schaltereinstellung (SLSS_[2], 629A-D) gesetzt ist (was bedeutet, daß keine Antwort erwartet wird) und eine Antwort empfangen wurde, oder ein Prüfcode-Fehler auftritt, so wird der eintreffende Antworttyp ignoriert und ein Fehlertyp zu dem linken Puffer (100) auf den Leitungen HRSTY_ (702A-D) gesendet. Wenn kein Fehler vorhanden ist, wird der Antworttyp zu dem geeigneten linken Anschluß geführt, so daß der Leitungsvorgang abgeschlossen ist.
Claims (7)
1. Netzwerk-Verbindungssystem zur Verbindung von bis
zu N Antworteinrichtung mit bis zu N
Anforderungseinrichtungen mit:
S Stufen von Schalteinrichtungen, die jeweils N
Schalteinrichtungen aufweisen,
wobei S = [(logbN) + 1] und b eine ausgewählte ganz
logarithmische Basiszahl größer als 1 und N eine Potenz
von b ist,
b mal p ersten Anschlußeinrichtungen für jede der
Schalteinrichtungen mit Ausnahme für eine
Anforderungsstufe der Schalteinrichtungen, die
Anforderungs-Anschlüsse aufweisen,
b mal p zweiten Anschlußeinrichtungen für jede der
Schalteinrichtungen mit Ausnahme einer Antwortstufe der
Schalteinrichtungen, die Antwort-Anschlüsse aufweisen,
wobei p eine ausgewählte ganz Zahl größer als eins ist,
jede Schalteinrichtung der Anforderungsstufe der
Schalteinrichtungen eine Anforderungs-Anschlußeinrichtung
aufweist, die mit einer einzigen der
Anforderungseinrichtungen verbindbar ist,
jede Schalteinrichtung der Antwortstufe der
Schalteinrichtungen eine Ausgangs-Anschlußeinrichtung aufweist,
die mit einer einzigen der Anforderungseinrichtungen
verbindbar ist,
wobei die ersten und zweiten Anschlußeinrichtungen der
Schalteinrichtungen mit den Ausgangs- bzw.
Eingangsanschlußeinrichtungen einer anderen Stufe verbindbar sind,
so daß jede zweite Anschlußeinrichtung, die einer
Schalteinrichtung zugeordnet ist, die sich in einer
näher
an der Anforderungseinrichtung liegenden Stufe
befindet, mit einer ersten Anschlußeinrichtung verbindbar
ist, die einer Schalteinrichtung zugeordnet ist, die
sich in einer näher an der Antworteinrichtung liegenden
Stufe befindet,
wobei die S Stufen der Schalteinrichtungen mit einem
Wert zwischen 0 und S-1 bezeichnet sind, so daß Stufe 0
eine Anforderungsstufe und Stufe S-1 eine Antwortstufe
ist,
wobei die N Schalteinrichtungen innerhalb jeder Stufe
mit einem Wert zwischen 0 und N-1 bezeichnet sind, der
durch einen binäre, nicht negative ganze Zahl mit S-1
Stellen dargestellt ist,
die b mal p ersten und zweiten Anschlußeinrichtungen
jeweils in p Ebenen gruppiert sind, die mit einem Wert
zwischen 0 und p-1 bezeichnet sind und aus b Anschlüssen
pro Ebene bestehen, die mit einem Wert zwischen 0 und
b-1 bezeichnet sind,
die ersten und zweiten Anschlußeinrichtungen jeweils
durch vier Parameter repräsentiert sind, und zwar einen
Stufenparameter (stage) , einen Schaltparameter (switch),
einen Ebenenparameter (plane) und einen Stellenparameter
(digit),
wobei die Schaltparameter jeweils durch logbN-Stellen
dargestellt sind, die Stellenparameter jeweils durch
eine einzige binäre Stelle dargestellt sind und der
zweite Stufenparameter die gleiche Stufe wie der erste
Stufenparameter plus eins darstellt, der Ebenenparameter
die gleiche Ebene darstellt und die Schalt- und
Stellenparameter der ersten Stufe und der zweiten Stufe durch
eine vorbestimmte Beziehung bestimmt werden, die dazu
führt, daß jeder der ersten Anschlüsse einer Stufe mit
höchstens nur einem der zweiten Anschlüsse einer anderen
Stufe verbunden ist, wobei die Verbindungen folgenden
Formeln genügen:
2. Netzwerk-Verbindungssystem nach Anspruch 1,
dadurch gekennzeichnet, daß p = logbN ist und daß b und
N so ausgewählt sind, daß p eine ganzzahlige Zahl
ergibt.
3. Netzwerk-Verbindungssystem nach Anspruch 2,
dadurch gekennzeichnet, daß b = 2.
4. Netzwerk-Verbindungssystem nach Anspruch 3,
gekennzeichnet durch eine Mehrzahl von
Schalteinrichtungen, die in Stufen angeordnet und mit 0 bis S-1
numeriert sind, wobei S-1 die höchstnumerierte Stufe des
Systems ist, jede Stufe eine gleiche Anzahl von
Schalteinrichtungen aufweist, jede der Schalteinrichtungen mit
Ausnahme der Schalteinrichtungen von Stufe 0 eine
Mehrzahl von ersten Anschlußeinrichtungen aufweist, wobei
die Schalteinrichtung in Stufe 0 eine einzige erste
Anschlußeinrichtung enthält, die mit einer Anforderungs-
Anschlußeinrichtung verbunden ist und jede der
Schalteinrichtungen mit Ausnahme der Schalteinrichtung in
Stufe S-1 eine Nehrzahl von zweiten
Anschlußeinrichtungen aufweist und die Schalteinrichtung in Stufe S-1 eine
einzige zweite Schalteinrichtung enthält, die mit einer
Antwort-Anschlußeinrichtung verbunden ist;
Verbindungseinrichtungen zur selektiven Verbindung aller
einzelnen ersten Anschlußeinrichtungen einer gegeben
Schalteinrichtung mit jeder einzelnen zweiten
Anschlußeinrichtung
der gleichen Schalteinrichtung;
ersten Transceiver-Einrichtungen zum Empfang von
Anforderungs-Codes und zur Übertragung von Antwort-Codes über
die ersten Anschlußeinrichtungen;
zweiten Transceiver-Einrichtungen zum Empfang von
Antwort-Codes und zur Übertragung von Anforderungs-Codes
über die zweiten Anschlußeinrichtungen,
Speichereinrichtungen zur Speicherung der Anforderungs-
und Antwort-Codes und
Steuereinrichtungen zum Zugriff auf die
Speichereinrichtungen und zur Steuerung der Verbindungseinrichtungen
gemäß einer der folgenden Fälle:
(a) wenn eine erste Anschlußeinrichtung einer
bestimmten Schalteinrichtung zur Verbindung mit einer
zweiten Anschlußeinrichtung einer Anforderungs-
Schalteinrichtung der nächstniedriger numerierten
Stufe angefordert wird, oder wenn eine
Ausgangs-Anschlußeinrichtung durch eine
Anforderungs-Schalteinrichtung in Stufe S-1 während einer
vorbestimmten Zeitperiode angefordert wird, und wenn keine
andere Schalteinrichtung in der gleichen Stufe wie
der anfordernden Schalteinrichtung irgendeine erste
Anschlußeinrichtung der betreffenden
Schalteinrichtung oder der Ausgangs-Anschlußeinrichtung während
der Zeitperiode anfordert, so werden die
angeforderten ersten Anschlußeinrichtungen oder die
Ausgangs-Anschlußeinrichtungen mit einer zweiten
Anschlußeinrichtung der anfordernden
Schalteinrichtung verbunden, oder
b) wenn mehr als eine der ersten Anschlußeinrichtungen
der angeforderten Schalteinrichtung durch eine
andere Schalteinrichtung in der gleichen Stufe wie
der anfordernden Schalteinrichtung mit Ausnahme der
Stufe S-1 angefordert wird, oder wenn eine
Ausgangs-Anschlußeinrichtung durch eine anfordernde
Schalteinrichtung in Stufe S-1 während der
Zeitperiode angefordert wird, so wird die angeforderte
erste Anschlußeinrichtung oder die
Ausgangs-Anschlußeinrichtung mit einer zweiten
Anschlußeinrichtung der anfordernden Schalteinrichtung gemäß
einer vordefinierten Antwort-Code-Priorität
verbunden, wobei die Priorität durch die
Steuereinrichtung von den in den Speichereinrichtungen während
der vorbestimmten Zeitperiode gespeicherten
Antwort-Codes abgeleitet wird.
5. Netzwerk-Verbindungssystem nach Anspruch 4,
dadurch gekennzeichnet, daß das Prioritätsschema durch
Aussenden von Parameter-Codes mit den Anforderungs-Codes
implementiert wird und die Speichereinrichtung die
Parameter-Codes speichert, wobei die Parameter-Codes durch
die Steuereinrichtungen zur Kombinierung der Antwort-
Codes verwendet werden, wenn identifizierte erste und
zweite Anschlußeinrichtungen oder identifizierte erste
Anschlußeinrichtungen und Ausgangs-Anschlußeinrichtungen
der betreffenden Schalteinrichtungen zwei oder mehr
identischen Anforderungs-Codes, die durch die ersten
Anschlußeinrichtungen der angeforderten
Schalteinrichtung empfangen werden, zugeordnet sind, und wobei die
kombinierten Antwort-Codes durch die Steuereinrichtungen
dekombiniert werden, um das Prioritätsschema zur
Verbindung der identifizierten ersten und zweiten
Anschlußeinrichtungen oder der identifizierten ersten
Anschlußeinrichtungen und der Ausgangs-Anschlußeinrichtungen
festzulegen.
6. Netzwerk-Verbindungssystem nach Anspruch 5,
dadurch gekennzeichnet, daß das Prioritätsschema zur
Festlegung der sequentiellen Prioritätsreihenfolge der
zweiten Anschußeinrichtungen der anfordernden
Schalteinrichtung eine Fetch-and-Modify-Operation verwendet,
wenn zwei oder mehr Antwort-Codes für die anfordernde
Schalteinrichtung kombiniert werden, und eine
Swap-Operation verwendet, zu eine umgekehrte sequentielle
Reihenfolge der zweiten Anschlußeinrichtungen der
anfordernden Schalteinrichtung festzulegen.
7. Netwerk-Verbindungssystem nach Anspruch 6,
dadurch gekennzeichnet, daß die Steuereinrichtung eine
der Fetch-and-Modify- und Swap-Operations zugunsten der
anderen Operationen zurückstellt.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/108,514 US4833468A (en) | 1987-10-14 | 1987-10-14 | Layered network |
PCT/US1988/003608 WO1989003566A2 (en) | 1987-10-14 | 1988-10-14 | Layered network |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3880478D1 DE3880478D1 (de) | 1993-05-27 |
DE3880478T2 true DE3880478T2 (de) | 1993-08-05 |
Family
ID=22322642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE8989900410T Expired - Fee Related DE3880478T2 (de) | 1987-10-14 | 1988-10-14 | Geschichtetes netz. |
Country Status (5)
Country | Link |
---|---|
US (1) | US4833468A (de) |
EP (1) | EP0334954B1 (de) |
JP (1) | JPH02501183A (de) |
DE (1) | DE3880478T2 (de) |
WO (1) | WO1989003566A2 (de) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5088032A (en) * | 1988-01-29 | 1992-02-11 | Cisco Systems, Inc. | Method and apparatus for routing communications among computer networks |
US5163149A (en) * | 1988-11-02 | 1992-11-10 | International Business Machines Corporation | Combining switch for reducing accesses to memory and for synchronizing parallel processes |
US5258752A (en) * | 1988-11-25 | 1993-11-02 | Sumitomo Electric Industries, Ltd. | Broad band digital exchange |
US5123011A (en) * | 1989-09-27 | 1992-06-16 | General Electric Company | Modular multistage switch for a parallel computing system |
AU7499291A (en) * | 1990-03-05 | 1991-10-10 | Massachusetts Institute Of Technology | Switching networks with expansive and/or dispersive logical clusters for message routing |
US5216420A (en) * | 1990-07-12 | 1993-06-01 | Munter Ernst A | Matrix sorting network for sorting N inputs onto N outputs |
US5144293A (en) * | 1990-12-18 | 1992-09-01 | International Business Machines Corporation | Serial link communication system with cascaded switches |
US5321813A (en) | 1991-05-01 | 1994-06-14 | Teradata Corporation | Reconfigurable, fault tolerant, multistage interconnect network and protocol |
US5307413A (en) * | 1991-07-19 | 1994-04-26 | Process Software Corporation | Method and apparatus for adding data compression and other services in a computer network |
CA2113647A1 (en) * | 1991-08-05 | 1993-02-18 | Aloke Guha | Crossbar with return net for scalable self-routing non-blocking message switching and routing system |
US5701120A (en) * | 1992-12-13 | 1997-12-23 | Siemens Business Communication Systems, Inc. | Partitioned point-to-point communications networks |
JP3094849B2 (ja) * | 1995-06-21 | 2000-10-03 | 株式会社日立製作所 | 並列計算機およびその多段結合網 |
KR100278016B1 (ko) * | 1995-12-26 | 2001-01-15 | 윤종용 | 비동기 전송모드 교환시스템의 스위칭 장치 및 방법 |
US5867649A (en) * | 1996-01-23 | 1999-02-02 | Multitude Corporation | Dance/multitude concurrent computation |
US5787082A (en) * | 1996-05-13 | 1998-07-28 | Lockheed Martin Corporation | Identification of new and stale packets in switching networks used with scalable coherent interfaces |
US5790524A (en) * | 1996-05-13 | 1998-08-04 | Lockheed Martin Corporation | Detection of lost packets in switching networks used with scalable coherent interfaces |
US5826028A (en) * | 1996-05-13 | 1998-10-20 | Lockheed Martin Corporation | Initialization of switching networks for use with a scalable coherent interface |
US5787081A (en) * | 1996-05-13 | 1998-07-28 | Lockheed Martin Corporation | Allocation of node transmissions in switching networks used with scalable coherent interfaces |
FI103312B (fi) * | 1996-11-06 | 1999-05-31 | Nokia Telecommunications Oy | Kytkentämatriisi |
US6018523A (en) * | 1997-10-22 | 2000-01-25 | Lucent Technologies, Inc. | Switching networks having improved layouts |
US6301247B1 (en) * | 1998-04-06 | 2001-10-09 | Lockheed Martin Corporation | Pad and cable geometries for spring clip mounting and electrically connecting flat flexible multiconductor printed circuit cables to switching chips on spaced-parallel planar modules |
US6215786B1 (en) | 1998-04-06 | 2001-04-10 | Lockheed Martin Corporation | Implementation of multi-stage switching networks |
US6529983B1 (en) | 1999-11-03 | 2003-03-04 | Cisco Technology, Inc. | Group and virtual locking mechanism for inter processor synchronization |
US6418526B1 (en) | 1999-11-15 | 2002-07-09 | Ncr Corporation | Method and apparatus for synchronizing nodes in massively parallel systems |
US6745240B1 (en) | 1999-11-15 | 2004-06-01 | Ncr Corporation | Method and apparatus for configuring massively parallel systems |
US6412002B1 (en) | 1999-11-15 | 2002-06-25 | Ncr Corporation | Method and apparatus for selecting nodes in configuring massively parallel systems |
US6519697B1 (en) | 1999-11-15 | 2003-02-11 | Ncr Corporation | Method and apparatus for coordinating the configuration of massively parallel systems |
US6892237B1 (en) * | 2000-03-28 | 2005-05-10 | Cisco Technology, Inc. | Method and apparatus for high-speed parsing of network messages |
US6505269B1 (en) | 2000-05-16 | 2003-01-07 | Cisco Technology, Inc. | Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system |
US6836815B1 (en) * | 2001-07-11 | 2004-12-28 | Pasternak Solutions Llc | Layered crossbar for interconnection of multiple processors and shared memories |
US7177301B2 (en) * | 2001-12-27 | 2007-02-13 | Intel Corporation | Signal permuting |
US7474657B2 (en) * | 2002-04-30 | 2009-01-06 | University Of Florida Research Foundation, Inc. | Partitioning methods for dynamic router tables |
US7523218B1 (en) | 2002-04-30 | 2009-04-21 | University Of Florida Research Foundation, Inc. | O(log n) dynamic router tables for prefixes and ranges |
US20040018237A1 (en) * | 2002-05-31 | 2004-01-29 | Perricone Nicholas V. | Topical drug delivery using phosphatidylcholine |
WO2004006061A2 (en) * | 2002-07-03 | 2004-01-15 | University Of Florida | Dynamic ip router tables using highest-priority matching |
US7444318B2 (en) * | 2002-07-03 | 2008-10-28 | University Of Florida Research Foundation, Inc. | Prefix partitioning methods for dynamic router tables |
US7801156B2 (en) * | 2007-04-13 | 2010-09-21 | Alcatel-Lucent Usa Inc. | Undirected cross connects based on wavelength-selective switches |
US8065433B2 (en) | 2009-01-09 | 2011-11-22 | Microsoft Corporation | Hybrid butterfly cube architecture for modular data centers |
GB2474446A (en) * | 2009-10-13 | 2011-04-20 | Advanced Risc Mach Ltd | Barrier requests to maintain transaction order in an interconnect with multiple paths |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE381548B (sv) * | 1974-12-20 | 1975-12-08 | Ellemtel Utvecklings Ab | Anordning for omstyrning av veljarnet |
JPS51110642A (de) * | 1975-03-25 | 1976-09-30 | Kyonobu Kinoshita | |
US4004103A (en) * | 1975-10-15 | 1977-01-18 | Bell Telephone Laboratories, Incorporated | Path-finding scheme for a multistage switching network |
JPS58147573A (ja) * | 1982-02-27 | 1983-09-02 | Toagosei Chem Ind Co Ltd | 塩酸製造法 |
GB2130049B (en) * | 1982-10-21 | 1986-01-29 | Plessey Co Plc | Method of growth of a digital switchblock |
US4566007A (en) * | 1983-05-16 | 1986-01-21 | At&T Bell Laboratories | Rearrangeable multiconnection switching networks |
US4654842A (en) * | 1984-08-02 | 1987-03-31 | Coraluppi Giorgio L | Rearrangeable full availability multistage switching network with redundant conductors |
US4656622A (en) * | 1984-09-26 | 1987-04-07 | American Telephone And Telegraph Company | Multiple paths in a self-routing packet and circuit switching network |
US4752777A (en) * | 1985-03-18 | 1988-06-21 | International Business Machines Corporation | Delta network of a cross-point switch |
JPS61214694A (ja) * | 1985-03-18 | 1986-09-24 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | データ伝送のスイッチング装置 |
-
1987
- 1987-10-14 US US07/108,514 patent/US4833468A/en not_active Expired - Lifetime
-
1988
- 1988-10-14 EP EP89900410A patent/EP0334954B1/de not_active Expired - Lifetime
- 1988-10-14 WO PCT/US1988/003608 patent/WO1989003566A2/en active IP Right Grant
- 1988-10-14 JP JP88150264A patent/JPH02501183A/ja active Pending
- 1988-10-14 DE DE8989900410T patent/DE3880478T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0334954A1 (de) | 1989-10-04 |
EP0334954B1 (de) | 1993-04-21 |
WO1989003566A3 (en) | 1989-06-01 |
US4833468A (en) | 1989-05-23 |
DE3880478D1 (de) | 1993-05-27 |
WO1989003566A2 (en) | 1989-04-20 |
JPH02501183A (ja) | 1990-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3880478T2 (de) | Geschichtetes netz. | |
DE69514550T2 (de) | Adaptiver leitweglenkungsmechanismus für torusverbindungsnetzwerk | |
DE69804131T2 (de) | Mechanismus zum nachschlagen einer routertabelle | |
DE69422914T2 (de) | Prozessor-speicher-verbindungsnetzwerk mit verstellbarer latenz | |
DE3850258T2 (de) | Nichtblockierendes kopiernetz für mehradresspaketvermittlung. | |
DE68924934T2 (de) | Parallelsynchronisationstechnik. | |
DE68929317T2 (de) | Modulare Kreuzschienen zwischen Verbindungen in einem digitalen Rechner | |
DE69806798T2 (de) | Zuweisung von virtuellen kanälen in grossen torussystemen | |
DE69533230T2 (de) | Verfahren und vorrichtung zur verbesserung der fehlertoleranz eines netzwerkes | |
DE69619366T2 (de) | Sperr- und eurekasynchronisierungsarchitektur für multiprozessoren | |
DE69425605T2 (de) | Crossbarschalter für ein Multiprocessorsystem | |
DE3788649T2 (de) | Schnelle modulare Vermittlungseinrichtung für Durchschaltverkehr und paketvermittelten Verkehr. | |
DE3685599T2 (de) | Vermittlungssystem fuer datenuebertragung. | |
DE60006842T2 (de) | Multiprozessor-Node-Controller-Schaltung und Verfahren | |
EP0960374B1 (de) | Internes bussystem für dfps, sowie bausteine mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen, zur bewältigung grosser datenmengen mit hohem vernetzungsaufwand | |
DE69031368T2 (de) | Weglenkung von Nachrichtenpaketen | |
DE69029763T2 (de) | Weglenkung von Nachrichtenpaketen | |
DE3789625T2 (de) | Methode zur dynamischen Partitionierung von Parallelprozessoren. | |
DE68909426T2 (de) | Datenverarbeitung und -übertragung. | |
DE69014992T2 (de) | Gleichlaufende Mehrstufennetzwerk-Kontrollmethode. | |
DE602004012061T2 (de) | Vorrichtung und Verfahren zum Festlegen eines Routing-Weges zwischen Routern auf einem Chip | |
DE69220597T2 (de) | Feldprogrammierbares Funktionselement | |
DE69106384T2 (de) | Skalierbares parallel-vektorrechnersystem. | |
DE3851554T2 (de) | Steuerungsanordnung für gemeinschaftlichen Speicher. | |
DE69021790T2 (de) | Mehrstufiges Netz mit verteilter Steuerung. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |