DE10309919A1 - Pufferbaustein und Verfahren zum Ansteuern von einer oder mehreren Speicheranordnungen - Google Patents

Pufferbaustein und Verfahren zum Ansteuern von einer oder mehreren Speicheranordnungen Download PDF

Info

Publication number
DE10309919A1
DE10309919A1 DE2003109919 DE10309919A DE10309919A1 DE 10309919 A1 DE10309919 A1 DE 10309919A1 DE 2003109919 DE2003109919 DE 2003109919 DE 10309919 A DE10309919 A DE 10309919A DE 10309919 A1 DE10309919 A1 DE 10309919A1
Authority
DE
Germany
Prior art keywords
data
read
date
buffer
memory
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
DE2003109919
Other languages
English (en)
Other versions
DE10309919B4 (de
Inventor
Georg Braun
Hermann Ruckerbauer
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.)
Qimonda AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE10309919A priority Critical patent/DE10309919B4/de
Priority to US10/792,408 priority patent/US7447805B2/en
Priority to CNB2004100080144A priority patent/CN1289998C/zh
Publication of DE10309919A1 publication Critical patent/DE10309919A1/de
Application granted granted Critical
Publication of DE10309919B4 publication Critical patent/DE10309919B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache

Abstract

Die Erfindung betrifft einen Pufferbaustein zum Ansteuern von einer oder mehreren Speicheranordnungen, mit einer ersten Datenschnittstelle zum Empfangen eines zu schreibenden Datums und zum Senden eines ausgelesenen Datums, mit einer Umwandlungseinheit, um das empfangene Datum zu parallelisieren und um das zu sendende Datum zu seriellisieren, mit einer zweiten Datenschnittstelle zum Schreiben des parallelisierten Datums über einen Speicherdatenbus in die Speicheranordnung und zum Empfangen des aus der Speicheranordnung ausgelesenen Datums über den Speicherdatenbus; mit einem Schreibzwischenspeicher, um das zu schreibende Datum zwischen zu speichern, mit einer Steuereinheit, um nach einem Empfangen eines zu schreibenden Datums über die erste Datenschnittstelle gemäß einem Schreibbefehl bei einem nachfolgenden Lesebefehl, das Schreiben der Daten von dem Schreibzwischenspeicher über die zweite Datenschnittstelle zu unterbrechen, um die angeforderten Daten über die zweite Datenschnittstelle in den Pufferbaustein einzulesen.

