PatentDe  


Dokumentenidentifikation DE112004000821T5 11.05.2006
Titel System mit einem Hauptrechner, der mit mehreren Speichermodulen über eine serielle Speicherverbindung verbunden ist
Anmelder Advanced Micro Devices, Inc., Sunnyvale, Calif., US
Erfinder Polzin, Stephen R., San Jose, Calif., US;
Weber, Frederick D., San Jose, Calif., US;
Talbot, Gerald R., Concord, Mass., US;
Hewitt, Larry D., Austin, Tex., US;
Reeves, Richard W., Westboro, Mass., US;
Patel, Shwetal A., San Jose, Calif., US;
La Fetra, Ross V., Sunnyvale, Calif., US;
Gulick, Dale E., Austin, Tex., US;
Hummel, Mark D., Franklin, Mass., US;
Miranda, Paul C., Austin, Tex., US
Vertreter Grünecker, Kinkeldey, Stockmair & Schwanhäusser, 80538 München
DE-Aktenzeichen 112004000821
Vertragsstaaten AE, AG, AL, AM, AT, AU, AZ, BA, BB, BG, BR, BW, BY, BZ, CA, CH, CN, CO, CR, CU, CZ, DE, DK, DM, DZ, EC, EE, EG, ES, FI, GB, GD, GE, GH, GM, EP, HR, HU, ID, IL, IN, IS, JP, KE, KG, KP, KR, KZ, LC, LK, LR, LS, LT, LU, LV, MA, MD, MG, MK, MN, MW, MX, MZ, NA, NI, NO, NZ, OM, PG, PH, PL, PT, RO, RU, SC, SD, SE, SG, SK, SL, SY, TJ, TM, TN, TR, TT, TZ, UA, UG, US, UZ, VC, VN, YU, ZA, ZM, ZW, BW, GH, GM, KE, LS, MW, MZ, NA, SD, SL, SZ, TZ, UG, ZM, ZW, AM, AZ, BY, KG, KZ, MD, RU, TJ, TM, AT, BE, BG, CH, CY, CZ, DE, DK, EE, ES, FI, FR, GB, GR, HU, IE, IT, LU, MC, NL, PL, PT, RO, SE, SI, SK, TR, BF, BJ, CF, CG, CI, CM, GA, GN, GQ, GW, ML, MR, NE, SN, TD, TG, BF, BJ, CF, CG, CI, CM, GA, GN, GQ, GW, ML, MR, NE, SN, TD, TG
WO-Anmeldetag 10.05.2004
PCT-Aktenzeichen PCT/US2004/014441
WO-Veröffentlichungsnummer 2004102403
WO-Veröffentlichungsdatum 25.11.2004
Date of publication of WO application in German translation 11.05.2006
Veröffentlichungstag im Patentblatt 11.05.2006
IPC-Hauptklasse G06F 13/16(2006.01)A, F, I, 20051017, B, H, DE
IPC-Nebenklasse G06F 13/42(2006.01)A, L, I, 20051017, B, H, DE   

Beschreibung[de]
TECHNISCHES GEBIET

Diese Erfindung betrifft Computersystemspeicher und betrifft insbesondere Speichermodulkonfigurationen und den Speicherteilsystemaufbau.

HINTERGRUND DER ERFINDUNG

In vielen Computersystemen wird ein Hauptsystemspeicher verwendet, der entsprechend den Bedürfnissen eines Endanwenders ausgebildet sein kann. In derartigen Systemen kann eine Mutterplatine oder eine Systemplatine eine Reihe von Speichererweiterungssockeln aufweisen. Eine oder mehrere kleine Schaltungsplatinen, die im Weiteren als Speichermodule bezeichnet sind, können in die Sockel nach Bedarf eingesetzt werden, um damit die Speicherkapazität des Computersystems zu vergrößern. Jedes der Speichermodule umfasst typischerweise mehrere Speicherbauelemente, die eine vorgegebene Größe an Speicherkapazität bieten. Die Speicherbauelemente sind typischerweise mittels einer gewissen Art an dynamischen Speicher mit wahlfreiem Zugriff (DRAM) eingerichtet. Zu einigen Beispielen von DRAM-Speichertypen gehören synchrone DRAM (SDRAM) sowie diverse Typen von SDRAM mit doppelter Geschwindigkeitsdatenrate (DDR SDRAM).

In konventionellen Computersystemen sind die Speichermodule mit einer Speicher/DRAM-Steuerung mittels eines Speicherbusses verbunden, der Adressen-, Steuer- und Datensignale enthält. In einigen Computersystemen können die Adressen-, Steuer- und Datensignale durch Multiplexung eingesetzt werden, so dass diese Signale den gleichen Satz an Zuleitungen gemeinsam verwenden. In anderen Computersystemen können die Adressen-, Steuer- und Datensignale durch separate Leitungen geführt werden. In jedem Falle werden alle Adressen- und Steuersignale zu jedem Erweiterungssockel so geführt, dass die Speichermodule, wenn sie eingesetzt sind, parallel zu der Speicher/DRAM-Steuerung angeschlossen sind. In einigen Systemen kann die Speicher/DRAM-Steuerung in dem gleichen integrierten Schaltungs- (IC) Chip wie der Systemprozessor vorgesehen sein, während in anderen Systemen die Speicher/DRAM-Steuerung in einem IC (z. B. einer Nordbrücke) eines Chipsatzes vorgesehen sein kann.

Obwohl die Arbeitsgeschwindigkeit von Computersystemprozessoren ständig zunimmt, ist jedoch die Leistungsfähigkeit des Hauptsystemspeichers nicht in der gleichen Weise angestiegen. Dies kann zumindest teilweise in der nur geringfügigen Verbesserung der Bandbreite der Speicherbusarchitekturen, wie sie zuvor beschrieben sind, begründet sein.

ÜBERBLICK ÜBER DIE ERFINDUNG

Es sind diverse Ausführungsformen eines Systems mit mehreren Speichermodulen offenbart. In einer Ausführungsform ist ein Hauptrechner bzw. Host mit einer seriell verbundenen Kette aus Speichermodulen verbunden.

In einer speziellen Implementierung kann jedes der Speichermodule einen Speichersteuerungsknoten aufweisen, der den Zugriff zu mehreren Speicherchips in dem Speichermodul steuern kann. Des weiteren sind die Speichermodule seriell in einer Reihe bzw. Kette mit dem Host über mehrere Speicherverbindungen verbunden. Jede Speicherverbindung kann eine Aufwärtsverbindung zum Übertragen von Transaktionen zu dem Host und eine Abwärtsverbindung zum Übertragen von Transaktionen, die von dem Host stammen, zu einem nächsten Speichermodul in der Kette umfassen. Die Aufwärtsverbindung und die Abwärtsverbindung können jeweils eine uni-direktionale Verbindung sein mit mehreren Signalen, die Transaktionen unter Anwendung von Paketen übertragen können, die Steuerungs- und Konfigurationspakete und Speicherzugriffspakete mit einschließen.

In einer weiteren speziellen Implementierung kann der Speichersteuerungsknoten eine Transaktion decodieren, die von einer ersten Abwärtsverbindung einer ersten Speicherverbindung empfangen wird. Des weiteren kann der Speichersteuerungsknoten die Transaktion auf einer zweiten Abwärtsverbindung einer zweiten Speichersteuerung unabhängig vom Decodieren der Transaktion übertragen.

In einer noch weiteren speziellen Implementierung kann der Speichersteuerungsknoten eine DRAM-Steuerung enthalten, die auf die Speicherchips in Reaktion auf das Decodieren der Transaktion in einen Speicherbefehl mit einer Speicheradresse, die mit einer mit dem Speichersteuerungsknoten verknüpften Speicheradresse übereinstimmt, zugreifen kann.

KURZE BESCHREIBUNG DER ZEICHNUNGEN

1 ist eine Blockansicht einer Ausführungsform eines Systems mit einer seriell verbundenen Kette aus Speichermodulen.

2 ist eine Blockansicht einer Ausführungsform eines Speichermoduls, etwa eines Speichermoduls, wie es in 1 gezeigt ist.

3 ist eine Blockansicht einer Ausführungsform einer Abwärtsverbindungssteuerungseinheit, etwa der Abwärtsverbindungssteuerungseinheit, die in 2 gezeigt ist.

4 ist eine Blockansicht einer Ausführungsform einer Aufwärtsverbindungssteuerungseinheit, etwa der in 2 gezeigten Aufwärtsverbindungssteuerungseinheit.

5a ist eine Ansicht einer Ausführungsform eines Konfigurationslesepakets.

5b ist eine Ansicht einer Ausführungsform eines Konfigurationsschreibpakets.

5c ist eine Ansicht einer Ausführungsform eines Speicherlesepakets.

5d ist eine Ansicht einer Ausführungsform eines Speicherschreibpakets.

6 ist eine Blockansicht einer Ausführungsform eines Computersystems.

Obwohl die Erfindung diversen Modifizierungen und alternativen Formen unterliegen kann, sind dennoch spezielle Ausführungsformen beispielhaft in den Zeichnungen gezeigt und sind hierin detailliert beschrieben. Es sollte jedoch selbstverständlich sein, dass die Zeichnungen und die detaillierte Beschreibung nicht beabsichtigen, die vorliegende Erfindung auf die speziellen offenbarten Formen einzuschränken, sondern die Erfindung soll alle Modifizierungen, Äquivalente und Alternativen abdecken, die innerhalb des Grundgedankens und Schutzbereichs der vorliegenden Erfindung liegen, wie sie durch die angefügten Patentansprüche definiert ist. Zu beachten ist, dass die Überschriften lediglich für formale Zwecke gedacht sind und nicht dazu dienen, die Beschreibung oder die Patentansprüche zu beschränken oder zu interpretieren. Des weiteren ist zu beachten, dass der Begriff „kann" durchwegs in dieser Anmeldung als im Sinne von möglich (d. h. mit der Fähigkeit zu, in der Lage sein zu) verwendet ist, und nicht in einem verpflichtenden Sinne (d. h. muss). Der Begriff „enthalten" und Ableitungen davon sind im Sinne von „enthaltend aber nicht eingeschränkt darauf" zu verstehen. Der Begriff „verbunden" bedeutet „direkt oder indirekt verbunden", und der Begriff „gekoppelt bzw. verbunden" bedeutet „direkt oder indirekt gekoppelt oder verbunden".

