PatentDe  


Dokumentenidentifikation DE60205231T2 24.05.2006
EP-Veröffentlichungsnummer 0001374072
Titel VORRICHTUNG UND VERFAHREN ZUR EFFIZIENTEN ZUTEILUNG VON SPEICHERBANDBREITE IN EINEM NETZWERKPROZESSOR
Anmelder Alcatel, Paris, FR;
International Business Machines Corp., Armonk, N.Y., US
Erfinder BARRI, Peter, B-2820 Bonheiden, BE;
CALVIGNAC, Jean, Cary, US;
HEDDES, Marco c/o IBM United Kingdom Limite, Hampshire, GB;
LOGAN, Joseph, Raleigh, US;
NIEMEGEERS, Alex, B-9000 Gent, BE;
VERPLANKEN, Fabrice, F-06610 La Gaude, FR;
VRANA, Miroslav, B-9000 Gent, BE
Vertreter Teufel, F., Dipl.-Phys., Pat.-Anw., 70569 Stuttgart
DE-Aktenzeichen 60205231
Vertragsstaaten AT, BE, CH, CY, DE, DK, ES, FI, FR, GB, GR, IE, IT, LI, LU, MC, NL, PT, SE, TR
Sprache des Dokument EN
EP-Anmeldetag 28.03.2002
EP-Aktenzeichen 027085133
WO-Anmeldetag 28.03.2002
PCT-Aktenzeichen PCT/GB02/01484
WO-Veröffentlichungsnummer 0002082286
WO-Veröffentlichungsdatum 17.10.2002
EP-Offenlegungsdatum 02.01.2004
EP date of grant 27.07.2005
Veröffentlichungstag im Patentblatt 24.05.2006
IPC-Hauptklasse G06F 13/16(2006.01)A, F, I, 20051017, B, H, EP

Beschreibung[de]
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.


Anspruch[de]
  1. Verfahren zum Optimieren der Nutzung eines Speichers, das die folgenden Schritte umfasst:

    Empfangen von einer Vielzahl von Speicherzugriffanforderungen in einem Speicherzuteiler (memory arbiter), von denen wenigstens eine Speicherzugriffanforderung mit einer Prioritätszuordnung verbunden ist;

    dadurch gekennzeichnet, dass das Verfahren ferner umfasst:

    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.
  2. Verfahren nach Anspruch 1, das ferner den folgenden Schritt umfasst:

    Zulassen der Speicherzugriffanforderung mit einer bestimmten Prioritätszuordnung, um die volle Speicherbandbreite auszunutzen, wenn die Speicheranforderung mit der bestimmten Prioritätszuordnung die volle Speicherbandbreite erfordert.
  3. Verfahren nach Anspruch 2 oder 3, bei dem die bestimmte Prioritätszuordnung die höchste ist.
  4. Verfahren nach Anspruch 1, 2 oder 3, umfassend:

    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, wobei die Speicheranforderungen von mehreren Anforderern Zugriff auf die wenigstens eine Schicht suchen.
  5. Verfahren nach einem vorhergehenden Anspruch, bei dem mehrere Anforderer Speicherzugriffanforderungen stellen, wobei die mehreren Anforderer eine Empfänger-Steuereinheit, eine Sender-Steuereinheit und eine Steuereinheit eines Komplexes mit eingebettetem Prozessor (Embedded Processor Complex (EPC)), die mit einem Netzwerk-Prozessor funktionsmäßig verbunden ist, enthalten.
  6. Verfahren nach Anspruch 5, bei dem die Sender-Steuereinheit die höchste Priorität besitzt und die Empfänger-Steuereinheit die nächsthöchste Priorität besitzt.
  7. Verfahren nach Anspruch 6, bei dem die EPC-Steuereinheit Speicherbandbreite mit der Sender-Steuereinheit oder mit der Empfänger-Steuereinheit gemeinsam verwendet.
  8. Verfahren nach einem der Ansprüche 5 bis 7, bei dem die Anforderungen Lese- und Schreibanforderungen enthalten und wenigstens eine Leseanforderung von der Sender-Steuereinheit erzeugt wird und wenigstens eine Schreibanforderung von der Empfänger-Steuereinheit bereitgestellt wird.
  9. Verfahren nach Anspruch 8, bei dem Lese- und Schreibanforderungen von der EPC-Steuereinheit bereitgestellt werden.
  10. Netzwerk-Prozessor, 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, dadurch gekennzeichnet, dass

    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.
  11. Netzwerk-Prozessor nach Anspruch 10, bei dem zugelassen wird, dass die Anforderung mit höchster Priorität die volle Speicherbandbreite verwendet, wenn die Anforderung mit höchster Priorität das fordert.
  12. Netzwerk-Prozessor nach Anspruch 10 oder 11, bei dem das Speichersystem eine Vielzahl von Puffern enthält, die in wenigstens einer Schicht angeordnet sind, und jeder Puffer in Quadworte partitioniert ist.
  13. Netzwerk-Prozessor nach Anspruch 12, der ferner eine Empfänger-Steuereinheit, die mit dem Speicherzuteiler funktionsmäßig verbunden ist; eine Sender-Steuereinheit, die mit dem Speicherzuteiler funktionsmäßig verbunden ist; und eine Steuereinheit eines Komplexes mit eingebettetem Prozessor (EPC), die mit dem Speicherzuteiler funktionsmäßig verbunden ist, enthält.
  14. Netzwerk-Prozessor nach Anspruch 13, bei dem die Steuereinheit wahlweise die folgenden Schritte ausführt, um einen Pufferspeicher-Zugriffvektor zu bilden:

    a) Ausschließen von Schichten, bei denen ein Auffrischzyklus vorgesehen ist;

    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);

    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.
  15. Computerprogramm zum Optimieren der Nutzung eines Speichers, das Programmcodemittel enthält, die so beschaffen sind, dass sie das Verfahren von einem der Ansprüche 1 bis 9 ausführen.
Es folgen 7 Blatt Zeichnungen






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com