DE112006003122T5 - Vollständig gepufferter Dimm-Lesedatensubstitution für Schreibbestätigung - Google Patents

Vollständig gepufferter Dimm-Lesedatensubstitution für Schreibbestätigung Download PDF

Info

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
Application number
DE112006003122T
Other languages
English (en)
Other versions
DE112006003122B4 (de
Inventor
James W. Aloha Alexander
Rajat Beaverton Agarwal
Bruce A. Forest Grove Christenson
Kai Portland Cheng
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112006003122T5 publication Critical patent/DE112006003122T5/de
Application granted granted Critical
Publication of DE112006003122B4 publication Critical patent/DE112006003122B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details 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.

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. In 1 weist ein Computersystem 100 einen Hostprozessor 105 auf, der über einen frontseitigen Bus 108 mit einem Speichercontroller 110 kommuniziert, der den Hostprozessor mit verschiedenen Peripheriegeräten (mit Ausnahme des Systemspeichers nicht gezeigt) koppelt. Der Speichercontroller 110 kommuniziert mit einem ersten gepufferten Speichermodul 0 über einen Hochgeschwindigkeits Punkt-zu-Punkt-Bus 112. Ein zweites gepuffertes Speichermodul 1 teilt, wenn in das System 100 einbezogen, mit dem ersten Speichermodul 0 einen zweiten Hochgeschwindigkeits Punkt-zu-Punkt-Bus 122. Zusätzliche Hochgeschwindigkeits-Punkt-zu-Punkt-Busse und gepufferte Speichermodule können hinter dem Speichermodul 1 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 Modul 0 mit einem hostseitigen Speicherkanal 112 und einem stromabwärts gelegenen Speicherkanal 122. Eine Mehrzahl von Speichereinheiten (dynamische Speicher mit wahlfreiem Zugriff oder „DRAMs", wie das DRAM 144, sind gezeigt) verbinden mit dem Speichermodulpuffer 146 über einen Speicherbus (in 1 nicht gezeigt), um einen adressierbaren Lese/Schreib-Speicher für das System 100 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 Speichermodul 1 angeordnet ist, zugreifen muss. Eine Speicheranfrage wird an den Speichercontroller 110 ausgegeben, der dann einen Speicherbefehl, der an das Speichermodul 1 adressiert ist, auf den Host-Speicherkanal 112 ausgibt. Der Speichercontroller 110 bestimmt auch einen Eintrag 115 entsprechend dem Speicherkommando in die Playback-Schlange 111. Frühere Einträge entsprechend früheren Speicherbefehlen können weiter vor dem Eintrag 115 in der Schlange 111 sein.
  • Aus Gründen der Lenkbarkeit kann der Eintrag 115 von der Schlange 111 nur dann entfernt werden, wenn zwei Bedingungen erfüllt sind. Zunächst entfernt der Speichercontroller 110 einen Eintrag nur dann, wenn eine entsprechende Nicht-Fehlerantwort empfangen worden ist. Zweitens entfernt der Speichercontroller 110 einen Eintrag nur dann, wenn alle vorherigen Einträge entfernt worden sind.
  • Die MMB 146 des gepufferten Speichermoduls 0 empfängt den Befehl, resynchronisiert diesen, falls erforderlich, und sendet ihn in einen Speicherkanal 122 des MMB 148 des gepufferten Speichermoduls 1 zurück. Das MMB 146 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 MMB 148 eine Nicht-Fehlerantwort über das Speichermodul 0 zurück zu dem Speichercontroller 110. Der Speichercontroller 110 entfernt den Eintrag 115 aus der Playback-Schlange 118, 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-Busses 112 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 Eintrag 115 die Playback-Schlange erreicht haben. Die verzögerte Beseitigung eines Eintrags und nachfolgender Einträge begrenzt die Menge des Raums, die in der Playback-Schlange 111 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 von 2 wiedergegebene Operationen zeigt.
  • 4A ist ein Zeitdiagramm, das einen alternativen Betrieb des Speichercontrollers von 2 zeigt.
  • 4B ist ein Zeitdiagramm, das einen alternativen Betrieb des Speichercontrollers von 2 zeigt.
  • Detaillierte Beschreibung
  • 2 zeigt ein Beispiel eines Speichercontrollers 200, der zwei Einträge in eine Playback-Schlangen entsprechend einer einzigen Nicht-Fehlerantwort entfernt. Der Speichercontroller 200 weist eine Ausgabemaschine 201, einen Speicher 202 und eine Playback-Schlange 203 auf. Die Ausgabemaschine 201 führt eine Funktion aus, die in den Flussdiagrammen von 3 beschrieben ist. Die zeitliche Abfolge der in 2 gezeigten Abfolge ist in dem Zeitdiagramm von 4a wiedergegeben.
  • Der Speichercontroller 200 sendet einen Speicherbefehl 204a an das Speichermodul 1. In diesem Beispiel ist der Speicherbefehl 204a 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 Eintrag 204b entsprechend dem Speicherbefehl 204a wird in der Playback-Schlange 303 erzeugt. Bei dem Empfang des Speicherbefehls 204a startet das Speichermodul das Lesen von Daten beginnend mit der Startadresse. Wenn das Speichermodul 1 Daten liest, sendet es die gelesenen Daten zurück in die Nicht-Fehlerspeicherantwort 204c.
  • Danach sendet der Speichercontroller 200 einen Speicherbefehl 205a in das Speichermodul 0, das nördlich des Speichermoduls 1 ist. Bei diesem Beispiel ist der Speicherbefehl 205a eine Burstlänge von vier Schreiblängen, der Schreibdaten in das Speichermodul 0 während vier aufeinanderfolgender Abtastungen liefert. Bei anderen Beispielen ist der Speicherbefehl 205a jede Art eines Schreibbefehls. Ein Eintrag 205b entsprechend dem Speicherbefehl 205 wird in der Playback-Schlange 203 erzeugt. Der Eintrag 205b ist ein dem Eintrag 204b nachfolgender Eintrag. Bei Empfangen des Speicherbefehls 205a beginnt das Speichermodul 0 das Schreiben von Daten, die mit dem Speicherbefehl 205a geliefert sind. Das Speichermodul 0 beginnt das Schreiben von Daten gleichzeitig mit dem Lesen von Daten durch das Speichermodul 1 entsprechend dem Speicherbefehl 204b.
  • Der Speichercontroller 200 sendet einen Speicherbefehl 206a zu dem Speichermodul 1, das südlich des Speichermoduls 0 ist. Der Speicherbefehl 206a ist ein Burstlesebefehl ähnlich dem Speicherbefehl 204a. Ein Eintrag 206b entsprechend dem Speicherbefehl 206a wird in der Playback-Schlange 203 erzeugt.
  • Das Speichermodul 0 beendet das Scheiben von Daten entsprechend der Burstlänge von vier Schreibbefehlen 205a. Da das Speichermodul 1 jedoch noch Lesedaten über das Speichermodulpuffer (MMB) 245 des Speichermoduls 0 aussendet, ist keine Bandbreite für das Speichermodul 0 verfügbar, um eine Nicht-Fehlerantwort 205c auszusenden. Die Nicht-Fehlerantwort 204c einschließlich den Lesedaten konsumiert die gesamte Bandbreite in der nördlichen Richtung. Entsprechend erkennt der Speichercontroller 200 eine Nicht-Fehlerantwort einschließlich einer Schreibbestätigung zu diesem Zeitpunkt nicht.
  • Nachdem Daten entsprechend dem Speicherbefehl 204a gelesen worden sind, beginnt das Speichermodul 1 das Lesen von Daten entsprechend dem Speicherbefehl 204c. Da das Speichermodul 1 Daten liest, sendet es die gelesenen Daten zurück in einer Nicht-Fehlerspeicherantwort 206c. Die Nicht-Fehlerantwort 206c belegt die ganze Bandbreite in der Nordrichtung und wird unmittelbar nach der Nicht-Fehlerantwort 204c ausgesendet. Entsprechend dem üblichen FBD Protokoll muss der Speichercontroller 200 weiterhin warten, um die Nicht-Fehlerantwort 205c 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-Fehlerantwort 205c kann explizit Signale wie Leermuster oder Schreibbestätigungen beinhalten.
  • Der Speichercontroller 200 empfängt die Nicht-Fehlerantwort 204c. Der Eintrag 204b wird aus der Playback-Schlange 203 entfernt, da keine früheren Einträge vorhanden anhängig sind. Obwohl der Speichercontroller 200 keine ausdrückliche Fehlerantwort 205c entsprechend dem Eintrag 205b empfangen hat, kann der Speichercontroller 200 auch den Eintrag 205b in Antwort auf die nicht-entsprechende Nicht-Fehlerantwort 204 löschen. Dies ist anders als bei dem üblichen FBD Protokoll, wo der Speichercontroller 200 weiterhin auf die Nicht-Fehlerantwort 205c warten muss. Es können so zwei Einträge in Antwort auf eine einzige Nicht-Fehlerantwort 204c entfernt werden.
  • Der Eintrag 205b kann bei Empfang einer nicht-ensprechenden Nicht-Fehlerantwort 204c aufgrund der folgenden Ereignisse entfernt werden. Zunächst entspricht der Eintrag 205b 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 Speicherbefehl 205a wurde nicht empfangen. Ein Alarm entsprechend dem Speicherbefehl 205 würde eine Priorität haben über eine Nicht-Fehlerantwort 204c. Entsprechend signalisiert den Empfang der Nicht-Fehlerantwort 204 implizit dem Speichercontroller 200, das ein Alarm nicht ausgegeben worden ist und dass der Speicherbefehl 205a erfolgreich sein muss. Der Eintrag 205b kann so vorteilhaft beseitigt werden, gleich nachdem eine entsprechende Nicht-Fehlerantwort 205c empfangen worden ist.
  • Nachfolgend wird die Nicht-Fehlerantwort 206c empfangen. Der Eintrag 206b kann in vorteilhafter Weise sofort gelöscht werden, da keine vorherigen Einträge in der Speicherschlange 206 vorhanden sind. Wenn der Speichercontroller 206 auf eine entsprechende Nicht-Fehlerantwort 205e gewartet hat, bevor der Eintrag 205b entfernt worden ist, bevor der Eintrag 205 existiert, was eine Verzögerung bei der Entfernung 206 verursacht. Der Speichercontroller 200 entfernt so die Einträge 205b und 206b frühzeitig mit dem konventionellen Speichercontroller vergleichen.
  • Schließlich kann eine Nicht-Fehlerantwort 205c einschließlich einer Schreibbestätigung empfangen werden. Da der Speichercontroller 200 bereits signalisiert hat, dass der Speicherbefehl 205a erfolgreich war, kann der Speichercontroller 200 eine Beobachtung der expliziten Nicht-Fehlerantwort 205c unternehmen. Optional erhöht die explizite Schreibbestätigung 205c 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 auf 3 Bezug genommen. Der Speichercontroller 200 gibt einen Lesebefehl aus, um das Auslesen eines ersten Speichermoduls zu bewirken, Block 300. In Block 301 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 Speichercontroller 200 in Block 302 einen ersten Eintrag entsprechend dem Lesebefehl in einer Playback-Schlange 203. In dem Block 303 wird ein zweiter Eintrag entsprechend dem Schreibbefehl erzeugt.
  • Nachfolgend wartet der Speichercontroller 200 in dem Block 304 auf eine Nicht-Fehleranwort entsprechend dem Lesebefehl. Wenn in dem Block 305 keine Nicht-Fehlerantwort empfangen wird, entfernt der Speichercontroller 200 die beiden Einträge in dem Block 306A. Wenn die Nicht-Fehlerantwort nicht empfangen wird, setzt der Speichercontroller 200 in dem Block 306B den Zweig zurück und wiederholt sodann die Inhalte der Playback-Schlange 203.
  • 4A zeigt ein zeitliches Diagramm des in 2 gezeigten Systems. Der DIMM 1 empfängt einen Lesebefehl 204a von dem Speichercontroller 200 und beginnt das Lesen von Daten bei T6. Der DIMM 0 empfängt einen Schreibbefehl 205a und beginnt das Schreiben von Daten bei T7 gleichzeitig mit den DIMM 1 Lesedaten. Wenn der DIMM 1 Daten liest, beginnt eine Übertragung 204c von DIMM 1 bei T7. Die Übertragung 204c setzt sich bis zu T10 fort, wodurch der Speichercontroller 200 daran gehindert wird, unmittelbar eine explizite Schreibbestätigung 205c zu beobachten.
  • Zwischenzeitlich empfängt der DIMM 1 einen Lesebefehl 206a von dem Speichercontroller 200 zu T9 und beginnt das Lesen. Unmittelbar nachdem der DIMM 1 die Übertragung 204c abgeschlossen hat, beginnt die Übertragung 206c bei T11. Der Speichercontroller 200 ist noch unfähig, eine explizite Schreibbestätigung 205c zu beobachten, da die Übertragungen 204c und 206c die gesamte nördliche Bandbreite benötigen.
  • Gleichzeitig startet der Speichercontroller 200 den Empfang der Lesedatenübertragung 204c von dem DIMM 1 bei T8. Wenn die Übertragung bei T11 abgeschlossen ist, beseitigt der Speichercontroller 200 die Einträge 204b aus der Playback-Schlange 203. Der Speichercontroller 200 beseitigt den Eintrag 205b in der Playback-Schlange 203 in Antwort auf das Empfangen einer nicht-entsprechenden Nicht-Fehlerantwort 204c. Die nicht-entsprechende Nicht-Fehlerantwort 204c war nicht in Antwort auf den Speicherbefehls 205a ausgesendet und entspricht nicht dem Eintrag 205b. Nichtsdestoweniger wird der Eintrag 205b beseitigt. Schließlich empfängt der Speichercontroller 200 bei T15 eine Nicht-Fehlerantwort 206c und beseitigt den Eintrag 206b.
  • Es ist für den Speichercontroller 200 nicht erforderlich, die Schreibbestätigung 205c bei dem ersten Öffnen T15 zu beobachten. Die Bandbreite kann für andere Übertragungen durch eine explizite Beobachtung der Schreibbestätigung 205c eingespart werden.
  • 4B zeigt ein zeitliches Diagramm entsprechend einer unterschiedlichen Reihe von Übertragungen gegenüber derjenigen von 2. Der Speichercontroller 200 verursacht das der DIMM 1 zum Starten eines ersten Lesens T6 und der DIMM 0 zum Starten des Schreibens von Daten bei T7. Der Speichercontroller 200 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 Speichercontroller 200 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)

  1. 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.
  2. 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.
  3. Der Speichercontroller von Anspruch 2, wobei das erste Speichermodul das Speichermodul ist und südlich des zweiten Speichermoduls gelegen ist.
  4. Der Speichercontroller von Anspruch 3, wobei die einzige Antwort dem ersten Eintrag und dem ersten Speicherbefehl entspricht.
  5. Der Speichercontroller von Anspruch 4, wobei die einzige Antwort eine Datenlesung von dem ersten Speichermodul beinhaltet.
  6. Der Speichercontroller von Anspruch 5, wobei der erste Speicherbefehl das zweite Speichermodul veranlasst, gleichzeitig mit dem Lesen des ersten Speichermoduls zu schreiben.
  7. 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.
  8. Das Verfahren nach Anspruch 7, wobei die Antwort eine Datenlesung aus dem ersten Speichermodul beinhaltet.
  9. Das Verfahren nach Anspruch 7, wobei die Antwort nicht dem zweiten Speicherbefehl entspricht.
  10. Das Verfahren nach Anspruch 7, wobei eine Schreibbestätigung in Antwort auf den zweiten Speicherbefehl nicht empfangen wird.
  11. Das Verfahren nach Anspruch 7, weiter mit dem Schreiben von Daten in das zweite Speichermodul gleichzeitig mit dem Lesen des ersten Speichermoduls.
  12. 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.
  13. 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.
  14. Die Speichervorrichtung nach Anspruch 13, wobei der Speichercontroller bestimmt, dass ein Schreiben basierend auf der nordseitigen Antwort aufgetreten ist.
  15. Die Speichervorrichtung nach Anspruch 13, wobei die Antwort eine Datenlesung von dem Speichermodul beinhaltet.
  16. 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.
  17. 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.
  18. Das System nach Anspruch 17, wobei die Antwort eine Datenlesung von dem ersten Speichermodul aufweist.
  19. Das System nach Anspruch 17, wobei die Antwort nicht dem zweiten Speicherbefehl dient.
  20. Das System nach Anspruch 17, wobei eine Schreibbestätigung in Antwort auf den zweiten Speicherbefehl nicht empfangen wird.
  21. 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.
  22. 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.
DE112006003122.8T 2005-12-28 2006-12-11 Vollständig gepufferter Dimm-Lesedatensubstitution für Schreibbestätigung Active DE112006003122B4 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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