ART BZW. ARTEN ZUM AUSFÜHREN DER ERFINDUNG

In 1 ist eine Blockansicht einer Ausführungsform eines Systems mit einer seriell verbundenen Kette aus Speichermodulen gezeigt. Ein System 50 umfasst einen Hauptrechner bzw. einen Host 100, der mit einem Systemspeicher 125 über eine Speicherverbindung 110a verbunden ist. Das System 50 kann ausgebildet sein, um als ein Teil eines Computergeräts, etwa eines Computersystems für beispielsweise eines Server- (Dienstleister-) systems zu arbeiten. Der Systemspeicher 125 umfasst ein Speichermodul 150a, das mit einem Speichermodul 150b über eine Speicherverbindung 110b verbunden ist. Das Speichermodul 150b ist so gezeigt, dass es mit einer Speicherverbindung 110c gekoppelt ist, die ihrerseits mit einem weiteren Speichermodul (nicht gezeigt) nach Bedarf verbunden sein kann, um eine seriell verbundene Kette aus Speichermodulen zu bilden, die wiederum mit dem Host 100 verbunden ist. Anzumerken ist, dass obwohl zwei Speichermodule in der Kette gezeigt sind, es auch möglich ist, dass ein oder mehrere Speichermodule auf diese Weise verbunden sind. Ferner ist zu beachten, dass Komponenten, die ein Bezugszeichen aufweisen, an das sich ein Buchstabe anschließt, auch benannt werden können, indem allgemein auf das Bezugszeichen alleine verwiesen wird. Wenn beispielsweise im Allgemeinen auf alle Speichermodule Bezug genommen wird, können diese als Speichermodul 150 bezeichnet sein.

In der dargestellten Ausführungsform umfasst das Speichermodul 150a einen Speichersteuerungsknoten 160a, der mit mehreren Speicherbauelementen verbunden ist, die als Speicherchip 171a bis 171n bezeichnet sind, wobei n die Komponentenanzahl nach entsprechendem Bedarf sein kann. In einer Ausführungsform kann der Speichersteuerungsknoten 160a mit den Speicherchips über eine beliebige Art einer Speicherverbindung gekoppelt sein. Beispielsweise kann in einer Ausführungsform die Speicherverbindung eine typische Adressen-, Steuerungs- und Datenbuskonfiguration sein.

In ähnlicher Weise umfasst das Speichermodul 150b einen Speichersteuerungsknoten 160b, der mit mehreren Speicherbauelementen gekoppelt ist, die als Speicherchips 181a bis 181n bezeichnet sind, wobei n eine entsprechende Zahl nach Bedarf sein kann. In einer Ausführungsform kann der Speichersteuerungsknoten 160b mit den Speicherchips über eine beliebige Art einer Speicherverbindung verbunden sein, wie dies zuvor beschrieben ist. Zu beachten ist, dass jeder der Speicherchips 171a bis 171n und 181a bis 181 ein beliebiges Speicherbauelement, beispielsweise ein Speicherbauelement innerhalb der Gruppe der DRAM-Speicherbauelemente sein kann.

In der dargestellten Ausführungsform bilden die Speicherverbindungen 110a bis 110c eine Speicherverbindung. In einer Ausführungsform bildet jede der Speicherverbindungen 110a bis 110c eine Speicherverbindung von Punkt zu Punkt, die als zwei Sätze von unidirektionalen Leitungen eingerichtet ist. Ein Satz der uni-direktionalen Leitungen wird als eine Abwärtsverbindung bezeichnet und ist ausgebildet, Transaktionen weiterzuleiten, die von dem Host 100 in eine nachgeordnete Richtung bzw. „Stromabwärtsrichtung" wegführen. Der andere Satz aus uni-direktionalen Leitungen wird als eine Aufwärtsverbindung bezeichnet und ist ausgestaltet, Transaktionen weiterzuleiten, die in Richtung zu dem Host 100 aus der vorgeordneten Richtung bzw. „Stromaufwärtsrichtung" vorliegen. Ferner kann in einer Ausführungsform jeder Satz aus unidirektionalen Leitungen eingerichtet sein, indem mehrere differenzielle Signalpaare verwendet werden. In einer Ausführungsform umfasst jede Speicherverbindung 110 eine 18-Bit-Abwärtsverbindung und eine 16-Bit-Aufwärtsverbindung, wobei jedes Bit ein differenzielles Signalpaar ist. Wie nachfolgend im Zusammenhang mit der Beschreibung der 5a bis 5d detaillierter dargelegt ist, kann die Speicherverbindung, die aus den Speicherverbindungen 110 gebildet ist, so konfiguriert sein, um Pakete weiterzuleiten.

Allgemein gesagt, alle Transaktionen von dem Host 100 laufen stromabwärts bzw. in die nachgeordnete Richtung über alle Speichermodule 150 auf der Abwärtsverbindung und alle Antworttransaktionen laufen stromaufwärts von dem antwortenden Speichermodul 150 durch jedes stromaufwärtige Speichermodul 150 mit der Aufwärtsverbindung. Genauer gesagt, in einer Ausführungsform kann der Host 100 das Abrufen oder Speichern von Daten in dem Systemspeicher 125 anfordern. In Reaktion auf die Anforderung des Hosts 100 initiiert die Speichersteuerung 105 eine entsprechende Transaktion, etwa eine Speicherlesetransaktion oder eine Speicherschreibtransaktion. Die Speichersteuerung 105 übermittelt die Transaktion zu dem Systemspeicher 125 über die Speicherverbindung 110a. In der dargestellten Ausführungsform wird die Transaktion von dem Speichersteuerungsknoten 160a des Speichermoduls 150a empfangen.

In Reaktion auf den Empfang der Transaktion ist der Speichersteuerungsknoten 160a ausgebildet, die empfangene Transaktion zu dem Speichermodul 150b über die Speicherverbindung 110b ohne Decodierung der Transaktion weiterzuleiten. Dies wird als Weiterleiten der Transaktion in der Stromabwärtsrichtung bezeichnet. Somit wird jede auf einer Abwärtsverbindung von einem gegebenen Speichersteuerungsknoten 160 eines gegebenen Speichermoduls 150 empfangenen Transaktion zu dem nächsten Speichermodul 150 in der Kette weitergeleitet, die mit der Abwärtsverbindung gekoppelt ist, ohne dass die Transaktion decodiert wird. In einer Ausführungsform kann das Decodieren der Transaktion parallel zu dem Weiterleiten der Transaktion stattfinden. In anderen Ausführungsformen kann des Decodieren der Transaktion von statten gehen, nachdem die Transaktion weitergeleitet ist. Eine detailliertere Beschreibung der Funktion des Weiterleitens in der Stromabwärtsrichtung kann nachfolgend bei der Beschreibung der 3 erhalten werden.

Wenn in ähnlicher Weise die Speichersteuerung 105 beispielsweise eine Leseanforderungstransaktion initiiert, antwortet das Speichermodul 150 mit dem Speicherplatz, der der Adresse in der Anforderung entspricht, mit den angeforderten Daten. Die Antwort wird über die Aufwärtsverbindung des Speichermoduls in Richtung zum Host 100 übermittelt. Wenn es dazwischenliegende Speichermodule zwischen dem sendenden Speichermodul und dem Host 100 gibt, leitet das dazwischenliegende Speichermodul die Antworttransaktion auf ihrer Aufwärtsleitung zu dem Host 100 oder zu dem nächsten Speichermodul in der Kette, das in der Aufwärtsrichtung vorhanden ist. Wenn ferner das antwortende Speichermodul bereit ist, die Antwort zu senden, kann dieses die Antwort in eine Sequenz aus Transaktionen einfügen, die auf der Aufwärtsverbindung stromaufwärts weitergeleitet werden. Eine detaillierte Beschreibung dieser Funktion zur Weiterleitung in Stromaufwärtsrichtung kann nachfolgend im Zusammenhang mit 5 gefunden werden.

In einer Ausführungsform kann die Speichersteuerung 105 so ausgebildet sein, um Anforderungen an den Systemspeicher 125 zu stellen, ohne zu wissen, mit welchem Speichermodul 150a und 150b eine gewisse Adresse verknüpft ist. Beispielsweise kann jedem der Speichermodule 150 ein Bereich aus Speicheradressen während einer Systemkonfigurationssequenz zugewiesen werden. Jeder Speichersteuerungsknoten 160 kann eine Logik (in 1 nicht gezeigt) enthalten, die die Adresse einer ankommenden Anforderung decodieren kann. Somit kann ein Speichersteuerungsknoten 160 eines gegebenen Speichermoduls 150 einen Speicherlesezyklus oder einen Speicherschreibzyklus für die Speicherchips in dem gegebenen Speichermodul in 150 in Reaktion auf das Decodieren einer Speicheranforderung mit einer Adresse, die in den dem gegebenen Speichermodul 150 zugeordneten Adressenbereich liegt, initiieren. Wie nachfolgend detaillierter in Verbindung mit der Beschreibung der 2 gezeigt ist, kann in einer Ausführungsform jeder Speichersteuerungsknoten 160 eine DRAM-Steuerung (in 1 nicht gezeigt) zum Initiieren von Speicherzyklen in den Speicherchips aufweisen, mit der sie verbunden ist.

