DE69332328T2 - Paketschalter mit grosser Bandbreite - Google Patents
Paketschalter mit grosser BandbreiteInfo
- Publication number
- DE69332328T2 DE69332328T2 DE69332328T DE69332328T DE69332328T2 DE 69332328 T2 DE69332328 T2 DE 69332328T2 DE 69332328 T DE69332328 T DE 69332328T DE 69332328 T DE69332328 T DE 69332328T DE 69332328 T2 DE69332328 T2 DE 69332328T2
- Authority
- DE
- Germany
- Prior art keywords
- buffer
- packet
- data
- pointer
- further characterized
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 239000000872 buffer Substances 0.000 claims abstract description 149
- 230000004044 response Effects 0.000 claims description 14
- 238000000034 method Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims 2
- 230000005540 biological transmission Effects 0.000 abstract description 13
- 230000000694 effects Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 24
- 238000004891 communication Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 11
- WBMKMLWMIQUJDP-STHHAXOLSA-N (4R,4aS,7aR,12bS)-4a,9-dihydroxy-3-prop-2-ynyl-2,4,5,6,7a,13-hexahydro-1H-4,12-methanobenzofuro[3,2-e]isoquinolin-7-one hydrochloride Chemical compound Cl.Oc1ccc2C[C@H]3N(CC#C)CC[C@@]45[C@@H](Oc1c24)C(=O)CC[C@@]35O WBMKMLWMIQUJDP-STHHAXOLSA-N 0.000 description 9
- VLCQZHSMCYCDJL-UHFFFAOYSA-N tribenuron methyl Chemical compound COC(=O)C1=CC=CC=C1S(=O)(=O)NC(=O)N(C)C1=NC(C)=NC(OC)=N1 VLCQZHSMCYCDJL-UHFFFAOYSA-N 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 230000003139 buffering effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 206010000210 abortion Diseases 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013506 data mapping Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000010363 phase shift Effects 0.000 description 1
- 238000009420 retrofitting Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/103—Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3018—Input queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3027—Output queuing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)
Description
- Die vorliegende Anmeldung hängt mit der EP-A-0581485 zusammen, im folgenden "CPM" genannt, die gleichzeitig mit der vorliegenden Anmeldung eingereicht wurde.
- Die vorliegende Erfindung betrifft das Gebiet paketvermittelter Kommunikationsnetze und insbesondere Paketvermittlungs-Steuerdateninformationen zwischen Steuereinheiten in einem Vermittlungssystem mit verteilter Verarbeitung.
- Wenn mehr paketierte Daten auf dem Fernsprechnetz übertragen werden, muß die Geschwindigkeit (Bandbreite) des Netzes vergrößert werden. Moderne Telekommunikationsnetze können nur so schnell sein, wie die Paketvermittlungssysteme, mit denen die Datenpakete von der Quelle zum Ziel gelenkt werden. Deshalb werden Paketvermittlungssysteme mit höherer Bandbreite benötigt.
- Vermittlungssysteme verwenden mehr und mehr eine verteilte Steuerung, um die Geschwindigkeit zu vergrößern, mit der sie Datenpakete und Sprechverbindungen vermitteln können. Vermittlungssysteme mit verteilter Steuerung, die als Konzept als kleine Telekommunikationsnetze aufgefaßt werden können, verwenden eine Paketvermittlung zum schnellen Übermitteln von Steuerinformationen zwischen verteilten Prozessoren. Ohne schnelle Übermittlung von Steuerinformationen würde die Kapazität der Vermittlung durch die zu einem gegebenen Zeitpunkt abwickelbare Anzahl von Steuernachrichten beschränkt, wodurch ein Engpaß in dem Netz entsteht. Deshalb ist sowohl in dem Netz im allgemeinen als auch im Vermittlungssystemen mit verteilter Verarbeitung insbesondere eine Paketvermittlung mit hoher Bandbreite notwendig.
- Verschiedene Paketvermittlungssysteme wurden zum Lenken von Steuerinformationen in Vermittlungssystemen mit verteilter Verarbeitung mit verschiedenen Erfolgen versuchsweise eingesetzt. Bestimmte Systeme stellten eine separate Steuerungs-Busstruktur bereit, die für alle Übermittlungen zwischen den Prozessoren verwendet werden sollte. Andere Systeme verwendeten eigene Kommunikationswege des Vermittlungssystems zur Bereitstellung der Kommunikation zwischen den verteilten Systemprozessoren und einer Zentral Steuerung, die Steuerinformationen interpretiert und den Gesamtbetrieb des Vermittlungssystems dirigiert. Diese bekannten Systeme erfordern jedoch die Durchführung komplexer und zeitaufwendiger Operationen bei ihren Implementierungen. Da solche Systeme eine Zentral Steuerung verwenden, um die verteilten Prozessoren zu dirigieren, können sie die verteilte Verarbeitung nicht voll ausnutzen.
- Aus der EP-A-0 422 910 sind mehrere speichergestützte Paketvermittlungen mit großer Kapazität bekannt. Bei einer ersten Ausführungsform sind mehrere Eingangsports mit einem zentralisierten Warteschlangenspeicher verbunden; der Speicher ist mit mehreren Ausgangsports und einem Verarbeitungsmittel verbunden. Jeder Eingangsport enthält einen Eingangspuffer. Jeder Ausgangsport enthält einen Ausgangspuffer. Pakete werden an den Eingangsports empfangen und in die entsprechenden Eingangspuffer eingelesen. Bei Empfang eines Pakets in dem Eingangspuffer wird das Paket über einen "N-Bit"-Parallelbus zu einem zentralisierten Warteschlangenspeicher transferiert. Das Paket wird dann zu einem jeweiligen Ausgangspuffer transferiert/- der gemäß einer mit dem Paket empfangenen Adresse gewählt wird, und dann seriell aus der Vermittlung herausgetaktet. Bei einer zweiten Ausführungsform sind mehrere Eingangsports mit einem Bus verbunden, der mit mehreren Ausgangsports verbunden ist. Jeder Eingangsport enthält einen Eingangspuffer. Jeder Ausgangsport enthält einen Ausgangspuffer, der als eine separate Warteschlange wirkt und mehrere Pakete speichern kann. Pakete werden an den Eingangsports empfangen und in die entsprechenden Eingangspuffer eingelesen. Bei Empfang eines Pakets in dem Eingangspuffer wird es über den Bus zu einem jeweiligen Ausgangspuffer transferiert, der gemäß einer mit dem Paket empfangenen Adresse gewählt wird, und dann seriell aus der Vermittlung herausgetaktet.
- Aus der EP-A-0 339 735 ist eine Knotenvermittlung zum Übertragen von paketvermittelten Informationen von einem Bus zu einem anderen Bus in einem asynchronen Zeitmultiplexsystem bekannt. Die Knotenvermittlung umfaßt einen Übersetzungsspeicher zum Übersetzen von Paketadressen in neue Adressen, einen Komparator zum Wählen der Pakete, die zu einem anderen Bus geroutet werden sollen, und einen Warteschlangenspeicher zum Speichern gewählter Pakete, bis eine Einfügeschaltung die gewählten Pakete in den Warteschlangenspeicher auf dem anderen Bus einreiht.
- Eine Steuerinformations-Kommunikationsanordnung gemäß der Erfindung des U.S.-Patents Nr. 4,322,843 von H. J. Beuscher et al., ausgegeben am 30.3.1982, erzielt die Vorteile der Kommunikation zwischen Prozessoren unter gleichzeitiger Verminderung der Komplexität und der zeitaufwendigen Beschaffenheit vorheriger Anordnungen. Gemäß einem Ausführungsbeispiel der Erfindung des Patents von Beuscher kommunizieren Steuereinheiten miteinander über bestimmte Kommunikationswege des Vermittlungssystems mittels Steuernachrichten oder Paketen, die mehrere Steuerwörter umfassen. Eine in dem System enthaltene Steuerverteileinheit akkumuliert die empfangenen Steuerwörter zu Steuerpaketen und speichert alle solchen Steuerpakete in einen gemeinsam genutzten Speicher. Die Steuerpakete werden dann sequentiell paketvermittelt, indem die Pakete einzeln von dem gemeinsam genutzten Speicher zu entsprechenden Einrichtungen zur nachfolgenden Übertragung zu durch die Paketköpfe definierten Zielsteuereinheiten übermittelt werden. Die sequentielle Beschaffenheit des Paketvermittlungsmechanismus begrenzt jedoch wesentlich die Kapazität der Steuerverteileinheit zum Vermitteln von Steuerpaketen. Diese Beschränkung wird besonders signifikant, wenn die Systemsteuerprozessoren zum Implementieren von Merkmalen verwendet werden, die der Bereitstellung von ISDN-Fähigkeiten (Integrated Services Digital Network) zugeordnet sind.
- Eine potentielle Lösung dieses Problems befindet sich in dem U.S.-Patent Nr. 4,821,259 von DeBruler et al., ausgegeben am 11.4.1989, worin eine Paketvermittlung zur Kommunikation zwischen Modulen in einer Vermittlung offengelegt wird, die Steuerpakete zwischen Modulen über unabhängige Wege zur Übertragung zu Zielsteuereinheiten zu schnellen abgehenden Paketkanälen paketvermittelt. Eine Paketvermittlung auf Ringbasis wird in einem Ausführungsbeispiel der Erfindung des Patents von DeBruler offengelegt, wobei ein Leitungs-Koppelfeld in Echtzeit durch einen schnellen Mehrfach-Token- Weiterleitungsring gesteuert wird. Dieses System kann jedoch nur unter hohen Kosten im nachhinein in ein bestehendes Vermittlungssystem eingebaut werden, da Paketkanäle und Leitungskanäle getrennt werden müssen, wenn die Strecke das erste Mal in die Verbindungseinheit zwischen Modulen eintritt, und da an jedem Modul der Vermittlung mit verteilter Verarbeitung, das durch dieses System kommuniziert, sowie an allen Paket- und Leitungsvermittlungs- Steuereinheiten Modifikationen vorgenommen werden müssen.
- Ferner weist jede dieser Paketvermittlungen eine Pufferung des ankommenden Datenpakets am Eingangsort auf. Diese Pufferung erfordert mindestens die Dauer des Empfangs eines Pakets, um ein Datenpaket zu akkumulieren, bevor es durch die Paketvermittlung gelenkt wird, und nimmt somit Zeit in Anspruch, bevor das Paket vermittelt werden kann. Außerdem ist das Bewegen eines gesamten Datenpakets durch eine Vermittlung ein zeitaufwendiger Vorgang. Bei bestimmten Beispielen, wie zum Beispiel DeBruler, wird das Datenpaket am Ausgangsport nochmals gepuffert, was weitere Zeit in Anspruch nimmt. Die Pufferung von Paketen, vor und/oder nach der Vermittlung verursacht deshalb einen Leistungsverlust bei bekannten Paketvermittlungen.
- Im Hinblick auf die obigen Darlegungen besteht anerkannterweise ein Problem in der Technik in der begrenzten Kapazität von Paketvermittlungseinrichtungen, die für die Steuerkommunikation zwischen Prozessoren in Vermittlungssystemen mit verteilter Verarbeitung verwendet werden.
- Eine Vermittlung und ein Verfahren gemäß der Erfindung werden in den unabhängigen Ansprüchen definiert.
- Eine kostengünstige schnelle Paketvermittlung gemäß der vorliegenden Erfindung verwendet einen Puffer, der direkt zwischen mehrere Eingangsports und mehrere Ausgangsports geschaltet ist, um einen schnellen Durchsatz von Datenpaketen zu bewirken. Vorteilhafterweise wird bei Empfang einer Benachrichtigung über ein ankommendes Paket an dem Empfangs-Eingangsport durch einen Puffer-Manager ein Zeiger auf eine Speicherstelle in dem Puffer zugeteilt, und der Eingangsport liefert das Paket, während es empfangen wird, zu der durch den Zeiger angegebenen Speicherstelle. Nachdem das Datenpaket empfangen wurde, liefert der Eingangsport den Zeiger und eine Zieladresse für das Paket zu einem Router, der auf der Grundlage der Zieladresse einen der mehreren Ausgangsports auswählt. Der Router reiht den Zeiger in eine Warteschlange für den gewählten Ausgangsport ein. Unter Verwendung des Zeigers zur Bestimmung der Speicherstelle ruft der Ausgangsport dann das Datenpaket aus dem Puffer ab und überträgt das Datenpaket. Nachdem die Übertragung abgeschlossen ist, gibt der Ausgangsport den Zeiger an den Puffer-Manager zurück. Vorteilhafterweise kann eine Paketvermittlung gemäß der vorliegenden Erfindung im Pipeline-Verfahren behandelt werden, um gleichzeitig auf benachbarten Ports zu empfangen, zu routen und zu übertragen.
- Eine Paketvermittlung gemäß der vorliegenden Erfindung kann auf einer Leiterplatte implementiert werden und erleichtert somit ein einfaches nachträgliches Einbauen in bestehende Vermittlungssysteme mit verteilter Steuerung mit minimalen Modifikationen der anderen Module.
- Fig. 1 ist ein Blockschaltbild eines Ausführungsbeispiels der vorliegenden Erfindung im Kontext eines Vermittlungssystems mit verteilter Steuerung;
- Fig. 2 ist ein Diagramm einer schnellen Paketvermittlung, wie in Fig. 1 gezeigt, die gemäß einem Ausführungsbeispiel der vorliegenden Erfindung aufgebaut ist;
- Fig. 3 ist ein ausführlicheres Blockschaltbild des Zeitschlitzkanal-Sequenzers von Fig. 2 gemäß dem Ausführungsbeispiel der vorliegenden Erfindung;
- Fig. 4 ist ein Impulsdiagramm des Timings von Daten durch die schnelle Paketvermittlung von Fig. 2;
- Fig. 5 ist ein Blockschaltbild des Paketempfängers von Fig. 2 gemäß dem Ausführungsbeispiel der vorliegenden Erfindung;
- Fig. 6 ist ein Diagramm des Layouts der Protokoll- Zustandsregister des Paketempfängers von Fig. 5;
- Fig. 7 ist ein Diagramm des Layouts der Adressenzustandsregister des Paketempfängers von Fig. 5;
- Fig. 8 ist ein Diagramm des Layouts der Protokollzustandsregister des Paketsenders von Fig. 10;
- Fig. 9 ist ein Diagramm des Layouts des Adressenzustandsregisters des Paketsenders von Fig. 10;
- Fig. 10 ist ein Blockschaltbild des Paketsenders von Fig. 2 gemäß dem Ausführungsbeispiel der vorliegenden Erfindung;
- Fig. 11 ist ein Blockschaltbild des Routers von Fig. 2 gemäß dem Ausführungsbeispiel der vorliegenden Erfindung;
- Fig. 12 ist ein Blockschaltbild des Puffermanagers von Fig. 2 gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung;
- Fig. 13 ist ein Impulsdiagramm am Ausgang des Puffermanagers von Fig. 12; und
- Fig. 14 ist ein Impulsdiagramm am Eingang des Puffermanagers von Fig. 12.
- Fig. 1 ist ein Blockschaltbild eines Ausführungsbeispiels der vorliegenden Erfindung im Kontext eines Vermittlungssystems mit verteilter Verarbeitung, wobei eine schnelle Paketvermittlung 10 gemäß der vorliegenden Erfindung zum Routen von Steuernachrichten enthaltenden Paketen von einem Quellenmodul zu einem Zielmodul verwendet wird. Das Vermittlungssystem 4 enthält mehrere Vermittlungsmodule, z. B. 1, 2 und 3, um über mehrere Zugangsports sowohl Leitungsvermittlungs- als auch Paketvermittlungsdienst für mehrere Benutzerstationen, z. B. 12, 14, 16 und 18, bereitzustellen. Bei diesem Ausführungsbeispiel sind die Benutzerstationen 12, 14 und 18 Fernsprechapparate, wie zum Beispiel die Fernsprecher ISDN 7506 oder 7507 von AT & T. Die Benutzerstation 16 ist ein in der Technik bekanntes Datenterminal. Jede Benutzerstation sendet Informationen zu und empfängt Informationen von ihrem zugeordneten Vermittlungsmodul, zum Beispiel dem Vermittlungsmodul 3, in zwei leitungsvermittelten B- Kanälen und einem paketvermittelten D-Kanal (wobei es sich um eine typische ISDN-Leitung handelt). B-Kanäle sind mit einer Leitungsvermittlungseinheit 20 und D- Kanäle mit einer Paketvermittlungseinheit 22 verbunden.
- Eine Steuereinheit 24 dient sowohl zum Steuern der Herstellung von leitungsvermittelten Verbindungen durch die Leitungsvermittlungseinheit 20 als auch zum Herstellen von paketvermittelten Verbindungen durch die Paketvermittlungseinheit 22. Die Kommunikationsschnittstelle 26 liefert die Protokollabwicklung für die Kommunikation zwischen Prozessoren.
- Jedes Vermittlungsmodul ist durch eine ankommende Zeitmultiplexstrecke mit 256 Zeitschlitzen und eine abgehende Zeitmultiplexstrecke mit 256 Zeitschlitzen mit einer Verbindungseinheit 28 zwischen Modulen verbunden. Paketkanäle umfassen einen oder mehrere Zeitschlitze auf der ankommenden bzw. abgehenden Zeitmultiplexleitung. In Fig. 1 umfassen die drei in dem Rahmen mit 256 Zeitschlitzen (TS) gezeigten schattierten Zeitschlitze einen Paketkanal zwischen dem Vermittlungsmodul 3 und der schnellen Paketvermittlung. Leitungsvermittelte Wege werden zum Zeitpunkt der Initialisierung permanent hergestellt, um einen freien Kanal zwischen der Kommunikationsschnittstelle 26 und der schnellen Paketvermittlung 10 bereitzustellen. Man beachte, daß die Paketkanäle von beiden Vermittlungsmodulen 2 und 3 leitungsvermittelte Wege zu demselben Port auf der schnellen Paketvermittlung aufweisen. Bei der beispielhaften Implementierung kann jeder Port der schnellen Paketvermittlung bis zu 32 Paketkanäle abwickeln. Auf den ankommenden Paketkanälen empfangene Pakete werden in dem Leitungskoppelfeld 30 vermittelt.
- Eine Fernsprechverbindung wird von dem Fernsprecher 18 zu dem Fernsprecher 12 eingeleitet, indem zum Beispiel der Benutzer des Fernsprechers 18 den Hörer von der Gabel nimmt, so daß der Fernsprecher 18 eine Nachricht zu der Paketvermittlungseinheit 22 sendet. Als Reaktion auf die Nachricht informiert die Paketvermittlungseinheit 22 die Steuereinheit 24, daß der Fernsprecher 18 abgenommen wurde, und die Steuereinheit 24 bewirkt, daß die Leitungsvermittlungseinheit 20 einen Wählton zu dem Fernsprecher 18 sendet. Der Benutzer des Fernsprechers 18 gibt dann Ziffern ein, die über die Paketvermittlungseinheit 22 zu der Steuereinheit 24 gesendet werden. Die Steuereinheit 24 führt an den aus dem Fernsprecher 18 gesammelten Ziffern eine Ziffernanalyse durch und entscheidet als Ergebnis, daß die Verbindung für den Fernsprecher 12 bestimmt ist, der mit dem Vermittlungsmodul 1 verbunden ist.
- Die Steuereinheit 24 formatiert eine Nachricht für die Steuereinheit in dem Vermittlungsmodul 1 (nicht gezeigt), um das Vermittlungsmodul zu informieren, daß es von dem Vermittlungsmodul 1 anfordern muß, zu bestimmen, ob der Fernsprecher 12 belegt ist. Die Steuereinheit 24 formatiert eine Nachricht und sendet sie durch die Kommunikationsschnittstelle 26, die die Nachricht in einem standardisierten Protokoll verpackt und die Nachricht durch die Leitungsvermittlungseinheit 20 sendet. Die Leitungsvermittlungseinheit 20 und das Leitungskoppelfeld 30 in der Verbindungseinheit 28 zwischen Modulen leitet die Nachricht durch permanent verbundene Wege zu dem Port N der schnellen Paketvermittlung 10 weiter. Die schnelle Paketvermittlung 10 routet die Nachricht durch die Vermittlung, wie später beschrieben werden wird, zurück in das Leitungskoppelfeld 30, das die Nachricht durch den Verbinder A zu dem Vermittlungsmodul 1 weiterleitet. Das Vermittlungsmodul 1 reagiert auf ähnliche Weise durch das Leitungskoppelfeld 30, die schnelle Paketvermittlung 10 und das Leitungskoppelfeld 30 durch Verbinder C. Von dem Verbinder C durchläuft die Nachricht die Leitungsvermittlungseinheit 20 und erreicht durch die Kommunikationsschnittstelle 26 die Steuereinheit 24. Die Verbindungsbearbeitung wird auf diese Weise fortgesetzt, bis eine Verbindung zwischen dem Fernsprecher 18 und dem Fernsprecher 12 hergestellt ist.
- Fig. 2 ist ein Blockschaltbild eines Ausführungsbeispiels für eine schnelle Paketvermittlung 10 gemäß der vorliegenden Erfindung. Die schnelle Paketvermittlung 10 umfaßt einen einzigen Puffer 200, mehrere Paketempfänger 202 mit Zugang zu dem Puffer 200 und mehrere Paketsender 204 ebenfalls mit Zugang zu dem Puffer 200. Der Puffer 200 ist zu einer Anzahl von Speicherstellen fester Länge organisiert. Ein Zeiger umfaßt eine Adresse einer Speicherstelle in dem Puffer 200. Zeiger auf freie Pufferstellen werden in dem Puffermanager 206 gespeichert.
- Paketverkehr wird zu der Paketvermittlung 10 über Paketkanäle geliefert, die einen oder mehrere Zeitschlitze an ankommenden Ports 1-N umfassen. Der Empfänger 202 erhält einen Zeiger aus dem Puffermanager 206 und schreibt ein ankommendes Paket in eine Pufferspeicherstelle, die bei der Zeigeradresse beginnt. Nachdem das Paket in den Puffer 200 geschrieben wurde, wird das Routing-Byte aus dem Paket, das das Ziel des Pakets enthält, zusammen mit dem Zeiger zu einem Router 208 weitergeleitet. Der Router 208 umfaßt, wie nachfolgend beschrieben wird, eine Nachschlagetabelle, die das logische Routing-Byte auf eine physische Paketkanalnummer abbildet. Der Router 208 schiebt den Zeiger dann auf eine TX-Zeiger-FIFO- Warteschlange (die nachfolgend in Verbindung mit Fig. 11 beschrieben wird) für den physischen Paketkanal, zu dem das Paket geroutet wurde. Der Paketsender 204 nimmt den Zeiger von der FIFO-Warteschlange, liest die Daten aus dem Puffer 200 und sendet die Daten über den entsprechenden abgehenden Portkanal. Nachdem das Paket übertragen wurde, wird der Zeiger von dem Paketsender 204 an den Puffermanager 206 zurückgegeben, so daß der RAM-Puffer für ein anderes Paket frei wird.
- Paketkanäle erreichen die Paketvermittlung aus dem Leitungskoppelfeld durch mehrere Eingangsports 1-N. Jeder Eingangsport umfaßt mehrere gemultiplexte Zeitschlitze. Für jeden Eingangsport liegt ein zeitgemultiplexter Paketempfänger 202 vor, der mehrere Paketkanäle abwickeln kann. Jeder Paketempfänger 202 ist mit einem zeitgemultiplexten Schreibbus 210 verbunden, durch den die Paketempfänger 202 empfangene Paketdaten in den Puffer 200 schreiben. Paketdaten werden aus dem Puffer 200 durch einen zeitgemultiplexten Lesebus 212 gelesen. Sowohl der Schreibbus 210 als auch der Lesebus 212 senden Adressen und Dateninformationen. Ein Multiplexer 214 in dem Puffer 200 wählt, welcher Bus die Adresse für eine gegebene Operation zuführt. Der Multiplexer 214 und eine (nicht gezeigte) Schreib-Freigabeauswahl werden auf zeitlich gemultiplexte deterministische Weise gesteuert, wie nachfolgend in Verbindung mit dem Impulsdiagramm von Fig. 4 beschrieben wird, wobei vorteilhafterweise eine komplexe Arbitrierungsschaltung für den Puffer 200 vermieden wird. Paketsender 204 lesen durch den Lesebus 212 Daten aus dem Puffer 200 und senden Pakete auf gemultiplexten Zeitschlitzen durch Ausgangsports zu dem Leitungskoppelfeld.
- Bei Paketvermittlungsimplementierungen kann die Anzahl von Paketsendern 204 und -empfängern 202 und die Anzahl gemultiplexter Zeitschlitze auf einem ankommenden Port unterschiedlich sein. Zur Beschreibung dieses Ausführungsbeispiels wird die Paketvermittlung mit vier Paketempfängern 202 und vier Paketsendern 204 beschrieben. Bei diesem Ausführungsbeispiel enthält jeder ankommende und jeder abgehende Port 256 Zeitschlitze.
- Jeder Paketempfänger 202 und -sender 204 wickelt mehrere Paketkanäle ab. Jeder Paketkanal umfaßt eine Gruppe von Zeitschlitzen, die bei Verkettung eine Paketstrecke der OSI-Schicht 1 bilden. Für die vorliegende Beschreibung wickelt jeder Paketempfänger 202 und -sender 204 bis zu 31 Paketkanäle ab. Jeder Paketkanal besteht aus Zeitschlitzen aus nur einem Port; deshalb kann ein Kanal nicht über mehrere Ports verteilt werden.
- Der Puffer 200 enthält eine Vielzahl von Speicherstellen fester Länge, die jeweils groß genug sind, um das größte Paket, das die Vermittlung senden und - empfangen kann, puffern zu können. Für die vorliegende Beschreibung sei die größte Paketgröße 576 Byte. Der Puffer 200 enthält bei diesem Ausführungsbeispiel 455 Puffer. Eine Paketgröße von 576 Byte kann eine Benutzerdatenfeldlänge von 512 Byte behandeln, wobei 64 Byte für Protokollkopfinformationen verfügbar sind, und dies hat sich für mehrere Schichten des Protokolls als ausreichend erwiesen. Bei der bevorzugten Ausführungsform der vorliegenden Erfindung umfaßt der Puffer 200 einen schnellen direkten Zugriffsspeicher.
- Der Puffermanager 206 liefert einen Speicherbereich für Zeiger auf unbelegte Speicherstellen in dem Puffer 200. Bei der Systeminitialisierung liegt kein Paketverkehr in der Vermittlung vor und alle Speicherstellen in dem Puffer 200 sind unbelegt. Alle Zeiger werden in dem Puffermanager 206 in Warteschlangen eingereiht. Wenn ein Paketempfänger 202 ein ankommendes Paket erkennt, fordert er einen Zeiger von dem Puffermanager 206 an. Der Zeiger wird über den Zeigerverteilbus 216 geliefert. Der Paketempfänger 202 verwendet den Zeiger zur Berechnung der Adresse in dem Puffer 200 zum Schreiben der ankommenden Paketdaten.
- Während das ankommende Paket empfangen wird, entnimmt der Paketempfänger 202 das Routing-Byte (das logische Ziel für das Paket) aus einer vorbestimmten festen Speicherstelle in dem Paket und sichert sie in einem Halteregister. Wenn der Paketempfänger 202 das Schlußflag für ein Paket empfängt, werden, wie in der Technik bekannt ist. Integritätsprüfungen durchgeführt, und das Routing-Byte und der Zeiger werden zu dem Router 208 weitergeleitet.
- Der Router 208 umfaßt einen RAM, der eine Nachschlagetabelle enthält. Die Nachschlagetabelle bildet das in dem Routing-Byte enthaltene logische Ziel auf eine physische Paketkanalnummer ab, die dann zum Wählen eines XMTR-Zeiger-FIFO (in Verbindung mit Fig. 11 gezeigt) verwendet wird. Die XMTR-Zeiger-FIFO enthält einen FIFO für jeden Paketkanal auf jedem Paketsender 204. Für die vorliegende Beschreibung gibt es vier Paketsender 204, die jeweils bis zu 31 Paketkanäle abwickeln; deshalb gibt es 124 verwendbare XMTR-Zeiger-FIFOs. Der Router 208 gibt den Zeiger aus dem Paketempfänger 202 auf den durch die Kanalnummer aus der Routing-Tabelle gewählten FIFO. Die Zeiger in dem XMTR-Zeiger-FIFO stellen Pakete dar, die in Warteschlangen für die Übertragung eingereiht sind.
- Jeder Paketsender 204 fragt die XMTR-Zeiger-FIFOs ab, die seinen Paketkanälen zugeordnet sind, wenn ein Kanal unbelegt ist. Wenn ein Zeiger in dem FIFO in eine Warteschlange eingereiht ist, wird er von dem FIFO heruntergenommen und durch den Paketsender 204 über den XMTR-Zeiger-Bus 218 gelesen. Der Paketsender 204 berechnet die Adressen in dem Puffer 200, aus dem Paketdaten für das abgehende Paket gelesen werden, auf der Grundlage des Zeigers. Wenn die Paketübertragung abgeschlossen ist, gibt der Paketsender 204 den Zeiger über den Zeiger-Rückkehrbus 220 an den Puffermanager 206 zurück und fragt den XMTR-Zeiger-FIFO nach einem weiteren in eine Warteschlange eingereihten Zeiger ab. Wenn der Zeiger an den Puffermanager 206 zurückgegeben wird, wird die Speicherstelle in dem Puffer 200, die diesem Zeiger zugeordnet ist, effektiv unbelegt und für die Verwendung durch ein anderes ankommendes Paket verfügbar.
- Als Alternative kann ein Zeiger über den Shunt-Zeiger- Rückkehrbus 224 aus dem Router 208 an den Puffermanager 200 zurückgegeben werden. Ein Zeiger wird aus dem Router zurückgegeben, wenn zum Beispiel das Datenpaket die Integritätsprüfung im Paketempfänger 202 nicht bestanden hat oder die Warteschlange für den Zielkanal voll ist. Zeiger-Rückkehrbusse 220 und Shunt-Zeiger- Rückkehrbusse 224 werden in dem Multiplexer 226 unter der Steuerung des Zeitschlitzkanal-Sequenzers 222 (Steuerleitung der Klarheit halber nicht gezeigt) in den Puffermanager 206 gemultiplext. Die Ausgabe des Multiplexers 226 wird zu dem Puffermanager 206 auf dem MUX-Ausgang auf den Mikroprozessor-Schnittstellenbus 227 geliefert.
- Die Initialisierung der schnellen Paketvermittlung 10 geschieht durch einen (nicht gezeigten) Mikroprozessor, der Daten in dem Zeitschlitzkanal-Sequenzer 222, dem Router 208 und dem Puffermanager 206 über die Mikroprozessor-Schnittstellen 228 initialisiert. Nach der Initialisierung führt die schnelle Paketvermittlung 10 ihre Funktionen unabhängig von dem Mikroprozessor durch. Wartungsfunktionen und Fehlermeldungen, die in der Technik bekannt sind, werden ebenfalls über die Mikroprozessorschnittstelle 228 durchgeführt.
- Nunmehr mit Bezug auf Fig. 3 ist ein Blockschaltbild eines Zeitschlitzkanal-Sequenzers 222 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung gezeigt. Der Zeitschlitzkanal-Sequenzer 222 umfaßt eine Sequenz Steuerung 300, die über Adressen- und Datenbusse an einen Sequenzer-RAM 302 angekoppelt ist. Die Sequenzsteuerung 300 und der Sequenzer-RAM 302 liefern zusammen Zeitsteuerungssignale und Zeitschlitzkanaldaten zur Steuerung der schnellen Paketvermittlung 10. Der Zeitschlitzkanal-Sequenzer 222 liefert die T-TX- und T-RX-Busse, die die Paketsender 204 und -empfänger 202 dynamisch darüber informieren, von welchem Paketkanal der nächste Zeitschlitz ein Teil ist. Daten, die Zeitschlitze auf Kanäle abbilden, werden in dem Sequenzer-RAM 302 gespeichert, der über die Mikroprozessorschnittstelle 228 lesbar und beschreibbar ist. Der Sequenzer-RAM 302 enthält ein Datenbyte für jeden der 256 Zeitschlitze auf jedem der 4 Ports dieser beispielhaften Paketvermittlung. Diese Daten zeigen an, ob der Zeitschlitz Teil eines Paketkanals ist, von welchem Kanal und den Aktiv/Bereitschaft-Zustand des Kanals. Da alle Verbindungen in dem Leitungskoppelfeld 30 (Fig. 1) zweiseitige Verbindungen sind, verwendet ein Paketkanal dieselben Zeitschlitze zum Senden und zum Empfangen, so daß es möglich wird, einen Sequenzer sowohl zum Senden als auch zum Empfangen zu verwenden. Der Sequenzer-RAM 302 wird so initialisiert, daß alle Zeitschlitze unbelegt sind, d. h. keinem Paketkanal zugeordnet. Der Mikroprozessor richtet einen Paketkanal ein, indem er für jeden Zeitschlitz, der Teil des Kanals ist, eine Paketkanalnummer in den Sequenzer-RAM 302 schreibt. Ein Paketkanal kann ein Zeitschlitz, viele Zeitschlitze oder alle Zeitschlitze auf einem gegebenen Port sein. Nachdem die Zeitschlitze geschrieben wurden, wird durch den Mikroprozessor ein logisches Routing-Byte dem physischen Kanal zugeordnet. Bei dem Ausführungsbeispiel ist das logische Routing- Byte die Vermittlungsmodulnummer.
- Ein Rahmen ist der Zeitraum, für den alle 256 Zeitschlitze einmal übertragen werden. Bei Fernsprechanwendungen, wie in dem vorliegenden Fall, beträgt die Rahmenrate in der Regel 8 kHz. Das Leitungskoppelfeld 30 liefert ein 8-kHz-Signal zum Synchronisieren der schnellen Paketvermittlung mit den Zeitschlitzen auf den Eingangs- und Ausgangsports. Die Sequenz Steuerung 300 bearbeitet sequentiell für jeden Rahmen alle Speicherstellen des Sequenzer-RAM 302.
- Im Verlauf jedes Rahmens wird der Inhalt des Sequenzer- RAM 302 auf dem T-TX-Bus 308 und dem T-RX-Bus 310 gesendet. Während des N-ten Zeitschlitzes werden die Daten für den (N + 1)-ten Zeitschlitz aus dem RAM für jeden Port gelesen, wobei mit Port 0 begonnen wird. Mit Bezug auf Fig. 4 ist zu beachten, daß, obwohl der Paket-RCVR0 den Zeitschlitz 254 (kompensierte L0-Daten) empfängt, Steuerdaten für den Zeitschlitz 255 auf dem T-RX-Bus herausgesendet werden. Daten aus dem Sequenzer-RAM 302 werden in dem Ausgangszwischenspeicher 304 zwischengespeichert und dienen zur Zeitschlitzes hinweg in 8 RAM-Zyklen in vier Lesezyklen und vier Schreibzyklen aufgeteilt wird. Dieses Paketvermittlungskonzept ermöglicht, daß jeder Empfänger 202 und Sender 204 genügend Daten und Steuerbandbreite besitzt, um ankommenden und abgehenden Verkehr auf allen Kanälen aller Ports bei voller Belegtheit abzuwickeln. Für die hier beschriebene Paketvermittlung ist ein 64-Mbps-Durchsatz verfügbar.
- Der Datenfluß durch die Paketvermittlung beginnt in dem Paketempfänger 202, in dem an den Daten eine Protokoll Verarbeitung durchgeführt wird, bevor sie in dem Puffer gespeichert werden. Der 32-MHz-Systemtakt wird in 8-kHz-Rahmen aufgeteilt, die durch den System- Sync-Impuls identifiziert werden, wobei jeder Rahmen 256 Zeitschlitze enthält. Der T-RX-Bus 310 (der aus dem Zeitschlitzkanal-Sequenzer kommt) identifiziert den aktuellen Zeitschlitz mit einem logischen Paketkanal, der von 1 bis 255 Zeitschlitze umfassen kann. Logische Paketkanäle erfordern keine zusammenhängenden Zeitschlitze. Diese Informationen werden von dem Empfänger 202 dazu benutzt, als Vorbereitung auf die ankommenden seriellen Daten diesem Paketkanal zugeordnete Zustandsinformationen abzurufen.
- Von der Paketvermittlung empfangene Daten werden durch die ankommenden Ports 1-N dargestellt. Nach dem Auftreten von Umtaktungsverzögerungen (die der Versetzungskompensation zugeschrieben werden, die nachfolgend später beschrieben wird) ist die Datenbeziehung zu dem T-RX-Bus 310 als kompensierte LO- Daten gezeigt. Als Vorbereitung auf einen von vier RAM- Schreibzyklen gemäß der Anzeige durch den RAM-Schreib- Bus werden die seriellen Daten durch den Protokollautomaten verarbeitet, wie in Verbindung mit Fig. 5 weiter beschrieben werden wird.
- Der T-TX-Bus 308 identifiziert den aktuellen Zeitschlitz mit einem logischen Paketkanal, der von den Paketsendern 204 zum Aufrufen von Zustandsinformationen als Vorbereitung auf ein Lesen des Puffers verwendet wird. Die vier RAM-Lesezyklen werden durch den RAM- LESE-BUS angezeigt. Zusammen bilden die BUSSE RAM WRITE und RAM READ den Ausgang des 2N : 1-MUX 214, wobei der Schreib- und Lesezugriff verschachtelt ist. Durch Verwendung eines deterministischen Ansatzes für den RAM-Zugriff wird eine Arbitrierungsschaltung unnötig. Aus dem Puffer 200 gelesene Daten werden dann durch den Sender verarbeitet und dann seriell, wie durch XMT0 gezeigt, die Strecke heruntergeschickt.
- Nunmehr mit Bezug auf Fig. 5 ist ein Blockschaltbild des Paketempfängers 202 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung gezeigt. Der Paketempfänger 202 umfaßt im allgemeinen einen Kanalzustands-RAM 500, einen Adressenautomaten 504 und einen Protokollautomaten 506. Jeder Automat enthält ein Register 502 und 503 zum Halten von Zustandsvariablen und kombinatorische Logik 512 und 514 zum Manipulieren ankommender Daten und der Zustandsvariablen. Der Paketempfänger 202 führt Transfers der Hochpegel- Datenübertragungssteuerung (HDLC) und DMA-Transfers (zu dem Puffer 200) für jeden von bis zu 31 verwendbaren Paketkanälen durch, die auf einem Port vorgesehen sein können. Der Paketempfänger 202 ist ein zeitlich gemultiplexter Automat, der Zustandsvariablen (siehe Fig. 6 und 7) für jeden Paketkanal enthält, die während anderer Zeitschlitze in den Kanalzustands-RAM 500 gespeichert werden.
- Vor jedem Zeitschlitz wird eine Kanalnummer über den T- RX-Bus 310 aus dem Zeitschlitzkanal-Sequenzer 222 zu dem Paketempfänger 202 geliefert. Diese Kanalnummer dient als ein Adressenindex in den Kanalzustands-RAM 500, der dann in die Zustandsvariablenregister 502 und 503 geladen wird. Während des Zeitschlitzes werden der Protokollautomat 506 und der zeitlich gemultiplexte Adressenautomat 504 zusammen mit den während des Zeitschlitzes empfangenen Bit durch den Systemtakt getaktet, wie in der Technik bekannt ist. Als Ergebnis der Automatenaktivität können Daten in den Puffer 200 geschrieben, Zeiger aus dem Puffermanager 206 beschafft oder an den Router 208 freigegeben werden oder es kann nichts geschehen. Am Ende des Zeitschlitzes wird die neue Zustandsvariable in dem Kanalzustand-RAM 500 gespeichert, um für den nächsten zu diesem Paketkanal gehörenden Zeitschlitz verwendet zu werden.
- Bei diesem Paketvermittlungsbeispiel werden die Zeitschlitzdaten aus dem Leitungskoppelfeld 30 mit einer geringfügigen Phasenverschiebung zu dem Ausgangstakt in den Eingangsport eingetaktet. Die Gesamtpaketvermittlung wird durch den Ausgangs- (Sende-)Takt getaktet. Der Versetzungskompensator 510 empfängt Eingangsdaten, synchronisiert sie und den Takt mit dem Rest der Paketvermittlung durch Schieben von Daten in einen parallelen Bus mit einer Transferrate die langsam genug ist, damit die Phasendifferenz zwischen Takten vernachlässigbar ist. Ein Schieberegister am Ausgang des Versetzungskompensators vergrößert die Transferbitrate wieder auf normal, so daß das Datum durch den Systemtakt in den Protokollautomaten 506 getaktet werden kann. Aufgrund der zeitlich gemultiplexten Beschaffenheit der T-RX- Busdaten (310) ist es notwendig, die Bitbeziehungen jedes Paketempfängers zeitlich zu staffeln. Die richtige Menge Verzögerung wird durch den Versetzungskompensator eingefügt, bevor die Daten in den Protokollautomaten eingetaktet werden.
- Wahlweise kann ein alternativer serieller Datenstreckeneingang bereitgestellt werden, zusammen mit einem Multiplexer zum Wählen der Datenquelle, wie in Fig. 5 gestrichelt gezeigt. Mit einem solchen Eingang könnten ein oder mehrere Paketkanäle von einem Hilfsprozessor oder einem Gateway in die Paketvermittlung zusammengeführt werden, so daß der Prozessor durch Datenpakete mit den Vermittlungsmodulen kommunizieren kann.
- Kombinatorische Logik in dem Protokollautomaten führt die folgenden Funktionen durch: Paketabgrenzung (Nullbiterkennung und Entstopfung), Paketfehlerprüfung (CRC), Paket-Auseinanderbau (Entnehmen des Routing- Byte) und Längenprüfung. Jede Funktion wird von einem kombinatorischen Automaten auf in der Technik bekannte Weise an Daten durchgeführt, die in dem Register 502 gespeichert sind oder in dieses gebracht werden.
- Fig. 6 zeigt die verschiedenen Bit-Layouts der Zustandsvariablen für den Protokollautomaten, die in dem Register 502 gespeichert sind. SREG[7] wird von seinem zugeordneten Automaten zum Erkennen des Anfangs und Endes von Paketen, von ABORTs und gültigen Daten verwendet. Bei dieser beispielhaften Paketvermittlung wurde das Protokoll der Hochpegel-Datenübertragungssteuerung (HDLC) gewählt, um einfache Funktionen der Übertragungsschicht bereitzustellen. Das HDLC-Flag- Muster 01111110 dient zum Identifizieren des Anfangs und Endes eines Pakets. Um dieses Muster eindeutig zu machen, wird beim Übertragen eines Pakets nach allen fünf aufeinanderfolgenden Einsen eine Null eingefügt (gestopft). Deshalb führen zufällige Daten niemals dazu, daß ein Flag zu früh übertragen wird. Der SREG- Automat identifiziert jeden Fall von fünf Einsen, denen eine Null folgt, und sperrt das Takten der Null in das HOLD-Register, wodurch die Null effektiv entstopft wird.
- Für jeden Taktzyklus, in dem ein ungestopftes Bit eingetaktet wird, werden die Daten in das HOLD [8]- Register eingeschoben und der Bitzähler HOLDCNT[3] wird erhöht. Nach dem Eintakten von 8 Datenbit wird das resultierende Datenbyte über eine Datenleitung in eine durch den Adressenautomaten 504 berechnete Speicherstelle in den Puffer 200 geschrieben, indem die kombinatorische Logik in dem Protokollautomaten eine Schreib-Freigabe-Leitung setzt. Wenn das Byte das erste in dem Paket ist, ist es definitionsgemäß das Zielbyte und wird in DEST[8] (Zielregister) gespeichert. Für jeden Taktzyklus, in dem Daten in HOLD[8] eingeschoben werden, wird eine CRC-Prüfung durchgeführt und in CRC[16], dem HDLC-CRC-Halteregister, gespeichert. Wenn das Schlußflag empfangen wird, wird das CRC[16]- Register auf Gültigkeit geprüft, so wie es durch das HDLC-Protokoll definiert wird. Wenn alle diese Prüfungen bestanden werden, wird das DEST[8]-Byte zusammen mit dem Zeiger auf dem Zeiger-Bus auf der Ziel-Byteleitung zu dem Router 208 gesendet.
- Kombinatorische Logik in dem Adressenautomaten führt die folgenden Funktionen durch: Speichern des Zeigers im Puffer 200, Erhöhen des Paket-Byte-Zählers und Berechnen der nächsten Speicherstelle in dem Puffer, die beschrieben werden soll, unter Verwendung des Zeigers und des Byte-Zählers. Jede Funktion wird durch einen kombinatorischen Automaten auf in der Technik bekannte Weise an in dem Register 503 gespeicherten Daten durchgeführt.
- Fig. 8 zeigt das Layout der in dem Register 503 gespeicherten Zustandsvariablen für die kombinatorische Logik in dem Adressenautomaten 504. Der Anfang eines neuen Pakets wird von dem SREG-Automaten erkannt, wenn ein Datenbyte empfangen wird, das nicht das Flagmuster (01111110) enthält. Zu diesem Zeitpunkt wird über die Leitung 520 das Zeiger-Anforderungssignal zu dem Puffermanager gesetzt, der reagiert, indem er einen Zeiger auf den Zeiger-Verteilbus 522 legt und das Gültig-Signal auf der Leitung 524 setzt. Als Reaktion auf das Gültig-Signal wird der Zeiger in das POINTER[9]-Register geschoben und BYTECNT[10] wird auf 0 zurückgesetzt. Der Zeiger wird mit 576 (der Pufferlänge) multipliziert und dann zu dem Bytezähler BYTECNT[10] addiert, um eine RAM-Adresse zu bilden, die auf der Adressenleitung zu dem Puffer 200 gesendet werden soll. Die WRITE-Freigabe bewirkt außerdem, daß der Adressenautomat BYTECNT[10] erhöht.
- Wenn das Schlußflag des Pakets von dem SREG-Automaten erkannt wird, wird das CRC[16]-Register auf gültige CRC geprüft und der Bytezähler wird auf ein übergroßes oder zu kleines Paket geprüft. Wenn alle diese Prüfungen bestanden werden, wird DEST[8] auf dem Bus DEST BYTE herausgesendet und das (nicht gezeigte) Ship-Signal wird für den Adressenautomaten gesetzt. Dies bewirkt, daß der Zeiger auf dem Zeigerbus herausgesendet wird und ein Setzen des Gültig-Bit, um POINTER und DEST BYTE in den Router zu laden. Zu diesem Zeitpunkt hat der Paketempfänger den Empfang eines Pakets abgeschlossen und ist bereit für den Start des nächsten.
- Nunmehr mit Bezug auf Fig. 10 ist ein Paketsender 204 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung gezeigt. Der Paketsender 204 umfaßt den Protokollautomaten 1000, den Adressenautomaten 1002 und den Kanalzustands-RAM 1004. Jeder Automat umfaßt kombinatorische Logik und Register zum Speichern von Variablen, die von der kombinatorischen Logik verwendet werden. Für jeden Zeitschlitz gibt es eine Menge von Zustandsvariablen, wie später beschrieben werden wird und jede Menge wird während anderer Zeitschlitze in den Kanalzustands-RAM 1004 gespeichert.
- Der Paketsender 204 (wie der Paketempfänger 202) führt HDLC-Funktionen und DMA-Funktionen für jeden von bis zu 32 Paketkanälen durch, die auf einem Ausgangsport vorgesehen sein können. Vor jedem Zeitschlitz wird eine Kanalnummer über den T-TX-Bus 308 aus dem Zeitschlitzkanal-Sequenzer 222 zu dem Kanalzustands-RAM 1004 geliefert. Diese Kanalnummer dient als ein Adressenindex in den Kanalzustands-RAM 1004, um die Zustandsvariablenregister zu lesen und sie in das Protokollzustandsvariablenregister 1006 und das Adressenzustandsvariablenregister 1008 zu laden. Während des Zeitschlitzes werden die Automaten 1000 und 1002 zusammen mit den Bit des Zeitschlitzes durch den Systemtakt getaktet. Als Ergebnis der Automatenaktivität können HDLC-Flags oder aus dem Puffer 200 gelesene Daten übertragen werden, und Zeiger können aus dem Router 208 beschafft oder an den Puffermanager 206 freigegeben werden. Am Ende des Zeitschlitzes wird die neue Zustandsvariable wieder in dem Kanalzustands-RAM 1004 gespeichert, um für den nächsten zu diesem Paketkanal gehörenden Zeitschlitz verwendet zu werden.
- Aufgrund der zeitlich gemultiplexten Beschaffenheit der T-TX-Busdaten (308) ist es notwendig, die Bitbeziehungen jedes Paketsenders zeitlich zu staffeln. Bei diesem Paketvermittlungsbeispiel muß jeder Ausgangsport von in das Leitungskoppelfeld 30 gesendeten Daten (Fig. 1) miteinander phasengleich sein. Eine Zeitschlitzsynchronisationslogik 1010 dient zum führen jedes Senders durch die richtige Verzögerungsdauer, wie in der Technik bekannt ist, um die Zeitschlitzsynchronisation mit dem Leitungskoppelfeld (30) über die abgehenden Ports hinweg wiederherzustellen.
- Kombinatorische Logik in dem Protokollautomaten führt die folgenden Funktionen durch: Nullbitstopfen von Paketdaten, Flag-Erzeugung, wenn nicht aktiv Paketdaten übertragen werden, und Längenprüfung.
- Kombinatorische Logik in dem Adressenautomaten 1002 führt die folgenden Funktionen durch: Speichern des Pufferspeicherstellenzeigers und des Bytezählers und Berechnen von Pufferspeicherstellenadressen unter Verwendung des Zeigers und des Bytezählers.
- Fig. 8 und 9 zeigen die. Register-Layouts der Zustandsvariablen für den Adressenautomaten 1002 und den Protokollautomaten 1000. Am Anfang eines Zeitschlitzes werden Zustandsinformationen, die dem aktuellen Kanal (definiert durch Informationen aus dem T-TX-Bus 308) zugeordnet sind, in die Zustandsvariablenregister 1006 und 1008 geladen. Wenn man sich nicht im Paketmodus (d. h. Paketübertragung im Gange) befindet, was durch MODEA[1] definiert wird, wird über die Leitung 1012 eine neue Zeigeranforderung zu dem Router 208 gesendet. Wenn ein Zeiger aus dem Router 208 über den Zeigerbus empfangen wird, wird er in dem POINTER [9] des Adressenautomatenregisters 1008 zwischengespeichert und die Bytezählervariable BYTECNT[10] wird gelöscht. Der Zeiger wird mit 576 multipliziert und dann zu dem Bytezähler addiert, um die RAM-Adresse zu bilden, aus der in dem Puffer 200 gelesen werden soll. Aus dem Puffer 200 gelesene Paketdaten werden dann in dem Register 1006 zwischengespeichert und als Sendedaten herausgeschoben.
- Eine Hauptfunktion des Protokollautomaten im Sender besteht darin, eine Nullbiteinfügung an den aus dem Paketpuffer gelesenen Paketdaten bereitzustellen. Das HDLC-Protokoll erlaubt höchstens fünf aufeinanderfolgenden Bit in dem seriellen Datenstrom des Pakets einen logischen Wert von eins, damit das Flagmuster (01111110) eindeutig ist. In dem Paketpuffer gespeicherte Paketdaten wurden nicht mit Nullen gestopft, sondern sind rohe Daten. Wenn die aus dem RAM gelesenen Daten zufällig sechs aufeinanderfolgende logische Eins-Bit enthalten, fügt der Automat eine logische Null (Nullstopfung) an der sechsten Bitposition ein, bevor das sechste Bit tatsächlich gesendet wird. Der Zähler ONESCHT[3] dient zur Durchführung der Nullbitstopfung während die Daten gesendet werden. Wenn am Ende des Zeitschlitzes noch nicht alle Datenbits übertragen wurden (aufgrund der Nullbitstopfung), werden die übrigen Daten in HOLD[8] geladen, wobei HOLDCNT[4] zur Anzeige der Anzahl der in dem Halteregister gehaltenen Datenbit dient. Am Ende des Zeitschlitzes wird der Bytezähler erhöht, sofern nicht ein vollständiges Byte in HOLD[8] vorliegt, und die aktuellen Zustandsvariablen werden zur Wiederverwendung an nachfolgenden Zeitschlitzen, die zu einem gegebenen Paketkanal gehören, an den Kanalzustands-RAM 1004 zurückgegeben.
- Wenn das Ende des Pakets oder interne Fehler erkannt werden, dient die nächster-Modus-Variable NMODEA[1] zur Anzeige, daß der Protokollautomat 1000 den Paketmodus verlassen wird, und der für den aktuellen Kanal verwendete Zeiger wird zur Wiederverwendung an den Puffermanager 206 zurückgeben. Die Bit BCAST[2] werden vorgesehen, damit Prioritätspakete zu allen aktiven Kanälen rundgesendet werden können.
- Bei diesem Beispiel für eine Paketvermittlung ist erkennbar, daß es nützlich ist, Pakete unter Mikroprozessorsteuerung zu allen aktiven Zielen einleiten zu können. Um dieses Merkmal zu implementieren, kann der Protokollautomat 1000 jeden aktiven Kanal (definiert durch den T-TX-Bus 308) markieren, um ein Rundsendepaket, das in einem speziellen Rundsende-RAM oder in einem unbenutzten Teil des Paketpuffers 200 gespeichert ist, einzuleiten. Der Protokollautomat 1000 kommt keinen Paketen, die verarbeitet werden, zuvor. Wenn ein Kanal für Rundsendung markiert ist, beginnt der Protokollautomat 1000 nach dem normalen Ende eines Pakets, anstatt neue Zeiger von dem Router anzufordern, auf den Rundsende- RAM zuzugreifen und sendet seinen Inhalt zu dem durch diesen Kanal dargestellten Ziel. Nach Abschluß der Rundsendeübertragung nimmt der Sender 204 den normalen Betrieb wieder auf und fordert neue Zeiger von dem Router an. Man beachte, daß, da keine Zeiger zum Einleiten der Rundsendung verwendet wurden, keine Zeiger von dem Sender 204 an den Puffermanager 206 freigegeben werden müssen.
- Das oben beschriebene Merkmal wird bei diesem Beispiel zur Bereitstellung eines "Soft-Umschalt"-Mechanismus zwischen Paketendpunkten verwendet. Wie bei den meisten Telekommunikationsanwendungen ist die Verbindungseinheit zwischen Modulen voll dupliziert und stellt somit zwei vollständige Wege zur Herstellung von Verbindungen bereit. Diese schnelle Paketvermittlung wird in der Regel in einer Aktiv-Standby-Konfiguration betrieben. Um Paketdatenverluste beim Überwechseln des Aktiv- Standby-Status auf jeder Seite zu minimieren, wird eine Rundsendenachricht aus der aktiven Paketvermittlung gesendet, die anzeigt, daß ein "Seitenwechsel" bevorsteht und die Paketübertragung vorübergehend anhalten wird. Dadurch wird sichergestellt, daß in der Paketvermittlung gesendete Daten anhalten, und nach einem kurzen Warten auf im Transit befindliche Pakete, bis sie zu ihren Zielen gesendet wurden, werden alle in der Paketvermittlung in Warteschlangen eingereihte Daten übertragen, und zu diesem Zeitpunkt wird der Aktiv-Standby-Status der beiden Hälften der Verbindungseinheit zwischen Modulen umgewechselt. Zu diesem Zeitpunkt wird eine zweite Rundsendenachricht gesendet, die anzeigt, daß der Wechsel abgeschlossen ist, und der normale Paketverkehr kann wieder aufgenommen werden. Die Verwendung der Rundsendefähigkeit auf diese Weise verhindert einen Verlust von Paketen, wenn die aktive Seite zum Standby-Status degradiert wird, wodurch eine Neuübertragung erforderlich werden würde.
- Nunmehr mit Bezug auf Fig. 11 ist ein Blockschaltbild des Routers 208 (Fig. 1) gezeigt. Der Router 208 umfaßt im wesentlichen einen Routing-RAM 1100, einen FIFO- Index-RAM mit Steuerung 1102 und einen Sende-Zeiger- FIFO-RAM 1104. Der Routing-RAM 1100 verwendet das aus dem Empfänger 202 empfangene Routing-Byte als Index in eine Tabelle, die Ziele auf Kanäle abbildet. Diese Daten werden zu dem FIFO-Index-RAM mit Steuerung 1102 weitergeleitet, der diese Daten als Index in den Sender-Zeiger-FIFO-RAM 1104 verwendet. Die FIFO- Steuerung 1102 bewirkt dann ein Einreihen des durch den Empfänger 202 gelieferten Zeigers in eine Warteschlange für einen Sender 204 in dem Sender-Zeiger-FIFO-RAM 1104.
- Nachdem ein Paket empfangen und durch den Empfänger 202 in den Puffer-RAM 200 geschrieben wurde, nimmt der Router 208 den aus dem Empfänger 202 empfangenen Pufferzeiger und liefert ihn zu einem Paketsender 204 zur Übertragung auf dem Kanal als Reaktion auf das in dem Paket empfangene Zielbyte. Die aus den Empfängern 202 empfangenen Zielbyte und Zeiger werden von Selektoren 1106 und 1108, die durch T-ROUT 312 gesteuert werden, in den Router 208 hinein gemultiplext. Die Busse aus jedem Paketempfänger 202 werden einmal pro Zeitschlitz gewählt. Wie in dem Impulsdiagramm von Fig. 13 gezeigt, werden die Zeiger auf gestaffelte Weise gültig, wobei der RCVR0-Zeiger zuerst gültig wird. Das Signal T-ROUT 312 bewirkt, daß die Busse in der oben angegebenen Reihenfolge gewählt werden.
- Das gewählte Zielbyte enthält das logische Ziel für das Paket (d. h. die Vermittlungsmodulnummer) und dient zur Adressierung des Routing-RAM 1100, der die physische Kanalnummer liefert. Der Zeiger wird zusammen mit dem Zeiger-Gültig-Bit während dem Routing-RAM- Tabellennachschlag in dem Zeigerzwischenspeicher 1110 gespeichert. Als nächstes kann eines von drei Dingen passieren, abhängig von dem Zeiger-Gültig-Bit und den Ergebnissen des Tabellennachschlags. Wenn das Zeiger- Gültig-Bit gesetzt ist (da gerade ein Paket empfangen wurde) und der Tabellennachschlag eine gültige Kanalnummer produziert hat, dann bewirkt das Setzen der Gültig-Leitung, daß der Adressenmultiplexer 1112 die Daten des Routing-RAM 1100 wählt, und das Setzen von WRITE ENABLE bewirkt, daß der Zeiger als Reaktion auf die oberen Adressenbit der Kanalnummer auf den XMTR- Zeiger-FIFO 1104 geschoben wird. Wenn dagegen das Zeiger-Gültig-Bit gesetzt ist, aber der Tabellennachschlag einen Nullwert erzeugt hat (da es als Reaktion auf das Zielbyte keinen ausgestatteten Kanal gibt), dann wählt der Adressenmultiplexer 1112 den Bus des Sendekanals (T-TX) für eine mögliche FIFO- POP-Operation. Das VALID wird durch die NULL-Prüfung 1114 und das AND-Gatter 1116 blockiert (siehe Fig. 11). Der Zeiger wird über die Shunt-Zeiger-Rückkehr an den Puffermanager zurückgeben, so daß der Puffer befreit wird. Wenn das Zeiger-Gültig-Bit nicht gesetzt ist (da kein Paket empfangen wurde) dann wählt der Adressenmultiplexer 1112 als Alternative den Bus des Sendekanals (T-TX) für eine mögliche FIFO-POP- Operation.
- Zusammen liefern der XMTR-Zeiger-FIFO-RAM 1104 und der FIFO-Index-RAM mit Steuerung 1102 mehrere XMTR-Zeiger- FIFOs, und zwar einen für jeden Paketkanal. Die Organisation des FIFO-RAM 1104 in Fig. 11 zeigt, daß jeder FIFO bis zu 32 Zeiger puffern kann. Der FIFO- Index-Rahmen 1102 ist ein kleiner schneller RAM, der ein Steuerwort für jeden XMTR-FIFO enthält. Dieses Wort enthält einen Fünf-Bit-PUSH-Zeiger und einen Fünf-Bit- POP-Zeiger.
- Der Ausgang des Adressenmultiplexers 1112 liefert die oberen Adressenbit für den XMTR-Zeiger-FIFO-RAM 1104, wodurch der korrekte FIFO identifiziert wird. Er dient außerdem als Index für den FIFO-Index-RAM 1102, um den PUSH-Zeiger des bestimmten FIFO zu erhalten. Der PUSH- Zeiger liefert die unteren Adressenbit. Zu diesem Zeitpunkt wird der in dem Zwischenspeicher gespeicherte Zeiger in die entsprechende XMTR-Zeiger-FIFO- Warteschlange geschrieben. Der PUSH-Zeiger wird erhöht und wieder zurück in den INDEX-RAM geschrieben.
- Die Schreibfreigabe wird in dem FIFO-Index-RAM mit Steuerung 1102 erzeugt, so daß vor jedem PUSH ein FIFO- Überlauftest an den Lese- und Schreibzeigern durchgeführt werden kann. Wenn das anstehende PUSH einen älteren gültigen Zeiger überschreiben würde, wird das PUSH nicht erlaubt und der Zeiger wird über den Shunt-Zeiger-Rückkehrbus zu dem Puffermanager 206 zurückgesendet.
- Die FIFO-POP-Operation entfernt einen Zeiger aus einem FIFO und liefert ihn zu einem Paketkanal zur Übertragung. POP-Operationen können zu einem beliebigen Zeitpunkt stattfinden, solange gerade keine PUSH- Operation abläuft. Wie bereits beschrieben, wählt der Adressenmultiplexer 1112 das T-TX-Signal, wenn kein PUSH vorliegt. Wie in Fig. 4 gezeigt, enthält das T-TX- Signal die Kanalnummer für den nächsten Zeitschlitz. Diese Nummer wird als die oberen Adressenbit zum Wählen des FIFO für den gewählten Kanal verwendet und dient als das Indexwort für diesen Kanal. Der INDEX-POP- Zeiger liefert untere Adressenbit für den FIFO-RAM 1104. Die aus dem FIFO-RAM 1104 gelesenen Daten sind der Zeiger für das nächste auf diesem Kanal zu übertragende Paket.
- Wenn der Sender 204 für das Senden eines neuen Pakets bereit ist, setzt · der Sender 200 das XMTR-Zeiger- Anforderungssignal zu dem Router 208. Wenn ein POP ansteht, wie oben beschrieben, und es mindestens einen Zeiger in dem gewählten FIFO gibt, setzt die FIFO- Steuerschaltung das VALID-Signal zu dem Sender 204, so daß der Zeiger durch den Sender 204 gelesen wird. Der POP-Zeiger wird erhöht und wieder in den INDEX-RAM 1102 zurückgeschrieben.
- Während einer anstehenden POP-Operation kann möglicherweise keine Zeigeranforderung vorliegen, und in diesem Fall wird der POP-Zeiger nicht erhöht und es wird kein VALID-Signal gesetzt. Während einer anstehenden POP-Operation kann es sich zeigen, daß die POP- und PUSH-Zeiger in dem FIFO-Index-RAM 1102 gleich sind, wodurch angezeigt wird, daß es keine Zeiger in dem FIFO gibt, und in diesem Fall wird der POP-Zeiger nicht erhöht und es wird kein VALID-Signal gesetzt.
- Der Router wird im Pipeline-Verfahren behandelt. Nach dem Routing-RAM-Zugriff werden die Ausgabe des Adressenmultiplexers 1112 und der RX-Zeiger zwischengespeichert. Während die Zeiger-FIFO-PUSH/POP- Operation stattfindet, wird der Routing-RAM-Nachschlag für den nächsten Kanal durchgeführt.
- Nunmehr mit Bezug auf Fig. 12 ist ein Puffermanager 206 gemäß dem Ausführungsbeispiel der vorliegenden Erfindung gezeigt. Der Puffermanager 206 umfaßt einen RCVR-Zeiger-FIFO 1200, eine FIFO-Steuerung 1202 und eine Überwachungsschaltung 1204. Der RCVR-Zeiger-FIFO 1200 speichert Zeiger, bis sie vom System verwendet werden. Die FIFO-Steuerung 1202 reagiert auf Zeigeranforderungen und Anforderungen von zurückkehrenden Zeigern zu dem Zeiger-FIFO 1200. Die Zeigerüberwachungsvorrichtung 1204 stellt die Zeigergültigkeit sicher.
- Der Puffermanager 206 speichert Zeiger-Betriebsmittel, bis sie von den Empfängern 202 benötigt werden. Die Zeiger werden von der Paketvermittlung 10 zur Darstellung von Speicherstellen in dem Paketpuffer 200 verwendet. Die Zeiger werden in einem RAM gespeichert, der zum Zeitpunkt der Systeminitialisierung über die Prozessorschnittstelle 228 als ein FIFO konfiguriert wird. Die Prozessorschnittstelle 228 liefert die Flexibilität zum Programmieren der Anzahl von Zeigern, die auf den FIFO geschoben werden können.
- Anforderungen von Zeigern aus den Empfängern 202 werden auf Zeiger-Anforderungsbussen geliefert. Diese Anforderungen werden in dem 4 : 1-MUX 1206 gemultiplext und auf dem Zeigeranforderungsbus zu der FIFO-Steuerung 1202 gesendet. Die FIFO-Steuerung 1202 empfängt die Zeigeranforderung und bewirkt das Senden einer POP- Operation über den POP-Adressenbus zu dem Zeiger-FIFO 1200.
- Der Zeiger-FIFO 1200 führt die POP-Operation an dem nächsten verfügbaren Zeiger durch und sendet den Zeiger auf dem Zeigerbus. Im Kasten 1208 werden auf in der Technik bekannte Weise Paritätsprüfungen durchgeführt, und der Zeiger wird auf den Zeigerverteilbus zusammen mit einem Zeiger-VALID-Signal (VALID = Gültig) gesendet.
- Wenn Zeiger aus dem Sender 204 oder dem Router 208 geliefert werden, werden sie in dem 226-Multiplexer empfangen. Die Ausgabe des 226-Multiplexers (siehe das Impulsdiagramm 14) wird zusammen mit einem VALID-Signal auf dem VALID-Bus auf Bus gesendet. Parität und außerhalb des Bereichs liegende Zeigerwerte werden im Kasten 1210 geprüft. Dieser Wert ist über die Prozessorschnittstelle programmierbar und ist abhängig von der in diesem System initialisierten Anzahl von Zeigern unterschiedlich.
- Nachdem diese Prüfungen abgeschlossen sind, wird der Zeiger dann in eine Überwachungsschaltung 1204 gebracht. Die Überwachungsschaltung 1204 setzt die Gültigkeit der Umlaufzeiger durch, indem sie einen oder mehrere Zielzeiger in dem Bereich des Puffers erzeugt, wobei die Zielzeiger mit den Zeigern verglichen werden, die durch die Überwachungsschaltung umlaufen. Wenn innerhalb einer im voraus angegebenen Zeit kein Zeiger angetroffen wird, dann wird angenommen, daß der Zeiger verlorengegangen ist, und er wird durch den erzeugten Zeiger ersetzt. Wenn innerhalb der im voraus angegebenen Zeit der Zeiger gefunden wird, dann wird eine weitere Zeitsteuerung gesetzt, um zu bestimmen, ob der Zeiger nochmals angetroffen wird. Wenn der Zeiger nochmals angetroffen wird, dann werden alle mehrfachen Zeiger unterdrückt. Vorteilhafterweise ist die Anzahl von Zeigern, die in einer im voraus angegeben Zeitspanne geprüft werden, eine Funktion des Systemstaus. Die Überwachungsschaltung dieses Ausführungsbeispiels ist der Gegenstand von CPM. Nachdem diese Prüfungen abgeschlossen sind, wird der Zeiger dann auf den FIFO 1200 geschoben, so daß die durch ihn dargestellte Pufferspeicherstelle wiederverwendet werden kann.
- Nunmehr mit Bezug auf Fig. 13 ist ein Impulsdiagramm der Ausgabe des Puffermanagers 206 gezeigt. Zeiger aus dem Puffermanager 206 dienen zur Darstellung verfügbarer Betriebsmittel zum Speichern von Paketdaten. Diese werden "je nach Bedarf" auf dem Zeigerverteilbus an die Empfänger (Fig. 4) auf gemultiplexte Weise verteilt, so daß jeder Empfänger einen Zeiger pro Zeitschlitz Zwischenspeichern kann.
- Nunmehr mit Bezug auf Fig. 14 ist ein Impulsdiagrainm der Eingangssignale für den Puffermanager 206 gezeigt. Zeiger aus dem Router 208 werden von Sendern 204 zur Darstellung von in dem Puffer 200 in Warteschlangen eingereihten Paketdaten verwendet, die zur Übertragung bereit sind. Wenn sie bereit sind, fordert jeder Sender 204 einen neuen Zeiger von dem Router 208 an. Wie in Fig. 5 gezeigt, werden die Zeiger über den Bus XMTR POINTER auf gemultiplexte Weise an die Sender 204 verteilt, so daß jeder Sender 204 einen Zeiger pro Zeitschlitz zwischenspeichert. Nachdem die Paketdaten übertragen wurden, werden die Zeiger über die TX- Zeiger-Rückkehrbusse an den Puffermanager 206 zurückgegeben. Eine andere Quelle für an den Puffermanager 206 zurückgegebene Zeiger ist der Shunt- Zeigerrückkehrbus aus dem Router 208. Dieser Weg wird verwendet, wenn während von den Empfängern 202 oder dem Router 208 Fehler erkannt werden. In diesem Fall wird das fehlerhafte Paket fallengelassen und der Zeiger zu dem Puffermanager 206 zurückrangiert. Alle an den Puffermanager 206 zurückgegebenen Zeiger werden über einen einzigen Eingang geliefert, der an dem Multiplexer 226 gemultiplext ist, um alle möglichen Quellen für jeden Zeitschlitz darzustellen.
- Es versteht sich, daß die oben beschriebenen Ausführungsformen lediglich ein Beispiel für die Erfindung sind und daß Fachleute viele Varianten konzipieren können, ohne vom Schutzumfang der Erfindung abzuweichen.
Claims (20)
1. Schnelle Paketvermittlung zum Routen von
Datenpaketen von einer Quelle zu einem Ziel, wobei
die Datenpakete eine Zieladresse aufweisen,
umfassend: mehrere Eingangsports (1, 2, N),
mehrere Ausgangsports, einen mit den Eingangsports
und den Ausgangsports verbundenen Puffer (200),
einen mit den Eingangsports und den Ausgangsports
verbundenen Puffermanager (206) und einen mit den
Eingangsports und den Ausgangsports verbundenen
Router (208);
wobei der Puffermanager (206) als Reaktion auf
eine Benachrichtigung über den Empfang eines
Datenpakets an einem der Eingangsports eine
Speicherstelle in dem Puffer auswählt, wobei die
Eingangsports jeweils ein Mittel (202) aufweisen,
das auf den Empfang von die Speicherstelle des
Puffers darstellenden Daten reagiert, um das
ankommende Paket zu der Pufferspeicherstelle zu
liefern;
wobei jeder der Ausgangsports ein Mittel (204)
auf weist, das auf den Empfang der die
Pufferspeicherstelle darstellenden Daten reagiert,
um das Datenpaket aus der Pufferspeicherstelle
abzurufen, das Datenpaket zu senden und die die
Pufferspeicherstelle darstellenden Daten an den
Puffermanager zurückzugeben;
dadurch gekennzeichnet, daß der Router (208) ein
Mittel (1100) aufweist, das auf den Empfang der
die Pufferspeicherstelle darstellenden Daten und
der Zieladresse aus den Eingangsports reagiert, um
die die Pufferspeicherstelle darstellenden Daten
als Reaktion auf die Zieladresse zu einem
gewählten der mehreren Ausgangsports zu liefern.
2. Schnelle Paketvermittlung nach Anspruch 1,
weiterhin dadurch gekennzeichnet, daß:
die Eingangsports so ausgelegt sind, daß sie
Datenpakete aus mehreren Kanälen empfangen.
3. Schnelle Paketvermittlung nach Anspruch 2,
weiterhin dadurch gekennzeichnet, daß:
jeder der Kanäle einen oder mehrere Zeitschlitze
umfaßt, wobei der Eingangsport Mittel (500, 504)
aufweist, die auf die Ankunft jedes der
Zeitschlitze reagieren, um während dieses
Zeitschlitzes empfangene Daten in den aus den die
Speicherstelle darstellenden Daten abgeleiteten
Puffer zu lenken.
4. Schnelle Paketvermittlung nach Anspruch 3,
weiterhin dadurch gekennzeichnet, daß:
jeder der Eingangsports einen Protokollautomaten
(506) und einen Adressenautomaten (504) umfaßt,
wobei der Protokollautomat sequentiell während
jedes Zeitschlitzes Daten empfängt und die Daten
zu einer Speicherstelle in dem Puffer liefert, die
auf einer in dem Adressenautomaten berechneten
Adresse basiert, wobei Daten für jedes Datenpaket
sequentiell in der Empfangsreihenfolge in dem
Puffer gespeichert werden.
5. Schnelle Paketvermittlung nach Anspruch 4,
weiterhin dadurch gekennzeichnet, daß:
jeder der Eingangsports weiterhin einen
Kanalzustandspuffer (500) zum Speichern von
Informationen für den Protokollautomaten (506) und
den Adressenautomaten (504) für jeden Kanal
umfaßt.
6. Schnelle Paketvermittlung nach Anspruch 1,
weiterhin dadurch gekennzeichnet, daß:
der Router (208) Mittel (1100, 1104) zum Abbilden
der Zieladresse auf einen der Ausgangsports
umfaßt.
7. Schnelle Paketvennittlung nach Anspruch 1,
weiterhin dadurch gekennzeichnet, daß:
der Router (208) einen Ausgangsport-FIFO (1104)
zum Einreihen der die Pufferspeicherstelle
darstellenden Daten für den gewählten Ausgangsport
in eine Warteschlange umfaßt.
8. Schnelle Paketvermittlung nach Anspruch 1,
weiterhin dadurch gekennzeichnet, daß:
der Router (208) eine Nachschlagetabelle (1100)
zum Abbilden der Zieladresse auf einen der
Ausgangsports und einen Ausgangsport-FIFO (1104)
zum Einreihen der die Pufferspeicherstelle
darstellenden Daten für den gewählten Ausgangsport
in eine Warteschlange umfaßt.
9. Schnelle Paketvermittlung nach Anspruch 1,
weiterhin dadurch gekennzeichnet, daß:
die Ausgangsports so ausgelegt sind, daß sie
Datenpakete über einen gewählten von mehreren
Kanälen senden.
10. Schnelle Paketvermittlung nach Anspruch 9,
weiterhin dadurch gekennzeichnet, daß:
jeder der Kanäle einen oder mehrere Zeitschlitze
umfaßt, wobei der Ausgangsport auf die Ankunft
jedes der Zeitschlitze reagiert, um das Datenpaket
aus dem Puffer (200) während jedes Zeitschlitzes
über den gewählten Kanal zu senden.
11. Schnelle Paketvermittlung nach Anspruch 10,
weiterhin dadurch gekennzeichnet, daß:
jeder der Ausgangsports einen Protokollautomaten
(1000) und einen Adressenautomaten (1002) umfaßt,
wobei der Protokollautomat (1000) Daten aus der
Pufferspeicherstelle auf der Grundlage einer durch
den Adressenautomaten (1002) berechneten Adresse
erhält und die Daten sequentiell auf jedem
Zeitschlitz sendet.
12. Schnelle Paketvermittlung nach Anspruch 11,
weiterhin dadurch gekennzeichnet, daß:
jeder der Ausgangsports weiterhin einen
Kanalzustandspuffer (1004) zum Speichern von
Informationen für den Protokollautomaten (1000)
und den Adressenautomaten (1002) für jeden Kanal
umfaßt.
13. Schnelle Paketvermittlung nach Anspruch 1,
weiterhin dadurch gekennzeichnet, daß:
der Puffermanager (206) eine FIFO-Warteschlange
(1200) zum Speichern der die Pufferspeicherstellen
darstellenden Daten umfaßt.
14. Schnelle Paketvermittlung nach Anspruch 13,
weiterhin dadurch gekennzeichnet, daß:
der Puffermanager (206) auf die Eingangsports
reagiert, um bestimmte der die
Pufferspeicherstellen darstellenden Daten aus der
FIFO-Warteschlange (1200) zu entfernen und diese
die Pufferspeicherstellen darstellenden Daten zu
den Eingangsports zu liefern, und weiterhin darauf
reagiert, daß der Ausgangsport die die
Pufferspeicherstellen darstellenden Daten liefert,
um die die Pufferspeicherstellen darstellenden
Daten an die FIFO-Warteschlange (1200)
zurückzugeben.
15. Verfahren zur Verwendung in einer Paketvermittlung
zum Routen von Datenpaketen von einer Quelle zu
einem Ziel, wobei die Datenpakete jeweils eine
Zieladresse und ein Paketendesignal aufweisen,
wobei die Paketvermittlung einen Eingangsport (1,
2, N), mehrere Ausgangsports, einen mit dem
Eingangsport und dem Ausgangsport verbundenen
Puffer (200), einen Puffermanager (206) zum
Zuteilen und Ent-Zuteilen von Zeigern auf
Speicherstellen in dem Puffer (200) und ein
Routermittel (208) zum Auswählen eines der
mehreren Ausgangsports umfaßt;
wobei das Verfahren die folgenden Schritte
aufweist:
als Reaktion auf den Empfang eines Datenpakets aus
der Quelle fordert der Eingangsport einen Zeiger
von dem Puffermanager (206) an;
als Reaktion auf die Zeigeranforderung teilt der
Puffermanager (206) einen Zeiger zu, der einer
spezifischen Pufferspeicherstelle entspricht;
als Reaktion auf den Empfang des Zeigers liefert
der Eingangsport das Datenpaket, beginnend an der
Speicherstelle, zu dem Puffer (200), während das
Datenpaket aus der Quelle empfangen wird;
gekennzeichnet durch die folgenden Schritte:
als Reaktion auf den Empfang des Paketendesignals
liefern die Eingangsports den Zeiger und die
Zieladresse zu dem Routennittel (208);
als Reaktion auf den Empfang des Zeigers und der
Zieladresse wählt der Router (208) einen der
mehreren Ausgangsports aus und liefert den Zeiger
zu dem gewählten Ausgangsport (204);
als Reaktion auf den Empfang des Zeigers ruft der
gewählte Ausgangsport das Datenpaket aus dem
Puffer (200) ab und sendet das Datenpaket zu dem
Ziel; und
als Reaktion auf das Senden des Paketendesignals
gibt der gewählte Ausgangsport (204) den Zeiger an
den Puffermanager (206) zurück.
16. Verfahren nach Anspruch 15, weiterhin dadurch
gekennzeichnet, daß:
der Schritt des Lieferns des Datenpakets zu dem
Puffer (200) das Empfangen der Datenpakete auf
mehreren Kanälen, die während mehrerer
Zeitschlitze geliefert werden, durch Empfangen
eines Teils des Datenpakets während jedes
Zeitschlitzes, und das Liefern der Daten zu einer
Speicherstelle in dem Puffer (200), die auf einer
für dieses Datenpaket zugeteilten Adresse basiert,
umfaßt.
17. Verfahren nach Anspruch 15, weiterhin dadurch
gekennzeichnet, daß:
der Schritt des Auswählens eines der mehreren
Ausgangsports das Nachschlagen der Zieladresse, um
den gewählten Ausgangsport (204) abzuleiten, und
des Einreihens des Zeigers für den Ausgangsport in
eine Warteschlange umfaßt.
18. Verfahren nach Anspruch 15, weiterhin dadurch
gekennzeichnet, daß:
der Schritt des Abrufens der Datenpakete aus dem
Puffer (200) und des Sendens der Datenpakete das
Senden der Datenpakete auf mehreren Kanälen
während mehrerer Zeitschlitze umfaßt, wobei der
gewählte Ausgangsport (204) Daten für die
Datenpakete unter Verwendung des Zeigers aus dem
Puffer (200) abruft und die Datenpakete auf einem
vorbestimmten Kanal liefert.
19. Verfahren nach Anspruch 15, weiterhin dadurch
gekennzeichnet, daß:
der Schritt des Zuteilens eines Zeigers das
Auswählen des Zeigers aus einer Warteschlange
(1200) von Zeigern im First-In-, First-Out-
Verfahren umfaßt.
20. Verfahren nach Anspruch 15, wobei die Schritte im
Pipeline-Verfahren ausgeführt werden.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/919,461 US5291482A (en) | 1992-07-24 | 1992-07-24 | High bandwidth packet switch |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69332328D1 DE69332328D1 (de) | 2002-10-31 |
DE69332328T2 true DE69332328T2 (de) | 2003-04-17 |
Family
ID=25442122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69332328T Expired - Fee Related DE69332328T2 (de) | 1992-07-24 | 1993-07-13 | Paketschalter mit grosser Bandbreite |
Country Status (6)
Country | Link |
---|---|
US (1) | US5291482A (de) |
EP (1) | EP0581486B1 (de) |
JP (1) | JP3168235B2 (de) |
AT (1) | ATE225104T1 (de) |
CA (1) | CA2096877C (de) |
DE (1) | DE69332328T2 (de) |
Families Citing this family (146)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6496940B1 (en) * | 1992-12-17 | 2002-12-17 | Compaq Computer Corporation | Multiple processor system with standby sparing |
JP2655464B2 (ja) * | 1992-12-25 | 1997-09-17 | 日本電気株式会社 | パケット交換方式 |
JPH06261015A (ja) * | 1993-01-11 | 1994-09-16 | Mitsubishi Electric Corp | フレーム位相同期装置及びフレーム位相同期方法及び時分割多重フレーム位相同期装置 |
US5504741A (en) * | 1993-02-15 | 1996-04-02 | Mitsubishi Denki Kabushiki Kaisha | Data queuing apparatus and ATM cell switch based on shifting and searching |
SE515148C2 (sv) * | 1993-06-23 | 2001-06-18 | Ericsson Telefon Ab L M | Styrning av cellväljare |
SE502576C2 (sv) * | 1993-11-26 | 1995-11-13 | Ellemtel Utvecklings Ab | Feltolerant kösystem |
US5457679A (en) * | 1993-12-08 | 1995-10-10 | At&T Corp. | Channel sharing and memory sharing in a packet switching system |
US5509006A (en) * | 1994-04-18 | 1996-04-16 | Cisco Systems Incorporated | Apparatus and method for switching packets using tree memory |
US5519704A (en) * | 1994-04-21 | 1996-05-21 | Cisco Systems, Inc. | Reliable transport protocol for internetwork routing |
DE69428186T2 (de) * | 1994-04-28 | 2002-03-28 | Hewlett-Packard Co.(A Delaware Corporation), Palo Alto | Mehrfachsendeeinrichtung |
EP0680173B1 (de) * | 1994-04-28 | 2003-09-03 | Hewlett-Packard Company, A Delaware Corporation | Mehrfachsendeeinrichtung |
EP0685949A3 (de) * | 1994-06-03 | 2002-07-10 | Philips Patentverwaltung GmbH | Paketübermittlungssystem |
IL110657A (en) * | 1994-08-14 | 1997-07-13 | Ornet Data Communication Techn | Network switch |
US5781551A (en) * | 1994-09-15 | 1998-07-14 | Texas Instruments Incorporated | Computer communications system with tree architecture and communications method |
US5528584A (en) * | 1994-10-27 | 1996-06-18 | Hewlett-Packard Company | High performance path allocation system and method with fairness insurance mechanism for a fiber optic switch |
US5619497A (en) * | 1994-12-22 | 1997-04-08 | Emc Corporation | Method and apparatus for reordering frames |
US5867666A (en) * | 1994-12-29 | 1999-02-02 | Cisco Systems, Inc. | Virtual interfaces with dynamic binding |
US5793978A (en) * | 1994-12-29 | 1998-08-11 | Cisco Technology, Inc. | System for routing packets by separating packets in to broadcast packets and non-broadcast packets and allocating a selected communication bandwidth to the broadcast packets |
US5550815A (en) * | 1994-12-30 | 1996-08-27 | Lucent Technologies Inc. | Apparatus and method for reducing data losses in a growable packet switch |
US5642349A (en) * | 1994-12-30 | 1997-06-24 | Lucent Technologies Inc. | Terabit per second ATM packet switch having distributed out-of-band control |
US5687172A (en) * | 1994-12-30 | 1997-11-11 | Lucent Technologies Inc. | Terabit per second distribution network |
US5537403A (en) * | 1994-12-30 | 1996-07-16 | At&T Corp. | Terabit per second packet switch having distributed out-of-band control of circuit and packet switching communications |
US5544160A (en) * | 1994-12-30 | 1996-08-06 | At&T Corp. | Terabit per second packet switch |
GB9509484D0 (en) * | 1995-05-10 | 1995-07-05 | Gen Datacomm Adv Res | Atm network switch |
KR0180774B1 (ko) * | 1995-06-28 | 1999-05-15 | 김주용 | 패킷 데이터 전송장치 및 전송방법 |
WO1997004542A2 (en) * | 1995-07-19 | 1997-02-06 | Fujitsu Network Communications, Inc | Multipoint-to-point arbitration in a network switch |
US5948067A (en) | 1995-07-19 | 1999-09-07 | Fujitsu Network Communications, Inc. | Converting between an internal cell and multiple standard asynchronous transfer mode cells |
US6097718A (en) * | 1996-01-02 | 2000-08-01 | Cisco Technology, Inc. | Snapshot routing with route aging |
US6147996A (en) | 1995-08-04 | 2000-11-14 | Cisco Technology, Inc. | Pipelined multiple issue packet switch |
US5724352A (en) * | 1995-08-31 | 1998-03-03 | Lucent Technologies Inc. | Terabit per second packet switch having assignable multiple packet loss probabilities |
US5724349A (en) * | 1995-08-31 | 1998-03-03 | Lucent Technologies Inc. | Terabit per second ATM packet switch having out-of-band control with multi casting |
WO1997010656A1 (en) * | 1995-09-14 | 1997-03-20 | Fujitsu Network Communications, Inc. | Transmitter controlled flow control for buffer allocation in wide area atm networks |
US6182224B1 (en) | 1995-09-29 | 2001-01-30 | Cisco Systems, Inc. | Enhanced network services using a subnetwork of communicating processors |
US6917966B1 (en) | 1995-09-29 | 2005-07-12 | Cisco Technology, Inc. | Enhanced network services using a subnetwork of communicating processors |
US7246148B1 (en) | 1995-09-29 | 2007-07-17 | Cisco Technology, Inc. | Enhanced network services using a subnetwork of communicating processors |
GB2308959A (en) * | 1995-12-29 | 1997-07-09 | Ericsson Telefon Ab L M | Data switching apparatus with fair queuing |
US6091725A (en) * | 1995-12-29 | 2000-07-18 | Cisco Systems, Inc. | Method for traffic management, traffic prioritization, access control, and packet forwarding in a datagram computer network |
US6035105A (en) | 1996-01-02 | 2000-03-07 | Cisco Technology, Inc. | Multiple VLAN architecture system |
WO1997026737A1 (en) * | 1996-01-16 | 1997-07-24 | Fujitsu Limited | A reliable and flexible multicast mechanism for atm networks |
US5907717A (en) * | 1996-02-23 | 1999-05-25 | Lsi Logic Corporation | Cross-connected memory system for allocating pool buffers in each frame buffer and providing addresses thereof |
US6308148B1 (en) | 1996-05-28 | 2001-10-23 | Cisco Technology, Inc. | Network flow data export |
US6243667B1 (en) | 1996-05-28 | 2001-06-05 | Cisco Systems, Inc. | Network flow switching and flow data export |
US6212182B1 (en) | 1996-06-27 | 2001-04-03 | Cisco Technology, Inc. | Combined unicast and multicast scheduling |
US6434120B1 (en) * | 1998-08-25 | 2002-08-13 | Cisco Technology, Inc. | Autosensing LMI protocols in frame relay networks |
US5748905A (en) * | 1996-08-30 | 1998-05-05 | Fujitsu Network Communications, Inc. | Frame classification using classification keys |
US6304546B1 (en) | 1996-12-19 | 2001-10-16 | Cisco Technology, Inc. | End-to-end bidirectional keep-alive using virtual circuits |
US5991824A (en) * | 1997-02-06 | 1999-11-23 | Silicon Graphics, Inc. | Method and system for simultaneous high bandwidth input output |
US6356530B1 (en) | 1997-05-23 | 2002-03-12 | Cisco Technology, Inc. | Next hop selection in ATM networks |
US6122272A (en) * | 1997-05-23 | 2000-09-19 | Cisco Technology, Inc. | Call size feedback on PNNI operation |
US6862284B1 (en) | 1997-06-17 | 2005-03-01 | Cisco Technology, Inc. | Format for automatic generation of unique ATM addresses used for PNNI |
US6052738A (en) * | 1997-06-30 | 2000-04-18 | Sun Microsystems, Inc. | Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory |
US6128666A (en) * | 1997-06-30 | 2000-10-03 | Sun Microsystems, Inc. | Distributed VLAN mechanism for packet field replacement in a multi-layered switched network element using a control field/signal for indicating modification of a packet with a database search engine |
US6081522A (en) * | 1997-06-30 | 2000-06-27 | Sun Microsystems, Inc. | System and method for a multi-layer network element |
US6094435A (en) * | 1997-06-30 | 2000-07-25 | Sun Microsystems, Inc. | System and method for a quality of service in a multi-layer network element |
US6044418A (en) * | 1997-06-30 | 2000-03-28 | Sun Microsystems, Inc. | Method and apparatus for dynamically resizing queues utilizing programmable partition pointers |
US6246680B1 (en) | 1997-06-30 | 2001-06-12 | Sun Microsystems, Inc. | Highly integrated multi-layer switch element architecture |
US6119196A (en) * | 1997-06-30 | 2000-09-12 | Sun Microsystems, Inc. | System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates |
US5920566A (en) * | 1997-06-30 | 1999-07-06 | Sun Microsystems, Inc. | Routing in a multi-layer distributed network element |
US6044087A (en) * | 1997-06-30 | 2000-03-28 | Sun Microsystems, Inc. | Interface for a highly integrated ethernet network element |
US6014380A (en) * | 1997-06-30 | 2000-01-11 | Sun Microsystems, Inc. | Mechanism for packet field replacement in a multi-layer distributed network element |
US6049528A (en) * | 1997-06-30 | 2000-04-11 | Sun Microsystems, Inc. | Trunking ethernet-compatible networks |
US6081512A (en) * | 1997-06-30 | 2000-06-27 | Sun Microsystems, Inc. | Spanning tree support in a high performance network device |
US6016310A (en) * | 1997-06-30 | 2000-01-18 | Sun Microsystems, Inc. | Trunking support in a high performance network device |
US6088356A (en) * | 1997-06-30 | 2000-07-11 | Sun Microsystems, Inc. | System and method for a multi-layer network element |
US5938736A (en) * | 1997-06-30 | 1999-08-17 | Sun Microsystems, Inc. | Search engine architecture for a high performance multi-layer switch element |
US6078590A (en) * | 1997-07-14 | 2000-06-20 | Cisco Technology, Inc. | Hierarchical routing knowledge for multicast packet routing |
US6330599B1 (en) | 1997-08-05 | 2001-12-11 | Cisco Technology, Inc. | Virtual interfaces with dynamic binding |
US6157641A (en) * | 1997-08-22 | 2000-12-05 | Cisco Technology, Inc. | Multiprotocol packet recognition and switching |
US6512766B2 (en) | 1997-08-22 | 2003-01-28 | Cisco Systems, Inc. | Enhanced internet packet routing lookup |
US6212183B1 (en) | 1997-08-22 | 2001-04-03 | Cisco Technology, Inc. | Multiple parallel packet routing lookup |
US6343072B1 (en) | 1997-10-01 | 2002-01-29 | Cisco Technology, Inc. | Single-chip architecture for shared-memory router |
US7570583B2 (en) * | 1997-12-05 | 2009-08-04 | Cisco Technology, Inc. | Extending SONET/SDH automatic protection switching |
US6111877A (en) | 1997-12-31 | 2000-08-29 | Cisco Technology, Inc. | Load sharing across flows |
US6424649B1 (en) | 1997-12-31 | 2002-07-23 | Cisco Technology, Inc. | Synchronous pipelined switch using serial transmission |
US6853638B2 (en) * | 1998-04-01 | 2005-02-08 | Cisco Technology, Inc. | Route/service processor scalability via flow-based distribution of traffic |
US7100020B1 (en) * | 1998-05-08 | 2006-08-29 | Freescale Semiconductor, Inc. | Digital communications processor |
KR100508585B1 (ko) * | 1998-05-23 | 2005-11-25 | 유티스타콤코리아 유한회사 | 전전자교환기 입출력 인터페이스 회로팩의 패킷 송수신 방법 |
US6370121B1 (en) | 1998-06-29 | 2002-04-09 | Cisco Technology, Inc. | Method and system for shortcut trunking of LAN bridges |
US6920112B1 (en) | 1998-06-29 | 2005-07-19 | Cisco Technology, Inc. | Sampling packets for network monitoring |
US6407985B1 (en) | 1998-06-29 | 2002-06-18 | Cisco Technology, Inc. | Load sharing over blocked links |
US6377577B1 (en) | 1998-06-30 | 2002-04-23 | Cisco Technology, Inc. | Access control list processing in hardware |
US6308219B1 (en) | 1998-07-31 | 2001-10-23 | Cisco Technology, Inc. | Routing table lookup implemented using M-trie having nodes duplicated in multiple memory banks |
US6182147B1 (en) | 1998-07-31 | 2001-01-30 | Cisco Technology, Inc. | Multicast group routing using unidirectional links |
US6101115A (en) * | 1998-08-07 | 2000-08-08 | Cisco Technology, Inc. | CAM match line precharge |
US6389506B1 (en) | 1998-08-07 | 2002-05-14 | Cisco Technology, Inc. | Block mask ternary cam |
US7480242B2 (en) * | 1998-11-24 | 2009-01-20 | Pluris, Inc. | Pass/drop apparatus and method for network switching node |
US6771642B1 (en) | 1999-01-08 | 2004-08-03 | Cisco Technology, Inc. | Method and apparatus for scheduling packets in a packet switch |
US7065762B1 (en) | 1999-03-22 | 2006-06-20 | Cisco Technology, Inc. | Method, apparatus and computer program product for borrowed-virtual-time scheduling |
US6757791B1 (en) | 1999-03-30 | 2004-06-29 | Cisco Technology, Inc. | Method and apparatus for reordering packet data units in storage queues for reading and writing memory |
US6603772B1 (en) | 1999-03-31 | 2003-08-05 | Cisco Technology, Inc. | Multicast routing with multicast virtual output queues and shortest queue first allocation |
US6760331B1 (en) | 1999-03-31 | 2004-07-06 | Cisco Technology, Inc. | Multicast routing with nearest queue first allocation and dynamic and static vector quantization |
JP2000307681A (ja) * | 1999-04-16 | 2000-11-02 | Fujitsu Ltd | 中継装置およびフレームトレース方法 |
US6606326B1 (en) | 1999-07-02 | 2003-08-12 | International Business Machines Corporation | Packet switch employing dynamic transfer of data packet from central shared queue path to cross-point switching matrix path |
US6910133B1 (en) | 2000-04-11 | 2005-06-21 | Cisco Technology, Inc. | Reflected interrupt for hardware-based encryption |
US7123620B1 (en) | 2000-04-25 | 2006-10-17 | Cisco Technology, Inc. | Apparatus and method for scalable and dynamic traffic engineering in a data communication network |
US6928470B1 (en) | 2000-07-31 | 2005-08-09 | Western Digital Ventures, Inc. | Transferring scheduling data from a plurality of disk storage devices to a network switch before transferring data associated with scheduled requests between the network switch and a plurality of host initiators |
US6697914B1 (en) | 2000-09-11 | 2004-02-24 | Western Digital Ventures, Inc. | Switched node comprising a disk controller with integrated multi-port switching circuitry |
US7002926B1 (en) | 2000-11-30 | 2006-02-21 | Western Digital Ventures, Inc. | Isochronous switched fabric network |
US7095741B1 (en) | 2000-12-20 | 2006-08-22 | Cisco Technology, Inc. | Port isolation for restricting traffic flow on layer 2 switches |
US20020112141A1 (en) * | 2001-01-08 | 2002-08-15 | Claire Greenwood | Time division finite state machine |
US20030016689A1 (en) * | 2001-07-17 | 2003-01-23 | Hoof Werner Van | Switch fabric with dual port memory emulation scheme |
US7203193B2 (en) * | 2001-07-17 | 2007-04-10 | Alcatel Lucent | In-band message synchronization for distributed shared memory packet switch |
US20030053485A1 (en) * | 2001-09-20 | 2003-03-20 | Chuah Mooi Choo | Multiplexing IP data packets within a MPLS frame |
NO20016372D0 (no) * | 2001-12-27 | 2001-12-27 | Ericsson Telefon Ab L M | Arrangement for å redusere minnebehovet i en svitsj |
US7076543B1 (en) | 2002-02-13 | 2006-07-11 | Cisco Technology, Inc. | Method and apparatus for collecting, aggregating and monitoring network management information |
US7349435B2 (en) * | 2002-07-11 | 2008-03-25 | Bay Microsystems, Inc. | Multiport overhead cell processor for telecommunications nodes |
WO2004023319A1 (en) * | 2002-09-06 | 2004-03-18 | Telefonaktiebolaget Lm Ericsson (Publ). | Switching arrangement including time-slot buses and several buffers |
US7233573B2 (en) * | 2003-02-08 | 2007-06-19 | Hewlett-Packard Development Company, L.P. | Apparatus and method for receiving data from a network |
US8392579B2 (en) * | 2003-02-08 | 2013-03-05 | Hewlett-Packard Development Company, L.P. | Apparatus and method for transmitting data through a network |
US7298755B2 (en) * | 2003-02-08 | 2007-11-20 | Hewlett-Packard Development Company, L.P. | Apparatus and method for communicating with a network and for monitoring operational performance of the apparatus |
US7450599B2 (en) * | 2003-02-08 | 2008-11-11 | Hewlett-Packard Development Company, L.P. | Apparatus and method for communicating with a network |
US6914607B2 (en) * | 2003-02-08 | 2005-07-05 | Hewlett-Packard Development Company, L.P. | Apparatus and method for buffering data |
US7373408B2 (en) | 2003-02-08 | 2008-05-13 | Hewlett-Packard Development Company, L.P. | Network communication apparatus and method |
US7319670B2 (en) * | 2003-02-08 | 2008-01-15 | Hewlett-Packard Development Company, L.P. | Apparatus and method for transmitting data to a network based on retransmission requests |
US7430623B2 (en) * | 2003-02-08 | 2008-09-30 | Hewlett-Packard Development Company, L.P. | System and method for buffering data received from a network |
US8005971B2 (en) | 2003-02-08 | 2011-08-23 | Hewlett-Packard Development Company, L.P. | Apparatus for communicating with a network |
US7957275B2 (en) * | 2004-09-09 | 2011-06-07 | Jinsalas Solutions, Llc | Queuing system |
EP2015569A4 (de) * | 2006-05-02 | 2010-04-07 | Media Global Links Co Ltd | Videosignalumschaltsystem |
US20100138575A1 (en) | 2008-12-01 | 2010-06-03 | Micron Technology, Inc. | Devices, systems, and methods to synchronize simultaneous dma parallel processing of a single data stream by multiple devices |
US20100174887A1 (en) | 2009-01-07 | 2010-07-08 | Micron Technology Inc. | Buses for Pattern-Recognition Processors |
US9323994B2 (en) | 2009-12-15 | 2016-04-26 | Micron Technology, Inc. | Multi-level hierarchical routing matrices for pattern-recognition processors |
US8680888B2 (en) * | 2011-12-15 | 2014-03-25 | Micron Technologies, Inc. | Methods and systems for routing in a state machine |
US20130275709A1 (en) | 2012-04-12 | 2013-10-17 | Micron Technology, Inc. | Methods for reading data from a storage buffer including delaying activation of a column select |
US8868672B2 (en) | 2012-05-14 | 2014-10-21 | Advanced Micro Devices, Inc. | Server node interconnect devices and methods |
US9137173B2 (en) | 2012-06-19 | 2015-09-15 | Advanced Micro Devices, Inc. | Devices and methods for interconnecting server nodes |
US8930595B2 (en) | 2012-06-21 | 2015-01-06 | Advanced Micro Devices, Inc. | Memory switch for interconnecting server nodes |
US9524248B2 (en) | 2012-07-18 | 2016-12-20 | Micron Technology, Inc. | Memory management for a hierarchical memory system |
US9253287B2 (en) | 2012-08-20 | 2016-02-02 | Advanced Micro Devices, Inc. | Speculation based approach for reliable message communications |
US8875256B2 (en) | 2012-11-13 | 2014-10-28 | Advanced Micro Devices, Inc. | Data flow processing in a network environment |
US9703574B2 (en) | 2013-03-15 | 2017-07-11 | Micron Technology, Inc. | Overflow detection and correction in state machine engines |
US9448965B2 (en) | 2013-03-15 | 2016-09-20 | Micron Technology, Inc. | Receiving data streams in parallel and providing a first portion of data to a first state machine engine and a second portion to a second state machine |
WO2016109571A1 (en) | 2014-12-30 | 2016-07-07 | Micron Technology, Inc | Devices for time division multiplexing of state machine engine signals |
US11366675B2 (en) | 2014-12-30 | 2022-06-21 | Micron Technology, Inc. | Systems and devices for accessing a state machine |
US10430210B2 (en) | 2014-12-30 | 2019-10-01 | Micron Technology, Inc. | Systems and devices for accessing a state machine |
KR101695548B1 (ko) * | 2015-06-10 | 2017-01-11 | 최재화 | 곤충용 선별장치 |
US10846103B2 (en) | 2015-10-06 | 2020-11-24 | Micron Technology, Inc. | Methods and systems for representing processing resources |
US10977309B2 (en) | 2015-10-06 | 2021-04-13 | Micron Technology, Inc. | Methods and systems for creating networks |
US10691964B2 (en) | 2015-10-06 | 2020-06-23 | Micron Technology, Inc. | Methods and systems for event reporting |
CN109314658A (zh) * | 2016-06-27 | 2019-02-05 | 华为技术有限公司 | 网络交换设备及时隙交换的方法 |
US10146555B2 (en) | 2016-07-21 | 2018-12-04 | Micron Technology, Inc. | Adaptive routing to avoid non-repairable memory and logic defects on automata processor |
US10019311B2 (en) | 2016-09-29 | 2018-07-10 | Micron Technology, Inc. | Validation of a symbol response memory |
US10268602B2 (en) | 2016-09-29 | 2019-04-23 | Micron Technology, Inc. | System and method for individual addressing |
US10592450B2 (en) | 2016-10-20 | 2020-03-17 | Micron Technology, Inc. | Custom compute cores in integrated circuit devices |
US10929764B2 (en) | 2016-10-20 | 2021-02-23 | Micron Technology, Inc. | Boolean satisfiability |
US12197510B2 (en) | 2016-10-20 | 2025-01-14 | Micron Technology, Inc. | Traversal of S portion of a graph problem to be solved using automata processor |
GB2585947A (en) * | 2019-07-26 | 2021-01-27 | Canon Kk | Method and system for improving mass transfer of data via a standard network adapter |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4322843A (en) * | 1979-12-26 | 1982-03-30 | Bell Telephone Laboratories, Incorporated | Control information communication arrangement for a time division switching system |
US4751697A (en) * | 1986-09-05 | 1988-06-14 | American Telephone And Telegraph Company, At&T Bell Laboratories | Distributed packet switching sytem |
US4821259A (en) * | 1986-09-05 | 1989-04-11 | American Telephone And Telegraph Company, At&T Bell Laboratories | Control information communication arrangement for a distributed control switching system |
US4780870A (en) * | 1986-09-05 | 1988-10-25 | American Telephone And Telegraph Company, At&T Bell Laboratories | Packet switch |
DE3851084D1 (de) * | 1987-05-15 | 1994-09-22 | Hitachi Ltd | Vorrichtung zur Steuerung von Paketvermittlungsnetzen. |
NL8801120A (nl) * | 1988-04-29 | 1989-11-16 | At & T & Philips Telecomm | Kruispuntschakelaar voor het doorschakelen van pakketten. |
ES2111520T3 (es) * | 1988-10-06 | 1998-03-16 | Plessey Telecomm | Disposicion de conmutacion asincrona por division de tiempo y metodo de funcionamiento de la misma. |
US4891803A (en) * | 1988-11-07 | 1990-01-02 | American Telephone And Telegraph Company | Packet switching network |
EP0422910A3 (en) * | 1989-10-10 | 1991-11-06 | American Telephone And Telegraph Company | High capacity memory based packet switches |
AU6890491A (en) * | 1989-12-04 | 1991-06-26 | Motorola, Inc. | Packet handling method |
ATE127643T1 (de) * | 1990-03-14 | 1995-09-15 | Alcatel Nv | Atm-artiges vermittlungselement mit mehreren betriebsarten und dieses enthaltendes vermittlungsnetzwerk. |
-
1992
- 1992-07-24 US US07/919,461 patent/US5291482A/en not_active Expired - Lifetime
-
1993
- 1993-05-25 CA CA002096877A patent/CA2096877C/en not_active Expired - Fee Related
- 1993-07-13 DE DE69332328T patent/DE69332328T2/de not_active Expired - Fee Related
- 1993-07-13 EP EP93305492A patent/EP0581486B1/de not_active Expired - Lifetime
- 1993-07-13 AT AT93305492T patent/ATE225104T1/de not_active IP Right Cessation
- 1993-07-26 JP JP20253593A patent/JP3168235B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE69332328D1 (de) | 2002-10-31 |
EP0581486A2 (de) | 1994-02-02 |
EP0581486B1 (de) | 2002-09-25 |
ATE225104T1 (de) | 2002-10-15 |
EP0581486A3 (de) | 1995-05-17 |
JPH06197130A (ja) | 1994-07-15 |
CA2096877C (en) | 1999-11-02 |
US5291482A (en) | 1994-03-01 |
JP3168235B2 (ja) | 2001-05-21 |
CA2096877A1 (en) | 1994-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69332328T2 (de) | Paketschalter mit grosser Bandbreite | |
DE68929523T2 (de) | ATM-Vermittlungssystem | |
DE3788606T2 (de) | Anordnung zur Überwachung von Steuerinformation für ein Vermittlungssystem mit verteilter Steuerung. | |
DE69428186T2 (de) | Mehrfachsendeeinrichtung | |
DE68919856T2 (de) | Nachrichtenvermittlungselement zur übertragung von zellen unterteilt in teilzellen. | |
DE69020578T2 (de) | Grundelement für ein verbindungsnetzwerk eines knotens zur schnellen paketvermittlung. | |
DE69529155T2 (de) | Erweiterbares kommunikationssystem | |
DE3875003T2 (de) | Hybrides zeit-multiplex-vermittlungssystem mit optimal gestaltetem pufferspeicher. | |
DE69428107T2 (de) | Atm-vermittlung mit kontrolliertem zugang | |
DE2620220C3 (de) | ||
US4754451A (en) | N-by-N "knockout" switch for a high-performance packet switching system with variable length packets | |
DE3788605T2 (de) | Paketvermittlung. | |
DE3752370T2 (de) | Vermittlungssystem | |
DE69734492T2 (de) | System für plesioasynchronen paketbasierten kreuzschienenschalterchip mit hoher taktfrequenz und niedriger latenzzeit, sowie verfahren | |
DE3856239T2 (de) | Paketvermittlung | |
DE3786298T2 (de) | Verfahren und Schalter zum Vermitteln von Informationen. | |
DE3787600T2 (de) | Koppelpunktschaltung für Datenpaketraumvermittlung. | |
DE69032699T2 (de) | Paketvermittlungssystem mit einer busmatrixartigen Vermittlungsanlage | |
DE3788911T2 (de) | Verteiltes Paketvermittlungssystem. | |
DE69033213T2 (de) | Verbindungsstruktur zur Verbindung zwischen einem Eingang und willkürlichen Ausgängen aus einer Gruppe von Ausgängen | |
DE69033231T2 (de) | Erweitbare Paketvermittlungsarchitektur | |
DE69310762T2 (de) | Herstellung von fernmeldeanrufwegen in breitbandkommunikationsnetzen | |
DE68918981T2 (de) | Asynchrones Zeitmultiplexnetzwerk. | |
EP0156339A2 (de) | Verfahren und Anordnung zum Herstellen und Betreiben einer Zeitvielfach-Breitbandverbindung in einer Zeitvielfach-Vermittlungsstelle | |
EP0692893B1 (de) | Vorrichtung zur Vermittlung in digitalen Datennetzen für asynchronen Transfermodus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |