DE60130711T2 - Verfahren und Vorrichtung zum Speichern von Paketen mit einem Grenzeanzeiger - Google Patents

Verfahren und Vorrichtung zum Speichern von Paketen mit einem Grenzeanzeiger Download PDF

Info

Publication number
DE60130711T2
DE60130711T2 DE60130711T DE60130711T DE60130711T2 DE 60130711 T2 DE60130711 T2 DE 60130711T2 DE 60130711 T DE60130711 T DE 60130711T DE 60130711 T DE60130711 T DE 60130711T DE 60130711 T2 DE60130711 T2 DE 60130711T2
Authority
DE
Germany
Prior art keywords
memory
packets
data
bits
factory
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 - Lifetime
Application number
DE60130711T
Other languages
English (en)
Other versions
DE60130711D1 (de
Inventor
Fan Petaluma ZHOU
Ronald P Jr. Pittsburgh Bianchini
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ericsson AB
Original Assignee
Ericsson AB
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ericsson AB filed Critical Ericsson AB
Application granted granted Critical
Publication of DE60130711D1 publication Critical patent/DE60130711D1/de
Publication of DE60130711T2 publication Critical patent/DE60130711T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6402Hybrid switching fabrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/104Asynchronous transfer mode [ATM] switching fabrics
    • H04L49/105ATM switching elements
    • H04L49/108ATM switching elements using shared central buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • H04L49/203ATM switching fabrics with multicast or broadcast capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0685Clock or time synchronisation in a node; Intranode synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5651Priority, marking, classes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management

Description

  • GEBIET DER ERFINDUNG
  • Die Erfindung betrifft die Speicherung von Paketen entlang von Cache-Zeilen eines Speichers mit Paketgrenzenindikatoren. Genauer gesagt, betrifft die Erfindung die Speicherung einer Mehrzahl von Paketen entlang Cache-Zeilen eines Speichers, wobei nur ein Paketgrenzenindikator mit der Mehrzahl an Paketen verbunden ist, so dass weniger von dem Speicher zur Markierungsfunktion verwendet wird.
  • HINTERGRUND DER ERFINDUNG
  • Bei dem breiten TDM-Schema, das im Speichercontroller eingesetzt wird, werden mehrere Pakete in einem Datenwort abgespeichert. Zwar ist die Paketlänge in den Paketdaten enthalten, aber der Speichercontroller hat nicht genügend Information zum Ableiten von Paketgrenzen. Die Paketdaten werden in Streifen auf mehrere Speichercontroller aufgeteilt. So hat kein einzelner Speichercontroller genügend Information zum Bestimmen der tatsächlichen Länge. Die Speicherung zusätzlicher Längen- oder Paketgrenzeninformation für jedes Paket wäre recht kostspielig. Der Speichercontroller kann die Prioritäten beim Warteschlangenabbau nur an bekannten Paketgrenzen vermitteln und muss daher eine gewisse Längen- oder Paketgrenzeninformation speichern. Ein Beispiel für eine Datenspeichervorrichtung wird von US 5893121 bereitgestellt.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Unter einem Aspekt der Erfindung wird eine Vorrichtung bereitgestellt zum Speichern von Paketen, umfassend: einen Speicher zum Halten von Paketen; einen Mechanismus zum Speichern von mindestens zwei Paketen in dem Speicher, wobei nur ein Paketgrenzenindikator mit den mindestens zwei Paketen einhergeht, der Speichermechanismus einen Speichercontroller enthält, der derart auslegt ist, dass er einen Paketgrenzenindikator in dem Speicher platziert, nachdem eine festgelegte Anzahl bits in dem Speicher gespeichert worden ist, wobei der Speicher durch Cache-Zeilen definiert wird und die Pakete entlang der Cache-Zeilen in dem Speicher gespeichert werden, wobei der Speichercontroller derart ausgelegt ist, dass er bits von Daten von Paketen in einer Cache-Zeile in dem Speicher speichert und ein Identifizierer in der Cache-Zeile von Daten anzeigt, wie viele bits in der Cache-Zeile gültig sind.
  • Unter einem anderen Aspekt der Erfindung wird ein Verfahren bereitgestellt zum Speichern von Paketen, gekennzeichnet durch die Schritte: Empfangen von Pa keten in einem Speicher und Speichern mindestens zweier Pakete mit einem Speichercontroller in dem Speicher, wobei mit den mindestens zwei Paketen nur ein Paketgrenzenindikator einhergeht; wobei der Speicherschritt die Schritte enthält: Platzieren eines Paketgrenzenindikators mit dem Speichercontroller in dem Speicher, nachdem eine festgelegte Anzahl bits in dem Speicher gespeichert worden ist; Speichern der Pakete entlang Cache-Zeilen in dem Speicher und Speichern von bits von Daten von Paketen in einer Cache-Zeile in dem Speicher, wobei ein Identifizierer in der Cache-Zeile von Daten angibt, wie viele bits in der Cache-Zeile gültig sind.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • In den beigefügten Zeichnungen sind die bevorzugte Ausführungsform der Erfindung und bevorzugte Verfahren zur Ausführung der Erfindung dargestellt. Es zeigt/zeigen:
  • 1 eine schematische Darstellung des Paket-Striping in dem erfindungsgemäßen Switch;
  • 2 eine schematische Darstellung von einer OC-48-Schnittstellenkarte;
  • 3 eine schematische Darstellung von einem verketteten Netzwerk-Blade;
  • die 4a und 4b schematische Darstellungen zur Konnektivität der Fabric-ASICs;
  • 5 eine schematische Darstellung der Sync-Impulsverteilung;
  • 6 eine schematische Darstellung der Beziehung zwischen Übertragungs- und Empfangssequenzzählern für den Separator bzw. den Unstriper;
  • 7 eine schematische Darstellung einer erfindungsgemäßen Vorrichtung;
  • 8 eine schematische Darstellung eines Speichers.
  • EINGEHENDE BESCHREIBUNG
  • Siehe die Zeichnungen, in denen gleiche Bezugszahlen in allen Ansichten ähnliche oder identische Teile bezeichnen, und insbesondere die 7 und 8: Dargestellt ist eine Vorrichtung 10 zum Speichern von Paketen 12. Die Vorrichtung 10 umfasst einen Speicher 14 zum Halten von Paketen 12. Die Vorrichtung 10 umfasst einen Mechanismus zum Speichern eines Pakets 12 und mindestens zwei Pakete 12 in dem Speicher 14, mit denen nur ein Paketgrenzenindikator 18 einhergeht.
  • Vorzugsweise enthält der Speichermechanismus 16 einen Speichercontroller 20. Der Speichercontroller 20 platziert vorzugsweise einen Paketgrenzenindikator 18 in dem Speicher 14, nachdem eine festgelegte Anzahl an bits in dem Speicher 14 gespeichert worden ist. Vorzugsweise setzt der Speichercontroller 20 einen Paket grenzenindikator 18 ein, nachdem ein Wert an Paketen 12 von 15 Cache-Zeilen im Speicher 14 gespeichert wurde. Der Speichercontroller 20 vermittelt vorzugsweise, welche Pakete 12 von dem Speicher 14 übertragen werden sollen, auf Basis von Paketgrenzenindikatoren 18 in Bezug auf die Priorität der Pakete 12.
  • Vorzugsweise ist der Speicher 14 durch Cache-Zeilen 22 definiert, und die Pakete werden entlang von Cache-Zeilen 22 in dem Speicher 14 gespeichert. Der Speichercontroller 20 speichert vorzugsweise bits von Daten von Paketen 12 in einer Cache-Zeile in dem Speicher 14 ab. Es gibt einen Identifizierer 24 in der Cache-Zeile von Daten, der angibt, wie viele bits in der Cache-Zeile gültig sind. Vorzugsweise ist jede Cache-Zeile 200 bits lang. Der Identifizierer 24 ist vorzugsweise 2 bits von den 200 bits jeder Cache-Zeile.
  • Die Erfindung betrifft ein Verfahren zum Speichern von Paketen 12. Das Verfahren umfasst die Schritte Empfangen von Paketen 12 in einem Speicher 14. Dann erfolgt ein Schritt Speichern eines Pakets und vorzugsweise mindestens zweier Pakete 12 mit einem Speichercontroller 20 in dem Speicher 14, mit denen nur ein Paketgrenzenindikator 18 einhergeht.
  • Vorzugsweise enthält der Speicherschritt den Schritt Platzieren eines Paketgrenzenindikators 18 mit dem Speichercontroller 20 in dem Speicher 14, nachdem eine festgelegte Anzahl bits von Paketen 12 in dem Speicher 14 gespeichert worden ist. Der Speicherschritt umfasst vorzugsweise den Schritt Speichern der Pakete 12 entlang Cache-Zeilen 22 in dem Speicher 14.
  • Der Platzierungsschritt beinhaltet vorzugsweise den Schritt Speichern von bits von Daten von Paketen 12 in einer Cache-Zeile in dem Speicher 14, wobei ein Identifizierer 24 in der Cache-Zeile von Daten angibt, wie viele bits in der Cache-Zeile gültig sind. Nach dem Speicherschritt erfolgt vorzugsweise der Schritt Vermitteln von Paketen 12 aus dem Speicher 14 auf Basis von Paketgrenzenindikatoren 18 in Bezug auf die Priorität der Pakete 12.
  • Beim Betrieb der bevorzugten Ausführungsform wird die Vorrichtung 10 dazu verwendet, die Mindestzahl an Paketgrenzen beizubehalten. Im engsten Sinne lässt sie sich als verlustreicher Kompressionsalgorithmus verstehen, der zum Komprimieren von Paketgrenzeninformation verwendet wird. Jede Cache-Zeile von Daten wird zusammen mit einem Zwei-bit-Feld gespeichert, das die komprimierte Paketgrenzeninformation enthält. Eine völlig unkomprimierte Version der Daten wäre ein einziges Kontrollbit für jedes Daten-bit, das anzeigt, dass das entsprechende Daten-bit das letzte bit des Pakets war. Verglichen mit dieser Informationsform hat die Kompressi onsform nur 1/100 der Größe. Die Vorrichtung 10 verringert den Speicherplatz durch Beseitigung unnötiger Information.
  • Jede Cache-Zeile von Daten geht mit einem Zwei-bit-Feld einher, das angibt, wie viele bits gültig sind. Die codierten Werte sind:
    • – alle 200 bits sind gültig, enden aber nicht an einer Paketgrenze
    • – alle 200 bits sind gültig und enden an einer Paketgrenze
    • – mindestens 191 bits sind gültig, und das erste ungültige bit ist die erste 0, die bei der Suche von 200 abwärts gefunden wird, und
    • – weniger als 191 bits sind gültig, wobei die bits 200-193 eine Zählung der Anzahl gültiger bits enthalten.
  • Oder gleichwertig:
    • – keine bekannten Paketgrenzen
    • – Paketgrenze bei 200 bits
    • – Paketgrenze neben der signifikantesten 0 und
    • – Paketgrenze bei dem bit, das durch die Daten-bits 200-193 angegeben wird
  • Indem man nur 2 bits pro 200 bit Eingabe hinzufügt, kann man soviel Paketgrenzeninformation wie nötig durch diese besondere Anwendung beibehalten.
  • Gewöhnlich sind alle 200-bit-Caches vollständig gefüllt. Dies ist effizient, würde aber den Verlust aller bekannten Paketgrenzen bewirken. Damit sichergestellt wird, dass bekannte Paketgrenzen regelmäßig vorkommen, erzwingt die Logik, welche die Caches füllt, einen der bekannten Paketgrenzenindikatoren 18 nach 15 "keine bekannte Paketgrenze"-Indikatoren. Der Speicher 14 wird auf diese Weise entlang der Cache-Zeilen gefüllt.
  • Wenn die Daten im Speicher 14 aus der Warteschlange abgebaut werden, werden alle Daten entlang der Cache-Zeilen 22 gesendet, bis ein Paketgrenzenindikator 18 erreicht wird. Am Paketgrenzenindikator 18 ergibt sich die Gelegenheit für Prioritäten, die mit den Daten einhergehen, die vermittelt werden sollen. Wenn gewünscht, blockieren daher Daten niedriger Priorität nicht Daten mit hoher Priorität.
  • Das übliche Queueing und Dequeueing der Pakete 12 selbst ist im Stand der Technik bekannt. Die Standard-Speicherung von Paketen 12 im Speicher 14 wird von der Beschreibung hier dahingehend modifiziert, dass die Ineffizienz, weil Paketgrenzenindikatoren 18 an jedem Paket gespeichert werden müssen, gegenüber der Vermittlungsfrequenz zu Prioritätszwecken minimiert wird. Siehe eine vollständigere Beschreibung eines Gesamtverfahrens und -systems im Hinblick auf die Übertragung von Paketen 12, dass die hier beschriebene Vorrichtung und das hier beschriebene Verfahren vorteilhaft genutzt werden können, in der U.S.-Patentanmeldung 09/293 563 mit dem Titel "Very Wide Memory TDM Switching System".
  • Der Switch verwendet RAID-Techniken zur Erhöhung der Gesamt-Switch-Bandbreite und gleichzeitig zur Minimierung der Bandbreite einer einzelnen Fabrik. Bei der Switch-Architektur werden alle Daten gleichmäßig über alle Fabriken verteilt. Somit fügt der Switch Bandbreite hinzu, indem er Fabriken hinzufügt. Die Fabrik muss ihre Bandbreitenkapazität nicht erhöhen, weil der Switch die Bandbreitenkapazität steigert.
  • Jede Fabrik liefert 40G Vermittlungsbandbreite. Das System unterstützt 1, 2, 3, 4, 6 oder 12 Fabriken, wobei die redundante/Ersatz-Fabrik ausgenommen ist. Anders gesagt, kann der Switch ein 40G-, 80G-, 120G-, 160G-, 240G- oder 480G-Switch sein, je nachdem, wie viele Fabriken installiert sind.
  • Eine Portcard liefert 100G Port-Bandbreite. Auf jeweils vier Portcards muss 1 Fabrik vorhanden sein. Die Switch-Architektur unterstützt keine beliebigen Installationen von Portcards und Fabriken.
  • Die Fabrik-ASICs unterstützen Zellen und Pakete. Im Ganzen überträgt der Switch die Daten im Format des Senders ("receiver make right"), wobei der Abflusspfad auf ATM-Blades Frames zu Zellen segmentieren muss und der Abflusspfad auf Frame-Blades das Zusammensetzen von Zellen zu Paketen durchführen muss.
  • Zurzeit werden acht Switch-ASICs im Switch verwendet:
    • – Striper – Der Striper liegt auf dem Portcard- und SCP-IM. Er formatiert die Daten in einen 12-bit-Datenstrom, hängt ein Prüfwort an, spaltet den Datenstrom auf die N Nicht-Ersatz-Fabriken in dem System auf, erzeugt einen Paritätsstreifen derselben Breite wie die Streifen, die zu der anderen Fabrik gehen und sendet die N + 1 Datenströme an die Backplane.
    • – Unstriper – Der Unstriper ist der andere Portcard-ASIC in der Switch-Architektur. Er empfängt Datenstreifen von allen Fabriken im System. Dann rekonstruiert er den ursprünglichen Datenstrom unter Verwendung von Prüfwort und Paritätsstreifen, so dass Fehler ermittelt und korrigiert werden.
    • – Aggregator – Der Aggregator übernimmt die Datenströme und Sendewörter von den Stripern und multiplexiert sie zu einem einzigen Eingabestrom an den Speichercontroller.
    • – Speichercontroller – Der Speichercontroller implementiert die Queueing- und Dequeueing-Mechanismen des Switch. Dazu gehört die eigene "Wide-Memory"-Schnittstelle, wodurch das gleichzeitige En-/De-Queueing mehrerer Zeilen pro Taktzyklus erzielt wird. Die Dequeueing-Seite des Speichercontrollers läuft bei 80 Gbps verglichen mit 40 Gpbs zur Bewältigung des Großteils des Queueing, und Formen von Verbindungen erfolgt auf der Portcard.
    • – Separator – Der Separator implementiert den umgekehrten Arbeitsschritt zum Aggregator. Der Datenstrom vom Speichercontroller wird in mehrere Datenströme demultiplexiert und an einen geeigneten Unstriper-ASIC weitergeleitet. In der Schnittstelle zum Unstriper ist ein Warteschlangen- und Flusskontroll-Handshaking enthalten.
  • Die Verbindung zwischen den Fabriken kann man auf 3 verschiedene Arten betrachten: physikalisch, logisch und "aktiv". Physikalisch sind sämtliche Verbindungen zwischen den Portcards und den Fabriken serielle Differential-Pair-Verbindungen mit Gigabit-Geschwindigkeit. Dabei handelt es sich strikt um eine Implementierungsangelegenheit zur Verringerung der Anzahl an Signalen, die über die Backplane laufen. Die "aktive" Perspektive betrachtet die Konfiguration eines einzelnen Switch. Man kann sie als Momentaufnahme davon ansehen, wie Daten in einem gegebenen Moment verarbeitet werden. Die Schnittstelle zwischen dem Fabrik-ASIC auf den Portcards und den Fabriken ist effektiv 12 bits breit. Diese 12 bits sind je nach der Art der Konfiguration der Fabrik-ASICS über 1, 2, 3, 4, 6 oder 12 Fabriken gleichmäßig verteilt ("striped"). Die "aktive" Perspektive betrifft die Anzahl an bits, die von jeder Fabrik bei der gegenwärtigen Konfiguration verarbeitet wird, die genau 12, geteilt durch die Anzahl an Fabriken, ist.
  • Die logische Perspektive kann als Vereinigung oder maximale Funktion aller möglichen aktiven Konfigurationen betrachtet werden. Der Fabrik-Slot 1 kann je nach der Konfiguration 12, 6, 4, 3, 2 oder 1 bits der Daten von einem einzigen Striper verarbeiten und wird daher mit einem 12-bit-Bus gezeichnet. Dagegen kann der Fabrikslot 3 nur zur Verarbeitung von 4, 3, 2 oder 1 bits von einem einzigen Striper verwendet werden und ist deshalb mit einem 4-bit-Bus gezeichnet.
  • Im Gegensatz zu früheren Switches hat der Switch nicht wirklich ein Konzept eines mittels Software steuerbaren Fabrik-Redundanzmodus. Die Fabrik-ASICs implementieren N + 1-Redundanz ohne jegliche Intervention, solange die Ersatz-Fabrik installiert ist.
  • Hinsichtlich dessen, was sie bereitstellt, bedeutet N + 1-Redundanz, dass die Hardware ein einzelnes Versagen ohne Datenverlust automatisch ermittelt und korrigiert.
  • Die Redundanz arbeitet recht einfach. Damit sie noch leichter verständlich wird, wird ein Spezialfall eines 120G-Switch verwendet mit 3 Fabriken (A, B und C) und einem Ersatz (S). Der Striper nimmt den 12-bit-Bus und erzeugt zunächst ein Prüfwort, das an die Dateneinheit (Zelle oder Frame) angehängt wird. Dateneinheit und Prüfwort werden dann jeweils für die Fabriken A, B und C in einen Datenstreifen von 4 bit pro Taktzyklus aufgeteilt (A3A2A1A0, B3B2B1B0 und C3C2C1C0). Diese Streifen werden dann zum Erzeugen des Streifens für die Ersatzfabrik S3S2S1S0 verwendet, wobei Sn = AnXORBnXORCn, und diese 4 Streifen werden an die entsprechenden Fabriken gesendet. Auf der anderen Seite der Fabriken empfängt der Unstriper 4 4-bit-Streifen von A, B, C und S. Alle möglichen Kombinationen von 3 Fabriken (ABC, ABS, ASC und SBC) werden dann zur Rekonstruktion eines probeweisen 12-bit-Datenstroms verwendet. Dann wird für jeden der 4 Probeströme ein Prüfwort berechnet und dieses dann mit dem Prüfwort am Ende der Dateneinheit verglichen. Wenn kein Fehler bei der Übertragung aufgetreten ist, dann stimmen bei allen 4 Strömen die Prüfwörter überein und der ABC-Strom wird an die Unstriper-Ausgabe weitergeleitet. Ist ein (einziger) Fehler aufgetreten, besteht nur eine Prüfwort-Übereinstimmung. Dann wird der Strom mit der Übereinstimmung off-chip weitergeleitet, und der Unstriper identifiziert den fehlerhaften Fabrikstreifen.
  • Für verschiedene Switch-Konfigurationen, d. h. 1, 2, 4, 6 oder 12 Fabriken, ist der Algorithmus gleich, aber die Streifenbreite ändert sich.
  • Versagen zwei Fabriken, sind alle durch den Switch laufenden Daten fast sicher korrumpiert.
  • Die Fabrik-Slots sind nummeriert und müssen in aufsteigender Reihenfolge ausgefüllt werden. Auch die Ersatzfabrik ist ein spezifischer Slot, so dass Ausfüllen der Fabrik-Slots 1, 2, 3 und 4 anders ist als Ausfüllen der Fabrik-Slots 1, 2, 3 und Ersatz. Ersterer ist ein 160G-Switch ohne Redundanz und letzterer 120G mit Redundanz.
  • Zunächst werden die ASICs konstruiert und die Backplane angeschlossen, so dass die Verwendung eines bestimmten Portcard-Slot erfordert, dass mindestens eine bestimmte Mindestanzahl von Fabriken installiert wird, wobei der Ersatz ausgenommen ist. Diese Beziehung ist in Tabelle 0 dargestellt.
  • Außerdem ist die APS-Redundanz innerhalb des Switch auf spezifisch gepaarte Portcards beschränkt. Die Portcards 1 und 2 sind gepaart, 3 und 4 sind gepaart usw. bis zu den Portcards 47 und 48. D. h., ist APS-Redundanz erforderlich, müssen die gepaarten Slots zusammen ausgefüllt werden.
  • Als einfaches Beispiel soll eine Konfiguration mit 2 Portcards und nur 1 Fabrik dienen. Möchte der Nutzer keine APS-Redundanz verwenden, dann können die 2 Portcards in beliebigen zwei der Portcard-Slots 1 bis 4 installiert werden. Ist APS- Redundanz gewünscht, dann müssen die zwei Portcards in den Slots 1 und 2 oder den Slots 3 und 4 installiert werden.
    Portcard-Slot Mindestanzahl an Fabriken
    1–4 1
    5–8 2
    9–12 3
    13–16 4
    17–24 6
    25–48 12
    Tabelle 0: Fabrik-Anforderungen für die Portcard-Slot-Nutzung
  • Zu Erhöhung der Kapazität wird (werden) die neue(n) Fabrik(en) hinzugefügt. Man wartet, bis der Switch die Veränderung erkennt, und rekonfiguriert das System, so dass Streifen über die neue Anzahl an Fabriken gebildet werden. Die neuen Portcards werden installiert.
  • Man beachte, dass es technisch nicht notwendig ist, dass man über alle 4 Portcards pro Fabrik verfügt. Der Switch arbeitet ordnungsgemäß mit 3 installierten Fabriken und einer einzigen Portcard im Slot 12. Dies ist zwar nicht kostengünstig, funktioniert aber.
  • Zum Entfernen von Kapazität wird das Verfahren zum Erhöhen der Kapazität umgekehrt.
  • D. h. ist der Switch überbelegt, installiert man 8 Portcards und nur eine Fabrik.
  • Dies sollte nur infolge einer falschen Erweiterung des Switch oder durch irgendein Systemversagen auftreten. Je nachdem, wie diese Situation entsteht, tritt eine von zwei Möglichkeiten auf. Ist der Switch als 40G-Switch konfiguriert und werden die Portcards vor der Fabrik hinzugefügt, sind die 5. bis 8. Portcard tot. Ist der Switch als nicht-redundanter 80G-Switch konfiguriert und versagt die zweite Fabrik oder wird entfernt, dann werden alle Daten durch den Switch korrumpiert (unter der Annahme, dass die Ersatzfabrik nicht installiert ist). Nur der Vollständigkeit halber sei erwähnt, dass bei Installation von 8 Portcards in einem redundanten 80G-Switch bei Versagen oder Entfernen der zweiten Fabrik der Switch weiterhin normal arbeitet, wobei der Ersatz die ausgefallene/entfernte Fabrik abdeckt.
  • 1 zeigt die Paketzerlegung in Streifen im Switch.
  • Der Chipset unterstützt ATM- und POS-Portcards in OC48- und OC192c-Konfigurationen. OC48-Portcards bilden Schnittstellen zu den Switching-Fabriken mit vier getrennten OC48-Strömen. OC192-Portcards kombinieren die 4 Kanäle logisch zu einem 10G-Strom. Die Zuflussseite einer Portcard führt keine Verkehrsumwandlungen durch für Verkehr, der zwischen ATM-Zellen und Paketen wechselt. Empfangener Verkehr in gleich welcher Form wird an die Switch-Fabriken gesendet. Die Switch-Fabriken mischen Pakete und Zellen und bauen dann ein Gemisch von Paketen und Zellen aus der Warteschlange auf die Abflussseite einer Portcard ab.
  • Die Abflussseite einer Portcard ist für die Umwandlung des Verkehrs in das geeignete Format für den Ausgabe-Port verantwortlich. Diese Konvention wird im Kontext des Switch als Senden von Daten im Format des Senders ("receiver makes right") bezeichnet. Ein Zellen-Blade ist für die Segmentierung von Paketen sowie für das Zusammensetzen von Zellen zu Paketen verantwortlich. Damit die Fabrikbeschleunigung unterstützt wird, unterstützt die Abflussseite der Portcard eine Verbindungsbandbreite, die dem doppelten der Eingangsseite der Portcard entspricht.
  • 2 zeigt ein Blockdiagramm einer ATM-Portcard auf Poseidon-Basis. Jeder 2,5G-Kanal besteht aus 4 ASICs: Ein Eingangs-TM- und ein Striper-ASIC auf der Eingangsseite und ein Unstriper-ASIC und ein Ausgangs-TM-ASIC auf der Ausgangsseite.
  • Auf der Eingangsseite sind OC-48c- oder 4 OC-12c-Schnittstellen aggregiert. Jeder Vortex sendet einen 2,5G-Zellenstrom in einen zugewiesenen Striper-ASIC (mit dem BIB-Bus, wie weiter unten beschrieben). Der Striper wandelt das zuführte Sendewort in zwei Teile um. Ein Teil des Sendeworts wird zur Fabrik geleitet, so dass der (die) Ausgabeport(s) für die Zelle festgelegt wird (werden). Das gesamte Sendewort wird zudem auf dem Datenteil des Busses als Sendewort für die Verwendung durch den Ausgangs-Speichercontroller geschickt. Das erste Sendewort wird als "Fabrik-Sendewort" bezeichnet und das Sendewort für den Ausgangs-Speichercontroller als "Abflusssendewort".
  • Auf der Ausgangsseite übernimmt der Unstriper-ASIC in jedem Kanal Verkehr von jeder Portcard, überprüft die Daten auf Fehler und korrigiert sie und sendet dann korrekte Pakete auf seinem Ausgabebus nach außen. Der Unstriper verwendet Daten der Ersatz-Fabrik und die vom Striper eingesetzte Prüfsumme zum Finden und Korrigieren von Datenkorruption.
  • 2 zeigt eine OC48-Portcard.
  • Die OC192-Portcard unterstützt einen einzelnen 10G-Strom zur Fabrik und zwischen einem 10G und einem 20G-Abflussstrom. Diese Festplatte verwendet zu dem 4 Striper und 4 Unstriper, aber die 4 Chips arbeiten parallel auf einem breiteren Datenbus. Die an jede Fabrik gesendeten Daten sind für OC48- und OC192-Portcards identisch, so dass Daten zwischen dem Port-Typen strömen können, ohne dass spezielle Umwandlungsfunktionen nötig sind.
  • 3 zeigt ein verkettetes 10G-Netzwerk-Blade.
  • Jede 40G-Switch-Fabrik stellt bis zu 40 Gbps Zellen/Frames in die Warteschlange und baut sie mit 80 Gbps ab. Diese 2fache Beschleunigung verringert die Menge an Verkehr, der an der Fabrik abgepuffert wird, und bewirkt, dass der Ausgangs-ASIC Verkehrsspitzen deutlich oberhalb der Line Rate bewältigt. Eine Switch-Fabrik besteht aus drei Arten von ASICs: Aggregatoren, Speichercontroller und Separatoren. Neun Aggregator-ASICs empfangen 40 Gbps an Verkehr von bis zu 48 Netzwerk-Blades und dem Kontroll-Port. Die Aggregator-ASICs vereinigen das Fabriksendewort und den Nutzdatenanteil zu einem einzigen Datenstrom und TDM zwischen seinen Quellen und platzieren die erhaltenen Daten auf einem breiten Ausgabebus. Mit einem zusätzlichen Kontrollbus (Destid) wird kontrolliert, wie die Speichercontroller die Daten in die Warteschlange stellen. Der Datenstrom von jedem Aggregator-ASIC wird dann nach bit in 12 Speichercontroller aufgeteilt.
  • Der Speichercontroller empfängt bis zu 16 Zellen/Frames in jedem Taktzyklus. Jeder der 12 ASICs speichert 1/12 der aggregierten Datenströme. Dann speichert er die eingehenden Daten auf Basis der Kontrollinformation, die auf dem Destid-Bus empfangen wird. Das Speichern dieser Daten ist leichter in dem Speichercontroller, der Paketgrenzen vergleichsweise wenig registriert (Cache-Zeilen-Konzept). Alle 12 ASICs bauen die gespeicherten Zellen gleichzeitig mit einer aggregierten Geschwindigkeit von 80 Gbps aus der Warteschlange ab.
  • Neun Separator-ASICs führen die umgekehrte Funktion zu den Aggregator-ASICs aus. Jeder Separator empfängt Daten von allen 12 Speichercontrollern und decodiert die Sendewörter, die durch den Aggregator in die Datenströme eingebettet wurden, so dass Paketgrenzen gefunden werden. Jeder Separator-ASIC sendet dann die Daten an bis zu 24 verschiedene Unstriper je nach dem genauen Bestimmungsort, der vom Speichercontroller angegeben wurde, während die Daten zum Separator geschickt wurden.
  • Das Dequeueing-Verfahren wird durch den Rückstau angetrieben. Wird Rückstau auf den Unstriper ausgeübt, wird der Rückstau zum Separator zurückgemeldet. Der Separator und die Speichercontroller haben ebenfalls einen Rückstaumechanismus, der regelt, wann ein Speichercontroller Verkehr zu einem Ausgabe-Port aus der Warteschlange abbauen kann.
  • Zur effizienten Unterstützung von OC48 und OC192 im Chipset werden die 4 OC48-Ports von einer Portcard immer zum gleichen Aggregator und vom gleichen Separator gesendet (die Port-Verbindungen für den Aggregator und den Separator sind immer symmetrisch).
  • Die 4a und 4b zeigen die Konnektivität der Fabrik-ASICs.
  • Die externen Schnittstellen der Switches sind der Eingabebus (BIB) zwischen dem Striper-ASIC und dem Zufluss-Blade-ASIC, wie Vortex, und der Ausgabebus (BOB) zwischen dem Unstriper-ASIC und dem Abfluss-Blade-ASIC, wie Trident.
  • Der Striper-ASIC akzeptiert Daten vom Zufluss-Port über den Eingabebus (BIB) (auch als DIN_ST_bl_ch_-Bus bzeichnet).
  • Dieser Bus kann entweder als 4 getrennte 32-bit-Eingabebusse (4 × OC48c) oder ein einziger breiter 128-bit-Datenbus mit einem gemeinsamen Satz von Kontrollleitungen zu allen Stripern arbeiten. Dieser Bus unterstützt je nach der Softwarekonfiguration des Striper-Chips entweder Zellen oder Pakete.
  • Der Unstriper-ASIC sendet Daten an den Abfluss-Port über den Ausgabebus (BOB) (auch als DOUT_UN_bl_ch_-Bus bzeichnet), der ein 64-(oder 256-)bit-Datenbus ist, der Zelle oder Paket unterstützen kann. Er besteht aus folgenden Signalen:
    Dieser Bus kann entweder als 4 getrennte 32-bit-Ausgabebusse (4 × OC48c) oder ein einziger breiter 128-bit-Datenbus mit einem gemeinsamen Satz von Kontrollleitungen zu allen Unstripern arbeiten. Dieser Bus unterstützt je nach der Softwarekonfiguration des Unstriper-Chips entweder Zellen oder Pakete.
  • Der Synchronisator hat zwei Hauptaufgaben. Die erste Aufgabe ist die Aufrechterhaltung der logischen Zelle-/Paket- oder Datengramm-Ordnung über alle Fabriken. An der Fabrikzuflussschnittstelle müssen Datengramme, die von den Kanälen einer Portcard an mehr als einer Fabrik eintreffen, in der gleichen Reihenfolge über alle Fabriken verarbeitet werden. Die zweite Aufgabe des Synchronisators ist, dass er den Abflusskanal einer Portcard alle Segmente oder Streifen eines Datengramms wieder zusammensetzen lässt, die zusammen gehören, obwohl die Datengrammsegmente von mehr als einer Fabrik gesendet werden und an den Abflusseingängen des Blade zu unterschiedlichen Zeitpunkten eintreffen können. Dieser Mechanismus muss in einem System aufrechterhalten werden, das unterschiedliche Nettoverzögerungen und variable Ausmaße an Taktverschiebung zwischen Blades und Fabriken aufweist.
  • Der Switch verwendet ein System synchronisierter Fenster, in denen Startinformation über das System übertragen wird. Jeder Transmitter und Empfänger kann auf relative Taktzahlen von der letzten Resynchronisierungsanzeige blicken, so dass Daten von mehreren Quellen synchronisiert werden. Der Empfänger verzögert den Empfang von Daten, die der erste Taktzyklus von Daten in einem Synchronisierungszeitraum sind, bis zu einer programmierbaren Verzögerung, nachdem er die globale Synchronisierungsanzeige erhalten hat. An diesem Punkt werden die Daten so betrachtet, als seien sie alle gleichzeitig empfangen worden, und es gilt eine feste Reihenfolge. Obwohl die Verzögerungen für Paket 0 und Zelle 0 dazu führten, dass sie an den Empfängern aufgrund von Verzögerungen durch die Box in unterschiedlichen Reihenfolgen gesehen wurden, ist die erhaltene Reihenfolge beider Ströme bei der Empfangszeit = 1 gleich, Paket 0, Zelle 0 auf Basis des physikalischen Busses, auf dem sie empfangen wurden.
  • Mehrere Zellen oder Pakete können bei einem Zählerticken gesendet werden. Alle Bestimmungsorte ordnen alle Zellen von der ersten Schnittstelle, bevor sie auf die zweite Schnittstelle bewegt werden usw. Die Zellensynchronisierungstechnik wird an allen Zellenschnittstellen verwendet. Unterschiedliche Auflösungen sind an einigen Schnittstellen erforderlich.
  • Der Synchronisator besteht grundsätzlich aus zwei Hauptblöcken, dem Transmitter und dem Empfänger. Der Transmitterblock liegt in den Striper- und Separator-ASICs und der Empfängerblock in den Aggregator- und Unstriper-ASICs. Der Empfänger im Aggregator handhabt bis zu 24 (6 Portcards × 4 Kanäle) Eingabe-Lanes. Der Empfänger im Unstriper handhabt bis zu 13 (12 Fabriken × 1 Ausgleichsfabrik) Eingabe-Lanes.
  • Wird ein Synchronisierungsimpuls empfangen, berechnet der Transmitter zunächst die Anzahl an Taktzyklen, der er schneller ist (als N Takte bezeichnet).
  • Der Übertragungssynchronisator unterbricht den Ausgabestrom und überträgt N K-Zeichen, die anzeigen, dass er sperrt. Am Ende der Sperrphase überträgt der Transmitter ein K-Zeichen, das anzeigt, dass die gültigen Daten beim nächsten Taktzyklus beginnen. Diese Anzeige, dass der nächste Zyklus gültig ist, wird von den Empfängern zur Synchronisierung des Verkehrs von allen Quellen verwendet.
  • Am nächsten Ende der Übertragung setzt der Transmitter mindestens ein Idle-Symbol an der Schnittstelle ein. Mithilfe dieser Idle-Symbole können die 10-bit-Decodierer sich wieder richtig mit dem seriellen 10-bit-Code-Fenster synchronisieren, wenn sie aus der Synchronisierung herausfallen.
  • Der Empfangssynchronisator empfängt den globalen Synchronisierungsimpuls und verzögert den Synchronisierungsimpuls um eine programmierte Zahl (die je nach dem maximalen Ausmaß an Transportverzögerung programmiert ist, die eine physi kalische Box haben kann). Nach Verzögern des Synchronisierungsimpulses betrachtet der Empfänger dann den Taktzyklus unmittelbar nach dem Synchronisierungszeichen als annehmbar für den Empfang. Dann werden Daten in jedem Taktzyklus empfangen, bis das nächste Synchronisierungszeichen auf dem Eingabestrom entdeckt wird. Diese Daten werden als nicht annehmbar für den Empfang angesehen, bis der verzögerte globale Synchronisierungsimpuls entdeckt wird.
  • Weil sich Transmitter und Empfänger auf physikalisch verschiedenen Platten befinden und von verschiedenen Oszillatoren getaktet werden, bestehen zwischen ihnen Taktgeschwindigkeitsunterschiede. Zur Beschränkung der Anzahl an Taktzyklen zwischen verschiedenen Transmittern und Empfängern wird ein globaler Synchronisierungsimpuls auf Systemebene zur Resynchronisierung aller Sequenzzähler verwendet. Jeder Chip ist so programmiert, dass er sicherstellt, dass unter allen gültigen Taktversätzen jeder Transmitter und Empfänger denkt, dass er mindestens einen Taktzyklus schneller ist. Jeder Chip wartet dann auf die passende Anzahl an Taktzyklen, bis sie sich in ihrem derzeitigen Sync-Impuls-Fenster befinden. Dies gewährleistet, dass alle Quellen N* gültige Sync-Impuls-Fenster-Taktzyklen zwischen den Synchronisierungsimpulsen vergehen lassen.
  • Zum Beispiel kann das Synchronisierungsimpulsfenster auf 100 Takte programmiert werden. Die Synchronisierungsimpulse können mit einer nominellen Rate von einem Synchronisierungsimpuls alle 10000 Takte gesendet werden. Im schlimmsten Fall einer Verschiebung der Synchronisierungsimpulstransmittertakte und der Synchronisierungsimpulsempfängertakte kann es tatsächlich 9995 bis 10005 Takte am Empfänger pro 10000 Takte auf dem Synchronisierungsimpulstransmitter geben. In diesem Fall wird ein Synchronisierungsimpulstransmitter derart programmiert, dass er alle 10006 Taktzyklen Synchronisierungsimpulse aussendet. Die 10006 Takte gewährleisten, dass sich alle Empfänger in ihrem nächsten Fenster befinden müssen. Ein Empfänger mit einem schnellen Takt kann tatsächlich 10012 Takte gesehen haben, wenn der Synchronisierungsimpulstransmitter einen langsamen Takt hat. Weil der Synchronisierungsimpuls 12 Taktzyklen in das nächste Synchronisierungsimpulsfenster hinein empfangen wurde, verzögert der Chip 12 Taktzyklen lang. Ein anderer Empfänger kann 10006 Takte gesehen haben und für 6 Taktzyklen am Ende des Synchronisierungsimpulsfensters sperren. In beiden Fällen hat jede Quelle 10100 Taktzyklen durchlaufen.
  • Ist eine Portcard oder Fabrik nicht vorhanden oder wurde gerade eingesetzt und wird von einer angenommen, dass sie die Eingaben von einem Empfangssynchronisator antreibt, wird das Schreiben von Daten an den bestimmten Eingabe-FIFO verhindert, weil der Eingabetakt nicht vorhanden oder instabil und der Status der Datenzeilen unbekannt ist. Wenn die Portcard oder Fabrik eingesetzt wird, muss Software hinzukommen und die Eingabe in die byte-Lane freigeben, so dass Daten von dieser Quelle freigegeben sind. Schreiben an den Eingabe-FIFO wird freigegeben. Es wird angenommen, dass das Freigabesignal bestätigt wird, nachdem die Daten, das Sendewort und der Takt von der Portcard oder Fabrik stabil sind.
  • Auf Systemebene gibt eines einen primären und einen sekundären Synchronisierungsimpulstransmitter, die sich auf zwei getrennten Fabriken befinden. Es gibt auch einen Synchronisierungsimpulsempfänger auf jeder Fabrik und jedem Blade. Dies ist aus 5 ersichtlich. Ein primärer Synchronisierungsimpulstransmitter ist ein freier Synchronisierungsimpulsgenerator, und ein sekundärer Synchronisierungsimpulstransmitter synchronisiert seine Synchronisierungsimpulse mit dem primären. Die Synchronisierungsimpulsempfänger empfangen primäre und sekundäre Synchronisierungsimpulse und wählen auf Basis eines Fehlerprüfalgorithmus den korrekte Synchronisierungsimpuls zum Weiterleiten an die ASICs, die sich auf der Festplatte befinden. Der Synchronisierungsimpulsempfänger stellt sicher, dass ein Synchronisierungsimpuls nur dann zum Rest der Festplatte weitergeleitet wird, wenn der Synchronisierungsimpuls von den Synchronisierungsimpulstransmittern in seine eigene Sequenz-"0"-Zählung fällt. Zum Beispiel liegen der Synchronisierungsimpulsempfänger und ein Unstriper-ASIC auf dem gleichen Blade. Der Synchronisierungsimpulsempfänger und der Empfangssynchronisator im Unstriper werden von dem gleichen Kristall-Oszillator getaktet, so dass zwischen den Takten, die zum inkrementellen Erhöhen der internen Sequenzzähler verwendet werden, keine Taktverschiebung vorhanden sein sollte. Der Empfangssynchronisator verlangt, dass der Synchronisierungsimpuls, den er empfängt, immer im "0"-Zählungsfenster liegt.
  • Stellt der Synchronisierungsimpulsempfänger fest, dass der primäre Synchronisierungsimpulstransmitter nicht mehr synchronisiert ist, schaltet er um zum sekundären Synchronisierungsimpulstransmitter. Der sekundäre Synchronisierungsimpulstransmitter stellt ebenfalls fest, dass der primäre Synchronisierungsimpulstransmitter nicht mehr synchronisiert ist, und beginnt mit der Erzeugung seines eigenen Synchronisierungsimpulses unabhängig von dem primären Synchronisierungsimpulstransmitter. Dies ist die Arbeitsweise des sekundären Synchronisierungsimpulstransmitters. Stellt der Synchronisierungsimpulsempfänger fest, dass der primäre Synchronisierungsimpulstransmitter wieder synchronisiert ist, schaltet er zur primären Seite. Der sekundäre Synchronisierungsimpulstransmitter stellt ebenfalls fest, dass der primäre Synchronisierungsimpulstransmitter wieder synchronisiert ist, und schal tet wieder in den sekundären Modus. Im sekundären Modus synchronisiert er seinen eigenen Synchronisierungsimpuls mit dem primären Synchronisierungsimpuls. Der Synchronisierungsimpulsempfänger hat weniger Toleranz in seinem Synchronisierungsimpuls-Filtermechanismus als der sekundäre Synchronisierungsimpulstransmitter. Der Synchronisierungsimpulsempfänger schaltet schneller um als der sekundäre Synchronisierungsimpulstransmitter. Dies erfolgt, damit gewährleistet ist, dass alle Empfängersynchronisatoren auf die Verwendung der sekundären Synchronisierungsimpulstransmitterquelle umgeschaltet haben, bevor der sekundäre Synchronisierungsimpulstransmitter zum primären Modus umschaltet.
  • 5 zeigt die Synchronisierungsimpulsverteilung.
  • Zum Sperren der Backplane-Übertragung von einer Fabrik anhand der Anzahl an Taktzyklen, die in der Synchronisierungsberechnung angegeben wird, muss die gesamte Fabrik für so viele Taktzyklen effektiv sperren, dass gewährleistet ist, dass die gleichen Queueing- und Dequeueing-Entscheidungen synchron bleiben. Dies benötigt Unterstützung in jeder der Fabrik-ASICs. Sperren beendet alle Funktionen, einschließlich Funktionen, wie Warteschlagenresynchronisierung.
  • Das Synchronisierungssignal von dem Synchronisierungsimpulsempfänger wird an alle ASICs weitergeleitet. Jeder Fabrik-ASIC enthält einen Zähler in der Kerntaktdomäne, der Taktzyklen zwischen globalen Synchronisierungsimpulsen zählt. Nach Empfang des Synchronisierungsimpulses berechnet jeder ASIC die Anzahl an Taktzyklen, die er schneller ist. Weil das globale Sync nicht mit seinem eigenen Takt übertragen wird, ist der berechnete Sperrzykluswert möglicherweise nicht für alle ASICs auf derselben Fabrik gleich. Dieser Unterschied wird berücksichtigt, indem alle Schnittstellen-FIFOs in einer Tiefe gehalten werden, in der sie den maximalen Versatz an Sperrtakten tolerieren können.
  • Sperrzyklen auf allen Chips werden immer an dem gleichen logischen Punkt in Bezug zum Beginn der letzten Sequenz "brauchbarer"(Nicht-Sperr-)Zyklen eingesetzt. D. h. jeder Chip führt immer die gleiche Anzahl an "brauchbaren" Zyklen zwischen Sperrereignissen aus, auch wenn die Anzahl an Sperrzyklen variiert.
  • Sperren kann auf verschiedenen Chips zu unterschiedlichen Zeiten erfolgen. Alle Fabrik-Eingabe-FIFOs werden zu Beginn derart eingestellt, dass Sperren zunächst auf jeder Seite des FIFO erfolgen kann, ohne dass der FIFO trocken- oder überläuft. An jeder Chip-Chip-Schnittstelle gibt es einen Synchronisierungs-FIFO zum Ausgleichen von Sperrzyklen (sowie Festplatten-Trace-Längen und Taktversätzen). Die Transmittersignale sperren, während er gesperrt ist. Der Empfänger führt während angegebener Zyklen keinen Push-Schritt aus und keinen Pop-Schritt, während er selbst gesperrt ist. Die FIFO-Tiefe variiert je nachdem, welcher Chip zuerst sperrt. Die Variation ist jedoch durch die maximale Anzahl an Sperrzyklen beschränkt. Die Anzahl an Sperrzyklen, die ein bestimmter Chip während eines globalen Synchronisierungszeitraums sieht, kann variieren. Sie haben aber alle die gleiche Anzahl an brauchbaren Zyklen. Die Gesamtzahl an Sperrzyklen, die jeder Chip auf einer bestimmten Fabrik sieht, ist innerhalb von Toleranzgrenzen gleiche.
  • Die Aggregator-Kerntaktdomäne stoppt während der Sperrdauer vollständig – alle Flops und Speicher halten ihren Status. Die Eingabe-FIFOs können sich aufbauen. Sperrbuszyklen werden in die Ausgabenschlangen eingesetzt. Wann genau die Kernabsperrung ausgeführt wird, ist dadurch vorgegeben, wann das DOUT_AG-Busprotokoll das Einfügen von Sperrzyklen zulässt. DOUT_AG-Sperrzyklen werden auf dem DestID-bus angegeben.
  • Der Speichercontroller muss alle Flops für eine angemessene Anzahl an Zyklen sperren. Um den Einfluss auf den Siliziumbereich im Speichercontroller zu verringern, wird eine als Fortpflanzungssperrung (propagated lockdown) bezeichnete Technik verwendet.
  • Die Chip-Chip-Synchronisierung in der Fabrik erfolgt bei jedem Synchronisierungsimpuls. Zwar müssen einige ASICs über eine gewisse Synchronisierungsfehler-Ermittlungsfähigkeit verfügen, aber es ist die Aufgabe des Unstripers, Fabriksynchronisierungsfehler aufzudecken und die störende Fabrik zu beseitigen. Die Chip-Chip-Synchronisierung ist eine Kaskadenfunktion, die erfolgt, bevor ein Paketstrom auf der Fabrik zugelassen wird. Die Synchronisierung fließt vom Aggregator zum Speichercontroller, zum Separator und zurück zum Speichercontroller. Nach Zurücksetzen des Systems wartet der Aggregator auf das erste globale Synchronisierungssignal. Nach Empfang überträgt der Aggregator einen lokalen Synchronisierungsbefehl (Wert 0 × 2) auf dem DestID-Bus an jeden Speichercontroller.
  • Die Striping-Funktion weist bits von eingehenden Datenströmen einzelnen Fabriken zu. Zwei Punkte wurden beim Ableiten der Striping-Zuweisung optimiert:
    • 1. Die Backplane-Effizienz sollte für OC48 und OC192 optimiert werden.
    • 2. Die Backplane-Verschaltung sollte für den OC192-Betrieb nicht signifikant verändert sein.
  • Diese wurden gegen zusätzliche Multiplexierungsschenkel für die Striper- und Unstriper-ASICs ausbalanciert. Ungeachtet der Optimierung muss der Switch im Speichercontroller für OC48 und OC192 das gleiche Datenformat haben.
  • Die Backplane-Effizienz erfordert, dass bei der Bildung der Backplane-Busse minimales Padding hinzugefügt wird. Für den 12-bit-Backplane-Bus für OC48 und den 48-bit-Backplane-Bus für OC192 erfordert eine optimale Zuweisung, dass die Anzahl unbenutzter bits für eine Übertragung gleich (Anzahl bytes·8)/Busbreite ist, wobei "/" eine ganzzahlige Division ist. Bei OC48 kann der Bus 0, 4 oder 8 unbenutzte bits haben. Bei OC192 kann der Bus 0, 8, 16, 24, 32 oder 40 8 unbenutzte bits haben.
  • Das bedeutet, dass kein bit zwischen 12-bit-Grenzen verschoben werden kann oder dass das OC48-Padding für bestimmte Paketlängen nicht optimal ist.
  • Bei OC192 bedeutet maximale Bandbreitennutzung, dass jeder Striper die gleiche Anzahl an bits empfangen muss (was bit-Verschränkung in die Striper hinein impliziert). Kombiniert mit derselben Backplane-Verschaltung impliziert dies, dass bei OC192 jeder Streifen genau die richtige Anzahl an bits haben muss, die von jedem Striper kommen, der ¼ der bits aufweist.
  • Für das Zuweisen von Daten-bits an Fabriken wird ein 48-bit-Frame verwendet. Im Inneren des Stripers ist ein FIFO, der 32 bits breit bei 80–100 MHz geschrieben und 24 bits breit bei 125 MHz gelesen wird. Drei 32-bit-wörter ergeben vier 24-bit-Wörter. Jedes Paar von 24-bit-Wörtern wird als 48-bit-Frame behandelt. Die Zuweisungen zwischen bits und Fabriken hängen von der Anzahl der Fabriken ab. Tabelle 11: bit-Striping-Funktion
    Fab 0 Fab 1 Fab 2 Fab 3 Fab 4 Fab 5 Fab 6 Fab 7 Fab 8 Fab 9 Fab 10 Fab 11
    0:11 0:11
    1 fab 12:23 12:23
    24:35 24:35
    36:47 36:47
    0:11 0, 2, 5, 7, 8, 10 1,3,4, 6,9,11
    2 fab 12:23 13, 15, 16, 18, 21 12, 14, 17, 19 20, 22
    24:35 +24 bis 0:11 +24 bis 0:11
    36:47 +24 bis 12:23 +24 bis 12:23
    0:11 0, 3, 5, 10 2, 4, 7, 9 1, 6, 8, 11
    3 fab 12:23 15, 17, 22, 13 14, 16, 19, 21 13, 18, 20, 23
    24:35 +24 bis 0:11 +24 to 0:11 24 bis 0:11
    36:47 +24 bis 12:23 +24 to 12:23 +24 bis 12:23
    0:11 0, 5, 10 3, 4, 9 2, 7, 8 1, 6, 11
    4 fab 12:23 15, 16, 21 14, 19, 20 13, 18, 23 12, 17, 22
    24:35 26, 31, 32 25, 30, 35 24, 29, 34 27, 28, 33
    36:47 37, 42, 47 36, 41, 46 39, 40, 43 38, 43, 44
    0, 11 0, 11 1, 4 5, 8 2, 9 3, 6 7, 10
    6 fab 12:23 14, 21 15, 18 19, 22 12, 23 13, 16 17, 20
    24:35 +24 bis 0:11
    + 24 bis 12:23
    0:11 0 4 8 1 5 9 2 6 10 3 7 11
    12 fab 12:23 15 19 23 12 16 20 13 17 21 14 18 22
    24:35 26 30 34 27 31 35 24 28 32 25 29 33
    36:47 37 41 45 38 42 46 39 43 47 37 40 44
  • Die folgende Tabelle gibt die byte-Lanes an, die im Aggregator zuerst gelesen und zu den ersten im Separator geschrieben werden. Die vier Kanäle sind als A, B, C, D bezeichnet. Die verschiedenen Fabriken haben eine unterschiedliche Lese-/Schreib-Reihenfolge der Kanäle, so dass alle Busse vollständig genutzt werden können.
  • Eine-Fabrik-40G
  • Die folgende Tabelle zeigt die Schnittstellenlesereihenfolge für den Aggregator.
    Fabrik 1. 2. 3. 4.
    0 A B C D
    Par A B C D
    Zwei-Fabriken-80G
    Fabrik 1. 2. 3. 4.
    0 A C B D
    1 B D A C
    Par A C B D
    120G
    Fabrik 1. 2. 3. 4.
    0 A D B C
    1 C A D B
    2 B C A D
    Par A D B C
    Drei-Fabriken-160G
    Fabrik 1. 2. 3. 4.
    0 A B C D
    1 D A B C
    2 C D A B
    3 B C D A
    Par A B C D
    Sechs-Fabriken-240G
    Fabrik 1. 2. 3. 4.
    0 A D C B
    1 B A D C
    2 B A D C
    3 C B A D
    4 D C B A
    5 D C B A
    Par A C D B
    Zwölf-Fabriken-480G
    Fabrik 1. 2. 3. 4.
    0, 1, 2 A D C B
    3, 4, 5 B A D C
    6, 7, 8 C B A D
    9, 10, 1 D C B A
    Par A ß C D
  • Schnittstellen zu dem Gigabit-Transceivern verwenden den Transceiver-Bus als geteilten Bus mit zwei getrennten Sendewort- und Datenbussen. Der Sendewortbus hat eine feste Größe (2 bit für OC48-Zufluss, 4 bit für OC48-Abfluss, 8 bit für OC192- Zufluss und 16 bit für OC192- Abfluss), der Datenbus hat eine variable Größe. Die Übertragungsreihenfolge hat immer Sendewort-bits an festen Stellen. Jede Striping-Konfiguration hat einen Transceiver, der zur Kommunikation mit einem Bestimmungsort in allen gültigen Konfigurationen verwendet wird. Dieser Transceiver wird zum Senden beider Sendewortbusse und zum Starten der Datenübertragung verwendet.
  • Die Backplane-Schnittstelle wird physikalisch unter Verwendung von Schnittstellen zu den Backplane-Transceivern implementiert. Der Bus für Zu- und Abfluss wird so betrachtet, als bestehe er aus zwei Hälften, jeweils mit Sendewortdaten. Die zwei Bushälften können Information über getrennte Pakete haben, wenn die erste Bushälfte ein Paket beendet.
  • Zum Beispiel hat eine zu den Fabriken gehende OC48-Schnittstelle lokal gesprochen 24 Daten-bits und 2 Sendwort-bits. Dieser Bus wird derart verwendet, als sei er 2 × (12-bit-Datenbus + 1 bit Sendewortbus). Die zwei Bushälften werden als A und B bezeichnet. Bus A sind die ersten Daten, darauf folgt Bus B. Ein Paket kann auf Bus A oder B beginnen und auf Bus A oder B enden.
  • Bei Abbilden von Daten-bits und Sendewort-bits auf Transceiver-bits werden die Bus-bits verschränkt. Dies gewährleistet, dass alle Transceiver den gleichen gültig/ungültig-Status haben, auch wenn das Striping-Ausmaß sich verändert. Sendewörter sollte so interpretiert werden, dass Bus A vor Bus B erscheint.
  • Das BusA-/BusB-Konzept entspricht nahezu Schnittstellen zwischen den Chips.
  • Alle Backplane-Busse unterstützen Datenfragmentierung. Das verwendete Protokoll markiert die letzte Übertragung (über das Endsegment-bit im Sendewort). Alle Übertragungen, die nicht Endsegment sind, müssen die gesamte Busbreite nutzen, sogar wenn keine gerade Anzahl an bytes vorliegt. Jedes gegebene Paket muss für alle Übertragungen dieses Pakets an dieselbe Anzahl von Fabriken in Streifen zerlegt werden. Wird das Striping-Ausmaß während der Übertragung eines Pakets im Striper aktualisiert, wird nur das Striping bei Beginn des nächsten Pakets aktualisiert.
  • Jeder Transmitter auf den ASICs hat die folgenden I/O für jeden Kanal:
    8-bit-Datenbus, 1-bit-Takt, 1-bit-Kontrolle
    Auf der Empfangsseite empfängt der ASIC pro Kanal
    einen Empfangstakt, 8-bit-Datenbus, 3-bit-Statusbus
  • Der Switch optimiert die Transceiver, indem ein Transmitter auf zwischen 1 und 3 Backplane-Paare und jeder Empfänger mit zwischen 1 und 3 Backplane-Paaren abgebildet wird. Dies lässt nur genügend Transmitter, dass der benötigte Verkehr in einer Konfiguration unterstützt wird, die auf der Festplatte aufgefüllt werden soll, wobei ein vollständiger Satz von Backplane-Netzen aufrechterhalten wird. Die Motivation für diese Optimierung war die Verringerung der Anzahl der benötigten Transceiver.
  • Nachdem die Optimierung erfolgt war, war immer noch erforderlich, dass jederzeit zwei verschiedene Striping-Ausmaße in den Gigabit-Transceivern unterstützt werden. Dadurch kann der Verkehr von Striping-Daten an eine Fabrik und Striper-Striping-Daten an zwei Fabriken gleichzeitig in die Warteschlange gestellt werden.
  • Je nach der Buskonfiguration müssen gegebenenfalls mehrere Kanäle verkettet werden, so dass eine Pipe mit größerer Bandbreite gebildet wird (jederzeit mehr als ein Transceiver in einer logischen Verbindung steht). Zwar können Quad-Gbit- Transceiver 4 Kanäle zusammenbinden, aber diese Funktion wird nicht verwendet. Stattdessen ist der Empfangs-ASIC für die Synchronisierung zwischen den Kanälen von einer Quelle verantwortlich. Dies erfolgt in dem gleichen Kontext wie der generische Synchronisierungsalgorithmus.
  • Die 8b/10b-Codierung/Decodierung in den Gigabit-Transceivern ermöglicht das Senden einer Reihe von Kontrollereignissen über den Kanal. Die Bezeichnung für diese Kontrollereignisse sind K-Zeichen. Sie werden auf Basis des codierten 10-bit-Wertes nummeriert. Mehrere dieser K-Zeichen werden im Chipset verwendet. Die verwendeten K-Zeichen und ihre Funktionen sind in der folgenden Tabelle angegeben. Tabelle 12: K-Zeichen-Verwendung
    K-Zeichen Funktion Bemerkungen
    28.0 Sync-Anzeige nach Sperrzyklen übertragen, als oberstes Synchronisierungsereignis an den Empfängern behandelt
    28.1 Sperren während Sperrzyklen auf der Backplane übertragen
    28.2 Paket-Abbruch wird übertragen, um anzuzeigen, dass die Card das derzeitige Paket nicht beenden kann. Derzeitige Verwendung ist auf eine Portcard beschränkt, die gezogen wird, während sie Verkehr überträgt
    28.3 Resynchronisierungsfenster vom Striper zu Beginn eines Synchronisierungsfensters übertragen, wenn eine Resynchronisierung im derzeitigen Synchronisierungsfenster enthalten ist
    28.4 BP einstellen Vom Striper übertragen, wenn der Bus derzeit nicht arbeitet und der Wert des bp-bit eingestellt werden muss
    28.5 Idle zeigt den Idle-Zustand an
    28.6 BP löschen vom Striper übertragen, wenn der Bus derzeit nicht arbeitet und das bp-bit gelöscht werden muss
  • Der Switch hat eine variable Anzahl an Daten-bits, die an jeden Backplane-Kanal je nach der Striping-Konfiguration für ein Paket aufrechterhalten werden. Innerhalb eines Transceiver-Satzes werden Daten in folgender Reihenfolge aufgefüllt:
    F[Fabrik]_[OC192-Port-Anzahl][OC48-Port-Bezeichnung (a, b, c, d] [Transceiver-Anzahl]
  • Der Chipset implementiert bestimmte Funktionen, die hier beschrieben sind. Die meisten hier erwähnten Funktionen werden in mehreren ASICs aufrechterhalten, so dass ihre Dokumentierung auf ASICs-für-ASIC-Basis kein klares Verständnis des gesamten Umfangs der erforderlichen Funktionen liefert.
  • Der Switch-Chipset ist derart gebaut, das er mit Paketen arbeitet, die bis zu 64K + 6 bytes lang sind. Auf der Zuflussseite des Switch gibt es Busse, die sich mehrere Ports teilen. Für die meisten Pakete werden sie ohne Unterbrechung vom Beginn des Pakets bis zum Ende des Pakets übertragen. Dieser Ansatz kann jedoch zu großen Verzögerungsschwankungen für verzögerungsempfindlichen Verkehr führen. Damit verzögerungsempfindlicher Verkehr und langer Verkehr auf der gleichen Switch-Fabrik koexistieren können, wird das Konzept langer Pakete eingeführt. Grundsätzlich können mit langen Paketen Datenblöcke an eine Stelle zur Einreihung in eine Warteschlange gesendet werden, an der Stelle zur Einreihung in eine Warteschlange auf einer Quellenbasis aufgestaut und dann alle zusammen in die Warteschlange eingefügt werden, wenn das Ende des langen Pakets übertragen wird. Die Definition eines langen Pakets basiert auf der Anzahl an bits auf jeder Fabrik.
  • Läuft der Switch in einer Umgebung, in der Ethernet-MPU über das gesamte Netzwerk aufrechterhalten wird, werden lange Pakete nicht in einem Switch mit mehr als 40G Größe gesehen.
  • Eine breite Cache-Zeilen-shared-memory-Technik wird zum Speichern von Zellen/Paketen in den Port/Prioritätswarteschlangen verwendet. Der shared memory speichert Zellen/Pakete stetig, so dass es praktisch keine Fragmentierung und Bandbreitenabfall im shared memory gibt.
  • Im shared memory gibt es mehrere Warteschlangen. Sie basieren auf dem Bestimmungsort und der Priorität. Alle Zellen/Pakete mit derselben Ausgabepriorität und Blade-/Kanal-ID werden in derselben Warteschlange gespeichert. Zellen werden aus Warteschlangen immer vom oberen Ende der Liste her abgebaut und in den Schwanz der Warteschlange eingereiht. Jede Zelle/jedes Paket besteht aus einem Teil des Abflusssendeworts, einer Paketlänge und Paketdaten variabler Länge. Zellen und Pakete werden stetig gespeichert, d. h. der Speichercontroller selbst erkennt nicht die Grenzen von Zellen/Paketen bei den Punkt-zu-Punkt-(Unicast-)Verbindungen. Die Paketlänge wird für MC-Pakete gespeichert.
  • Der Gruppenaufruf-(Multicast-)Port-Maskenspeicher 64K × 16-bit wird zum Speichern der Bestimmungs-Port-Maske für die Multicast-Verbindungen verwendet, und zwar ein Eintrag (oder mehrere Einträge) pro Multicast-VC. Die Port-Masken der Kopf-Multicast-Verbindungen, die von den Multicast-DestID-FIFOs angegeben wer den, werden intern zur Ablaufreferenz gespeichert. Der Port-Maskenspeicher wird zurückgezogen, wenn die Port-Maske einer Kopf-Verbindung bereinigt ist und eine neue Kopf-Verbindung bereitgestellt wird.
  • APS steht für Automatic Protection Switching, d. h. einen SONET-Redundanzstandard. Damit das APS-Merkmal im Switch unterstützt wird, senden zwei Ausgabe-Ports auf zwei verschiedenen Portcards im Großen und Ganzen denselben Verkehr. Die Speichercontroller erhalten einen Satz von Warteschlangen für einen APS-Port aufrecht und senden duplizierte Daten an beide Ausgabe-Ports.
  • Damit Datenduplizierung im Speichercontroller-ASIC unterstützt wird, hat jede der mehreren Unicast-Warteschlangen ein programmierbares APS-bit. Wird das APS-bit an eine Warteschlange gesendet, wird ein Paket an beide Ausgabe-Ports abgebaut. Wird das APS-bit für einen Port auf Null gestellt, arbeitet die Unicast-Warteschlange im normalen Modus. Ist ein Port als APS-Slave konfiguriert, liest er aus den Warteschlangen des APS-Master-Ports. Bei OC48-Ports befindet sich der APS-Port immer auf dem gleichen OC48-Port auf der benachbarten Portcard.
  • Die shared-memory-Warteschlangen in den Speichercontrollern können zwischen den Fabriken durch Taktverschiebungen oder eine neu eingesetzte Fabrik aus der Synchronisierung geraten (d. h. gleiche Warteschlangen haben zwischen verschiedenen Speichercontroller-ASICs unterschiedliche Tiefen). Es ist wichtig, dass die Fabrik-Warteschlangen von beliebigen zufälligen Zuständen in den gültigen und synchronisierten Zustand gebracht werden. Es ist ebenfalls wünschenswert, dass bei einem beliebigen Wiederherstellungssystem keine Zellen fallengelassen werden.
  • Eine Resynchronisierungszelle wird an alle Fabriken (neue und bestehende) übertragen, damit sie in den Resynchronisierungszustand eintreten. Die Fabriken versuchen, jeglichen vor der Resynchronisierungszelle empfangenen Verkehr abzubauen, bevor die Warteschlangenresynchronisierung endet. Jedoch wird kein nach der Resynchronisierungszelle empfangener Verkehr abgebaut, bis die Warteschlangenresynchronisierung endet. Eine Warteschlangenresynchronisierung endet bei einem der folgenden Ereignisse:
    • 1. Ein Zeitgeber läuft aus.
    • 2. Die Menge an neuem Verkehr (nach der Resynchronisierungszelle empfangenem Verkehr) übersteigt eine Schwelle.
  • Am Ende der Warteschlangenresynchronisierung spülen alle Speichercontroller jeglichen übrigen alten Verkehr (vor der Warteschlangenresynchronisierungszelle empfangenen Verkehr) heraus. Der Freimachschritt ist genügend schnell, dass ge währleistet wird, dass alle Speichercontroller den gesamten Speicher füllen können, gleich wann sie in den Resynchronisierungsstatus eingetreten sind.
  • Die Warteschlangenresynchronisierung betrifft alle 3 Fabrik-ASICs. Die Aggregatoren müssen sicherstellen, dass die FIFOs nach einer Warteschlangenresynchronisierungszelle identisch abfließen lassen. Die Speichercontroller implementieren das Einreihen in die Warteschlange und das Fallenlassen. Die Separatoren müssen Speichercontroller handhaben, die Verkehr fallenlassen und Längen-Parsing-Status-Maschinen zurücksetzen, wenn dies eintritt. Einzelheiten zur Unterstützung von Warteschlangenresynchronisierung in einzelnen ASICs siehe bei den Chip-ADSs.
  • Auf der Seite des Warteschlangenabbaus haben Multicast-Verbindungen unabhängige 32 Token pro Port, die jeweils bis zu 50 bit Daten oder ein vollständiges Paket wert sind. Die Kopf-Verbindung und ihre Port-Maske einer Warteschlange höherer Priorität werden aus dem Verbindungs-FIFO und dem Port-Maskenspeicher in jedem Zyklus ausgelesen. Ein vollständiges Paket wird aus der Multicast-Cache-Zeile auf Basis des Längenfeldes der Kopf-Verbindung isoliert. Das Kopf-Paket wird an alle seine Bestimmungs-Ports gesendet. Die 8 Warteschlangenabbauer übertragen das Paket an die Separatoren, wenn nicht-Null Multicast-Tokens für die Ports verfügbar sind. Die nächste Kopf-Verbindug wird nur verarbeitet, wenn das derzeitige Kopf-Paket an alle seine Ports versendet wird.
  • Die Warteschlangenstruktur kann während der Übertragung durch die Fabrik-Resynchronisierungszelle verändert werden, wobei die Zahl der Priorität pro Port-Feld dazu verwendet wird anzuzeigen, wie viele Prioritätswarteschlangen jeder Port hat. Der Stripper-ASIC liegt auf dem Netzwerk-Blade.
  • Die folgenden Wörter haben vernünftigerweise spezifische Bedeutungen im Vokabular des Switch. Viele sind an anderer Stelle erwähnt, aber hier wird versucht, sie an einer Stelle mit Definitionen zusammenzubringen. Tabelle 23:
    Wort Bedeutung
    APS Automatic Protection Switching. Ein Sonet/Sdh-Standard zur Implementierung von Redundanz auf physikalischen Verbindungen. APS wird auch zur Wiederherstellung nach ermittelten Portcard-Fehlern verwendet.
    Backplane-Synch generischer Begriff, der entweder den allgemeinen Prozess beschreibt, den Switch-Platten zum Ausgleich von variablen Transportverzögerungen zwischen Festplatten und Taktverschiebung verwenden, oder die Logik, welche die TX/RX-Funktion implementiert, die erforderlich ist, damit die Switch-ASICs variable Transportverzögerungen und Taktverschiebung berücksichtigen.
    BIB Switch-Eingabebus. Der zum Leiten von Daten an den (die) Striper verwendete Bus (siehe auch BOB).
    Blade Ein anderer Begriff für Portcard. Bezugnahmen auf Blades sollten aus diesem Dokument entfernt worden sein, können aber noch bestehen.
    BOB Switch-Ausgabebus. Der Ausgabebus vom Striper, der mit dem Abfluss-Speichercontroller verbindet (siehe auch BIB).
    Abflusssendewort (egress routeword) Das Sendewort, das dem Chip nach dem Unstriper zugeführt wird. Aus der Perspektive eines internen Chipset wird das Abflusssendewort als Daten behandelt (siehe auch Fabriksendewort).
    Fabriksendewort (fabric routeword) Von der Fabrik zum Festlegen der Ausgabewarteschlange verwendetes Sendewort. Dieses Sendewort gelangt nicht nach außerhalb des Unstripers. Ein signifikanter Teil dieses Sendeworts entfällt in den Fabriken.
    Einfrieren (freeze) Die Logik behält ihre Werte während Sperrzyklen.
    Sperren (lock-down) Zeitraum, in dem die Fabrik effektiv alle Arbeit stoppt, so dass Taktverschiebung kompensiert wird. Bestimmt die Backplane-Synchronisierungslogik, dass eine Fabrik 8 Taktzyklen zu schnell ist, wird die Fabrik für 8 Taktzyklen gesperrt.
    Warteschlangen-Resynch Eine Warteschlangenresynchronisierung ist eine Reihe von Schritten, die ausgeführt wird, um zu gewährleisten, dass der Logikzustand aller Fabrikwarteschlangen für alle Ports zu einem logischen Zeitpunkt identisch ist. Warteschlangenresynchronisierung ist in keiner Weise auf Backplane-Resynchronisierung (einschließlich Sperren) festgelegt, ausgenommen dass Sperren bei einer Warteschlangenresynchronisierung vorkommen kann.
    SIB Striped-Eingabebus. Größtenteils obsoleter Begriff, der den Ausgabebus vom Striper und den Eingabebus an den Aggregator beschreibt.
    SOB Striped-Ausgabebus, d. h. der Ausgabebus von der Fabrik bzw. der Eingabebus des Aggregators (siehe auch SIB).
    Sync Hängt sehr vom Kontext ab. Verwandte Begriffe sind Warteschlangenresynchronisierung, Sperren, Einfrieren und Backplane-Resynchronisierung.
    Wacking Implizite bit-Steuerung, die auf der OC192-Zuflussstufe auftritt, weil die Daten zwischen den Stripern bit-verschränkt sind. Die bit-Steuerung wird von den Aggregatoren umgekehrt.
  • Die Beziehung zwischen den Übertragungs- und Empfangszählern ist aus 6 ersichtlich.
  • Die Erfindung wurde zwar in den vorstehenden Ausführungsformen zu Veranschaulichungszwecken eingehend beschrieben, aber es sollte selbstverständlich sein, dass diese Einzelheiten nur diesem Zweck dienen und Varianten darin vom Fachmann vorgenommen werden können, ohne dass er vom Umfang der Erfindung abweicht, ausgenommen wie sie durch die folgenden Ansprüche beschrieben ist.

Claims (7)

  1. Vorrichtung (10) zum Speichern von Paketen, umfassend: einen Speicher (14) zum Halten von Paketen und einen Mechanismus (16) zum Speichern von mindestens zwei Paketen in dem Speicher (14), wobei nur ein Paketgrenzenindikator (18) mit den mindestens zwei Paketen einhergeht, der Speichermechanismus (16) einen Speichercontroller (20) enthält, der derart auslegt ist, dass er einen Paketgrenzenindikator (18) in dem Speicher (14) platziert, nachdem eine festgelegte Anzahl bits in dem Speicher (14) gespeichert worden ist, wobei der Speicher (14) durch Cache-Zeilen (22) definiert wird und die Pakete entlang der Cache-Zeilen (22) in dem Speicher (14) gespeichert werden; wobei der Speichercontroller (20) derart ausgelegt ist, dass er bits von Daten von Paketen in einer Cache-Zeile in dem Speicher (14) speichert und ein Identifizierer (24) in der Cache-Zeile von Daten anzeigt, wie viele bits in der Cache-Zeile gültig sind.
  2. Vorrichtung (10) nach Anspruch 1, wobei jede Cache-Zeile 200 bits lang ist.
  3. Vorrichtung (10) nach Anspruch 2, wobei der Identifizierer (24) sich 2 bits von den 200 bits der Cache-Zeile befindet.
  4. Vorrichtung (10) nach Anspruch 3, wobei der Speichercontroller (20) derart ausgelegt ist, dass er einen Paketgrenzenindikator (18) nach einem Paket-Wert von 15 Cache-Zeilen (22), die im Speicher (14) gespeichert wurden, einsetzt.
  5. Vorrichtung (10) nach Anspruch 4, wobei der Speichercontroller (20) derart ausgelegt ist, dass er auf Basis von Paketgrenzenindikatoren (18) in Bezug auf die Priorität der Pakete (12) vermittelt, welche Pakete (12) von dem Speicher (14) übertragen werden sollen.
  6. Verfahren zum Speichern von Paketen (12), umfassend die Schritte: Empfangen von Paketen (12) in einem Speicher (14) und Speichern mindestens zweier Pakete mit einem Speichercontroller (20) in dem Speicher (14), wobei mit den mindestens zwei Paketen nur ein Paketgrenzenindikator (18) einhergeht; wobei der Speicherschritt die Schritte enthält: Platzieren eines Paketgrenzenindikators (18) mit dem Speichercontroller (20) in dem Speicher (14), nachdem eine festgelegte Anzahl bits in dem Speicher (14) gespeichert worden ist; Speichern der Pakete (12) entlang Cache-Zeilen (22) in dem Speicher (14) und Speichern von bits von Daten von Paketen (12) in einer Cache-Zeile in dem Speicher (14), wobei ein Identifizierer (24) in der Cache-Zeile von Daten angibt, wie viele bits in der Cache-Zeile gültig sind.
  7. Verfahren nach Anspruch 6, wobei nach dem Speicherschritt ein Schritt erfolgt Vermitteln von Paketen (12) aus dem Speicher (14) auf Basis von Paketgrenzenindikatoren (18) in Bezug auf die Priorität der Pakete (12).
DE60130711T 2000-07-28 2001-07-23 Verfahren und Vorrichtung zum Speichern von Paketen mit einem Grenzeanzeiger Expired - Lifetime DE60130711T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US627800 2000-07-28
US09/627,800 US6851035B1 (en) 2000-07-28 2000-07-28 Method and apparatus for storing data packets with a packet boundary indicator

Publications (2)

Publication Number Publication Date
DE60130711D1 DE60130711D1 (de) 2007-11-15
DE60130711T2 true DE60130711T2 (de) 2008-07-03

Family

ID=24516180

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60130711T Expired - Lifetime DE60130711T2 (de) 2000-07-28 2001-07-23 Verfahren und Vorrichtung zum Speichern von Paketen mit einem Grenzeanzeiger

Country Status (5)

Country Link
US (1) US6851035B1 (de)
EP (1) EP1176768B1 (de)
JP (2) JP2002101130A (de)
AT (1) ATE375069T1 (de)
DE (1) DE60130711T2 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6973092B1 (en) * 2000-07-28 2005-12-06 Marconi Intellectual Property (Ringfence), Inc. Dynamic queue utilization
US7342942B1 (en) * 2001-02-07 2008-03-11 Cortina Systems, Inc. Multi-service segmentation and reassembly device that maintains only one reassembly context per active output port
US7392355B2 (en) * 2002-07-09 2008-06-24 International Business Machines Corporation Memory sharing mechanism based on priority elevation
US7043611B2 (en) * 2002-12-11 2006-05-09 Lsi Logic Corporation Reconfigurable memory controller
US20050038902A1 (en) * 2003-08-14 2005-02-17 Raju Krishnamurthi Storing data packets
US7822915B2 (en) * 2007-06-30 2010-10-26 Alcatel-Lucent Usa Inc. Memory controller for packet applications
JP5482230B2 (ja) * 2010-01-25 2014-05-07 富士通株式会社 通信装置、情報処理装置、通信装置の制御方法及び制御プログラム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1229434A (en) * 1983-12-23 1987-11-17 Northern Telecom Limited Multiplexer for bit oriented protocol data link control
JP2791037B2 (ja) * 1988-05-25 1998-08-27 株式会社日立製作所 パケットデータ転送制御装置
US5128665A (en) * 1989-08-21 1992-07-07 Motorola, Inc. Selective call signalling system
US5128926A (en) * 1990-03-21 1992-07-07 Digital Equipment Corporation Updating link state information in networks
US5414650A (en) * 1993-03-24 1995-05-09 Compression Research Group, Inc. Parsing information onto packets using context-insensitive parsing rules based on packet characteristics
JP3271640B2 (ja) * 1994-11-30 2002-04-02 川崎マイクロエレクトロニクス株式会社 デジタルデータ受信装置
JPH08172435A (ja) * 1994-12-19 1996-07-02 Matsushita Electric Ind Co Ltd 固定長パケットによる通信装置
EP0735487B1 (de) 1995-03-31 2001-10-31 Sun Microsystems, Inc. Schnelle Zweitor-Cachesteuerungsschaltung für Datenprozessoren in einem paketvermittelten cachekohärenten Multiprozessorsystem
JPH09162855A (ja) * 1995-12-13 1997-06-20 Fujitsu Ltd シリアル・データ受信方式
JP2842524B2 (ja) * 1996-06-06 1999-01-06 日本電気株式会社 マルチキャストグループ構成方法及びマルチキャスト通信ネットワーク
US5974511A (en) * 1997-03-31 1999-10-26 Sun Microsystems, Inc. Cache subsystem with pseudo-packet switch
US5893121A (en) 1997-04-23 1999-04-06 Sun Microsystems, Inc. System and method for swapping blocks of tagged stack entries between a tagged stack cache and an untagged main memory storage
US6078587A (en) * 1997-06-23 2000-06-20 Sun Microsystems, Inc. Mechanism for coalescing non-cacheable stores
US7809246B1 (en) * 1997-12-26 2010-10-05 Panasonic Corporation Apparatus for reproduction of encoded signal
US6161155A (en) * 1998-07-20 2000-12-12 Hewlett-Packard Company Apparatus and method for storing retrievable boundary information into a buffer memory of a receiving device
JP2000200175A (ja) * 1998-11-04 2000-07-18 Sharp Corp データ送出システム
JP2000215446A (ja) * 1999-01-26 2000-08-04 Ricoh Co Ltd 情報記録再生装置

Also Published As

Publication number Publication date
JP2012010372A (ja) 2012-01-12
EP1176768B1 (de) 2007-10-03
US6851035B1 (en) 2005-02-01
JP5167391B2 (ja) 2013-03-21
ATE375069T1 (de) 2007-10-15
DE60130711D1 (de) 2007-11-15
JP2002101130A (ja) 2002-04-05
EP1176768A2 (de) 2002-01-30
EP1176768A3 (de) 2004-01-07

Similar Documents

Publication Publication Date Title
DE60113058T2 (de) Empfänger korrigiert
DE60119068T2 (de) Warteschlangen-resynchronisation: synchrone aktualisierung eines verteilten vermittlungssystems in echtzeit
DE60213430T2 (de) Stm-1 bis stm-64 sdh/sonet rahmenanpasser mit datenmultiplexen aus einer serie von konfigurierbaren e/a ports
US7103041B1 (en) Optimization of number of transceivers used in a switch
US7283547B1 (en) Switch fabrics logical synchronization utilizing propagation lockdown
US20050033928A1 (en) Independent shared memory accounting
DE60118385T2 (de) Verfahren und vorrichtung zur übertragung von paketen in einem speicher
US6973092B1 (en) Dynamic queue utilization
DE60221669T2 (de) Paketvermittlung für Paketdatenübertragungssysteme in einer Multikanalfunkanordnung
US7106692B1 (en) APS/port mirroring
DE60130711T2 (de) Verfahren und Vorrichtung zum Speichern von Paketen mit einem Grenzeanzeiger
DE60133330T2 (de) 10 Gigabit Ethernet-Darstellung für eine gemeinsamen LAN/WAN PMD Schnitstelle
EP1308012A1 (de) Verfahren und anordnung zur gesicherten paketorientierten informationsübermittlung
DE602004012066T2 (de) Zeitmultiplexstreckenverbindungen zwischen einer Koppelmatrix und einem Port in einem Netzelement
DE60111139T2 (de) Übertragung und puffern der Länge und Daten als einen Strom in einer Paketvermittlungseinrichtung
DE60201052T2 (de) Verfahren zum transparenten Transport von Rahmen mit reduziertem Overhead zwischen zwei Netzwerken durch ein Übergangsnetzwerk, das einen gemeinsamen Rahmen mit erweiterter Nutzlast überträgt
EP1179930B1 (de) Bearbeitung von langen Datenpaketen
EP1230765B1 (de) Empfängerdekodierungsalgorithmus um störungsfreie n+1-redundanz in einem umschalter zu erlauben
US6526024B1 (en) Synchronization of asynchronous back-pressure from one destination to multiple sources
DE102019003978A1 (de) System und verfahren zum ermöglichen von verlustfreien interpacket gaps für verlustbehaftete protokolle
EP1176769B1 (de) Synchrone dynamische Aktualisierung eines Registers über ein verteiltes System
DE112022001975T5 (de) System und verfahren zur durchführung einer ratenanpassung und multiplexing von client-daten mit konstanter bitrate (cbr) zur übertragung über ein metro-transportnetzwerk (mtn)

Legal Events

Date Code Title Description
8364 No opposition during term of opposition