-
HINTERGRUND
DER ERFINDUNG
-
GEBIET DER
ERFINDUNG
-
Die
vorliegende Erfindung betrifft im Allgemeinen Computer und Netzwerk-Prozessoren
und insbesondere Speichersysteme, die mit den Computern und Netzwerk-Prozessoren
zu verwenden sind.
-
STAND DER
TECHNIK
-
Die
Verwendung von Netzwerkeinheiten wie etwa Schalter, Brücken, Computer,
Netzwerk-Prozessoren usw. zum Übertragen
von Daten in Datenübertragungsnetzwerken
ist nach dem Stand der Technik wohlbekannt. Eine der Anforderungen,
die an diese Einheiten gestellt werden, besteht darin, dass sie
große
Datenmengen transportieren müssen,
was häufig
als Bandbreite bezeichnet wird.
-
Um
diese Bandbreiten-Anforderungen zu erfüllen, sind die Einheiten mit
freien Kanälen
(Clear Channels) versehen. Ein freier Kanal ist ein Kanal mit großer Bandbreite,
der große
Datenmengen bei einem einzelnen Datenfluss überträgt, im Unterschied zu kanalgebundenen
Verbindungen, die mehrere Datenströme mit geringerer Bandbreite
auf einer einzelnen physischen Verbindung befördern.
-
Um
freie Kanäle
mit einer ausreichend großen
Datenzufuhr zu versorgen, sind schnelle Speicher-Teilsysteme erforderlich.
Schnelle Speichersysteme wie etwa statische Arbeitsspeicher (SRAM) usw.
können
verwendet werden, um die Anforderungen der großen Bandbreite zu erfüllen. Diese
Speicher sind jedoch teuer und erhöhen demzufolge der Preis der
Einheiten, in denen sie verwendet werden. Das Kostenproblem wird
weiter verschärft,
wenn derartige teure Speicher verwendet werden sollen, um Speichersysteme
für Computer
und Netzwerk-Prozessoren
aufzubauen.
-
Außer ihrem
hohen Preis besitzen schnelle Speicher des Standes der Technik eine
geringe Speicherdichte. Sie können
lediglich eine begrenzte Datenmenge speichern. Die meisten Anwendungen, insbesondere
jene, die mit dem Internet und anderen Technologien verbunden sind,
erfordern jedoch Speicher oder Speichersysteme mit großer Speicherdichte.
Demzufolge sind selbst schnelle Speicher des Standes der Technik
für viele
Anwendungen nicht geeignet.
-
In
der US-Patentschrift 4 797 815 wird ein System offenbart, bei dem
mehrere Prozessoren über
einen einzelnen Bus auf mehrere Speichermodule zugreifen. Mehrere
Prozessoren können
gleichzeitig über
diesen Bus auf verschiedene Speichermodule in einer verschachtelten
Weise zugreifen.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die
vorliegende Erfindung stellt dementsprechend ein verfahren zum Optimieren
der Speichernutzung bereit, das die folgenden Schritte umfasst: Empfangen
einer Vielzahl von Speicherzugriffanforderungen in einem Speicherzuteiler
(memory arbiter), von denen wenigstens eine Speicherzugriffanforderung
mit einer Prioritätszuordnung
verbunden ist (wobei die Prioritätszuordnung
mit der Anforderung eintreffen oder nach der Ankunft zugewiesen werden
könnte);
Analysieren der Speicherzugriffanforderungen mit einer bestimmten
Prioritätszuordnung
durch den Speicherzuteiler, um den Betrag der erforderlichen Speicherbandbreite
zu ermitteln; und gemeinsames Verwenden des Speicherzugriffs mit wenigstens
einer anderen Anforderung, wenn die Speicherzugriffanforderung mit
der bestimmten Prioritätszuordnung
keine volle Speicherbandbreite erfordert.
-
Es
werden vorzugsweise schnelle Speicher vorgesehen, die kostengünstig sind
und hohe Speicherdichten besitzen. Die in diesem Dokument verwendeten
schnellen Speicher besitzen vorzugsweise eine große Bandbreite
(BW), wodurch große
Datenmengen in einem verhältnismäßig kurzen
Zeitintervall bereitgestellt werden können.
-
Es
wird vorzugsweise zugelassen, dass die Speicherzugriffanforderung
mit der bestimmten Prioritätszuordnung
die volle Speicherbandbreite ausnutzt, wenn die Speicheranforderung
die volle Speicherbandbreite erfordert. In einer Ausführungsform
ist die bestimmte Prioritätszuordnung
die höchste.
-
Der
Speicher wird vorzugsweise mit mehreren Puffern bereitgestellt,
die in wenigstens einer Schicht angeordnet sind und wobei jeder
Puffer in der wenigstens einen Schicht in mehrere Quadworte partitioniert
ist, wobei die Speicheranforderungen von mehreren Anforderern Zugriff
auf die wenigstens eine Schicht suchen.
-
Es
werden vorzugsweise schnelle Speicher bereitgestellt, die kostengünstig sind
und hohe Speicherdichten besitzen. Die in diesem Dokument verwendeten
schnellen Speicher besitzen vorzugsweise eine große Bandbreite
(BW), wodurch große
Datenmengen in einem verhältnismäßig kurzen
Zeitintervall bereitgestellt werden können.
-
Die
Erfindung enthält
vorzugsweise ein Verfahren, dass die Nutzung eines Speichersystems durch
die Betriebsmittel, die dieses Speichersystem verwenden, optimiert.
Die Anforderungen, die Lese- oder Schreibanforderungen sind, von
mehreren Anforderern werden vorzugsweise gebündelt, so dass bei jedem Speicherzugriffzyklus
die maximale zulässige
Informationseinheit gelesen oder geschrieben wird. Dadurch wird
der Datendurchsatz verbessert, wodurch die Verwendung von verhältnismäßig kostengünstigen
Speichern mit hoher Speicherdichte und verhältnismäßig großen Zugriffzeiten wie etwa DDR
DRAM möglich
ist, die zum Aufbau von Speichern für Computer-Netzwerk-Prozessoren
und ähnlichen
Einheiten verwendet werden.
-
Gemäß einer
bevorzugten Ausführungsform enthalten
die Anforderer (d.h. die Anforderer der Speicherzugriffanforderung)
die Empfänger-Steuereinheit,
die Steuereinheit eines Komplexes mit eingebettetem Prozessor (Embedded
Processor Complex (EPC)) und die Sender-Steuereinheit in einem Netzwerk-Prozessor
oder ähnliche
Einheiten. Das Speichersystem enthält vorzugsweise eine Vielzahl
von Puffern, die aus DDR DRAM-Modulen gebildet sind, die in Gruppen,
die als "Schichten" bezeichnet werden,
angeordnet sind. Jeder DDR DRAM ist vorzugsweise in mehrere Puffer
(1 bis N) partitioniert und wird durch eine DRAM-Steuereinheit gesteuert. Jeder Puffer
ist vorzugsweise in Abschnitte partitioniert, die als "Quadworte" bezeichnet werden.
In einer Ausführungsform
ist der Puffer in Quadworte A, B, C und D partitioniert. Sowohl
der Puffer als auch die Quadworte in dem Puffer sind adressierbar.
-
Gemäß einer
bevorzugten Ausführungsform überwacht
ein Speicherzuteiler Anforderungen von der Empfänger-Steuereinheit, der EPC-Steuereinheit und
der Sender-Steuereinheit.
Der Speicherzuteiler verwendet vorzugsweise die Anforderungen, um
einen Speicherzugriffvektor pro Speicherschicht zu bilden. Bei Leseanforderungen
wird die Speicherzugriffpriorität
vorzugsweise der Sender-Steuereinheit gegeben. Wenn die Anforderung
von der Sender-Steuereinheit die volle Speicherbandbreite fordert,
beruht der Speicherzugriffvektor vorzugsweise nur auf der Anforderung
der Sender-Steuereinheit. Wenn weniger als die volle Speicherbandbreite
durch die Sender-Steuereinheit gefordert wird, wird vorzugsweise irgendeine
anstehende Anforderung durch die EPC-Steuereinheit mit der Anforderung
von der Sender-Steuereinheit gemischt, um den Speicherzugriffvektor
pro Schicht zu bilden. Die DRAM-Steuereinheit gibt vorzugsweise
in Reaktion auf den Speicherzugriffvektor einen vollen Puffer mit
Daten, die Daten für
die Sender-Steuereinheit
enthalten (falls ein voller Puffer mit Daten gefordert wurde) oder
Daten für
die Sender-Steuereinheit oder den EPC (falls der Sender weniger
als einen vollen Puffer gefordert hat) aus. Im Wesentlichen wird
jede überschüssige Kapazität, die sich
daraus ergibt, dass die Sender-Steuereinheit weniger
als einen vollen Puffer mit Daten fordert, vorzugsweise der EPC-Steuereinheit
zugewiesen.
-
Gemäß einer
bevorzugten Ausführungsform für eine Schreibanforderung
gibt der Zuteiler der Empfänger-Steuereinheit Priorität. In ähnlicher
Weise wird jede Schreibanforderung, bei der die Empfänger-Steuereinheit
eine geringere Nutzlast als einen vollen Puffer besitzt, mit Daten
von dem EPC aufgefüllt.
-
Folglich
wird vorzugsweise bei jedem Speicherzugriff immer ein voller Puffer
mit Daten geschrieben oder gelesen.
-
Gemäß einem
weiteren Aspekt stellt die Erfindung einen Netzwerk-Prozessor bereit,
mit: einem Speichersystem zum Speichern von Daten; und einem Speicherzuteiler,
der mit dem Speichersystem funktionsmäßig verbunden ist, zum Gewähren des Zugriffs;
wobei der Speicherzuteiler ein oder mehrere Anforderungsregister,
in denen Speicherzugriffanforderungen empfangen werden, wenigstens
ein Prioritätsregister
zum Speichern von Prioritätszuweisungen
für die
Anforderer und eine Steuereinheit, die mit den Anforderungsregistern
und dem Prioritätsregister
funktionsmäßig verbunden
ist, enthält,
wobei die Steuereinheit Schaltungen zum Überwachen von Anforderungen
und Anforderungsprioritäten
enthält,
um Speicherzugriffvektoren zu erzeugen, bei denen zugelassen wird,
dass die Anforderung mit höchster
Priorität
mit wenigstens einer weiteren Speicheranforderung Speicherbandbreite
gemeinsam verwendet, wenn die Anforderung mit höchster Priorität weniger als
die volle Speicherbandbreite fordert.
-
Gemäß einer
Ausführungsform
wird ein Verfahren zum Optimieren der Nutzung eines Speichers bereitgestellt,
das die folgenden Schritte umfasst: a) Bereitstellen des Speichers
mit mehreren Puffern, die in wenigstens einer Schicht angeordnet
sind und wobei jeder Puffer in der wenigstens einen Schicht in mehrere
Quadworte partitioniert ist; b) Annehmen von mehreren Speicheranforderungen
in einem Speicherzuteiler, die einen Zugriff auf die wenigstens
eine Schicht von mehreren Anforderern suchen; c) Zuweisen einer
vorgegebenen Priorität
an jede der Anforderungen durch den Speicherzuteiler; d) Analysieren der
Anforderung mit höchster
Priorität
durch den Speicherzuteiler, um den Anteil der Bandbreite zu erfassen,
der von der Anforderung mit höchster
Priorität
gefordert wird; und e) gemeinsames Verwenden des Speicherzugriffs
mit einer Anforderung mit geringerer Priorität, wenn die Anforderung mit
höchster Priorität keine
volle Speicherbandbreite ausnutzt.
-
Gemäß einer
Ausführungsform
wird ein Verfahren zum Optimieren der Nutzung eines Speichers bereitgestellt,
das die folgenden Schritte umfasst: a) Bereitstellen des Speichers
mit mehreren Puffern, die in wenigstens einer Schicht angeordnet
sind und wobei jeder Puffer in der wenigstens einen Schicht in mehrere
Quadworte partitioniert ist; b) Annehmen von mehreren Speicheranforderungen
in einem Speicherzuteiler, die einen Zugriff auf die wenigstens
eine Schicht von mehreren Anforderern suchen; c) Zuweisen einer
vorgegebenen Priorität
an jede der Anforderungen durch den Speicherzuteiler; d) Analysieren der
Anforderung mit höchster
Priorität
durch den Speicherzuteiler, um den Anteil der Bandbreite zu erfassen,
der von der Anforderung mit höchster
Priorität
gefordert wird; und e) Zulassen, dass die Anforderung mit höchster Priorität die volle
Speicherbandbreite ausnutzt, wenn die Anforderung mit höchster Priorität die volle
Speicherbandbreite fordert oder gemeinsames Verwenden der Speicherbandbreite
mit einer Anforderung mit geringerer Priorität, wenn die Anforderung mit
höchster
Priorität
weniger als die volle Speicherbandbreite benötigt.
-
Zu
den mehreren Anforderern gehören
vorzugsweise eine Empfänger-Steuereinheit,
eine Sender-Steuereinheit und eine Steuereinheit eines Komplexes
mit eingebettetem Prozessor (Embedded Processor Complex (EPC)),
die in einem Netzwerk-Prozessor
funktionsmäßig verbunden
sind. In einer Ausführungsform
besitzt die Sender-Steuereinheit die höchste Priorität. Die Empfänger-Steuereinheit
kann die nächsthöchste Priorität besitzen.
-
In
einer Ausführungsform
verwendet der EPC Speicherbandbreite gemeinsam mit der Sender-Steuereinheit
oder mit der Empfänger-Steuereinheit. Die
Anforderung kann Leseanforderungen oder Schreibanforderungen enthalten.
In einer Ausführungsform
wird die Leseanforderung von der Sender-Steuereinheit erzeugt. In
einer Ausführungsform wird
die Schreibanforderung von der Empfänger-Steuereinheit bereitgestellt.
Lese- und Schreibanforderungen können
von der EPC-Steuereinheit bereitgestellt werden.
-
Gemäß einer
Ausführungsform
wird ein Verfahren zum Optimieren der Nutzung eines Speichers bereitgestellt,
das die folgenden Schritte umfasst: Empfangen von einer Vielzahl
von Speicherzugriffanforderungen in einem Speicherzuteiler; Bereitstellen einer
Prioritätszuordnung
für wenigstens
eine der Speicherzugriffanforderungen in dem Speicherzuteiler; Analysieren
der Speicherzugriffanforderungen mit einer Prioritätszuordnung
durch den Speicherzuteiler, um den Betrag der erforderlichen Speicherbandbreite
zu ermitteln; und Zulassen, dass die Speicherzugriffanforderung
mit der Prioritätszuordnung die
volle Speicherbandbreite verwendet, wenn die Speicheranforderung
mit der Prioritätszuordnung
die volle Speicherbandbreite fordert, oder gemeinsames Verwenden
der Speicherbandbreite mit anderen Anforderungen, wenn die Speicheranforderung
mit der Prioritätszuordnung
weniger als die volle Speicherbandbreite benötigt.
-
Die
Prioritätszuordnung
ist vorzugsweise die höchste.
In einer Ausführungsform
enthält
das gemeinsame Verwenden das Kombinieren der Speicherbandbreite
der Anforderung mit der höchsten
Priorität
mit der Speicherbandbreite einer Anforderung mit niedrigerer Priorität.
-
Gemäß einer
Ausführungsform
wird ein Netzwerk-Prozessor bereitgestellt, mit: einem Speichersystem,
das Daten speichert; und einem Speicherzuteiler, der mit dem Speichersystem
funktionsmäßig verbunden
ist, zum Gewähren
des Zugriffs; wobei der Speicherzuteiler ein oder mehrere Anforderungsregister,
in denen Speicherzugriffanforderungen empfangen werden, wenigstens
ein Prioritätsregister
zum Speichern von Prioritätszuweisungen
für die
Anforderer und eine erste Steuereinheit, die mit den Anforderungsregistern
und dem Prioritätsregister
funktionsmäßig verbunden
ist, enthält,
wobei die Steuereinheit Schaltungen zum Überwachen von Anforderungen
und Anforderungsprioritäten
enthält,
um Speicherzugriffvektoren zu erzeugen, bei denen zugelassen wird,
dass die Anforderung mit höchster
Priorität
die volle Speicherbandbreite verwendet, wenn die Anforderung mit
höchster
Priorität
das fordert, oder um eine Speicherzugriffanforderung zu erzeugen,
bei der die Anforderung mit der höchsten Priorität und eine
Anforderung mit einer niedrigeren Priorität die volle Speicherbandbreite
gemeinsam verwenden.
-
Das
Speichersystem enthält
vorzugsweise mehrere Puffer, die in wenigstens einer Schicht angeordnet
sind, wobei jeder Puffer in Quadworte partitioniert ist. Jede Schicht
ist vorzugsweise mit wenigstens einer Puffer-Steuereinheit funktionsmäßig verbunden.
Jeder Puffer umfasst vorzugsweise 64 Byte, die in vier Quadworte
von jeweils 16 Byte partitioniert sind. Jede Schicht kann aus DDR
DRAM hergestellt sein.
-
Es
wird ferner zwischen eine Empfänger-Steuereinheit
bereitgestellt, die mit dem Speicherzuteiler funktionsmäßig verbunden
ist. Es kann außerdem
eine Sender-Steuereinheit vorhanden sein, die mit dem Speicherzuteiler
funktionsmäßig verbunden
ist. Es kann außerdem
ein Komplex mit eingebettetem Prozessor EPC vorhanden sein, der mit
dem Speicherzuteiler funktionsmäßig verbunden ist.
In der Ausführungsform,
die eine Sender-Steuereinheit enthält, ist vorzugsweise ein Ablaufplaner (scheduler)
vorhanden, der mit dieser funktionsmäßig verbunden ist.
-
In
einer Ausführungsform
führt die
erste Steuereinheit vorzugsweise zum Bilden von Pufferspeicherzugriffvektoren
die folgenden Schritte aus: a) Ausschließen von Schichten, bei denen
ein Auffrischzyklus vorgesehen ist (werden durch jede DRAM-Steuereinheit
angegeben); b) Zuweisen von Schichten für alle R-Anforderungen (Leseanforderungen)
der Sender-Steuereinheit;
c) Ergänzen
von R-Zugriffen von einer entsprechenden EPC-Warteschlange [Schicht;
Quadwort]; d) Zuweisen einer Schicht zu EPC global für Nicht-W-Schichten (Nicht-Schreib-Schichten)
(z.B. die Schicht ist durch alle Schichtausschlussregeln vom Empfänger ausgeschlossen);
e) Zuweisen von Schichten zu W-Anforderungen der Reihe nach zwischen
nicht ausgeschlossenen Schichten, beginnend von der letzten zugewiesenen
Schicht (Schicht, die der Empfänger-Steuereinheit im
vorhergehenden Fenster zugewiesen ist); f) Ergänzen von W-Zugriffen aus einer entsprechenden
EPC-Warteschlange
[Schicht; Quadwort]; und Zuweisen einer Schicht an eine EPC-Anforderung
gemäß der Priorität, die durch
die Gewichtung ausgedrückt
ist.
-
Gemäß einer
Ausführungsform
wird eine Vorrichtung bereitgestellt, mit: einem Speicher, der in N
Sektoren partitioniert ist, wobei N größer als 1 ist; und einer Speicherzuteiler-Steuereinheit,
die mit dem Speicher funktionsmäßig verbunden
ist; wobei die Speicherzuteiler-Steuereinheit
wenigstens zwei Speicherzugriffanforderungen empfängt, die
eine Speicherzugriffpriorität
für die
Anforderungen zuweisen, eine ausgewählte Anforderung dieser Anforderungen
analysiert, um festzustellen, ob die ausgewählte Anforderung der Speicheranforderungen
bei einem bestimmten Speicherzugriffzyklus die volle Speicherbandbreite
verwenden wird, einen Speicherzugriffvektor erzeugt, der der ausgewählten Anforderung
dieser Anforderungen die volle Speicherbandbreite zuweist, wenn
die volle Speicherbandbreite gefordert wurde, und die Speicherbandbreite
mit einer anderen Anforderung gemeinsam verwendet, wenn nicht die
volle Speicherbandbreite verwendet wird.
-
Gemäß einer
Ausführungsform
wird ein Verfahren zum Zugreifen auf einen Speicher bereitgestellt,
das die folgenden Schritte umfasst: a) Empfangen von Leseanforderungen
von einem ersten Anforderer in einem Speicherzuteiler, wobei die Leseanforderung
Informationen enthält,
die einen Abschnitt des Speichers kennzeichnen, aus dem Daten gelesen
werden sollen; b) Feststellen, ob die zurückzugebenden Daten die gesamte
verfügbare
Speicherbandbreite verwenden würden;
und c) Ergänzen
der zurückzugebenden
Daten für
den ersten Anforderer mit Daten für einen zweiten Anforderer,
wenn durch den ersten Anforderer nicht die volle Speicherbandbreite
verwendet wird.
-
Gemäß einer
Ausführungsform
wird ein Verfahren bereitgestellt, das die folgenden Schritte umfasst:
a) Empfangen einer Anforderung von einem ersten Anforderer, der
Zugriff auf einen Speicher sucht, in einem Zuteiler; b) Feststellen,
welcher Abschnitt der Speicherbandbreite als Ergebnis dieser Anforderung
verwendet werden soll; c) Zuweisen der Verwendung der gesamten Speicherbandbreite
an den ersten Anforderer, wenn die Feststellung im Schritt b) die
volle Verwendung der Speicherbandbreite angibt; d) Ergänzen der
Bandbreitenverwendung des ersten Anforderers mit einer Bandbreitenverwendung,
die durch einen zweiten Anforderer gefordert wird, wenn die Feststellung
im Schritt b) angibt, dass die Bandbreitenverwendung des ersten Anforderers
kleiner als die volle Speicherbandbreite ist.
-
Die
Anforderung kann eine Lese- oder eine Schreibanforderung sein. Der
zweite Anforderer enthält
vorzugsweise einen EPC (Komplex mit eingebettetem Prozessor). Der
erste Anforderer enthält
vorzugsweise eine Empfänger-Steuereinheit.
-
Es
wird anerkannt, dass das oben Erwähnte als ein Computerprogramm
realisiert sein könnte.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Eine
bevorzugte Ausführungsform
der vorliegenden Erfindung wird nachfolgend lediglich beispielhaft
und unter Bezugnahme auf die folgenden Zeichnungen beschrieben:
-
1A zeigt
eine Blockschaltbild eines Netzwerk-Prozessors, bei dem eine bevorzugte
Ausführungsform
der vorliegenden Erfindung verwendet wird.
-
1B zeigt
ein Blockschaltbild eines Anforderers des Netzwerk-Prozessors und
eines Speichersystems gemäß den Lehren
einer bevorzugten Ausführungsform
der vorliegenden Erfindung.
-
2 zeigt
ein Blockschaltbild des Speicherzuteilers gemäß den Lehren einer bevorzugten
Ausführungsform
der vorliegenden Erfindung.
-
3 zeigt
gemäß einer
bevorzugten Ausführungsform
der vorliegenden Erfindung eine Prinzipdarstellung, die eine Leseanforderung
veranschaulicht, bei der die volle Speicherbandbreite durch die
Sender-Steuereinheit verwendet wird.
-
4 zeigt
gemäß einer
bevorzugten Ausführungsform
der vorliegenden Erfindung eine Prinzipdarstellung, die eine Leseanforderung
veranschaulicht, bei der auf unterschiedliche Puffer aus der gleichen
Schicht zugegriffen wird und diese verschiedenen Sollanschluss-
(target port, TP) FIFO-Puffern zugewiesen sind. Die Figur kann außerdem verwendet
werden, um eine Schreibanforderung gemäß einer Ausführungsform
der vorliegenden Erfindung zu erläutern, bei der Daten in der
entgegengesetzten Richtung bewegt werden.
-
5 zeigt
gemäß einer
bevorzugten Ausführungsform
der vorliegenden Erfindung eine Prinzipdarstellung, die eine Leseanforderung
veranschaulicht, bei der auf unterschiedliche Puffer aus unterschiedlichen
Schichten zugegriffen wird und ein Quadwort der EPC-Steuereinheit
zugeteilt ist.
-
6 zeigt
eine alternative Ausführungsform
des Speicherzuteilers.
-
7 zeigt
einen Ablaufplan für
den Algorithmus, der bei einer Schreib- oder Leseoperation gemäß einer
Ausführungsform
der vorliegenden Erfindung verwendet wird.
-
GENAUE BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSFORM
-
1A zeigt
ein Blockschaltbild eines Netzwerk-Prozessors (NP), bei dem eine
bevorzugte Ausführungsform
der vorliegenden Erfindung, die nachfolgend dargelegt wird, realisiert
ist. Der Netzwerk-Prozessor enthält
eine Eingangsseite 10 und eine Ausgangsseite 12.
Die Eingangsseite 10 und die Ausgangsseite 12 sind
symmetrisch um die imaginäre
Achse AA angeordnet. Datenverkehr, der die Eingangsseite 12 erreicht,
tritt am Verlängerungsbus 4 oder
an der WRAP-Übertragungsleitung
ein und tritt an der Schalter-Schnittstelle 10' aus. In ähnlicher Weise
treten Daten, die an der Ausgangsseite 12 eintreten, an
der Schalter-Schnittstelle 12' ein und treten an dem mit Verlängerungsbus 4' bezeichneten
Leiter aus. Die Verlängerungsbusse 4, 4' und die Schalter-Schnittstellen
(Int) 10', 12' können als
Clear Channels bezeichnet werden, die 10 Gb/s bzw. 14 Gb/s liefern.
Die Schalter-Schnittstelle 10' ist durch eine (nicht gezeigte)
Schalterbaueinheit, wie etwa Prizma, die von IBM entwickelt und
vertrieben wird, mit der Schalter-Schnittstelle 12' verbunden.
-
In 1A enthält die Eingangsseite 10 ferner
einen Datenfluss-Chip 14, einen EPC-Chip 16, Datenpuffer 18 und
einen Ablaufplaner-Chip 20. Die Ausgangsseite 12 enthält einen
Datenfluss-Chip 14', einen
EPC-Chip 16',
Datenpuffer 18' und
einen Ablaufplaner-Chip 20'.
Die WRAP-Übertragungsleitung verbindet
den Datenfluss-Chip 14 mit dem Datenfluss-Chip 14'. Die bezeichneten
Komponenten sind in der in der Figur gezeigten Weise miteinander
verbunden. Es sollte angemerkt werden, dass in der Figur Elemente
mit gleichen Bezeichnungen im Wesentlichen ähnlich sind und die Beschreibung
eines Elements die Beschreibung des anderen Elements abdeckt. Der
EPC-Chip 16 und der EPC-Chip 16' sind z.B. im Wesentlichen identisch.
Gleichfalls sind Komponenten mit ähnlichen Bezeichnungen ebenfalls
identisch.
-
Die
in 1A gezeigte Konfiguration stellt eine bidirektionale
Funktionalität
bereit. Die Bewegung eines Pakets durch den Chipsatz wird verwendet,
um seine Funktionalität
zu erläutern.
Ein HDLC-Rahmen, der aus einem Sonet/SDH-Datenfluss durch eine (nicht
gezeigte) Rahmenbildungseinrichtung entnommen wird, wird am Verlängerungsbus 4 (Eingangsseite)
empfangen und in den Datenfluss-Chip 14 weitergeleitet.
Die Daten von dem Rahmen werden in Datenpuffer 18 geschrieben.
Wenn ein vollständiger
Rahmen in die Datenpuffer 18 geschrieben wurde, wird der
Rahmenkontext (FCB) in eine der EPC-Warteschlangen (Warteschlangen
des Komplexes mit eingebettetem Prozessor) (G-FIFO in 1B) eingereiht.
Der EPC-Chip 16 liest die Rahmenzeiger aus und verarbeitet
den entsprechenden Rahmen in einem seiner Pico-Prozessoren. Während der
Rahmenverarbeitung kann der EPC Anforderungen zum Lesen/Schreiben
entsprechender Abschnitte des Rahmens (z.B. L2- und L3-Kopfabschnitte)
von dem Datenpuffer bzw. in diesen ausgeben. Nachdem die Rahmenverarbeitung
abgeschlossen ist, übergibt
der EPC den Rahmen-Kontext an den Datenfluss-Chip, der den Rahmen
in die Warteschlangenstruktur des Ablaufplaner-Chips 20 einreiht.
Der Ablaufplaner in dem Ablaufplaner-Chip 50 wählt den
Rahmen aus der entsprechenden Warteschlange für die Übertragung aus, was bedeutet, dass
der entsprechende Rahmenzeiger an den Datenfluss-Chip weitergegeben
wird. Der übertragene Rahmen
wird aus dem Datenpuffer ausgelesen und wird an der Schalter-Schnittstelle 10' in Form von PRIZMA-Zellen übertragen.
PRIZMA-Zellen sind 64 Byte-Zellen, die Segmente der Rahmen mit variabler Größe befördern, oder
vollständige
Zellen der asynchronen Übertragungsbetriebsart
(ATM-Zellen). Die Zellen werden über
die Schalter-Schnittstelle 10' in einen (nicht gezeigten) Koppelpunktschalter
geleitet. In einer bevorzugten Ausführungsform ist der Koppelpunktschalter
ein Produkt mit der Bezeichnung PRIZMA, das von der International
Business Machines Corporation hergestellt und vertrieben werden.
-
In 1A werden
weiterhin in der Ausgangsrichtung an der Ausgangsseite PRIZMA-Zellen an
einer Schalter-Schnittstelle 12' empfangen und an Datenpuffer 18' weitergeleitet.
Nach dem Empfang eines vollständigen
Rahmens wird der Rahmenzeiger zur Verarbeitung in EPC-Warteschlangen
eingereiht. Der Ausgang-EPC 16' ruft den Rahmenkontext aus dem
Datenfluss-Chip ab und verarbeitet den Rahmen-Kopfabschnitt zu dem
Picocode, der in den (nicht gezeigten) EPC-Picoprozessoren abläuft. Das Ergebnis
der Verarbeitung ist der Rahmenkontext, der zu dem Datenfluss-Chip 14' geleitet wird
und in eine geeignete Warteschlange des Ablaufplaners 20' eingereiht
wird. Der Ablaufplaner in dem Ablaufplaner-Chip 20' wählt den
zu übertragenden
Rahmen, und dieser wird dann aus dem Datenpuffer 18' ausgelesen
und auf der mit Verlängerungsbus 4' bezeichneten
Leitungsschnittstelle des Datenfluss-Chips 14' übertragen.
Zur Einfachheit wird im Weiteren lediglich der Abschnitt des Netzwerk-Prozessors
erläutert,
der für
die Erfindung gemäß einer bevorzugten
Ausführungsform
relevant ist.
-
1B zeigt
ein Blockschaltbild des Datenfluss-Chips und des Speichersystems
(Sys) 21 gemäß den Lehren
einer bevorzugten Ausführungsform der
vorliegenden Erfindung. Daten in den Datenfluss-Chip werden auf
dem mit Data_in bezeichneten Bus bereitgestellt, und Daten aus dem
Chip werden auf dem mit Data_out bezeichneten Bus übertragen. Wie
oben festgestellt wurde, sind Data_in und Data_out freie Kanäle (Clear
Channels), die große Datenmengen übertragen.
Das Speichersystem 21 besteht aus einer Vielzahl DDR DRAMs,
die als Schicht 0 bis Schicht N bezeichnet sind. In der Ausführungsform,
die in 1B gezeigt ist, ist N = 5. Wie später erläutert wird,
sind alle Schichten aus mehreren Puffern aufgebaut und durch einzelne
Busse 0 bis 5 mit separaten DRRM-Steuereinheiten in dem Datenfluss-Chip
verbunden. Die DRAM-Steuereinheit ist eine herkömmliche DRAM-Steuereinheit und stellt
für die
Schicht, die sie versorgt, Schreib-, Lese-, Auffrisch- und weitere
Funktionen bereit. Da DRAM-Steuereinheiten in der Technik wohlbekannt sind,
werden sie nicht weiter erläutert.
-
Weiterhin
in 1B enthalten die Funktionsblöcke in dem Datenfluss-Chip
eine Empfänger-Steuereinheit 22,
einen Speicherzuteiler 24, einen FCB-Zuteiler 26,
einen BCB-Zuteiler 28, einen EPC-Zuteiler 30,
eine Puffer-Annahme- und Verwaltungseinrichtung 32, eine
Ablaufplaner-Schnittstellensteuereinheit 34 und
eine Sender-Steuereinheit 36. Der QDR SRAM 38 speichert
eine Liste der Puffer, die sich im Speichersystem 21 befinden.
Der QDR SRAM 40 speichert Informationen in Bezug auf Rahmen
in den Warteschlangen der Zielschiene (target blade – TB) und
des Zielanschlusses (TP). Der Speicherzuteiler 24 verbindet
den Datenfluss-Chip mit dem Speichersystem 21. Zu diesem
Zweck sammelt der Speicherzuteiler Lese- (R)/Schreib- (W) Anforderungen
von den Steuereinheiten des Senders des Empfängers und des Komplexes mit
eingebettetem Prozessor (EPC) 22, 36 bzw. 38 und
plant den Zugriff auf einzelne Speicherschichten des Datenspeichers.
Wie im Folgenden erläutert
wird, enthält jede
Speicherschicht mehrere Puffer, wobei jeder Puffer ein 64 Byte-Puffer
ist. Es sollte angemerkt werden, dass eine Datenbandbreite mit anderer
Größe vorgesehen
sein kann. Rahmendaten werden dann in unterschiedliche Puffer, die über unterschiedliche Schichten
des Speichers verteilt sind, geschrieben, um die Verwendung der
Speicherbandbreite maximal zu machen. Wenn Daten aus dem Speicher
gelesen werden, werden diese in Blöcken von 64 Byte herausgezogen.
Anders ausgedrückt,
die Bandbreite für die
Eingabe oder die Ausgabe des Speichers beträgt 64 Byte. Es sollte angemerkt
werden, dass eine Datenbandbreite mit anderer Größe vorgesehen sein kann. Der
Speicherzuteiler gemäß der bevorzugten Ausführungsform
stellt sicher, dass jeder Zugriff auf den Speicher (Lesen oder Schreiben)
64 Byte Nutzinformationen besitzt. Wenn eine Anforderung von einem
Anforderer weniger als 64 Byte umfasst, werden die Nutzinformationen
durch Daten von einem anderen Anforderer aufgefüllt.
-
In 1B empfängt ferner
die Empfänger-Steuereinheit 22 Daten
von einem Eingangsbus, der mit Data_in bezeichnet ist, und gibt
Schreibanforderungen aus, um empfangene Daten in einzelne Puffer
im Speichersystem 21 zu schreiben. In ähnlicher Weise gibt die Sender-Steuereinheit 36 Leseanforderungen
aus, um ausgewählte
Rahmen auf dem Bus Dat_out zu übertragen.
Die EPC-Steuereinheit 30 beendet verschiedene Nachrichten
von dem/an den EPC und gibt Lese/Schreibanforderungen an den Datenspeicher
(Speichersystem 21) aus. Sie verfolgt außerdem die
Rahmen, die auf eine Verarbeitung warten (G-FIFOs). Der Annahme-
und Verwaltungsblock 32 des Puffers ist verantwortlich
für die
Entscheidung "in
Warteschlange stellen"/"verwerfen" für jeden
einzelnen Rahmen. Er hält
außerdem einen
Warteschlangenfüllstandpegel
auf der Grundlage TB/TP und liefert diese Informationen an die Schalterstruktur
an der Schalterschnittstelle aufrecht. Die BCB- und FCB-Speicherzuteiler
gewährleisten die
Ablaufplanung von verschiedenen Zugriffen für Verknüpfungslisten-Operationen, wie
etwa Verketten/Auflösen
der Verkettung von FCB oder BCB, Belegen/Freigeben von FCB oder
BCB.
-
2 zeigt
ein Blockschaltbild des Speicherzuteilers gemäß einer bevorzugten Ausführungsform der
vorliegenden Erfindung. Die Funktion des Speicherzuteilers besteht
darin, einen Zugriff auf das Speichersystem 21 bereitzustellen.
Der Speicherzuteiler empfängt
Anforderungen von der Empfänger-Steuereinheit 22,
der Sender-Steuereinheit 36 und der EPC-Steuereinheit 30. Die Anforderungen besitzen
Prioritäten,
wobei die Sender-Steuereinheit 36 die höchste Priorität besitzt,
die Empfänger-Steuereinheit 22 die
nächsthöchste Priorität besitzt
und die EPC-Steuereinheit 30 die niedrigste Priorität besitzt.
Es kann natürlich
eine andere Reihenfolge der Prioritäten ausgewählt werden. Beim Gewähren des Zugriffs
auf den Speicher stellt der Zuteiler sicher, dass bei jedem Speicherzugriff
die maximale Bandbreite der Daten, die durch den Speicher zugelassen ist,
verwendet wird. Wenn die Speicheranforderung zum Lesen von Daten
dient, würde
die Anforderung folglich eine Leseanforderung von der Sender-Steuereinheit 36 und/oder
der EPC-Steuereinheit 30 sein. Der Speicherzuteiler analysiert
die Anforderung von der Sender-Steuereinheit,
wobei der Speicherzuteiler dann, wenn die Anforderung die volle
Speicherbandbreite fordert, den Zugriffvektor erzeugt, der pro Schichtabschnitt
einen Befehl und pro Bankabschnitt eine Adresse besitzt. Der Zugriffvektor
würde an
die entsprechende Speicher-Steuereinheit zugestellt, und die Daten
werden aus dem Speicher entnommen.
-
Wie
oben erläutert
wurde, besitzt jeder Puffer in dem Speicher einen Umfang von 64
Byte, die in vier Quadworte A, B, C und D partitioniert sind, wobei jedes
Quadwort 16 Byte umfasst. Wenn die Sender-Steuereinheit bei einem
Speicherzugriff weniger als 4 Quadworte fordert, wird der ungenutzte
Betrag des Quadworts an die EPC-Steuereinheit gegeben. Jede Anforderung
zum Schreiben wird von der Empfänger-Steuereinheit
und der EPC-Steuereinheit
ausgegeben. Wie bei der Leseanforderung benötigen alle Schreibanforderungen
4 Quadworte Daten, damit sie an die Speicher-Steuereinheit zugestellt
werden. Wenn die Empfänger-Steuereinheit
weniger als 4 Quadworte schreibt, wird das nicht genutzte Quadwort
der EPC-Steuereinheit zugewiesen. Folglich schreibt oder liest jeder
Zugriff auf den Speicher 4 Quadworte mit jeweils 64 Byte Daten.
Dadurch wird die maximale Speicherbandbreite verwendet, wobei kein
Zyklus ungenutzt bleibt.
-
In 2 enthält der Speicherzuteiler
ferner eine Busstruktur 40, die das Speichersystem 21,
die Sender-Steuereinheit 22, die EPC-Steuereinheit 30 und
die Empfänger-Steuereinheit 36 verbindet.
Die Empfänger-Steuereinheit 22 verbindet
den Speicherzuteiler mit dem Schalter oder mit der Leitungsschnittstelle.
Die EPC-Steuereinheit verbindet den Zuteiler mit dem EPC-Chip (1). Die Sender-Steuereinheit 36 verbindet
den Speicherzuteiler mit dem Bus Data out (1B). Der
Zuteiler enthält die
Speicherzuteiler-Steuereinheit 42,
die die entsprechende Anforderung empfängt, wie in der Figur gezeigt
ist, und den Zugriffvektor erzeugt, der an die entsprechende Steuereinheit
geliefert wird, um auf einzelne Schichten in dem Speichersystem
zuzugreifen. Die Zuteilung des Speicherzuteilers erfolgt in Fenstern
mit jeweils 11 Zyklen (wobei ein Zyklus eine Länge von 6 ns besitzt). Am Beginn
des Zugrifffensters empfängt
der Speicherzuteiler die folgenden Eingaben (Anforderungen), die
in dem nächsten
Fenster zu planen sind:
Anforderung der Sender-Steuereinheit – dargestellt durch
die BCH-Adresse des zu lesenden Puffers; RF-Merker, der angibt,
ob der Puffer freigegeben werden kann, und eine Quadwort-Maske ergänzt jede
BCBA-Adresse. Die Quadwort-Maske, die angibt, welche Quadworte in
diesem Puffer tatsächlich gelesen
werden sollen, ermöglicht
dem Speicherzuteiler, den Zugriff für ungenutzte Quadworte mit Quadworten
vom EPC zu ergänzen.
In einer bevorzugten Ausführungsform
dieser Erfindung können
0, 1, 2 oder 3 Anforderungen durch die Sender-Steuereinheit in einem
Speicherzugrifffenster gemacht werden. Die entsprechenden Anforderungen
sind durch Pfeile gezeigt, die die Sender-Steuereinheit 36 mit der
Speicherzuteiler-Steuereinheit 42 verbinden.
Die Richtung des Pfeils zeigt die Richtung, in die sich die Anforderungen
bewegen.
-
Anforderungen
der Empfänger-Steuereinheit – dargestellt
durch Schicht-Ausschlussmasken und zwei Quadwort-Masken. Zwei Quadwort-Masken
geben indirekt an, wie viele Puffer vorzugsweise für eine Anforderung
zugewiesen werden müssen
(wenn z.B. eine der Quadwort-Masken "0000" ist,
bedeutet das, dass lediglich ein Puffer zugewiesen werden muss)
und welche Speicherbänke
(Quadworte) in verschiedenen Puffern verwendet werden sollten. Wie
oben dargestellt wurde, besitzt die Empfänger-Steuereinheit 22 die
zweithöchste
Priorität
beim Zugreifen auf den Speicher. Die Anforderungen, die bei der
Empfänger-Steuereinheit
zugelassen werden, sind als Pfeile, die von der Empfänger-Steuereinheit
ausgehen, zu der Speicherzuteiler-Steuereinheit 42 dargestellt.
-
Anforderungen
der EPC-Steuereinheit – dargestellt
durch Warteschlangen pro Schicht, pro Aktion und pro Quadwort. Der
Speicherzuteiler muss alle verbleibenden Schichten auf der Grundlage
der Gewichtung der einzelnen Quadwort-Anforderungen zuweisen. Diese
Gewichtung ist zu dem Alter der Quadwort-Anforderung, das durch einen 6-Bit-Wert
ausgedrückt
wird, proportional. Darüber
hinaus können
die Speicherzuteiler Zugriffe des Senders und des Empfängers ergänzen, indem
sie entsprechende Quadwort-Zugriffanforderungen von dem Warteschlangensystem
der EPC-Anforderungen lesen. In einer bevorzugten Ausführungsform
der Erfindung ist die maximale Anzahl von Quadwort-Zugriffen, die
dem EPC in einem Speicherzugrifffenster gewährt werden können, auf
8 Lese- und 8 Schreib-Quadworte beschränkt. Der einseitige Pfeil gibt
einen Datenfluss an, der von der EPC-Steuereinheit zu der Speicherzuteiler-Steuereinheit 42 verläuft.
-
In 2 empfängt die
Speicherzuteiler-Steuereinheit 42 ferner die Anforderung
von den entsprechenden Anforderern (Empfänger-Steuereinheit 22,
Sender-Steuereinheit 36 und EPC-Steuereinheit 30) und erzeugt
einen Zugriffvektor, der an die entsprechende Schicht-Steuereinheit
(Ctrl) zum Lesen oder Schreiben von Daten aus dem Puffer bzw. in
den Puffer der ausgewählten
Schicht geliefert wird. Überschüssige Bandbreite,
die nicht durch die Empfänger-Steuereinheit
oder die Sender-Steuereinheit verwendet
wird, wird der EPC-Steuereinheit zugewiesen. Folglich verwendet
jeder Zugriff auf den Speicher die volle Speicherbandbreite. Auf
der Grundlage der Eingabe von dem Anforderer führt die Speicherzuteiler-Steuereinheit 42 den
folgenden Schichtauswahl-Algorithmus aus, um den Pufferspeicher-Zugriffvektor
für das
nächste
Fenster zu bilden:
- – Ausschließen von Schichten, bei denen
ein Auffrischzyklus vorgesehen ist (wird durch jede DRAM-Steuereinheit
angegeben);
- – Zuweisen
von Schichten für
alle R-Anforderungen (Leseanforderungen) der Sender-Steuereinheit;
- – Ergänzen von
R-Zugriffen von einer entsprechenden EPC-Warteschlange (Schicht;
Quadwort)
- – Zuweisen
einer Schicht zu EPC global für Nicht-W-Schichten (Nicht-Schreib-Schichten) (Schichten,
die durch alle Schichtausschlussregeln vom Empfänger ausgeschlossen sind);
- – Zuweisen
von Schichten zu W-Anforderungen der Reihe nach zwischen nicht ausgeschlossenen Schichten,
beginnend von der letzten zugewiesenen Schicht (Schicht, die der
Empfänger-Steuereinheit
im vorhergehenden Fenster zugewiesen ist);
- – Ergänzen des
W-Zugriffs durch EPC-Zugriff aus einer entsprechenden EPC-Warteschlange (Schicht;
Quadwort); und
- – Zuweisen
einer Schicht an eine EPC-Anforderung gemäß der Priorität, die durch
die Gewichtung ausgedrückt
ist
-
Dieser
Schichtauswahl-Algorithmus kann in Hardware-Logik realisiert werden
oder kann als Mikrocode codiert sein, der in einem Picoprozessor
abläuft.
Die Auswahl zwischen Hardware und Picocode zum Realisieren des obigen
Auswahlalgorithmus erfolgt beliebig und liegt im Erfahrungsschatz
eines Fachmanns, dem der oben dargestellte Algorithmus vorgegeben
wird.
-
In 6 ist
nunmehr eine alternative Ausführungsform
für den
Speicherzuteiler gezeigt. Der alternative Speicherzuteiler enthält die Speicherzuteiler-Steuereinheit
(CTRL) 42, die mit den Anforderungsregistern A, B, C und
der Prioritätstabelle 44 verbunden
ist. Die Anforderungsregister speichern Anforderungen von dem jeweiligen
Anforderer. Das Anforderungsregister A speichert die Anforderung von
der Sender (XMIT)-Steuereinheit, das Anforderungsregister B speichert
die Anforderung von der Empfänger
(RECV)- Steuereinheit,
und das Register C speichert Anforderungen von der EPC-Steuereinheit.
Die Prioritätstabelle 44 speichert
eine Prioritätszuordnung
für alle
Anforderer. Somit tragen die Sender-Steuereinheit, die die höchste Priorität besitzt, eine
1, die Empfänger-Steuereinheit,
die die nächsthöchste Priorität besitzt,
eine 2 und die EPC-Steuereinheit, die die niedrigste Priorität besitzt,
eine 3. Im Betrieb verwendet die Speicherzuteiler-Steuereinheit,
die gemäß dem obigen
Auswahlalgorithmus ausgeführt
ist, die Daten in dem Register zusammen mit dem Prioritätspegel,
um den Speichervektor zu erzeugen.
-
Die 3, 4 und 5 zeigen
Beispiele, die die Erfindung gemäß einer
bevorzugten Ausführungsform
weiter erläuten.
In den Figuren ist die Funktion der Verwendung der vollen Speicherbandbreite
dargestellt, wenn Daten aus dem Speicher entnommen oder gelesen
werden. Die in dem Speicher befindlichen Daten wurden in früheren Schreibzyklen geschrieben.
-
3 zeigt
eine Prinzipdarstellung, die eine Leseanforderung veranschaulicht,
bei der die volle Speicherbandbreite durch die Sender-Steuereinheit verwendet
wird. Wie dargestellt wurde, besitzt die Sender-Steuereinheit die
höchste
Priorität
zum Lesen von Daten aus dem Speicher. Die Darstellung enthält den Speicher 51,
eine Zeitsteuerungsdarstellung 48, die Speicherzuteiler-Steuereinheit 42 und Vorbereitungsabschnitte 46.
Der Speicher 51 enthält eine
Vielzahl von Puffern, die in als Schichten bezeichneten Gruppen
angeordnet sind. In der Figur sind die Schichten 0, 1, 2, 3 und
4 dargestellt. Das soll jedoch nicht als Einschränkung betrachtet werden, da
eine zusätzliche
Anzahl von Schichten oder weniger Schichten verwendet werden können. Außerdem sind
3 Puffer (die mit 1, 2 und 3 bezeichnet sind) in jeder Schicht dargestellt.
Das sollte jedoch nur als Beispiel und nicht als Einschränkung betrachtet
werden. Die Anzahl der Puffer, die in einer Schicht verwendet werden,
hängt von
der Entscheidung des Entwicklers ab. Folglich ist N die Anzahl der
Puffer in einer Schicht, wobei N eine beliebige Zahl sein kann, die
von der Entscheidung des Entwicklers abhängt. Wie oben festgestellt
wurde, hat jeder Puffer einen Umfang von 64 Byte, die in Sektoren,
die als Quadworte A, B, C und D bezeichnet werden, partitioniert sind.
Jedes Quadwort ist 16 Byte lang. Jede Schicht ist aus einem DDR
DRAM-Modul hergestellt, das in N Puffer partitioniert ist. Die in
dem Puffer 1 gezeigte Nummerierung bedeutet, das die Schicht 1 des
Puffers 1 mit Daten gefüllt
ist, die die Quadworte 3, 4, 1 und 2 enthalten. In ähnlicher
Weise ist die Schicht 3 des Puffers 1 mit Daten gefüllt, die
die Quadworte 8, 5, 6 und 7 enthalten. Jedes Quadwort speichert
ein Doppelwort (16 Byte). Es sollte angemerkt werden, dass eine
andere Detailtiefe ausgewählt
werden könnte.
Diese Daten wurden wahrscheinlich von der Empfänger-Steuereinheit 22 von 1 erhalten und zu einem früheren Zeitpunkt
in den Speicher 51 geladen oder geschrieben.
-
In 3 zeigt
das Bezugszeichen 48 ferner die grafische Darstellung der
Zeitsteuerung bei der Übertragung
der Daten, die aus dem Speicher entfernt und neu angeordnet werden
(umlaufen). Die grafische Darstellung hat Raum für die Quadworte A, B, C und
D. Der Speicherzugriff dauert 11 Zyklen zu je etwa 66 Nanosekunden.
In jedem Speicherzyklus kann auf zwei Puffer in unterschiedlichen
Speicherschichten gleichzeitig zugegriffen werden. Der Speicherzuteiler 42 wurde oben
erläutert
und wird nicht im Detail wiederholt. Es genügt festzustellen, dass er Anforderungen
von der Sender-Steuereinheit
und dem EPC empfängt
und sie so anordnet, dass die geforderten Daten aus dem Speicher 51 entnommen werden.
-
In 3 enthält ferner
der Vorbereitungsanschnitt 46 die Betriebsmittel, die zum
Verwalten der Daten erforderlich sind, um sie auf Anforderung der Sender-Steuereinheit 36 (1B)
aus dem Speicher zu entnehmen. Der Vorbereitungsanschnitt 46 enthält Anschlusssteuerblöcke (PCBs),
eine Gruppe von Zielanschlusspuffern, die mit TP 0, TP 1, TP 3,
TP 4, ... TP N bezeichnet sind. Die Anzahl der TP (Zielanschluss)-Puffer
hängt von
Entwickler ab. Deswegen sollte die gezeigte Anzahl 5 nicht als eine
Beschränkung
betrachtet werden. Die Bezeichnung RR des geschlossenen Pfeils gibt
eine Ringprozedur an, bei der die Puffer in Uhrzeigerrichtung gefüllt oder
bedient werden. Der PCB enthält
eine Auflistung von Puffern in dem Vorbereitungsanschnitt. In dem
gezeigten Beispiel sind 64 PCBs vorhanden. Der PCB enthält außerdem die
nächsten
Schichten, die aus dem Speicher entnommen werden sollen. In der
Figur müssen
die Schichten 1 und 3 entnommen und in den Zielanschlusspuffer 0
geladen werden. Die Daten in diesem Puffer werden anschließend über den Anschluss
0 auf die data_out-Leitung 1 transportiert (1B). Jeder
der Zielanschlusspuffer enthält
128 Byte (8 Quadworte).
-
In 3 erstellt
ferner die Sender-Steuereinheit im Betrieb Anforderungen an die
Speicherzuteiler-Steuereinheit, die fordern, dass die Daten in der Schicht
1 des Puffers 1 und in der Schicht 3 des Puffers 1 des Speichers
gelesen und in den Zielanschlusspuffer 0 geladen werden. Die EPC-Leseanforderung
wird außerdem
der Speicherzuteiler-Steuereinheit 42 übergeben.
-
Da
die Anforderung von der Speicherzuteiler-Steuereinheit die Übertragung
von zwei vollständigen
Puffern fordert, gibt es während
dieses Lese-Speicherzyklus keinen Platz, um Anforderungen von dem
EPC für
eine Leseaktion aufzunehmen. Es sollte angemerkt werden, dass Daten
gleichzeitig ausgelesen, in dem Arbeitsbereich 48 umgeordnet und
für eine
anschließende Übertragung über den Anschluss
0 in den TP-Puffer 0 transportiert werden können, da die Anforderung für die Schichten
1 und 3 ist. Die Daten von dem Arbeitsbereich 48 werden
in der korrekten Reihenfolge in den TP-Puffer 0 eingelesen. Zusammenfassend
stellt 3 einen Fall dar, bei dem die Sender-Steuereinheit
auf den Speicher zugreift und die gesamte Bandbreite verwendet.
In diesem Fall hat der EPC während
dieses Zugrifffensters keinen Zugriff auf den Speicher. Die Sender-Steuereinheit
empfängt
zwei vollständige
Puffer (einen von der Schicht 1 und einen von der Schicht 3) und
ordnet diese Daten in einer Warteschlange in dem Zielanschlusspuffer
0 (TP 0) an.
-
Bei
Schreiboperationen kann die Beschreibung von 3 in gleicher
Weise verwendet werden, wobei sich die Daten zum Schreiben in der
entgegengesetzten Richtung bewegen. Aus diesem Grund erfolgt keine
weitere Beschreibung der Schreiboperation.
-
4 zeigt
ein Beispiel, bei dem auf verschiedene Puffer der gleichen Schicht
zugegriffen wird und die auf unterschiedliche FIFO-Anschlusspuffer
verteilt sind, um den Speicherzugriff zu optimieren. Wie mit Ausnahme
des im Speicher 51 gespeicherten Datenmusters erkannt werden
kann, ist der Aufbau von 4 im Wesentlichen gleich dem Aufbau
der zuvor beschriebenen 3. Deswegen werden im Weiteren
lediglich die zusätzlichen Merkmale
in 4 beschrieben. Im Speicher 51 werden Daten
in die Schicht 1, Puffer 1, Quadworte C und D; in die Schicht 1,
Puffer 2, Quadworte A, B, C und D; und in die Schicht 2, Puffer
3, Quadworte B, C und D geladen. Die Quadworte sind durch entsprechende Zahlen
gekennzeichnet. Die Daten in den PCBs geben Daten an, die sich in
der Schicht 1, Puffer 1 befinden und in den TP-Puffer 0 geladen
werden sollen. In ähnlicher
Weise sollen Daten, die sich in der Schicht 2, Puffer 1 befinden,
in den TP 1 geladen werden. Es sollte angemerkt werden, dass zusätzliche
Informationen in den PCBs erforderlich sein können, um vollständige und
genaue Anweisungen für die
Verschiebung von Daten vom Speicher zu den entsprechenden TP-Puffern
zu erteilen. Um die Beschreibung weniger kompliziert zu gestalten,
werden die zusätzlichen
Informationen weggelassen. Die Offenbarung ist jedoch ausreichend,
um einen Fachmann zu befähigen,
die zusätzlichen
Informationen bereitzustellen.
-
Da
die Sender-Anforderung (für
jeden TP) weniger als die volle Speicherbandbreite für Daten darstellt,
werden Quadworte mit voller Speicherbandbreite in jedem Speicherzyklus
gelesen und an die TPs umverteilt.
-
In 4 werden
ferner für
den Puffer 1 nur die Schichten C und D durch die Sender-Steuereinheit
für den
TP-Puffer 0 gefordert, A und B sind ungenutzt und werden mit den
Schichten 4 und 1 vom Puffer 2 für
TP 2 gefüllt.
In ähnlicher
Weise werden für die
Schicht 2, Puffer 1 nur die Quadworte A und D durch die Sender-Steuereinheit
für den
TP-Puffer 1 verwendet. Deswegen wird das ungenutzte Quadwort B mit
Daten, die mit "2" bezeichnet sind,
von der Schicht 2, Puffer 2 gefüllt,
und das Quadwort C wird mit Daten, die mit "2" bezeichnet
sind, vom Puffer 3 gefüllt.
Die Daten werden in der gezeigten Weise durch Zahlen in dem Arbeitsbereich
und in den entsprechenden Zielanschluss-FIFO-Puffern angeordnet.
Die Verschiebung der Daten vom Speicher 51 zu entsprechenden
TP-Puffern ist durch entsprechende einseitige Pfeile angegeben.
Der Pfeil 52 gibt z.B, an, dass die Quadworte 1 und 2 von
Schicht 1 nacheinander in TP 0 angeordnet werden; der Pfeil 54 gibt an,
dass die Quadworte 1 und 2 der Schicht 2 nacheinander in TP 1 angeordnet
werden; der Pfeil 56 zeigt, dass die Quadworte 1 und 4
der Schicht 2 nacheinander in TP 2 angeordnet werden; der Pfeil 58 zeigt,
dass das Quadwort 2, Puffer 2, Schicht 2 in TP 3 angeordnet wird,
und der Pfeil 60 zeigt, dass das Quadwort 2, Puffer 2 in
TP 4 angeordnet wird.
-
Es
sollte angemerkt werden, dass in 4 in jedem
Speicherzyklus die gesamte Speicherbandbreite verwendet wird, auch
wenn die Daten auf unterschiedliche TP-FIFO (Zielanschluss-Silo)-Puffer verteilt
werden.
-
In 5 veranschaulicht
das Schema die Situation, bei der die Speicheranforderung von der Sender-Steuereinheit
weniger als die volle Speicherbandbreite umfasst und das ungenutzte
Quadwort in der Schicht 2 mit dem Quadwort "2",
Puffer 3 gefüllt wird,
das der Reihe nach über
den Pfeil 62 an den EPC geliefert wird. Der restliche Teil
von 5 ist im Wesentlichen gleich 4,
deren vorhergehende Beschreibung anwendbar ist und durch Bezugnahme eingeschlossen
wird.
-
7 zeigt
einen Ablaufplan für
den Algorithmus, der verwendet wird, um der Sender-Steuereinheit,
der Empfänger-Steuereinheit oder
dem EPC einen Speicherzugriff zu gewähren. Der Algorithmus enthält Schritte,
die mit Schritt A bis Schritt G bezeichnet sind. Schritt A ist ein
allgemeiner Schritt, der alle Schichten (S = 0 bis N, wobei N die
Gesamtzahl der Schichten in dem System ist und S in der vorliegenden
Ausführungsform
z. B. mit 0 bis 5 angegeben ist) betrifft. Zusammenfassend bestimmt
der Schritt A die Eignung der Schicht zum Schreiben oder Lesen von
Daten. Wenn die Schicht nicht aufgefrischt werden muss, ist sie
für eine
Zuweisung geeignet. Die Schritte B und C betreffen die Leseaktivität, die durch die
Sender-Steuereinheit ausgeführt
wird, wohingegen die Schritte D bis G eine Schreibaktivität betreffen,
die durch die Empfänger-Steuereinheit
ausgeführt
wird. Der EPC kann entweder Schreiben oder Lesen ausführen und
kann entweder mit der Leseroutine oder mit der Schreibroutine verbunden
sein.
-
In 7 gewährt ferner
der Schritt B der Sender-Steuereinheit
einen Zugriff, um eine geforderte Anzahl von Schichten R aus dem
Speicher zu lesen. R kann im Bereich von 1 bis zu einer maximalen
Anzahl liegen. Bei der in dieser Anwendung gezeigten Ausführungsform
ist R auf 3 gesetzt. Es können
natürlich
in Abhängigkeit
von der Entscheidung des Entwicklers andere Werte von R verwendet
werden. Der Schritt C ergänzt
die Leseoperation, indem ein in einer Leseanforderung ungenutztes
Quadwort dem EPC überlassen
wird. Anders ausgedrückt, wenn
die Leseanforderung nicht alle Quadworte verwendet, werden die ungenutzten
Quadworte dem EPC zugewiesen. Der EPC kann mehrere Leseanforderungen
aufweisen, die auf den Speicher zugreifen sollen. Deswegen weist
der Algorithmus die Leseanforderung dem EPC der Reihe nach zu.
-
In 7 wird
ferner die Schreibanforderung durch die Schritte D bis G gesteuert
und durch die Empfänger- Steuereinheit oder
den EPC ausgeführt. Im
Schritt D beruht die Empfänger-Steuereinheit
auf dem Prinzip, dass Puffer von benachbarten Abschnitten des gleichen
Rahmens nicht in die gleiche Schicht geschrieben werden können. Das
bedeutet, dass benachbarte Informationen über unterschiedliche Schichten
des Speichers verteilt werden. Folglich sind bestimmte Schichten
im Speicher nicht für ein
Beschreiben geeignet. Im Schritt D kennzeichnet die Empfänger-Steuereinheit
diese Schichten, die nicht beschrieben werden können. Im Schritt D werden die
Schichten durch den Wert X gekennzeichnet, der im Bereich von 1
bis zu einem maximalen Wert liegen kann. Im Schritt E gibt der Algorithmus
dem EPC die geeignete Schicht frei, die zum Schreiben gefordert
wurde und sich in den X-Schichten befindet, die im Schritt D gekennzeichnet,
im Schritt B aber nicht aufgefunden wurde. Im Schritt E stellt X
die Schichten dar, die im Schritt D ausgeschlossen wurden, während R
Schichten darstellt, die im Schritt B zum Lesen verwendet werden.
-
Im
Schritt F gibt der Algorithmus der Reihe nach die Schicht frei,
die durch die Empfänger-Steuereinheit
gefordert wurde. Die Zuweisung der Reihe nach ist erforderlich,
da die Empfänger-Steuereinheit eine
Anzahl N von Schichten anfordern kann, wobei N größer als
1 ist. Es sollte angemerkt werden, dass die Empfänger-Steuereinheit nicht nach
Schichten fragt, die im Schritt D ausgeschlossen wurden. Außerdem sind
die Schichten, die der Empfänger-Steuereinheit
gewährt
werden, nicht die Schichten, die zum Lesen (R) gewährt werden.
Im Schritt G werden die Quadworte, die nicht durch die Empfänger-Steuereinheit zum
Schreiben verwendet werden, dem EPC gewährt. Die Gewährung erfolgt
der Reihe nach, da der EPC mehrere Schreibanforderungen machen kann.