Description

  • Die Erfindung betrifft einen Pufferbaustein zum Ansteuern von einer oder mehreren angeschlossenen Speicheranordnungen. Die Erfindung betrifft weiterhin ein Verfahren zum Betreiben eines Pufferbausteins für schnelle Speicherarchitekturen wie beispielsweise DDR-III-Speicherbausteine.
  • Für sehr schnelle und hochdichte Speicherarchitekturen, wie sie beispielsweise für DDR-III-Speicherbausteine benötigt werden, werden so genannte Pufferbausteine eingesetzt. Die Pufferbausteine ermöglichen es, den so genannten "Stub-Bus", wie er heute bei DDR- und DDR-II-Speicherbausteinen verwendet wird, zu ersetzen, und stattdessen ein hierarchisches Bussystem, bei dem nur noch Punkt-zu-Punkt-(P2P)- oder Punkt-zu-2-Punkt-(P22P)-Verbindungen vorkommen, zu verwenden. Derartige Datenverbindungen erlauben Datentransferraten bis weit über einen GBPS hinaus. Durch eine Kaskadierung ist es darüber hinaus möglich, viele Pufferbausteine aneinander zu ketten und Speichersysteme mit einer sehr hohen Anzahl von Speicherbausteinen an nur einem Speicherhauptbus zu realisieren.
  • An die Pufferbausteine sind üblicherweise eine oder mehrere Speicheranordnungen angeschlossen, wobei der Pufferbaustein Befehle und Daten über die P2P-Datenverbindung empfängt, diese parallelisiert und an die entsprechende angeschlossene Speicheranordnung weiterleitet. Beim Auslesen werden Daten aus der entsprechenden adressierten Speicheranordnung ausgelesen, seriellisiert und über die P2P-Datenverbindung an den Speichercontroller ausgegeben.
  • Insbesondere bei DRAM-Speicherbausteinen benötigen Wechsel von einem Schreibvorgang auf einen Lesevorgang und Wechsel von einem Lesevorgang auf einen Schreibvorgang unterschiedli che Zeitdauern vor allem dann, wenn zum Lesen oder zum Schreiben dieselbe Speicheranordnung adressiert werden soll. Während beim Übergang von einem Schreibvorgang auf einen Lesevorgang für eine Speicheranordnung eine Wartezeit gemäß den Chipparametern TWR (Write Recovery) oder TWTR (Write to Read) berücksichtigt werden muss, kann ein Wechsel von einem Schreibvorgang in eine Speicheranordnung zu einem Auslesevorgang einer anderen Speicheranordnung im Wesentlichen ohne Wartezeit durchgeführt werden. Dies führt entweder dazu, dass der Speichercontroller bei jedem Zugriffswechsel stets die hohe Busumkehrzeit verwendet, um das Vorsehen einer zusätzlichen Schaltung aus Komplexitätsgründen zu vermeiden oder dass eine aufwändige Logikschaltung in dem Speichercontroller vorgesehen ist, um alle Speicheranordnungen im Gesamtsystem optimal anzusteuern.
  • Die Ursache für die hohen Busumkehrzeiten in einer Speicheranordnung liegt nicht in der Architektur des Datenbusses im System begründet, sondern hängt mit dem Design der Speicherbausteine zusammen. Denn es muss sichergestellt werden, dass die Schreibdaten sicher in das Zellenfeld geschrieben werden, bevor die aktivierte Wortleitung wieder geschlossen wird (TWR) bzw. bevor neue Lesedaten vom Zellenfeld ausgelesen werden können (TWTR).
  • Es ist daher Aufgabe der vorliegenden Erfindung, einen Pufferbaustein zum Ansteuern von einer oder mehrerer Speicheranordnungen vorzusehen, mit der das Problem der unterschiedlichen Busumkehrzeiten insbesondere das Problem eines Wechsels von einem Schreibvorgang auf einen Auslesevorgang in einer Speicheranordnung berücksichtigt, so dass der Speichercontroller, der mit den Pufferchips verbunden ist, möglichst einfach aufgebaut werden kann. Es ist weiterhin eine Aufgabe der vorliegenden Erfindung, ein Verfahren zum Betreiben eines Pufferbausteins bereitzustellen.
  • Diese Aufgabe wird durch den Pufferbaustein nach Anspruch 1 sowie durch das Verfahren nach Anspruch 8 gelöst.
  • Weitere vorteilhafte Ausgestaltungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
  • Gemäß einem ersten Aspekt der vorliegenden Erfindung ist ein Pufferbaustein zum Ansteuern von einer oder mehreren Speicheranordnungen vorgesehen. Er weist eine erste Datenschnittstelle zum Empfangen eines zu schreibenden Datums und zum Senden eines ausgelesenen Datums auf. In einer Umwandlungseinheit wird das empfangene Datum parallelisiert und das zu sendende Datum seriellisiert. Es ist weiterhin eine zweite Datenschnittstelle vorgesehen, um das parallelisierte Datum über einen Speicherdatenbus in die Speicheranordnung zu schreiben und das aus der Speicheranordnung ausgelesene Datum über den Speicherdatenbus zu empfangen. Es ist ein Schreibzwischenspeicher vorgesehen, um das zu schreibende Datum zwischenzuspeichern. Eine Steuereinheit unterbindet nach einem Empfangen eines zu schreibenden Datums über die erste Datenschnittstelle gemäß einem Schreibbefehl bei einem nachfolgenden Lesebefehl für dieselbe Speicheranordnung das Schreiben der Daten von dem Zwischenspeicher über die zweite Datenschnittstelle, um die angeforderten Daten über die zweite Datenschnittstelle in den Pufferbaustein einzulesen.
  • Auf diese Weise kann das Problem der hohen Busumkehrzeiten beim Übergang von einem Schreibvorgang auf einen Lesevorgang dadurch gelöst werden, dass das letzte Datum, das in einer Schreibsequenz geschrieben werden soll, zunächst im Zwischenspeicher belassen wird, und sobald ein Lesebefehl durch den Pufferbaustein empfangen wird, der Lesebefehl ausgeführt wird. Dies spart Zeit, da nicht zunächst noch das Schreiben des letzten zu schreibenden Datums abgewartet werden muss, bevor mit dem Auslesen begonnen wird.
  • Es kann vorgesehen sein, dass die Steuereinheit das im Schreibzwischenspeicher gespeicherte Datum in die Speicheranordnung schreibt, wenn gemäß einem Schreibbefehl erneut Daten in die Speicheranordnung geschrieben werden sollen und/oder wenn das Auslesen von Daten aus der betreffenden Speicheranordnung beendet ist. Auf diese Weise ist es möglich, dass die gemäß dem Lesebefehl auszulesenden Daten so schnell wie möglich über den Pufferbaustein an den Speichercontroller ausgegeben werden können und dass die zum Schreiben in dem Schreibzwischenspeicher gespeicherten Daten erst dann in die Speicheranordnung geschrieben werden, wenn das Auslesen von Daten in die betreffende Speicheranordnung beendet ist oder kurzzeitig ausgesetzt wird. Empfängt der Pufferbaustein nach dem Lesebefehl erneut einen Schreibbefehl, so muss der Schreibzwischenspeicher zunächst geleert werden, indem das dort gespeicherte Datum in die Speicheranordnung geschrieben wird, bevor weitere zu schreibende Daten durch den Pufferbaustein empfangen werden können.
  • Es kann vorgesehen sein, dass die Steuereinheit bei einem Lesebefehl das Datum über die erste Datenschnittstelle ausgibt, wenn das im Schreibzwischenspeicher gespeicherte Datum gemäß dem Lesebefehl auszulesen ist. Auf diese Weise kann das Auslesen eines gespeicherten Datums dann beschleunigt werden, wenn das auszulesende Datum sich noch in dem Zwischenspeicher befindet.
  • Der Schreibzwischenspeicher weist vorzugsweise eine Größe auf, um mehrere Daten zu speichern, so dass bei einem Wechsel von einem Schreiben eines Datums gemäß einem Schreibbefehl zu einem Auslesen eines Datums über die erste Datenschnittstelle gemäß einem Lesebefehl und einem nachfolgenden erneuten Schreiben eines Datums über die erste Datenschnittstelle einen Überlauf des Schreibzwischenspeichers vermieden werden kann.
  • Der Pufferbaustein kann einen Lesezwischenspeicher aufweisen, um ein auszulesendes Datum zwischenzuspeichern. Die Steuereinheit ist dann so gestaltet, um gemäß einem Lesebefehl über die erste Datenschnittstelle nur einen Teil des auszulesenden Datums sendet.
  • Insbesondere in Serversystemen werden zur Erhöhung der Datenübertragungsrate und der maximal möglichen Speichertiefe oftmals zwei oder mehr Speicherbusse parallel angesprochen. Bei. diesem Konzept kann die Schwierigkeit auftreten, dass zu viele Daten von den parallel angesprochenen Speicherbussen bereitgestellt werden. Ursache hierfür ist ein Datenbuskonzept, das üblicherweise innerhalb von Speicherbausteinen, insbesondere innerhalb von DDR-Speicherbausteinen angewendet wird. Um die Datenübertragungsrate an der Schnittstelle kontinuierlich steigern zu können, werden aus dem Zellenfeld, dessen Zugriffsgeschwindigkeit üblicherweise nicht im gleichen Maße wie die externe Datenübertragungsrate gesteigert werden kann, mehrere Datenbits parallel auf einem breiten internen Bus ausgelesen und erst kurz vor dem eigentlichen Ausgangstreiber über einen Multiplexer mit einem sehr schnellen Datenstrom auf einer einzelnen Leitung zusammengeführt. Dieses Konzept wird Prefetch-Konzept genannt. Bei DDR-Speicherbausteinen ist das Prefetch-Verhältnis beispielsweise 2. D.h., dass pro Datenanschluss am Speicherbaustein jeweils 2 Bits von bzw. zu dem Zellenfeld übertragen werden können. Bei DDR-II-Speicherbausteinen beträgt das Prefetch-Verhältnis 4 und bei DDR-III-Speicherbausteinen wird das Prefetch-Verhältnis voraussichtlich 8 betragen. Die minimale Burst-Länge beim Zugreifen auf einen solchen Speicherbaustein wird üblicherweise entsprechend dem Prefetch-Verhältnis gesteigert. So beträgt die minimale Burst-Länge bei DDR-Speicherbausteinen 2 Bits und bei DDR-II-Speicherbausteinen 4 Bits. Wenn nun für DDR-III-Speicherbausteine ein Prefetch-Verhältnis von 8 gewählt werden muss, so wird voraussichtlich auch die minimale Burst-Länge bei DDR-III-Speicherbausteinen 8 Bits betragen.
  • Bei einem Lesebefehl beträgt die Menge der Daten, die an eine CPU übertragen werden kann, 64 Bytes. Werden nun zwei 8-Byte-Busse parallel bzw. interleaved betrieben, so beträgt die Menge der Daten, die bei einer minimalen Burst-Länge von 8 übertragen werden, 128 Bytes. Aus diesem Grunde ist eine minimale Burst-Länge von 4 Bit wünschenswert, das jedoch im Widerspruch zu dem Prefetch-Verhältnis von 8 bei DDR-III-Speicherbausteinen steht.
  • Aus diesem Grunde kann die Steuereinheit so vorgesehen sein, dass der Pufferbaustein zwar die Daten gemäß der minimalen Burst-Länge aus der Speicheranordnung empfängt, jedoch nur einen Teil der auszulesenden Daten über die erste Schnittstelle an den Speichercontroller sendet. Die übrigen Daten bleiben in dem Lesezwischenspeicher gespeichert oder werden verworfen.
  • Der Lesezwischenspeicher kann eine Größe aufweisen, um mehrere Daten zu speichern, wobei die Steuereinheit ein Vorladen von Daten in den Lesezwischenspeicher gemäß einer Cache-Funktion durchführt. Auf diese Weise kann man den Pufferbaustein mit einer vollständigen Cache-Funktion versehen, um den Datenzugriff auf die an dem Pufferbaustein angeschlossenen Speicheranordnungen zu verbessern.
  • Vorzugsweise ist vorgesehen, dass die Steuereinheit mehrere Lesebefehle puffert, um ein auszulesendes Datum, das in dem Lesezwischenspeicher oder in dem Schreibzwischenspeicher gespeichert ist, über die erste Schnittstelle zu senden, bevor das auszulesende Datum, das in der Speicheranordnung gespeichert ist, über die erste Schnittstelle gesendet wird. Durch dieses Aufbrechen der Reihenfolge der Abarbeitung der empfangenen Lesebefehle können diejenigen Lesebefehle bevorzugt abgearbeitet werden, deren zugehörige Daten sich bereits in dem Lese- bzw. Schreibzwischenspeicher befinden. Auf diese Weise wird einerseits der Lese- bzw. Schreibzwischenspeicher schneller geleert, um so Platz für weitere auszulesende bzw. zu schreibende Daten zu schaffen und andererseits können Latenzzeiten beim Auslesen von Daten aus der adressierten Speicheranordnung durch das Senden von auszulesenden Daten über die erste Datenschnittstelle aus dem Lese- bzw. Schreibzwischenspeicher überbrückt werden.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung ist ein Verfahren zum Betreiben eines Pufferbausteins, an den eine oder mehrere Speicheranordnungen angeschlossen sind, vorgesehen. Gemäß eines Schreibbefehls wird ein zu schreibendes Datum von dem Pufferbaustein empfangen und ein gemäß eines Lesebefehls ausgelesenes Datum aus dem Pufferbaustein gesendet. Zunächst wird ein zu schreibendes Datum gemäß eines ersten Schreibbefehls empfangen, das empfangene Datum parallelisiert und zunächst in dem Pufferbaustein zwischengespeichert. Das Schreiben des empfangenen Datums in die Speicheranordnung wird durchgeführt, wenn auf den ersten Schreibbefehl ein zweiter Schreibbefehl folgt. Folgt jedoch auf den ersten Schreibbefehl ein erster Lesebefehl, wird das zwischengespeicherte zu schreibende Datum zunächst nicht in die Speicheranordnung geschrieben, sondern zunächst das auszulesende Datum aus der Speicheranordnung ausgelesen.
  • Auf diese Weise kann die Busumkehrzeit von einem Schreibvorgang auf einen Lesevorgang versteckt werden, indem das letzte zu schreibende Datum vor einem Lesevorgang in die gleiche Speicheranordnung zunächst zwischengespeichert wird.
  • Vorzugsweise wird das zwischengespeicherte Datum in die Speicheranordnung geschrieben, wenn auf den ersten Lesebefehl ein dritter Schreibbefehl folgt, oder wenn auf den Pufferbaustein nicht mit einem Schreibbefehl oder Lesebefehl zugegriffen wird. Auf diese Weise wird eine Pause beim Zugriff auf die Speicheranordnung abgewartet, um das zu schreibende Datum in dem Schreibzwischenspeicher in die betreffende Speicheranordnung zu schreiben. Ein Schreiben in die Speicheranordnung muss auch erfolgen, wenn ein weiterer Schreibbefehl folgt, um Platz für die Zwischenspeicherung der gemäß des dritten Schreibbefehls zu schreibenden Datums zu schaffen.
  • Die Erfindung wird im Folgenden anhand der beigefügten Zeichnungen näher erläutert. Es zeigen:
  • 1 ein Blockschaltbild eines erfindungsgemäßen Pufferbausteins;
  • 2 ein Flussdiagramm zur Darstellung einer Ausführungsform des erfindungsgemäßen Verfahrens;
  • 3 ein mögliches Kommandoprotokoll zur Ansteuerung eines Pufferbausteins gemäß einer Ausführungsform der Erfindung;
  • 4 ein weiteres Kommandoprotokoll gemäß einer weiteren Ausführungsform des Pufferbausteins gemäß der Erfindung;
  • 5 ein Datenprotokoll für einen Pufferbaustein gemäß der Erfindung; und
  • 6 ein weiteres Datenprotokoll für einen Pufferbaustein gemäß einer weiteren Ausführungsform der Erfindung.
  • In 1 ist ein Pufferbaustein 1 gemäß einer Ausführungsform der Erfindung dargestellt. Der Pufferbaustein 1 weist eine erste Datenschnittstelle 2 auf, um Befehlsdaten zu empfangen und aus einer der Speicheranordnungen 3 ausgelesene Daten an einen Speichercontroller 4 oder an weitere Pufferbausteine zu übertragen. Die erste Datenschnittstelle 2 kann zu schreibende Daten empfangen und diese in die jeweils adressierte Speicheranordnung 3 schreiben. Das Lesen aus den Speicheranordnungen 3 oder das Schreiben in die Speicheranordnungen 3 erfolgt über eine zweite Datenschnittstelle 5.
  • Die Speicheranordnungen 3 sind mit der zweiten Datenschnittstelle 5 über getrennte Datenleitungen verbunden. Sie können jedoch auch über einen gemeinsamen Datenbus über die zweite Datenschnittstelle 5 mit dem Pufferbaustein verbunden sein.
  • Die Pufferbausteine 1 sind mit dem Speichercontroller 4 in Form einer Daisy-Chain verbunden, d.h. es sind lediglich Punkt-zu-Punkt-Verbindungen zwischen Speichercontroller 4 und dem ersten Pufferbaustein 1 und zwischen dem ersten Pufferbaustein und einem zweiten Pufferbaustein vorgesehen. Ein gemeinsamer Datenbus, über den alle Daten zwischen Pufferbaustein 1 und Speichercontroller 4 übertragen werden, existiert nicht.
  • Ein Datenbus 6 mit einer P2P-Datenverbindung ermöglicht die schnellere Übertragung von Daten, da die Leitungskapazitäten geringer sind. Eine schnellere Übertragung der Daten hat zur Folge, dass weniger Datenleitungen von dem Speichercontroller zu den Pufferchips notwendig sind, so dass es einfacher ist, im Layout gleiche Datenleitungslängen für den Datenbus 6 vorzusehen. Gleiche Datenleitungslängen haben den Vorteil, dass schnellere Signale übertragen werden können, da dann die Laufzeiten auf allen Datenleitungen identisch sind.
  • Über den Datenbus 6 werden Befehlsdaten und Speicherdaten übertragen. Die Befehlsdaten geben im Wesentlichen die Adresse der Speicheranordnung 3, der Speicherbank sowie des Speicherplatzes an, in den Speicherdaten geschrieben werden sollen oder aus dem Speicherdaten ausgelesen werden sollen. Sendet der Speichercontroller 4 ein Befehlsdatum, so wird es von der ersten Datenschnittstelle 2 empfangen und in einer Schalteinrichtung 7 analysiert. Dort wird entschieden, ob eine der Speicheranordnungen 3, die an dem jeweiligen Pufferbaustein 1 angeschlossen sind, adressiert werden soll oder nicht.
  • Soll einer der angeschlossenen Speicherbausteine 3 adressiert werden, so werden die Befehlsdaten und/oder die Speicherdaten in einer Umwandlungseinheit 8 parallelisiert, so dass die Daten in der für die Speicheranordnungen 3 notwendigen Datenbreite und Geschwindigkeit vorliegen. Soll keine der an dem jeweiligen Pufferbaustein 1 angeschlossenen Speicheranordnungen 3 adressiert werden, so gibt die Schalteinrichtung 7 das empfangene Befehlsdatum und/oder das empfangene Speicherdatum über die erste Datenschnittstelle 2 an einen nächsten Puffer baustein 1 weiter. Dort wird das weitergereichte Befehlsdatum und/oder Speicherdatum von der jeweiligen ersten Datenschnittstelle 2 des nächsten Pufferbausteins 1 empfangen und der betreffenden Schalteinrichtung 7 zugeführt.
  • Die Umwandlungseinheit 8 ist mit einem Zwischenspeicher 9 verbunden, der einen Schreibzwischenspeicher 10 und einen Lesezwischenspeicher 11 aufweist. Der Schreibzwischenspeicher 10 dient dazu, ein zu schreibendes Speicherdatum zunächst zwischenzuspeichern, bevor es über die zweite Datenschnittstelle 5 in die jeweilige adressierte Speicheranordnung 3 geschrieben wird. Der Lesezwischenspeicher 11 hat die Funktion, ein aus der jeweils adressierten Speicheranordnung 3 über die zweite Datenschnittstelle 5 ausgelesenes Speicherdatum zwischenzuspeichern, bevor es über die Umwandlungseinheit 8 und die erste Datenschnittstelle 2 an den Speichercontroller 4 ausgegeben wird. Innerhalb der Pufferbausteine 1 können Datenbusse sowohl bidirektional als auch unidirektional ausgeführt sein.
  • Der Zwischenspeicher 9 dient dazu, unterschiedliche Busumkehrzeiten zwischen einem Schreibvorgang und einem Lesevorgang bzw. zwischen einem Lesevorgang und einem Schreibvorgang zu puffern. Insbesondere bei einem Wechsel von einem Schreibvorgang zu einem Lesevorgang ist bei einem Zugriff auf dieselbe Speicheranordnung 3 eine hohe Latenzzeit notwendig, bis nach dem letzten Schreiben eines Speicherdatums in die Speicheranordnung ein Speicherdatum aus derselben Speicheranordnung 3 ausgelesen werden kann. Diese Latenzzeit ist durch die Parameter der in der Speicheranordnung 3 vorgesehenen Speicherbausteine TWR und TWTR vorgegeben. Bei einem Wechsel von einem Schreibvorgang in einer der Speicheranordnungen 3 zu einem Lesevorgang in einer der anderen Speicheranordnungen 3 tritt jedoch keine wesentliche Latenzzeit auf, da das Schreiben des letzten zu schreibenden Datum zu Ende geführt werden kann, während bereits Daten aus der anderen Speicheranordnung 3 ausgelesen werden.
  • Um die Komplexität des Speichercontrollers 4 möglichst gering zu halten, ist üblicherweise vorgesehen, unabhängig von der Art des Zugriffs die Latenzzeit so groß vorzusehen, dass bei allen möglichen Speicherzugriffen die maximal notwendige Latenzzeit nicht unterschritten wird. Dies führt dazu, dass bei manchen Speicherzugriffen eine höhere Latenzzeit vorgesehen wird als notwendig wäre.
  • Alternativ kann der Speichercontroller 4 so vorgesehen werden, dass er je nach Art des Speicherzugriffs die zugehörige Latenzzeit ermittelt und die Befehlsdaten entsprechend verzögert sendet. Dies würde die Komplexität der Schaltungen in dem Speichercontroller 4 merklich erhöhen.
  • Der Zwischenspeicher 9 in dem Pufferbaustein 1 ermöglicht es nun, dass der Speichercontroller 4 mit einer geringen Komplexität vorgesehen sein kann, da in dem Zwischenspeicher 9, insbesondere in dem Schreibzwischenspeicher 10, die bei einer Busumkehr von einem Schreibvorgang auf einen Lesevorgang in dieselbe Speicheranordnung 3 notwendige Latenzzeit versteckt werden kann.
  • Die Funktionsweise des Zwischenspeichers 9 ist folgendermaßen. Das Schreiben von Daten über den Datenbus 6, den Pufferbaustein 1 in die Speicheranordnung 3 erfolgt gemäß einem Schreibbefehl und nachfolgenden einer oder mehreren Speicherdaten. Bevor die Speicherdaten in die durch das Befehlsdatum adressierte Speicheranordnung geschrieben werden, werden sie zunächst in dem Schreibzwischenspeicher 10 gespeichert. Wird über den Datenbus 6 ein Befehlsdatum an den Pufferbaustein 1 gesendet, das einen Auslesebefehl zum Auslesen eines Datum aus derselben Speicheranordnung 3 enthält, so wird das als letztes zu schreibendes Speicherdatum in dem Schreibzwischenspeicher 10 nicht über die zweite Datenschnittstelle 5 an die betreffende Speicheranordnung 3 ausgegeben. Stattdessen wird der empfangene Lesebefehl sofort an die adressierte Speicheranordnung 3 weitergegeben und die angeforderten Daten über den Lesezwischenspeicher 11 über den Datenbus 6 ausgelesen. Die Steuereinheit 12 entscheidet, gemäß den empfangenen Befehlsdaten, ob das in dem Schreibzwischenspeicher 10 gespeicherte Schreibdatum in die adressierte Speicheranordnung 3 geschrieben werden soll. Sobald die Steuereinheit 12 einen Lesebefehl detektiert, wird überprüft, ob der Lesebefehl die gleiche Speicheranordnung 3 betrifft, wie die zuvor durchgeführten Schreibvorgänge. Betrifft der Lesebefehl dieselbe Speicheranordnung 3, so wird das Schreiben der Schreibdaten in die Speicheranordnung 3 gestoppt und der Lesebefehl sofort an die betreffende Speicheranordnung 3 weitergegeben.
  • Betrifft der Lesebefehl eine andere Speicheranordnung 3, so kann das Schreiben der Schreibdaten in die betreffende Speicheranordnung 3 fortgesetzt werden und der Lesebefehl an die andere durch den Lesebefehl adressierte Speicheranordnung 3 weitergegeben werden, um das Auslesen der Daten zu starten. Das ist jedoch nur dann möglich, wenn die Speicheranordnungen 3 über getrennte Datenleitungen mit der zweiten Datenschnittstelle 5 verbunden sind. Sind die Speicheranordnungen 3 über einen gemeinsamen Datenbus mit dem Pufferbaustein verbunden, entfällt die letztgenannte Variante.
  • Dadurch, dass insbesondere bei DDR-Speicherbausteinen (Double Data Rate) das Schreiben und Lesen von Daten in Burst-Zugriffen erfolgt, d.h. in Zugriffen, bei denen mehrere Datenpakete nacheinander in den Speicherbaustein 3 geschrieben bzw. aus dem Speicherbaustein 3 ausgelesen werden können, ohne für jedes Datum einen Schreib- oder Lesebefehl vorauszuschicken, kann ein Lesebefehl von dem Pufferbaustein 1 empfangen werden, während das Schreiben von Daten in dem Burst-Zugriff auf die Speicheranordnung 3 noch nicht abgeschlossen ist.
  • Das Schreiben des in dem Schreibzwischenspeicher gespeicherten Speicherdatums erfolgt dann, wenn der Zugriff auf die betreffende Speicheranordnung 3 unterbrochen wird, d.h. das Auslesen von Daten aus der Speicheranordnung zunächst beendet wird. In diesem Fall wird die zugriffslose Zeit auf die betreffende Speicheranordnung 3 genutzt, um den Schreibzwischenspeicher 10 zu leeren, indem die dort gespeicherten Daten in der Speicheranordnung 3 gespeichert werden. Darüber hinaus werden die in dem Schreibzwischenspeicher 10 gespeicherten Speicherdaten in die Speicheranordnung 3 geschrieben, wenn erneut ein Schreibzugriff auf die betreffende Speicheranordnung 3 gestartet wird. Dies dient dazu, den Schreibzwischenspeicher 10 so schnell wie möglich zu leeren, so dass neue eintreffende Schreibdaten zwischengespeichert werden können.
  • Die Steuereinheit 12 kann weiterhin vorsehen, dass beim Auslesen von Speicherdaten aus der adressierten Speicheranordnung 3 die in dem Lesezwischenspeicher 11 gespeicherten ausgelesenen Speicherdaten nur zum Teil über den Datenbus 6 an den Speichercontroller 4 gesendet werden. Dies ist deshalb sinnvoll, da bei künftigen Speicherarchitekturen mit einem Burst-Zugriff auf Speicherbausteine der Speicheranordnung 3 zu viele Daten bereitgestellt werden, die von einem an den Speichercontroller 4 angeschlossenen Mikroprozessor nicht gleichzeitig aufgenommen werden können.
  • Insbesondere bei DDR-Speicherbausteinen hängt die Mindest-Burst-Länge, d.h. die Mindestmenge an Daten, die gemäß einem Befehl geschrieben oder ausgelesen werden, von dem so genannten Prefetch-Verhältnis ab. Während bei DDR-Speicherbausteinen das Prefetch-Verhältnis 2 und bei DDR-II-Speicherbausteinen das Prefetch-Verhältnis 4 beträgt, so ist bei der kommenden Generation der DDR-III-Speicherbausteine das Prefetch-Verhältnis voraussichtlich 8. Insbesondere bei Gesamtsystemen, bei denen zwei Speicherkanäle parallel bzw. interleaved betrieben werden, ist es von Vorteil, wenn auch für DDR-III-Speicherbausteine die minimale Burst-Länge nur 4 betragen würde. Der Grund hierfür liegt darin, dass die Menge der Daten, die bei einem Lesebefehl zum Mikroprozessor übertragen werden, voraussichtlich 64 Bytes betragen soll. Werden nun zwei 8-Byte-Datenbusse parallel bzw. interleaved betrieben, so beträgt die Menge der Daten, die bei einer minimalen Burst-Länge von 8 übertragen werden, 128 Bytes. Aus diesem Grunde wäre eine Beschränkung der minimalen Burst-Länge auf 4 wünschenswert.
  • Um dies zu erreichen, kann der Lesezwischenspeicher 11 die Daten aus den Speicheranordnungen gemäß einer Burst-Länge von 8 Bit Zwischenspeicher, wobei die Steuereinheit 12 jeweils nur einen Teil, nämlich eine Hälfte der zwischengespeicherten Speicherdaten, an die Umwandlungseinheit 8 zur Ausgabe an die erste Datenschnittstelle 2 an den Speichercontroller 4 weitergibt. Auf diese Weise erhält der Speichercontroller 4 selbst bei Speicheranordnungen mit Speicherbausteinen, die eine minimale Burst-Länge von mehr als 4 Bit aufweisen, nur diejenige Datenmenge, die der angeschlossene Mikroprozessor benötigt.
  • Die ausgelesenen Daten verbleiben zunächst in dem Lesezwischenspeicher 11, so dass bei einem passenden Lesebefehl die restliche Datenhälfte direkt vom Lesezwischenspeicher 11 zum Speichercontroller 4 übertragen werden kann, ohne dass der Pufferbaustein 1 einen erneuten Lesebefehl an die Speicheranordnung 3 sendet.
  • In 2 ist ein Flussdiagramm zur Veranschaulichung des erfindungsgemäßen Verfahrens dargestellt. Das Verfahren betrifft den Ablauf in einem erfindungsgemäßen Pufferbaustein. In einem Schritt S1 wird ein Schreibbefehl von dem Pufferbaustein 1 empfangen, der angibt, dass nun über den Datenbus zu schreibende Daten empfangen werden können. Die zu schreibenden Daten werden in einem Schritt S2 empfangen und in einem Schritt S3 zunächst zwischengespeichert. In einem Schritt S4 wird dann überprüft, ob ein Lesebefehl zum Auslesen derselben Speicheranordnung empfangen worden ist. Wurde kein Lesebefehl empfangen, wird das zwischengespeicherte Datum in einem Schritt S5 in die betreffende adressierte Speicheranordnung geschrieben und zum Schritt 52 zurückgesprungen.
  • Wurde ein Lesebefehl auf dieselbe Speicheranordnung empfangen, wird in einem Schritt S6 der adressierte Speicherbereich der betreffenden Speicheranordnung angesprochen und die entsprechenden Lesedaten empfangen. Ein Schreiben der zwischengespeicherten zu schreibenden Daten unterbleibt. Die von der adressierten Speicheranordnung empfangenen Lesedaten werden zwischengespeichert in einem Schritt S7 und anschließend in einem Schritt S8 überprüft, ob weitere Daten aus der adressierten Speicheranordnung ausgelesen werden sollen. Sind weitere Lesedaten von der Speicheranordnung angefordert, werden die zwischengespeicherten Lesedaten in einem Schritt S9 an den Speichercontroller gesendet und zu dem Schritt S6 zurückgesprungen. Sind keine weiteren Lesedaten auszulesen, so werden im Wesentlichen gleichzeitig die zuletzt zwischengespeicherten Lesedaten an den Speichercontroller ausgegeben und die zuletzt zwischengespeicherten zu schreibenden Daten, die noch nicht in die betreffende Speicheranordnung geschrieben worden sind, in die Speicheranordnung geschrieben (Schritt 510).
  • Der oben beschriebene Zwischenspeicher 9 und die dazugehörige Steuereinheit 12 können auch komplexer vorgesehen sein. So ist z.B. eine Schreib-/Lese-Cache-Funktionalität im Pufferbaustein 1 realisierbar, der neben der Lösung der oben beschriebenen Probleme zusätzlich eine Steigerung der Gesamtleistungsfähigkeit des Gesamtsystems erlaubt. Da im Gegensatz zu den Speicherbausteinen der Speicheranordnung 3 für den Pufferbaustein 1 eine Herstellungstechnologie verwendet wird, die schnelle Logikschaltungen ermöglicht, sind komplexe Cache-Kontrollschaltungen im Pufferbaustein 1 denkbar. Eine solche komplexe Cache-Kontrollschaltung kann beispielsweise in Abhängigkeit der Schreib- und Lesebefehle und der verwendeten Adressbereiche im System verschiedene auszulesende Speicherdaten schon vorab von den Speicherbausteinen der Speicheranordnung 3 anfordern, um bei einem Lesebefehl vom Speichercontroller 4 die angeforderten Daten sehr schnell aus dem Zwischenspeicher 9 bereitzustellen.
  • Bei der Implementierung eines solchen Cache-Speichers als Zwischenspeicher 9 ist wesentlich, dass die Ausführzeit für verschiedene Schreib- oder Lesebefehle stark variieren kann, je nachdem, ob die Daten über den Zwischenspeicher 9 bzw. über den Cache-Speicher der Pufferbausteine 1 bedient werden, oder ob sie von den Speicherbausteinen abgearbeitet werden müssen. Es kann daher ein Befehls- und Nutzdatenprotokoll vorgesehen sein, das es ermöglicht, dass die Daten zu den einzelnen Schreib- und Lesebefehlen in einer anderen Reihenfolge übertragen werden, als durch die Befehle vorgegeben ist. Dazu wird mit dem Befehlsdatum und mit dem Speicherdatum eine so genannte Identifikationsnummer (Request ID) übertragen, über die zusammengehörige Befehlsdaten und Speicherdaten identifiziert werden können.
  • In 3 ist ein mögliches Befehlsprotokoll dargestellt. Die Datenleitungen CA (0 bis 7) des Datenbusses 6 übertragen ein Befehlsdatum in vier Abschnitten, den so genannten Ticks. Im ersten Tick wird auf den vier Datenbusleitungen CAO bis CA3 die Speicheranordnungsadresse R(0) bis R(3) übertragen. Auf den weiteren vier Datenbusleitungen wird die Identifikationsnummer RID(0) bis RID(3) übertragen, um eine Zuordnung des Befehlsdatums zu einem entsprechenden Speicherdatum vornehmen zu können. Mit den übrigen Ticks werden Adressdaten für die Speicherbausteine der Speicheranordnungen, die Bankadresse sowie die Ansteuerbefehle, Zeilenaktivierungssignal RAS, Spaltenaktivierungssignal CAS, Schreibsignal WE übertragen. Auf einer der Datenleitungen wird im zweiten Tick ein Bit übertragen, das angibt, ob mit dem Befehlsdatum ein Speicherbaustein bzw. eine Speicheranordnung angesprochen werden soll, oder ob es sich um einen Befehl für den Pufferbaustein 1 handelt.
  • In 4 ist alternativ eine weitere Ausführungsform für ein mögliches Befehlsprotokoll dargestellt. Dabei ist eine weitere Datenbusleitung CA (8) vorgesehen, um in den vier Ticks 4 Bit der Identifikationsnummer RID(0 bis 3) zu übertragen.
  • In 5 ist ein Beispiel für ein Speicherdatenprotokoll dargestellt. Das Speicherdatum wird in vier Ticks mit einer Breite von 16 Datenbits DQ0 bis DQ15 übertragen. Die ersten vier Datenbits des ersten Ticks tragen die Identifikationsnummer RID(0 bis 3).
  • Eine weitere Möglichkeit ist in 6 dargestellt, bei der der Datenbus 6 eine weitere Datenbusleitung DQ(16) umfasst. Auf der weiteren Datenbusleitung werden in vier Ticks die 4 Bit der Identifikationsnummer übertragen, so dass eine Zuordnung zu dem jeweiligen Befehlsdatum gleicher Identifikationsnummer erfolgen kann.
  • Das Vorsehen von Identifikationsnummern ermöglicht es, dass die Daten zu den einzelnen Schreibbefehlen und Lesebefehlen in einer anderen Reihenfolge von und zu dem Speichercontroller 4 übertragen werden können als die Befehlsdaten.
  • Im gezeigten Beispiel der 1 ist der Zwischenspeicher 9 zwischen der Umwandlungseinheit 8 und der zweiten Datenschnittstelle 5 angeordnet. Der Zwischenspeicher 9 kann, ohne die Funktionalität wesentlich einzuschränken, auch zwischen der Umwandlungseinheit 8 und der Schalteinrichtung 7 oder zwischen der ersten Datenschnittstelle 2 und der Schalteinrichtung 7 angeordnet sein.
  • Der Pufferbaustein 1 und die angeschlossenen Speicheranordnungen 3 sind vorzugsweise in so genannten Speichermodulen zusammengefasst und baulich in einem so genannten DIMM-Modul integriert. Diese DIMM-Module stellen eine übliche Speicherkonfiguration für den Einsatz in Personalcomputern dar.
  • 1
    Pufferbaustein
    2
    Erste Datenschnittstelle
    3
    Speicheranordnung
    4
    Speichercontroller
    5
    Zweite Datenschnittstelle
    6
    Datenbus
    7
    Schalteinrichtung
    8
    Umwandlungseinheit
    9
    Zwischenspeicher
    10
    Schreibzwischenspeicher
    11
    Lesezwischenspeicher
    12
    Steuereinheit

