DE112006003122T5 - Vollständig gepufferter Dimm-Lesedatensubstitution für Schreibbestätigung - Google Patents
Vollständig gepufferter Dimm-Lesedatensubstitution für Schreibbestätigung Download PDFInfo
- Publication number
- DE112006003122T5 DE112006003122T5 DE112006003122T DE112006003122T DE112006003122T5 DE 112006003122 T5 DE112006003122 T5 DE 112006003122T5 DE 112006003122 T DE112006003122 T DE 112006003122T DE 112006003122 T DE112006003122 T DE 112006003122T DE 112006003122 T5 DE112006003122 T5 DE 112006003122T5
- Authority
- DE
- Germany
- Prior art keywords
- memory
- command
- memory module
- response
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Ein
Speichercontroller mit:
einer Steuerlogik zum Entfernen von wenigstens zwei Einträgen aus einer Entfernungsschlange in Antwort auf eine Signalantwort, die von einem Speichermodul über einen Punkt-zu-Punkt-Speicherbus ausgesendet worden ist.
einer Steuerlogik zum Entfernen von wenigstens zwei Einträgen aus einer Entfernungsschlange in Antwort auf eine Signalantwort, die von einem Speichermodul über einen Punkt-zu-Punkt-Speicherbus ausgesendet worden ist.
Description
- GEBIET DER ERFINDUNG
- Die vorliegende Erfindung betrifft allgemein Speichersysteme, Komponenten und Verfahren und insbesondere vollständig gepufferte Speichercontroller, die effizient Einträge in einer Playback-Schlange entfernen.
- HINTERGRUND DER ERFINDUNG
- Übliche Computerspeichersubsysteme werden häufig unter Verwendung von Speichermodulen implementiert. Eine Computerschaltplatine ist mit einem Prozessor bestückt, der einen integrierten Speichercontroller hat oder mit einem separaten Speichercontroller gekoppelt ist. Der Prozessor, der den integrierten Speichercontroller oder den gesonderten Speichercontroller hat, ist mittels eines Speicherbusses mit einem oder mehreren elektrischen Konnektoren für die Speichermodule verbunden, der Bus kann auch mit zusätzlichen Speichern verbinden, die dauerhaft auf der Schaltplatine montiert sind. Der Systemspeicher ist entsprechend der Anzahl der und der Speicherkapazität der Speichermodule, die in die elektrischen Verbinder eingesetzt sind, konfiguriert.
- Da die Prozessorgeschwindigkeiten zugenommen hat, wurden die Speicherbusgeschwindigkeiten bis zu dem Punkt vorangetrieben, bei dem die Mehr-Punkt (oft als „Multi-Drop" bezeichnet) Speicherbus-Modell nicht mehr verwendet werden kann. Es wird auf
1 Bezug genommen. Eine gegenwärtige Lösung verwendet einen ein „Punkt-zu-Punkt" Speicherbusmodell unter Einsatz von gepufferten Speichermodulen. In1 weist ein Computersystem100 einen Hostprozessor105 auf, der über einen frontseitigen Bus108 mit einem Speichercontroller110 kommuniziert, der den Hostprozessor mit verschiedenen Peripheriegeräten (mit Ausnahme des Systemspeichers nicht gezeigt) koppelt. Der Speichercontroller110 kommuniziert mit einem ersten gepufferten Speichermodul0 über einen Hochgeschwindigkeits Punkt-zu-Punkt-Bus112 . Ein zweites gepuffertes Speichermodul1 teilt, wenn in das System100 einbezogen, mit dem ersten Speichermodul0 einen zweiten Hochgeschwindigkeits Punkt-zu-Punkt-Bus122 . Zusätzliche Hochgeschwindigkeits-Punkt-zu-Punkt-Busse und gepufferte Speichermodule können hinter dem Speichermodul1 eingebunden sein, um die Speicherkapazität des Systems weiter zu erhöhen. - Das Speichermodul
0 ist für die Speichermodule typisch. Ein Speichermodulpuffer (MMB)146 verbindet das Modul0 mit einem hostseitigen Speicherkanal112 und einem stromabwärts gelegenen Speicherkanal122 . Eine Mehrzahl von Speichereinheiten (dynamische Speicher mit wahlfreiem Zugriff oder „DRAMs", wie das DRAM144 , sind gezeigt) verbinden mit dem Speichermodulpuffer146 über einen Speicherbus (in1 nicht gezeigt), um einen adressierbaren Lese/Schreib-Speicher für das System100 zu bilden. - Beispielhaft für einen Speichertransfer wird der Fall betrachtet, in dem der Prozessor
105 auf eine Speicheradresse entsprechend dem physikalischen Speicher, der in dem Speichermodul1 angeordnet ist, zugreifen muss. Eine Speicheranfrage wird an den Speichercontroller110 ausgegeben, der dann einen Speicherbefehl, der an das Speichermodul1 adressiert ist, auf den Host-Speicherkanal112 ausgibt. Der Speichercontroller110 bestimmt auch einen Eintrag115 entsprechend dem Speicherkommando in die Playback-Schlange111 . Frühere Einträge entsprechend früheren Speicherbefehlen können weiter vor dem Eintrag115 in der Schlange111 sein. - Aus Gründen der Lenkbarkeit kann der Eintrag
115 von der Schlange111 nur dann entfernt werden, wenn zwei Bedingungen erfüllt sind. Zunächst entfernt der Speichercontroller110 einen Eintrag nur dann, wenn eine entsprechende Nicht-Fehlerantwort empfangen worden ist. Zweitens entfernt der Speichercontroller110 einen Eintrag nur dann, wenn alle vorherigen Einträge entfernt worden sind. - Die MMB
146 des gepufferten Speichermoduls0 empfängt den Befehl, resynchronisiert diesen, falls erforderlich, und sendet ihn in einen Speicherkanal122 des MMB148 des gepufferten Speichermoduls1 zurück. Das MMB146 erkennt, dass der Befehl zu ihm gerichtet ist, decodiert ihn und überträgt ein DRAM Befehl und signalisiert an die von dem Puffer gesteuerten DRAMs. Wenn der Speichertransfer erfolgreich war, sendet das MMB148 eine Nicht-Fehlerantwort über das Speichermodul0 zurück zu dem Speichercontroller110 . Der Speichercontroller110 entfernt den Eintrag115 aus der Playback-Schlange118 , nachdem die Nicht-Fehlerantwort empfangen worden ist, aber nur dann, wenn alle früheren Einträge ebenfalls entfernt worden sind. - Aus Gründen der Wirtschaftlichkeit ist die Größe der Playback-Schlange
116 begrenzt. Einträge müssen daher so schnell wie möglich entfernt werden. Aufgrund der nördlichen Bandbreitebegrenzungen des Hochgeschwindigkeits-Punkt-zu-Punkt-Busses112 kann der Empfang von Nicht-Fehlerantworten aufgrund einer Schreibbestätigung verzögert sein. Der verzögerte Empfang einer derartigen Schreibbestätigung kann wiederum die Entfernung von nachfolgenden Einträgen verzögern, die nach dem Eintrag115 die Playback-Schlange erreicht haben. Die verzögerte Beseitigung eines Eintrags und nachfolgender Einträge begrenzt die Menge des Raums, die in der Playback-Schlange111 für neue Einträge zur Verfügung steht. - Aufgrund der vorgenannten Begrenzungen ist der Betrag an freiem Raum in Playback-Schlangen der Speichercontroller begrenzt. Die nachfolgende Offenbarung löst dieses und andere Probleme.
- KURZE ERLÄUTERUNG DER ZEICHNUNGEN
-
1 . ist ein Diagramm, das einen üblichen Speichercontroller zeigt. -
2 ist ein Diagramm eines Speichercontrollers, der zwei Einträge aus einer Playback-Schlange in Antwort auf eine einzige Nicht-Fehlerantwort entfernt,. -
3 ist ein Flussdiagramm, das zeigt, wie der Speichercontroller von2 wiedergegebene Operationen zeigt. -
4A ist ein Zeitdiagramm, das einen alternativen Betrieb des Speichercontrollers von2 zeigt. -
4B ist ein Zeitdiagramm, das einen alternativen Betrieb des Speichercontrollers von2 zeigt. - Detaillierte Beschreibung
-
2 zeigt ein Beispiel eines Speichercontrollers200 , der zwei Einträge in eine Playback-Schlangen entsprechend einer einzigen Nicht-Fehlerantwort entfernt. Der Speichercontroller200 weist eine Ausgabemaschine201 , einen Speicher202 und eine Playback-Schlange203 auf. Die Ausgabemaschine201 führt eine Funktion aus, die in den Flussdiagrammen von3 beschrieben ist. Die zeitliche Abfolge der in2 gezeigten Abfolge ist in dem Zeitdiagramm von4a wiedergegeben. - Der Speichercontroller
200 sendet einen Speicherbefehl204a an das Speichermodul1 . In diesem Beispiel ist der Speicherbefehl204a eine Burstlänge von acht Lesebefehlen einschließlich einer Startadresse für einen Mehrzyklus-Lesevorgang. Bei anderen Beispielen ist der Speicherbefehl jede Art von Lesebefehl. Ein Eintrag204b entsprechend dem Speicherbefehl204a wird in der Playback-Schlange303 erzeugt. Bei dem Empfang des Speicherbefehls204a startet das Speichermodul das Lesen von Daten beginnend mit der Startadresse. Wenn das Speichermodul1 Daten liest, sendet es die gelesenen Daten zurück in die Nicht-Fehlerspeicherantwort204c . - Danach sendet der Speichercontroller
200 einen Speicherbefehl205a in das Speichermodul0 , das nördlich des Speichermoduls1 ist. Bei diesem Beispiel ist der Speicherbefehl205a eine Burstlänge von vier Schreiblängen, der Schreibdaten in das Speichermodul0 während vier aufeinanderfolgender Abtastungen liefert. Bei anderen Beispielen ist der Speicherbefehl205a jede Art eines Schreibbefehls. Ein Eintrag205b entsprechend dem Speicherbefehl205 wird in der Playback-Schlange203 erzeugt. Der Eintrag205b ist ein dem Eintrag204b nachfolgender Eintrag. Bei Empfangen des Speicherbefehls205a beginnt das Speichermodul0 das Schreiben von Daten, die mit dem Speicherbefehl205a geliefert sind. Das Speichermodul0 beginnt das Schreiben von Daten gleichzeitig mit dem Lesen von Daten durch das Speichermodul1 entsprechend dem Speicherbefehl204b . - Der Speichercontroller
200 sendet einen Speicherbefehl206a zu dem Speichermodul1 , das südlich des Speichermoduls0 ist. Der Speicherbefehl206a ist ein Burstlesebefehl ähnlich dem Speicherbefehl204a . Ein Eintrag206b entsprechend dem Speicherbefehl206a wird in der Playback-Schlange203 erzeugt. - Das Speichermodul
0 beendet das Scheiben von Daten entsprechend der Burstlänge von vier Schreibbefehlen205a . Da das Speichermodul1 jedoch noch Lesedaten über das Speichermodulpuffer (MMB)245 des Speichermoduls0 aussendet, ist keine Bandbreite für das Speichermodul0 verfügbar, um eine Nicht-Fehlerantwort205c auszusenden. Die Nicht-Fehlerantwort204c einschließlich den Lesedaten konsumiert die gesamte Bandbreite in der nördlichen Richtung. Entsprechend erkennt der Speichercontroller200 eine Nicht-Fehlerantwort einschließlich einer Schreibbestätigung zu diesem Zeitpunkt nicht. - Nachdem Daten entsprechend dem Speicherbefehl
204a gelesen worden sind, beginnt das Speichermodul1 das Lesen von Daten entsprechend dem Speicherbefehl204c . Da das Speichermodul1 Daten liest, sendet es die gelesenen Daten zurück in einer Nicht-Fehlerspeicherantwort206c . Die Nicht-Fehlerantwort206c belegt die ganze Bandbreite in der Nordrichtung und wird unmittelbar nach der Nicht-Fehlerantwort204c ausgesendet. Entsprechend dem üblichen FBD Protokoll muss der Speichercontroller200 weiterhin warten, um die Nicht-Fehlerantwort205c zu beobachten, bis die Bandbreite verfügbar ist. Wie innerhalb der Spezifikation verwendet, bezieht sich das FBD Protokoll auf, beispielsweise, jede Revision der FBD Spezifikation auf der JEDC Webseite. Die Nicht-Fehlerantwort205c kann explizit Signale wie Leermuster oder Schreibbestätigungen beinhalten. - Der Speichercontroller
200 empfängt die Nicht-Fehlerantwort204c . Der Eintrag204b wird aus der Playback-Schlange203 entfernt, da keine früheren Einträge vorhanden anhängig sind. Obwohl der Speichercontroller200 keine ausdrückliche Fehlerantwort205c entsprechend dem Eintrag205b empfangen hat, kann der Speichercontroller200 auch den Eintrag205b in Antwort auf die nicht-entsprechende Nicht-Fehlerantwort204 löschen. Dies ist anders als bei dem üblichen FBD Protokoll, wo der Speichercontroller200 weiterhin auf die Nicht-Fehlerantwort205c warten muss. Es können so zwei Einträge in Antwort auf eine einzige Nicht-Fehlerantwort204c entfernt werden. - Der Eintrag
205b kann bei Empfang einer nicht-ensprechenden Nicht-Fehlerantwort204c aufgrund der folgenden Ereignisse entfernt werden. Zunächst entspricht der Eintrag205b einem Schreiben in ein Speichermodul, das nördlich eines Speichermoduls ist, das gelesen worden ist. Zweitens tritt das Schreiben gemeinsam mit dem Lesen aus dem südlichen Speichermodul auf. Das heißt, ein Alarm entsprechend dem Speicherbefehl205a wurde nicht empfangen. Ein Alarm entsprechend dem Speicherbefehl205 würde eine Priorität haben über eine Nicht-Fehlerantwort204c . Entsprechend signalisiert den Empfang der Nicht-Fehlerantwort204 implizit dem Speichercontroller200 , das ein Alarm nicht ausgegeben worden ist und dass der Speicherbefehl205a erfolgreich sein muss. Der Eintrag205b kann so vorteilhaft beseitigt werden, gleich nachdem eine entsprechende Nicht-Fehlerantwort205c empfangen worden ist. - Nachfolgend wird die Nicht-Fehlerantwort
206c empfangen. Der Eintrag206b kann in vorteilhafter Weise sofort gelöscht werden, da keine vorherigen Einträge in der Speicherschlange206 vorhanden sind. Wenn der Speichercontroller206 auf eine entsprechende Nicht-Fehlerantwort205e gewartet hat, bevor der Eintrag205b entfernt worden ist, bevor der Eintrag205 existiert, was eine Verzögerung bei der Entfernung206 verursacht. Der Speichercontroller200 entfernt so die Einträge205b und206b frühzeitig mit dem konventionellen Speichercontroller vergleichen. - Schließlich kann eine Nicht-Fehlerantwort
205c einschließlich einer Schreibbestätigung empfangen werden. Da der Speichercontroller200 bereits signalisiert hat, dass der Speicherbefehl205a erfolgreich war, kann der Speichercontroller200 eine Beobachtung der expliziten Nicht-Fehlerantwort205c unternehmen. Optional erhöht die explizite Schreibbestätigung205c aufgrund des Vorhandenseins der vorerwähnten Ereignisse vorteilhafter Weise die südliche Besetzung. Die Erhöhung der südlichen Belegung erhöht die maximale Bandbreite um 50% gegenüber den üblichen Systemen mit einer üblichen Playback-Schlangenbegrenzung. - Der obige Vorgang wird in dem Flussdiagramm von
3 wiedergegeben. Es wird jetzt auf3 Bezug genommen. Der Speichercontroller200 gibt einen Lesebefehl aus, um das Auslesen eines ersten Speichermoduls zu bewirken, Block300 . In Block301 wird ein Schreibbefehl ausgegeben, um ein gleichzeitiges Beschreiben eines zweiten Speichermoduls, das weiter nördlich als das erste Speichermodul ist, zu bewirken. Nachfolgend erzeugt der Speichercontroller200 in Block302 einen ersten Eintrag entsprechend dem Lesebefehl in einer Playback-Schlange203 . In dem Block303 wird ein zweiter Eintrag entsprechend dem Schreibbefehl erzeugt. - Nachfolgend wartet der Speichercontroller
200 in dem Block304 auf eine Nicht-Fehleranwort entsprechend dem Lesebefehl. Wenn in dem Block305 keine Nicht-Fehlerantwort empfangen wird, entfernt der Speichercontroller200 die beiden Einträge in dem Block306A . Wenn die Nicht-Fehlerantwort nicht empfangen wird, setzt der Speichercontroller200 in dem Block306B den Zweig zurück und wiederholt sodann die Inhalte der Playback-Schlange203 . -
4A zeigt ein zeitliches Diagramm des in2 gezeigten Systems. Der DIMM 1 empfängt einen Lesebefehl204a von dem Speichercontroller200 und beginnt das Lesen von Daten bei T6. Der DIMM 0 empfängt einen Schreibbefehl205a und beginnt das Schreiben von Daten bei T7 gleichzeitig mit den DIMM 1 Lesedaten. Wenn der DIMM 1 Daten liest, beginnt eine Übertragung204c von DIMM 1 bei T7. Die Übertragung204c setzt sich bis zu T10 fort, wodurch der Speichercontroller200 daran gehindert wird, unmittelbar eine explizite Schreibbestätigung205c zu beobachten. - Zwischenzeitlich empfängt der DIMM 1 einen Lesebefehl
206a von dem Speichercontroller200 zu T9 und beginnt das Lesen. Unmittelbar nachdem der DIMM 1 die Übertragung204c abgeschlossen hat, beginnt die Übertragung206c bei T11. Der Speichercontroller200 ist noch unfähig, eine explizite Schreibbestätigung205c zu beobachten, da die Übertragungen204c und206c die gesamte nördliche Bandbreite benötigen. - Gleichzeitig startet der Speichercontroller
200 den Empfang der Lesedatenübertragung204c von dem DIMM 1 bei T8. Wenn die Übertragung bei T11 abgeschlossen ist, beseitigt der Speichercontroller200 die Einträge204b aus der Playback-Schlange203 . Der Speichercontroller200 beseitigt den Eintrag205b in der Playback-Schlange203 in Antwort auf das Empfangen einer nicht-entsprechenden Nicht-Fehlerantwort204c . Die nicht-entsprechende Nicht-Fehlerantwort204c war nicht in Antwort auf den Speicherbefehls205a ausgesendet und entspricht nicht dem Eintrag205b . Nichtsdestoweniger wird der Eintrag205b beseitigt. Schließlich empfängt der Speichercontroller200 bei T15 eine Nicht-Fehlerantwort206c und beseitigt den Eintrag206b . - Es ist für den Speichercontroller
200 nicht erforderlich, die Schreibbestätigung205c bei dem ersten Öffnen T15 zu beobachten. Die Bandbreite kann für andere Übertragungen durch eine explizite Beobachtung der Schreibbestätigung205c eingespart werden. -
4B zeigt ein zeitliches Diagramm entsprechend einer unterschiedlichen Reihe von Übertragungen gegenüber derjenigen von2 . Der Speichercontroller200 verursacht das der DIMM 1 zum Starten eines ersten Lesens T6 und der DIMM 0 zum Starten des Schreibens von Daten bei T7. Der Speichercontroller200 verursacht auch das Starten des DIMM 0 einer zweiten Lesung bei T10. - Der Speichercontroller
200 beginnt das Empfangen einer Nicht-Fehlerantwort entsprechend der ersten Lesung bei T8. Wenn die vollständige Nicht-Fehlerantwort entsprechend der ersten Lesung bei T11 gelesen ist, werden beide Eintrage, die der ersten Lesung und dem Schreiben zugehörig sind, entfernt. Mit anderen Worten, der Eintrag, der dem Schreiben zugehörig ist, wird in Antwort auf eine nicht-entsprechende Nicht-Fehlerantwort entfernt. Schließlich entfernt der Speichercontroller200 einen Eintrag, der der zweiten Lesung bei T15 zugehörig ist. - Das oben beschriebene System kann die gezeigten Prozessorsysteme Mikrocontroller programmierbaren logischen Einheiten oder Mikroprozessoren verwenden, die einige oder alle Operationen ausführen. Einige der oben beschriebenen Operationen können in Software implementiert sein und andere Operationen können in Hardware implementiert sein. Aus Gründen der Vereinfachung sind die Operationen als verschiedene verbundene funktionale Blöcke oder gesonderte Softwaremodule beschrieben. Dies ist jedoch nicht notwendig, es kann Fälle geben, in denen diese funktionalen Blöcke oder Module äquivalent in einer einzigen logischen Einheit, einem Programm oder einer Operation mit unklaren Grenzen aggregiert ist.
- In jedem Fall können die funktionalen Blöcke Softwaremodule oder -merkmale der flexiblen Schnittstelle durch sich selbst implemeniert sein oder in Kombination mit anderen Operationen entweder in einer Hardware oder einer Software.
- Nach der Beschreibung und Darstellung der Prinzipien der Erfindung anhand eines bevorzugten Ausführungsbeispiels sollte es sich verstehen, dass die Erfindung bezüglich der Anordnung und den Einzelheiten modifiziert werden kann, ohne sich von dem Grundgedanken zu lösen. Ich beanspruche alle Modifikationen und Variationen, die im Grundgedanken und in dem Schutzbereich der nachfolgenden Ansprüche liegen.
- ZUSAMMENFASSUNG
- Ein Speichercontroller verwendet ein Schema zum Entfernen von wenigstens zwei Einträgen aus einer Rückspielschlange in Antwort auf eine einzige Nicht-Fehler-Antwort. In vorteilhafter Weise können die Einträge n einer Rückspielschlange früher als bei üblichen Systemen entfernt werden, was die Größe der Rückspielschlange minimiert.
Claims (22)
- Ein Speichercontroller mit: einer Steuerlogik zum Entfernen von wenigstens zwei Einträgen aus einer Entfernungsschlange in Antwort auf eine Signalantwort, die von einem Speichermodul über einen Punkt-zu-Punkt-Speicherbus ausgesendet worden ist.
- Der Speichercontroller von Anspruch 1 wobei: ein erster Eintrag von den wenigstens zwei Einträgen einem ersten Speicherbefehl zum Veranlassen eines ersten Speichermoduls zum Lesen entspricht; und ein zweiter Eintrag der wenigstens zwei Einträge einem zweiten Speicherbefehl zum Veranlassen eines zweiten Speichermoduls zum Schreiben entspricht.
- Der Speichercontroller von Anspruch 2, wobei das erste Speichermodul das Speichermodul ist und südlich des zweiten Speichermoduls gelegen ist.
- Der Speichercontroller von Anspruch 3, wobei die einzige Antwort dem ersten Eintrag und dem ersten Speicherbefehl entspricht.
- Der Speichercontroller von Anspruch 4, wobei die einzige Antwort eine Datenlesung von dem ersten Speichermodul beinhaltet.
- Der Speichercontroller von Anspruch 5, wobei der erste Speicherbefehl das zweite Speichermodul veranlasst, gleichzeitig mit dem Lesen des ersten Speichermoduls zu schreiben.
- Ein Verfahren mit: Senden eines ersten Speicherbefehls, der ein erstes Speichermodul zum Lesen veranlasst; Senden eines zweiten Speicherbefehls, der ein zweites Speichermodul zum Schreiben veranlasst, wobei das zweite Speichermodul weiter nördlich als das erste Speichermodul gelegen ist; Bestimmen eines ersten Schlangeneintrags entsprechend dem ersten Speicherbefehl und eines zweiten Schlangeneintrags entsprechend dem zweiten Speicherbefehl; und Entfernen beider Schlangeneinträge in Antwort auf eine Antwort, die von dem ersten Speichermodul ausgeht.
- Das Verfahren nach Anspruch 7, wobei die Antwort eine Datenlesung aus dem ersten Speichermodul beinhaltet.
- Das Verfahren nach Anspruch 7, wobei die Antwort nicht dem zweiten Speicherbefehl entspricht.
- Das Verfahren nach Anspruch 7, wobei eine Schreibbestätigung in Antwort auf den zweiten Speicherbefehl nicht empfangen wird.
- Das Verfahren nach Anspruch 7, weiter mit dem Schreiben von Daten in das zweite Speichermodul gleichzeitig mit dem Lesen des ersten Speichermoduls.
- Das Verfahren nach Anspruch 7, wobei der erste Speicherbefehl eine Burstlänge von acht Lesungen oder ein Back-zu-Back-Paar von offenseitigen Burstlängen mit vier Lesungen aufweist.
- Eine Speichervorrichtung mit: einer Steuerlogik zum Empfangen eines Lesebefehls eines südwärtigen Speichers, wobei die Steuerlogik zum Versorgen des Lesebefehls des südwärtigen Speichers zu einem Speichermodulpuffer für ein Speichermodul, zum Empfangen eines Speicherschreibbefehls, zum Versorgen eines Speichercontrollers einer nordseitigen Antwort entsprechend dem Speicher-Lesebefehl und zum Bestimmen, ob eine Nicht-Fehlerantwort entsprechend dem Speicherschreibbefehl auszusenden ist, sorgt.
- Die Speichervorrichtung nach Anspruch 13, wobei der Speichercontroller bestimmt, dass ein Schreiben basierend auf der nordseitigen Antwort aufgetreten ist.
- Die Speichervorrichtung nach Anspruch 13, wobei die Antwort eine Datenlesung von dem Speichermodul beinhaltet.
- Die Speichervorrichtung von Anspruch 13, wobei der Speichercontroller zwei Einträge in einer Playback-Schlange in Antwort auf die nordseitige Antwort entfernt und die nordseitige Antwort eine Datenlesung von dem Speichermodul aufweist.
- Ein System mit: einer Steuerlogik zum Senden eines ersten Speicherbefehls zu einem ersten Speichermodul, wobei das erste Speichermodul zum Lesen der Antwort auf den ersten Speicherbefehl dient; die Steuerlogik zum Aussenden eines zweiten Speicherbefehls an ein zweites Speichermodul dient und das zweite Speichermodul weiter südlich als das erste Speichermodul ist; das zweite Speichermodul zum Schreiben in Antwort auf den zweiten Speicherbefehl dient; die Steuerlogik zum Bestimmen eines ersten Schlangeneintrags entsprechend dem ersten Speicherbefehl und eines zweiten Schlangeneintrags entsprechend dem zweiten Speicherbefehls dient; und die Steuerlogik zum Entfernen beider Schlangeneinträge in Antwort auf eine Antwort, die von dem ersten Speichermodul ausgeht, dient.
- Das System nach Anspruch 17, wobei die Antwort eine Datenlesung von dem ersten Speichermodul aufweist.
- Das System nach Anspruch 17, wobei die Antwort nicht dem zweiten Speicherbefehl dient.
- Das System nach Anspruch 17, wobei eine Schreibbestätigung in Antwort auf den zweiten Speicherbefehl nicht empfangen wird.
- Das System nach Anspruch 17, wobei die Steuerlogik weiter zum Schreiben von Daten in das zweite Speichermodul gleichzeitig mit dem Lesen des zweiten Speichermoduls dient.
- Das System nach Anspruch 18, wobei der erste Speicherbefehl eine Burstlänge von acht Lesungen oder ein Back-zu-Back-Paar von Burstlängen vier Lesungen aufweist.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/321,322 | 2005-12-28 | ||
US11/321,322 US7444479B2 (en) | 2005-12-28 | 2005-12-28 | Fully buffered DIMM read data substitution for write acknowledgement |
PCT/US2006/047322 WO2007078711A2 (en) | 2005-12-28 | 2006-12-11 | Fully buffered dimm read data substitution for write acknowledgement |
Publications (2)
Publication Number | Publication Date |
---|---|
DE112006003122T5 true DE112006003122T5 (de) | 2008-12-11 |
DE112006003122B4 DE112006003122B4 (de) | 2015-05-21 |
Family
ID=38137330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112006003122.8T Active DE112006003122B4 (de) | 2005-12-28 | 2006-12-11 | Vollständig gepufferter Dimm-Lesedatensubstitution für Schreibbestätigung |
Country Status (6)
Country | Link |
---|---|
US (2) | US7444479B2 (de) |
JP (1) | JP2009515262A (de) |
CN (1) | CN101346708B (de) |
DE (1) | DE112006003122B4 (de) |
TW (1) | TWI360055B (de) |
WO (1) | WO2007078711A2 (de) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8521970B2 (en) * | 2006-04-19 | 2013-08-27 | Lexmark International, Inc. | Addressing, command protocol, and electrical interface for non-volatile memories utilized in recording usage counts |
US9245591B2 (en) * | 2005-06-16 | 2016-01-26 | Lexmark International, Inc. | Addressing, command protocol, and electrical interface for non-volatile memories utilized in recording usage counts |
US7444479B2 (en) * | 2005-12-28 | 2008-10-28 | Alexander James W | Fully buffered DIMM read data substitution for write acknowledgement |
WO2008005629A2 (en) * | 2006-05-26 | 2008-01-10 | Riverbed Technology, Inc. | Throttling of predictive acks in an accelerated network communication system |
US7899983B2 (en) | 2007-08-31 | 2011-03-01 | International Business Machines Corporation | Buffered memory module supporting double the memory device data width in the same physical space as a conventional memory module |
US8086936B2 (en) * | 2007-08-31 | 2011-12-27 | International Business Machines Corporation | Performing error correction at a memory device level that is transparent to a memory channel |
US7840748B2 (en) * | 2007-08-31 | 2010-11-23 | International Business Machines Corporation | Buffered memory module with multiple memory device data interface ports supporting double the memory capacity |
US7818497B2 (en) * | 2007-08-31 | 2010-10-19 | International Business Machines Corporation | Buffered memory module supporting two independent memory channels |
US7861014B2 (en) * | 2007-08-31 | 2010-12-28 | International Business Machines Corporation | System for supporting partial cache line read operations to a memory module to reduce read data traffic on a memory channel |
US7865674B2 (en) * | 2007-08-31 | 2011-01-04 | International Business Machines Corporation | System for enhancing the memory bandwidth available through a memory module |
US7584308B2 (en) * | 2007-08-31 | 2009-09-01 | International Business Machines Corporation | System for supporting partial cache line write operations to a memory module to reduce write data traffic on a memory channel |
US8082482B2 (en) * | 2007-08-31 | 2011-12-20 | International Business Machines Corporation | System for performing error correction operations in a memory hub device of a memory module |
US7558887B2 (en) * | 2007-09-05 | 2009-07-07 | International Business Machines Corporation | Method for supporting partial cache line read and write operations to a memory module to reduce read and write data traffic on a memory channel |
US8019919B2 (en) * | 2007-09-05 | 2011-09-13 | International Business Machines Corporation | Method for enhancing the memory bandwidth available through a memory module |
US7770077B2 (en) * | 2008-01-24 | 2010-08-03 | International Business Machines Corporation | Using cache that is embedded in a memory hub to replace failed memory cells in a memory subsystem |
US7930469B2 (en) | 2008-01-24 | 2011-04-19 | International Business Machines Corporation | System to provide memory system power reduction without reducing overall memory system performance |
US7925824B2 (en) * | 2008-01-24 | 2011-04-12 | International Business Machines Corporation | System to reduce latency by running a memory channel frequency fully asynchronous from a memory device frequency |
US7930470B2 (en) * | 2008-01-24 | 2011-04-19 | International Business Machines Corporation | System to enable a memory hub device to manage thermal conditions at a memory device level transparent to a memory controller |
US8140936B2 (en) * | 2008-01-24 | 2012-03-20 | International Business Machines Corporation | System for a combined error correction code and cyclic redundancy check code for a memory channel |
US7925826B2 (en) * | 2008-01-24 | 2011-04-12 | International Business Machines Corporation | System to increase the overall bandwidth of a memory channel by allowing the memory channel to operate at a frequency independent from a memory device frequency |
US7925825B2 (en) * | 2008-01-24 | 2011-04-12 | International Business Machines Corporation | System to support a full asynchronous interface within a memory hub device |
US7944726B2 (en) * | 2008-09-30 | 2011-05-17 | Intel Corporation | Low power termination for memory modules |
JP6439363B2 (ja) * | 2014-10-06 | 2018-12-19 | 富士通株式会社 | 記憶制御装置および記憶制御装置の制御方法 |
US10579303B1 (en) | 2016-08-26 | 2020-03-03 | Candace Design Systems, Inc. | Memory controller having command queue with entries merging |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6122729A (en) * | 1997-05-13 | 2000-09-19 | Advanced Micro Devices, Inc. | Prefetch buffer which stores a pointer indicating an initial predecode position |
US20030061365A1 (en) * | 2001-03-14 | 2003-03-27 | Microsoft Corporation | Service-to-service communication for network services |
US6714448B2 (en) | 2002-07-02 | 2004-03-30 | Atmel Corporation | Method of programming a multi-level memory device |
US6820181B2 (en) * | 2002-08-29 | 2004-11-16 | Micron Technology, Inc. | Method and system for controlling memory accesses to memory modules having a memory hub architecture |
JP2004310394A (ja) * | 2003-04-07 | 2004-11-04 | Sharp Corp | Sdramアクセス制御装置 |
US7200787B2 (en) | 2003-06-03 | 2007-04-03 | Intel Corporation | Memory channel utilizing permuting status patterns |
US7225303B2 (en) * | 2003-09-22 | 2007-05-29 | Micron Technology, Inc. | Method and apparatus for accessing a dynamic memory device by providing at least one of burst and latency information over at least one of redundant row and column address lines |
US7721060B2 (en) | 2003-11-13 | 2010-05-18 | Intel Corporation | Method and apparatus for maintaining data density for derived clocking |
US7188219B2 (en) | 2004-01-30 | 2007-03-06 | Micron Technology, Inc. | Buffer control system and method for a memory system having outstanding read and write request buffers |
US7222213B2 (en) * | 2004-05-17 | 2007-05-22 | Micron Technology, Inc. | System and method for communicating the synchronization status of memory modules during initialization of the memory modules |
US20060026375A1 (en) | 2004-07-30 | 2006-02-02 | Christenson Bruce A | Memory controller transaction scheduling algorithm using variable and uniform latency |
US7346624B2 (en) * | 2004-08-16 | 2008-03-18 | Kabushiki Kaisha Toshiba | Systems and methods for processing buffer data retirement conditions |
US7373471B2 (en) * | 2005-02-09 | 2008-05-13 | International Business Machines Corporation | Executing background writes to idle DIMMs |
US20060200597A1 (en) | 2005-03-03 | 2006-09-07 | Christenson Bruce A | Method, system, and apparatus for memory controller utilization of an AMB write FIFO to improve FBD memory channel efficiency |
US7734980B2 (en) | 2005-06-24 | 2010-06-08 | Intel Corporation | Mitigating silent data corruption in a buffered memory module architecture |
US7644347B2 (en) | 2005-09-30 | 2010-01-05 | Intel Corporation | Silent data corruption mitigation using error correction code with embedded signaling fault detection |
US20070089032A1 (en) | 2005-09-30 | 2007-04-19 | Intel Corporation | Memory system anti-aliasing scheme |
US7444479B2 (en) * | 2005-12-28 | 2008-10-28 | Alexander James W | Fully buffered DIMM read data substitution for write acknowledgement |
-
2005
- 2005-12-28 US US11/321,322 patent/US7444479B2/en not_active Expired - Fee Related
-
2006
- 2006-12-11 WO PCT/US2006/047322 patent/WO2007078711A2/en active Application Filing
- 2006-12-11 JP JP2008539133A patent/JP2009515262A/ja active Pending
- 2006-12-11 DE DE112006003122.8T patent/DE112006003122B4/de active Active
- 2006-12-11 CN CN2006800490220A patent/CN101346708B/zh not_active Expired - Fee Related
- 2006-12-13 TW TW095146701A patent/TWI360055B/zh active
-
2008
- 2008-08-29 US US12/202,088 patent/US7941618B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20080320249A1 (en) | 2008-12-25 |
TWI360055B (en) | 2012-03-11 |
WO2007078711A2 (en) | 2007-07-12 |
US7444479B2 (en) | 2008-10-28 |
CN101346708B (zh) | 2012-03-21 |
CN101346708A (zh) | 2009-01-14 |
US7941618B2 (en) | 2011-05-10 |
WO2007078711A3 (en) | 2007-09-20 |
US20070150672A1 (en) | 2007-06-28 |
DE112006003122B4 (de) | 2015-05-21 |
TW200741469A (en) | 2007-11-01 |
JP2009515262A (ja) | 2009-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112006003122B4 (de) | Vollständig gepufferter Dimm-Lesedatensubstitution für Schreibbestätigung | |
DE112006003224B4 (de) | Polaritätsbetriebener dynamischer, schaltkreisintegrierter Abschluss | |
DE112006003267B4 (de) | Zeitlich multiplexierter dynamischer, schaltkreisintegrierter Abschluss | |
DE69722117T2 (de) | Einheitliche Speicherarchitektur mit dynamischer Grafikspeicherzuordnung | |
DE102006002526B4 (de) | Steuervorrichtung für eine Solid-State-Disk und Verfahren zum Betreiben derselben | |
DE69133565T3 (de) | System mit einer Vielzahl von DRAMS und einem Bus | |
DE69424272T2 (de) | Auf Warteschlangen basierender prädiktiver Durchflusssteuerungsmechanismus | |
DE602004004442T2 (de) | Kartenidentifikationssystem | |
DE69710515T2 (de) | Verfahren und Vorrichtung zur Bestimmung von Wartezuständen auf einer Zyklusbasis in einem Datenverarbeitungssystem | |
DE69026479T2 (de) | Datenprozessor mit Wartezustandsteuerungseinheit | |
EP0013737A1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE112007003069T5 (de) | Mit Hochgeschwindigkeit arbeitende, aufgefächerte Systemarchitektur und Eingabe/Ausgabe-Schaltungen für nicht flüchtigen Speicher | |
DE112007000416T5 (de) | Speichersystem mit dynamischem Abschluss | |
DE102007052840A1 (de) | Vorrichtung und Verfahren zum Umschalten einer Vorrichtung in einen Leistungssparmodus | |
DE69123987T2 (de) | Stossbetrieb für Mikroprozessor mit externem Systemspeicher | |
DE2921419A1 (de) | Schaltungsanordnung und verfahren zur uebertragung digitaler information zwischen wenigstens einer ersten und einer zweiten sammelleitung | |
DE102007029833B4 (de) | Mikrocontroller mit Datenmodifikationsmodul und System umfassend ein Datenmodifikationsmodul | |
DE112006003503T5 (de) | Mehrfachanschluss-Speicher mit Banksätzen zugeordneten Anschlüssen | |
DE69513211T2 (de) | Schnelles verteiltes Pipeline-Arbitrierungsschema | |
DE112008002273T5 (de) | Optimale Lösung zur Steuerung von Datenkanälen | |
DE69033412T2 (de) | Datenübertragungssteuervorrichtung für Parallelverarbeitungssysteme | |
DE102004060348A1 (de) | Halbleiterspeichervorrichtung und Gehäuse dazu, und Speicherkarte mit Verwendung derselben | |
DE69315264T2 (de) | Verfahren und Schaltung zur Verteilung eines Speichers mit direktem Zugriff zwischen zwei asynchronen Prozessoren | |
DE69119147T2 (de) | Erweiterungskarte mit mehreren Geschwindigkeiten | |
DE68920443T2 (de) | Systembus mit multiplexbetriebenen steuer-kennzeichnungsinformationen und daten. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final |