Ferner kann in einer Ausführungsform die Speichersteuerung 105 eine nachfolgende Speicherzugriffsanforderung vor dem Empfangen einer Antwort auf eine vorhergehende Speicherzugriffsanforderung initiieren. In einer derartigen Ausführungsform kann die Speichersteuerung 105 die anhängigen Anforderungen überwachen und damit die Antworten in einer unterschiedlichen Reihenfolge abarbeiten, in der sie ausgesendet wurden, Es ist zu beachten, dass in einer alternativen Ausführungsform jede der Speicherverbindungen 110 eine Punkt-zu-Punkt-Speicherverbindung bilden kann, die als ein einzelner Satz aus bidirektionalen Leitungen eingerichtet sein kann. Somit können Transaktionen sowohl stromaufwärts als auch stromabwärts auf dem Satz aus bidirektionalen Leitungen wandern. In einer derartigen Ausführungsform können die bidirektionalen (Leitungen als mehrere differenzielle Signalpaare-eingerichtet sein.

In 2 ist eine Blockansicht einer Ausführungsform eines Speichermoduls, etwa das in 1 gezeigte Speichermodul, dargestellt. Komponenten, die jenen in 1 gezeigten Komponenten entsprechen, sind der Einfachheit und Deutlichkeit halber in gleicher Weise bezeichnet. Das Speichermodul 150 umfasst einen Speichersteuerungsknoten 160, der mit Speicherchips 261 bis 261n über einen Speicherbus 265 verbunden ist. Der Speichersteuerungsknoten 160 umfasst eine Steuerungseinheit 240, die mit einer DRAM-Steuerung 250 verbunden ist. Die DRAM-Steuerung 250 ist mit den Speicherchips 261a bis 261n verbunden. Die Steuerungseinheit 240 umfasst eine Aufwärtsverbindungssteuerung 241 und eine Abwärtsverbindungssteuerung 242. Wie zuvor dargestellt ist, kann der Speicherbus 265 eine beliebige Art einer Speicherverbindung sein. In der dargestellten Ausführungsform ist der Speichersteuerungsknoten 160 mit einer Speicherverbindung 110a in der Aufwärtsrichtung und mit einer Speicherverbindung 110b in der Abwärtsrichtung verbunden. Ferner ist zu beachten, dass die Arbeitsfrequenz des Speicherbusses 265 unabhängig von der Arbeitsfrequenz der Speicherverbindungen 110 ist.

In der dargestellten Ausführungsform kann die Aufwärtsverbindungssteuerungseinheit 241 ausgebildet sein, Pakete, die von einem weiter stromabwärts liegenden Speichermodul empfangen werden, zu empfangen und weiterzuleiten. Das Empfangen und Weiterleiten der vorgeordneten Pakete ergibt eine „stromaufwärtige" bzw. eine stromaufwärts gerichtete Transaktionssequenz. Des weiteren kann die Aufwärtsverbindungssteuerungseinheit 241 ausgebildet sein, Pakete in den Transaktionsstrom einzufügen, die aus dem Speichermodul 150 herrühren.

In der dargestellten Ausführungsform kann die Abwärtsverbindungssteuerungseinheit 242 ausgebildet sein, Pakete zu empfangen, die von dem Host stammen und, wenn ein Speichermodul in der Abwärtsrichtung angeschlossen ist, um diese Pakete zu dem stromabwärtigen Speichermodul weiterzuleiten. Des weiteren kann die Abwärtsverbindungssteuerungseinheit 242 ausgebildet sein, die Pakete zu kopieren und zu decodieren. In einer Ausführungsform kann, wenn die Pakete Adressen aufweisen, die innerhalb eines Adressenbereichs liegen, der dem Speichermodul 150 zugewiesen ist und das Paket eine Speicherzugriffsanforderung ist, die Abwärtsverbindungssteuerungseinheit 242 den mit dem Paket verknüpften Befehl an die DRAM-Steuerung 250 weiterleiten. In einer Ausführungsform ist die DRAM-Steuerung 250 ausgebildet, Speicherzyklen in den Speicherchips 261a bis 261n in Reaktion auf Speicherbefehle von dem Speichersteuerungsknoten 160 zu initiieren. Wenn jedoch das Paket keine Speicheranforderung ist, sondern stattdessen ein Konfigurationspaket repräsentiert, kann die Abwärtsverbindungssteuerungseinheit 242 den mit dem Paket verknüpften Konfigurationsbefehl zu der Kernlogik einer Steuereinheit 240 (nicht gezeigt) für die weitere Bearbeitung weiterleiten.

Zu beachten ist, dass in einer Ausführungsform der Speichersteuerungsknoten 160 das Paket fallen lassen bzw. verwerfen kann, wenn das Speichermodul 150 das letzte Speichermodul in der Kette ist und wenn das Paket keine Adresse enthält, die innerhalb des dem Speichermodul 150 zugeordneten Adressenbereichs liegt.

In einer Ausführungsform ist der Speichersteuerungsknoten 160 ausgebildet, ein Modulvorhanden-Signal (nicht gezeigt) zu empfangen, dass, wenn es von einem stromabwärtsliegenden Speichermodul aktiviert ist, einem vorgeordneten Speichermodul anzeigt, dass ein stromabwärtsliegendes Speichermodul vorhanden ist. In einer derartigen Ausführungsform kann der Speichersteuerungsknoten 160 die Transaktion verwerfen, wenn der Speichersteuerungsknoten 160 eine Transaktion empfängt und kein stromabwärtsliegendes Speichermodul als anwesend erkannt ist. In einer speziellen Implementierung kann, wenn ein gegebenes Speichermodul 150 in einen Sockel eingefügt wird, das eingefügte Speichermodul eine Signalmasse an das Modul-vorhanden-Signal anlegen. Somit kann ein aktives Modul-vorhanden-Signal ein aktiv tiefpegeliges Signal sein.

Zu beachten ist, dass, obwohl das Modul-Vorhanden-Signal aktiv ist, wenn eine Signalmasse in der zuvor beschriebenen Ausführungsform angelegt wird, es möglich ist, dass in andern Ausführungsformen andere Spannungspegel an das Modul-vorhanden-Signal angelegt werden, um anzuzeigen, dass ein Speichermodul vorhanden ist.

In 3 ist eine Blockansicht einer Ausführungsform einer Abwärtsverbindungssteuerungseinheit gezeigt. In der in 3 gezeigten Ausführungsform kann eine Abwärtsverbindungssteuerungseinheit 342 repräsentativ für die Abwärtsverbindungssteuerungseinheit 242 aus 2 sein. Die Abwärtsverbindungssteuerungseinheit 232 ist angeschlossen, um stromabwärtsgerichtete Transaktionen auf einer Abwärtsverbindung 312a zu empfangen und diese stromabwärtsgerichteten Transaktionen auf der Abwärtsverbindung 312b weiterzuleiten. In einer Ausführungsform können die Abwärtsverbindungen 312a und 312b die Abwärtsverbindungen 212a bzw. 212b aus 2 repräsentieren. Zu beachten ist, dass, wie zuvor beschrieben ist, die Abwärtsverbindung 312a und 312b mehrere Bits enthalten. Beispielsweise können in einer Ausführungsform die Abwärtsverbindungen 312a und 312b jeweils 18-Bit-Abwärtsverbindungen sein. Des weiteren kann die Abwärtsverbindungssteuerungseinheit 342 ausgebildet sein, ein Inbetrieb-Signal 371 von einem vorgeordneten Speichermodul oder dem Host 100 zu empfangen und ein Inbetrieb-Signal 372 zu einem nachgeordneten Speichermodul zu senden.

In der dargestellten Ausführungsform umfasst die Abwärtsverbindungssteuerungseinheit 342 eine Phasenjustiereinheit 310, die die ankommenden Transaktionen empfängt. Die Phasenjustiereinheit 310 ist mit einer Sendeeinheit 315 und eine Datenwiedergewinnungseinheit 320 verbunden. Die Datenwiedergewinnungseinheit 320 ist mit einem Synchronisations-zuerst-hinein-zuerst-heraus-Puffer (FIFO) 325 verbunden, der mit einer Adressierdecodierlogik 330 verbunden ist. In einer Ausführungsform ist der Sync-FIFO 325 mit einer DRAM-Steuerung, etwa der DRAM-Steuerung 250, und der Kernlogik in der Steuerungseinheit 240 aus 2 verbunden. Zu beachten ist, dass in der in 3 gezeigten Ausführungsform die Phasenjustiereinheit 310, die Sendeeinheit 315 und die Datenwiedergewinnungseinheit 320 an jedem Bit der Abwärtsverbindung unabhängig in einer Bit-weisen Art operieren können. In anderen Ausführungsform können die Phasenjustiereinheit 310, die Sendeeinheit 315 und die Datenwiedergewinnungseinheit 320 im Wesentlichen gleichzeitig an allen Bits der Abwärtsverbindung operieren.

Um die erforderliche Speicherbandbreite bereitzustellen, kann es für den Speichersteuerungsknoten 160 wichtig sein, in effizienter Weise empfangene Transaktionen zu den nachgeordneten Speichermodulen zu übertragen. Folglich werden von der Abwärtsverbindungssteuerungseinheit 342 empfangene Transaktionen blind stromabwärts weitergeleitet. In einer Ausführungsform wird jedes empfangene Bit in der Phase mittels der Phasenjustiereinheit 310 eingestellt und zu der Sendeeinheit 315 ohne Decodierung gesendet, um dieses dann auf der Abwärtsverbindung 312b zu senden. Des weiteren wird jedes empfangene Bit zur Bearbeitung zu der Datenwiedergewinnungseinheit 320 gesendet.

In einer Ausführungsform ist die Phasenjustiereinheit 310 ausgebildet, um für jedes Bit dynamisch die Phase des lokalen Abtasttaktsignals einzustellen, um es damit der Abwärtsverbindungssteuerungseinheit 342 zu ermöglichen, in der Mitte des empfangenen Datensignals eine Abtastung vorzunehmen. Beispielsweise wird in einer Ausführungsform ein Referenztaktsignal von dem Host zu einer Phasenverriegelungsschleife (PLL) (nicht gezeigt) in jedem Speichersteuerungsknoten 160 zugeleitet. Die PLL erzeugt das lokale Abtasttaktsignal sowie das Sendetaktsignal innerhalb der Abwärtsverbindungssteuerungseinheit 342. Die Phasenjustiereinheit 310 ist ausgebildet, die mittlere Phase des eintreffenden Datenstroms zu überwachen. Die Phasenjustiereinheit 310 kann ferner ausgebildet sein, einen statischen Bit-Versatz zu kompensieren, der durch Bearbeitungsschwankungen hervorgerufen wird, und um Schwankungen mit geringer Frequenz der Datenphase, die durch Spannungs- und Temperaturschwankungen hervorgerufen werden, zu überwachen und einen Phase-Jitter mit geringer Frequenz zu kompensieren, der auf dem Referenztaktsignal vorliegen kann und nicht von der PLL des Knotens erkannt wird. Die Phasenjustiereinheit 310 filtert den Hochfrequenzjitter, der durch Zwischensymbolstörungen, Übersprechen oder reflektiertes Rauschen hervorgerufen wird, und das Hochfrequenzphasenrauschen, das durch den Sender erzeugt werden kann.

Um die Phasenjustierung des lokalen Abtasttaktsignals zu ermöglichen, kann es erforderlich sein, eine ausreichend große Anzahl an Übergängen (oder eine Übertragungsdichte) auf jeden Bit der Abwärtsverbindung 312a vorzusehen. In einer Ausführungsform wird die Übergangsdichte bereitgestellt, indem die auf jedem Bit übertragenen Daten verschlüsselt und anschließend die empfangenen Daten während des Empfangs entschlüsselt werden. In einer Ausführungsform werden die Daten durch eine Exklusiv-Oder- (XOR) Funktion der Daten mit einer Pseudozufallsbinärsequenz (PRBS) verschlüsselt. Ein lineares Rückkopplungsschieberegister (LFSR) kann die PRBS unter Anwendung eines vorgegebenen Saat-Polynoms erzeugen. In einer weiteren Ausführungsform kann die Übergangsdichte bereitgestellt werden, indem Synchronisierungspakete gesendet werden, die vorbestimmte Nutzdatenmengen besitzen. In einer derartigen Ausführungsform können die vorbestimmten Nutzdatenmengen ein zufälliges oder pseudozufälliges Muster enthalten, das eine ausreichende Anzahl an Übergängen aufweist.

Unabhängig von der Art und Weise, in der die Übergangsdichte erreicht wird, ist die Datenwiedergewinnungseinheit 320 ausgebildet, die Datenbits zu regenerieren. In Ausführungsformen, in denen eine Verschlüsselung verwendet ist, kann die Datenwiedergewinnungseinheit 320 ausgebildet sein, die empfangenen Daten unter Anwendung der gleichen PRBS zu entschlüsseln, wie sie für die Verschlüsselung der Daten verwendet wurde. Dem gegenüber können in Ausführungsformen; die Synchronisationspakete zum Erreichen der Übergangsdichte verwenden, die Datenwiedergewinnungseinheit 320 einfach die Synchronisationspaketdaten unberücksichtigt lassen oder verwerfen, sobald die Phasenjustiereinheit 310 das Einstellen des lokalen Abtasttaktsignals beendet hat.

In der dargestellten Ausführungsform ist der Sync-FIFO 325 ausgebildet, die eintreffenden Datenbits zur Verwendung durch die Kernlogik der Steuerungseinheit 240 zu speichern. Da beispielsweise die Transaktionen in Paketen gesendet werden, können die empfangenen Bits in dem Sync-FIFO 325 gespeichert und für die Decodierung neu formatiert werden. Die empfangenen Pakete werden dann durch die Adressendecodierlogik 330 decodiert. Wie zuvor dargestellt ist, kann jedem Speichermodul 150 ein Bereich aus Speicheradressen zugeordnet sein. Des weiteren kann jedem Speichersteuerungsknoten 160 eine Knotenadresse zur Verwendung in Konfigurationstransaktionen zugewiesen sein. Wenn eine Transaktionsadresse decodiert wird und eine Übereinstimmung erkannt wird, kann die Befehlsinformation herausgelöst und verarbeitet werden. In einer Ausführungsform kann der decodierte Befehl zu der DRAM-Steuerung 250 gesendet werden, wenn die Transaktion eine Speicherzugriffsanforderung ist, die eine Adresse besitzt, die mit einer dem Speichersteuerungsknoten 160 verknüpften Speicheradresse übereinstimmt. Wenn die Transaktion eine Konfigurationstransaktion ist, kann der decodierte Befehl zu der Kernlogik der Steuerungseinheit 240 gesendet werden. Wenn ferner die Adressendecodierlogik 330 keine Übereinstimmung erkennt, kann das Paket verworfen werden oder unberücksichtigt bleiben.

In der dargestellten Ausführungsform ist die Phasenjustiereinheit 335 angeschlossen, um das eintreffende Inbetrieb-Signal 371 zu empfangen. Die Phasenjustiereinheit 335 ist ferner mit der Datengewinnungseinheit 350 verbunden, die wiederum mit einer „In-Betrieb"-Pulsinjektionseinheit 355 gekoppelt ist. Die Inbetrieb-Puls-Injektionseinheit 355 ist mit der Sendeeinheit 360 verbunden.

In der dargestellten Ausführungsform funktionieren die Phasenjustiereinheit 335 und die Datenwiedergewinnungseinheit 350 in ähnlicher Weise wie die Phasenjustiereinheit 310 bzw. die Datenwiedergewinnungseinheit 320. Jedoch ist in einer Ausführungsform das Inbetrieb-Signal 371 ein Einzelbit-Differenzsignal und kein Mehrfach-Bit-Signal. Das Inbetrieb-Signal 371 und das Inbetrieb-Signal 372 werden verwendet, um sicherzustellen, dass Knoten in der Nähe der Unterseite der seriellen Kette ausreichend Zeit bereit stellen, um Pakete einzuführen. In einer Ausführungsform enthält das Inbetrieb-Signal 371 eine Anzeige hinsichtlich der Anzahl von Paketen, die in die Stromaufwärtstransaktionssequenz von allen Speichermodulen, die stromaufwärts liegen, eingefügt werden. Folglich enthält das Inbetrieb-Signal 372 eine Anzeige der Gesamtzahl- an Paketen, die in die Stromaufwärtstransaktionssequenz von allen Speichermodulen eingefügt werden, die stromaufwärts liegen, und enthält eine Anzeige der Anzahl von Paketen, die lokal von dem liegen, und enthält eine Anzeige der Anzahl von Paketen, die lokal von dem Speichersteuerungsknoten 160 eingefügt werden.

In einer Ausführungsform ist die Inbetrieb-Puls-Injektionseinheit 355 ausgebildet, Daten entsprechend der Anzahl an Paketen zu empfangen, die in die Stromaufwärtstransaktionssequenz von allen Speichermodulen, die stromaufwärts angeordnet sind, eingefügt werden. Des weiteren ist die Inbetrieb-Puls-Injektionseinheit 355 ausgebildet, eine Indikation der Kernlogik der Steuerungseinheit 240 zu empfangen, wobei die Indikation der Anzahl an Paketen entspricht, die in die Stromaufwärtstransaktionssequenz lokal von dem Speichersteuerungsknoten 160 eingefügt werden. Folglich ist die Inbetrieb-Puls-Injektionseinheit 355 ausgebildet, das Inbetrieb-Signal 372 zu erzeugen. In einer Ausführungsform können die Inbetrieb-Signale 371 und 372 einen Puls für jedes eingefügte Paket enthalten. Somit würde beispielsweise ein Signal, etwa ein Inbetrieb-Signal 372, das das Einfügen von 5 Paketen kennzeichnet, fünf Pulse enthalten. Es ist jedoch zu beachten, dass in anderen Ausführungsformen eine beliebige Anzahl an Pulsen für jedes eingefügte Paket enthalten sein kann. Wie nachfolgend detaillierter beschrieben ist, können Pakete als kurze Pakete oder lange Pakete gesendet werden. Folglich kann in einer Ausführungsform die Inbetrieb-Puls-Injektionseinheit 355 zwei Pulse für jedes eingefügte lange Paket erzeugen.

Des weiteren ist die Inbetrieb-Puls-Injektionseinheit 355 ausgebildet, eine Indikation für die Aufwärtsverbindungssteuerungseinheit 241 aus 2 bereitzustellen, die der Anzahl an Inbetrieb-Pulsen entspricht, die von stromaufwärts empfangen werden. In einer Ausführungsform kann, wenn ein Speichermodul das letzte Modul in der seriell verbundenen Kette ist, die Aufwärtsverbindungssteuerungseinheit 241 veranlassen, dass ein oder mehrere NOP-Pakete in die Stromaufwärtstransaktionssequenz in Abhängigkeit von der Anzahl der Inbetrieb-Pulse, die in dem Inbetrieb-Signal 371 empfangen werden, eingefügt werden. Beispielsweise kann in einer Implementierung für alle zwei empfangenen Inbetrieb-Pulse die Aufwärtsverbindungssteuerungseinheit 241 das Einfügen eines NOP-Pakets in die Stromaufwärtstransaktionssequenz veranlassen. Jedoch sind andere Ausführungsformen möglich, in denen andere Verhältnisse im Hinblick auf NOP-Pakete und empfangene Inbetrieb-Pulse verwendet werden.

In der dargestellten Ausführungsform ist die Sendeeinheit 360 ausgebildet, das Inbetrieb-Signal von der Inbetrieb-Puls-Injektionseinheit 355 zu empfangen. In einer Ausführungsform ist die Sendeeinheit 360 ferner ausgebildet, die Daten zu verschlüsseln, wie dies zuvor beschrieben ist, wobei ein LFSR vor dem Senden des Inbetrieb-Signals 372 verwendet wird. Alternativ kann die Sendeeinheit 360 Synchronisierungspakete einfügen, wie dies zuvor beschrieben ist.

In 4 ist eine Blockansicht einer Ausführungsform einer Aufwärtsverbindungssteuerungseinheit gezeigt. In der in 4 gezeigten Ausführungsform kann die Aufwärtsverbindungssteuerungseinheit 441 die Aufwärtsverbindungssteuerungseinheit 241, wie sie in 2 gezeigt ist, repräsentieren. Die Aufwärtsverbindungssteuerugseinheit 441 ist angeschlossen, um Stromaufwärtstransaktionen auf einer Aufwärtsverbindung 411b zu empfangen und um Stromaufwärtstransaktionen auf einer Aufwärtsverbindung 411a zu senden. Ferner ist die Aufwärtsverbindungssteuerungseinheit 241 ausgebildet, Pakete in die Stromaufwärtstransaktionssequenz, die in der Aufwärtsverbindung 411b empfangen wird, einzufügen. In einer Ausführungsform können die Aufwärtsverbindungen 411a und 411b die Aufwärtsverbindungen 211a bzw. 211b aus 2 repräsentieren. Zu beachten ist, dass, wie zuvor beschrieben ist, die Aufwärtsverbindungen 411a und 411b mehrere Bits bzw. Bitleitungen aufweisen. Beispielsweise können in einer Implementierung die Aufwärtsverbindungen 411a und 411b jeweils 16-Bit-Aufwärtsverbindungen sein.

In der dargestellten Ausführungsform umfasst die Aufwärtsverbindungssteuerugseinheit 441 eine Phasenjustiereinheit 410, die die eintreffenden Stromaufwärtstransaktionen empfängt. Die Phasenjustiereinheit 410 ist mit einer Datenwiedergewinnungseinheit 415 verbunden.

Um die erforderliche Speicherbandbreite bereitzustellen, kann es für den Speichersteuerungsknoten 160 wichtig sein, in effizienter Weise empfangene Stromaufwärtstransaktionen zu vorgeordneten Speichermodulen oder zu dem Host weiterzuleiten. Ähnlich zu der Abwärtsverbindungssteuerungseinheit 342 werden von der Aufwärtsverbindungssteuerungseinheit 441 empfangene Transaktionen stromaufwärts weitergeleitet. Im Gegensatz zu der Abwärtsverbindungssteuerungseinheit 342 kann die Aufwärtsverbindungssteuerungseinheit 441 lokal erzeugte Pakete in die Stromaufwärtstransaktionssequenz einfügen.

In der dargestellten Ausführungsform funktioniert die Phasenjustiereinheit 410 in ähnlicher Weise wie die Phasenjustiereinheit 310. Folglich ist die Phasenjustiereinheit 410 ausgebildet, für jedes Bit dynamisch die Phase des lokalen Abtasttaktsignals einzustellen, um es damit der Aufwärtsverbindungssteuerungseinheit 441 zu ermöglichen, in der Mitte des empfangenen Datensignals eine Abtastung vorzunehmen, wie dies zuvor beschrieben ist. In ähnlicher Weise ist die Datenwiedergewinnungseinheit 410 ausgebildet, Datenbits herzustellen, wie dies im Zusammenhang mit der Beschreibung der Datenwiedergewinnungseinheit 320 erläutert ist.

In der dargestellten Ausführungsform ist die Datenwiedergewinnungseinheit 415 mit einem Multiplexer 430 verbunden, der mit der Sendeeinheit 435 verbunden ist. Wenn die Aufwärtsverbindungssteuerungseinheit 441 keine Pakete aufweist, die in die Stromaufwärtstransaktionssequenz einzubinden sind, ist die Aufwärtsverbindungssteuerungseinheit 441 ausgebildet, empfangene Transaktionen in der Aufwärtsverbindung 411a weiterzuleiten. In einer Ausführungsform kann eine Paketbegrenzungsüberwachungseinheit 450 Steuerungssignale zu dem Multiplexer 430 zuleiten, die es ermöglichen, dass die empfangenen Transaktionen verschlüsselt und von der Sendeeinheit 435 gesendet werden. In einer Ausführungsform kann die Sendeeinheit 435 die zu sendenden Daten unter Anwendung eines LFSR, wie dies zuvor beschrieben ist, verschlüsseln, während in andern Ausführungsformen die Sendeeinheit 435 Synchronisationspakete in der zuvor beschriebenen Weise einfügen kann.

Jedoch werden in einer Ausführungsform die empfangenen Daten von der Datenwiedergewinnungseinheit 415 in den datenhaltenden FIFO 420 für eine spätere Sendung gespeichert, wenn einzufügende Pakete empfangen und innerhalb eines Einspeise-FIFO's 425 von der Knotenkernlogik empfangen und gespeichert werden. Wenn das Senden des aktuellen weitergeleiteten Pakets abgeschlossen ist, werden die in dem Einspeise-FIFO 425 gespeicherten Daten einem Eingang das Multiplexers 430 zugeleitet. Des Weiteren überwacht die Paketbegrenzungsüberwachungseinheit 450 die Paketgrenzen von aus der Aufwärtsverbindung 411b empfangenen Pakete. Die Paketbegrenzungsüberwachungseinheit 450 stellt sicher, dass die eingefügten Pakete nicht mit den weitergeleiteten Paketen kollidieren, indem Steuerungssignale zu einem geeigneten Zeitpunkt an den Mulitplexer 430 ausgegeben werden, wodurch es ermöglicht wird, dass das wartende, einzufügende Paket von der Sendeeinheit 435 verschlüsselt und gesendet wird. Unter der Annahme, dass einzufügende Pakete in dem Einspeise-FIFO 425 gespeichert sind und dass weiterzuleitende Pakete in dem Halter-FIFO 420 gespeichert sind, kann die Paketbegrenzungsüberwachungseinheit 450 den Multiplexer 430 selektiv so ansteuern, dass jede Paketart an die Sendeeinheit 435 in Abhängigkeit eines Fairness-Algorithmus weitergeleitet werden kann. Der Fairness-Algorithmus kann ein Algorithmus sein, der ausgestaltet ist, um ein Ausdünnen sowohl der einzufügenden Pakete als auch der weitergeleiteten Pakete für ein beliebiges Speichermodul zu verhindern. Zu beachten ist, dass auf der Aufwärtsverbindung 411b empfangene NOP-Pakete verworfen werden können, anstatt dass diese innerhalb des Halte-FIFO's gespeichert werden oder anstatt dass diese weitergeleitet werden.

Anzumerken ist, dass in einer alternativen Ausführungsform zur Ermöglichung einer verbesserten Latenzzeit für weitergeleiteten Transaktionsverkehr die Phasenjustiereinheit 410 mit dem Halte-FIFO 420 und dem Multiplexer 430 verbunden sein kann, wie dies durch die gestrichelten Linien angedeutet ist. Eine derartige Ausführungsform kann eine verbesserte Verarbeitungszeit liefern, wenn kein eingefügter Datenverkehr vorhanden ist.

Ferner ist zu beachten, dass in einer Ausführungsform vor einer Kommunikation zwischen dem Host 100 und jedem Speichersteuerungsknoten 160 jedes Speichermoduls 150 eine Initialisierungssequenz ausgeführt werden kann, um eine Verschlüsselungs/Entschlüsselungslogik, Sync-FIFO's und Phasenjustierlogik-Schaltungen zu synchronisieren, die in dem Host 100 und in jedem Speichersteuerungsknoten 160 vorhanden sein können. Beispielsweise kann in einer Ausführungsform während des Zurücksetzens die Initialisierungssequenz enthalten, dass der Host 100 ein oder mehrere Synchronisierungsmuster stromabwärts sendet. Die Synchronisierungsmuster können von jedem Speichersteuerungsknoten 160 zu dem Host 100 zurückgesendet werden. Die Synchronisierungsmuster können verwendet werden, um allen Empfängern mit einer Verschlüsselungs-/Entschlüsselungslogik ein „Einrasten" in die Synchronisierung zu ermöglichen.

Die Speicherverbindung

Es sei gemeinsam auf 1 und 2 verwiesen; die Speicherverbindung bzw. Zwischenspeicherverbindung umfasst eine oder mehrere Hochgeschwindigkeits-Punkt-Punkt-Speicherverbindungen, etwa die Speicherverbindungen 110a, 110c, wovon jede eine Aufwärtsverbindung, etwa die Aufwärtsverbindung 211a, und eine Abwärtsverbindung, etwa die Abwärtsverbindung 212a aufweist. Wie zuvor dargelegt ist, können in einer Ausführungsform die Abwärtsverbindungen 18-Bit-Verbindungen sein, während die Aufwärtsverbindungen 16-Bit-Verbindungens sein können. Somit kann eine 18-Bit-Abwärtsverbindung 16 Steuer-, Adressen- und Daten (CAD) Signale, ein Inbetrieb-Signal und ein Steuer- (CTL) Signal enthalten. Eine vorgegebene Aufwärtsverbindung kann 16 Steuer-, Adressen- und Daten- (CAD) Signale enthalten. Zu beachten ist, dass jedoch in einer alternativen Ausführungsform eine Aufwärtsverbindung, etwa die Aufwärtsverbindung 211a auch ein CTL-Signal enthalten kann.

Zusätzlich zu den Hochgeschwindigkeitsverbindungen können andere Signale zu jedem Speichermodul 150 zugeführt werden. Beispielsweise können in einer Ausführungsform ein Rücksetzsignal, ein Versorgung-OK-Signal und ein Referenztaktsignal von dem Host 100 zu jedem Speichermodul 150 zugeführt werden. Des weiteren können auch andere Signale zwischen den jeweiligen Speichermodulen vorgesehen sein. Beispielsweise kann, wie zuvor beschrieben ist, ein nächstes-Speichermodul-vorhanden-Signal zwischen Speichermodulen ausgetauscht werden.

Allgemein gesagt, können die in den Speicherverbindungen 110 übertragenen Transaktionen in Konfigurations- und Steuerungstransaktionen und Speichertransaktionen eingeordnet werden. In einer Ausführungsform können die Konfigurations- und Steuertransaktionen verwendet werden, um den Speichersteuerungsknoten 160 zu konfigurieren. Z. B. können die Konfigurations- und Steuerungstransaktionen verwendet werden, um auf Konfigurationsregister zuzugreifen, einen Speicheradressenbereich zu einem Speichermodul zuzuordnen oder eine Knotenadresse zu einem Speichersteuerungsknoten zuzuordnen. Speichertransaktionen können verwendet werden, um auf Speicherstellen innerhalb der Speicherchips 261 bis 261n zuzugreifen.

Folglich gibt es in einer Ausführungsform zwei Arten der Adressierung, die unterstützt werden: die Knotenadressierung und die Speicheradressierung. Unter Anwendung der Knotenadressierung kennzeichnen acht Knotenbits den speziellen Speichersteuerungsknoten, auf den zugegriffen wird. In einer Ausführungsform kann eine Knotenadresse „FFh" eine Rundumsendung an alle Speichersteuerungsknoten kennzeichnen. Durch Anwendung der Speicheradressierung decodiert jeder Knoten den oberen Bereich der Adressenbits, um zu bestimmen, welcher Knoten die Anforderung akzeptieren soll, und decodiert den unteren Bereich, um die Speicherstelle zu bestimmen, auf die zuzugreifen ist. In einer Ausführungsform gibt es 40 Adressenbits, obwohl form gibt es 40 Adressenbits, obwohl berücksichtigt werden soll, dass andere Anzahlen an Adressenbits auch verwendet werden können.

In einer Ausführungsform ist jede der Speicherverbindungen ausgebildet, Transaktionen unter Anwendung eines oder mehrerer Pakete zu übermitteln. Die Pakete schließen Steuerungs- und Konfigurationspakete und Speicherzugriffspakete mit ein, wovon jedes eine Datenutzlast aufweist, die von der Art des Befehls abhängt, der von dem Paket getragen wird. Die Leitungssätze, die die Speicherverbindungen 110 bilden, können verwendet werden, um Steuerungsbefehle, Adressen und Daten zu transportieren.

Die Pakete können allgemein wie folgt gekennzeichnet werden: Jedes Paket enthält eine Anzahl an Bit-Positionen, wovon jede ein einzelnes Bit an Information repräsentiert. Jedes Paket ist in mehrere Bitzeiten unterteilt und während einer gegebenen Bitzeit werden alle Bitpositionen des Pakets abgetastet. Die Steuerungsinformationen und Daten teilen sich die Leitungen einer vorgegebenen Verbindung (beispielsweise CAD-Leitungen). Wie nachfolgend detaillierter beschrieben ist, sind in einer Ausführungsform Pakete das Vielfache von Bitpaaren und die erste Bitzeit jedes Pakets wird bei einer geraden Bitzeit abgetastet. Pakete beginnen mit einem Steuerungskopfteil, der eine Länge von 1 oder 2 Bitpaaren aufweisen kann. In einer Ausführungsform sind die ersten fünf Bits des Steuerungskopfteils die Befehlscodierung. Die Tabelle zeigt nachfolgend diverse Arten von Paketen und ihre zugeordneten Befehlscodierungen. Es ist jedoch zu beachten, dass die tatsächlichen in der Spalte 1 gezeigten Codierungen lediglich anschaulicher Natur sind und das andere Codierungen für jeden vorgegebenen Befehl verwendet werden können.

Tabelle 1. Paketarten und Befehlscodierungen

Ferner werden in einer Ausführungsform Pakete (mit Ausnahme von NOP-Paketen) mit einem Fehlererkennungscode (EDC) gesendet. Zu beachten ist, dass in einer Ausführungsform der EDC ein 32-Bit-zyklischer Redundanzcode (CRC) ist, obwohl in anderen Ausführungsformen nach Bedarf andere EDC's verwendet werden können. Des weiteren werden Adressen gesendet, indem die signifikantes Bitzeit zuerst gesendet wird, um damit die Decodierung innerhalb des Speichersteuerungsknotens 160 zu beschleunigen, während bei Daten das am wenigsten signifikante Byte zuerst gesendet wird. Es ist jedoch zu beachten, dass in anderen Ausführungsformen in den Adressen die am wenigsten signifikanteste Bit-Zeit zuerst gesendet werden kann und das bei Daten das signifikanteste Byte zuerst gesendet werden kann. Pakete können Nutzdaten aus Bytes und/oder Daten aufweisen. Pakete ohne Nutzdaten werden als Pakete mit nur Kopfteil bezeichnet. In einer Ausführungsform kann die Größe der kurzen Datenlesevorgänge bis zu der Hälfte einer programmierten Cache-Speicherzeilengröße betragen. Ferner kann die Größe von Daten für lange Lese- und Blockschreibvorgänge bis zu der programmierten Cache-Speicherzeilengröße betragen. Ferner kann die Größe der Daten für Byteschreibvorgänge bis zu einem Maximum von 64 Bytes betragen, unabhängig von der Einstellung der Cache-Speicherzeilengröße.

Zusätzlich zu der Information des Steuerungskopfteiles und des Befehlscodes, die in einem Paket enthalten sind, kann das CTL-Signal verwendet werden, um Informationen über das Paket zu transportieren. In der folgenden Tabelle 2 sind einigen beispielhafte CTL-Codierungen gezeigt.

Tabelle 2. CTL-Codierungen für die Verwendung für Stromabwärtsdatenverkehr

Unterschiedliche Werte für die CTL für den Kopfteil und die Nutzdatenbereiche eines Paketes können ausreichend Information bereitstellen, so dass Pakete mit nur Kopfteil in Nutzdaten eines weiteren Pakets eingefügt werden können. Dies kann zur Reduzierung der Verarbeitungszeit von Lesebefehlen nützlich sein, so dass diese ausgegeben werden können, während ein Schreibpaket gerade auf der Verbindungsleitung gesendet wird.

Tabelle 3 zeigt ein beispielhaftes Paket mit einem Nutzdatenbereich in Tabellenform. Das Paket in Tabelle 3 zeigt ferner, dass ein Paket mit nur Kopfteil in den Nutzdatenbereich während der Bitzeiten 4 bis 7 eingefügt ist.

Tabelle 3. Paket mit Nutzdaten und einem in die Nutzdaten eingefügten Paket mit nur Kopfteil

5a bis 5d zeigen beispielhafte Pakete, die auf die Speicherverbindungen 110a bis 110c aus 1 übertragen werden können. In 5a ist eine Ansicht einer Ausführungsform für ein Konfigurationslesepaket gezeigt. In der dargestellten Ausführungsform ist das Konfigurationslesepaket 510 16 Bits breit und enthält 4 Bitzeiten oder 2 Bitpaare.

Während der Bitzeit 0 wird der Befehlscode mit 5 Bit (z. B. OAh) in den Bitpositionen 0 bis 4 übertragen. Die Bitpositionen 5 bis 7 sind reserviert. Eine 8-Bit-Marke wird in den Bitpositionen 8 bis 15 übertragen. In einer Ausführungsform kann der Wert der Markierung von dem Host 100 beispielsweise verwendet werden, um ein stromaufwärtiges Antwortpaket mit einer anhängigen Stromabwärtsanforderung zu verknüpfen. Bei Nichtgebrauch kann das Markierungsfeld auf einen Wert von 00h festgelegt werden. Während der Bitzeit 1 wird die 8-Bit-Knotenadresse in den Bitpositionen 0 bis 7 übertragen. Ferner wird eine 8-Bit-Konfigurationsregisterzahl in den Bitpositionen 8 bis 15 übertragen. Während der Bitzeiten 2 und 3 werden die Bits 0 bis 15 und 16 bis 31 eines CRC in den Bitpositionen 0 bis 15 übertragen.

In 5b ist eine Ansicht einer Ausführungsform eines Konfigurationsschreibpaketes gezeigt. In der dargestellten Ausführungsform ist das Konfigurationsschreibpaket 515 ein 16-Bit breites Paket mit 6 Bitzeiten oder drei Bitpaaren.

Während der Bitzeit 0 wird der Befehlscode mit 5 Bits (z. B. OCh) in den Bitpositionen 0 bis 4 übertragen. Die Bitpositionen 5 bis 7 sind reserviert. Eine 8-Bit-Marke wird in den Bitpositionen 8 bis 15 übertragen. Während der Bitzeit 1 wird die 8-Bit-Knotenadresse in den Bitpositionen 0 bis 7 übertragen. Ferner wird die 8-Bit-Konfigurationsregisterzahl in den Bitpositionen 8 bis 15 übertragen. Während der Bitzeiten 2 und 3 werden die Bits 0 bis 15 und 16 bis 31 als Nutzdaten in den Bitpositionen 0 bis 15 übertragen. Während der Bitzeiten 4 und 5 werden die Bits 0 bis 15 und 16 bis 31 eines CRC in den Bitpositionen 0 bis 15 übertragen.

In 5c ist eine Ansicht einer Ausführungsform eines Speicherlesepaketes gezeigt. In der dargestellten Ausführungsform ist das Speicherlesepaket 520 16 Bits breit und enthält 6 Bitzeiten oder drei Bitpaare. Während der Bitzeit wird der Befehlscode mit 5 Bits (beispielsweise 10h oder 11h) in den Bitpositionen 0 bis 4 übertragen. Die Bitpositionen 5 bis 7 sind reserviert. Eine 8-Bit-Marke wird in den Bitpositionen 8 bis 15 übertragen. Während der Bitzeit 1 wird die Länge der Daten, die zurückgegeben werden sollen, in den Bitpositionen 0 bis 5 übertragen. In einer Ausführungsform bezeichnet ein Wert von 00h keine Daten, ein Wert von 01 h bezeichnet 2 Bitpaare aus Daten, ein Wert von 02h bezeichnet 4 Bitpaare aus Daten usw. Ein Lesevorgang mit der Länge 0 führt zu einem Bestätigungspaket (Ack), das an den Anforderer zurückgesendet wird. In einer Ausführungsform kann ein Lesevorgang für die Hälfte einer Cache-Zeile oder weniger zu einem kurzen RdResp (Leseantwortpaket), und ein Lesevorgang von mehr als der Hälfte einer Cache-Speicherzeile kann zu einem einzelnen langen RdResp (Leseantwortpaket) oder zu zwei kurzen RdResp (Leseantwortpaketen) führen. Die Cache-Zeilengröße kann durch Software in dem Konfigurationsregister des Host 100 von jedem Speichersteuerungsknoten 160 programmiert werden. Die Bits 6 bis 7 sind reserviert. Die Adressenbits 39 bis 32 der angeforderten Stelle in dem DRAM werden in den Bitpositionen 8 bis 15 übertragen.

Während der Bitzeit 2 werden die Adressenbits 31 bis 16 der angeforderten Stelle in dem DRAM in den Bitpositionen 0 bis 15 übertragen und während der Bitzeit 3 werden die Adressenbits 3 bis 15 der angeforderten Stelle in den DRAM in den Bitpositionen 3 bis 15 übertragen. Während der Bitzeit 3 wird auch die Paketpriorität in den Bitpositionen 0 bis 1 übertragen. In einer Ausführungsform kann die Priorität des Pakets die Priorität im Vergleich zu anderen Anforderungen kennzeichnen. Beispielsweise kann eine Prorität darin bestehen, alle Anforderungen mit geringerer Priorität zu verzögern, selbst wenn diese bereits in Beareitung sind, um diese spezielle Anforderung davor auszuführen. Die Bitposition 2 ist reserviert. Während der Bitzeiten 4 und 5 werden die Bit 0 bis 15 und 16 bis 31 eines CRC in den Bitpositionen 0 bis 15 übertragen.

5d zeigt eine Ansicht einer Ausführungsform eines Blockspeicherschreibpakets. In der dargestellten Ausführungsform ist das Blockspeicherschreibpaket 525 16 Bits breit und enthält 8-Bitzeiten oder 4-Bitpaare. Während der Bitzeit 0 wird der Befehlscode mit 5 Bits (beispielsweise 12h) in den Bitpositionen 0 bis 4 übertragen. Die Bitpositionen 5 bis 7 sind reserviert. Eine 8-Bit-Marke wird in den Bitpositionen 8 bis 15 übertragen.

Während der Bitzeit 1 wird die Länge der in dem Nutzdatenbereich übertragenen Daten in den Bitpositionen 0 bis 5 übertragen. In einer Ausführungsform bezeichnet ein Wert von 00h keine Daten, ein Wert von 01 h bezeichnet zwei Bitpaare aus Daten, ein Wert von 02h bezeichnet 4 Bitpaare aus Daten usw. Die Bits 6 bis 7 sind reserviert. Die Adressenbits 39 bis 32 der Speicherstelle in dem DRAM, in die geschrieben wird, werden in den Bitpositionen 8 bis 15 übertragen.

Während der Bitzeit 2 werden die Adressenbits 31 bis 16 der zu beschreibenden Stelle in dem DRAM in den Bitpositionen 0 bis 15 übertragen und während der Bitzeit 3 werden die Adressenbits 3 bis 15 der zu beschreibenden Speicherstelle in dem DRAM in den Bitpositionen 3 bis 15 übertragen. Auch wird während der Bitzeit 3 die Paketpriorität in den Bitpositionen 0 bis 1 übertragen. Die Bitposition 2 ist reserviert.

Während der Bitzeiten 4 und 5 werden die Bits 0 bis 15 und 16 bis 31 eines ersten Bitpaares der Nutzdaten in den Bitpositionen 0 bis 15 übertragen. Wenn mehr Daten geschrieben werden, werden nachfolgende Bitpaare in den Bits 0 bis 15 und 16 bis 31 nachfolgender Nutzdaten übertragen. Während der Bitzeiten 4+2N und 5+2N werden die Bits 0 bis 15 und 16 bis 31 eines CRC in den Bitpositionen 0 bis 15 übertragen. Zu beachten ist, dass obwohl 4 Paketarten gezeigt sind, andere Paketarten, die den in den Tabelle aufgeführten Befehlscodierungen entsprechen, verwendet werden können. Ferner ist zu beachten, dass obwohl diverse Felder der beispielhaften Pakete mit einer speziellen Anzahl an Bits gezeigt sind, es auch möglich ist, dass in anderen Ausführungsformen die diversen Felder jedes Pakets eine beliebige andere Anzahl an Bits nach Bedarf aufweisen kann.

6 ist eine Blockansicht einer Ausführungsform eines Computersystems. Das Computersystem 600 umfasst Prozessknoten 612a bis 612d, von denen jeder mit kohärenten Paketschnittstellenverbindungen 651a bis d verbunden ist. Jede Verbindung der kohärenten Paketschnittstelle 615 kann eine Hochgeschwindigkeits-Punkt-Punkt-Verbindung bilden. Die Prozessknoten 612a bis d können jeweils einen oder mehrere Prozessoren aufweisen. Das Computersystem 600 umfasst ferner einen I/O-Knoten 620, der mit dem Prozessknoten 612a über eine nicht kohärente Paketschnittstelle 650a verbunden ist. Der I/O-Knoten 620 kann mit einem weiteren I/O-Knoten (nicht gezeigt) in einer Kettenanordnung beispielsweise durch eine nicht kohärente Paketschnittstelle 650b verbunden sein. Der Prozessknoten 612a ist als Host-Knoten dargestellt und kann eine Host-Brücke zur Kommunikation mit dem I/O-Knoten 620 über die nicht kohärente (NC) Paketschnittstelle 650a aufweisen. Die Prozessknoten 612b bis d können ebenso Host-Brücken zur Kommunikation mit anderen I/O-Knoten (nicht gezeigt) aufweisen. Die nicht kohärenten Paketschnittstellenverbindungen, die durch die NC-Paketschnittstelle 650a bis b gebildet sind, können auch als Punkt-zu-Punkt-Verbindungen bezeichnet werden. Der I/O-Knoten 620 ist mit einem Paar aus peripheren Bussen 625a – b verbunden.

6 zeigt ferner entsprechende Systemspeicher (beispielsweise 617a und 617b), die mit den Prozessknoten 612a und 612b verbunden sind. In der dargestellten Ausführungsform repräsentieren der Prozessknoten 612a und 612b jeweils einen Host, wie er in 1 gezeigt ist, und jeder Systemspeicher 617 kann in einer Konfiguration eingerichtet sein, wie dies im Zusammenhang mit der Beschreibung der 1 und 2 zuvor dargelegt ist. Ferner können die Verbindungen zwischen jeweils dem Prozessknoten 612a und 612b und ihren entsprechenden Systemspeichern 617 eine Darstellung der Speicherverbindung sein, in der die Speicherverbindung 110c enthalten ist, wie sie zuvor in 1 und 2 beschrieben ist. Zu beachten ist, dass in anderen Ausführungsformen eine andere Anzahl an Prozessknoten verwendet werden kann. Des weiteren ist zu berücksichtigen, dass jeder Prozessknoten 612c und 612d in ähnlicher Weise mit einem entsprechenden Systemspeicher, etwa beispielsweise dem Systemspeicher 617 verbunden sein kann.

In der dargestellten Ausführungsform ist jede Verbindung der kohärenten Paketschnittstelle 615 als mehrere Sätze von unidirektionalen Leitungen (beispielsweise die Leitungen 615a werden zum Übertragen von Paketen von dem Prozessknoten 612a zu dem Prozessknoten 612b verwendet, und die Leitungen 615b werden zum Übertragen von Paketen von dem Prozessknoten 612b zu dem Prozessknoten 612c verwendet) eingerichtet. Andere Leitungssälze 615c bis d werden verwendet, um Pakete zwischen anderen Prozessknoten zu übertraden, wie dies in 1 gezeigt ist. Die kohärente Paketschnittstelle 615 kann in einer mit dem Cache-Speicher kohärenten Weise zur Kommunikation zwischen Prozessknoten („die kohärente Verbindung") betrieben werden. Ferner kann die nicht kohärente Paketschnittstelle 650 in einer nicht kohärenten Weise für eine Kommunikation zwischen den I/O-Knoten und einer Host-Brücke, etwa der Host-Brücke des Prozessknotens 612a („die nicht kohärente Verbindung) betrieben werden. Die Verbindung zwischen zwei und mehreren Knoten über kohärente Verbindungen kann als „kohärente Vernetzung" bezeichnet werden. In ähnlicher Weise können die Verbindungen zwischen zwei und mehreren Knoten mittels nicht kohärenter Verbindungen als eine „nicht kohärente Vernetzung" bezeichnet werden. Zu beachten ist, dass ein von einem Prozessknoten zu einem weiteren zu übertragendes Paket durch einen oder mehrere dazwischenliegende Knoten laufen kann. Beispielsweise kann ein von dem Prozessknoten 612a zu dem Prozessknoten 612c ausgesandtes Paket durch den Prozessknoten 612b oder den Prozessknoten 612d laufen, wie dies in 6 gezeigt ist. Es kann ein beliebiger geeigneter Algorithmus der Signalführung verwendet werden. In anderen Ausführungsformen des Computersystems 600 können mehr oder weniger Prozessknoten als in der in 6 gezeigten Ausführungsform verwenden.

Ein Beispiel einer Paketschnittstelle, etwa die nicht kohärente Paketschnittstelle 650, kann mit der HyperTransport-Technologie kompatibel sein. Die peripheren Busse 625a und 625b sind anschaulich für übliche periphere Busse, etwa einen peripheren Komponentenverbindungs- (PCI) Bus. Selbstverständlich können jedoch auch andere Busarten eingesetzt werden.

Ferner ist zu beachten, dass andere Konfigurationen des Computersystems möglich sind und hierin mit eingeschlossen sind. Beispielsweise liegt es im Rahmen der Erfindung, dass die zuvor mit den 1 bis 5 beschriebene Systemspeicherkonfiguration auch in Verbindung mit einem Computersystem eingesetzt werden kann, in welchem ein Prozessorchipsatz verwendet ist, der eine Nordbrücke enthält. In einer derartigen Ausführungsform kann eine Speichersteuerung in der Nordbrücke als der Host dienen.

Obwohl die vorhergehenden Ausführungsformen detailliert beschrieben sind, können zahlreiche Variationen und Modifizierungen für den Fachmann angesichts der zuvor offenbarten Lehre offenkundig werden. Es ist beabsichtigt, dass die folgenden Ansprüche alle derartigen Variationen und Modifizierungen umfassen.

Industrielle Anwendbarkeit

Diese Erfindung kann im Allgemeinen auf einen Computersystemspeicher angewendet werden.

Zusammenfassung

Ein System mit einem Hauptrechner (der mit einer seriell verbunden Kette aus Speichermodulen (verbunden ist, ist offenbart. In einer Ausführungsform umfasst jedes Speichermodul einen Speichersteuerungsknoten zum Steuern des Zugriffs auf mehrere Speicherchips) in dem Speichermodul. Die Speichermodule sind seriell in einer Kette mit einem Hauptrechner über mehrere Speicherverbindungen verbunden. Jede Speicherverbindung umfasst eine Aufwärtsverbindung zum Übertragen von Transaktionen zu dem Hauptrechner, und eine Abwärtsverbindung zum Übertragen von Transaktionen, die von dem Hauptrechner stammen, zu einem nächsten Speichermodul in der Kette. Die Aufwärtsverbindung und die Abwärtsverbindung können Transaktionen unter Anwendung von Paketen übertragen, die Steuerungs- und Konfigurationspakete und Speicherzugriffspakete umfassen. Der Speichersteuerungsknoten kann eine von einer ersten Abwärtsverbindung einer ersten Speicherverbindung empfangene Transaktion auf einer zweiten Abwärtsverbindung einer zweiten Speicherverbindung unabhängig vom Decodieren der Transaktion übertragen.

1 100Host bzw. Hauptrechner 105Speichersteuerung 110a, b, cSpeicherverbindung 125Systemspeicher 160a, 160bSpeichersteuerungsknoten 150a, 150bSpeichermodul 171a, b, n, 181a, b, nSpeicherchip 2 211a, bAufwärtsverbindung 212a, bAbwärtsverbindung 110a, b Speicherverbindung 150Speichermodul 261a, b, nSpeicherchip 250 DRAM-Steuerung 160Speichersteuerungsknoten 241Aufwärtsverbindungssteuerungseinheit 242Abwärtsverbindungssteuerungseinheit 3 342Abwärtsverbindungssteuerungseinheit 312a, bAbwärtsverbindung 371, 372„Inbetrieb" 310Phasenjustiereinheit 320Datenwiedergewinnungseinheit 330 Adressendecodierlogik 315Sendeeinheit 360Sendeeinheit 355Inbetrieb-Puls-Injektionseinheit 350 Datenwiedergewinnungseinheit 335Phasenjustiereinheit zur Aufwärtsverbindungssteuerungseinheit von Knotenkernlogik zu DRAM-Steuerung/Kernlogik 4 441 Aufwärtsverbindungssteuerungseinheit 411b, aAufwärtsverbindung 410Phasenjustiereinheit 415Datenwiedergewinnungseinheit 450Paketbegrenzungsüberwachungseinheit 435Sendeeinheit 420Halte-FIFO 425Einfügungs-FIFO 5a, 5b, 5c 510Konfigurationslesepaket BittimeBitzeit Command CodeBefehlscode TagMarke HubKnoten 515Konfigurationsschreibpaket DataDaten 520Speicherlesepaket LengthLänge AddressAdresse PriorityPriorität 525 Speicherschreibpaket 6 612a, bProzessknoten (Hauptrechner) 612c, dProzessknoten 617a, bSystemspeicher 620I/O-Knoten 615b kohärente Paketschnittstelle 615dNC-Paket Schnittstellenverbindung 625a, bperipherer Bus 650a NC-Paketschnittstellenverbindung

Anspruch[de]
  1. System (50) mit:

    einem Hauptrechner (100); und

    mehreren Speichermodulen (150a, 150b), die seriell in einer Kette mit dem Hauptrechner verbunden sind.
  2. System nach Anspruch 1, wobei jedes der mehreren Speichermodule einen Speichersteuerungsknoten (160a, 160b) aufweist, der angeschlossen ist, um einen Zugriff auf mehrere Speicherchips (261a bis n) zu steuern.
  3. System nach Anspruch 2, wobei die mehreren Speichermodule seriell in einer Kette mit dem Hauptrechner über mehrerer Speicherverbindungen (110a, b, c) verbunden sind, wobei jede Speicherverbindung eine Aufwärtsverbindung (211a) zum Übertragen von Transaktionen in Richtung zu dem Hauptrechner, und eine Abwärtsverbindung (213a) zum Übertragen von Transaktionen, die von dem Hauptrechner stammen, zu einem nächsten Speichermodul in der Kette aufweist.
  4. System nach Anspruch 3, wobei die Aufwärtsverbindung und die Abwärtsverbindung jeweils eine unidirektionale Verbindung repräsentieren, in der mehrere Signale enthalten sind, die ausgebildet sind, Transaktionen unter Anwendung von Paketen mit Steuer- und Konfigurationspaketen und Speicherzugriffspaketen zu übertragen, wobei zumindest ein Teil der Pakete Steuerungs-, Adressen- und Dateninformationen enthalten und wobei die Steuerungs-, Adressen- und Dateninformationen für eine gegebene Verbindung die gleichen Leitungen benutzen.
  5. System nach Anspruch 3, wobei der Speichersteuerungsknoten ausgebildet ist, eine Transaktion auf einer ersten Abwärtsverbindung (212a) einer ersten Speicherverbindung zu empfangen und die Transaktion auf einer zweiten Abwärtsverbindung (212b) einer zweiten Speicherverbindung unabhängig von dem Decodieren der Transaktion zu übertragen.
  6. System nach Anspruch 5, wobei der Speichersteuerungsknoten eine DRAM-Steuerung (250) umfasst, die ausgebildet ist, auf die mehreren Speicherchips zuzugreifen in Reaktion auf das Decodieren der Transaktion in einen Speicherbefehl mit einer Speicheradresse, die mit einer mit dem Speichersteuerungsknoten verknüpften Speicheradresse übereinstimmt.
  7. System nach Anspruch 3, wobei der Speichersteuerungsknoten ausgebildet ist, eine Transaktion auf einer ersten Aufwärtsverbindung einer ersten Speicherverbindung zu empfangen und die Transaktion auf einer zweiten Aufwärtsverbindung einer zweiten Speicherverbindung zu übertragen, und wobei der Speichersteuerungsknoten eine Steuereinheit aufweist, die ausgebildet ist, selektiv eine lokale Transaktion in eine Sequenz von Transaktionen, die auf der zweiten Aufwärtsverbindung übertragen werden, einzufügen.
  8. System nach Anspruch 1, wobei der Hauptrechner eine Speichersteuerung (105) aufweist, die ausgebildet ist, Speicheranforderungstransaktionen ohne Kenntnis einer Speichergröße, die mit jedem der Speichermodule verknüpft ist, oder eines Adressenbereichs, der mit einem der Speichermodule verknüpft ist, auszugeben.
  9. System nach Anspruch 8, wobei die Speichersteuerung ferner ausgebildet ist, eine Speicherleseanfordervngstransaktion vor dem Empfangen einer Antwort auf eine vorhergehende Speicherleseanforderungstransaktion auszugeben.
  10. Verfahren mit:

    Verbinden eines Hauptrechners (100) mit einem ersten Speichermodul (150a) über eine erste Speicherverbindung (110a); und

    Verbinden des ersten Speichermoduls mit einem zweiten Speichermodul (150b) über eine zweite Speicherverbindung (110b);

    wobei das erste Speichermodul und das zweite Speichermodul mit dem Hauptrechner seriell über die erste Speicherverbindung und die zweite Speicherverbindung verbunden sind; und

    wobei das erste Speichermodul ausgebildet ist, eine Transaktion auf der ersten Speicherverbindung zu empfangen und die Transaktion auf der zweiten Speicherverbindung unabhängig von einem Decodieren der Transaktion zu übertragen.
Es folgen 8 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