Claims (9)

  1. Pufferbaustein (1) zum Ansteuern von einer oder mehreren Speicheranordnungen (3), mit einer ersten Datenschnittstelle (2) zum Empfangen eines zu schreibenden Datums und zum Senden eines ausgelesenen Datums, mit einer Umwandlungseinheit (8), um das empfangene Datum zu parallelisieren und um das zu sendende Datum zu seriellisieren, mit einer zweiten Datenschnittstelle (5) zum Schreiben des parallelisierten Datum über einen Speicherdatenbus in die Speicheranordnung und zum Empfangen des aus der Speicheranordnung (3) ausgelesenen Datum über den Speicherdatenbus; mit einem Schreibzwischenspeicher (10), um das zu schreibende Datum zwischen zu speichern, mit einer Steuereinheit (12), um nach einem Empfangen eines zu schreibenden Datum über die erste Datenschnittstelle gemäß einem Schreibbefehl bei einem nachfolgenden Lesebefehl das Schreiben der Daten von dem Schreibzwischenspeicher (10) über die zweite Datenschnittstelle (5) zu unterbinden, um die angeforderten Daten über die zweite Datenschnittstelle (5) in den Pufferbaustein (1) einzulesen.
  2. Pufferbaustein (1) nach Anspruch 1, wobei die Steuereinheit (12) das im Schreibzwischenspeicher (10) gespeicherte Datum in die Speicheranordnung (3) schreibt, wenn gemäß einem Schreibbefehl erneut Daten in die Speicheranordnung geschrieben werden sollen und/oder wenn das Auslesen von Daten beendet ist.
  3. Pufferbaustein (1) nach Anspruch 1 oder 2, wobei die Steuereinheit (12) bei einem Lesebefehl das Datum über die erste Datenschnittstelle (2) ausgibt, wenn das im Schreibzwischenspeicher (10) gespeicherte Datum gemäß dem Lesebefehl auszulesen ist.
  4. Pufferbaustein (1) nach Anspruch 1 bis 3, wobei der Schreibzwischenspeicher (10) eine Größe aufweist, um mehrere Daten zu speichern, um bei einem Wechsel von einem Schreiben eines Datums gemäß einem Schreibbefehl zu einem Auslesen eines Datums über die erste Datenschnittstelle (2) und einem nachfolgenden erneuten Schreiben eines Datums über die erste Datenschnittstelle (2) einen Überlauf des Schreibzwischenspeichers (10) zu vermeiden.
  5. Pufferbaustein (1) nach Anspruch 1 bis 4 mit einem Lesezwischenspeicher (11) zum Zwischenspeichern eines auszulesenden Datum, wobei die Steuereinheit (12) gemäß einem Lesebefehl über die erste Datenschnittstelle (2) nur einen Teil des auszulesenden Datum sendet.
  6. Pufferbaustein (1) nach Anspruch 5, wobei der Lesezwischenspeicher (11) eine Größe aufweist, um mehrere Daten zu speichern, wobei die Steuereinheit (12) ein Vorladen von Daten in den Lesezwischenspeicher (11) gemäß einer Cachefunktion durchführt.
  7. Pufferbaustein (1) nach Anspruch 6, wobei die Steuereinheit (12) mehrere Lesebefehle puffert, um ein auszulesendes Datum, das in dem Lesezwischenspeicher (11) oder in dem Schreibzwischenspeicher (10) gespeichert ist, über die erste Datenschnittstelle (2) zu senden, bevor das auszulesende Datum, das in der Speicheranordnung (3) ge speichert ist, über die erste Schnittstelle gesendet wird.
  8. Verfahren zum Betreiben eines Pufferbausteins (1), an den eine oder mehrere Speicheranordnungen (3) angeschlossen sind, wobei ein gemäß eines Schreibbefehls zu schreibendes Datum von dem Pufferbaustein (1) empfangen wird und ein gemäß eines Lesebefehls ausgelesenes Datum aus dem Pufferbaustein (1) gesendet wird, mit folgenden Schritten: Empfangen eines zu schreibendes Datum gemäß eines ersten Schreibbefehls; Paralleliseren des empfangenen Datum; Zwischenspeichern des empfangenen Datum; Schreiben des empfangenen Datum in die Speicheranordnung (3), wenn auf den ersten Schreibbefehl ein zweiter Schreibbefehl folgt; Auslesen des auszulesenden Datum aus der Speicheranordnung (3), wenn auf den ersten Schreibbefehl ein erster Lesebefehl folgt.
  9. Verfahren nach Anspruch 8, wobei das zwischengespeicherte Datum in die Speicheranordnung (3) geschrieben wird, wenn auf den ersten Lesebefehl ein dritter Schreibbefehl folgt, oder wenn auf den Pufferbaustein (1) nicht mit einem Schreibbefehl oder Lesebefehl zugegriffen wird.
