-
TECHNISCHES
GEBIET DER ERFINDUNG
-
Die
vorliegende Erfindung betrifft das Gebiet eines vernetzten Datenaustauschsystems
und insbesondere die Herabsetzung von Speicherzugriffen auf ein
Minimum.
-
GRUNDLAGEN
DER ERFINDUNG
-
Ein
Datenpaketvermittlungsnetz (packet switching network) weist Vermittlungspunkte
oder Knoten zur Übertragung
von Daten zwischen mit dem Netz verbundenen Sendern und Empfängern auf.
Die von diesen Vermittlungspunkten ausgeführte Vermittlung ist in der
Tat der Vorgang der Weiterleitung von von einem Vermittlungspunkt
oder einem Knoten empfangenen Paketen oder "Rahmen" von Daten an einen weiteren Knoten
im Netz. Solche Vermittlungsvorgänge
sind das Mittel, mit Hilfe dessen Übertragungsdaten durch das
Paketvermittlungsnetz bewegt werden.
-
Jeder
Knoten kann einen Paketprozessor umfassen, der so konfiguriert ist,
dass er Pakete oder Rahmen von Daten verarbeitet. Jeder Datenrahmen kann
einem Rahmensteuerblock (Frame Control Block, FCB) zugeordnet werden,
der so konfiguriert ist, dass er den zugeordneten Datenrahmen beschreibt.
Normalerweise umfassen FCBs verschiedene Datenfelder, wobei diese
von einem Speicher im Paketprozessor bereitgestellt werden, z.B.
einem statischem RAM mit vierfacher Übertragungsgeschwindigkeit
(Quadruple Data Rate Static Random Access Memory, QDR SRAM). Das
heißt,
die Datenfelder in FCBs werden durch Zugreifen auf den Speicher
im Paketprozessor, z.B. den QDR SRAM, erhalten.
-
Daher
wäre es
wünschenswert,
die Anzahl von Daten benötigenden
Feldern in Feldsteuerblöcken
zu begrenzen, wodurch die Anzahl von Speicherzugriffen verringert
und die Leistungsfähigkeit des
Speicherbereichs, d.h. die Leistungsfähigkeit der Bandbreite des
Speichers, verbessert würden.
-
Die
EP-Patentanmeldung Nr.
EP
0797 335 A2 beschreibt einen Netzadapter, durch den Sende- und
Empfangsdaten in Pufferbereichen gespeichert werden, die in einem
ersten und zweiten Speicher eines im einem Netz befindlichen Systems
definiert werden. Mehrere ebenfalls in den Speichern gespeicherte
Deskriptorringe (descriptor rings) zeigen auf die Pufferbereiche.
Die beiden Speicher befinden sich auf gesonderten Bussen, die mit
einem gemeinsamen, einen Prozessor enthaltenden Bus verbunden sind.
Der Prozessor kommuniziert mit dem einen oder dem anderen der Speicher
unter Verwendung eines Verbindungsprotokolls (handshaking protocol). In
das System eingehende Empfangsdaten werden in Abhängigkeit
von einem charakteristischen Code, der vom Rahmen übertragen
wird, z.B. in einem Rahmensteuerfeld, unter mehreren Deskriptoren
aufgeteilt. Die Größe des ersten
Deskriptors, die geringer als diejenige der anderen ist, ist so
programmiert, dass sie der Größe des Vorsatzes
jedes Rahmens entspricht. Eine Synchronisierung zwischen Vorsätzen und
Daten eines Rahmens wird durch eine in jedem Deskriptor gespeicherte
Rahmennummer aufrechterhalten. Unter einem anderen Aspekt wird eine Blockierung
des Empfangspfades beim Auftreten eines blockierten Empfangsdeskriptorrings
verhindert.
-
BESCHREIBUNG
DER ERFINDUNG
-
Die
vorliegende Erfindung stellt einen logischen Feldsteuerblock (FCB)
bereit, der als ein erster und ein zweiter Steuerblock dargestellt
wird, wobei der erste Steuerblock einem ersten Speicher und der zweite
Steuerblock einem zweiten Speicher zugeordnet werden kann. Jeder
Speicher, d.h. der erste und der zweite Speicher, kann außerdem einer
Datenflusseinheit bzw. einer Planungseinrichtung des Paketprozessors
zugeordnet werden. Eine Datenflusseinheit des Paketprozessors kann
so konfiguriert werden, dass sie Datenrahmen empfängt und
sendet. Eine Planungseinrichtung des Paketprozessors kann so konfiguriert
werden, dass sie die an einen anderen Vermittlungspunkt oder Anschluss
in einem Paketvermittlungsnetz zu übertragenden Datenrahmen zeitlich
plant. Wenn der FCB sich in einer Warteschlange in der Datenflusseinheit
befindet, können Daten
in den Feldern des ersten Steuerblocks und nicht in den Feldern
des zweiten Steuerblocks gespeichert werden. Da nicht auf den zweiten
Speicher zugegriffen wird, um aus den Feldern des zweiten Steuerblocks
zu lesen bzw. in diese zu schreiben, wird die Leistungsfähigkeit
der Bandbreite des zweiten Speichers dadurch verbessert. Wenn der
FCB sich in einer Warteschlange in der Planungseinrichtung befindet,
können
Daten in den Feldern des zweiten Steuerblocks und nicht in den Feldern
des ersten Steuerblocks gespeichert werden. Da nicht auf den ersten
Speicher zugegriffen wird, um aus den Feldern des ersten Steuerblocks
zu lesen bzw. in diese zu schreiben, wird die Leistungsfähigkeit
der Bandbreite des ersten Speichers dadurch verbessert.
-
Unter
einem Aspekt stellt die vorliegende Erfindung ein System bereit,
das Folgendes umfasst: einen Prozessor, der so konfiguriert ist,
dass er Datenrahmen verarbeitet, wobei der Prozessor Folgendes umfasst:
eine Datenflusseinheit, die so konfiguriert ist, dass sie die Datenrahmen
empfängt
und sendet, wobei jeder der Datenrahmen einen zugeordneten Rahmensteuerblock
aufweist, wobei jeder der Rahmensteuerblöcke einen ersten und einen
zweiten Steuerblock umfasst; einen mit der Datenflusseinheit verbundenen
ersten Speicher, wobei der erste Speicher eine erste Rahmenpuffersteuereinheit
umfasst, wobei die erste Rahmenpuffersteuereinheit Felddaten für den ersten
Steuerblock des Rahmensteuerblocks speichert; und eine Planungseinrichtung,
die mit der Datenflusseinheit verbunden ist, wobei die Planungseinrichtung
so konfiguriert ist, dass sie von der Datenflusseinheit empfangene
Datenrahmen zeitlich plant, wobei die Planungseinrichtung einen zweiten
Speicher umfasst, wobei der zweite Speicher eine zweite Rahmenpuffersteuereinheit
umfasst, wobei die zweite Rahmenpuffersteuereinheit Felddaten für den zweiten
Steuerblock des Rahmensteuerblocks speichert.
-
Vorzugsweise
umfasst die Datenflusseinheit eine Vielzahl von Warteschlangen,
wobei einer oder mehrere der Rahmensteuerblöcke sich in einer aus der Vielzahl
von Warteschlangen befinden. In einer bevorzugten Ausführungsform
werden die Daten in den Feldern des ersten Steuerblocks von einem
oder mehreren der Rahmensteuerblöcke,
die sich in einer aus der Vielzahl von Warteschlangen der Datenflusseinheit befinden,
in der ersten Rahmenpuffersteuereinheit des ersten Speichers gespeichert.
-
Geeigneterweise
umfasst die Planungseinrichtung eine erste Warteschlange, wobei
einer oder mehrere der Rahmensteuerblöcke sich in der ersten Warteschlange
befinden. Geeigneterweise werden die Daten in den Feldern des zweiten
Steuerblocks von einem oder mehreren der Rahmensteuerblöcke, die
sich in der ersten Warteschlange befinden, außerdem in der zweiten Rahmenpuffersteuereinheit des
zweiten Speichers gespeichert.
-
Unter
einem anderen Aspekt stellt die vorliegende Erfindung ein Verfahren
zur Verringerung der Anzahl von Speicherzugriffen bereit, um die
gewünschten
Daten in Rahmensteuerblöcken
zu erhalten, wobei jeder der Rahmensteuerblöcke einen ersten Steuerblock
und einen zweiten Steuerblock umfasst, wobei der erste Steuerblock
einem ersten Speicher zugeordnet ist, wobei der zweite Steuerblock
einem zweiten Speicher zugeordnet ist, wobei der erste Speicher
eine erste Rahmenpuffersteuereinheit umfasst, wobei die erste Rahmenpuffersteuereinheit Felddaten
für den
ersten Steuerblock des Rahmensteuerblocks speichert, wobei der zweite
Speicher eine zweite Rahmenpuffersteuereinheit umfasst, wobei die
zweite Rahmenpuffersteuereinheit Felddaten für den zweiten Steuerblock des
Rahmensteuerblocks speichert, wobei das Verfahren die folgenden Schritte
umfasst: Zugreifen auf den ersten Speicher, um die Daten in Feldern
des ersten Steuerblocks aus einem oder mehreren der Rahmensteuerblöcke zu lesen
oder in sie zu schreiben; und Zugreifen auf den zweiten Speicher,
um die Daten in Feldern des zweiten Steuerblocks aus einem oder
mehreren der Rahmensteuerblöcke
zu lesen oder in sie zu schreiben.
-
Vorzugsweise
befinden sich einer oder mehrere der Rahmensteuerblöcke in einer
aus einer Vielzahl von Warteschlangen in einer Datenflusseinheit, wobei
die Datenflusseinheit dem ersten Speicher zugeordnet ist. Außerdem wird
vorzugsweise auf den ersten Speicher zugegriffen, um die Daten in
Feldern des ersten Steuerblocks aus einem oder mehreren der Rahmensteuerblöcke zu lesen
oder in sie zu schreiben, wenn der eine oder die mehreren Rahmensteuerblöcke sich
in einer aus der Vielzahl von Warteschlangen in der Datenflusseinheit
befinden. Vorzugsweise befinden sich außerdem einer oder mehrere der
Rahmensteuerblöcke
in einer Warteschlange in einer Planungseinrichtung, wobei die Planungseinrichtung
dem zweiten Speicher zugeordnet ist. Entsprechend wird auf den zweiten
Speicher zugegriffen, um die Daten in Feldern des zweiten Steuerblocks
aus einem oder mehreren der Rahmensteuerblöcke zu lesen oder in sie zu
schreiben, wenn der eine oder die mehreren Rahmensteuerblöcke sich
in der Warteschlange der Planungseinrichtung befinden.
-
Unter
noch einem anderen Aspekt stellt die vorliegende Erfindung ein Computerprogrammprodukt
bereit, das ein Programmcodemittel umfasst, das zur Ausführung der
oben beschriebenen Schritte geeignet ist, wenn das Programm in einem
Computer ausgeführt
wird.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Die
vorliegende Erfindung wird nun lediglich beispielhaft mit Bezugnahme
auf bevorzugte Ausführungsformen
beschrieben, wie sie in den folgenden Zeichnungen veranschaulicht
werden, in denen:
-
1 einen
Paketprozessor darstellt, der gemäß der vorliegenden Erfindung
konfiguriert ist;
-
2 eine
Datenflusseinheit darstellt, die gemäß der vorliegenden Erfindung
konfiguriert ist;
-
3 ein
Flussdiagramm eines Verfahrens zur Verringerung der Anzahl von Speicherzugriffen ist,
um die gewünschten
Daten in Rahmensteuerblöcken
zu erhalten;
-
4 eine
Ausführungsform
der vorliegenden Erfindung eines Basis-FCB (Basic FCB) eines in der
Warteschlange für
freie FCBs (FCB free queue) der Datenflusseinheit befindlichen FCB
darstellt;
-
5 eine
Ausführungsform
der vorliegenden Erfindung eines Fluss-FCB (Flow FCB) eines in der
Warteschlange für
freie FCBs der Datenflusseinheit befindlichen FCB darstellt;
-
6 eine
Ausführungsform
der vorliegenden Erfindung eines Basis-FCB einer in GQs der Datenflusseinheit
befindlichen FCB darstellt;
-
7 eine
Ausführungsform
der vorliegenden Erfindung eines Fluss-FCB einer in GQs der Datenflusseinheit
befindlichen FCB darstellt;
-
8 eine
Ausführungsform
der vorliegenden Erfindung eines Basis-FCB eines in Flusswarteschlangen
einer Planungseinrichtung befindlichen FCB darstellt;
-
9 eine
Ausführungsform
der vorliegenden Erfindung eines Fluss-FCB eines in Flusswarteschlangen
einer Planungseinrichtung befindlichen FCB darstellt;
-
10 eine
Ausführungsform
der vorliegenden Erfindung eines Basis-FCB eines in TBQs der Datenflusseinheit
befindlichen FCB darstellt; und
-
11 eine
Ausführungsform
der vorliegenden Erfindung eines Fluss-FCB eines in TBQs der Datenflusseinheit
befindlichen FCB darstellt.
-
AUSFÜHRLICHE
BESCHREIBUNG DER ERFINDUNG
-
Die
vorliegende Erfindung stellt ein Verfahren und ein System zur Verringerung
der Anzahl von Zugriffen auf den Speicher zum Erhalten der gewünschten
Felddaten in Rahmensteuerblöcken
bereit. In einer Ausführungsform
der vorliegenden Erfindung umfasst ein System einen Prozessor, der
so konfiguriert ist, dass er Datenrahmen verarbeitet. Der Prozessor
kann eine Datenflusseinheit umfassen, die so konfiguriert ist, dass
sie Datenrahmen empfängt und
sendet, wobei jeder Datenrahmen einen zugeordneten Rahmensteuerblock
aufweisen kann. Jeder Rahmensteuerblock kann einen ersten und einen zweiten
Steuerblock aufweisen. Außerdem
kann der Prozessor einen mit der Datenflusseinheit verbundenen ersten
Speicher umfassen, wobei dieser eine erste Rahmenpuffersteuereinheit
umfasst. Die erste Rahmenpuffersteuereinheit kann Felddaten für den ersten
Steuerblock des Rahmensteuerblocks speichern. Außerdem kann der Prozessor eine
mit der Datenflusseinheit verbundene Planungseinrichtung umfassen,
wobei diese so konfiguriert werden kann, dass sie von der Datenflusseinheit
empfangene Datenrahmen zeitlich plant. Die Planungseinrichtung kann
einen zweiten Speicher umfassen, wobei dieser eine zweite Rahmenpuffersteuereinheit
umfasst. Die zweite Rahmenpuffersteuereinheit kann Felddaten für den zweiten
Steuerblock des Rahmensteuerblocks speichern. Wenn der Rahmensteuerblock
sich in einer Warteschlange in der Datenflusseinheit befindet, können Daten
in den Feldern des ersten Steuerblocks und nicht in den Feldern
des zweiten Steuerblocks gespeichert werden. Da nicht auf den zweiten
Speicher zugegriffen wird, um aus den Feldern im zweiten Steuerblock
zu lesen bzw. in diese zu schreiben, wird die Leistungsfähigkeit
der Bandbreite des zweiten Speichers dadurch verbessert. Wenn der Rahmensteuerblock
sich in einer Warteschlange in der Planungseinrichtung befindet,
können
Daten in den Feldern des zweiten Steuerblocks und nicht in den Feldern
des ersten Steuerblocks gespeichert werden. Da nicht auf den ersten
Speicher zugegriffen wird, um aus den Feldern im ersten Steuerblock
zu lesen bzw. in diese zu schreiben, wird die Leistungsfähigkeit
der Bandbreite des ersten Speichers dadurch verbessert.
-
1 stellt
einen Paketprozessor 100 dar. Der Paketprozessor 100 kann
eine Datenflusseinheit 110 umfassen, die so konfiguriert
ist, dass sie digitale Pakete, d.h. Rahmen, von Daten von einem
bestimmten Vermittlungspunkt (nicht gezeigt) oder Anschluss (nicht
gezeigt) eines Paketvermittlungsnetzes empfängt und die digitalen Pakete,
d.h. Rahmen, von Daten an einen anderen Vermittlungspunkt oder Anschluss,
z.B. den Vermittlungspunkt/Anschluss 120, im Paketvermittlungsnetz
sendet. Jedem Datenrahmen kann ein Rahmensteuerblock (FCB) zugeordnet
werden, wobei der FCB den zugeordneten Datenrahmen beschreibt. Jeder
einem Datenrahmen zugeordnete FCB kann einem oder mehreren Puffersteuerblöcken (Buffer
Control Blocks, BCB) zugeordnet werden, wobei jeder einem FCB zugeordnete BCB
einem Puffer in einer Datenspeichereinheit 140 zugeordnet
werden kann. Ein BCB kann so konfiguriert werden, dass er den dem
nächsten
verketteten BCB zugeordneten Puffer beschreibt, wie in der US-Patentanmeldung mit
der Seriennummer 09/791 336 (gleichzeitig anhängige PCT-Patentanmeldung unter
dem Aktenzeichen RAL000095) beschrieben wird. In einer Ausführungsform
kann die Datenflusseinheit 110 sich in einem integrierten
Schaltkreis befinden, d.h. in einem integrierten Chip. Die Datenflusseinheit 110 kann
mit der Datenspeichereinheit 140 verbunden sein, die so
konfiguriert ist, dass sie Datenrahmen zeitweilig speichert, die
von der Datenflusseinheit 110 von einem Vermittlungspunkt
(nicht gezeigt) oder einem Anschluss (nicht gezeigt) im Paketvermittlungsnetz
empfangen wurden. Die Datenflusseinheit 110 kann außerdem mit
einer Planungseinrichtung 130 verbunden sein, die so konfiguriert ist,
dass sie Datenrahmen zeitlich plant, die von der Datenflusseinheit 110 an
den Vermittlungspunkt/Anschluss 120 gesendet werden müssen. In
einer Ausführungsform
kann die Planungseinrichtung 130 sich in einem integrierten
Schaltkreis, d.h. einem integrierten Chip, befinden. Außerdem kann
die Datenflusseinheit 110 mit einem eingebetteten Prozessor 150 verbunden
sein, der so konfiguriert ist, dass er von der Datenflusseinheit 110 empfangene
Datenrahmen verarbeitet.
-
2 stellt
die Datenflusseinheit 110 ausführlicher dar. Die Datenflusseinheit 110 kann
eine Empfängersteuereinheit 203 umfassen,
die so konfiguriert ist, dass sie Pakete, d.h.
-
Rahmen,
von Daten, die von einem Vermittlungspunkt (nicht gezeigt) oder
einem Anschluss (nicht gezeigt) in einem Paketvermittlungsnetz empfangen
wurden, empfängt
und zeitweilig speichert. Die Datenflusseinheit 110 kann
außerdem
eine Sendersteuereinheit 201 umfassen, die so konfiguriert ist,
dass sie die Rahmendaten ändert
sowie die geänderten
Rahmendaten an einen Vermittlungspunkt (nicht gezeigt) oder Anschluss
(nicht gezeigt) in einem Paketvermittlungsnetz überträgt. Die Datenflusseinheit 110 kann
außerdem
eine Schnittstellensteuereinheit 202 des eingebetteten
Prozessors umfassen, die so konfiguriert ist, dass sie vom eingebetteten
Prozessor 150 zu verarbeitende Rahmen vermittelt.
-
Pakete,
d.h. Rahmen, von Daten können
von einer Schnittstellensteuereinheit 221 eines Anschlusses/Vermittlungspunktes
empfangen werden. Die Schnittstellensteuereinheit 221 eines
Anschlusses/Vermittlungspunktes kann Daten von einem Vermittlungspunkt
(nicht gezeigt) im Paketvermittlungsnetz empfangen, wenn die Datenflusseinheit 110 in einem
Ausgangsmodus (egress mode) arbeitet. Andernfalls kann die Schnittstellensteuereinheit 221 eines
Anschlusses/Vermittlungspunktes Daten von einem Anschluss (nicht
gezeigt) empfangen, der als eine Schnittstelle zum Paketvermittlungsnetz
arbeitet, wenn die Datenflusseinheit 110 in einem Eingangsmodus
(ingress mode) arbeitet. Von der Datenflusseinheit 110 empfangene
Daten können
zeitweilig in einem Empfangsvorbereitungsbereich-Speicher (receiving
preparation area memory) 220 gespeichert werden, bevor
sie in der Datenspeichereinheit 140 gespeichert werden,
die in Form einer Vielzahl von Sektoren (slices) 205AF vorliegen
kann. Die Sektoren 205AF können insgesamt oder einzeln
als Sektoren 205 bzw. Sektor 205 bezeichnet werden.
Die Anzahl von Sektoren 205 in 2 dient
der Veranschaulichung, und eine Ausführungsform der Datenflusseinheit 110 gemäß der vorliegenden
Erfindung kann eine andere festgelegte Anzahl von Sektoren 205 aufweisen.
Jeder Sektor kann eine Vielzahl von Puffern umfassen. Jeder Sektor
kann einen Speichersektor darstellen, z.B. einen dynamischen Arbeitsspeicher
(Dynamic Random Access Memory, DRAM), so dass Rahmendaten in verschiedene
Puffer in verschiedenen Sektoren geschrieben werden können, um
die Speicherbandbreite zu maximieren. Eine Speicherzuteilungseinrichtung
(memory arbiter) 204 kann so konfiguriert werden, dass
sie Anforderungen, z.B. Lese- und Schreibanforderungen, von der
Empfängersteuereinheit 203,
der Sendersteuereinheit 201 und der Schnittstelleneinheit 202 des
eingebetteten Prozessors sammelt und anschließend den Zugriff auf bestimmte
Datenspeichersektoren, d.h. bestimmte Puffer in bestimmten Sektoren 205, zeitlich
plant. Beispielsweise kann die Empfängersteuereinheit 203 so
konfiguriert werden, dass sie Schreibanforderungen an die Speicherzuteilungseinrichtung 204 ausgibt,
um empfangene Daten in einzelne Puffer in einem bestimmten Sektor 205 zu schreiben.
-
Wie
oben dargelegt wurde, können
Rahmendaten in der Datenspeichereinheit 140, d.h. in einer Vielzahl
von Sektoren 205, gespeichert werden. In einer Ausführungsform
können
Rahmendaten in einem oder mehreren Puffern in einem oder mehreren
Sektoren 205 derart gespeichert werden, dass die Daten in
jedem bestimmten Rahmen neu zusammengesetzt werden können, indem
die Puffer miteinander verkettet werden. Das heißt, die Daten in einem bestimmten
Rahmen können
in einem oder mehreren Puffern gespeichert werden, die in der Reihenfolge miteinander
verkettet werden, in der Daten in den einen oder die mehreren Puffer
geschrieben werden. Die Verkettung von dem einen oder den mehreren Puffern
kann von einer Puffersteuerblockeinheit (Buffer Control Block Unit,
BCBU) 208 in einem mit der Datenflusseinheit 110 verbundenen
Speicher 229 gesteuert werden, z.B. einem statischen Arbeitsspeicher
mit vierfacher Übertragungsgeschwindigkeit (QDR
SRAM). Die BCBU 208 kann so konfiguriert werden, dass sie
die Adressen von jedem des einen oder der mehreren miteinander verketteten
Puffer in der Reihenfolge umfasst, in der Daten in Puffer geschrieben
wurden. Die verschiedenen Puffer, die Daten von denselben Rahmen
umfassen, können
mit Hilfe von in der BCBU 208 gespeicherten Zeigern miteinander
verbunden werden.
-
Wie
oben dargelegt wurde, kann jeder Datenrahmen einem Rahmensteuerblock
(FCB) zugeordnet werden, wobei der FCB den zugeordneten Datenrahmen
beschreibt. Die Rahmensteuerblockeinheit 1 (FCBU1) 209 in
einem Speicher 210, z.B. einem QDR SRAM, kann so konfiguriert
werden, dass sie die in die Felder der FCBs zu schreibenden Daten,
d.h. die Rahmensteuerdaten, speichert. Das heißt, die Datenfelder in FCBs
können
durch Zugreifen auf den Speicher 210, d.h. auf die FCBU1 209 des
Speichers 210, erhalten werden. Zusätzliche Einzelheiten bezüglich der
Datenfelder speichernden FCBU1 209 des Speichers 210 werden
in der Beschreibung von 3 erläutert.
-
Die
in Puffern gespeicherten Rahmendaten können vom eingebetteten Prozessor 150 verarbeitet werden,
indem der Vorsatz jedes zu verarbeitenden Rahmens an den eingebetteten
Prozessor 150 übertragen
wird. Wie oben dargelegt wird, kann jeder Datenrahmen durch einen
FCB dargestellt werden. Diese FCBs können zeitweilig in G-Warteschlangen (GQs) 218 gespeichert
werden. Eine Zuteilungslogik (dispatcher logic) 217 kann
so konfiguriert werden, dass sie den nächsten FCB aus GQs 218 entnimmt. Sobald
die Zuteilungslogik 217 den nächsten FCB aus der Warteschlange
entnimmt, gibt sie eine Leseanforderung an die Speicherzuteilungseinrichtung 204 zum
Lesen der Daten am Beginn des Rahmens aus, d.h. des Rahmenvorsatzes,
der in der Datenspeichereinheit 140 gespeichert ist, die
dem aus der Warteschlange entnommenen FCB zugeordnet ist. Die von
der Zuteilungslogik 217 gelesenen Daten werden sodann vom
eingebetteten Prozessor 150 verarbeitet.
-
Sobald
die Rahmendaten vom eingebetteten Prozessor 150 verarbeitet
wurden, können
die verarbeiteten Rahmendaten von der Logik 216 des eingebetteten
Prozessors zeitweilig in der Datenspeichereinheit 140,
d.h. in den Sektoren 205, gespeichert werden, indem diese
eine Schreibanforderung an die Speicherzuteilungseinrichtung 204 ausgibt,
um die verarbeiteten Rahmendaten in einzelne Puffer in einem oder
mehreren Sektoren 205 zu schreiben.
-
Sobald
die Rahmendaten vom eingebetteten Prozessor 150 verarbeitet
wurden, gibt die Logik 216 desselben außerdem den dem verarbeiteten
Rahmen zugeordneten FCB an die Planungseinrichtung 130 aus.
Die Planungseinrichtung 130 kann so konfiguriert werden,
dass sie Flusswarteschlangen 223 umfasst, die zur Speicherung
von FCBs konfiguriert sind. Außerdem
kann die Planungseinrichtung 130 eine Rahmensteuerblockeinheit 2 (FCBU2) 225 in
einem Speicher 224 umfassen, z.B. einem QDR SRAM, der so
konfiguriert ist, dass er gleichzeitig als FCBU1 209 arbeiten
kann. Die FCBU2 225 kann so konfiguriert werden, dass sie
die in die Felder der FCBs zu schreibenden Daten speichert, wenn
die FCBs sich zeitweilig in Flusswarteschlangen 223 befinden.
Zusätzliche
Einzelheiten bezüglich
der Datenfelder speichernden FCBU2 225 im Speicher 224 der Planungseinrichtung 130 werden
in der Beschreibung von 3 erläutert. Die Planungseinrichtung 130 kann
so konfiguriert werden, dass sie die in Flusswarteschlangen 223 gespeicherten
FCBs an die Einreihungslogik 227 von Zielwarteschlangen (Target
Blade Queues, TBQs) überträgt, die
so konfiguriert ist, dass sie die empfangenen FCBs in TBQs 215 stellt.
-
Die
Entnahme von in TBQs 215 gestellten FCBs aus der Warteschlange
kann von der TBQ-Planungseinrichtung 228 zeitlich geplant
werden, und anschließend
werden diese in den Anschlusssteuerblock (Port Control Block, PCB) 224 geladen.
Die TBQ-Planungseinrichtung 228 kann so konfiguriert werden,
dass sie den nächsten
FCB aus den TBQs 215 entnimmt und diesen FCB in den PCB 224 stellt. Sobald
der nächste
FCB in den PCB 224 gestellt wurde, kann dieser eine Leseanforderung
an die Speicherzuteilungseinrichtung 204 zum Lesen der
Daten am Beginn des Rahmens ausgeben, d.h. des Rahmenvorsatzes,
der in der Datenspeichereinheit 140 gespeichert ist, die
dem aus der Warteschlange entnommenen FCB zugeordnet ist. Die vom
PCB 224 gelesenen Daten können zeitweilig im Datenvorbereitungsbereich-Speicher
(data preparation area memory) 214 gespeichert werden,
bevor die verarbeiteten Rahmendaten an einen Vermittlungspunkt (nicht gezeigt)
oder einen Anschluss (nicht gezeigt) in einem Paketvermittlungsnetz übertragen
werden. Der Klarheit halber sei darauf hingewiesen, dass der PCB 224 so
konfiguriert werden kann, dass er in jeder einzelnen Leseanforderung
einen Teil der im verarbeiteten Rahmen gespeicherten Daten liest.
Das heißt,
die gesamten im verarbeiteten Rahmen gespeicherten Daten können im
mehreren vom PCB 224 bereitgestellten Leseanforderungen
gelesen werden. Sobald alle im verarbeiteten Rahmen gespeicherten
Daten gelesen wurden, kann die Datenspeichereinheit 140 zusätzliche
Rahmendaten speichern.
-
Die
Sendersteuereinheit 201 kann außerdem einen Rahmenänderungs-Vorbereitungsbereichspeicher
(frame alteration preparation area memory) 213 umfassen,
der so konfiguriert ist, dass er Befehle zum Ändern der zeitweilig im Datenvorbereitungsbereichspeicher 214 gespeicherten
verarbeiteten Rahmen empfängt.
Diese Befehle werden allgemein als Rahmenänderungsbefehle bezeichnet,
die vom eingebetteten Prozessor 150 ausgegeben und von
der Logik 216 des eingebetteten Prozessors in einem bestimmten
Bereich in einem bestimmten Puffer gespeichert werden, wie in der
US-Patentanmeldung
mit der Seriennummer 09/792 557 ausführlicher beschrieben wird.
In einer Ausführungsform kann
der PCB 224 so konfiguriert werden, dass er die in einem
bestimmten Bereich in einem bestimmten Puffer gespeicherten Rahmenänderungsbefehle
abruft und sie im Rahmenänderungs-Vorbereitungsbereichspeicher 213 speichert.
Eine Rahmenänderungs-
(FA-) Logikeinheit 212 kann so konfiguriert werden, dass
sie die im Rahmenänderungs-Vorbereitungsbereichspeicher 213 gespeicherten
Befehle ausführt,
um den Inhalt der zeitweilig im Datenvorbereitungsbereichspeicher 214 gespeicherten
verarbeiteten Rahmen zu ändern.
Sobald die FA-Logik 212 den Inhalt der verarbeiteten Rahmen
geändert
hat, können
die geänderten
verarbeiteten Rahmen durch eine Vermittlungspunkt/Anschlussschnittstelleneinheit 211 übertragen
werden. Die Vermittlungspunkt-/Anschlussschnittstelleneinheit 211 kann Daten
an einen Anschluss (nicht gezeigt) übertragen, der als Schnittstelle
zum Paketvermittlungsnetz arbeitet, wenn die Datenflusseinheit 110 in
einem Ausgangsmodus arbeitet. Andernfalls kann die Vermittlungspunkt-/Anschlussschnittstelleneinheit 211 Daten
an einen Vermittlungspunkt (nicht gezeigt) im Paketvermittlungsnetz übertragen,
wenn die Datenflusseinheit 110 in einem Eingangsmodus arbeitet.
-
Außerdem kann
die Datenflusseinheit 110 eine Puffersteuerblock- (BCB-)
Zuteilungseinrichtung 207 umfassen, die so konfiguriert
ist, dass sie eine Zuweisungsentscheidung für verschiedene BCB-Anforderungen
von der Sendersteuereinheit 210, der Schnittstellensteuereinheit 202 des
eingebetteten Prozessors und der Empfängersteuereinheit 203 zum
Lesen aus dem oder Schreiben in den BCB 208 trifft. Die
BCB-Zuteilungseinrichtung 207 kann
so konfiguriert werden, dass sie verschiedene Zugriffe zeitlich
plant, um die Speicherbandbreite so wirtschaftlich wie möglich zu
nutzen. Die Datenflusseinheit 110 kann außerdem eine
Rahmensteuerblock- (FCB-) Zuteilungseinrichtung 206 umfassen,
die so konfiguriert ist, dass sie eine Zuweisungsentscheidung für verschiedene
FCB von der Schnittstellensteuereinheit 202 des eingebetteten
Prozessors, der Empfängersteuereinheit 203 und
der Sendersteuereinheit 201 zum Lesen aus der oder Schreiben
in die FCBU1 209 trifft.
-
Wie
oben dargelegt wird, kann jeder Datenrahmen einem FCB zugeordnet
werden. Wenn die verarbeiteten Rahmen aus der Datenspeichereinheit 140,
z.B. dem DDR DRAM, gelesen und geändert und an einen Vermittlungspunkt
(nicht gezeigt) oder einen Anschluss (nicht gezeigt) im Paketvermittlungsnetz übertragen
werden, stellt der einem solchen verarbeiteten Rahmen zugeordnete
FCB diesen bestimmten Datenrahmen nicht mehr dar. Sobald der FCB
nicht mehr Rahmendaten zugeordnet ist, kann er in einer Warteschlange 222 für freie
FCBs in der FCB-Zuteilungseinrichtung 206 gespeichert werden.
Die Warteschlange 222 für
freie FCBs kann so konfiguriert werden, dass sie eine Vielzahl von FCBs
umfasst, die keinen bestimmten Rahmendaten mehr zugeordnet sind.
Es sei darauf hingewiesen, dass die Warteschlange 222 für freie
FCBs eine beliebige Anzahl von FCBs umfassen kann, die nicht mehr
bestimmten Rahmendaten zugeordnet sind. Sobald die Datenflusseinheit 110 ein
Paket, d.h. einen Rahmen, von Daten empfängt, kann ein Wiederzusammensetzungs-Steuerblock
(Reassembly Control Block, RCB) 219 der Empfängersteuereinheit 203 dem
empfangenen Datenrahmen einen bestimmten FCB aus der Warteschlange 222 für freie
FCBs zuordnen, wobei der neu zugeordnete FCB anschließend vom
RCB 219 in GQs 218 gestellt werden kann.
-
Wie
oben dargelegt wurde, kann jeder Datenrahmen einem FCB zugeordnet
werden. Jeder einem Datenrahmen zugeordnete FCB kann einem oder
mehreren BCBs zugeordnet werden, wobei jeder einem FCB zugeordnete
BCB einem bestimmten Puffer der Datenspeichereinheit 140 zugeordnet
werden kann. Sobald die in einem Puffer der Datenspeichereinheit 140 gespeicherten
verarbeiteten Rahmendaten von der Sendersteuereinheit 201 abgerufen
und anschließend
geändert
und an einen Vermittlungspunkt (nicht gezeigt) oder Anschluss (nicht
gezeigt) im Paketvermittlungsnetz übertragen werden, umfasst der
BCB, der diesem Puffer zugeordnet ist, der keine Rahmendaten mehr
enthält,
keine gültigen Daten
mehr. Das heißt,
der BCB, der dem bestimmten Puffer zugeordnet ist, der keine Rahmendaten mehr
enthält,
enthält
Daten, die nicht nützlich
sind, da der bestimmte dem BCB zugeordnete Puffer keine Rahmendaten
mehr enthält.
Sobald der BCB keine gültigen
Daten mehr enthält,
d.h., sobald die Rahmendaten in einem bestimmten Puffer übertragen wurden,
kann der BCB in einer Warteschlange 226 für freie
BCBs in der BCB-Zuteilungseinrichtung 206 gespeichert
werden. Die Warteschlange 226 für freie BCBs kann so konfiguriert
werden, dass sie eine Vielzahl von BCBs umfasst, die keine gültigen Daten
umfassen. Es sei darauf hingewiesen, dass die Warteschlange 226 für freie
BCBs eine beliebige Anzahl von BCBs umfassen kann, die keine gültigen Daten umfassen.
Sobald die Empfängersteuereinheit 203 empfangene
Rahmendaten in einen bestimmten Puffer der Datenspeichereinheit 140 schreibt,
kann der RCB 219 der Empfängersteuereinheit 203 gültige Daten
in den bestimmten BCB in der Warteschlange 226 für freie
BCBs schreiben, der dem bestimmten Puffer zugeordnet ist, der den
empfangenen Datenrahmen speicherte.
-
Wie
oben dargelegt wurde, kann ein FCB sich zeitweilig in der Warteschlange 222 für freie FCBs
befinden, oder er kann sich zeitweilig in einer der anderen Warteschlangen
befinden, z.B. den GQs 218, den Flusswarteschlangen 223,
den TBQs 215. In der Beschreibung von 3 wird
eine ausführlichere
Beschreibung der "Lebensdauer" des FCB erläutert, wobei
ein FCB anfänglich
in der Warteschlange 222 für freie FCBs gespeichert und
durch verschiedene Warteschlangen, z.B. GQs 218, Flusswarteschlangen 223,
TBQs 215 übertragen
werden kann, bis er in die Warteschlange 222 für freie
FCBs gestellt wird. Ein FCB wird sozusagen aus der Warteschlange 222 für freie
FCBs "entliehen", da er während seiner "Lebensdauer" zeitweilig aus der
Warteschlange 222 für
freie FCBs entnommen werden kann. Es sei darauf hingewiesen, dass
jede der Warteschlangen, z.B. die GQs 218, die Flusswarteschlangen 223,
die TBQs 215, die Warteschlange 222 für freie
FCBs, einen oder mehrere verschiedene FCBs gleichzeitig umfassen
können.
Außerdem
sei darauf hingewiesen, dass die FCBs sich während ihrer "Lebensdauer" zeitweilig in jeder
der Warteschlangen befinden, z.B. in den GQs 218, den Flusswarteschlangen 223,
den TBQs 215, der Warteschlange 222 für freie
FCBs.
-
Wie
im Abschnitt "Hintergrundinformationen" dargelegt wurde,
umfassen FCBs verschiedene Datenfelder, wobei diese von den Speichern 210 und 224 im
Paketprozessor 100 bereitgestellt werden. Das heißt, die
Datenfelder in FCBs werden durch Zugreifen auf den Speicher 210,
z.B. den QDR SRAM, im Paketprozessor 100 erhalten. Daher
wäre es
wünschenswert,
die Anzahl von Daten benötigenden
Feldern in Feldsteuerblöcken
zu begrenzen, um dadurch die Anzahl von Speicherzugriffen und folglich den
Bedarf an Bandbreite in den Speichern 210 und 224 zu
verringern, wie an späterer
Stelle erläutert wird.
-
3 stellt
ein Flussdiagramm eines Verfahrens 300 zur Verringerung
der Anzahl von Speicherzugriffen dar, z.B. auf den Speicher 210 oder
den Speicher 224, um die gewünschten Felddaten in Rahmensteuerblöcken zu
erhalten, wodurch die Leistungsfähigkeit
der Bandbreite des Speichers. z.B. des Speichers 210, des
Speichers 224, verbessert wird. Der Speicher 210 ist
ein der Datenflusseinheit 110 zugeordneter Speicher, wohingegen
der Speicher 224 ein der Planungseinrichtung 130 zugeordneter
Speicher ist.
-
Wie
oben dargelegt wurde, kann jeder Datenrahmen einem Rahmensteuerblock
(FCB) zugeordnet werden. In einer Ausführungsform der vorliegenden
Erfindung kann ein logischer FCB als zwei verschiedene Steuerblöcke dargestellt
werden, da es die beiden Speicher 210 und 224 gibt.
Beispielsweise kann ein Basis-FCB (BFCB) dem Speicher 210 zugeordnet
werden. Ein Fluss-FCB (FFCB) kann dem Speicher 224 zugeordnet
werden.
-
Diese
beiden verschiedenen Steuerblöcke, d.h.
der BFCB und der FFCB, können
dieselbe Speicheradresse, d.h. physische Speicheradresse, gemeinsam
nutzen, die in den Feldern der beiden verschiedenen Steuerblöcke bereitzustellenden
Daten können
sich jedoch in gesonderten Speichern befinden, z.B. im Speicher 210,
im Speicher 224.
-
Im
Schritt 301 kann ein in der Warteschlange 222 für freie
FCBs der FCB-Zuteilungseinrichtung 206 befindlicher FCB
vom RCB 219 aus derselben entnommen werden. 4 stellt
die Felder des BFCB 400 des in der Warteschlange 222 für freie FCBs
befindlichen FCB dar. Der BFCB 400 kann zwei Einträge oder
Zeilen umfassen, wobei jeder Eintrag 36 Bit groß ist. Es sei darauf hingewiesen,
dass der BFCB 400 eine beliebige Anzahl von Feldern und eine
beliebige Anzahl von Zeilen umfassen kann, die eine beliebige Anzahl
von Bits umfassen, und dass 4 der Veranschaulichung
dient.
-
Der
BFCB 400 des in der Warteschlange 222 für freie
FCBs befindlichen FCB kann zwei Felder umfassen, z.B. NFA (Nächste FCB-Adresse)
und ECC (Fehlerkorrekturcode). Das NFA-Feld zeigt auf die nächste FCB-Adresse,
wodurch die Verkettung von FCBs ermöglicht wird. Das ECC-Feld kann
den Code für
den Fehlerkorrekturcode umfassen, wie in der US-Patentanmeldung
mit der Seriennummer 09/792 533 beschrieben wird.
-
5 stellt
die Felder des FFCB 500 des in der Warteschlange 222 für freie
FCBs befindlichen FCB dar. Der FFCB 500 kann einen Eintrag
oder eine Zeile umfassen, die 36 Bits umfasst. Es sei darauf hingewiesen,
dass der FFCB 500 eine beliebige Anzahl von Feldern und
eine beliebige Anzahl von Zeilen umfassen kann, die eine beliebige
Anzahl von Bits umfassen, und dass 5 der Veranschaulichung
dient.
-
Der
FFCB 500 des in der Warteschlange 222 für freie
FCBs befindlichen FCB kann zwei Felder umfassen, z.B. NFA, "Bytezählwert" (Byte Count, BCNT)
des einen oder der mehreren dem FCB zugeordneten Puffer sowie ein
Paritätsbit
(PTY). Das NFA-Feld kann einen Zeiger auf die nächste FCB-Adresse umfassen,
wodurch die Verkettung der FCBs in der Warteschlange 222 für freie
FCBs ermöglicht
wird. Das BCNT-Feld kann die Bytezählwertlänge des einen oder der mehreren
dem FCB zugeordneten BCBs umfassen. Auf die FCBU2 225 des Speichers 224 kann
jedoch nicht zugegriffen werden, um Daten zur Speicherung in den
Feldern des FFCB 500 des in der Warteschlange 222 für freie
FCBs befindlichen FCB abzurufen, da der FFCB 500 des in der
Warteschlange 222 für
freie FCBs befindlichen FCB möglicherweise
keinem Datenrahmen zugeordnet ist. Das heißt, die Felder des FFCB 500 des
in der Warteschlange 222 für freie FCBs befindlichen FCB sind
bedeutungslos, und daher besteht keine Notwendigkeit zum Zugriff
auf die FCBU2 225 des dem FFCB 500 zugeordneten
Speichers 224. Zusätzliche Einzelheiten
bezüglich
der Zuordnung eines FCB zu einem oder mehreren BCBs sowie bezüglich der
in den Feldern von FCBs gespeicherten Daten werden in der US-Patentanmeldung
mit der Seriennummer 09/791 336 beschrieben. Einzelheiten des Paritätsbits in
einem FCB werden in der US-Patentanmeldung mit der Seriennummer
09/792 533 bereitgestellt.
-
Daten
können
im BFCB 400 und nicht im FFCB 500 gespeichert
werden, da die Warteschlange 222 für freie FCBs von der Datenflusseinheit 110 und
nicht von der Planungseinrichtung 130 bearbeitet wird,
wie an späterer
Stelle ausführlicher
erläutert wird.
Daher können
die Felder im BFCB 400 des in der Warteschlange 222 für freie
FCBs befindlichen FCB gültige
Daten umfassen; wohingegen die Felder im FFCB 500 des in
der Warteschlange 222 für
freie FCBs befindlichen FCB ungültige
Daten umfassen können.
-
Wenn
die Datenflusseinheit 110 durch die Anschluss-/Vermittlungspunkt-Schnittstelleneinheit 221 Rahmendaten
von einem Vermittlungspunkt (nicht gezeigt) in einem Paketvermittlungsnetz
oder einem als Schnittstelle zu einem Paketvermittlungsnetz arbeitenden
Anschluss (nicht gezeigt) empfängt, wird
durch den RCB 219 der Datenflusseinheit 110 ein
FCB aus der Warteschlange 222 für freie FCBs entnommen, um
die empfangenen Rahmendaten im Schritt 301 einem FCB zuzuordnen,
wie oben dargelegt wurde. Der FCB wird vom RCB 219 aus
der Warteschlange 222 für
freie FCBs entnommen, indem dieser eine Leseanforderung an die FCBU1 209 des Speichers 210 ausgibt,
um Daten für
die Felder NFA und ECC im BFCB 400 des FCB in der Warteschlange 222 für freie
FCBs abzurufen. Der RCB 219 der Datenflusseinheit 110 kann
eine Leseanforderung nur an die FCBU1 209 des Speichers 210 und
nicht an die FCBU2 225 des Speichers 224 ausgeben,
da der Speicher 210 der Datenflusseinheit 110 und
der Speicher 224 der Planungseinrichtung 130 zugeordnet
ist. Daher greift der RCB 219 nicht auf die FCBU2 225 des
Speichers 224 zu, um Daten für die Felder, z.B. NFA, BCNT,
des FFCB 500 des in der in der Warteschlange 222 für freie
FCBs befindlichen FCB abzurufen.
-
Indem
nicht auf den Speicher 224 zugegriffen wird, wird die Leistungsfähigkeit
von dessen Bandbreite verbessert.
-
Im
Schritt 302 kann der aus der Warteschlange 222 für freie
FCBs entnommene FCB vom RCB 219 in GQs 218 gestellt
werden. 6 stellt die Felder des BFCB 600 des
in GQs 218 befindlichen FCB dar. Der BFCB 600 kann
zwei Einträge
umfassen, wobei jeder Eintrag 36 Bit groß ist. Es sei darauf hingewiesen,
dass der BFCB 600 eine beliebige Anzahl von Einträgen umfassen
kann, die eine beliebige Anzahl von Bits umfassen können, und
dass 6 der Veranschaulichung dient.
-
Der
BFCB 600 des in GQs 218 befindlichen FCB kann
zwei Felder umfassen, z.B. "Nächste FCB-Adresse" (NFA), "Bytezählwertlänge" (BCNT) und ein Paritätsbit (PTY)
im ersten Eintrag. Der zweite Eintrag des BFCB 600 des
in GQs 218 befindlichen FCB kann drei Felder umfassen,
z.B. "Erste BCB-Adresse" (FBA), "Startbyteposition" (Starting Byte Position,
SBP) des Puffers, der dem ersten dem FCB zugeordneten BCB zugeordnet
ist, "Endbyteposition" (Ending Byte Position,
EBP) des Puffers, der dem ersten dem FCB zugeordneten BCB zugeordnet ist,
sowie ein Paritätsbit
(PTY), ein FCB-Typbit (FCB Type bit, FTO) und ein Abbruchbit (Abort
bit, ABOR). Das NFA-Feld kann auf die nächste FCB-Adresse in GQs 218 zeigen,
wodurch die Verkettung von FCBs in GQs 218 ermöglicht wird.
Das BCNT-Feld kann die Bytezählwertlänge des
einen oder der mehreren dem FCB zugeordneten BCBs umfassen. Das
FBA-Feld kann die Adresse des ersten dem FCB zugeordneten BCB umfassen.
Das SBP-Feld kann die Startbyteposition des Puffers umfassen, der
dem ersten dem FCB zugeordneten BCB zugeordnet ist. Das EBP-Feld kann die Endbyteposition
des Puffers umfassen, der dem ersten dem FCB zugeordneten BCB zugeordnet
ist. Wie oben dargelegt wurde, werden zusätzliche Einzelheiten bezüglich der
in den Feldern von FCBs gespeicherten Daten, z.B. von FBA, SBP, EBP,
in der US-Patentanmeldung mit der Seriennummer 09/791 336 beschrieben.
Das FTO-Bit kann den Typ des FCB umfassen. Das ABOR-Bit kann anzeigen,
dass die dem FCB zugeordneten Rahmendaten auf eine Ausnahmebedingung
treffen und dass der FCB nicht als gültig betrachtet werden darf.
-
7 stellt
die Felder des FFCB 700 des in GQs 218 befindlichen
FCB dar. Der FFCB 700 kann einen Eintrag umfassen, der
36 Bit groß ist.
Es sei darauf hingewiesen, dass der FFCB 700 eine beliebige
Anzahl von Einträgen
umfassen kann, die eine beliebige Anzahl von Bits umfassen, und
dass 7 der Veranschaulichung dient.
-
Der
FFCB 700 des in GQs 218 befindlichen FCB kann
zwei Felder, z.B. NFA, "Rahmenbytezählwert" (BCNT), sowie ein
Paritätsbit
(PTY) umfassen. Das NFA-Feld kann auf die nächste FCB-Adresse zeigen, wodurch
die Verkettung der FCBs in GQs 218 ermöglicht wird. Das BCNT-Feld
kann die Bytezählwertlänge des
einen oder der mehreren dem FCB zugeordneten BCBs umfassen. Auf
die FCBU2 225 des Speichers 224 kann jedoch nicht
zugegriffen werden, um Daten abzurufen, die in den Feldern des FFCB 700 des
in GQs 218 befindlichen FCB gespeichert werden müssen, da
der FFCB 700 des in GQs 218 befindlichen FCB möglicherweise
keinem Datenrahmen zugeordnet ist. Das heißt, die Felder des FFCB 700 des
in GQs 218 befindlichen FCB sind bedeutungslos, und daher
besteht keine Notwendigkeit zum Zugriff auf die FCBU2 225 des
Speichers 224, der dem FFCB 700 zugeordnet ist.
-
Daten
können
im BFCB 600 und nicht in FFCB 700 gespeichert
werden, da die GQs 218 von der Datenflusseinheit 110 und
nicht von der Planungseinrichtung 130 bearbeitet werden,
wie an späterer
Stelle ausführlicher
erläutert
wird. Daher können
die Felder im BFCB 600 des in GQs 218 befindlichen
FCB gültige
Daten umfassen; wohingegen die Felder im FFCB 700 des in
GQs 218 befindlichen FCB ungültige Daten umfassen können.
-
Wie
oben dargelegt wurde, stellt der RCB 219 den aus der Warteschlange 222 für freie
FCBs entnommenen FCB in GQs 218. Der RCB 219 kann zwei
Schreibanforderungen an die FCBU1 209 des Speichers 210 ausgeben,
um die Daten in die Felder des BFCB 600 des FCB in GQs 218 zu
schreiben. Die erste Schreibanforderung besteht darin, die Daten
in die Felder des ersten Eintrags zu schreiben, z.B. in NFA, BCNT.
Die zweite Schreibanforderung besteht darin, die Daten in die Felder
des zweiten Eintrags zu schreiben, z.B. in FBA, SBP, EBP. Der RCB 219 kann
zwei Schreibanforderungen lediglich an die FCBU1 209 des
Speichers 210 und nicht an die FCBU2 225 des Speichers 224 ausgeben,
da der Speicher 210 der Datenflusseinheit 110 und
der Speicher 224 der Planungseinrichtung 130 zugeordnet ist.
Daher greift der RCB 219 nicht auf die FCBU2 225 des
Speichers 224 zu, um Daten für die Felder, z.B. für NFA, BCNT,
des FFCB 500 des in der Warteschlange 222 für freie
FCBs befindlichen FCB abzurufen. Indem nicht auf den Speicher 224 zugegriffen wird,
wird die Leistungsfähigkeit
von dessen Bandbreite verbessert.
-
Im
Schritt 303 kann der FCB in GQs 218 von der Zuteilungseinrichtungslogik 217 aus
der Warteschlange entnommen werden, so dass die dem FCB zugeordneten
Rahmendaten vom eingebetteten Prozessor 150 verarbeitet
werden, wie in der Beschreibung von 2 erläutert wird.
Die Zuteilungseinrichtungslogik 217 kann zwei Leseanforderungen
an die FCBU1 209 des Speichers 210 ausgeben, um
die Daten in den Feldern des BFCB 600 des FCB in GQs 218 zu
lesen. Die erste Leseanforderung kann darin bestehen, die Daten
in den Feldern des ersten Eintrags zu lesen, z.B. in NFA, BCNT.
Die zweite Leseanforderung besteht darin, die Daten in den Feldern des
zweiten Eintrags zu lesen, z.B. in FBA, SBP, EBP. Die Zuteilungseinrichtungslogik 217 kann
zwei Leseanforderungen ausschließlich an die FCBU1 209 des
Speichers 210 und nicht an die FCBU2 225 des Speichers 224 ausgeben,
da der Speicher 210 der Datenflusseinheit 110 und
der Speicher 224 der Planungseinrichtung 130 zugeordnet
ist. Das heißt, die
Zuteilungseinrichtungslogik 217 kann Leseanforderungen
nur an die FCBU1 209 des Speichers 210 und nicht
an die FCBU2 des Speichers 224 ausgeben, da die Daten in
den Feldern des FFCB 700 des FCB in GQs 218 bedeutungslose,
d.h. ungültige
Daten sind. Indem nicht auf den Speicher 224 zugegriffen
wird, wird die Leistungsfähigkeit
von dessen Bandbreite verbessert.
-
Im
Schritt 304 kann der FCB in Flusswarteschlangen 223 in
der Planungseinrichtung 130 gestellt werden. Wie oben dargelegt
wird, gibt die Logik 216 des eingebetteten Prozessors den
den verarbeiteten Rahmendaten zugeordneten FCB an die Planungseinrichtung 130 aus.
Die Planungseinrichtung 130 kann so konfiguriert werden,
dass sie die empfangenen FCBs in Flusswarteschlangen 223 speichert. 8 stellt
die Felder des BFCB 800 des in Flusswarteschlangen 223 befindlichen
FCB dar. Der BFCB kann zwei Einträge umfassen, wobei jeder Eintrag
36 Bit groß ist.
Es sei darauf hingewiesen, dass der BFCB 600 eine beliebige
Anzahl von Feldern und eine beliebige Anzahl von Zeilen umfassen
kann, die eine beliebige Anzahl von Bits umfassen, und dass 8 der
Veranschaulichung dient.
-
Der
BFCB 800 des in Flusswarteschlangen 223 befindlichen
FCB kann ein Feld im ersten Eintrag, z.B. "Nächste
Rahmensteuerpufferadresse" (NFA),
und drei Felder im zweiten Eintrag umfassen, z.B. "Erste BCB-Adresse" (FBA), "Startbyteposition" (SBP) des dem ersten
BCB zugeordneten Puffers, wobei der erste BCB dem FCB zugeordnet
ist, "Endbyteposition" (EBP) des dem ersten
BCB zugeordneten Puffers, wobei der erste BCB dem FCB zugeordnet
ist. Das NFR-Feld
kann auf die nächste FCB-Adresse
in Flusswarteschlangen 223 zeigen, wodurch die Verkettung
von FCBs in Flusswarteschlangen 223 ermöglicht wird. Das FBA-Feld kann die
Adresse des ersten dem FCB zugeordneten BCB umfassen. Das SBP-Feld kann die Startbyteposition des
Puffers umfassen, der dem ersten dem FCB zugeordneten BCB zugeordnet
ist. Das EBP-Feld kann die Endbyteposition des Puffers umfassen,
der dem ersten dem FCB zugeordneten BCB zugeordnet ist. Auf die
FCBU1 209 des Speichers 210 kann jedoch nicht
zugegriffen werden, um Daten abzurufen, die in den Feldern des BFCB 800 des
in Flusswarteschlangen 223 befindlichen FCB gespeichert
werden müssen,
da der BFCB 800 des in Flusswarteschlangen 223 befindlichen
FCB möglicherweise
keinem Datenrahmen zugeordnet ist. Das Feld im ersten Eintrag des
BFCB 800 des in Flusswarteschlangen 223 befindlichen
FCB kann Daten umfassen, die bedeutungslos sind, und die Felder
im zweiten Eintrag können
wichtige Daten umfassen. In der Folge besteht keine Notwendigkeit
zum Zugriff auf die FCBU1 209 des dem BFCB 800 zugeordneten
Speichers 210.
-
Das
heißt,
die Felder des BFCB 800 des in Flusswarteschlangen 223 befindlichen
FCB sind bedeutungslos, und daher besteht keine Notwendigkeit zum
Zugriff auf die FCBU1 209 des dem BFCB 800 zugeordneten
Speichers 210.
-
9 stellt
die Felder des FFCB 900 des in Flusswarteschlangen 223 befindlichen
FCB dar. Der FFCB 900 kann einen 36 Bit großen Eintrag
umfassen. Es sei darauf hingewiesen, dass der FFCB 900 eine
beliebige Anzahl von Feldern und eine beliebige Anzahl von Zeilen
umfassen kann, die eine beliebige Anzahl von Bits umfassen, und
dass 9 der Veranschaulichung dient.
-
Der
FFCB 900 des in Flusswarteschlangen 223 befindlichen
FCB kann zwei Felder, z.B. NFA und "Rahmenbytezählwert" (BCNT), sowie ein Paritätsbit (PTY)
umfassen. Das NFA-Feld kann auf die nächste FCB-Adresse zeigen, wodurch
die Verkettung der FCBs in Flusswarteschlangen 223 ermöglicht wird. Das
BCNT-Feld kann die Bytezählwertlänge des
einen oder der mehreren dem FCB zugeordneten BCBs umfassen.
-
Daten
können
im FFCB 900 und nicht im BFCB 800 gespeichert
werden, da die Flusswarteschlangen 223 von der Planungseinrichtung 130 und nicht
von der Datenflusseinheit 110 bearbeitet werden, wie an
späterer
Stelle ausführlicher
erläutert wird.
-
Wie
oben dargelegt wurde, gibt die Logik 216 des eingebetteten
Prozessors nach der Verarbeitung der Rahmendaten den den verarbeiteten
Rahmendaten zugeordneten FCB an die Planungseinrichtung 130 aus.
Die Planungseinrichtung 130 kann so konfiguriert werden,
dass sie die empfangenen FCBs im Schritt 304 in Flusswarteschlangen 223 stellt.
Die Planungseinrichtung 130 kann eine Schreibanforderung
an die FCBU2 225 des Speichers 224 ausgeben, um
die Daten in die Felder des FFCB 900 des FCB in Flusswarteschlangen 223 zu schreiben.
Die Schreibanforderung kann darin bestehen, die Daten in die Felder
des FFCB 900 zu schreiben, z.B. in NFA, BCNT. Die Planungseinrichtung 130 kann
eine Leseanforderung nur an die FCBU2 225 des Speichers 224 und
nicht an die FCBU1 209 des Speichers 210 ausgeben,
der Speicher 224 der Planungseinrichtung 130 und
der Speicher 210 der Datenflusseinheit 110 zugeordnet
ist. Indem nicht auf den Speicher 210 zugegriffen wird,
wird die Leistungsfähigkeit
von dessen Bandbreite verbessert.
-
Im
Schritt 305 kann der FCB in Flusswarteschlangen 223 von
der Planungseinrichtung 130 aus der Warteschlange entnommen
werden. Die Planungseinrichtung 130 kann eine Leseanforderung
an die FCBU2 225 des Speichers 224 ausgeben, um
die Daten in den Feldern des FFCB 900 des FCB in Flusswarteschlangen 223 zu
lesen. Die Leseanforderung besteht darin, die Daten in den Feldern
des FFCB 900 zu lesen, z.B. in NFR, BCNT. Die Planungseinrichtung 130 kann
einen Leseanforderung nur an die FCBU2 225 des Speichers 224 und
nicht an die FCBU1 209 des Speichers 210 ausgeben,
da der Speicher 224 der Planungseinrichtung 130 und der
Speicher 210 der Datenflusseinheit 110 zugeordnet
ist. Das heißt,
die Planungseinrichtung 130 kann eine Leseanforderung an
die FCBU2 225 des Speichers 224 und nicht an die
FCBU1 209 des Speichers 210 ausgeben, da die Daten
in Feldern des BFCB 800 des FCB in Flusswarteschlangen
bedeutungslose, d.h. ungültige
Daten sind. Indem nicht auf den Speicher 210 zugegriffen
wird, wird die Leistungsfähigkeit
von dessen Bandbreite verbessert.
-
Im
Schritt 306 kann der aus Flusswarteschlangen 223 entnommene
FCB von der TBQ-Einreihungslogik 227 der Sendersteuereinheit 201 in TBQs 215 gestellt
werden. 10 stellt die Felder des BFCB 1000 des
in TBQs 215 befindlichen FCB dar. Der BFCB 1000 kann
zwei Einträge
umfassen, wobei jeder Eintrag 36 Bit groß ist. Es sei darauf hingewiesen,
dass der BFCB 1000 eine beliebige Anzahl von Feldern und
eine beliebige Anzahl von Zeilen umfassen kann, die eine beliebige
Anzahl von Bits umfassen, und dass 10 der
Veranschaulichung dient.
-
Der
BFCB 1000 des in TBQs 215 befindlichen FCB kann
zwei Felder im ersten Eintrag, z.B. "Nächste
Rahmensteuerpufferadresse" (NFA), "Bytezählwertlänge" (BCNT) des einen
oder der mehreren dem FCB zugeordneten BCBs sowie ein Paritätsbit (PTY),
und vier Felder, z.B. "Erste
BCB-Adresse" (FBA), "Startbyteposition" (SBP) des Puffers,
der dem ersten dem FCB zugeordneten BCB zugeordnet ist, "Endbyteposition" (EBP) des Puffers,
der dem ersten dem FCB zugeordneten BCB zugeordnet ist, "Rahmentyp" (FT) sowie ein Paritätsbit (PTY)
im zweiten Eintrag umfassen. Das NFA-Feld kann auf die nächste FCB-Adresse
in TBQs 215 zeigen, wodurch die Verkettung von FCBs in
TBQs 215 ermöglicht
wird. Das BCNT-Feld
kann die Bytezählwertlänge des
einen oder der mehreren dem FCB zugeordneten BCBs umfassen. Das
FBA-Feld kann die Adresse des ersten dem FCB zugeordneten BCB umfassen.
Das SBP-Feld kann
die Startbyteposition des Puffers umfassen, der dem ersten dem FCB
zugeordneten BCB zugeordnet ist. Das EBP-Feld kann die Endbyteposition
des Puffers umfassen, der dem ersten dem FCB zugeordneten BCB zugeordnet
ist. Das FT-Feld kann den Typ des FCB umfassen.
-
11 stellt
die Felder des FFCB 1100 des in TBQs 215 befindlichen
FCB dar. Der FFCB kann einen 36 Bit großen Eintrag umfassen. Es sei
darauf hingewiesen, dass der FFCB 1100 eine beliebige Anzahl
von Feldern und eine beliebige Anzahl von Zeilen umfassen kann,
die eine beliebige Anzahl von Bits umfassen, und dass 11 der
Veranschaulichung dient.
-
Der
FFCB 1100 des in TBQs 215 befindlichen FCB kann
zwei Felder, z.B. NFA, "Bytezählwertlänge" (BCNT) des einen
oder der mehreren dem FCB zugeordneten BCBs sowie ein Paritätsbit (PTY) umfassen.
Das NFA-Feld kann auf die nächste FCB-Adresse
zeigen, wodurch die Verkettung der FCBs in TBQs 215 ermöglicht wird.
Das BCNT-Feld kann die Bytezählwertlänge des
einen oder der mehreren dem FCB zugeordneten BCBs umfassen. Auf die
FCBU2 225 des Speichers 224 kann jedoch nicht zugegriffen
werden, um Daten abzurufen, die in den Feldern des FFCB 1100 des
in TBQs 215 befindlichen FCB gespeichert werden müssen, da
der FFCB 1100 des in TBQs 215 befindlichen FCB
möglicherweise
keinem Datenrahmen zugeordnet ist. Das heißt, die Felder des FCB 1100 des
in TBQs 215 befindlichen FCB sind bedeutungslos, und daher
besteht keine Notwendigkeit zum Zugriff auf die FCBU2 225 des
dem FFCB 1100 zugeordneten Speichers 224.
-
Daten
können
im BFCB 1000 und nicht im FFCB 1100 gespeichert
werden, da die TBQs 215 von der Datenflusseinheit 110 und
nicht von der Planungseinrichtung 130 bearbeitet werden,
wie an späterer
Stelle ausführlicher
erläutert
wird. Daher können
die Felder des BFCB 1000 des in TBQs 215 befindlichen
FCB gültige
Daten umfassen; wohingegen die Felder des FFCB 1100 des
in TBQs 215 befindlichen FCB möglicherweise keine gültigen Daten
umfassen.
-
Wie
oben dargelegt wurde, stellt die TBQ-Einreihungslogik 227 den
von der Planungseinrichtung 130 empfangenen FCB in TBQs 215.
Die TBQ-Einreihungslogik 227 kann eine Schreibanforderung
an die FCBU1 209 des Speichers 210 ausgeben, um
die Daten in die Felder, z.B. NFA, BCNT, des BFCB 1000 des
FCB in TBQs 215 zu schreiben. Die TBQ-Einreihungslogik 227 kann
von der Planungseinrichtung 130 eine Kopie der Daten im
BCNT-Feld im FFCB 900 empfangen, wenn die Sendersteuereinheit 201 den
FCB von der Planungseinrichtung 130 empfängt. Die
TBQ-Einreihungslogik 227 kann sodann
so konfiguriert werden, dass sie die Daten im BCNT-Feld des FFCB 900 in
das BCNT-Feld des BFCB 1000 schreibt. Die TBQ-Einreihungslogik 227 gibt
keine weitere Schreibanforderung zum Schreiben der Daten in die
Felder des zweiten Eintrags aus, da die Daten in den Feldern des
zweiten Eintrags des BFCB 800 nicht aktualisiert wurden,
während
sie sich in Flusswarteschlangen 223 befanden. Anschließend greift
die TBQ-Einreihungslogik 227 nur einmal anstatt zweimal
auf die FCBU1 209 des Speichers 210 zu, wodurch
die Leistungsfähigkeit
der Bandbreite des Speichers 210 verbessert wird. Außerdem kann die
TBQ-Einreihungslogik 227 eine Schreibanforderung nur an
die FCBU1 209 des Speichers 210 und nicht an die
FCBU2 225 des Speichers 224 ausgeben, da der Speicher 210 der
Datenflusseinheit 110 und der Speicher 224 der
Planungseinrichtung 130 zugeordnet ist. Daher greift die
TBQ-Einreihungslogik 227 nicht auf die FCBU2 225 des
Speichers 224 zu, um Daten in die Felder, z.B. NFA, BCNT,
des FFCB 1100 des in TBQs 215 befindlichen FCB
zu schreiben. Indem nicht auf den Speicher 224 zugegriffen
wird, wird die Leistungsfähigkeit
von dessen Bandbreite verbessert.
-
Im
Schritt 307 kann der FCB in TBQs 215 von der TBQ-Planungseinrichtung 228 aus
der Warteschlange entnommen werden, so dass die dem FCB zugeordneten
Rahmendaten von der TBQ-Planungseinrichtung 228 gelesen
werden können,
wie in der Beschreibung von 2 erläutert wird.
Die TBQ-Planungseinrichtung 228 kann
zwei Leseanforderungen an die FCBU1 209 des Speichers 210 ausgeben,
um die Daten in den Feldern des BFCB 1000 des FCB in TBQs 215 zu
lesen. Die erste Leseanforderung kann darin bestehen, die Daten
in den Feldern des ersten Eintrags zu lesen, z.B. in NFA, BCNT.
Die zweite Leseanforderung kann darin bestehen, die Daten in den
Feldern des zweiten Eintrags zu lesen, z.B. in FBA, FT, SBP, EBP.
Die TBQ-Planungseinrichtung 228 kann zwei Leseanforderungen ausschließlich an
die FCBU1 209 des Speichers 210 und nicht an die
FCBU2 225 des Speichers 224 ausgeben, da der Speicher 210 der
Datenflusseinheit 110 und der Speicher 224 der
Planungseinrichtung 130 zugeordnet ist. Daher greift die
TBQ-Planungseinrichtung 228 nicht
auf die FCBU2 225 des Speichers 224 zu, um Daten
für die
Felder, z.B. NFA, BCNT, des FFCB 1100 des in TBQs 215 befindlichen FCB
abzurufen. Indem nicht auf den Speicher 224 zugegriffen
wird, wird die Leistungsfähigkeit
von dessen Bandbreite verbessert.
-
Im
Schritt 308 kann der FCB in die Warteschlange 222 für freie
FCBs der FCB-Zuteilungseinrichtung 206 gestellt werden,
sobald die dem FCB zugeordneten verarbeiteten Rahmendaten durch
die Vermittlungspunkt-/Anschluss-Schnittstellensteuereinheit 211 an
einen Vermittlungspunkt (nicht gezeigt) im Paketvermittlungsnetz
oder an einen als Schnittstelle zum Paketvermittlungsnetz arbeitenden Anschluss
(nicht gezeigt) übertragen
wurden. Die FCB-Zuteilungseinrichtung 206 kann so konfiguriert werden,
dass sie den den übertragenen
Rahmendaten zugeordneten FCB vom PCB 224 der Sendersteuereinheit
empfängt,
wobei der FCB vom PCB 224 in die Warteschlange 222 für freie
FCBs gestellt werden kann.
-
Wie
oben dargelegt wurde, stellt 4 die Felder
des BFCB 400 des in der Warteschlange 222 für freie
FCBs befindlichen FCB dar. Der BFCB 400 des in der Warteschlange 222 für freie
FCBs befindlichen FCB kann zwei Felder umfassen, z.B. NFA (Nächste FCB-Adresse),
ECC (Fehlerkorrekturcode). Das NFA-Feld zeigt auf die nächste FCB-Adresse, wodurch
die Verkettung von FCBs in der Warteschlange 222 für freie
FCBs ermöglicht
wird. Das ECC-Feld kann den Code für den Fehlerkorrekturcode umfassen,
wie in der US-Patentanmeldung mit der Seriennummer 09/792 533 beschrieben
wird.
-
Wie
oben dargelegt wurde, stellt 5 die Felder
des FFCB 500 des in der Warteschlange 222 für freie
FCBs befindlichen FCB dar. Der FFCB 500 kann einen 36 Bit
großen
Eintrag umfassen. Der FFCB 500 des in der Warteschlange 222 für freie FCBs
befindlichen FCB kann zwei Felder, z.B. NFA, "Bytezählwertlänge" (BCNT) des einen oder der mehreren
dem FCB zugeordneten BCBs sowie ein Paritätsbit (PTY) umfassen. Das NFA-Feld
zeigt auf die nächste
FCB-Adresse, wodurch die Verkettung der FCBs in der Warteschlange 222 für freie
FCBs ermöglicht
wird. Das BCNT-Feld kann die Bytezählwertlänge des einen oder der mehreren
dem FCB zugeordneten BCBs umfassen.
-
Daten
können
im BFCB 400 und nicht im FFCB 500 gespeichert
werden, da die Warteschlange 222 für freie FCBs von der Datenflusseinheit 110 und
nicht von der Planungseinrichtung 130 bearbeitet wird,
wie an späterer
Stelle erläutert
wird. Daher können
die Felder im BFCB 400 des in der Warteschlange 222 für freie
FCBs befindlichen FCB gültige Daten
umfassen; wohingegen die Felder im FFCB 500 des in der
Warteschlange 222 für
freie FCBs befindlichen FCB ungültige
Daten umfassen können.
-
Wie
oben dargelegt wurde, kann die FCB-Zuteilungseinrichtung 206 so
konfiguriert werden, dass sie den den übertragenen verarbeiteten Rahmendaten
zugeordneten FCB vom PCB 224 der Sendersteuereinheit empfängt, wobei
der FCB vom PCB 224 in die Warteschlange 222 für freie
FCBs gestellt werden kann. Der PCB 224 kann eine Schreibanforderung
an die FCBU1 209 des Speichers 210 ausgeben, um
Daten für
die Felder NFA und ECC in den BFCB 400 des in der Warteschlange 222 für freie
FCBs befindlichen FCB schreiben. Der PCB 224 kann eine
Schreibanforderung nur an die FCBU1 209 des Speichers 210 und
nicht an die FCBU2 225 des Speichers 224 ausgeben,
da der Speicher 210 der Datenflusseinheit 110 und
der Speicher 224 der Planungseinrichtung 130 zugeordnet ist.
Daher greift der PCB 224 nicht auf die FCBU2 225 des
Speichers 224 zu, um Daten für die Felder, z.B. NFA, BCNT,
des FFCB 500 des in der Warteschlange 222 für freie
FCBs befindlichen FCB abzurufen. Indem nicht auf den Speicher 224 zugegriffen wird,
wird die Leistungsfähigkeit
von dessen Bandbreite verbessert.
-
Es
sei darauf hingewiesen, dass das Verfahren 300 die "Lebensdauer" eines FCB beschreibt. Außerdem sei
darauf hingewiesen, dass das Verfahren die "Lebensdauer" der anderen FCBs im Netzprozessor 100 beschreiben
kann. Des Weiteren sei darauf hingewiesen, dass sich in jeder Warteschlange,
z.B. in den GQs 218, den Flusswarteschlangen 223,
den TBQs 215, der Warteschlange 222 für freie FCBs,
zeitweilig ein oder mehrere verschiedene FCBs gleichzeitig befinden
können.