-
Hintergrund der Erfindung
-
Die vorliegende Erfindung bezieht
sich im allgemeinen auf Systeme für paketvermittelte Kommunikationsnetzwerke
und genauer gesagt auf eine Vorrichtung und Verfahren, die von einer
Hochgeschwindigkeits-Mehrprozessor-Paketvermittlungskonfiguration
Gebrauch machen.
-
In den letzten Jahren wurden in großem Umfang
Telekommunikationsnetzwerk-Konfigurationen vorgeschlagen
und implementiert, um Kommunikation zwischen Daten behandelnden
und kommunizierenden Einrichtungen zur Verfügung zu stellen. Insbesondere
wurden Paketvermittelungssysteme entwickelt, um eine Nachfrage nach
Datenkommunikation in Netzwerken, die Zugang zu Hostcomputern bereitstellen,
zu niedrigen Kosten zu erfüllen.
-
In herkömmlichen paketvermittelten
Systemen werden digitale Datenzellen oder -pakete zu einem ausgewählten Ziel
von einem Terminal, einem Computer, einem Anwendungsprogramm oder
anderen Daten verarbeitenden Einrichtungen übermittelt. Das Ziel kann eine)
anderes) Daten verarbeitendes) oder kommunizierendes) Vorrichtung
oder System sein. In vielen paketvermittelten Systemen werden speziellen
Zwecken dienende Computer als paketvermittelnde Prozessoren verwendet – d. h.
Kommunikationsprozessoren, die dafür ausgelegt sind, Pakete durch
das Netzwerk zu lenken.
-
Eine Klasse von paketvermittelnden
Systemen verwendt vordefinierte Pfade durch das Netzwerk, in denen
von einer Mehrzahl von Benutzern erzeugte Pakete Verbindungs- und
Vermittlungseinrichtungen gemeinsam nutzen, während die Pakete durch das
Netzwerk laufen. In diesen Systemen müssen die Pakete in den Knoten
zwischen den Übertragungsverbindungen
gespeichert werden, bis die Pakete entlang einer geeigneten Zielverbindung
weitergeleitet werden können.
Diese Klasse eines Datenübertragungssystems
wird als virtuelle leitungs- oder verbindungsorientierte Übertragung
bezeichnet.
-
Eine weitere Klasse von paketvermittelnden Systemen
verwendet verbindungslose Übertragung, die
keine anfängliche
Verbindung für
einen Datenpfad durch das Netzwerk benötigt. In diesen Systemen werden
individuelle Datenzellen oder -pakete einschließlich einer Zieladresse von
der Quelle bis zum Ziel über
Zwischenknoten durch das Netzwerk geleitet.
-
Das virtuelle Verbindungs- bzw. Leitungssystem
wird in einem öffentlichen
Netzwerk, das von Telenet Communications Corporation aufgebaut bzw. eingerichtet
wurde, benutzt. Dieses System verwendet eine Zweistufen-Hierarchie,
um Datenpakete zu leiten bzw. zu lenken. Eine Stufe der Hierarchie
ist ein Netzwerk mit einer Mehrzahl von Hubs und Knoten, von denen
jeder einen Cluster von Switches bzw. Vermittlungsrechnern benutzt.
Die zweite Stufe enthält
kleinere Bereichs- bzw. Areal-Netzwerke mit Bündeln, Zugangsleitungen und
zu Clustern zusammengefaßte
Switches auf tieferer Ebene bzw. Schicht, die mit jedem Hub verbunden
sind. Das Telenet-System benutzt das X.75-Protokoll, das von dem
International Telegraph and Telephone Consultative Committee der
International Telecommunications Union (CCITT) als eine Schnittstelle
zum Verbinden von Compu tern mit einem paketvermittelten Netzwerk
vorgeschlagen wurde. Das Protokoll ist in einer dreischichtigen
Konfiguration strukturiert und die Schichten werden als die physikalische
bzw. Bitübertragungs-Schicht,
die Frame-Schicht und die Paket-Schicht bezeichnet. Leitpfade in
dem Telenet-System werden von einem paketvermittelnden Prozessor
bestimmt, der Routing-Tabellen benutzt, welche die verfügbaren Verbindungen
von jedem Hub angeben. Der herkömmliche
paketvermittelnde Prozessor, der in dem Telenet-System verwendet wird,
enthält
eine Hauptspeichereinheit, Leitungsprozessoren, die den Zugang zu
bzw. Zugriff auf Benutzerleitungen steuern, und eine zentrale Verarbeitungseinheit
(Central Processing Unit, CPU), die das Routing in der Paketschicht
steuert. Die CPU verwendet eine Tabelle von aktiven virtuellen Bündel-zu-Bündel-Verbindungen, um
die geeigneten Hubs und virtuellen Verbindungen zum Verbinden von
Benutzern, die einen Zugang anfordern, zu identifizieren bzw. zu
bestimmen. In dem Telenet-System muß jeder
Benutzer, der Daten über
das Netzwerk übermittelt,
zuerst seine Datenpakete über
den Bus in den Hauptspeicher schreiben. Der Leitungsprozessor, der
jedem Benutzer zugeordnet ist, bewirbt sich um Zugriff auf den Bus
entsprechend einer herkömmlichen
Tokenübergabe-Konfiguration
unter der Steuerung einer Vermittlungs-Einheit.
-
Eine weitere Form eines herkömmlichen
Paketvermittelungssystems mit virtuellen Verbindungen bzw. Leitungen
benutzt mehrere Busanforderungsketten mit unterschiedlichen, vordefinierten
Prioritäten.
Jede Kette in dem System verwendet ein Vermittlungsschema ähnlich dem
oben beschriebenen.
-
In noch einem weiteren Beispiel eines
herkömmlichen
Paketvermittelungssystems muß ein
Benutzer, der um Zugang zum Bus nachsucht, zuerst ein ausgewähltes Signalmuster
auf dem Vermittlungsbus übermitteln.
Einige Leitungseinheiten können
den Bus in dieser Konfiguration gleichzeitig betreiben bzw. verwenden.
Die betreibenden Leitungseinheiten lesen diese Signalmuster in regelmäßigen Abständen und
bestimmen auf der Grundlage der Prioritäten von anderen Anforderern,
ob ihre jeweiligen Anforderungen erhalten bleiben oder aufgegeben
werden. Diese Prozeß setzt
sich fort, bis eine Schiedsrichtereinheit einen zum Sieger erklärt.
-
Herkömmliche paketvermittelnde Systeme unterliegen
jedoch wesentlichen Einschränkungen bezüglich der
Kommunikationsbandbreite und Geschwindigkeit, die von ihren Busschiedsschemata und
der Erfordernis herrühren,
Pakete über
einen Bus mit begrenzter Bandbreite in den Hauptspeicher zu schreiben.
-
Zum Beispiel muß in Systemen, die Schiedsentscheidung
mittels Tokenübergabe
benutzen, eine anfordernde Einheit ihre Anforderung aufrecht erhalten
und untätig
bleiben, bis das Token entlang der Kette zu dieser Einheit übergeben
wird, auch wenn diese Einheit der einzige Prozessor ist, der Zugang zum
Bus anfordert. Zeit und Kapazität
des Kommunikationskanals werden vergeudet, während das Token von Benutzer
zu Benutzer übergeben
wird. Als ein Ergebnis sind gewisse herkömmliche Systeme von diesem
Typ auf eine Datenübertragungsrate
von nicht mehr als ungefähr
164 Megabits/Sekunde beschränkt.
-
Die Europäische Patentanmeldung EP-A-0.322.117
beschreibt ein Mehrprozessorsystem zur digitalen Datenverarbeitung,
das eine Mehrzahl von Verarbeitungszellen umfaßt, die in einer Hier archie
von Ringen angeordnet ist. Das System ordnet selektiv Speicher zu
und bewegt als Reaktion auf Zugangs- bzw. Zugriffsanforderungen,
die von den Zellen erzeugt werden, exklusive Datenkopien von Zelle
zu Zelle. Routingelemente werden verwendet, um selektiv Daten-Zugriffsanforderungen,
-Aktualisierungen und -Übertragungen
auf den Ringen rundzusenden.
-
Ein Ziel der Erfindung ist es, verbesserte
paketvermittelnde Verfahren und Vorrichtungen zur Verfügung zu
stellen, die verbesserte Paketübertragungsraten
ermöglichen.
-
Zusammenfassung
der Erfindung
-
Entsprechend einem Aspekt der Erfindung wird
eine digitale paketvermittelnde Vorrichtung zum selektiven Vermitteln
digitaler Signalpakte zwischen einer Menge bzw. einem Satz von Knoten
vorgesehen, wobei diese Pakete entsprechend einem ausgewählten Protokoll
konfiguriert werden, das mindestens ein Paketschicht-Protokoll und
ein Frameschicht-Protokoll umfaßt.
Die Vorrichtung enthält
eine Mehrzahl von Verarbeitungszellen, von denen jede mindestens
eine Verarbeitungseinheit enthält,
die an ein zugeordnetes, inhaltsadressierbares Speicherelement zum
Speichern informationsdarstellender, digitaler Signale angeschlossen
sind. Eine solche Verarbeitungszelle enthält ferner eine Einrichtung
zur Paketvermittlung und das Speicherelement dient dazu, mindestens
eine Empfangswarteschlange und mindestens eine Übertragungswarteschlange bereitzustellen.
Die Einrichtung zur Paketvermittlung umfaßt eine Einrichtung zur Verarbeitung
von empfangenen Paketen, der dazu dient, Verarbeitung in der Frameschicht
bzw. auf Frameniveau auf einem von mindestens einem Knoten empfangenen
Paket durchzuführen
und das Paket selektiv in einer Empfangswarteschlange oder einer Übertragungswarteschlange
zu speichern, und eine Einrichtung zur Verarbeitung von zu übertragenden
Paketen, der dazu dient, auf ein Paket in der Übertragungswarteschlange zuzugreifen,
darauf Verarbeitung in der Frameschicht durchzuführen und das Paket zu mindestens einem
Knoten zu übertragen.
-
Entsprechend einem anderen Aspekt
der Erfindung ist ein Verfahren zum Betreiben einer digitalen Paketvermittlungsvorrichtung
zum selektiven Vermitteln von Paketen zwischen einer Menge von Knoten
vorgesehen, wobei die Pakete in Übereinstimmung
mit einem ausgewählten
Protokoll eingerichtet sind, das mindestens ein Paketschicht-Protokoll
und ein Frameschicht-Protokoll umfaßt, wobei die Vorrichtung eine
Mehrzahl von Verarbeitungszellen enthält, von denen jede mindestens
eine Verarbeitungseinheit enthält,
die an ein zugeordnetes, inhaltsadressierbares Speicherelement zum
Speichern informationsdarstellender, digitaler Signale angeschlossen
ist, wobei eine solche Verarbeitungszelle ferner einen Mechanismus
zur Paketvermittlung einschließt und
das Speicherelement dazu dient, mindestens eine Empfangswarteschlange
und mindestens eine Übertragungswarteschlange
bereitzustellen. Das Verfahren umfaßt einen Mechanismus zur Verarbeitung
von empfangenen Paketen, der Verarbeitung in der Frameschicht bzw.
auf Frameniveau auf einem von mindestens einem Knoten empfangenen
Paket durchführt
und das Paket selektiv in der Empfangswarteschlange oder in der Übertragungswarteschlange
speichert, und einen Mechanismus zur Verarbeitung von zu übertragenden
Paketen, der auf ein Paket in der Übertragungswarteschlange zugreift,
darauf eine Verarbeitung in der Frameschicht durchführt und
das Paket zu mindestens einem Knoten überträgt.
-
Eine Ausführungsform der Erfindung kann Paketübertragung
mit hoher Bandbreite zu gewährleisten.
Mehrere anfordernde Prozessoren erhalten im Wesentlichen einen sofortigen
Zugang zu dem paketvermittelten Netzwerk. Ein großer Bereich
von existierenden und vorgeschlagenen Paketprotokollen kann behandelt
werden. Im Wesentlichen kann die gleichzeitige Behandlung von Paketvermittlungsoperationen
und Anwendungsprogrammprozessen erreicht werden.
-
Eine Ausführungsform der Erfindung stellt daher
digitale Paketvermittlungsverfahren und -vorrichtungen zum selektiven
Vermitteln digitaler Signalpakete zwischen einer Menge von Knoten
zur Verfügung.
-
Die Erfindung enthält mehrere
Verarbeitungszellen, von denen jede einen Prozessor hat, der an
ein zugeordnetes, inhaltsadressierbares Speicherelement angeschlossen
ist. Paketprozessoren, die elektrisch an die Speicherelemente angeschlossen
sind, empfangen selektiv Pakete von den Knoten und übermitteln
die Pakete in mindestens eines der mehreren Speicherelemente; oder
sie empfangen Pakete aus den Speicherelementen und übermitteln die
Pakete an mindestens einen der Knoten.
-
Speicherverwaltungselemente, die
an die Speicherelemente angeschlossen sind, können vorgesehen werden, um
auf ein oder mehrere der informationsdarstellenden Signale zuzugreifen,
die in den mehreren Speicherelementen gespeichert sind. Die Prozessoren
in einer Zelle können
Elemente zur Zugriffsanforderung zum Anfordem von Zugriff auf ein informationsdarstellendes
Signal enthalten. Die Elemente zur Zugriffsanforderung können auch
ein Signal zum Anfordern der Besitzereigenschaft erzeugen, um Zugriff
mit Priorität
auf ein informationsdarstellendes Signal anzufordern.
-
Das Speicherelement, das dem anfordernden
Prozessor zugeordnet ist, kann Steuerelemente enthalten, um selektiv
das Signal zur Zugriffsanforderung an das Speicherverwaltungselement
zu übermitteln.
Die Speicherverwaltungselemente können auch Speicherkohärenzelemente
enthalten. Diese Kohärenzelemente
reagieren auf bestimmte Signale zum Anfordern der Besitzereigenschaft,
indem sie physikalischen Speicherplatz exklusiv in dem Speicherelement,
das dem anfordernden Prozessor zugeordnet ist, reservieren bzw.
zuteilen und das angeforderte informationsdarstellende Signal speichern.
-
Eine Mehrzahl von Informationsübertragungsdomänen kann
vorgesehen werden einschließlich
einer ersten Domäne
mit einer Mehrzahl von Domänen(0)-Abschnitten
bzw. -Segmenten. Jedes Domänen(0)-Segment
enthält
ein zugeordnetes Buselement und eine erste Mehrzahl von Verarbeitungszellen,
die mit dem Buselement verbunden sind, um informationsdarstellende
Signale zu übertragen.
Jede Zelle hat einen Zentralprozessor und ein zugeordnetes, inhaltsadressierbares
Speicherelement zum Speichern von informationsdarstellenden Signalen. Die
Speicherelemente ihrerseits enthalten Schnittstellenelemente, die
mit dem zugeordneten Zentralprozessor und mit dem Buselement zum Übertragen von
informationsdarstellenden Signalen verbunden sind. Die Zellen sind
so angeordnet bzw. eingerichtet, daß die Übertragung von informationsdarstellenden Signalen
zwischen den zugeordneten Zentralprozessoren nur durch das entsprechende
Speicherelement stattfindet.
-
Ein Domänen(1)-Segment kann
ein zugeordnetes Buselement und eine Mehrzahl von Routingelementen
enthalten. Jedes Routingelement ist mit dem Buselement, das dem
Domänen(1)-Segment zugeordnet
ist, und mit dem Buselement, das einem der Domänen(0)-Segmente zugeordnet
ist, verbunden, um informationsdarstellende Signale zwischen dem
Domänen(1)-Segment
und dem zugeordneten Domänen(0)-Segment
zu übertragen.
Die Verarbeitungszellen, die jedem der Domänen(0)-Segmente zugeordnet
sind, können
Signale mit den Verarbeitungszellen, die dem Rest der Domänen(0)-Segmente
zugeordnet sind, nur durch das Domänen(1)-Segment übertragen.
-
Die miteinander verbundenen Prozessoren, die
oben beschrieben sind, können
einen ersten Prozessor enthalten, der an mindestens ein inhaltsadressierbares
Speicherelement angeschlossen ist, um normalerweise einen Befehlsstrom
zu verarbeiten, der Befehle von einer ersten Befehlsquelle enthält; und
mindestens einer der anderen Prozessoren enthält einen Paketprozessor zur
bidirektionalen Paketübertragung
zwischen den Knoten und den Speicherelementen. Die Paketprozessoren
beinhalten Einfügeelemente,
um eine oder mehrere Einfügungs-Befehle
einzufügen,
die durch den ersten Prozessor in derselben Weise zu verarbeiten
sind wie die Befehle von der ersten Befehlsquelle, und ohne deren
Verarbeitungsreihenfolge zu berühren
bzw. zu beeinflussen.
-
Mindestens eines der Speicherelemente kann
eine Datenunter- bzw.-teilseite enthalten, die eines oder mehrere
informationsdarstellende Signale beinhaltet und mindestens einen
Teil einer Datenseite bildet. Mindestens einer der Zentralprozessoren enthält Zugriffsanforderungselemente
zum Erzeugen eines Zugriffsanforderungssignals, um Zugriff auf eine
Datenteilseite anzufordern, die in den Speicherelementen gespeichert
ist. Das Speicherverwaltungselement kann auf bestimmte Zugriffsanforderungssignale
reagieren, indem es innerhalb des Speicherelementes, das dem anfordernden
Zentralprozessor zugeordnet ist, physikalischen Speicherplatz für die Datenseite
zuteilt bzw. reserviert, die der angeforderten Datenteilseite zugeordnet
ist, und die angeforderte Datenteilseite darin speichert. Die Speicherverwaltungselemente
enthalten ferner Freigabeelemente, um physikalischen Speicherplatz
freizugeben, der für
eine ausgewählte
Datenseite in den Speicherelementen zugeteilt bzw. reserviert ist.
Diese Freigabe wird vor oder im Wesentlichen gleichzeitig mit dem
Reservieren von physikalischem Speicherplatz für die Datenseite bewirkt, die
der angeforderten Datenteilseite zugeordnet ist.
-
Genauso wie die oben beschriebene,
mehrfache Domänenkonfiguration
kann ein ausgewählter erster
Prozessor normalerweise einen Befehlsstrom verarbeiten, der Befehle
von einer ersten Befehlsquelle enthält. Mindestens einer der anderen,
miteinander verbundenen Prozessoren kann einen Paketprozessor zur
bidirektionalen Paketübertragung
zwischen den Knoten und den Speicherelementen enthalten. Dieser
Paketprozessor enthält
Einfügeelemente,
um eine oder mehrere Einfügungs-Befehle einzufügen, die
durch den ersten Prozessor in derselben Weise zu verarbeiten sind
wie die Befehle von der ersten Befehlsquelle, und ohne deren Verarbeitungsreihenfolge
zu berühren
bzw. zu beeinflussen.
-
Es kann mindestens eine entfernte
Verarbeitungszelle geben, wobei jede entfernte Verarbeitungszelle
einen Zentralprozessor enthält,
der zur Informationsübertragung
an ein zugeordnetes Speicherelement angeschlossen ist. Ein entferntes Schnittstellenmodul,
das an die entfernte Zelle angeschlossen ist, überträgt informationsdarstellende
Signale zwischen dem Speicherelement, das der entfernten Verarbeitungszelle
zugeordnet ist, und den Speicherelementen, die den anderen Verarbeitungszellen
zugeordnet sind. Die entfernte Zelle kann sich an einem Punkt befinden,
der physikalisch entfernt bzw. abgesetzt von den anderen Zellen
ist, und das Schnittstellenmodul kann Elemente zum Übermitteln des
informationsdarstellenden Signals zwischen dem physikalisch entfernten
Punkt und anderen Zellen enthalten. Genauer gesagt kann das entfernte Schnittstellenmodul
Glasfaserübertragungsmedien zum Übertragen
von informationsdarstellenden Signalen zwischen der entfernten Zelle
und den anderen Zellen enthalten.
-
Die Paketprozessoren können Empfangselemente
für Pakete
in elektrischer Kommunikation mit mindestens einem der Knoten zum
Empfang der digitalen Signalpakete von den Knoten enthalten; und Paketaufspaltungselemente
in elektrischer Kommunikation mit den Empfangselementen, um jedes
von den Knoten empfangene, digitale Signalpaket in einen Kopfzeilenanteil
(Headeranteil) und einen Datenanteil zu zerlegen.
-
Die Paketprozessoren können auch
Empfangspufferelemente für
Pakete enthalten, die ein Pufferelement in elektrischer Kommunikation
mit den Paketaufspaltungselementen beinhalten, um die von den Paketaufspaltungselementen
zerlegten digitalen Signalpakete zu speichern. Die Paketprozessoren enthalten
ferner Elemente zur Frameverarbeitung in elektrischer Kommunikation
mit den Empfangspufferelementen für Pakete und mit den Speicherelementen.
Diese Frameprozessoren holen die digitalen Signalpakete aus den
Empfangspufferelementen für Pakete,
führen
eine ausgewählte
Verarbeitung auf den digitalen Signalpaketen aus und übermitteln
die digitalen Signalpakete an eine Mehrzahl von Speicherelementen.
Die Paketprozessoren enthalten darüber hinaus Fehlerprüfelemente,
um die empfangenen digitalen Signalpakete auf Fehler zu überprüfen, und
zum Speichern der Ergebnisse der Prüfoperation zusammen mit den
Kopfzeilenanteilen der empfangenen digitalen Signalpakete.
-
Die Zellen können Empfangswarteschlangenelemente
enthalten, um mindestens eine Empfangswarteschlange in den Speicherelementen
zu speichern. Die Empfangswarteschlange beinhaltet eine Datenstruktur,
die digitale Signalpakete enthält, die
von den Paketprozessoren empfangenen wurden. Jeder beliebige von
den Verarbeitungszellen kann ausgewählte Pakete aus der Empfangswarteschlange
zur Verarbeitung holen. Die Zellen haben auch Übertragungswarteschlangenelemente,
um mindestens eine Übertragungswarteschlange
in den Speicherelementen zu speichern. Die Übertragungswarteschlange, die
mindestens einem der Knoten entspricht, beinhaltet eine Datenstruktur,
die digitale Signalpakete enthält,
die an mindestens einen ausgewählten
von den Knoten zu übermitteln
sind.
-
Die Zellen beinhalten auch Empfangswarteschlangen-Paketübertragungselemente
in Kommunikation mit den Empfangswarteschlangenelementen und den Übertragungswarteschlangenelementen, um
selektiv ausgewählte
digitale Signalpakete aus den Empfangswarteschlangen an mindestens
eine ausgewählte Übertragungswarteschlange
als Reaktion auf Steuersignale, die von der Mehrzahl der Prozessoren
erzeugt werden, zu übertragen.
-
Die Frameprozessoren können Elemente zum
Laden von ausgewählten
von den digitalen Signalpaketen in die Empfangswarteschlangen enthalten.
Die Frameprozessoren können
auch Direktpaketübertragungselemente
in elektrischer Kommunikation mit den Empfangspufferelementen für Pakete enthalten,
die auf die Kopfzeilenanteile der digitalen Signalpakete reagieren,
um ausgewählte
digitale Signalpakete von den Empfangspufferelementen für Pakete
zur Übertragungswarteschlange
zu übertragen.
Die Frameprozessoren können
auch Einheiten enthalten, die an die Übertragungswarteschlangenelemente
angeschlossen sind, um als Reaktion auf den Kopfzeilenanteil der
digitalen Signalpakete Pakete aus der Übertragungswarteschlange zu
holen. Diese Pakete werden in Übertragungspufferelementen
für Pakete
gespeichert und werden anschließend durch
die Paketübertragungselemente
an ausgewählte
Knoten übertragen.
-
Anwendungsdienst-Warteschlangenelemente
können
in mindestens einer der Verarbeitungszellen vorgesehen werden, um
eine Anwendungsdienst-Warteschlange zu speichern. Diese Warteschlange
beinhaltet eine Datenstruktur, die Pakete enthält, die durch eine Verarbeitungszelle
entsprechend mindestens einem Anwendungsprogramm zu bedienen sind.
Pakete können
aus den Empfangswarteschlangen in die Anwendungsdienst-Warteschlange
als Reaktion auf Steuersignale geladen werden, die von den Prozessoren
entsprechend den Anwendungsprogrammen erzeugt werden.
-
Anwendungsabschluß-Warteschlangenelemente können vorgesehen
werden, um eine Anwendungsabschluß-Warteschlange zu speichern.
Diese Warteschlange beinhaltet eine Datenstruktur, die Pakete enthält, die
von den Verarbeitungszellen entsprechend dem Anwendungsprogramm
erzeugt werden. Übertragungselemente
werden zum Laden von ausgewählten
Paketen aus der Anwendungsabschluß-Warteschlange in die Übertragungswarteschlange
vorgesehen.
-
Die Erfindung wird als nächstes in
Verbindung mit gewissen anschaulichen Ausführungsformen beschrieben; es
sollte jedoch den Fachleuten auf diesem Gebiet klar sein, daß verschiedene
Modifikationen, Ergänzungen
und Auslassungen innerhalb des Anwendungs- bzw. Schutzbereiches
der Erfindung vorgenommen werden können.
-
Kurzbeschreibung der Zeichnungen
-
Beispielhafte Ausführungsformen
der Erfindung werden im Folgenden nur als Beispiel unter Bezug auf
die begleitenden bzw. beigefügten
Zeichnungen beschrieben, von denen:
-
1 ein
schematisches Diagramm ist, das eine paketvermittelnden Netzwerkkonfiguration
darstellt, die gemäß der Erfindung
aufgebaut ist;
-
2 ein
schematisches Diagramm ist, das eine herkömmliche Kommunikationsarchitektur
mit OSI-Schichten darstellt;
-
3 ein
schematisches Diagramm ist, das eine Mehrprozessorstruktur darstellt,
die in dem paketvermittelnden System von 2 verwendet wird;
-
4 eine
beispielhafte Verarbeitungszelte in der Mehrprozessorstruktur von 3 darstellt; die 5A–5C weitere Ausführungsformen einer Verarbeitungszelle
darstellen, die gemäß der Erfindung aufgebaut
sind; die 5D und 5E Details der Verarbeitungszellen
zeigen, die Paketverarbeitungseinheiten (Packet Processing Units,
PSUs) gemäß der Erfindung
enthalten;
-
6 den
Pakeffluß in
dem System von 2 darstellt; 7 Details der PSUs aus den 5D und 5E liefert;
-
8 die
Paketübertragung
zur Empfangswarteschlange in der PSU von 7 darstellt; 9 die Paketübertragung zur Übertragungswarteschlange
zeigt; und
-
10 die Übertragung
von Paketen von der Übertragungswarteschlange
in den Übertragungs-FIFO-Puffer
darstellt.
-
Beschreibung
der dargestellten Ausführungsformen
-
Überblick
-
1 stellt
ein Paketvermittlungssystem 100 gemäß der Erfindung dar. Das System 100 verbindet selektiv
eine Mehrzahl von Benutzern untereinander, einschließlich der
Datenbehandlungseinrichtungen 110, die durch ein lokales
Bereichsnetzwerk (Local Area Network, LAN) verbunden sind, der Telekommunikationseinrichtungen 112 und
der Anwendungsprogramme, die auf 101.1, 101.2, ..., 101.N arbeiten bzw.
betrieben werden. Systembenutzer können auch andere Informationsanbieter
und Träger
für den Austausch
bzw. die Kommunikation 115 umfassen. Das System beinhaltet
eine Mehrprozessor-Paketvermittlungsvorrichtung 10 mit
einer Mehrzahl von Verarbeitungszellen 18, um den Betrieb
des Paketvermittlungssystems 100 in der unten beschriebenen Art
zu steuern.
-
Die in 1 abgebildeten
Benutzer kommunizieren mit der Mehrprozessor-Paketvermittlungsvorrichtung 10 über ein
Vermittlungssystem oder -netzwerk 116. Dieses Vermittlungssystem
kann in der Ausgestaltung herkömmlich
sein und kann zum Beispiel die Hubs und Verbindungen eines herkömmlichen
Telenet-Vermittlungsnetzwerks enthalten. Wenn ein Benutzer Daten übermittelt,
verarbeitet das Vermittlungssystem 116 die Daten in einer
bekannten Weise, um digitale Signalpakete zu erzeugen, die entsprechend
den herkömmlichen
Protokollen aufgebaut sind. Die Pakete können entlang der Leitungen 118 zu
physikalischen Schnittstellenmodulen 120 geleitet werden.
Alternativ können
Pakete vor dem Empfang durch ein physikalisches Schnittstellenmodul 120 zu
einer Leitungsvermittlung bzw. -umschaltung 119 geleitet werden.
Die physikalischen Schnittstellenmodule 120 verarbeiten
die empfangenen Pakete, wie unten in Verbindung mit 6 diskutiert, und übermitteln die Pakete zu den
Verarbeitungszellen 18 der Paketvermittlungsvorrichtung 10.
Die dargestellte Ausführungsform
enthält
einen Frame-Multiplexer/Demultiplexer 122, der zwischen einem physikalen
Schnittstellenmodul 120 und einer Verarbeitungszelle 18 zwischengeschaltet
ist, um eine weitere Verarbeitung der Signalpakete in einer unten
diskutierten Weise auszuführen.
-
Die Paketvermittlungsvorrichtung 10 empfängt von
den Benutzern erzeugte Signalpakete – einschließlich der Anwendungsprogrammen 101 – und überträgt jedes
Paket an die ausgewählten
Endbenutzer wie nachfolgend im Zusammenhang mit den Figuren beschrieben
wird. Die Übertragung
der Pakete von der Paketvermittlungsvorrichtung 10 zu den
Benutzern wird in einer Art und Weise analog zu der beim Paketempfang
bewerkstelligt.
-
Die in 1 dargestellte
Paketvermittlungsvorrichtung 10 kann in Verbindung mit
dem existierenden ISO-Referenzmodell für die Verbindung offener Systeme
(Open Systems Interconnection, OSI) arbeiten bzw. betrieben werden.
Das ISO-Referenzmodell, dargestellt in 2, wurde zu einem Standard für in Schichten
angeordnete bzw. strukturierte Kommunikationsarchitekturen.
-
Eine detaillierte Beschreibung des
ISO-Referenzmodells und der zugrundeliegenden Protokolle ist in
Schwartz, Telecommunication Networks: Protocols, Modeling and Analysis,
Addison-Wesley,
1987, zu finden, hier durch die Bezugnahme einbezogen.
-
Die Paketvermittlungsvorrichtung
kann in Verbindung mit den vorgeschlagenen Standards zum integrierten,
digitalen Breitband-Netzwerk (Broadband Integrated Digital Network,
B-ISDN) und zum synchronen, optischen Netzwerk (Synchronous Optical
Network, SONET) betrieben werden. B-ISDN ist ein aufkommender Standard für digitale
Hochgeschwindigkeitskommunikation.
-
Zwei grundsätzliche Ansätze, die für das Multiplexing und das
Vermitteln bei B-ISDN veröffentlicht
wurden, sind der synchrone Übertragungsmodus
(Synchronous Transfer Mode, STM) und der asynchrone Übertragungsmodus
(Asynchronous Transfer Mode, ATM). Synchrones Multiplexing mit Zeitaufteilung
(Synchronous Time Division Multiplexing) und Technologien zur Leitungsvermittlung
(Circuit Switching) basieren auf STM-Prinzipien. Asynchrones Multiplexing
mit Zeitaufteilung (Asynchronous Time Division Multiplexing) und
Hochgeschwindigkeits-Paketvermittlung (High-Speed Packet Switching) basieren auf
ATM-Prinzipien.
-
Trotz der Fortschritte in jüngster Zeit
kann die Leitungsvermittlungstechnologie Verkehrsaufkommen mit plötzlichen
Lastspitzen bzw. "bursts" nicht effizient
transportieren. Ressourcen in der Vermittlungsherstellung bzw. in
dem Vermittlungssystem werden vergeudet, wenn es keine Information
zu übertragen
gibt. Hochgeschwindigkeits-Paketvermittlung oder ATM-Technik beseitigt
diese Einschränkungen,
da die Bandbreite auf der Grundlage von mehreren bzw. mehrfachen
Benutzeranfragen dynamisch reserviert bzw. zugeteilt wird. Eine
weitere wesentliche Eigenschaft der Erfindung ist daher die Fähigkeit,
Hochgeschwindigkeits-ATM-Techniken zu unterstützen.
-
In dem ISO-Modell und ähnlichen
Architekturen ist implizit die Erkenntnis enthalten, daß das Kommunikationsproblem
im Netzwerk in zwei Komponenten unterteilt werden kann. Die erste
ist mit dem Kommunikationsnetzwerk selbst verknüpft. Daten die durch einen
Endbenutzer an ein Netzwerk geliefert werden, müssen beim Ziel in einer richtigen und
zeitgerechten Art und Weise ankommen. Die zweite Komponente des
Kommunikationsproblems ist die Notwendigkeit sicherzustellen, daß die Daten, die
schlußendlich
an den Endbenutzer am Ziel ausgeliefert werden, (wieder) erkennbar
und in der richtigen Form für
ihren korrekten Gebrauch sind.
-
Das OSI-Referenzmodell umfaßt sieben Schichten,
die in 2 dargestellt
sind. Die untersten drei Schichten, 201–203, umfassen die Netzwerkstrukturen
und Dienste, die sich mit dem ersten Teil des Kommunikationsproblems
befassen. Die oberen vier Schichten, 204–207, umfassen die Komponenten
und Operationen, die Dienste für
die Endbenutzer zur Verfügung
stellen. Diese Schichten sind daher eher den Endbenutzern als den
Netzwerken zugeordnet.
-
Die Datensicherungs- bzw. Data-Link-Schicht 202 und
die Bitübertragungs-
bzw. physikalische Schicht 201 stellen idealerweise eine fehlerfreie
Kommunikationsverbindung zwischen zwei Knoten in einem Netzwerk
bereit. Die Aufgabe der Bitübertragungsschicht 201 ist
es sicherzustellen, daß ein
Bit, welches in das physikalische Medium an einem Ende der Verbindung
eintritt, am Bestimmungs- bzw. Zielende ankommt. Unter Verwendung
dieses zugrundeliegenden Bittransportdienstes ist der Zweck des
Datensicherungs- bzw. Data-Link-Protokolls – das auch als Frameschichtprotokoll
bzw. als Protokoll auf Frameniveau bezeichnet wird – sicherzustellen,
daß Blöcke von
Daten ohne Fehler über
eine Verbindung übertragen
werden. Diese Datenblöcke
werden auch als Frames bzw. Rahmen bezeichnet.
-
Das Ziel der Vermittlungs- bzw. Netz(werk)schicht
203, die auch als Paketschicht bzw. -niveau bekannt ist, ist es,
die Daten durch das Netzwerk oder, wenn nötig, durch mehrere Netzwerke
von den Quell- bzw. Ursprungsknoten zu den Ziel- bzw. Bestimmungsknoten
zu leiten bzw. zu lenken. Diese Schicht sorgt auch für Fluß- oder
Stau- bzw. Verstopfungssteuerung, um Netzwerkressourcen wie Puffer
in Knoten und Übertragungsverbindungen
vor dem Vollfüllen
zu bewahren, was möglicherweise
zu einer Verklemmungs- bzw. Deadlock-Bedingung führen könnte. Beim Ausführen dieser
Funktionen benutzt die Vermittlungsschicht die Dienste der darunterliegenden
Datensicherungsschicht, um sicherzustellen, daß ein Block von Daten – d. h.
ein Paket – das
an einem Ende einer Verbindung entlang einer Route durch das Netzwerk übertragen
wird, an seinem Ziel ohne Fehler ankommt.
-
Diese Netzwerkziele und Paketvermittlungsaufgaben
werden vorteilhafterweise dadurch erfüllt, daß die Mehrfachzellenkonfiguration
der Paketvermittlungsvorrichtung 10 ausgenutzt wird, die
in 1 dargestellt ist.
Insbesondere kann, auch wenn die Mehrprozessorstruktur 10 in 1 nur einen Ring oder eine
Domäne
von Verarbeitungszellen enthält, die
Struktur erweitert werden, um eine Mehrzahl von Domänen zu umfassen,
wie in 3 angegeben.
-
3 stellt
eine Mehrprozessorstruktur 10 dar, die in Verbindung mit
einer Paketvermittlungspraktik der Erfindung benutzt werden kann.
Eine Struktur von dieser Art ist in EP-A-0.322.117 weiter beschrieben.
-
Die dargestellte Mehrprozessorstruktur 10 enthält drei
Informationsübertragungsdomänen: Domäne(0),
Domäne(1)
und Domäne(2).
Jede Informationsübertragungsdomäne beinhaltet
ein oder mehrere Domänensegmente,
die durch ein Buselement und eine Mehrzahl von Zellenschnittstellenelementen
gekennzeichnet sind. Im Besonderen enthält die Domäne(0) des dargestellten
Systems 10 sechs Segmente, bezeichnet mit 12A, 12B, 12C, 12D, 12E bzw. 12F. Ähnlich enthält die Domäne(1)
die Segmente 14A und 14B, während Domäne(2) das Segment 16 enthält.
-
Jedes Segment der Domäne(0),
d. h. die Segmente 12A, 12B, ... 12F,
beinhaltet eine Mehrzahl von Verarbeitungszellen. Zum Beispiel enthält wie in
der Abbildung dargestellt das Segment 12A die Zellen 18A, 18B und 18C;
das Segment 12B enthält die
Zellen 18D, 18E und 18F, und so weiter.
Jede dieser Zellen beinhaltet eine zentrale Verarbeitungseinheit
und ein Speicherelement, die durch einen in der Zelle gelegenen
Prozessorbus (nicht abgebildet) miteinander verbunden sind. Im Einklang
mit der bevorzugten Praktik der Erfindung speichert das Speicherelement,
das in jeder Zelle enthalten ist, alle Steuer- und Datensignale,
die von der ihm zugeordneten zentralen Verarbeitungseinheit benutzt
werden.
-
Wie weiter dargestellt kann sich
jedes Domänen(0)-Segment
dadurch auszeichnen, daß es
ein Buselement besitzt, welches einen Kommunikationspfad zum Übertragen
von informationsdarstellenden Signalen zwischen den Zellen des Segmentes
bereitstellt. Daher ist das dargestellte Segment 12A durch den
Bus 20A gekennzeichnet, Segment 12B durch 20B,
Segment 12C durch 20C, und so weiter. Wie in EP-A-0.322.117
genauer beschrieben, werden die informationsdarstellenden Signale
zwischen den Zellen 18A, 18B und 18C des
beispielhaften Segments 12A mittels der Speicherelemente
weitergereicht, die jeder dieser Zellen zugeordnet ist. Spezifische Schnittstellen
zwischen diesen Speicherelementen und dem Bus 20A werden
von den Zellenschnittstellenelementen 22A, 22B und 22C wie
abgebildet bereitgestellt. Ähnlich
direkte Kommunikationspfade werden in den Segmenten 12B, 12C und 12D zwischen
ihren jeweiligen Zellen 18D, 18E, ... 18R durch die
Zellenschnittstellenelemente 22D, 22E, ... 22R wie
dargestellt eingerichtet.
-
Wie in der Abbildung dargestellt
und oben angemerkt enthält
von den übrigen
Informationsübertragungsdomänen, d.
h. Domäne(1)
und Domäne(2), jede
ein oder mehrere entsprechende Domänensegmente. Die Anzahl von
Segmenten in jedem aufeinander folgenden Segment ist dabei kleiner
als die Anzahl von Segmenten in dem vorangehenden. Folglich sind
die zwei Segmente 14A und 14B von Domäne(1)
weniger als die sechs 12A, 12B, ... 12F von Domäne(0),
während
die Domäne(2),
die nur das Segment 16 besitzt, die wenigsten von allen
enthält.
Jedes der Segmente in Domäne(1)
und Domäne(2), den "höheren" Domänen,
enthält
ein Buselement zum Übertragen
von informationsdarstellenden Signalen innerhalb des jeweiligen
Segmentes. In der Abbildung enthalten die Domänen(1)-Segmente 14A und 14B die
Buselemente 24A bzw. 24B, während das Domänen(2)-Segment
16 das Buselement 26 enthält.
-
Die Segmentbusse dienen zur Übertragung von
Information zwischen den Elementen der Komponenten jedes Segmentes,
das heißt
zwischen den mehreren Routingelementen der Domäne in dem Segment. Die Routingelemente
selbst stellen einen Mechanismus zum Übertragen von Information zwischen
einander zugeordneten Segmenten aufeinander folgender Domänen bereit.
Zum Beispiel bieten die Routingelemente 28A, 28B und 28C einen
Mechanismus zum Übertragen
von Information zu und von dem Domänen(1)-Segment 14A und
jedem der Domänen(0)-Segmente
12A, 12B bzw. 12C. In ähnlicher
Weise bieten die Routingelemente 28D, 28E und 28F einen
Mechanismus zum Übertragen
von Information zu und von dem Domänen(1)-Segment 14B und
jedem der Domänen(0)-Segmente 12D, 12E bzw. 12F.
Ferner stellen die Routingelemente 30A und 30B der
Domäne
einen Informationsübertragungspfad
zwischen dem Domänen(2)-Segment 16
und den Domänen(1)-Segmenten 14A und 14B bereit,
wie abgebildet.
-
Die Routingelemente der Domäne bilden eine
Schnittstelle zwischen ihren jeweiligen Segmenten mittels gegenseitiger
Zusammenschaltungen bzw. Kopplungen an den Buselementen. Demnach bildet
das Routingelement 28A der Domäne eine Schnittstelle zwischen
den Buselementen 20A und 24A in den Zellenschnittstelleneinheiten 32A bzw. 34A,
während
das Element 28B eine Schnittstelle zwischen den Buselementen 20B und 24B in
den Zellenschnittstelleneinheiten 32B bzw. 34B bildet, und
so weiter. In ähnlicher
Weise bilden die Routingelemente 30A und 30B Schnitt stellen
zwischen ihren jeweiligen Bussen, d. h. 24A, 24B und 26,
in den Zellenschnittstelleneinheiten 36A, 36B, 38A und 38B, wie
abgebildet.
-
3 stellt
ferner einen bevorzugten Mechanismus zum untereinander Verbinden
von entfernten Domänen
und Zellen in einem digitalen Datenverarbeitungssystem dar. Die
Zelle 18R, die sich an einem Punkt, physikalisch enfernt
von dem Bussegment 20F befindet, kann mit diesem Bus und
den ihm zugeordneten Zellen (18P und 18Q) mittels
einer Glasfaserübertragungsleitung
verbunden werden, wie mit einer gestrichelten Linie angegeben. Eine
entfernte Schnittstelleneinheit 19 (Remote Interface Unit)
bietet eine physikalische Schnittstelle zwischen der Zellenschnittstelle 22R und
der entfernten Zelle 18R. Die entfernte Zelle 18R ist ähnlich zu
den anderen dargestellten Zellen aufgebaut und wird ähnlich wie
diese betrieben und enthält
eine entfernte Schnittstelleneinheit, um die Glasfaserverbindung
an ihrem entfernten Ende anzuschließen.
-
In einer ähnlichen Weise können die
Domänensegmente 12F und 14B mittels
einer Glasfaserverbindung von ihren Muttersegmenten miteinander verbunden
werden. Wie dargestellt, beinhalten die jeweiligen Domänen-Routingeinheiten 28F und 30B je zwei
entfernt angeschlossene Teile. Bezüglich der Domänen-Routingeinheit 28F ist
zum Beipiel ein erstes Teil direkt über eine Standardbuskopplung
mit der Zellenschnittstelle 34F des Segments 14B verbunden,
während
ein zweites Teil direkt mit der Zellenschnittstelle 32F des
Segments 12F verbunden ist. Diese zwei Teile, die identisch
aufgebaut sind, sind über
eine Glasfaserverbindung, die durch eine gestrichelte Linie angegeben
ist, verbunden. Wie oben ist eine physikalische Schnittstelle zwischen
den Teilen der Domänen-Routingeinheit
und dem Glasfasermedium durch eine entfernte Schnittstelleneinheit
(nicht abgebildet) vorgesehen.
-
4 stellt
eine Ausführungsform
der Verarbeitungszellen 18A, 18B, ..., 18R von 3 dar. Die abgebildete Verarbeitungszelle 18A beinhaltet
eine zentrale Verarbeitungseinheit 58, die mit der externen
Geräte-
bzw. Einheitenschnittstelle 60, dem Datenteilcache 62 und
dem Befehlsteilcache 64 über den Prozessorbus 66 bzw.
den Befehlsbus 68 verbunden ist. Die Schnittstelle 60,
welche die Kommunikation mit externen Einheiten bzw. Geräten, z.
B. Plattenlaufwerken, über
einen externen Gerätebus zur
Verfügung
stellt, ist in einer herkömmlichen
Weise nach dem Stand der Technik aufgebaut.
-
Der Prozessor 58 kann irgendeiner
von verschiedenen kommerziell verfügbaren Prozessoren sein, zum
Beispiel die Motorola 68000 CPU, die angepaßt ist,
um eine Schnittstelle zu den Teilcachespeichern 62 und 64 unter
Steuerung einer Teilcache-Coexecution-Einheit zu bilden, die über die
Daten- und Adreßsteuerleitungen 69A und 69B in
einer herkömmlichen
Weise nach dem Stand der Technik agiert, und ferner dafür ausgelegt
ist, Speicherbefehle wie unten beschrieben auszuführen. Die
Verarbeitungszellen sind in EP-A-0.322.117 weiter beschrieben.
-
Die Verarbeitungszelle 18A enthält darüber hinaus
die Datenspeichereinheiten 72A und 72B, die über die
Cachesteuerungseinheiten 74A und 74B an den Cachebus 76 angeschlossen
sind. Die Cachesteuerungseinheiten 74C und 74D wiederum
stellen eine Verbindung zwischen dem Cachebus 76 und den
Verarbeitungs- und Datenbussen 66 und 68 bereit.
Wie in 4 angegeben sorgt
der Bus 78 für eine
gegenseitige Verbindung zwischen dem Cachebus 76 und dem
Domänen(0)- Bussegment 20A,
das der abgebildeten Zelle zugeordnet ist. Bevorzugte Ausführungen
bzw. Konstruktionen für
die Cachesteuerungseinheiten 74A, 74B, 74C und 74D werden in
EP-A-0.322.117 diskutiert.
-
Nach einer bevorzugten Ausführungsform beinhalten
die Datencachespeicher 72A und 72B dynamische,
wahlfrei zugreifbare Speichereinheiten (Dynamic Random Access Memory,
DRAM), von denen jede fähig
ist, bis zu 16 Mbytes an Daten zu speichern. Die Teilcachespeicher 62 und 64 sind
statische, wahlfrei zugreifbare Speichereinheiten (Static Random
Access Memory, SRAM), wobei das erstere fähig ist, bis zu 256 Kbytes
an Daten zu speichem, und das letztere bis zu 256 Kbytes an Befehlsinformation
speichem kann. Wie dargestellt stellen die Cache- und Prozessorbusse 76 und 64 64-Bit-Übertragungspfade
bereit, während
der Befehlsbus 68 einen 64-Bit-Übertragungspfad
bereitstellt. Ein bevorzugter Aufbau des Cachebusses 76 wird
in EP-A-0.322.117 bereitgestellt.
-
Die Fachleute auf diesem Gebiet werden verstehen,
daß die
abgebildete CPU 58 eine herkömmliche zentrale Verarbeitungseinheit
und allgemeiner jede Vorrichtung bzw. Einheit, die in der Lage ist,
Speicheranforderungen auszugeben, z. B. eine I/O-Steuerung oder
ein anderes Verarbeitungselement für spezielle Zwecke, darstellen
kann.
-
Die Befehlsausführung einer hier beschriebenen
Verarbeitungszelle unterscheidet sich von herkömmlichen digitalen Verarbeitungssystemen
in einigen wesentlichen Punkten. Die Verarbeitungszelle – z. B. 18A – hat mehrere
Verarbeitungszellen oder funktionale Einheiten – z. B. 58, 60 – die Befehle
parallel ausführen
können.
Darüber
hinaus sind die funktionalen Einheiten "in einer Pipeline" angeordnet bzw. organisiert, um zu
erlauben, daß mehrere
Befehle zur selben Zeit durch Überlappen
ihrer Ausführung
im Gange sind. Dieses Pipelining ist in EP-A-0.322.117 weiter beschrieben.
-
Eine gemäß der Erfindung aufgebaute
Verarbeitungszelle führt
eine Sequenz von Befehlen aus, die aus dem Speicher geholt wurde.
Der Kontext der Ausführung
kann teilweise durch die Architektur und teilweise durch die Software
definiert werden. Der Architekturanteil des Ausführungskontextes kann aus einem
Kontextadreßraum,
einer Vorrangs- bzw. Berechtigungsstufe bzw. einem Privilegienniveau,
allgemeinen Registern und einem Satz von Programmzählern bestehen.
Der Kontextadreßraum
und das Privilegienniveau bestimmen, auf welche Daten in dem Speichersystem
der Befehlsstrom Bezug nehmen darf. Allgemeine Register, die entsprechend
bekannten Konstruktionspraktiken aufgebaut sind, werden zur Berechnung
benutzt, zum Beispiel wie in EP-A-0.322.117 beschrieben.
-
Zwei Zeiteinheiten können zur
Angabe des Zeitverhaltens von Befehlen verwendet werden. Diese Einheiten
werden hier als "Takte" bzw. "Zyklen" bezeichnet. Ein
Takt ist eine Einheit von Realzeit, die eine durch die Systemhardware
festgelegte Dauer hat. Der Prozessor führt einen Befehlsholvorgang
pro Zyklus aus. Ein Zyklus dauert einen Takt, außer es geschieht bzw. passiert
ein "STALL" (Anhalten), wobei
in diesem Fall ein Zyklus eine gewisse größere, ganzzahlige Anzahl von
Takten dauert. Die Ausführung
eines Befehls wird in Zyklen beschrieben und ist datenunabhängig.
-
Pipeline-STALLs können die Folge von Teilcache-
und Cache-Verwaltungsoverhead sein. Die meisten LOAD- und STORE-Operationen
werden ohne ein STALL abgeschlossen; jedoch kann jeder LOAD-, STORE-
oder Speichersteuerungs-Befehl ein STALL verursachen bzw. veranlassen,
um es dem System zu ermöglichen,
Daten aus dem lokalen Cache oder von einer entfernten Zelle zu holen.
Diese Verzögerungen
werden hier als STALLs bezeichnet. Während eines STALL geht die
Ausführung
anderer Befehle nicht weiter, und es werden keine neuen Befehle
geholt. STALLs stehen nicht mit dem Befehl selbst in Beziehung,
sondern mit der Nähe
der zugehörigen
Daten. STALLs werden in Takten gemessen und jedes STALL ist eine
ganzzahlige Anzahl von Takten. Auch wenn eine CEU möglicherweise
ein STALL hat bzw. erfährt,
während
sie Daten aus einem lokalen Cache erhält, bleibt das Programmiermodell
(ausgedrückt
in Zyklen) konstant.
-
Wie in Zusammenhang mit den Ausführungsformen
aus den 5A-5C dargestellt kann eine
Verarbeitungszelle 18.1 entsprechend der Erfindung vier
Verarbeitungselemente beinhalten, die hier auch als "funktionale Einheiten" bezeichnet werden: die
CEU 58, die IPU 84, die FPU 82 und die
XIU 60. Während
die 5A-5C eine Verarbeitungszelle 18.1 mit
vier Verarbeitungselementen darstellen, werden die Fachleute auf
diesem Gebiet wissen, daß die
Erfindung in Zusammenhang mit einer Verarbeitungszelle mit mehr
oder weniger Verarbeitungselementen ausgeführt werden kann.
-
Insbesondere holt die CEU (Central
Execution Unit, zentrale Ausführungseinheit)
alle Befehle, steuert FETCH und STORE von Daten (hier als LOADS
und STORES bezeichnet), steuert den Befehlsfluß (Verzweigungen) und führt die
Arithmetik aus, die für
Adreßberechnungen
benötigt
wird. Die IPU (Integer Processing Unit, Ganzzahl-Verarbeitungseinheit)
führt ganzzahlig-arithmetische
und logische Befehle aus. Die FPU (Floating point Processing Unit,
Gleitkomma-Verarbeitungseinheit)
führt Gleitkomma-Befehle
aus. Die XIU (eXternal I/o Unit, externe I/O-Einheit) ist eine Zusammenausführungs- bzw.
Co-Execution-Einheit, welche die Schnittstelle zu externen Einheiten
bzw. Geräten
bereitsstellt. Die XIU führt
DMA (Direct Memory Access operations, direkte Speicherzugriffsbefehle)
und programmierte I/O durch und enthält Timerregister. Sie führt verschiedene
Befehle durch, um programmierte I/O zu steuern. Die Struktur und
der Betrieb der XIU ist unten genauer beschrieben.
-
Gemäß 5A enthält die Verarbeitungszelle 18.1 demnach
eine Menge von miteinander verbundenen Prozessoren 58, 60, 82 und 84,
einschließlich
einer CEU 58, um normalerweise einen Befehlsstrom zu verarbeiten,
der Befehle aus dem Befehlscache 64 beinhaltet. Der Fluß von Befehlen aus
dem Befehlscache 64 wird in 5A durch
die gestrichelten Linien 86 angezeigt.
-
Wie in 5A dargestellt
kann mindestens einer der Prozessoren – in dem dargestellten Beispiel die
FPU 82 und die XIU 60 – Befehle vorbringen, hier als "Einfügungs-Befehle" bezeichnet, die
von der CEU 58 ausgeführt
werden können.
Der Fluß der Einfügungs-Befehle
von der FPU 82 zu der CEU 58 ist in 5A durch die gestrichelte
Linien 88 angezeigt. Analog wird die Bewegung der Einfügungs-Befehle
von der XIU 60 zu der CEU 58 durch die gestrichelten
Linien 90 angedeutet.
-
Zudem können diese Einfügungs-Befehle von
der CEU 58 in derselben Weise wie die Befehle aus dem Befehlscache 64,
und ohne deren Ausführungsreihenfolge
zu berühren,
ausgeführt
wer den. Überdies
können,
wie unten weiter erläutert,
die Einfügungs-Befehle
dasselbe Format wie die Befehle aus der ersten Befehlsquelle haben,
einschließlich einer
ersten Menge von digitalen Befehlsbits, um ausgewählte Adreßsignale
anzugeben, und einer zweiten Menge von digitalen Befehlsbits, um
ausgewählte
Kommandosignale anzugeben. Die Einfügungs-Befehle mit diesem Format
können
Cacheverwaltungsbefehle umfassen, die durch den Befehlscache 64 oder
durch die in 4 abgebildete
Cachesteuerungseinheit 74D eingefügt werden.
-
Während 5A einen Befehlscache 64 als Quelle
der Befehle darstellt, kann die Quelle der Befehle alternativ auch
ein Prozessor oder eine Ausführungseinheit
sein – unter
gewissen Umständen
einschließlich
der CEU 58 -, die angepaßt sind zum Ausgeben von Signalen
an das Befehlscacheelement, um zu veranlassen, daß Befehle
aus dem Befehlscacheelement an die CEU 58 übermittelt
werden.
-
Wie oben diskutiert kann die Verarbeitungszelle 18.1 eine
Befehlspipeline enthalten, die aus dem Befehlsbus 68 besteht,
um die Prozessoren miteinander zu verbinden und die Befehle zu transportieren.
Die Prozessoren ihrerseits können
Hardware- und Softwareelemente einschließen, um die Einfügungs-Befehle
in die Befehlspipeline einzusetzen.
-
Die in 5A abgebildete
XIU 60 kann Eingabe/Ausgabe (Input/output, I/O) Module
zur Behandlung der Signale 70 beinhalten, die von Peripheriegeräten bzw.
-einheiten empfangen und an Peripheriegeräte übertragen werden, hier auch
als externe Geräte
bzw. Einheiten bezeichnet. Diese I/O-Module können direkte Speicherzugriffselemente
(Direct Memory Access, DMA) enthalten, die auf ausgewählte Signale
von einer Peripherteeinheit reagieren, um DMA-Befehle einzufügen, die
durch die CEU 58 in derselben Weise wie die Befehle aus
der ersten Befehlsquelle, und ohne deren Verarbeitungsreihenfolge
zu berühren,
verarbeitet werden können.
Diese Verarbeitungsreihenfolgen werden weiter unten genauer diskutiert.
Die XIU 60 kann auch Grafiksteuerungsschaltungen enthalten,
die entsprechend bekannten Konstruktionspraktiken aufgebaut sind,
um Signale zu steuern, die an ein Anzeigegerät übermittelt werden; oder herkömmliche
Textsuchelemente, um Datenstrukturen, die Text repräsentieren,
zu durchsuchen.
-
Alternativ kann, wie in 5D dargestellt, die XIU
aus den 5A-5C durch einen speziellen Paket-Coprozessor 85 ersetzt
werden, was nachfolgend genauer diskutiert wird. Überdies
können,
wie 5E anzeigt, die
vier Prozessoren aus den 5A-5C durch
einen einzelnen Paketprozessor ersetzt werden, der Prozeduren der
Frameschicht und ausgewählte,
leistungskritische Prozeduren der Paketschicht implementiert.
-
Jeder Prozessor 58, 60, 82, 84,
der in den 5A und 5B dargestellt ist, kann
Register zum Speichern von digitalen Werten enthalten, die Daten und
Prozessorzustände
in einer Weise wiedergeben, die nachfolgend genauer diskutiert wird.
Diese Register sind in 5C zusammen
mit Berechnungseinheiten und anderen logischen Elementen abgebildet,
die in einer Anwendung der Erfindung benutzt werden. Die oben diskutierten
Einfügungs-Befehle steuern
die Bewegung von Daten in und aus diesen Registern und veranlassen
die Ausführung
von ausgewählten
logischen Operationen auf in den Registern gespeicherten Werten.
-
Der Betrieb des Paket-Coprozessors 85 wird als
nächstes
im Zusammenhang mit der Paketflußsteuerung wie in 6 dargestellt beschrieben.
-
Paketfluß
-
Entsprechend der Erfindung sind alle
Datenstrukturen, die zur Paketvermittlungssteuerung benötigt werden,
einschließlich
der Empfangswarteschlangen 601, der Übertragungswarteschlangen 602,
der Warteschlange für
Antworten der Anwendung 610 und der Anwendungsdienstwarteschlange 612 in
den Cachespeichereinheiten 72 resident, die den zellinternen
Verarbeitungseinheiten zugeordnet sind. Diese Eigenschaft wird in 6 angezeigt, die auch darstellt,
daß eine
oder mehrere ankommende oder abgehende physikalische Verbindungen
jeder Paketvermittlungs-Mitausführungseinheit
bzw. Coexecution-Einheit (Packet Switching Co-Execution Unit, PSU) 85 zugeordnet
sind. Eine oder mehrere Empfangswarteschlangen 601 sind
jeder ankommenden Verbindung zugeordnet, und eine oder mehrere Übertragungswarteschlangen 602 sind
jeder abgehenden Verbindung zugeordnet. Speicheradressen sind jeder
Warteschlange jeweils segmentweise zugewiesen.
-
Empfang von der physikalischen Schnittstelle:
Die physikalische Empfangsschnittstelle 120.1, die der
PSU 85.1 zugeordnet ist, führt die herkömmlichen
Operationen aus, die die übrige
Bitübertragungsschicht
und einen Teil der Datensicherungs- oder Frameschicht, die in 2 abgebildet sind, ausmachen.
Jeder Frame oder jede Zelle wird von der physikalische Schnittstelle 120.1 empfangen
und durch die PSU 85.1 beschrieben. Das Paket oder die Zelle
wird danach in den Kopfzeilen- und den Datenanteil unterteilt und
in dem PSU-Empfangs-FIFO-Puffer 602 gespeichert. Das empfangene
Paket oder die Zelle wird auf Fehler überprüft, wobei die Ergebnisse zusammen
mit den Kopfzeilen gespeichert werden.
-
Empfangsseitige Verarbeitung in der
Frameschicht: Nochmals gemäß 6 schließt die PSU 85.1, die
der physikalische Verbindung zugeordnet ist, die Verarbeitung in
der Frameschicht ab und speichert den empfangenen Frame oder die
Zelle in die Empfangswarteschlange 601. Wie oben angegeben entspricht
mindestens eine im Cachespeicher residente Empfangswarteschlange
jeder physikalischen Empfangsverbindung. Die PSU 85.1 benutzte
Sequenzen von Einfügungs-Befehlen,
die oben in Zusammenhang mit 5A diskutiert
wurden, um die Empfangswarteschlange 601 direkt zu manipulieren.
-
Verarbeitung in der Paketschicht:
Da die Datenstrukturen der Empfangswarteschlange 601 und der Übertragungswarteschlange 602 vollständig im Cachespeicher 72 resident
sind, kann jeder Prozessor innerhalb der Mehrprozessorstruktur 10 das
Paket-(Vermittlungs-)Schichtprotokoll ausführen. Das Paket wird aus der
Empfangswarteschlange 601 in die passende Übertragungswarteschlange 602 auf der
Grundlage von speicherresidenten Paketrouting- und Flußsteuerungstabellen
verschoben. Diese Tabellen werden in EP-A-0.322.117 diskutiert.
-
Da überdies die meisten Pakete
keine Berechnungsressourcen benötigen,
kann die PSU, die der physikalischen Empfangsverbindung zugeordnet ist,
im typischen Fall direkt das Paketschichtprotokoll ausführen, indem
sie das Paket direkt von der PSU in die passende Übertragungswarteschlange überträgt und die
Empfangswarteschlange umgeht. Dies ist bei Block 614 in 6 angegeben. Wenn eine komplexere
Behandlung erforderlich ist, wird das Paket zur Paketverarbeitung
durch irgendeinen Prozessor in der Empfangswarteschlange gelassen,
wie durch tung durch irgendeinen Prozessor in der Empfangswarteschlange
gelassen, wie durch Block 614 angegeben.
-
Pakete können auch aus einer Empfangswarteschlangen-Kette 601 zu
einer Anwendungsdienstwarteschlange 612 zur Verarbeitung
auf höherer
Stufe bzw. in einer höheren
Schicht geleitet werden. Beispiele für Verarbeitung auf höherer Stufe sind
Transaktionen, Datenbankwarteschlangen oder Berechnungen entsprechend
einem Anwendungsprogramm, das auf der Mehrprozessorstruktur 10 abläuft. Verarbeitung
auf höherer
Stufe verwendet denselben Prozessorpool und denselben Cachespeicher wie
die Paketvermittlungsoperationen. In der dargestellten Ausführungsform
werden Pakete, die durch Verarbeitung auf höherer Stufe erzeugt werden,
in eine Anwendungsabschlußwarteschlange 612 gestellt.
Die Verarbeitung in der Paketschicht wird auf von der Anwendung
erzeugten Paketen in einer ähnlichen
Weise durchgeführt
wie auf Pakete aus der Empfangswarteschlangen-Kette.
-
Übertragungsseitige
Verarbeitung in der Frameschicht: Die PSU 85.2, die einer
physikalischen Übertragungsverbindung
zugeordnet ist, führt
die Verarbeitung in der Frameschicht durch und verschiebt den Frame
oder die Zelle in eine PSU-residente Übertragungsschnittstelle, die
den FIFO-Puffer 618 enthält, zur Übertragung
an die physikalische Schnittstelle 120.2. Eine oder mehrere
cachespeicherresidente Übertragungswarteschlangen
entsprechen jeder physikalischen Übertragungsverbindung. In einer ähnlichen
Weise, wie oben in Zusammenhang mit der Verarbeitung von empfangenen
Paketen diskutiert, verwendet die übertragende PSU 85.2 Sequenzen
von Einfügungs-Befehlen,
um die Übertragungswarteschlange
direkt zu manipulieren.
-
Übertragung
an die physikalische Schnittstelle: Die physikalische Übertragungsschnittstelle 120.2 der
PSU führt
den Rest des Frameschichtprotokolls und einen Teil der Operationen
aus, die die physikalische Verbindungsschicht entsprechend herkömmlicher
ISO-Referenzmodell-Praxis ausmachen. Jeder Frame oder jede Zelle
wird aus den Kopfzeilen und den Daten erstellt, die im PSU-Übertragungs-FIFO-Puffer 618 gespeichert
sind, und der passende Fehlerprüfcode
wird auf bekannte Weise erzeugt.
-
PSU-Struktur
-
Organisation: Wie in 7 dargestellt besteht die PSU aus fünf Hauptblöcken: dem Übertragungspuffer 701,
dem Empfangspuffer 702, der Kommandopuffer-Registrierdatei 703,
dem Zustandsautomaten (Finite bzw. Functional State Machine, FSM) für Einfügungs-Befehle 704 und
der Befehlsdekodiereinheit 705. Diese Menge von Einheiten
kann in zwei Gruppen eingeteilt werden: Blöcke, die physikalischen Schnittstellen
zugeordnet sind, und Blöcke, die
der Schnittstelle der Nebenausführungs-Einheit (Co-Execution
Unit, CEU) oder dem oben beschriebenen Prozessorbus zugeordnet sind.
Insbesondere sind der Übertragungspuffer 701 und
der Empfangspuffer 702 mit der physikalischen Schnittstelle
verbunden und übertragen
Pakete zu oder von der physikalischen Schnittstelle. Die Kommandopuffer-Registrierdatei 703,
der Zustandsautomat für
Einfügungs-Befehle 704 und
der Befehlsdekodierer 705 sind der Schnittstelle der Coexecution-Einheit
zugeordnet.
-
Übertragungspuffer:
Der Übertragungspuffer enthält ein Übertragungsdaten-FIFO 710,
ein Übertragungskopfzeilen-FIFO 711,
einen Kopfzeilenformatierer 712 und einen Paketzustandsautomaten 713.
Die Paket-FSM koordiniert den Aufbau des physikalischen Pakettrames
und der Zellen innerhalb eines Frames aus den Inhalten des Kopfzeilen-FIFO-Puffers
und des Daten-FIFO-Puffers. Der Kopfzeilen- und der Daten-FIFO werden
vorab durch den Zustandsautomaten für Einfügungs-Befehle aus dem SVA-Cache geladen. Eine
weitere Beschreibung dieser Elemente wird in EP-A-0.322.117 gegeben.
-
Der Kopfzeilenformatierer 712 baut
die physikalischen Kopfzeilen (Header) unter Verwendung herkömmlicher
Prozesse basierend auf der aus dem Cache geholten Datenstruktur
und als Reaktion auf TRANSMIT-Kommandos vom Kommandopuffer 703 auf.
Die Paket-FSM 713 baut den/die auszusendende(n) Frame oder
Zelle durch Verwenden von Operationen, die auf dem Gebiet der digitalen
Verarbeitung bekannt sind, basierend auf den Kopfzeilen-Inhalten und
als Reaktion auf TRANSMIT-Kommandos vom Kommandopuffer 703 auf.
Die dargestellte Ausführungsform
stellt eine verbesserte Flexibilität bei der Verarbeitung von
Paketformaten und Frameschicht- Protokollen durch Anwenden des TRANSMIT-Kommandos,
mit denen Operationen des Kopfzeilenformatierers und der Paket-FSM
bestimmen werden, zur Verfügung.
Der Übertragungspuffer
liefert auch eine geeignete Serialisierung und Steuersignale, um auf
die physikalische Schnittstelle zuzugreifen entsprechend bekannter
technischer Praktiken.
-
Empfangspuffer: Der Empfangspuffer 702 umfaßt ein Empfangsdaten-FIFO 714,
ein Empfangskopfzeilen-FIFO 715, einen Kopfzeilen-Aufspalter 716 und
eine Paket-FSM 717. Die Paket-FSM 717 arbeitet entsprechend
bekannten Prinzipien der digitalen Signalverarbeitung, um den Empfang
und die Aufspaltung der Paketframes oder Signalzellen innerhalb
eines Frames in Kopfzeilen- und
Datenanteile zum Einstellen in den Kopfzeilen-FIFO 715 bzw. den
Daten-FIFO 714 zu koordinieren. Das RECEIVE-Kommando aus
dem Kommandopuffer 703 wird von der Paket-FSM 717 verwendet,
um die Kopfzeilen- und Datenanteile des Frames oder der Zelle geeignet
aufzuteilen.
-
Der Kopfzeilenaufspalter 716 formatiert
die Kopfzeile neu bzw. erneut in die Datenstruktur, die in den SVA-Cache
zu speichern ist, basierend auf dem RECEIVE-Kommando aus dem Empfangspuffer.
Wie beim Übertragungspuffer
wird Flexibilität
bezüglich des
Paketformates und des Frameschicht-Protokolls bzw. des Protokolls
auf Frameniveau dadurch erzielt, daß der Betrieb des Kopfzeilenaufspalters
und der Paket-FSM durch das RECEIVE-Kommando gesteuert wird. Der
Empfangspuffer 702 sorgt auch für die geeignete Parallelisierung
der Paket- und Steuersignale zum Zugriff auf die physikalische Schnittstelle.
-
Kommandopuffer: Der Kommandopuffer 703 ist
eine PSU-residente Mehranschluß-Speichereinrichtung,
die RECEIVE- und TRANSMIT-Kommandos enthält und zeitweilige bzw. vorübergehende Speicherung
auf dem Chip für
Teile der cachespeicherresidenten Datenstrukturen zur Verfügung stellt. Zeiger
auf aktive Einträge
der cachespeicherresidenten Warteschlangen werden für die Empfangspuffer und
die Übertragungspuffer
separat gehalten.
-
In der dargestellten Ausführungsform
beinhaltet der Kommandopuffer drei READ-Anschlüsse und zwei WRITE-Anschlüsse. Zwei
READ-Anschlüsse
sind für
das aktuelle TRANSMIT- Kommando
für den Übertragungspuffer 701 und
für das
aktuelle RECEIVE-Kommando für
den Empfangspuffer 702 reserviert bzw. zugeteilt. Der erste
WRITE-Anschluß ermöglicht es
der Übertragungspaket-FSM 713 oder der
Empfangspaket-FSM 717, den Kommandopufferzustand zu aktualisieren.
Der dritte READ-Anschluß ist
an den Datenbus angeschlossen, um Kommandopufferinhalte direkt in
den Cachespeicher zu speichern. Der zweite WRITE-Anschluß hat bzw.
bildet eine Schnittstelle zum Datenbus, um Inhalte des Cachespeichers,
auf die zugegriffen wird, zu empfangen und Daten in den Kommandopuffer
zu speichern.
-
IISM: Der Zustandsautomat für Einfügungs-Befehle
(Inserted Instruction State Machine, IISM) 704 erzeugt
die erforderlichen Befehle, um Frames oder Zellen aus dem Empfangspuffer 702 in
die cachespeicherbasierten Warteschlangen zu speichern. Die IISM 704 erzeugt
auch die erforderlichen Befehle, um Frames oder Zellen aus den cachespeicherbasierten
Warteschlangen in den Übertragungspuffer
zu laden.
-
Darüber hinaus erzeugt die IISM 704 die
erforderlichen Befehle, um die cachespeicherbasierten Warteschlangenstrukturen
zu manipulieren. Diese Operationen umfassen das Aktualisieren von
Zeigern innerhalb der Warteschlangeneinträge, das Erzeugen von Befehlen
zum atomaren Aktualisieren von Warteschlangendatenstrukturen – einschließlich GET-,
GETW- und RELEASE-Kommandos,
das Erzeugen von Befehlen zum PREFETCH (Vorab Holen) von Warteschlangeneinträgen, die
in naher Zukunft benötigt
werden, und zum POSTSTORING (Nachträglich Speichern) von Warteschlangeneinträgen, für die Kopien
von anderen Zellen in naher Zukunft benötigt werden. Sowohl die PREFETCH-Befehle
als auch gewisse LOAD- und STORE-Befehle erlauben es Programmen
anzufordern, daß ihre
Cachespeicher die Zustände "nur-Lesen", "nicht-exklusiv" oder "exklusiv" erhalten. Zum Beispiel
fordert das Kommando PREFETCH SUBPAGE (Teilseite vorab holen) an,
daß eine
Kopie einer Teil- bzw. Unterseite auf dem lokalen Cache in einem
angegebenen Zustand erhalten wird. PREFETCH SUBPAGE gibt an, ob
die Teilseite in den Befehls- oder Daten-Teilcache des Prozessors vorab geholt
werden sollte oder nicht. Ein nachfolgendes Laden der Teilseite
wird blockiert, bis das PREFETCH SUBPAGE abgeschlossen ist.
-
Der Befehl POST STORE SUBPAGE (Teilseite
nachträglich
speichern) oder PSTSP veranlaßt den
lokalen Cache dazu, eine nur lesbare Kopie der Teilseite über den
Ring rundzusenden, wenn der Zustand der Teilseite "exklusiv" ist. Jede Zelle,
deren Cache einen Deskriptor für
die Seite enthält,
welche die Teilseite enthält,
erhält
eine nur lesbare Kopie der Teilseite. PSTSP arbeitet entsprechend
den folgenden Schritten:
-
- 1. Der Prozessor übergibt die Adresse der Teilseite
und die PSTSP-Anforderung an den lokalen Cache.
- 2. Der lokale Cache gibt eine OK-Antwort an den Prozessor aus,
und die Ausführung
im Prozessor geht weiter.
- 3. Wenn der Zustand der Teilseite "exklusiv" ist und wenn die Adresse der Teilseite,
die durch PSTSP angegeben wird, keiner anhängigen Ring-Anforderung entspricht,
dann
- a. gibt der lokale Cache eine XCACHE.RO Teilseite-Ungültigmachen-Anforderung
an den Prozessor aus, wenn sich die Teilseite im Teilcache befindet.
Der Prozessor ant wortet auf die Ungültigmachen-Anforderung, indem
er Daten an den lokalen Cache übergibt,
wenn die Unterblöcke
modifiziert sind; und
- b. übermittelt
der lokale Cache durch Rundsenden eine nur lesbare Kopie der Teilseite
auf dem Ring.
- 4. Ansonsten wird PSTSP nicht ausgeführt.
-
Der PSTSP-Befehl leitet einen Prozeß zum Paket-Duplizieren
ein. Duplikate der Datenpakete werden vom Ursprungs-RING: 0 basierend
auf bzw. abhängig
von DUPLIMIT weitergeleitet. Wenn DUP: CONDFORWARD gilt, werden
Duplikate der Pakete von RRC: 0 an Ring: 1 bedingt weitergeleitet,
wenn die Seite nicht in exklusivem Besitz von dem lokalen Ring:
0 ist. Wenn DUP: ALLFORWARD gilt, werden Duplikate der Pakete immer
von RRC: 0 an Ring: 1 weitergeleitet. Ring: 1-Duplikate der Datenpakete werden
von einem entfernten RRC: 1 kopiert, wenn er einen Deskriptor für die entsprechende
Seite innerhalb seines lokalen Ring: 0 reserviert hat und der Extraktionspuffer
in der EXTBUF: ALL-Region liegt.
-
Diese Kommandos einschließlich PREFETCH
und POSTSTORE sind genauer in EP-A-0.322.117 beschrieben.
-
Befehlsdekodierung: Der Befehlsdekodier-Block 705 dekodiert
durch die PSU auszuführende
Befehle und versetzt die PSU 85 in die Lage, die bzw. der
Befehlspipeline zu folgen. Durch die PSU auszuführende Befehle können aus
dem Befehlsteilcache (5A)
geholte Befehle sein oder Einfügungs-Befehle,
die durch die PSU oder andere Coexecution-Einheiten eingefügt wurden.
-
PSU-Operationen
-
Die PSU führt drei grundlegende Manipulationen
der Warteschlangen im Cachespeicher durch. Die Beispiele, die in
den 8, 9 und 10 abgebildet sind,
verwenden eine grundlegende Warteschlangenstruktur mit einer einfach
verketteten Liste, jedoch werden Fachleute auf diesem Gebiet anerkennen
bzw. zugestehen, daß verschiedene,
beliebige Warteschlangenstrukturen implementiert werden können und
innerhalb des Anwendungs- bzw. Schutzbereiches der Erfindung liegen.
Warteschlangeneinträge,
die gemeinsam benutzt werden und durch die Sequenz modifiziert werden,
werden während
des Betriebs von der PSU durch eingefügte GET-, GETW- und RELEASE-Befehle, die durch
den lokalen Cache ausgeführt
werden, gesperrt (LOCKED) und entsperrt (UN-LOCKED). Warteschlangeneinträge werden
unter Verwendung von GET oder GETW gesperrt (LOCKED), um den Zustand "atomar" bzw. "atomic" am Beginn der Sequenz
zu setzen. Warteschlangeneinträge
werden am Ende der Sequenz durch den RELEASE-Befehl entsperrt (UNLOK-KED). Diese Befehle
sind genauer in EP-A-0.322.117 beschrieben.
-
Paketübertragung zur Empfangswarteschlange: 8 zeigt die Sequenz, die
von der PSU 85 ausgeführt
wird, um ein empfangenes Paket aus dem PSU-internen Empfangs-FIFO
in eine cachespeicherbasierte Empfangswarteschlange zu übertragen.
Der alte Kopf (OLDHEAD) aus der leeren Warteschlange wird verschoben,
um der neue End- (NEWTAIL) Eintrag der Empfangswarteschlangen-Kette
zu werden; und der empfangene Frame oder die Zelle wird in den Eintrag
gespeichert. Die Sequenz umfaßt
die folgenden vier Schritte:
-
- 1. Die PSU aktualisiert den Zeiger auf den
Kopf der leeren Warteschlange von der Adresse von OLDHEAD auf die
Adresse von NEWHEAD.
- 2. Die PSU aktualisiert –Verwendung
von STORE INSERTED-INSTRUCTI unter ON – den Vorwärtszeiger des OLDTAIL-Eintrags
in der Empfangswarteschlangen-Kette auf die Adresse des Eintrags,
der gerade aus der Warteschlange mit leeren Einträgen entfernt
wurde. Dieser wird zum NEWTAIL-Eintrag.
- 3. Die PSU holt vorab – unter
Verwendung von PREFETCH INSERTED-INSTRUCTION – den NEWHEAD-Eintrag der Warteschlange
mit leeren Einträgen.
- 4. Die PSU speichert – unter
Verwendung von STORE INSERTED-INSTRUCTION – die Daten und die Kopfzeile
des Frames oder der Zelle in den NEWTAIL-Eintrag der Empfangswarteschlangen-Kette.
-
Paketübertragung von der Empfangswarteschlange
in die Übertragungswarteschlange:
Wie in 9 abgebildet
wird ein Eintrag aus einer Empfangswarteschlangen-Kette entfernt
und in eine passende Übertragungswarteschlangen-Kette
abhängig von
der Verarbeitung in der Paketschicht verschoben. Diese Sequenz,
die von der PSU oder von jedem beliebigen Prozessor durchgeführt werden kann,
umfaßt
die folgenden fünf
Schritte:
-
- 1. Der Prozessor oder die PSU entfernt OLDHEAD
aus der Empfangswarteschlange-Kette durch Aktualisieren (STORE INSERTED-INSTRUCTION)
des Kopfzeigers der Empfangswarteschlange auf die Adresse von NEWHEAD.
- 2. Der Prozessor oder die PSU holt vorab das Kettenglied NEWHEAD
der Empfangswarteschlange.
- 3. Der Prozessor oder die PSU führt die Verarbeitung in der
Paketschicht auf dem Frame oder der Zelle durch, um die passende Übertragungswarteschlangen-Kette
auszuwählen.
Die PSU implementiert einfache Verarbeitung in der Paketschicht
direkt, indem sie das Vorliegen von Fehlern prüft und in cachespeicherbasierten
Routingtabellen zum Bestimmen des Routing für die Übertragung nachsieht. Die passenden
Kopfzeilen- und Kommandobits werden modifiziert.
- 4. Der Prozessor oder die PSU aktualisiert den Zeiger des OLDTAIL-Eintrags
in der Übertragungswarteschlangen-Kette
auf die Adresse von OLDHEAD aus der Empfangswarteschlangen-Kette.
- 5. Der Prozessor oder die PSU führt POSTSTORES für OLDTAIL
und NEWTAIL durch.
-
Paketübertragung von der Übertragungswarteschlange
in den Übertragungs-FIFO:
Die PSU führt die
in 10 angegebene Sequenz
aus, um einen zu übertragenden
Frame oder eine zu übertragende Zelle
aus einer cachespeicherbasierten Übertragungswarteschlangen-Kette
in den PSU-internen Übertragungs-FIFO
zu übertragen.
Der alte Kopf (Kopfzeilen) aus der Übertragungswarteschlangen-Kette
wird in den Übertragungs-FIFO
der PSU geladen und wird verschoben, um der NEWTAIL-Eintrag der
ursprünglichen,
leeren Empfangswarteschlange zu werden. Die Sequenz umfaßt die folgenden
vier Schritte:
-
- 1. Die PSU lädt (LOAD INSERTED INSTRUCTIONS)
die Daten und die Kopfzeilen des Frames oder der Zelle aus der Übertragungswarteschlangen-Kette
in die Übertragungs-FIFOs
der PSU.
- 2. Die PSU holt vorab (PREFETCH INSERTED INSTRUCTION) den NEWHEAD-Eintrag
der Übertragungswarteschlangen-Kette.
- 3. Die PSU aktualisiert den Kopfzeiger der Übertragungswarteschlangen-Kette
von der Adresse von OLDHEAD auf die Adresse von NEWHEAD.
- 4. Die PSU aktualisiert (STORE INSERTED INSTRUCTION) den Vorwärtszeiger
des OLD-TAIL-Eintrages
der Übertragungswarteschlangen-Kette
auf die Adresse des Eintrages, der gerade aus der Übertragungswarteschlangen-Kette
entfernt wurde und der nun zum NEW-TAIL-Eintrag wird.
-
Die Fachleute auf diesem Gebiet werden
erkennen, daß die
Mehrprozessor-Paketvermittlungsstrukturen
und die Betriebssequenzen, die oben in Zusammenhang mit den 1–10 beschrieben
sind, für
eine erhöhte
Effizienz bei der Paketvermittlung sorgen. Insbesondere stellt die
in 3 abgebildete hierarchische
Ringstruktur eine extrem schnelle Zwischenverbindungsstruktur zur
Verfügung,
die Datenraten von ungefähr
0,8 Gigabytes/Sekunde für Ring(0)
und bis zu ungefähr
3,2 Gigabytes/Sekunde für
Ring(1) leistet bzw. erreicht. Darüber hinaus sind der dargestellte
Cachespeicher und die dargestellten Zwischenverbindungsstrukturen
paketorientiert, und die grundlegende Einheit der Datenübertragung
in den dargestellten Ausführungsformen
ist eine 128 Byte große
Unter- bzw. Teilseite.
-
Überdies
ermöglicht
es die dargestellte Cachespeicher-Konfiguration, daß alle Datenstrukturen im
virtuellen und physikalischen Speicher resident und für alle Prozessoren
transparent zugreifbar sind. Paketvermittlungsanwendungen können daher
leicht programmiert werden, wobei sie gleichzeitig optimale Leistung
erreichen. Der große,
gemeinsam genutzte Adreßraum
der dargestellten Struktur erlaubt es, daß eine einstufige Speicherung
von allen Prozessoren und PSUs gleichförmig bzw. gleichartig gemeinsam genutzt
werden kann. Die Fachleute auf diesem Gebiet werden erkennen, daß der Zustand "atomar" bzw. "atomic" in dem dargestellten
Speichersystem eine effiziente und bequeme, Hardware-sperrende Grundfunktion
(Primitive) zur Verfügung
stellt.
-
Gemäß der Erfindung wird der Speicherzugrtff
vorteilhafterweise mit Berechnungsoperationen der Prozessoren und
PSUs überlappt,
wodurch Speicherverzögerungen
beseitigt werden. Dies wird durch die oben diskutierten PREFETCH-
und POSTSTORE-Befehle erreicht.
-
Ferner erlaubt die oben beschriebene
Architektur von Nebenausführungs-
bzw. Coexecution-Einheiten eine direkte Zwischenverbindung von spezialisierten
Coexecution-Einheiten mit dem Cachespeichersystem. Die PSU ist ein
Beispiel einer spezialisierten Coexecution-Einheit. Die spezialisierte
Coexecution-Einheit kann sowohl alle Speichersystembefehle als auch
alle Befehle der spezialisierten Coexecution-Einheit ausgeben und
ausführen. Das
System erreicht eine dynamische Lastverteilung, weil alle Prozessoren
und PSUs gleichermaßen
Zugriff auf den Cachespeicher haben.
-
Es versteht sich, daß Änderungen
in den obigen Konstruktionen und in den vorstehenden Sequenzen von
Operationen vorgenommen werden können,
ohne den Anwendungs- bzw. Schutzbereich der Erfindung zu verlassen.
Es ist demnach vorgesehen bzw. beabsichtigt, daß alles, was in der vorstehenden
Beschreibung enthalten oder in den beigefügten Zeichnungen abgebildet
ist, eher in einem veranschaulichenden als in einem einschränkenden Sinn
zu interpretieren ist.