DE10309919A 2003-03-07 2003-03-07 Pufferbaustein und Speichermodule Expired - Fee Related DE10309919B4 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE10309919A DE10309919B4 (de) 2003-03-07 2003-03-07 Pufferbaustein und Speichermodule
US10/792,408 US7447805B2 (en) 2003-03-07 2004-03-03 Buffer chip and method for controlling one or more memory arrangements
CNB2004100080144A CN1289998C (zh) 2003-03-07 2004-03-05 缓冲芯片及—或多存储装置之驱动方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10309919A DE10309919B4 (de) 2003-03-07 2003-03-07 Pufferbaustein und Speichermodule

Publications (2)

Publication Number Publication Date
DE10309919A1 true DE10309919A1 (de) 2004-09-23
DE10309919B4 DE10309919B4 (de) 2008-09-25

Family

ID=32891923

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10309919A Expired - Fee Related DE10309919B4 (de) 2003-03-07 2003-03-07 Pufferbaustein und Speichermodule

Country Status (3)

Country Link
US (1) US7447805B2 (de)
CN (1) CN1289998C (de)
DE (1) DE10309919B4 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7991965B2 (en) 2006-02-07 2011-08-02 Intel Corporation Technique for using memory attributes
US8078801B2 (en) 2006-12-27 2011-12-13 Intel Corporation Obscuring memory access patterns
US8588017B2 (en) 2010-10-20 2013-11-19 Samsung Electronics Co., Ltd. Memory circuits, systems, and modules for performing DRAM refresh operations and methods of operating the same

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005009806A1 (de) * 2005-03-03 2006-09-14 Infineon Technologies Ag Pufferbaustein für ein Speichermodul, Speichermodul und Speichersystem
US8089795B2 (en) 2006-02-09 2012-01-03 Google Inc. Memory module with memory stack and interface with enhanced capabilities
US8111566B1 (en) 2007-11-16 2012-02-07 Google, Inc. Optimal channel design for memory devices for providing a high-speed memory interface
US8397013B1 (en) 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US8796830B1 (en) 2006-09-01 2014-08-05 Google Inc. Stackable low-profile lead frame package
US7386656B2 (en) 2006-07-31 2008-06-10 Metaram, Inc. Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit
US8386722B1 (en) 2008-06-23 2013-02-26 Google Inc. Stacked DIMM memory interface
US8335894B1 (en) 2008-07-25 2012-12-18 Google Inc. Configurable memory system with interface circuit
US9542352B2 (en) 2006-02-09 2017-01-10 Google Inc. System and method for reducing command scheduling constraints of memory circuits
US9171585B2 (en) 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
US20080082763A1 (en) 2006-10-02 2008-04-03 Metaram, Inc. Apparatus and method for power management of memory circuits by a system or component thereof
US8438328B2 (en) 2008-02-21 2013-05-07 Google Inc. Emulation of abstracted DIMMs using abstracted DRAMs
US8081474B1 (en) 2007-12-18 2011-12-20 Google Inc. Embossed heat spreader
US7392338B2 (en) 2006-07-31 2008-06-24 Metaram, Inc. Interface circuit system and method for autonomously performing power management operations in conjunction with a plurality of memory circuits
US8327104B2 (en) 2006-07-31 2012-12-04 Google Inc. Adjusting the timing of signals associated with a memory system
US8169233B2 (en) 2009-06-09 2012-05-01 Google Inc. Programming of DIMM termination resistance values
US8060774B2 (en) 2005-06-24 2011-11-15 Google Inc. Memory systems and memory modules
US8077535B2 (en) 2006-07-31 2011-12-13 Google Inc. Memory refresh apparatus and method
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
US8090897B2 (en) 2006-07-31 2012-01-03 Google Inc. System and method for simulating an aspect of a memory circuit
US8244971B2 (en) 2006-07-31 2012-08-14 Google Inc. Memory circuit system and method
US8359187B2 (en) 2005-06-24 2013-01-22 Google Inc. Simulating a different number of memory circuit devices
US8130560B1 (en) 2006-11-13 2012-03-06 Google Inc. Multi-rank partial width memory modules
US20080028136A1 (en) 2006-07-31 2008-01-31 Schakel Keith R Method and apparatus for refresh management of memory modules
US9507739B2 (en) 2005-06-24 2016-11-29 Google Inc. Configurable memory circuit system and method
US8041881B2 (en) 2006-07-31 2011-10-18 Google Inc. Memory device with emulated characteristics
US8055833B2 (en) 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
US7379316B2 (en) 2005-09-02 2008-05-27 Metaram, Inc. Methods and apparatus of stacking DRAMs
US9632929B2 (en) 2006-02-09 2017-04-25 Google Inc. Translating an address associated with a command communicated between a system and memory circuits
US7724589B2 (en) 2006-07-31 2010-05-25 Google Inc. System and method for delaying a signal communicated from a system to at least one of a plurality of memory circuits
JP4470183B2 (ja) * 2006-08-28 2010-06-02 エルピーダメモリ株式会社 半導体記憶装置
US7921243B1 (en) * 2007-01-05 2011-04-05 Marvell International Ltd. System and method for a DDR SDRAM controller
US7702841B2 (en) * 2007-03-08 2010-04-20 Ricoh Company, Limited Semiconductor integrated circuit and image processing apparatus having the same
US8209479B2 (en) 2007-07-18 2012-06-26 Google Inc. Memory circuit system and method
US8080874B1 (en) 2007-09-14 2011-12-20 Google Inc. Providing additional space between an integrated circuit and a circuit board for positioning a component therebetween
US20090150894A1 (en) * 2007-12-10 2009-06-11 Ming Huang Nonvolatile memory (NVM) based solid-state disk (SSD) system for scaling and quality of service (QoS) by parallelizing command execution
US9110597B2 (en) * 2007-12-10 2015-08-18 Hewlett-Packard Development Company, L.P. Data processing method and system
TWI355588B (en) * 2008-01-25 2012-01-01 Realtek Semiconductor Corp Arbitration device and method thereof
US7730244B1 (en) * 2008-03-27 2010-06-01 Xilinx, Inc. Translation of commands in an interconnection of an embedded processor block core in an integrated circuit
US8281101B2 (en) * 2008-12-27 2012-10-02 Intel Corporation Dynamic random access memory with shadow writes
KR20180114417A (ko) * 2017-04-10 2018-10-18 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작 방법
US10248330B2 (en) 2017-05-30 2019-04-02 Seagate Technology Llc Data storage device with buffer tenure management
US20210357155A1 (en) * 2017-09-20 2021-11-18 SK Hynix Inc. Memory system and operating method thereof
DE102019131603A1 (de) * 2019-11-22 2021-05-27 WAGO Verwaltungsgesellschaft mit beschränkter Haftung Vorrichtung und verfahren zur gepufferten übertragung von daten
TWI766764B (zh) * 2021-07-20 2022-06-01 群聯電子股份有限公司 記憶體緩衝區管理方法、記憶體控制電路單元與記憶體儲存裝置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787481A (en) * 1994-03-24 1998-07-28 Texas Instruments Incorporated System for managing write and/or read access priorities between central processor and memory operationally connected
US20010052057A1 (en) * 2000-06-12 2001-12-13 Jiin Lai Buffer for varying data access speed and system applying the same

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4792926A (en) * 1985-12-09 1988-12-20 Kabushiki Kaisha Toshiba High speed memory system for use with a control bus bearing contiguous segmentially intermixed data read and data write request signals
US5745791A (en) * 1992-09-16 1998-04-28 Intel Corporation System for interfacing first and second components having different data path width by generating first and second component address to read data into buffer
WO1999019805A1 (en) * 1997-10-10 1999-04-22 Rambus Incorporated Method and apparatus for two step memory write operations
US6622224B1 (en) * 1997-12-29 2003-09-16 Micron Technology, Inc. Internal buffered bus for a drum
DE19951677B4 (de) * 1998-10-30 2006-04-13 Fujitsu Ltd., Kawasaki Halbleiterspeichervorrichtung
US6430649B1 (en) * 1999-06-07 2002-08-06 Sun Microsystems, Inc. Method and apparatus for enforcing memory reference dependencies through a load store unit
US6640292B1 (en) * 1999-09-10 2003-10-28 Rambus Inc. System and method for controlling retire buffer operation in a memory system
US6530006B1 (en) * 2000-09-18 2003-03-04 Intel Corporation System and method for providing reliable transmission in a buffered memory system
US6622227B2 (en) * 2000-12-27 2003-09-16 Intel Corporation Method and apparatus for utilizing write buffers in memory control/interface
US6877079B2 (en) * 2001-03-06 2005-04-05 Samsung Electronics Co., Ltd. Memory system having point-to-point bus configuration
US6877077B2 (en) * 2001-12-07 2005-04-05 Sun Microsystems, Inc. Memory controller and method using read and write queues and an ordering queue for dispatching read and write memory requests out of order to reduce memory latency

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787481A (en) * 1994-03-24 1998-07-28 Texas Instruments Incorporated System for managing write and/or read access priorities between central processor and memory operationally connected
US20010052057A1 (en) * 2000-06-12 2001-12-13 Jiin Lai Buffer for varying data access speed and system applying the same

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7991965B2 (en) 2006-02-07 2011-08-02 Intel Corporation Technique for using memory attributes
US8560781B2 (en) 2006-02-07 2013-10-15 Intel Corporation Technique for using memory attributes
US8812792B2 (en) 2006-02-07 2014-08-19 Intel Corporation Technique for using memory attributes
DE102007006190B4 (de) * 2006-02-07 2017-10-26 Intel Corporation Techniken zur Verwendung von Speicher-Attributen
US8078801B2 (en) 2006-12-27 2011-12-13 Intel Corporation Obscuring memory access patterns
US8588017B2 (en) 2010-10-20 2013-11-19 Samsung Electronics Co., Ltd. Memory circuits, systems, and modules for performing DRAM refresh operations and methods of operating the same

