-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung betrifft eine neuartige paketvermittelte Leitweglenkung-Architektur,
die äußerst hohe
Bandbreite zur Verfügung
stellt. Im Besonderen bezieht sich die vorliegende Erfindung auf eine
Busarchitektur, die vermittlungstechnische Funktionen ausführt, um
gleichzeitige Punkt-zu-Punkt
Nachrichtenübermittlungen
zwischen mehreren Anordnungen eines Rechnersystems zu ermöglichen.
-
Hintergrund
der Erfindung
-
In
der Vergangenheit wurden Computer in erster Linie dafür angewandt,
ziemlich banale, sich wiederholende numerische und/oder Textaufgaben zu
verarbeiten, die Zahlenverarbeitung, Verarbeitung von Tabellenkalkulationen
und Textverarbeitung einschlossen. Diese einfachen Aufgaben brachten
lediglich mit sich, Daten von einer Tastatur einzugeben, die Daten
entsprechend irgendeines Computerprogramms zu verarbeiten und dann
den entstehenden Text oder die Zahlen auf einem Computermonitor
zu zeigen und dann eventuell später
diese Ergebnisse auf einem magnetischen Plattenlaufwerk zu speichern.
Jedoch sind die Rechnersysteme von heute sehr viel fortschrittlicher,
vielseitiger und technisch ausgefeilt. Besonders seit dem Aufkommen
von digitalen Medienanwendungen und dem Internet werden Computer
heute üblicherweise
dafür in
Anspruch genommen, Daten von einer großen Vielfalt und von verschiedenen
Formaten, die sich von Audio bis zu Video erstrecken und sogar realistische,
computererzeugte dreidimensionale graphische Abbildungen umfassen
zu akzeptieren und zu verarbeiten. Ein Ausschnitt aus einer Liste
der Anwendungen, die diese digitalen Medienanwendungen einschließt, umfasst
die Erzeugung von Spezialeffekten für Filme, Computeranimation,
Echtzeitsimulationen, Videotelekonferenz, internetgebundene Anwendun gen, Computerspiele,
Telearbeit, virtuelle Realität,
Hochgeschwindigkeitsdatenbanken, interaktive Simulationen in Echtzeit,
medizinisch Bildverarbeitung für
die Diagnose, usw.
-
Der
Grund hinter der Ausbreitung von digitalen Medienanwendungen liegt
in der Tatsache begründet,
dass sehr viel mehr Informationen mit Bildern und Klängen statt
mit Text oder Zahlen übermittelt
und leicht erfasst werden können.
Video, Audio und dreidimensionale graphische Darstellungen machen
ein Rechnersystem benutzerfreundlicher, dynamischer und realistischer.
Jedoch ist der dadurch hinzugekommen Grad an Komplexität für den Entwurf neuer
Generationen von Rechnersystemen, die notwendig sind, um diese digitalen
Medienanwendungen zu verarbeiten, enorm. Die Fähigkeit, digitalisiertes Audio,
Video und graphische Darstellungen zu handhaben, erfordert es, dass
enorme Datenmengen mit äußerst hohen
Geschwindigkeiten verarbeitet werden. Eine unglaubliche Menge an
Daten muss jede Sekunde verarbeitet werden, um die Darstellung hoch
auflösender,
flüssiger
und realistischer vollständiger
Bewegungen auf einem Computerbildschirm zu erzeugen. Zusätzliche
Geschwindigkeits- und Verarbeitungsleistung ist erforderlich, um
das Rechnersystem mit der Befähigung
zu Stereoklängen
in Highfidelity und Echtzeitverarbeitung und mit interaktiven Fähigkeiten
auszustatten. Andernfalls würden
die wiedergegebenen Darstellungen dazu tendieren, klein, körnig und
anderweitig verschwommen zu sein, wenn das Rechnersystem zu langsam
ist, um die erforderliche Datenmenge zu verarbeiten. Weiterhin würden Bewegungen
in diesen Darstellungen wahrscheinlich sprunghaft und unzusammenhängend sein,
weil die Aktualisierungsrate des Rechnersystems zu langsam ist.
Manchmal könnten
ganze Videoframes ausgelassen werden. Daher ist Geschwindigkeit
das Wesentliche beim Entwurf von modernen, neuesten Rechnersystemen
nach dem Stand der Technik.
-
Einer
der größeren Engpässe beim
Entwurf von schnellen Hochleistungsrechnersystemen betrifft die
gegenwärtige
Busarchitektur. Ein "Bus" besteht aus einem
Satz von Drähten,
der verwendet wird, um die verschiedenen Halbleiterchips und Ein-/Ausgabegeräte des Rechnersystems
elektrisch untereinander zu verbinden. Elektrische Signale werden über den Bus
geleitet, so dass die verschiedenen Bauteile mit einander kommunizieren
können. 1 zeigt
eine typische Busarchitektur nach dem Stand der Technik. Praktisch
alle der heutigen Rechnersysteme verwenden diese gleiche Art des
Entwurfs von Bussystemen. Ein einzelner Bus 101 wird verwendet,
um die zentrale Verarbeitungseinheit (CPU) 103 elektrisch mit
dem Datenspeicher (zum Beispiel RAM) 107 über die
Steuerungseinheit 102 zusammenzuschalten. Weiterhin werden
verschiedene andere Anordnungen 104–106 auch mit dem
Bus 101 gekoppelt. Der Bus 101 umfasst eine Reihe
von physischen Drähten,
die verwendet werden, um digitale Daten, Adressinformation zur Bestimmung
des Zielorts der Daten, Steuersignale und Zeitsteuerungs-/Taktsignale
zu übermitteln.
Zum Beispiel kann die CPU 103 eine Anforderung dafür erzeugen,
bestimmte in Datenspeicher 107 abgelegte Daten abzurufen.
Diese Leseanforderung wird dann über
den Bus 101 an die Datenspeichersteuereinheit 102 geschickt.
Beim Empfang dieser Leseanforderung holt die Datenspeichersteuereinheit 102 die
gewünschten
Daten von Datenspeicher 107 und sendet diese über den
Bus 101 zurück an
die CPU 103. Sobald die CPU damit fertig ist, die Daten
zu verarbeiten, können
diese über
den Bus 101 gesandt werden, um sie durch eine der Anordnungen 104–106 (zum
Beispiel ein Fax, ein Modem, eine Netzwerksteuereinheit, Anordnungen
zur Datenspeicherung, Audio-/Videotreibers, usw.) auszugeben.
-
Der
größere Nachteil
bei dieser Busarchitektur nach dem Stand der Technik ist die Tatsache, dass
diese eine "gemeinsam
genutzte" Anordnung ist.
Alle der Komponenten 102–106 teilen sich denselben
Bus 101. Sie hängen
alle von einem einzelnen Bus ab, um ihren individuellen Bedarf an
Nachrichtenübermittlung
zu decken. Jedoch kann der Bus 101 zu jedem gegebenen Zeitpunkt
nur die Nachrichtenübermittlungen
zwischen zweien dieser Anordnungen 102–106 durchführen. Wenn
der Bus 101 gegenwärtig
damit beschäftigt
ist, Sendesignale zwischen zweien der Anordnungen (zum Beispiel
CPU 103 und Anordnung 105) zu übertragen, müssen daher
dann all die anderen Anordnungen (zum Beispiel Datenspeicher 102,
Anordnung 104 und Anordnung 106) auf ihren Zeitpunkt
warten, bis dieser Arbeitsvorgang abgeschlossen ist und der Bus 101 wieder
verfügbar wird.
Wenn sich ein Konflikt ergibt, klärt eine Entscheidungsschaltung,
die sich normalerweise in der Datenspeichersteuereinheit 102 befindet,
welche der Anordnungen 102–106 Priorität für den Zugriff
auf den Bus 101 erhält.
Im Grunde genommen ist der Bus 101 ähnlich einer Sammelanschlussnummer
für eine
Vielzahl von Teilnehmern, bei der jeweils nur ein einzelnes Gespräch zwischen
zweien aus einer Menge von verschiedenen, durch diese Sammelanschlussnummer
unterstützen
Telefongeräten
stattfinden kann. Wenn die Sammelanschlussnummer gegenwärtig beschäftigt ist,
muss man warten, bis die vorherigen Parteien auflegen, bevor man
seinen eigenen Anruf beginnen kann.
-
In
der Vergangenheit stellte diese Art der Busarchitektur ein einfaches,
effizientes und kosteneffektives Verfahren zur Übertragung von Daten dar. Für eine gewisse
Zeit genügte
es auch, den Bruchteil von Daten zu handhaben, der zwischen den
verschiedenen Anordnungen floss, die sich innerhalb des Rechnersystems
befanden. Als jedoch die Forderung nach gesteigerten Datenmengen
in die Höhe geschossenen
sind, mussten die Entwickler Wege finden, die Geschwindigkeit zu
verbessern, mit der Bits von Daten übertragen werden können (das
heißt Steigerung
der "Bandbreite") über den
Bus. Eine Zwischenlösung
war es, die Breite des Busses zu steigern, in dem mehr Leitungen
hinzugefügt
wurden. Die Auswirkung ist analog derjenigen, wenn eine zweispurige
Straße
durch eine zehnspurige Superautobahn ersetzt wird. Die Zunahme der
Busbreite verbraucht jedoch wertvollen Platz auf einer schon dicht
gepackten und überfüllten gedruckten
Leiterplatte. Weiterhin muss jeder der an den Bus angeschlossenen
Halbleiterchips eine äquivalente
Anzahl von Anschlüssen
aufweisen, um zur der gesteigerten Busbreite für das Empfangen und das Ausgeben
seiner Signale zu passen. Diese zusätzlichen Anschlüsse erhöhen die
Größe der Chips
bedeutend. Es wird daher schwieriger, diese Chips auf den gedruckten Leiterplatten
unterzubringen. Weiterhin auferlegen die praktischen Beschränkungen
für kosteneffiziente Chips
und deren Gehäuse
eine physische Beschränkung
der allgemeinen Größe des Chips
und seiner Anzahl an Anschlüssen.
Die Busse von heute sind typischerweise auf eine Breite von 64 Bits
beschränkt. Mit
anderen Worten können
64 Bits an Daten oder Adressen simultan und parallel über 64 separate
Leitungen gesandt werden. Der nächste
Schritt, die Busbreite auf eine Breite von 128 Bits zu steigern,
hat sich als unpraktisch erwiesen.
-
Eine
andere Zwischenlösung
zum Bandbreitenproblem war es, die Rate (das heißt die Häufigkeit) steigern, mit der
Daten über
den Bus geschickt werden. Jedoch erzeugt die Physik, die mit langen Reihen
von parallelen Leitungen mit mehrfachen Lasten verbunden ist ein
breites Spektrum an Problemen wie Impedanz, Fehlanpassungen, Reflektionen, Nebensprechen,
Rauschen, Nichtlinearitäten,
Dämpfungen,
Verzerrungen, Zeitsteuerung, usw. Diese Probleme werden noch schwerwiegender,
wenn die Frequenz zunimmt. Es ist zu einem Punkt gekommen, an dem
die am höchsten
erreichbare Frequenz etwa 33–50
MHz beträgt.
Höhere
Frequenzen können
nicht ohne gute Optimierung, äußerst enge
Toleranzen, exotische Mikrokontaktlayouts und umfangreiches Testen
erreicht werden. Es ist äußerst schwierig,
solche Hochfrequenzcomputer in einer Massenproduktion zuverlässig herzustellen.
-
Aus
EP 443 672 ;
EP 443 672 ; "Multiwavelength Networks and New Approaches
to Packet Switching" in
IEEE Communication Magazine 27(1989)October Seiten 27–35, IEEE
Infocom '88 on "Networks: Evolution
or Revolution",
Seiten 30–34; "Analysis and implementation
of a Priority Knockout Switch" von
Joseph B. Evens et al. in IEEE, 1993, 28 March 93, p. 1099–1106; IEEE
Infocom '93 proceedings
vol. 3 on "Networking:
Foundation for the Future",
Seiten 1100–1106
und "The Knockout
Switch", IEEE Vol.
SAC-5, No. 8, October 1987, Seiten 1274–1283 sind Netzwerksysteme
bekannt, die Arbeitsplatzstationen, Drucker, Server usw. durch eine Leitweglenkung
untereinander verbinden. Solche Leitweglenkungen sind jedoch nicht
innerhalb einer Computerarchitektur ausgeführt worden.
-
Geht
man von einem 64-Bit Bus aus, der bei 50 MHz betrieben wird, beträgt die am
höchsten
erreichbare Übertragungsgeschwindigkeit
für ein
typisches Rechnersystem 400 MBytes pro Sekunde. Obwohl diese Übertragungsgeschwindigkeit
ziemlich beeindruckend zu sein scheint, wird sie dennoch schnell
unzureichend, um den von den zukünftigen neuen
Anwendungen auferlegten Anforderungen zu entsprechen. Auf diese
Weise ergibt sich ein großer Bedarf
an einer Art einer Busarchitektur, die einen gesteigerten Durchsatz
zur Verfügung
stellt. Die vorliegende Erfindung bietet eine einzigartige Lösung für dieses
Problem, in dem eine neuartige Busarchitektur zur Verfügung gestellt
wird, die eine Bandbreite aufweist, die um ein Vielfaches größer ist
als diejenige von typischen Bussen nach dem Stand der Technik. Weiterhin
ist die Busarchitektur der vorliegenden Erfindung zuverlässig, kosteneffektiv
und äußerst effizient.
Ein grundlegender Unterschied besteht darin, dass die vorliegende
Erfindung, anstatt eine gemeinsam genutzte Busanordnung aufzuweisen,
Gebrauch macht von einem paktvermittelten Verbindungsschema, womit
mehrfache Datenpakete gleichzeitig von verschiedenen Anordnungen
zu verschiedenen Zielorten geschickt werden können. Daher ist die mit der
paketvermittelten Leitweglenkung-Architektur der vorliegenden Erfindung
verbundene Bandbreite bedeutend größer, weil vielfache Hochgeschwindigkeitsübertragungen
von Datenpaketen simultan auftreten können.
-
Zusammenfassung
der Erfindung
-
Es
ist ein Ziel der vorliegenden Erfindung, eine flexiblere Rechnersystemarchitektur
zur Verfügung
zu stellen, die zum Beispiel vielfache unabhängige Nachrichtenübermittlungspfade
ermöglicht.
Dieses Ziel kann durch die Merkmale der unabhängigen Ansprüche erreicht
werden.
-
Die
vorliegende Erfindung betrifft eine neuartige Architektur für das Einführen von
mehrfachen, gleichzeitigen Nachrichtenübermittlungen zwischen einer
Vielzahl von Anordnungen. Eine beliebige Anzahl von Anordnungen
ist an einzelne Ports einer zentralen paketvermittelten Leitweglenkung
angeschlossen. Aufgrund der Natur der Verbindung zwischen der Anordnung
und der paketvermittelten Leitweglenkung, können sehr hohe Übertragungsgeschwindigkeiten
mit einer minimalen Anzahl von Anschlüssen erreicht werden. Die Anordnungen
kommunizieren mit einander dadurch, dass sie Datenpakete von der
erzeugenden Anordnung an die Zielanordnung senden. Jede Anordnung
kann mit jeder anderen Anordnung durch die paketvermittelte Leitweglenkung
kommunizieren. Die paketvermittelte Leitweglenkung weist die Fähigkeit
auf, simultan eine Vielzahl von Datenpaketen von einer Vielzahl
von erzeugenden Anordnungen zu einer Vielzahl von Zielanordnungen
zu leiten. Daher können
vielfache Hochgeschwindigkeitsdatenübermittlungen simultan auftreten,
wodurch die gesamte Systembandbreite signifikant gesteigert wird.
-
Kurze Beschreibung
der Zeichnungen
-
Die
vorliegende Erfindung wird anhand von Beispielen und nicht anhand
Einschränkung
in den Figuren der begleitenden Zeichnungen veranschaulich, in denen
sich gleiche Bezugszeichen auf gleiche Elemente beziehen, und in
denen:
-
1 eine
typische Busarchitektur nach dem Stand der Technik zeigt.
-
2 ein
Blockdiagramm einer Ausführungsform
der Busarchitektur entsprechend der vorliegenden Erfindung zeigt.
-
3 ein
detaillierteres Diagramm der zu der paketvermittelten Leitweglenkung
gehörigen Grundblöcke zeigt.
-
4 einen
detaillierten Schaltplan einer Verbindungssteuereinheit zeigt.
-
5 die
gegenwärtig
bevorzugte Ausführungsform
für die
Vermittlungsmatrix zeigt.
-
6 einen
beispielhaften Vermittlungsschaltkreis für das zur Verfügung stellen
von gleichzeitigen Nachrichtenübermittlungen
zeigt.
-
7 ein
beispielhaftes Rechnersystem zeigt, auf welchem die vorliegende
Erfindung ausgeführt
werden kann.
-
Detaillierte
Beschreibung
-
Die
vorliegende Erfindung einer neuartigen paketvermittelten Leitweglenkung-Architektur,
die äußerst hohe
Bandbreite aufweist, wird beschrieben. Die neuartige paketvermittelte
Leitweglenkung-Architektur macht Gebrauch von einer zentralen paketvermittelten
Leitweglenkung, um vielfache Verbindungen zwischen verschiedenen
Komponenten eines Rechnersystems auszuwählen und herzustellen, wodurch
vielfache Hochgeschwindigkeitsnachrichtenübermittlungen über diesen
getrennten Verbindungen simultan auftreten können. In der folgenden Beschreibung
werden zahlreiche spezifische Details zum Zweck Erläuterung
dargestellt, um ein gründliches
Verständnis
der vorliegenden Erfindung zur Verfügung zu stellen. Es wird jedoch
für jemanden, der
in der Technik ausgebildet ist, offensichtlich sein, dass die vorliegende
Erfindung auch ohne diese spezifischen Details ausgeführt werden
kann. In anderen Fällen
werden bekannte Strukturen und Anordnungen in Form von Blockdiagrammen
gezeigt, um es zu vermeiden, die vorliegende Erfindung unklar zu
machen.
-
2 zeigt
ein Blockdiagramm einer Ausführungsform
der paketvermittelten Leitweglenkung-Architektur entsprechend der
vorliegenden Erfindung. Mehrere Anordnungen 202–209 sind
an eine zentrale paketvermittelte Leitweglenkung 201 angeschlossen.
Die Anordnungen 202–209 können Subsysteme
(zum Beispiel für
Graphik, für
Audio, für
Video, Datenspeicher, usw.), gedruckte Leiterplatten, einzelne Halbleiterchips
oder Chipsets (zum Beispiel RAM, ASICs, CPUs, DSPs, usw.) umfassen
und verschiedene andere Komponenten (zum Beispiel Ein/Ausgabe-Anordnungen, Überbrückungen,
Steuereinheiten, Schnittstellen, PCI-Anordnungen, usw.). Jede der
Anordnungen 202–209 weist
ihre eigene dedizierte Sende- und Empfangseinheit für das Senden
und das Empfangen von digitalen Daten auf. Acht solche Anordnungen 202–209 sind
dargestellt. Wie ebenfalls gezeigt, weist die paketvermittelte Leitweglenkung 201 acht
Ports für
die Kommunikation mit jeder der acht Anordnungen 202–209 auf.
In der vorliegenden Ausführungsform
hat jeder Port die Fähigkeit,
als entweder ein 16-Bit oder ein 8-Bit Port zu arbeiten. Jedoch
können
die Ports breiter sein als 16 Bits oder schmäler sein als 8 Bits. Jeder
Port verwendet zwei Verbindungen: eine für das Senden (Quellverbindung)
und eine für
das Empfangen (Zielverbindung). Das System ist jedoch skalierbar,
so dass es mehr oder weniger Anordnungen handhaben kann. Durch das
Hinzufügen
von weiteren Ports können
zusätzliche
Anordnungen über
die paketvermittelte Leitweglenkung 201 in das Rechnersystem
integriert werden. Jede dieser Anordnungen 202–209 weist ihre
eigene dedizierte Verbindung auf. Eine Verbindung ist dabei definiert
als die physische Verbindung von der paketvermittelten Leitweglenkung 201 zu
jeder der Anordnungen 202–209. Eine Verbindung kann
einseitig gerichtet oder bidirektional sein. Die gegenwärtig bevorzugte
Ausführungsform
jedoch hat die Einrichtung von unidirektionalen Punkt-zu-Punkt Verbindungen
zur Folge, um eine geregelte Impedanzübertragungsleitung zur Verfügung zu
stellen. Die Übertragungsgeschwindigkeit
auf jeder der Verbindungen beträgt
400 MHz (2 Byte·400
MHz = 800 Megabytes pro Sekunde in jede Richtung = 1,6 Gigabyte pro
Sekunde pro Port).
-
Die
paketvermittelte Leitweglenkung 201 kann angewiesen werden,
eine Verbindung zwischen zwei beliebigen gewünschten Anordnungen herzustellen.
Daraufhin kann eine Quellanordnung ihr Paket von Daten über die
Verbindung an die Zielanordnung senden. Sofort nachdem das Paket
gesandt wurde, kann eine neue Verbindung eingerichtet werden, und
die Quellanordnung kann die Übertragung eines
anderen Pakets zu einer anderen Zielanordnung initiieren. Gleichzeitig
kann eine andere Quellanordnung ihr Datenpaket über eine separate Verbindung
an ihre beabsichtigte Zielanordnung senden. Zum Beispiel kann die
Anordnung 202 mit der Anordnung 203 verbunden
werden. Die Anordnung 202 sendet eine Paket an die Anordnung 203.
Später kann
die paketvermittelte Leitweglenkung 201 angewiesen werden,
eine dedizierte Verbindung zwischen der Anordnung 202 und
der Anordnung 203 herzustellen. Dann kann ein Paket von
der Anordnung 202 zu der Anordnung 203 gesendet
werden. Grundsätzlich
ist die Anordnung 202 dazu in der Lage, mit jeder der mit
der paketvermittelten Leitweglenkung 201 verbundenen anderen
Anordnungen 203–209 verbunden
zu werden. In der vorliegenden Erfindung können eine oder mehrere Verbindungen
zu jeder vorgegebenen Zeit hergestellt werden. Eine erste Verbindung
kann zum Beispiel zwischen den Anordnungen 202 und 209 hergestellt
werden während
simultan eine zweite Verbindung zwischen den Anordnungen 203 und 205 hergestellt
werden kann. Dadurch kann die Anordnung 202 ein Paket an
die Anordnung 209 senden. Zu derselben Zeit kann die Anordnung 203 ihr
Paket an die Anordnung 205 senden. Mit acht Anordnungen
kann es bis zu vier separate Paketübertragungen geben, die zu
derselben Zeit stattfinden. Zusätzliche
1,6 Gigabyte pro Sekunde an Bandbreite werden einfach durch Einführen einer zweiten
Verbindung erreicht. Daher wird die Bandbreite bei der vorliegenden
Erfindung lediglich dadurch auf den gewünschten Grad gesteigert, in
dem zusätzliche
Verbindungen hergestellt werden. Auf diese Weise macht die vorliegende
Erfindung, anstatt ein gemeinsam genutztes Busschema mit nur einer Nachrichtenübermittlung über eine
gemeinsam genutzte Sammellei tung aufzuweisen, Gebrauch von einer
paketvermittelten Leitweglenkung-Architektur, um vielfache Verbindungen
herzustellen, so dass vielfache Datenpakete gleichzeitig übermittelt
werden können.
-
3 zeigt
ein detaillierteres Diagramm der wesentlichen, mit der paketvermittelten
Leitweglenkung verbundenen Blöcke.
Die gegenwärtig
bevorzugte Implementierung der Architektur verwendet ein paketvermittelndes
Protokoll hoher Geschwindigkeit. Ein Datenpaket bezieht sich auf
eine Minimaleinheit des Datentransfers über eine der Verbindungen.
Pakete können
eine von mehreren festen Größen aufweisen,
die sich von einer doppelten Wortlänge (das heißt 8 Byte)
bis zu einer vollen Cacheleitung (das heißt 128 Byte) zuzüglich eines
Anfangsblocks erstrecken. Die Datenpakete werden quellensynchron übertragene
(das heißt
das Taktsignal wird mit den Daten gesendet) bei Raten von bis zu
800 MB/Sekunde für
16-Bit Verbindungen und bis zu 400 MB/Sekunde für 8-Bit Verbindungen. Aufgeteilte Transaktionen
werden verwendet, um Daten zu senden, wobei eine Initiatoranordnung 301 ein
Anforderungspaket (zum Beispiel einen Lesebefehl oder einen Schreibbefehl
plus Daten) zu einer Zielanordnung 302 sendet, die dann
mit einem Antwortpaket antwortet (zum Beispiel Daten oder wahlweise
einer Schreibbestätigung).
Die paketvermittelte Leitweglenkung 303 führt die
Funktionen einer Vermittlungsmatrix aus. Die Anordnung 301,
die ein Paket zu einer anderen Anordnung 302 übertragen
möchte, überträgt das Paket
zuerst an ihren zugehörigen
Eingangspaketpuffer. Sobald die Information zur Leitweglenkung des
Pakets korrekt empfangen worden ist, beginnt die Entscheidung für die Zielverbindungssteuereinheit 308.
Das Paket wird dann gespeichert, bis die entsprechende Quellverbindungssteuereinheit 304 erfolgreich
Zugang zu der Zielverbindungssteuereinheit 308 erhalten
kann. Sobald der Zugang gewährt
ist, wird das Paket durch die Vermittlungsmatrix 313 zur
Zielverbindungssteuereinheit 308 übertragen und wird anschließend an
die Zielanordnung 302 übertragen.
-
Daher
umfassen die wesentlichen funktionellen Blöcke, die der paketvermittelten
Leitweglenkung 303 zugehörig sind, Verbindungssteuereinheiten 304–311,
eine interne Schnittstelle 312 und die Vermittlungsmatrix 313.
Die Verbindungssteuereinheiten 304–311 verarbeiten alle
Paketübertragungen
auf dem Verbindungsport zwischen einer Anordnung und der paketvermittelten
Leitweglenkung. Die Verbindungssteuereinheiten 304–311 bestehen
aus zwei Subblöcken:
der Quellenverbindungssteuereinheit und der Zielverbindungssteuereinheit.
Die Quellenverbindungssteuereinheit steuert alle Paketbewegungen
von einer Quellenverbindung an den internen Kreuzschienenverteiler 313.
Umgekehrt steuert eine Zielverbindungssteuereinheit alle Paketbewegungen von
der paketvermittelten Leitweglenkung zur Zielverbindung. Der Kreuzschienenverteiler 313 ist
ein Schalter mit neun Ports, der die Quellenverbindungssteuereinheiten
mit den Zielverbindungssteuereinheiten verbindet. Zusätzlich ist
ein Port auf dem Kreuzschienenverteiler 313 für die interne
Schnittstelle 312 reserviert. Die interne Schnittstelle 312 enthält die Schnittstelle
zu allen der paketvermittelten Leitweglenkung 303 internen
Registern und arbeitet auch während
der Fehlerbehandlung in Verbindung mit den Verbindungssteuereinheiten.
Jeder dieser wesentlichen Blöcke
wird im Detail nachfolgend beschrieben.
-
4 zeigt
einen detaillierten Schaltplan einer Verbindungssteuereinheit. Die
Verbindungssteuereinheit ist in zwei Abschnitte eingeteilt, eine
Quellverbindungssteuereinheit 401 und eine Zielverbindungssteuereinheit 402.
Die Quellenverbindungssteuereinheit 401 handhabt allen
Verkehr zwischen der Quellenverbindung und der Vermittlungsmatrix 403.
Die Pakete werden auf der Quellenverbindung übertragen und die Daten werden
von dem quellensynchronen Empfänger
(Source Synchronous Receiver SSR) 403 und das Link Level
Protocol (LLP) Empfangsmodul 404 empfangen. Die Daten werden in
Mikropaketen übertragen,
um fehlerfreie Übertragung
sicherzustellen. Jedes Mikropaket umfasst 128 Bits von Daten, 16
Prüfbits,
4 Bits einer Übertragungsreihenfolgennummer,
4 Bits einer Empfangs reihenfolgennummer und 8 Bits einer Seitenbandinformation.
Das SSR 403 empfängt
den schmalen, 400 MHz Datenstrom und das übertragene Taktsignal. Es verwendet
das Taktsignal, um den Datenstrom in einen breiten, 100 MHz Datenstrom
zurückzuwandeln.
Daher ist der überwiegende
Anteil der Logik der paketvermittelten Leitweglenkung von den Hochgeschwindigkeitsverbindungen
isoliert und läuft bei
einer 100 MHz Kerntaktfrequenz. Das LLP Modul erneuert die Fehlerprüfbits von
den erhaltenen Daten und vergleicht sie mit den erhaltenen Prüfbits um
sicherzustellen, dass keine Fehler aufgetreten sind.
-
Die
Funktion des LLP Empfangsmoduls 404 ist es, die oberen
Bereiche der Logik in der Verbindungssteuereinheit vom Link Level
Protocol (LLP) zu isolieren. Im Wesentlichen entfernt das SSR 403 und das
LLP Empfangsmodul 404 alle Verbindungsprotokollinformation
und reicht die Daten an die nächsten Stufen
der Logik weiter.
-
Danach
durchsucht die Paketempfangssteuerungslogik 405 die Seitenbanddaten
nach einem "Anfang
des Pakets" Code.
Wenn dieser Code empfangen wird, beginnt die Steuerungslogik 405,
einen der 4 Paketeingangspuffer 406 zu füllen. Die
Paketeingangspuffer 406 dienen zwei Zwecken. Erstens stellen
sie einen Platz zur Verfügung,
um ein Paket vorläufig
zu speichern, wenn das Paketziel belegt ist. Und zweitens stellen
sie einen Abgleich der Übertragungsraten
zwischen den Datenströmen
zur Verfügung,
die vom LLP und von der Vermittlungsmatrix kommen. Die Paketempfangssteuerungslogik 405 extrahiert
auch relevante Informationen aus den Befehlswortanteilen der Pakete
und stellt diese in die Anforderungswarteschlange, die sich im Anforderungsmanager 407 befindet.
Die in die Anforderungswarteschlange geschriebene Information definiert den
Zielort, die Priorität
und den Typ (das heißt
Anforderung oder Antwort) des Pakets. Es ist die Aufgabe des Anforderungsmanager
zu bestimmen, welche Pakete zur Entscheidung geeignet sind. Während das
Paket empfangen wird und in einen der Paketeingangspuffer 406 übertragen
wird, überprüft der Anforderungs manager 407 den
Status des Zielports und die Prioritäten der Paket in der Warteschlange, um
zu bestimmen, welches der Pakete im Pakteingangspuffer 406 die
höchste
Priorität
aufweist. Wenn das Paket, das gerade in die Warteschlange gekommen
ist die höchste
Priorität
aller gegenwärtig
in der Schlange befindlicher Pakete aufweist, wird es an die Spitze
der Warteschlange gestellt und die Entscheidungsphase beginnt mit
diesem Paket. Wenn es in der Warteschlange bereits Verbindungsanforderungen
mit höherer
Priorität
gibt, wartet das Paket, bis diese Anforderungen bedient wurden.
-
Während der
Entscheidungsphase sendet der Anforderungsmanager 407 der
mit dem Zielort dieses Pakets verbundenen Zielverbindungssteuereinheit
eine Verbindungsanforderung (port_req) zu. Der Anforderungsmanager 407 alarmiert
dann die Paketversandsteuerung 408, dass eine Verbindungsentscheidung
im Gang ist. Wenn das Paket die Entscheidung gewinnt, wird ein port_grant
Signal von der Zielverbindungssteuereinheit an die anfordernde Quelle
zurückgeschickt.
Daraufhin beginnt der Versandsteuerung 408 die Pakete aus
dem Paketeingangspuffer 406 und in die Vermittlungsmatrix 409 zu übertragen.
Der Anforderungsmanager 407 zieht dann den Eintrag aus
der Anforderungswarteschlange zurück. Während die Versandsteuerung 408 die Pakete überträgt, überwacht
sie auch, ob der Zielort gegenwärtig
weitere Daten annehmen kann. Wenn sich die Übertragung der Pakete der Fertigstellung nähert, gibt
die Versandsteuerung 408 die Steuerung des Zielports durch
Bestätigung
des Portfreigabesignals frei. Dies gibt den Verbindungsentscheider 410 frei,
um mit einer neuen Entscheidungsphase zu beginnen und eine neue
Verbindung herzustellen.
-
Immer
noch in Bezug auf 4 handhabt die Zielverbindungssteuereinheit 402 allen
Paketverkehr zwischen der Vermittlungsmatrix und der Zielverbindung.
Zusätzlich
dazu steuert sie allen Zugriff auf den Zielport durch den Verbindungsentscheider 410.
Der Verbindungsentscheider 410 ist dafür verantwortlich, unter all
den Quellenverbindungssteuereinheiten auszuwählen, die anfordern, eine Verbindung
zu seinem Zielport herzustellen. Der Entscheidungsträger 410 durchsucht
allen gegenwärtigen
port_req Signale und schickt ein port_grant Signal an die ausgewählte Quellenverbindungssteuereinheit
zurück.
Er aktualisiert dann den Status des Zielports (port_status). Während die
port_grant Bestätigung gesendet
wird, legt der Verbindungsentscheider 410 auch die Schaltvorgänge der
Vermittlungsmatrix, damit dies mit den ersten Daten zusammenzufallen,
die am Zielport der Quellenverbindungssteuereinheit ankommen. Ein
neuer Entscheidungslauf beginnt, wenn der Entscheider 410 ein
Portfreigabesignal von der Quellenverbindungssteuereinheit empfängt.
-
Die
Daten werden direkt von der Vermittlungsmatrix an das LLP Sendemodul 411 geleitet. Das
LLP Sendemodul 411 enthält
einen internen Puffer, der verwendet wird, um zwei Funktionen auszuführen. Zum
Ersten wird ein Teil dieses Puffers für das Unterstützen des
LLP Gleitfensterprotokolls verwendet. Während Daten über die
Verbindung übertragen
werden, werden sie auch in den Puffer geschrieben. Wenn der Erhalt
der Daten vom Empfänger
bestätigt
wird, werden die Pufferplätze
geräumt. Wenn
jedoch eine Bestätigung
nicht empfangen wird, werden die Daten nochmals übertragen. Im normalen Betrieb
mit Paketen, die richtig empfangen werden, wird nur ein Teil des
Puffers verwendet, um dieses Protokoll zu unterstützen. Zum
Zweiten wird der übrige
Platz im Puffer verwendet, um einen Abgleich zwischen der mit 800
MB/Sekunde arbeitenden Vermittlungsmatrix 409 und den 400
8-Bit MB/Sekunde Verbindungen herzustellen. Dieses Pufferung erlaubt
es einer 16-Bit Quellenverbindungssteuereinheit oder einer 8-Bit
Quellenverbindungssteuereinheit, die ein volle Paket angesammelt
haben, mit der vollen Übertragungsgeschwindigkeit
an eine 8-Bit Zielverbindung zu übertragen.
Dadurch kann die Quellenverbindungssteuereinheit dann zur Bedienung
eines anderen Zielortes übergehen,
während
die Übertragung auf
der Zielverbindung geschieht.
-
Eine
Beschreibung der internen Schnittstelle 312 wird nachfolgend
dargestellt. Jeglicher Zugang zu den internen Registern in der paketvermittelten Leitweglenkung
wird über
diese interne Schnittstelle ausgeführt. Anordnungen, die eine
Anforderung stellen, diese Register zu verändern, sollten ihre Anforderungspakete
an das interne Schnittstellenziel richten. Die interne Schnittstelle
arbeitet sehr ähnlich
wie jede andere Ausführungsform
von Verbindungssteuereinheiten. Quellenverbindungssteuereinheiten,
die eine Verbindung mit der internen Schnittstelle wünschen,
senden eine Verbindungsanfrage zu der internen Schnittstelle. Der
Entscheider innerhalb der internen Schnittstelle sendet eine Bestätigung und empfängt dann
die Pakete. Nachdem die interne Schnittstelle die Pakete erhalten
hat, führt
sie die entsprechenden Vorgänge
auf den Registern der paketvermittelten Leitweglenkung aus. Wenn
eine Antwort erforderlich ist, formt die interne Schnittstelle ein
Antwortpaket aus und überträgt es über die
Vermittlungsmatrix zurück
auf die initiierende Anordnung.
-
Es
gibt viele verschiedene Schaltungsentwürfe die verwendet werden können, um
die Vermittlungsmatrix zu realisieren. Die gegenwärtig bevorzugte
Ausführungsform
für die
Vermittlungsmatrix wird in 5 gezeigt.
Die Vermittlungsmatrix 501 weist neun 68-Bit breite 8:1
Multiplexer auf. Jeder der Quellports kann gleichzeitig mit jedem
der Zielports verbunden werden. Die Schalterverbindung wird in einem
Kerntaktzyklus von den Daten durchquert. Daher ist es für Quellenverbindungssteuereinheiten
notwendig, die Vermittlungsmatrix mit in Registern abgelegten Ausgaben
anzusteuern und für
die Zielverbindungssteuereinheiten ist es notwendig, die Daten in den
Registern abzulegen. Zum Zweck der Darstellung wird ein Paar von
diesen Multiplexern 502 und 503 für das Verbinden
einer ersten Verbindungssteuereinheit 504 mit einer zweiten
Verbindungssteuereinheit 505 gezeigt. Auf der Verbindung 506 erhaltene
Daten werden durch den Quellenverbindungssteuereinheit 507 geleitet
und in den Multiplexer 502 eingegeben. Der Multiplexer 502 wird
angewiesen, die entsprechende Eingangslei tung zu wählen, die mit
der Ausgabeleitung 508 verbunden werden soll. Dies bewirkt,
dass die Daten schließlich
in die Zielverbindungssteuereinheit 509 eingegeben und
auf einen Port auf Verbindung 510 ausgegeben werden. Auf
die gleiche Weise werden Daten in der Verbindung 511 in
die Quellenverbindungssteuereinheit 512 eingegeben. Die
Daten werden dann von der Quellenverbindungssteuereinheit 512 verarbeitet und
als Eingangssignal auf Leitung 513 an den Multiplexer 503 gesandt.
Der Multiplexer 503 wird angewiesen, die entsprechenden
Eingangsleitungen 513 zu wählen und eine Verbindung zu
den entsprechenden Leitungen 514 zur Eingabe in die Zielverbindungssteuereinheit 515 herzustellen.
Dadurch verarbeitet die Zielverbindungssteuereinheit 515 die
erhaltenen Daten und schickt diese über die Verbindung 516 hinaus
an den Zielport. Es sollte beachtet werden, dass vielfache Gruppen
von Eingangssignalen von jeder der Verbindungssteuereinheiten in
jeden der neun Multiplexer eingegeben werden. Dadurch kann jeder
Multiplexer wählen,
welche dieser mehrfachen Eingangssignale mit seiner Zielverbindung
verbunden werden soll.
-
6 zeigt
einen beispielhaften Vermittlungsschaltkreis, um gleichzeitige Nachrichtenübermittlungen
zur Verfügung
zu stellen. Vier separate Anordnungen 601–604 sind
mit der paketvermittelten Leitweglenkung 605 durch vier
Paare von Verbindungen verbunden. Die paketvermittelte Leitweglenkung 605 weist
vier Verbindungssteuereinheiten 606–609 und die Vermittlungsmatrix 610 auf.
Die Vermittlungsmatrix 610 weist vier Multiplexer 611–614 auf.
Jeder der Multiplexer 611–614 akzeptiert Eingangssignale von
drei Quellverbindungen und Ausgaben an eine Zielverbindung. Diese
Multiplexer können
so angewiesen werden, dass Verbindungen von einer bestimmten Anordnung
zu jeder der anderen drei Anordnungen hergestellt werden können. Zum
Beispiel kann die Ausgabeverbindung der Anordnung 601 mit der
Zielanordnung 602 über
den Multiplexer 611 verbunden werden; Zielanordnung 603 über den
Multiplexer 612; oder Zielanordnung 604 über den
Multiplexer 613. Ebenso kann die Ausgabeverbindung von Anordnung 603 mit
der Zielan ordnung 601 über
den Multiplexer 614 verbunden werden; Zielanordnung 602 über den
Multiplexer 611; oder Zielanordnung 604 über den
Multiplexer 613.
-
Außerden können Signalwege
eingeführt werden,
um mehrere gleichzeitige Paketübertragungen
zur Verfügung
zu stellen. Zum Beispiel kann die Anordnung 602 mit der
Anordnung 604 über
den Multiplexer 613 verbunden werden. Und die Anordnung 603 kann
mit der Anordnung 601 über
den Multiplexer 614 verbunden werden. Dadurch können drei
separate Pakete von Daten gleichzeitig gesendet werden: packet1
von der Quellanordnung 601 zu der Zielanordnung 602,
packet2 von der Quellanordnung 602 zu der Zielanordnung 604 und
packet3 von der Quellanordnung 603 zu der Zielanordnung 601.
In einer alternativen Ausführungsform
können
Verbindungen zwischen einer einzelnen Quellanordnung und mehreren
Zielgeräten
hergestellt werden. Zum Beispiel kann die Anordnung 601 Daten
an beide Anordnungen 603 und 604 simultan senden.
Umgekehrt können
alle Quellanordnungen 602, 603 und 604 Pakete
an 601 senden. Die Entscheidung wird bei der Verbindungssteuereinheit 606 für die vielfachen Quellen
getroffen, die an Anordnung 601 senden. Natürlich kann
die Schaltung skaliert werden, um zusätzliche Anordnungen durch Hinzufügen von
mehr Verbindungen, Verbindungsstenereinheiten und Multiplexern unterzubringen.
-
Es
gibt viele verschiedene Rechnersystemkonfigurationen, auf die die
paketvermittelte Leitweglenkung-Architektur der vorliegenden Erfindung
angewandt werden kann. Ein solches beispielhaftes Rechnersystem
wird in 7 gezeigt. Die paketvermittelte
Leitweglenkung 701 weist ein Paar von direkten Punkt-zu-Punkt
Verbindungen zu der Datenspeichersteuereinheit 702 auf.
Die Datenspeichersteuereinheit 702 erleichtert den Transfer
von Daten zwischen einem oder mehreren Mikroprozessoren 703 und
dem Hauptdatenspeicher 704. Eine Hochgeschwindigkeitscatenspeicherbus 705 (zum
Beispiel 1 GByte/Sekunde) wird verwendet, um die Datenspeichersteuereinheit 702 mit
dem eigentlichen Hauptdatenspeicher 704 zu verbinden. Um
die Leistung zu verbessern, können
die Mikroprozessoren 703 Daten vorübergehend im Cache 706 zwischenspeichern. Andere
Anordnungen, die mit der paketvermittelten Leitweglenkung 701 verbunden
sein können,
umfassen ein oder mehrere graphische Subsysteme 707–708.
Die graphischen Subsysteme 707–708 führen Funktionen
wie Suchumwandlung, Texturierung, Anti-Aliasing usw. aus. Weiterhin
kann eine Videobaugruppe 709, die Kompressions-/Dekompressionsfähigkeiten
aufweist, mit der paketvermittelten Leitweglenkung 701 verbunden
sein. Eine Brückenanordnung 710 kann
ebenfalls mit der paketvermittelten Leitweglenkung 701 verbunden
sein. Die Brücke 710 wirkt
als Schnittstelle, so dass verschiedene Serien-PCI-Anordnungen (zum
Beispiel Graphikcontroller, Modems, Plattencontroller usw.) über Standard-SCSI 711,
IOC 712 mit dem Rechnersystem und mit Audioports 713 verbunden
werden können. Eine
zweite Brücke 714 kann
hinzugefügt
werden, um die Erweiterungs-PCI-Slots 715–717 zur
Verfügung
zu stellen. Die Ports 718 und 719 werden verwendet,
um zukünftiges
Wachstum und Ausbaufähigkeit
für das
Rechnersystem zur Verfügung
zu stellen.
-
Die
vorangegangenen Beschreibungen von bestimmten Ausführungsformen
der vorliegenden Erfindung sind zum Zweck der Illustration und Beschreibung
gezeigt worden. Es ist nicht beabsichtigt, dass sie erschöpfend sind
oder dass sie die Erfindung auf die exakten offenbarten Ausführungsformen
beschränken
und viele Änderungen
und Abwandlungen sind möglich
im Licht der oben dargestellten Lehre. Die Ausführungsformen wurden gewählt und
beschrieben, um die Prinzipien des Erfindung und ihre praktische
Anwendung am besten zu erklären,
und um dadurch Anderen, die in der Technik ausgebildet sind, am
besten zu ermöglichen
Gebrauch von der Erfindung und den verschiedenen Ausführungsformen
mit verschiedenen Änderungen
zu machen, wie diese für
die in Erwägung
gezogene besondere Verwendung geeignet sind. Es ist beabsichtigt,
dass der Schutzumfang der Erfindung durch die hierzu angehängten Ansprüche und
ihre Entsprechungen definiert wird.