-
Vorliegende
Erfindung betrifft Systeme, die Datenpakete und Zellen zwischen
I/O-Quelle und Bestimmungs-Resourcen
durch zeitanteilige zentrale Kernspeicher schalten und leiten, welche
aus intern gecachten dynamischen Mehrfachport-Speicherchips mit willkürlichem
Zugriff bestehen, die mit AMPIC DRAMs bezeichnet werden, wie sie
in US Patent 5 799 209, erteilt am 25. August 1998 für Mukesh Chatter)
beschrieben sind, und die insbesondere mit dem Steuerpfadabschnitt
solcher Systeme und Problemen bei Daten-Verkehrsstockungen, die
als die Anzahl von I/O-Resourcen
in dem System kreiert werden, und mit der wesentlichen Erhöhung der Bandbreiten-Anforderungen
im System befaßt
sind, was eine neue Steuerpfad-Architektur
erfordert, die sich maßstäblich mit
dem Datenpfad verändern kann,
während
die Qualität
des Service (QOS) und Multicast-Merkmalen beibehalten werden.
-
HINTERGRUND
DER ERFINDUNG
-
Der
Durchbruch, der durch die AMPIC DRAM Architektur der Datenschaltung
nach Chatter erzielt wurde, und das Schalten und Leiten zwischen den
Netzwerk I/O-Quellen-
und Bestimmungs-Resourcen, wie in dem o. a. Patent beschrieben,
hat dazu geführt,
dass um Größenordnungen
schnellere Übertragungen
von Blöcken
von Daten innerhalb des Chips ermöglicht wurden, ferner die Erzielung
einer wesentlich höheren
Anzahl von Resourcen, in Verbindung mit einer gleichzeitigen Verringerung
von laufenden erheblichen Bandbreiten-Beschränkungen. Diese Architektur
trägt auch
zu einer höheren Leistung,
einer geringeren System-Latenz, geringeren Anforderungen an den
Datenpaket-Pufferspeicher, besseren QOS-Eigenschaften und echtem
Multicast-Betrieb
bei, wie sie von bisher üblichen
und traditionellen Netzwerk-Architekturen nicht erzielt werden konnten.
-
Da
die Anzahl von I/O-Resourcen in solchen Systemen und damit der gleichzeitige
Bedarf nach noch weiteren Erhöhungen
in der Bandbreite explodieren kann, wird dabei das Datenpaket-Informationspaket
selbst (hier als PIP bezeichnet) der begrenzende Faktor bei dieser
Art von System. Die Erfindung befaßt sich deshalb mit der Lösung dieser Probleme
mit Hilfe einer neuartigen Steuerpfad-Architektur, die selbst die
AMPIC DATA Technologie auch in den Steuerpfad einführt und
benutzt. Die Erfindung schlägt
somit eine Steuerpfad-Architektur für solche AMPIC DATA Schalt-
und Leitsysteme vor, die maßstäblich dem
Datenpfad angepasst werden, während
gleichzeitig die QOS-Funktionalität aufrecht erhalten wird und
eine verbesserte Multicast-Leistung ergibt.
-
Des
weiteren ergibt sich ein Stand der Technik als Hintergrund vorliegender
Erfindung aus der US-A-5 442 747, in der ein Multimedia-Video-Prozessor-Chip
vorgeschlagen wird, der einen zentralen Mehrport-Kanal-Cache-Speicher
verwendet, um alle ankommenden Daten in eine Warteschlange zu bringen
und in einem DRAM so zu speichern, daß alle abgebenden Daten aus
dem DRAM wieder aufgefunden werden.
-
Das
EP-A-0 340 668 beschreibt ein Multi-Prozessor-System mit einem Mehrfachport-Cache-Speicher, der
den Speicher mit verschiedenen Prozessoren teilt, die an Adressen-Daten-Interface-Signalleitungen
gelegt sind, die jedem Prozessor zugeordnet sind, während die
Veröffentlichung von
Lee T-H et al mit dem Titel „Multi-Casting
in a shared buffer memory switch",
Proceedings of the Region Ten Conference (Tencon), US, New York, IEEE,
Band 1993, Seiten 209–212,
XP 00046326 sich mit dem Multi-Casting
in einem zeitanteiligen Speicherschalter befasst.
-
AUFGABE DER
ERFINDUNG
-
Maßgebliche
Aufgabe vorliegender Erfindung ist es, in Systemen zum Schalten
und Leiten von Datenpaketen und/oder Zellen zwischen I/O-Quelle
und Bestimmungs-Resourcen
durch die zeitanteiligen Speicher-AMPIC DRAM-Kerne des Chatter-Patentes ein
neues und verbessertes Verfahren sowie ein System zur Vermeidung
von Beschränkungen
bei Datenpaket-Stockungen mit wesentlich vergrößerten I/O-Resourcen zu erzielen, das die AMPIC
DRAM Technologie auch innerhalb der Steuerpfad-Architektur des Systems
einführt
und benutzt und das dies mit Merkmalen der Maßstäblichkeit mit dem Datenpfad
vornimmt, während
QOS und verbesserte Multicast-Eigenschaften beibehalten werden.
-
Eine
weitere Aufgabe der Erfindung besteht darin, eine neuartige Netzwerk-Steuerpfad-Architektur mit allgemeinerer
Anwendung vorzuschlagen.
-
Weitere
Aufgaben der Erfindung werden nachstehend erläutert und insbesondere in Hinblick auf
die Patentansprüche
erörtert.
-
KURZBESCHREIBUNG
-
Zusammenfassend
schlägt
die Erfindung ein Netzwerk zum Kommunizieren von parallelen I/O
Datenpaket-Informationspaketen (PIP) Quellen-Resourcen mit I/O-Bestimmungs-Resourcen
durch einen zentralen, zeitanteiligen Speicher-Datenpfad, der aus
einem zentralen, zeitanteiligen, intern gecachten Mehrfachport-DRAM-Speichersystem
(AMPIC DRAM) und einem getrennten Steuerpfad hierfür besteht,
und bei dem jede I/O-Resource in der Lage ist, gleichzeitig PIP-Datenstrom-Verkehr
von allen anderen I/O-Resourcen aufzunehmen, und ein Verfahren zum
Eliminieren von PIP-Verkehrsstockungen bei
erheblicher Zunahme der Anzahl von I/O-Resourcen und anderen Bandbreiten-Forderungen
vor, das darin besteht, ein AMPIC DRAM System im Steuerpfad zum
gleichzeitigen Absorbieren und Speichern aller PIP-Ströme einzuführen, ohne
dass ein ankommender Datenstrom in einer I/O-Quellen-Resource blockiert
wird.
-
Bevorzugte
und besonders zweckmäßige Konstruktionen,
Systeme und Betriebsverfahren hierfür werden nachstehend beschrieben.
-
ZEICHNUNGEN
-
Nachstehend
wird die Erfindung in Verbindung mit den Zeichnungen erläutert.
-
1 zeigt ein kombiniertes,
schematisches Datenfluss-Diagramm, das die Betriebsweise der AMPIC
DRAM Technologie für
einen zentralen zeitanteiligen Speicher, wie er in dem Chatter-Patent
beschrieben ist, darstellt, und wie er nach vorliegender Erfindung
in den Netzwerk-Steuerpfad einbezogen wird;
-
2 zeigt ein ähnliches
Diagramm, das insbesondere den PIP Fifo (first in – first
out) Fluss zu den Bestimmungs-I/O-Resourcen darstellt;
-
3 zeigt den neuartigen Steuerpfad
nach vorliegender Erfindung in bevorzugter Ausführung zur Handhabung eines
Unicast-Datenpfad-Verkehrsflusses;
-
4 und 5 sind ähnlich der 3, wobei 4 die
bevorzugte Unterteilung der QOS-Warteschlangen über die DRAM-Banken und 5 eine Modifikation darstellt,
in der die Speicher-Unterteilung einen Serien-Port ermöglicht,
um nur in eine zugeordnete DRAM-Bank einzuschreiben;
-
6 und 7 zeigen den bevorzugten Multicast-Steuerpfad
nach der Erfindung sowie die kombinierten Multicast- und Unicast-Steuerpfade,
und
-
8 und 8 sind ähnlich den 1 und 7 für eine Modifikation,
bei der AMPIC DRAMs als benutzte und freie Adressen-Puffer verwendet
werden, um einer möglichen
PIP-Rückführpfad-Verstopfung
zu begegnen.
-
BEVORZUGTE AUSFÜHRUNGSFORM(EN)
DER ERFINDUNG
-
Während allgemeineine
verbesserte Steuerpfad-Architektur für Systeme mit Mehrfach-I/O und Bestimmungsdaten-Routen
angesprochen wird, ist vorliegende Erfindung vorzugsweise für die und
mit der Schalt- und Routenführungstechnik
nach dem vorerwähnten
Chatter-Patent und eine besonders zweckmäßige Art und Weise hierfür ausgelegt.
-
Da
vorliegende Erfindung die Chatter-AMPIC DRAM-Technologie in einer
neuartigen Weise verwendet und zwar in der System-Steuerpfad-Architektur,
im Gegensatz zu der Verwendung für
den zentralen Kernspeicher nach Chatter, erscheint es zweckmäßig, zuerst
die Art des AMPIC DRAM-Betriebes in der zentralen Kernspeicher-Einstellung
des Patentes zu betrachten.
-
Der AMPIC
DRAM als zentraler Kernspeicher
-
Diese
Technik ermöglicht
es, Bandbreitenbeschränkungen
des DRAM-Systems zu begegnen, die Datenübertragungsgeschwindigkeit
merklich zu erhöhen,
die Bus-Entscheidungs-Forderungen
wesentlich zu reduzieren, verbesserte I/O-Resourcen-Anschlüsse zu ermöglichen
und zwar bei verringerten Kosten und geringerem Energieaufwand,
indem jede DRAM-Einheit mit mindestens einem zusätzlichen Seriendaten-Port zum
Anschließen über eine
entsprechende Serien-Schnittstelle mit einer externen I/O-Daten-Resource
ausgestattet wird, indem innerhalb eines jeden DRAMs ein Pufferspeicher
für jede der
Serien-Schnittstellen geschaffen wird, und durch direktes Einsetzen
eines Schalt-Moduls zwischen die Puffer und die Serien-Schnittstellen, sowie
durch das wichtige Verbinden der willkürlichen Serien-Schnittstellen mit
den Puffern mit direktem Zugriff durch dynamisches Konfigurieren
der Schaltung der Schaltmodule, wie dies für die gewünschten Datenführungen
geeignet ist, und wobei die Anzahl der Serien-Schnittstellen unabhängig von
der Anzahl von Puffern ist und die Anzahl von Serien-Schnittstellen unter
der dynamischen Konfiguration sich verändert.
-
Diese
Technik der Bereitstellung eines intern gecachten Mehrport-DRAM-Systems
(AMPIC DRAM), das unabhängige
Serien-Schnittstellen und Puffer willkürlich unter einer dynamischen
Konfiguration verbunden verwendet, ist zweckmäßig, um parallelen Datenstockungen
für den
Zugriff zu einer gemeinsamen System-Bus-Schnittstelle zu begegnen, wobei in
beiden Fällen
ein externes Master-Steuergerät,
z. B. eine CPU verwendet wird, die parallele Datenport und dynamische
Speicher mit willkürlichem
Zugriff (DRAM) besitzt und in bezug auf den Zugriff zu einer solchen Bus-Schnittstelle
in Konkurrenz steht, ferner auch für eine Vereinfachung des Wettbewerbs
in Hinblick auf einen internen gemeinsamen Bus-Daten-Transfer innerhalb
des Systems, wie dies auch in dem genannten Patent beschrieben ist.
-
Bei
der Implementierung, bei der ein Master-Steuergerät (CPU)
verwendet wird, weist der intern gecachte Mehrport-DRAM (AMPIC DRAM)
eine Vielzahl von unabhängigen
Seriendaten-Schnittstellen auf, deren jede zwischen eine getrennte
externe I/O-Resource
und einen internen DRAM-Speicher über entsprechende Puffer geschaltet
ist: Ein Schaltmodul, das direkt zwischen die Serien-Schnittstellen und
die Puffer eingeschaltet ist, und eine Schaltmodul-Logik zum gezielten
Verbinden der willkürlichen Serien-Schnittstellen
mit den Zufalls-Pufferspeichern unter der vorerwähnten dynamischen Konfiguration durch
das Bus-Steuergerät
zum Schalten einer Zuordnung, wie sie für die gewünschte Daten-Leitung geeignet
ist, und wie oben ausgeführt,
bei der die Anzahl der Serien-Schnittstellen unabhängig von
der Anzahl von Puffern ist und die Anzahl von Serien-Schnittstellen
unter der dynamischen Konfiguration variiert. Wie in diesem Patent
ausgeführt,
kann das Schaltmodul einen oder mehrere Multiplexer oder Querschienenschalter
oder eine Kombination davon aufweisen.
-
Die
Puffer sind Datenpaket-Puffer und es sind Vorkehrungen vorgesehen,
um eine Entscheidung für
den Bus-Schnittstellen-Zugriff unter den verschiedenen aktiven Paket-Puffern durchzuführen und,
wenn keine Entscheidung notwendig ist, Daten aus den oder in die
Paket-Puffer über
die Serien-Schnittstellen aufzunehmen oder zu übertragen. Das AMPIC DRAM-Schaltmodul
ordnet ferner jeden Puffer einer Serien-Schnittstelle zu, ohne jeden Zwischenschritt
für die Übertragung
von Daten zwischen dem Puffer und dem Kern-DRAM, wobei jeder Puffer die
Fähigkeit
hat, mit bis zu allen Serien-Schnittstellen gleichzeitig zu kommunizieren,
wenn sie als Port definiert sind, wobei jeder Puffer für die gleiche Port-Größe konfiguriert
ist wie der Port, mit dem sie verbunden oder angedockt ist.
-
Ein
derartiges Netzwerk-System auf der Basis eines zentralen, zeitanteiligen
Datenpfades aus AMPIC DRAMS und einem getrennten Steuerpfad hat
eine wesentlich höhere
Bandbreite und eine geringere Latenz als herkömmliche Netzwerk-Architekturen.
-
1 zeigt ein vereinfachtes
Netzwerk-System auf der Basis der Chatter-AMPIC DRAM Technologie.
Ein zentraler, zeitanteiliger Speicher 1, bestehend aus
AMPIC DRAMs ermöglicht,
dass I/O-Resourcen (I ... N) Daten gleichzeitig mit einer sehr geringen
Wahrscheinlichkeit lesen und schreiben, dass der interne Konkurrenzbetrieb
für eine
bestimmte DRAM-Bank die Leistung der externen Serien-Schnittstellen
beeinflusst. Wenn der gemeinsam benutzte Speicher eine N-Port-AMPIC
DRAM-Vorrichtung
benutzt, haben die N I/O-Resourcen einen nicht blockierenden Zugriff
zu den gespeicherten Daten. Jede I/O-Resource hat einen getrennten
ankommenden und abgehenden, entsprechend bezeichneten Datenpfad,
der gleichzeitig Daten in den gemeinsam genutzten AMPIC DRAM Speicher
lesen und schreiben kann. Der gemeinsam benutzte AMPIC DRAM Speicher
seinerseits ist in Datenpuffer unterteilt, die eine fest vorgegebene
Größe haben.
Ankommende Pakete oder Zellen werden in Blöcke von Daten („Daten") aufgeteilt, die
die gleiche Größe wie ein
Datenpuffer haben oder auch kleiner sind. Eine I/O-Resource wird
als ungenutzte oder „freie" Adresse für den gemeinsam
benutzten AMPIC DRAM Speicher zugeordnet. Wird ein ankommendes Datenpaket
in Puffer aufgeteilt, wird eine freie Adresse an den Puffer angehängt, bevor
sie an den gemeinsam benutzten Speicher gesendet wird. Der Puffer
wird an dieser freien Adressenstelle („freie Puffer-Adressenliste") gespeichert. Eine
Adresse, die einem Puffer zugeordnet worden ist, wird aus der „freien
Liste" entfernt
und der „benutzten
Liste" (benutzte
Puffer-Adressenliste")
hinzugefügt.
Eine „benutzte" Adresse wird so
lange nicht in die „freie
Liste" zurückgeführt, bis
eine Bestimmungsort-I/O-Resource den Puffer aus dem gemeinsam benutzten
Speicher 1 wieder aufgefunden hat. Eine I/O-Resource wird
die Kopf-Information aus einem ankommenden Paket oder einer ankommenden
Zelle entnehmen und führt einen
Kopf-Nachschlagevorgang durch, um den Bestimmungsort festzulegen
und dann gibt die Quellen-I/O-Resource die Puffer-Adresse an eine
Bestimmungsort-I/O-Resource in der Form des vorbeschriebenen „Paket-Informations-Pakets" oder „PIP". Dieses PIP enthält zusätzliche
Steuerinformationen, z. B. eine Paket-Byte-Zählung, eine Service-Qualität (QOS),
eine Quelle I/O, eine Bestimmungsort-I/O, Multicast, usw.
-
Wenn
ein einzelnes Paket größer als
ein AMPIC-Puffer sein soll, wird es in Mehrfach-Puffer aufgebrochen, die Mehrfach-PIPs
ergeben. Die PIPs für solche
Mehrfach-Puffer-Pakete
müssen
miteinander verkettet sein, damit ein Paket durch eine Bestimmungsort-I/O-Resource wieder
zusammengefügt werden
kann. Ein neuartiges Schema schafft eine Verkettungs-Liste durch
Einbetten der vorausgehenden Puffer-Adresse zusammen mit der laufenden Puffer-Adresse
innerhalb des gleichen PIP. Ein Kommando-Feld im PIP identifiziert
den „Start
eines Paketes" oder „SOP PIP", eine „Fortsetzung
eines Paketes" oder „COP PIP" und das „Ende des
Pakets" oder „EOP PIP" nach 1. Der größte Teil
der Steuerinformationen wird von dem SOP PIP geführt und wird nicht in das COP
oder EOP PIP dupliziert. Jede I/O-Resource hat eine zugeordnete
Verkettung zu jeder anderen I/O-Resource für den ausschließlichen Zweck
des Weitergebens und Rückführens von
PIPs. Der PIP-Steuerpfad ist ein vollständiger Duplex-N × N-Kreuzschienenschalter 3,
der alle I/O-Resourcen miteinander verbindet. Ein PIP-Steuerstrom kann manipuliert
und für
Weiterführungs-,
Schalt- und Filterungs-Entscheidungen
parallel zu den Daten verarbeitet werden, die in den gemeinsam benutzten
Speicher 1 eingeschrieben werden. Jede Bestimmungs-I/O-Resource
benutzt die Adresse in dem PIP, um den entsprechenden Daten-Puffer
aus dem gemeinsam benutzten Speicher zu lesen. Nachdem der Puffer
aus dem gemeinsam benutzten Speicher ausgelesen worden ist, wird
die Adresse im Puffer mit der Adresse im PIP verglichen, um sicher
zu stellen, dass der Steuerpfad nicht außer Tritt mit dem Datenpfad
gekommen ist. Der PIP wird dann in die Quellen-I/O-Resource zurückgeführt, wo
die Adresse aus der „benutzte
Liste" entfernt
und wieder in die „freie Liste" zurückgeführt wird.
Die Trennung von Steuerung und Daten in einem zentralen, gemeinsam
genutzten Speichersystem 1 ergibt eine wesentlich höhere Bandbreite
und geringere System-Latenz im Vergleich zu traditionellen Netzwerk-Architekturen, wie
vorstehend bereits ausgeführt.
-
Probleme bei der PIP-Verkehrs-Verstopfung
und Unzulänglichkeiten
von typischen Fifo/SRAM-Techniken
-
Wenn
die Anzahl von I/O-Resourcen in einem solchen System zunimmt und
die Bandbreite-Anforderungen wachsen, wird die PIP-Verkehrs-Verstopfung
ein begrenzender Faktor bei einem derartigen System, wie weiter
oben erwähnt. Vorliegende
Erfindung löst
diese Probleme dadurch, dass eine neue Steuerpfad-Architektur vorgeschlagen
wird, die auch die AMPIC DRAM verwendet, um einen stark skalierbaren,
nicht blockierenden Steuerpfad mit niedriger Latenz zu erzielen,
damit ein stark verbessertes Multicast-Verhalten und eine höhere Service-Qualität (QOS)
erreicht wird.
-
Wie
vorstehend erläutert,
muss bei dem Chatter-System eine I/O-Resource die Fähigkeit
haben, gleichzeitig PIP-Ströme
von allen anderen I/O-Resourcen aufzunehmen. 1 zeigt ein solches System mit N I/O-Resourcen
und einen Punkt-zu-Punkt-PIP-Steuerpfad,
wie vorher beschrieben.
-
Um
potentielle PIP-Verkehrs-Verstopfungs-Probleme mit einer wesentlich
vergrößerten Anzahl
von I/O-Resourcen und erhöhte
Bandbreiten-Anforderungen anzuerkennen, wird z. B. der Fall betrachtet,
bei dem alle I/O-Resourcen Burstpakete an eine einzelne Bestimmungs-I/O-Resource
sind. Diese Überzeichnung
einer I/O-Resource kann ein allgemeines Ereignis in typischen Netzwerken
sein. Das ideale System wäre
in der Lage, den Burst von Paketen oder Zellen zu absorbieren und
den Datenpfad oder den Steuerpfad nicht zu behindern. Der Steuerpfad
selbst ist wegen des gemeinsam genutzten zentralen AMPIC DRAM Kernspeichers
nicht blockierend. Der Speicheraufbau, der von einer Bestimmungs-I/O-Resource
benutzt wird, um den Steuerverkehr zu speichern und zu sortieren,
kann jedoch eine ernsthafte Auswirkung auf die Aufrechterhaltung der
optimalen Ausgangs-Bandbreite haben und echte Qualitäts-Service-Merkmale
liefern. Die Geschwindigkeit, mit der PIPs an einer Bestimmungs-I/O-Resource
ankommen, kann direkt von der Größe eines Paketes
und der Zeilengeschwindigkeit der Quellen-I/O-Resource abhängen. Beispielsweise
benötigt eine
Quellen-I/O-Resource, die einen 64 Bit Datenpfad hat, der mit 50
Mhz (20 ns Zyklus) betrieben wird und mit einem AMPIC DRAM im Datenpfad
mit einer Puffergröße von 512
Bytes verbunden ist, erfordert 64 Taktzyklen (512 Bytes/8 Bytes),
um einen AMPIC-Datenpuffer zu füllen.
-
Ein
großes
Paket wird, wie vorstehend beschrieben, in Mehrfach-Datenpuffer
aufgeteilt, die Mehrfach-PIPs ergeben, insbesondere ein einzelner SOP
PIP, auf den Mehrfach-COP PIPs abhängig von der Größe des Paketes
folgen, und schließlich
ein EOP PIP. Jedes PIP wird durch 64 Taktzyklen oder 1280 ns (64
Zyklen × 20
ns) getrennt. Wenn ein Paket oder eine Zelle jedoch kleiner als
die Größe eines AMPIC-Datenpuffers ist,
werden die PIPs mit einer höheren
Geschwindigkeit erzeugt. Für
ein Paket oder eine Zelle mit 64 Bytes baut eine Quellen-I/O-Resource
einen Teil-AMPIC-Datenpuffer
auf und generiert einen einzelnen SOP PIP in acht Taktzyklen (64 Bytes/8
Bytes). Ein Strom von kleinen Paketen oder Zellen, die Rücken an
Rücken
ausgebildet sind, generiert somit erheblich mehr PIP-Verkehr als
ein Strom von großen
Paketen.
-
Betrachtet
man nunmehr das Szenario eines Schalter-Wegverfolgers, der kleine
und fest vorgegebene Stimm-Zellen führt, hat das Schalt/Wegverfolger-System
typischerweise eine minimale Paket- oder Zellen-Größe, die
sie aufnehmen und immer noch eine garantierte Bandbreite aufrecht
erhalten kann. Der ideale Steuerpfad muss in der Lage sein, PIPs
von allen N I/O-Resourcen gleichzeitig in dieser minimalen „PIP-Zeit" zu absorbieren und
zu verarbeiten. Tatsächlich
soll der ideale Steuerpfad in der Lage sein, diese Leistung zu erbringen,
selbst wenn jeder verfügbare
PIP in dem System an eine einzelne Bestimmungs-I/O-Resource gesendet
werden soll.
-
Ein
möglicher
Weg unter Verwendung von typischen Fifo-Puffern für den Versuch,
eine solche Lösung
zu erreichen, ist in 2 für eine einzige
Bestimmungs-I/O-Resource
dargestellt, die in der Lage ist, alle N PIP-Ströme von allen N I/O-Resourcen
zu absorbieren. Jeder PIP-Strom ist dort mit einer zweckbestimmten
Fifo dargestellt, die ein PIP in der minimalen PIP-Zeit einschreiben
kann, so dass die vorher angegebene Forderung der Absorbierens kleiner
Pakete oder Zellen erfüllt
wird. Eine Arbiter-Einheit 5 ermöglicht, dass eine PIP-Fifo
ein vollständiges Paket
aus der Warteschlange entfernt, bevor es an die nächste Fifo
verschoben wird. Wenn eine Fifo ein Paket aus der Warteschlange
entfernt, werden die PIPs mit einer Zeilen-Geschwindigkeit freigegeben. Die Arbiter-Einheit 5 kann
somit solange nicht an die nächste
Schlange verschoben werden, bis alle PIPs für das gleiche Paket aus der Warteschlange
entfernt sind. Das dabei auftretende Problem besteht darin, dass
die QOS deshalb, weil der Kopf der Zeile blockiert ist, nicht mit
einer Annäherung,
wie in 2, versehen sein
kann. Eine Zelle hoher Priorität
ist deshalb hinter Paketen niedriger Priorität in der eigenen Fifo eingeschlossen
dargestellt, wobei auch die Verzögerung
berücksichtigt
werden muss, die erforderlich ist, um auf die Arbiter-Einheit zu warten,
damit alle N PIP-Fifos bedient werden.
-
Diese
Schwierigkeit kann jedoch durch getrennte PIP-Fifos für die unterschiedlichen
QOS-Prioritäten
gelöst
werden. Beispielsweise wird ein System mit 16 I/O-Resourcen, 8 QOS-Pegeln,
SOP PIP-Größe von 64
Bits und eine COP/EOP PIP-Größe von 32
Bits betrachtet. Der Daten-Bus für
den Zugriff des SOP-Fifo-Speichers würde 8 kBits breit sein (64
Bits × 16 × 8), was
eindeutig keine brauchbare Lösung
ist. Eine andere Option wäre,
dass nur 8 QOS-Fifo-Schlangen vorhanden sind, die jeweils 16 SOP
PIPs in einer PIP-Zeit absorbieren können. Eine weitere mögliche Lösung würde erforderlich
machen, dass eine einzelne QOS-Schlange aus einem 128 Bit breiten,
schnellen SRAM aufgebaut würde.
Der SRAM wäre
dann in der Lage, zwei SOP-PIPs in einem einzigen Taktzyklus einzuschreiben,
was dazu führt,
dass 16 SOP-PIPs in die minimale PIP-Zeit von 8 Zyklen eingeschrieben
würden.
Diese Speicher-Konfiguration würde
dann 8 mal für
8 QOS-Schlangen kopiert und in getrennte Bereiche für Mehrfach-Schnittstellen
unterteilt werden. Der Bus zu dem schnellen SRAM würde eine
Breite von 1 kBits (128 Bits × 8)
haben, was auf einem Chip mit eingebettetem SRAM möglich wäre. Diese
mögliche Lösung ist
jedoch weit vom Ideal entfernt, weil die Menge an eingebettetem
SRAM, die auf einen Chip aufgebracht werden kann, ziemlich begrenzt
ist, und dies beeinflusst direkt die Burst-Absorptionsfähigkeit des
Systems. Ein ideales System soll ankommende Pakete oder Zellen aufgrund
von Beschränkungen
im Steuerpfad-PIP-Speicher nicht behindern. Während es möglich ist, einen externen,
diskreten SRAM zu benutzen, ist der 1 kBits breite Bus sehr teuer
aus der Sicht vom Standpunkt der Metallätzung und dem Aufwand aus.
Speicher-Resourcen müssen
ferner durch andere Netzwerk-Funktionen, z. B. Leitweg-Tabellen, Multicast-Tabellen
und Paket-Pufferspeicher benutzt werden. Zusätzlich würden die COP/EOP PIPs in getrennten
Fifos gespeichert werden müssen,
die darauf warten, dass die entsprechende SOP PIP aus der Warteschlange
einer QOS-Schlange entfernt wird. Ein entscheidender Nachteil aller
dieser Fifo- und SRAM-abhängigen
Annäherungen
ist die beschränkte
Menge an Speicherraum, der zum Absorbieren großer Burstvorgänge zur
Verfügung
steht, wenn eine Überbelegung
auftritt. Keiner dieser Lösungs-Vorschläge kann
ferner auf einfache Weise erhöhte
Bandbreiten-Forderungen und kleinere Paket- oder Zellen-Größen erfüllen, die
das Minimum an PIP-Zeit reduzieren und den PIP-Verkehr vergrößern.
-
Der AMPIC
DRAM-Steuerpfad nach der Erfindung
-
Andererseits
löst die
vorliegende Erfindung dieses Problem durch Verwendung der neuartigen und
einmaligen Eigenschaften des AMPIC DRAM, um einen stark skalierbaren,
nicht blockierenden Steuerpfad mit geringer Latenz zu erzielen.
-
Wie
vorstehend beschrieben, hat eine einzelne AMPIC DRAM Vorrichtung,
wie sie bei dem zentralen, gemeinsam benutzten Kernspeicher 1 verwendet
wird, N Ports, um eine Anpassung an N I/O-Resourcen zu erzielen,
und sie ermöglicht
N I/O-Resourcen, Daten gleichzeitig mit einer sehr geringen Wahrscheinlichkeit
auszulesen und einzuschreiben, dass der interne Konkurrenzbetrieb
für eine
bestimmte DRAM-Bank die Leistung der externen Serien-Schnittstellen
beeinflusst. Dies wird durch den internen Breitbus-Zugriff zu den
eingebetteten DRAM-Speicherbanken erzielt. Der Datenpfad AMPIC ist
so ausgelegt, dass er Auslesungen und Einschreibungen für N Ströme von Rücken an
Rücken
angeordneten Paketen oder Zellen mit minimaler Größe bei vernachlässigbarem
Konkurrenzbetrieb aushält.
Wie vorher gezeigt, wird die maximale PIP-Rate direkt aus der I/O-Leitungsrate
und der minimalen Paket- oder Zellengröße abgeleitet.
-
Es
wurde festgestellt, dass dieses Merkmal impliziert, dass der Datenpfad
AMPIC für
die Anwendung auch in einem Steuerpfad für die Funktion von gleichzeitig
absorbierenden und speichernden N PIP-Strömen bei der maximalen PIP-Rate
genutzt werden kann. Eine einzige AMPIC DRAM-Vorrichtung hat eine
feststehende Anzahl von Puffern und Port-Bandbreite. Wenn AMPIC
DRAMs gestapelt werden, nimmt die Port-Bandbreite zu und die Speicherkapazität eines
Puffers wächst,
obgleich die Anzahl von Puffern fest bleibt. Dies bedeutet, dass
der Steuerpfad, der mit einem AMPIC DRAM ausgerüstet ist, eine gleiche Anzahl
von verfügbaren
PIP-Puffern wie der zentrale Speicher Datenpuffer besitzt, vorausgesetzt,
dass der Speicher im Steuerpfad die Fähigkeit hat, enorme Bursts
von PIPs zu absorbieren, ohne dass ein ankommender Datenstrom der I/O-Resource
behindert wird. Selbst wenn jedes PIP in dem System an eine einzige
Bestimmungsort-I/O-Resource gesendet wird, behindert der so ausgestattete
Steuerpfad den Datenpfad nicht. Man hat festgestellt, dass der AMPIC
DRAM im Steuerpfad eine I/O-Resource zulässt, um den zentralen, gemeinsam
genutzten Speicher 1 vollständig zu benutzen, wenn eine Überzeichnung
auftritt. Diese charakteristischen Merkmale machen ihn zu einer
idealen Speichervorrichtung für
die Verwendung im Steuerpfad.
-
Wie
in der noch zu beschreibenden 7 dargestellt,
ist die Steuer-Architektur vorzugsweise mit zwei Pfaden ausgerüstet, einen
für den
Unicast-Verkehr und die andere für
den Multicast-Verkehr. Der Unicast-Steuerpfad ist in 3 so dargestellt, dass er
zwei getrennte Speicher besitzt, die aus AMPIC DRAM-Chips aufgebaut
sind. Alle N ankommenden PIP-Ströme,
die so bezeichnet sind, passieren kleinstufige Fifos, bevor sie
in den Speicher eingeschrieben werden. Der erste oder obere AMPIC
DRAM Speicher, der gezeigt ist, speichert nur SOP PIPs und wird
als der AMPIC QOS MEMORY bezeichnet. Dieser Speicher ist in QOS-Fifos
unterteilt, wo externe Fifo-Hinweise 2 im
PIP-Prozessor 3 Adressen bei 2' auf der Basis des QOS-Prioritätsfeldes,
das im SOP PIP gespeichert ist, einführen. Das SOP PIP enthält alle
relevanten Informationen, die benötigt werden, um ein Paket oder
eine Zelle, z. B. als eine Kanal- und
Schnittstellen-Zahl, Paket-Byte-Zählung und QOS-Priorität zeitlich
zu planen.
-
Ein
zweiter AMPIC DRAM Speicher, der als der untere AMPIC COP/EOP LINK
MEMORY dargestellt ist, speichert nur COP und EOP PIPs und wird als
der Link-Tabellen-Speicher
bezeichnet. Ein COP oder EOP PIP wird einfach an der Link-Adresse, die in das
PIP eingebettet ist, gespeichert. Die einzige Funktion des COP/EOP
PIP besteht darin, die nächste
Puffer-Adresse in das Paket oder die Zelle einzuführen. Dieses
Unterteilen von SOP und COP/EOP PIPs im Unicast-Pfad ist zur Aufrechterhaltung
einer Abgabe-Bandbreite und eine vorhersagbare Latenz durch den
Steuerpfad kritisch.
-
Dies
kann durch Betrachten des folgenden Szenariums dargestellt werden.
COP/EOP PIPs eines Paketes werden mit dem entsprechenden SOP PIP
in den QOS Fifo-Speicher
gespeichert. Die COP/EOP PIPs, die für die gleiche Schlange aus
N I/O-Resourcen
bestimmt sind, enden verschleift in der Fifo. Wenn PIP SCHEDULER 4 das
SOP PIP aus der Warteschlange entfernt, müssen alle zugehörigen COP
PIPs mit Zeilen-Geschwin-digkeit folgen. Wenn PIPs für unterschiedliche
Pakete in die gleiche QOS Fifo eingeschleift werden, ist die COP-Latenz nicht
deterministisch und unter bestimmten Verkehrs-Schemen kann die Abgabe-Zeilengeschwindigkeit
durch Kompromiß entschieden
werden. Alle COP/EOP PIPs werden deshalb einfach in den Link-Tabellen-Speicher
eingeschrieben, wie in 3 dargestellt,
und wirken nicht mit dem QOS-Speicher zusammen. Bei dem vorausgehenden
Beispiel einer I/O-Resource mit einem Datenpfad mit 64 Bits, der mit
50 MHz betrieben wird, wobei ein Strom von Rücken an Rücken angeordneten 64-Byte-Paketen/Zellen
verarbeitet wird, generiert die I/O-Resource einen Strom von SOP
PIPs, der durch acht Taktzyklen getrennt ist. Im Falle von 16 I/O-Resourcen,
die einen ähnlichen
Strom von PIPs an die gleiche Bestimmungs-I/O-Resource übertragen,
muß; der
QOS AMPIC-Speicher an der Bestimmungsort-I/O-Resource in der Lage
sein, PIPs mit der maximalen PIP-Geschwindigkeit
von 16 SOP PIPs alle 8 Taktzyklen lang zu absorbieren. Dies macht
einen 16 Port AMPIC mit einem Datenbus von 8 Bits per Port erforderlich. Wenn
der verfügbare
AMPIC nur einen 4 Bit Port besitzt, können zwei AMPICs zusammengesteckt
werden, um die gewünschte
Bandbreite zu erzielen. Falls die I/O-Resourcen-Bandbreite sich verdoppelt,
kann die Anzahl von AMPICs entsprechend verdoppelt werden, um die
neue maximale PIP-Geschwindigkeit zu erfüllen.
-
Der
COP/EOP AMPIC Link-Tabellen-Speicher braucht jedoch PIPs nicht mit
der gleichen Geschwindigkeit wie den QOS AMPIC Speicher zu absorbieren.
Es wurde weiter oben dargelegt, dass für einen AMPIC-Datenpuffer mit
einer Größe von 512 Bytes
COP PIPs für
das gleiche Paket um 64 Taktzyklen versetzt generiert werden. Im
Falle eines schlimmsten Verstopfungs-Szenarios für den Link-Tabellen-Speicher
haben alle 16 I/O-Resourcen COP PIPs übertragen, die Link-Adressen
zu der gleichen DRAM-Bank
haben. Wenn die Link-Tabelle aus einem einzelnen AMPIC besteht,
können
die Schreib-Ports (in 3 so
bezeichnet) alle 16 COP PIPs in 8 Taktzyklen (32 Bits/4 Bits) aufnehmen.
Eine DRAM-Bank hat eine Zugriffszeit von drei Zyklen, um ein ganzes
32 Bit COP PIP zu laden. Der DRAM kann alle 16 COP PIPs in 48 Zyklen
einschreiben (16 Slots × 3
Zyklen-Zugriffszeit). Die gesamte Zeit zum Absorbieren der COP PIPs
beträgt
56 Zyklen, was die Zeitdauer mit einschließt, um die COP PIPs an den
AMPIC (48 Zyklen + 8 Zyklen) zu übertragen.
Die nachfolgenden 16 COP/EOP PIPs benötigen 64 Taktzyklen zum Ankommen.
-
Diese
nicht blockierende Architektur garantiert somit, dass COP PIPs für das gleiche
Paket in die Link-Tabelle mit Zeilengeschwindigkeit eingeschrieben
werden. Der Zeitplaner 4 kann SOP PIPs aus dem QOS-Speicher
aus der Warteschlange entfernen und den eingebetteten Byte-Zählwert und
die Bandbreiten-Forderungen für
die unterschiedlichen Prioritäts-Schlangen
benutzen, um den nächsten Zeitpunkt
zum Senden eines Paketes zu berechnen. Der Disponent kann den übrigen Teil
des Paketes aus der Warteschlange dadurch entfernen, dass die Link-Adresse
aus dem SOP-PIP abgezogen und in die AMPIC-Link-Tabelle eingeführt wird.
Der Disponent kann das AMPIC-Stale-Bit oder ein designiertes gültiges Bit
verwenden, um zu bestätigen,
dass der COP neu ist und keinen alten Wert darstellt. Nachdem ein
COP PIP aus der Link-Tabelle
ausgelesen worden ist, muss der Zeitplaner in die gleiche Stelle zurückschreiben
und das Stale-Bit oder das gültige Bit
löschen.
-
Der
Disponent muss COP/EOP PIPs mit Zeilengeschwindigkeit oder schneller
aus der Warteschlange entfernen, um eine Erschöpfung von Lese-Adressen zu
verhindern, was dazu führen
könnte, dass
der zentrale, gemeinsam benutzte Speicher 1 aufgefüllt würde. Dieser
blockierfreie Link-Tabellen-Betrieb nach der Erfindung ist deshalb
wesentlich zweckmäßiger für die vorerwähnten Annäherungen auf
Fifo-Basis an eine Lösung,
weil er sicher stellt, dass dies nicht eintreten kann.
-
Eine
andere Implementierung der AMPIC-Link-Tabelle kann viele COP PIPs
im gleichen PIP-Puffer zusammenpacken. Dies kann zweckmäßig sein,
um eine AMPIC- Lese-Latenz
zu markieren. Betrachtet man beispielsweise ein System, bei dem ein
AMPIC mit 256 Byte-Puffern verwendet wird und bei dem COP PIPs für das gleiche
Paket um 32 Taktzyklen getrennt sind. Wenn der AMPIC mehr als 32 Taktzyklen
beansprucht, um den nächsten
COP PIP auszulesen, kann die Zeilengeschwindigkeit nicht aufrecht
erhalten werden. Durch Zusammenpacken zweier COP PIPs hat der Disponent 4 die
Zeitdauer verdoppelt, die erforderlich ist, um die nachfolgenden COP
PIPs zu lesen. Bei diesem Beispiel würde das nächste COP PIP 64 Taktzyklen
lang nicht erforderlich sein, wodurch die AMPIC-Lese-Latenz überdeckt würde. Es
sei darauf verwiesen, dass das Zusammenpacken von COP PIPs bewirkt,
dass der zentrale, gemeinsam genutzte Speicher 1 als ein
Teilstrecken-Vermittlungs-Speicher (store and forward memory) im
Vergleich zu einem Trenn-Speicher (cut-through memory) wirkt. Dies
kann deshalb zu einer größeren Latenz
durch das System führen,
ist jedoch vernachlässigbar,
wenn nur einige wenige COP PIPs gemeinsam gespeichert werden.
-
Der
AMPIC QOS MEMORY nach 3 ist
in Prioritätsschlangen
mit externen Lese- und Schreib-Zeiger
unterteilt. Wie vorstehend ausgeführt, muss er in der Lage sein,
SOP PIPs bei der maximalen PIP-Rate aus N I/O-Resourcen zu absorbieren. Wie
weiter oben ausgeführt,
ermöglicht
die AMPIC-Architektur, dass die N I/O-Resourcen Daten gleichzeitig
mit einer sehr geringen Wahrscheinlichkeit lesen und schreiben,
dass der interne Wettstreit um eine bestimmte DRAM-Bank die Leistung
der externen Serien-Schnittstellen
beeinflusst. Dies wird durch den internen Breitbus-Zugriff zu den
eingebetteten DRAM-Banken erreicht. Ein weiteres Merkmal des AMPIC,
das den Wettstreit reduziert, ist der I/O-Slot, der, wie ausführlich in
dem Chatter-Patent erläutert,
vorübergehend
einen Puffer speichert, bis die entsprechende DRAM-Bank die Daten
lesen oder schreiben kann. Jeder Serien-Port hat einen I/O-Slot für jede entsprechende
DRAM-Bank. Solche Slots sind in 4,
auf die weiter unten eingegangen wird, dargestellt. Wenn beispielsweise
ein AMPIC 16 DRAM-Banken hat, hat jede Serien-Schnittstelle 16 I/O-Slots.
Ist die gesamte Anzahl von Serien-Ports 16, beträgt die Gesamtzahl der verfügbaren I/O
Slots 256 (16 Slots × 16
Ports).
-
Beispielsweise
kann eine Serien-Schnittstelle einen Puffer in einen I/O-Slot zu
einem Zeitpunkt eingeschrieben haben, zu dem die entsprechende DRAM-Bank
gerade besetzt ist. Ein Stau tritt auf, wenn die gleiche Serien-Schnittstelle
versucht, einen weiteren Puffer in die gleiche DRAM-Bank einzuschreiben.
Die Chance, dass der nächste
Puffer für die
gleiche Bank bestimmt ist, ist 1/16, da die Puffer-Adressen willkürlich angeordnet
sind. Statistisch erfährt
der AMPIC einen sehr geringen Wettstreit, selbst bei kleinen Paketgrößen, und
zwar wegen der 256 Slots, die für
eine vorübergehende
Speicherung verfügbar
sind.
-
Der
QOS AMPIC nach vorliegender Erfindung im Steuerpfad kann jedoch
nicht von dieser geringen Wahrscheinlichkeit für einen Wettstreit abhängen, weil
die Fifo-Lese- und
Schreib-Zeiger nicht willkürlich
sind. Betrachtet man beispielsweise 16 SOP PIPs mit der gleichen
Priorität,
die für
die gleiche Schnittstelle bestimmt ist. Wenn die Schlange in eine einzelne
DRAM-Bank unterteilt ist, tritt der Wettstreit sofort auf. Es ist
wichtig festzuhalten, dass ein PIP-Verkehr festgelegt werden kann
und von der Anwendung des Systems abhängig ist. Die Erfindung arrangiert
deshalb die Prioritäts-Schlangen in dem QOS
AMPIC in einer Weise, die einen solchen Wettstreit reduziert oder
eliminiert.
-
Dies
ist in 4 dargestellt,
in der die QOS-Schlangen über
die DRAM-Banken verteilt dargestellt sind. Der AMPIC QOS MEMORY
ist mit DRAM BANKS I ... N für
die entsprechenden I/O RESOURCEN I ... N dargestellt, deren jede
entsprechende Schlangen „Queue
I ... N" besitzt,
die durch die „CROSS
BAR" Schaltung getrennt
sind, welche auf die so bezeichneten SRAM SLOTS anspricht, die SOP
PIPs aus den I/O-Resourcen aufnehmen. Der externe Fifo-Lese- und
-Schreib-Zeiger 2 schaltet die Fifo-Adresse über die
Banken weiter. Der Vorteil dieser Unterteilung besteht darin, dass
N SOP PIPs gleichzeitig in N Banken eingeschrieben werden können. Die
externe Fifo-Schreib-Zeiger-Logik detektiert auf einfache Weise,
wie viele SOP PIPs für
die gleiche Schlange bestimmt sind, und gibt N-Adressen gleichzeitig
aus („FIFO
Address I ... N").
-
Zu
Darstellungszwecken trägt
bei einer I/O-Resource mit 8 Schnittstellen und 8 Prioritäts-Schlangen
pro Schnittstelle die gesamte Anzahl von externen Zeigern, die erforderlich
ist, um den QOS AMPIC-Speicher zu managen, 64 (8 × 8). Dieses
Schema kann, wie weiter oben erwähnt,
einen Wettstreit herbeiführen,
wenn SOP PIPs, die für
unterschiedliche Schlangen bestimmt sind, die gleiche Bank treffen.
Da die Schlangen keine Beziehung zueinander haben, können jedoch
Schreib-Zeiger als willkürlich
zueinander angesehen werden. Statistisch hat der QOS AMPIC die gleiche
konkurrierende Anforderung wie der Datenpfad AMPIC.
-
Eine
abgeänderte
Methode für
das Managen der Schlangen kann den Wettstreit auf Null reduzieren,
hat jedoch den Nachteil, dass hohe Kosten für die externen Zeiger erforderlich
sind. 5 zeigt eine solche
Speicher-Unterteilung, die ermöglicht,
dass ein Serien-Port nur SOP PIPs in eine ausgewählte DRAM-Bank (I ... N für entsprechende
I/O-Resourcen I ... N) einschreiben kann. In dem oben angegebenen
Beispiel kann die I/O-Resource I nur in die DRAM-Bank I und I/IO-Resource
N nur in die DRAM-Bank N einschreiben. Eine einzige QOS-Schlange
hat N getrennte Zeiger. Ein Rundum-Arbiter (nicht dargestellt) skrollt
durch die N Zeiger, um zu entscheiden, welche DRAM-Bank ausgelesen
werden soll. Diese Speicher-Unterteilung ist im wesentlichen eine
einzelne QOS-Ausgangs-Schlange, die aus kleineren Eingabe-Fifos
besteht. Im vorausgehenden Beispiel sind 8 Schnittstellen und 8
Prioritäts-Schlangen
pro Schnittstelle vorhanden. Die Gesamtanzahl von externen Zeigern,
die erforderlich ist, um den QOS AMPIC Speicher mit dieser Unterteilung
zu managen, beträgt
1024 (8 × 8 × 16 Banken).
Dies stellt einen hohen Zeigeraufwand dar, aber der Wettstreit ist
garantiert Null.
-
Vorliegende
Erfindung zeigt einen neuartigen Speicherpfad auf, der in hohem
Maße skalierbar ist,
nicht blockiert und eine geringe Latenz hat. Zusätzlich verbessert die Erfindung
synergistisch in hohem Maße
die Multicast-Leistung dadurch, dass der AMPIC DRAM als eine Multicast-Tabelle
mit N Ports im Steuerpfad verwendet wird. Die Fähigkeit, ein Paket oder eine
Zelle durch Multicast auf Mehrfach-Bestimmungs-I/O-Resourcen, Schnittstellen oder virtuelle
Stromkreise zu übertragen,
ist für
wichtige Anwendungsfälle
z. B. Video-Broadcasting kritisch. Ein System mit zeitanteiligem Speicherkern,
der einen AMPIC mit N Ports umfasst, wurde als ideal für diese Funktion
befunden, weil ein Paket oder eine Zelle durch N I/O-Resourcen wieder
aufgefunden werden kann. Eine Quellen-I/O-Resource kann ein Paket oder
eine Zelle an N-Bestimmungsort-I/O-Resourcen einfach in Multicast
dadurch übertragen,
dass der PIP-Strom N mal reproduziert wird. Eine I/O-Resource, die
einen PIP-Strom in Multicast überträgt, muss Spur
halten mit den reproduzierten PIPs, so dass benutzte Adressen nur
an die freie Liste freigegeben werden, nachdem alle duplizierten
PIPs zurückgeführt worden
sind. Multicasting wird somit wesentlich schwieriger, wenn eine
Bestimmungs-I/O-Resource im Multicast mit Mehrfach-Schnittstellen
oder möglicherweise
tausenden von virtuellen Stromkreisen übertragen muss. Bei einem solchen
Szenario wird gemäß der Erfindung
eine Multicast-Tabelle in einem lokalen Speicher auf der I/O-Resource
gespeichert. Ein Multicast SOP PIP hat einen Index in die Multicast-Tabelle,
die auf eine neue Bestimmungsadresse zeigt. Die Multicast-Explosion schafft
ein neues SOP PIP für
jede neue Bestimmungsadresse, die aus der Multicast-Tabelle ausgelesen
worden ist. Ein Eintrag in die Multicast-Tabelle kann ferner einen
Hinweis auf einen anderen Multicast-Eintrag enthalten, indem eine
Link-Liste neuer
Bestimmungsadressen geschaffen wird. Im Fall von virtuellen Schaltungen kann
die Multicast-Explosion erforderlich machen, dass die Link-Tabelle
Tausende solcher neuer Bestimmungsadressen speichert.
-
Die
Erfindung verwendet den AMPIC DRAM als eine solche Multicast-Tabelle
und als temporärenen
Speicher für
Multicast-SOP PIPs. Zu Darstellungszwecken ist der Multicast-Steuerpfad
für einen solchen
Betrieb in 6 ohne den
Unicast-Steuerpfad nach 4 und
in 7 zusammen mit dem Unicast-Steuerpfad
dargestellt. Ein eindeutiges Merkmal des AMPIC DRAM ist der vorstehend
erwähnte
N-Port-Zugriff zu dem gleichen Speicherraum. Dies ermöglicht,
dass die Multicast-Logik N-Multicast-SOP PIPs gleichzeitig verarbeitet. Dadurch
ergibt sich eine N-fache höhere
Leistung als für eine
Multicast-Tabelle, die im herkömmlichen
Speicher gespeichert ist, was erforderlich machen würde, dass
jeder Nachschlag-Vorgang in Serie durchgeführt werden müßte. Ferner
ist das Reproduzieren des Multicast-Speichers, bei dem Nachschlag-Vorgänge parallel
auftreten können,
teuer und platzaufwendig. Das weitere besondere Merkmal des AMPIC DRAM
liegt in dem internen breiten Bus und der großen Speicherkapazität eines
Puffers, wodurch Mehrfach-Bestimmungsadressen miteinander in einen einzelnen
Puffer gepackt werden können,
was den Aufwand für
die Link-Adresse reduziert.
-
Wie
in 6 gezeigt, wird ein
ankommendes Multicast-SOP PIO aus dem QOS AMPIC-Speicher umgeleitet.
Der Multicast-Index wird von dem SOP PIP getrennt und in einen Lese-Port „Rd Prt" I ... N am AMPIC
Multicast-Speicher bei „AMPIC
M" injiziert. Ein
Puffer, der gepackte Bestimmungsadressen und QOS-Prioritäten enthält, wird
in die externe Logik zurückgeführt. Ein
Fifo von der Größe eines
AMPIC-Puffers hält
vorübergehend
die neuen Bestimmungsadressen, wenn die Multicast-Explosion auftritt.
Die Multicast-Explosion schafft ein neues SOP PIP dadurch, dass
die Bestimmungsadresse, die QOS-Priorität und andere Felder in dem
ursprünglichen
SOP PIP ersetzt werden. Die ursprüngliche Puffer-Adresse zum
Paket oder zur Zelle wird jedoch nicht geändert. Dieser Vorgang setzt
sich fort, bis alle gepackten Bestimmungsadressen in neue SOP PIPs umgewandelt
worden sind. Die neuen SOP PIPs werden nunmehr als Unicast-Verkehr
behandelt (wie in 4)
und werden im Multiplexbetrieb in den Datenpfad für den QOS
AMPIC-Speicher, 7 zurück geführt („N × N Cross
Bar"). Ein Arbiter
(z. B. 5 nach 2)
steuert das Multiplexen des Unicast-Verkehrs und des explodierten
Multicast-Verkehrs auf der Basis der System-Anwendung. Diese Logik wird N mal vervielfacht,
um gleichzeitig N Multicast SOP PIPs zu explodieren.
-
Betrachtet
man ein Beispiel für
einen solchen Betrieb mit der vorausgehenden Darstellung eines Systems
mit 16 I/O-Resourcen und einem AMPIC DRAM mit 16 Ports, bei dem
jeder Port eine Breite von 4 Port hat und die Puffer-Größe 256 Bits
beträgt. Eine
Multicast-Tabelle kann aus zwei AMPIC DRAM-Vorrichtungen aufgebaut
werden, die zusammengesetzt sind, wodurch eine Daten-Port-Breite von
8 Bits und eine Puffer-Größe von 512
Bits entsteht. Eine einzige Multicast-Bestimmungsort-Adresse, QOS und
andere Informationen machen insgesamt 16 Bits aus. Der AMPIC-Puffer kann 32 gepackte
Multicast-Adressen (512 Bits/16 Bits) speichern und kann einen Puffer
ergeben, der 32 gepackte Multicast-Adressen über einen Daten-Port von 8
Bit Breite in 64 Taktzyklen (512 Bits/8 Bits) liefert. Wenn 16 Multicast
SOP PIPs gleichzeitig verarbeitet werden, kann der AMPIC DRAM 16
Puffer oder 512 (32 × 16) Multicast-Bestimmungsort-Adressen
in 64 Taktzyklen zurückführen. Eine
Multicast-Tabelle,
die in einem schnellen SRAM gespeichert ist, würde 512 Zyklen zum Auslesen
von 512 Bestimmungsort-Adressen benötigen, wenn man einen einzigen
Zyklus pro Ablesung zugrunde legt. Der AMPIC-Speicher hat somit einen
klaren Vorteil bei der Multicast-Anwendung. Wenn eine einzelne Multicast-Explosion
mehr Bestimmungsort-Adressen erfordert als ein AMPIC-Speicher speichern
kann, kann eine Link-Adresse zum nächsten Puffer in den laufenden
Puffer eingebettet werden. Wenn auf diese Weise AMPIC-Puffer miteinander
verlinkt sind, geht einige Speicherkapazität verloren, um die Link-Adressen
aufzunehmen. Eine Link-Adresse von 16 Bits beispielsweise würde die
Anzahl von Sammel-Bestimmungsadressen auf 31 pro Puffer reduzieren.
Die Link-Liste ist jedoch nur durch die Menge an gesamter verfügbarer Speicherkapazität beschränkt.
-
Eine
Verbesserung der Erfindung lässt
sich ferner dadurch erzielen, dass die Link-Adresse am Beginn des Puffers platziert
wird, was die Möglichkeit ergibt,
die Adresse abzustreifen und neu in die AMPIC einzuführen, bevor
der gesamte Puffer aufgenommen worden ist. Dieses Schema hilft,
die Pipeline vorzubereiten, so dass der Fluss von Bestimmungsadressen
in die Multicast-Logik ununterbrochen ist. Der QOS-Disponent entfernt
SOP PIPs aus der Warteschlange auf der Basis von Bandbreiten-Anforderungen für unterschiedliche
QOS-Prioritäten.
Der Disponent kann nicht den nächsten
Zeitpunkt vorhersagen, zu dem nach einem nicht explodierten Multicast-SOP
PIP gesendet wird. Wenn eine große Multicast-Explosion für die gleiche
Schnittstelle bestimmt wird, kann möglicherweise ein regulärer Unicast-Verkehr
blockiet werden. Aus diesem Grunde müssen die Multicast-SOP-PIPs
zur Explosion gebracht und weitgehend mit Unicast-SOP PIPs eingeschleift
werden, bevor sie in die QOS-Fifo-Schlangen eingeschrieben werden, wie
vorstehend erläutert.
-
Eine
große
Multicast-Explosion erzeugt eine Flut von neuen SOP PIPs, die in
den QOS AMPIC eingeschrieben werden müssen. Die vorbeschriebene N × N Kreuzschiene
zwischen dem Multicast-Datenpfad und dem Unicast-Datenpfad ermöglicht, dass
ein solcher explodierter Multicast-Verkehr leere Schreib-Ports in
den QOS AMPIC- Speicher
verwendet. Im Idealfall eines leichten Unicast-Verkehrs kann eine
Multicast-Explosion
N Schreib-Ports verwenden, um die explodierten Multicast-SOP PIPs
in den QOS-Speicher der 7 überzuführen. Ein
typischer Fall liegt jedoch vor, wenn die SOP PIPs, die durch eine
Multicast-Explosion erzeugt worden sind, die Bandbreite zum QOS
AMPIC-Speicher mit dem Unicast-Verkehr teilen müssen. Tatsächlich kann ein starker Unicast-Verkehr
bewirken, dass die Multicast-SOP PIPs sich stauen. Es kann auch
der Fall eintreten, dass Multicast-SOP PIPs Rücken an Rücken angeordnet sind, wobei
der erste SOP PIP eine längere
Multicast-Explosion erfährt.
Beide Szenarien machen erforderlich, dass ankommende Multicast-SOP
PIPs gespeichert werden, während
sie auf ihre Verarbeitung warten. Vorliegende Erfindung verwendet
zweckmäßigerweise
einen Teil des AMPIC-Multicast-Speichers zum Speichern ankommender
Multicast-SOP PIPs so lange, bis sie verarbeitet werden können. Dieser
Speicher kann auf einfache Weise in Fifos organisiert werden, wobei
die externe Logik mit den Lese- und Schreib-Zeigern Spur hält. Durch
Anordnen dieses Adressen-Raumes
in Fifos können
die Multicast-SOP PIPs in der gleichen Reihenfolge herausgeführt werden,
in der sie eingeführt worden
sind, so dass keine unfairen Folgen auftreten. Da die Multicast-Explosionen
nur die Lese-Ports belegen, sind die Schreib-Ports für den Zugriff
dieses Fifo-Raumes verfügbar.
Die Schreib-Ports des AMPIC-Multicast-Speichers („WrPrt" I ... N) müssen in der
Lage sein, Multicast-SOP PIPs bei der maximalen PIP-Verkehrs-geschwindigkeit
zu absorbieren.
-
Es
wird beispielsweise die frühere
Darstellung betrachtet, bei der die minimale Zeitdauer zwischen
SOP PIPs mit 8 Taktzyklen für
64 Byte-Pakete dargestellt worden ist und die Multicast-Tabelle
aus zwei AMPICs bestanden hat, die eine Port-Breite von 8 Bits erzeugen.
Ein einzelner Port kann eine 64 Bit SOP PIP in 8 Taktzyklen, 64
Bits/8 Bits, einschreiben, was die minimalen PIP-Zeit-Anforderungen
erfüllt. Die
16 Ports können
auch gleichzeitig 16 SOP PIPs einschreiben. Dies zeigt, dass der
Multicast-SOP PIP Speicher
gleichzeitig einen kontinuierlichen Burst von Rücken an Rücken angeordneten Multicast-SOP PIPs
sogar von allen 16 I/O-Resourcen absorbieren kann.
-
Diese
Steuerpfad-Architektur nach der Erfindung ist vollständig skalierbar,
abhängig
von den Anforderungen des Systems. Wenn eine bessere Port-Bandbreite
und eine höhere
Speicher-Kapazität erforderlich
ist, können
mehr AMPIC DRAM Chips zusammengeführt werden, wodurch der Port-Bus verbreitert
und die Größe eines
Puffers erhöht
wird. Wenn mehr Multicast-SOP-Speicherraum benötigt wird, kann ferner die
Anzahl von AMPIC-Puffern dadurch erhöht werden, dass AMPICs vertikal
oder in Banken gestapelt werden, wobei die externe Logik dann die
Banken als eine Erweiterung des Adressenraumes ansieht. Zusammenfassend
benutzt die Erfindung die besonderen Eigenschaften des AMPIC DRAMs
auch zur Erzielung entscheidend besserer Multicast-Leistung als
sie mit herkömmlichen
Speichervorrichtungen und Konfigurationen erzielt werden kann.
-
Nach
einer weiteren Ausgestaltung der Erfindung wird die Steuerpfad-Architektur
dadurch verbessert, dass der AMPIC DRAM benutzt wird, um die PIP-Verkehrs-Verstopfung zu verringern,
wenn PIPs zurückgeführt werden,
weil die QOS-Schlangen gefüllt
sind, oder nachdem ein Datenpaket aus dem gemeinsam genutzten Speicher
wieder aufgefunden worden ist.
-
8 ist ähnlich der 1, weist jedoch zusätzlich eine Möglichkeit
auf, um die PIP-Verkehrs-Verstopfung
an einem solchen PIP-Rückführpfad zu
verringern. In 8 sind
Verbindungen von Punkt zu Punkt für die PIP „Vorwärts"- und „"Rückwärts"-Pfade dargestellt.
Eine I/O-Resource sendet die PIPs, die von einem ankommenden Paket
zu den Bestimmungsort-I/O-Resourcen erzeugt worden sind, über die „Vorwärts"-PIP-Pfade. Eine I/O-Resource
führt die
PIPs an eine Quellen-I/O-Resource über den „Rückführ"-PIP-Pfad zurück, nachdem ein Paket aus dem
gemeinsam genutzten Speicher 1 ausgelesen worden ist. Nachdem
eine Bestimmungsort-I/O-Resource plant, dass ein Paket aus dem gemeinsam
benutzten Speicher ausgelesen wird, werden die entsprechenden PIPs
aus dem QOS und dem Link-Tabellen-AMPIC-Speicher, 3, wie früher beschrieben, ausgelesen.
Die Lese-Adressen werden von dem PIP abgestreift und in den gemeinsam
genutzten Speicher-Datenpfad eingeführt. Wenn ein Daten-Puffer
aus dem gemeinsam genutzten Speicher wieder aufgefunden worden ist,
wird die in den Puffer eingebettete Adresse mit der Adresse im PIP
verglichen, um zu bestätigen,
dass Steuerpfad und Datenpfad synchron miteinander arbeiten. Das
PIP wird dann in die Quellen I/O-Resource über den PIP „Rückführ"-Pfad zurück geführt. Die
Quellen I/O-Resource setzt die Puffer-Adresse dadurch in Umlauf,
dass sie sie aus der „benutzten" Adressenliste in 1 in die „freie" Adressenliste zurückführt.
-
Als
Darstellungsbeispiel wird das vorausgehende Beispiel eines 64 Byte-Paketes
betrachtet, das gezeigt worden ist, um PIPs mit der maximalen Geschwindigkeit
eines einzelnene SOP PIP je 160 ns zu erzeugen. Eine I/O-Resource,
die typischen Unicast-Verkehr
aufnimmt, gibt eine einzelne SOP PIP je 160 ns weiter. Die PIP-Rückführ-geschwindigkeit jedoch
kann nicht als eine PIP je 160 ns angenommen werden. Damit kann
ein Problem entstehen, weil eine Rückführ-Latenz des SOP PIP sich
abhängig
davon ändern
kann, wie viele SOP PIPs bereits in einer speziellen Bestimmungsort-QOS-Schlange
gespeichert sind. Die vorhandenen SOP PIPs, die vor dem neuen SOP
PIP stehen, stellen Daten dar, die geplant und auf den Leiter übertragen
werden, bevor der neue SOP PIP zurückgeführt werden kann. Es ist wichtig festzustellen,
dass eine QOS-Schlange nur garantieren kann, dass eine ungünstigere
System-Latenz nicht verletzt wird, die tatsächliche Latenz ist jedoch schwierig
vorher zu sagen. Solange wie die Latenz durch das System diese Forderung
nicht verletzt, ergibt das Netzwerk einen zuverlässigen Service.
-
Diese
geringe Änderung
in der Latenz jedoch kann eine Engstelle von PIPs auf den N „Rückführ"-Pfaden bewirken.
Eine Quellen-I/O-Resource, die einen einzelnen SOP PIP je 160 ns überträgt, kann
N Rückführ-Pfade
haben, die leer sind und die einen Burst von N rückgeführten PIPs gleichzeitig erfahren.
Das Problem wird im Multicast-Fall augenscheinlicher. Wenn ein PIP
reproduziert und auf N I/O-Resourcen im Multicast übertragen
wird, wird der Rück-Verkehr
wesentlich größer als
der Vorwärts-Verkehr.
Die Speichervorrichtung, die die „benutzten" und die „freien" Adressenlisten nach 1 speichert, muss in der Lage sein, N
Rückführ-PIP-Ströme zu verarbeiten.
Da eine I/O-Resource
einer festen Anzahl von Adressen aus dem gemeinsam benutzten Speicher
zugeordnet wird, müssen
die „benutzten" Adressen deshalb
in die „freie" Liste so schnell
wie möglich
in Umlauf gesetzt werden, um eine Adressen-Erschöpfung für ankommende Pakete zu verhindern.
-
Dieses
Problem wird nach der Erfindung mit einem Rückführpfad gelöst, der den AMPIC DRAM für den „freien" und „benutzten" Adressenspeicher verwendet,
wie in den 8 und 9. Die „freie" und die „benutzte" Adressenliste wird deshalb in zwei
getrennte Speicher unterteilt, deren jede aus einer einzelnen AMPIC
DRAM-Vorrichtung
besteht. Der AMPIC „freie" Adressenspeicher
(4) wirkt als tiefer Fifo
mit externen Lese- und Schreib-Zeigern. Ein ankommendes Paket zieht
einfach eine freie Adresse aus dem oberen Teil des Fifo mit externen
Lese- und Schreib-Zeigern. Ein ankommendes Paket zieht einfach eine
freie Adresse aus dem oberen Teil des Fifo und der externe Fifo-Lese-Zeiger
schaltet auf die nächste
freie Adresse. Eine Kopie der freien Adresse wird dem Datenpuffer
hinzugefügt
und wird in dem gemeinsam genutzten Speicher 1 gespeichert.
Die freie Adresse und das Resultat der Paket-Kopffeld-Nachschlagung bilden ein neues
PIP. Das Resultat der Paket-Kopffeld-Nachschlagung identifiziert auch ein
PIP entweder als Unicast oder Multicast. Bevor eine I/O-Resource
ein PIP weitergibt, muss eine Aufzeichnung darüber vorgenommen werden, für welche
I/O-Resourcen das PIP bestimmt ist. Auf diese Weise wird eine PIP-Maske
geschaffen, bei der jedes Bit eine mögliche Bestimmungsort-I/O-Resource
repräsentiert.
Die entsprechenden Bits werden in Hinblick darauf gesetzt, welche
I/O-Resourcen eine Kopie
des PIP empfangen. Wenn das PIP Unicast ist, wird nur ein einzelnes
Bit gesetzt. Die Bit-Maske wird in dem AMPIC „genutzten" Adressenspeicher, 9, mit der Adresse gespeichert, die in
das PIP eingebettet ist. Dieses Schema markiert eine freie Adresse
als eine benutzte Adresse. Sie hält
auch eine Aufzeichnung darüber,
wie viele Male die Adresse reproduziert worden ist, und für welche
I/O-Resourcen das PIP bestimmt war. Die Bit-Maske wird benutzt,
wenn das PIP zurückgeführt worden
ist, um zu bestimmen, ob eine „benutzte" Adresse zurück in den „freien" Adressenspeicher
in Umlauf gesetzt werden kann. Das PIP wird nunmehr in die beabsichtigten
Bestimmungsort-I/O-Resourcen über
die Vorwärts-PIP-Pfade gesendet.
-
Wenn
ein PIP als Multicast identifiziert wird, wird es 2 bis N mal reproduziert
und gleichzeitig an die entsprechenden PIP-Vorwärts-Pfade gesendet. Nachdem
eine Bestimmungsort-I/O-Resource einen Puffer aufgefunden hat, wird
das PIP in die Quellen-I/O-Resourcen über den Rückführpfad zurückgeführt. Die Adresse, die im Rückführ-PIP eingebettet ist,
wird verwendet, um die entsprechende Bit-Maske aus dem AMPIC „benutzten" Adressenspeicher
auszulesen. Das Rückführ-PIP enthält die Bestimmungs-ort-I/O-Resourcen-Zahl,
die verwendet wird, um das entsprechnde Masken-Bit zu löschen, wodurch
angezeigt wird, dass das PIP rückgewonnen worden
ist. Wenn die fortgeschaltete Bit-Maske weiterhin einen von Null
abweichenden Wert hat, wird sie in die gleiche Lage im AMPIC „benutzten" Adressenspeicher
eingeschrieben. Ein von Null abweichender Wert gibt an, dass andere
I/O-Resourcen noch nicht das Multicast-PIP zurückgeführt haben. Wenn die reproduzierten
PIPs von 2 bis N I/O-Resourcen zurückführen, werden die entsprechenden Bits
gelöscht
und die Maske wird zurück
in den AMPIC „benutzten" Adressenspeicher
eingeschrieben. Wird das letzte PIP zurückgeführt, wird eine gelöschte Maske
zurück
in den AMPIC „benutzten" Adressenspeicher
eingeschrieben. Die Adresse wird dann in den AMPIC „freien" Adressenspeicher
zurückgeführt. Nun
kann ein ankommendes Paket die in Umlauf gesetzte Adresse benutzen.
-
Der
AMPIC DRAM bietet einen entscheidenden Vorteil gegenüber einem
traditionellen Speicher für
die vorbeschriebenen Zwecke, weil N Lese- und Schreib-Ports verwendet werden
können,
um N Bit-Masken gleichzeitig auszulesen und einzuschreiben. Ferner
können
N benutzte Adressen gleichzeitig an den AMPIC „freien" Adressenspeicher in Umlauf gesetzt
werden. Der AMPIC DRAM hat die gleiche Anzahl von Bit-Masken-Stellen
wie der gemeinsam genutzte Speicher Datenpuffer hat. Wie vorstehend aufgezeigt,
kann der AMPIC DRAM im Rückführ-Steuerpfad N PIP-Adressen
gleichzeitig in der minimalen PIP-Zeit auslesen und einschreiben,
weil der AMPIC, der von dem Datenpfad benutzt wird, gleichzeitig
N Pakete minimaler Größe auslesen
und einschreiben kann. In dem vorausgehenden Beispiel eines Systems
mit 16 I/O-Resourcen, einer erforderlichen garantierten Zeilengeschwindigkeit
für 64 Byte-Pakete,
und einer maximalen PIP-Geschwindigkeit von 1 PIP je 8 Taktzyklen
besteht eine minimale PIP-Zeitdauer von 160 ns (8 Taktzyklen × 20 ns).
Ein einzelner 16 Port AMPIC DRAM mit 4 Bit-Datenports kann 32 Bits
per Port in 8 Taktzyklen auslesen und einschreiben. Ein System mit
16 I/O-Resourcen
erfordert nur, dass 16 Bits der benutzten Adresse folgen. Der AMPIC „benutzte" Adressenspeicher kann
16 Masken gleichzeitig in der minimalen PIP-Zeit von 8 Taktzyklen
auslesen. Ferner können 16
modifizierte Masken zurück
in der minimalen PIP-Zeit eingeschrieben werden. Der AMPIC „freie" Adressenspeicher
kann des weiteren 16 Adressen gleichzeitig in der minimalen PIP-Zeit
einschreiben. Dies bedeutet, dass die „benutzten" und „freien" Adressenlisten fortgeschaltet und auf
einfache Weise mit der maximalen Rückführ-PIP-Geschwindigkeit von
16 PIPs je 8 Taktzyklen Schritt halten können. Diese Architektur macht
den Rückführpfad maßstabsgetreu
mit dem Vorwärts-PIP-Pfad
und dem gemeinsam benutzten Speicher-Datenpfad.