Also Published As

Publication number Publication date
DE10309919B4 (de) 2008-09-25
US20040228166A1 (en) 2004-11-18
US7447805B2 (en) 2008-11-04
CN1289998C (zh) 2006-12-13
CN1530819A (zh) 2004-09-22

Similar Documents

Publication Publication Date Title
DE10309919B4 (de) Pufferbaustein und Speichermodule
DE69828564T2 (de) Kombinierter nichtflüchtiger programm-/datenspeicher für gleichzeitiges lesen von programmen und schreiben von daten
DE69535672T2 (de) Synchrone NAND DRAM Architektur
DE4222273C2 (de) Zweikanalspeicher und Verfahren zur Datenübertragung in einem solchen
EP0908893B1 (de) Speicherarchitektur mit Mehrebenenhierarchie
DE3909896A1 (de) Vorrichtung und verfahren fuer den zugriff zu in einem seitenspeicher gespeicherten daten
DE4200758C2 (de) Halbleiterspeichereinrichtung und Verfahren zur Steuerung des Betriebs derselben
EP0974977A2 (de) Integrierter Speicher
EP1291878B1 (de) Steuereinrichtung zur Steuerung von Burst-Zugriffen
DE19951677B4 (de) Halbleiterspeichervorrichtung
DE102006043311A1 (de) Speichersystem
DE102004027121A1 (de) Ein Mehrfachbankchip, der mit einer Steuerung kompatibel ist, die für eine geringere Anzahl von Banken entworfen ist, und ein Verfahren zum Betreiben
DE102005043547B4 (de) Speichermodul, Speichervorrichtung und Verfahren zum Betreiben einer Speichervorrichtung
DE112004001676T5 (de) Direktzugriffsspeicher mit Postampel-Datenübernahmesignal-Rauschunterdrückung
DE10215362A1 (de) Integrierter Speicher mit einem Speicherzellenfeld mit mehreren Speicherbänken und Schaltungsanordnung mit einem integrierten Speicher
DE102006052338A1 (de) Schreibzugriff und nachfolgender Lesezugriff auf einen Speicherbaustein
DE102004050037B4 (de) Speicherbauelement, Speichersystem und Betriebsmodussetzverfahren
DE10258131B4 (de) Halbleiterspeicherbauelement und zugehöriges Schreib-/Leseverfahren
DE10306149A1 (de) Verfahren und Schaltung zum Zuweisen von Speicheranordnungs-Adressen
DE102006011720A1 (de) Speicher mit Datenzwischenspeicherschaltung, die einen Selektor umfasst
DE19547782A1 (de) Halbleiterspeichervorrichtung mit Vorladeschaltung
DE10107427B4 (de) Halbleiterspeichervorrichtung
DE10201865B4 (de) Speichervorrichtung mit einer Vorauslesedaten-Ordnung
DE102005040109B4 (de) Halbleiterspeicherchip
DE102011081438A1 (de) Modifizierte Leseoperation für einen nichtflüchtigen Speicher

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: QIMONDA AG, 81739 MUENCHEN, DE

8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee