DE60205877T2 - Verfahren zur synchronisation der auslesezeit eines hochgeschwindigkeitsspeichers - Google Patents

Verfahren zur synchronisation der auslesezeit eines hochgeschwindigkeitsspeichers Download PDF

Info

Publication number
DE60205877T2
DE60205877T2 DE60205877T DE60205877T DE60205877T2 DE 60205877 T2 DE60205877 T2 DE 60205877T2 DE 60205877 T DE60205877 T DE 60205877T DE 60205877 T DE60205877 T DE 60205877T DE 60205877 T2 DE60205877 T2 DE 60205877T2
Authority
DE
Germany
Prior art keywords
memory
read
flag
flag signal
command
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.)
Expired - Lifetime
Application number
DE60205877T
Other languages
English (en)
Other versions
DE60205877D1 (de
Inventor
W. Jeffery JANZEN
A. Troy MANNING
G. Chris MARTIN
Brent Keeth
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of DE60205877D1 publication Critical patent/DE60205877D1/de
Application granted granted Critical
Publication of DE60205877T2 publication Critical patent/DE60205877T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1066Output synchronization
    • 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/1689Synchronisation and timing concerns
    • 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
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4072Circuits for initialization, powering up or down, clearing memory or presetting
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/20Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/10Aspects relating to interfaces of memory device to external buses
    • G11C2207/107Serial-parallel conversion of data or prefetch
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2254Calibration
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2281Timing of a read operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Dram (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Description

  • Die vorliegende Erfindung bezieht sich allgemein auf synchrone Hochgeschwindigkeitsspeichersysteme und insbesondere auf die Steuerung der Leselatenz von Speichereinrichtungen in der Weise, dass Lesedaten von irgendeiner Speichereinrichtung gleichzeitig bei dem Speichercontroller ankommen.
  • HINTERGRUND DER ERFINDUNG
  • In 1 ist ein beispielhaftes Computersystem veranschaulicht. Das Computersystem enthält einen Prozessor 500, ein Speicherteilsystem 100p und einen Erweiterungsbuscontroller 510. Das Speicherteilsystem 100p und der Erweiterungsbuscontroller 510 sind über einen lokalen Bus 520 mit dem Prozessor 500 gekoppelt. Außerdem ist der Erweiterungsbuscontroller 510 mit wenigstens einem Erweiterungsbus 530 gekoppelt, an den verschiedene Peripheriegeräte 540-542 wie etwa Massenspeichereinrichtungen, Tastatur, Maus, Graphikadapter und Multimediaadapter angeschlossen werden können.
  • Das Speicherteilsystem 100p enthält einen Speichercontroller 400p und eine Vielzahl von Speichermodulen 301p-302p, die jeweils eine Vielzahl von Speichereinrichtungen, z. B. für das Modul 302p den DRAM-1 101p und den DRAM-2 102p, enthalten. Jede Speichereinrichtung 101p-104p ist eine synchrone Hochgeschwindigkeitsspeichereinrichtung. Obgleich in 1 nur zwei Speichermodule 301p, 302p und assoziierte Signalleitungen 401ap, 401bp, 402ap, 402bp, 403p, 406p, 407p gezeigt sind, wird angemerkt, dass irgendeine Anzahl von Speichermodulen verwendet werden können. Obgleich jedes Speichermodul so veranschaulicht ist, dass es nur zwei Speichereinrichtungen 101p-102p, 103p-104p hat, können die Speichermodule 301p-302p ähnlich mehr oder weniger Speichereinrichtungen 101p-104p haben, wobei eine typische Konfiguration aber acht oder neun Speichereinrichtungen in jedem Speichermodul haben kann. Die Signalleitungen 401ap, 401bp, 402ap, 402bp und 403p sind als der Datenbus 150p bekannt, während die Signalleitungen 406p und 407p als der Befehls-/Adressenbus 151p bekannt sind.
  • Der Datenbus 150p enthält eine Vielzahl von Datensignalleitungen 401ap, 401bp, die zum Austausch von Daten DATA zwischen dem Speichercontroller 400p und den Speichereinrichtungen 101p-104p verwendet werden. Von den Speichermodulen 301p, 302p werden Lesedaten ausgegeben und seriell mit einem freilaufenden Lesetaktsignal RCLK auf der Lesetakt-Signalleitung 402ap, 402bp synchronisiert. Das Lesetaktsignal RCLK wird durch den Speichercontroller 400p erzeugt und zunächst zu dem am weitesten von dem Speichercontroller 400p entfernten Speichermodul 302p angesteuert, bevor es über das verbleibende Speichermodul bzw. die verbleibenden Speichermodule 301p angesteuert wird, um zu dem Speichercontroller 400p zurückzukehren. Von dem Speichercontroller 400p werden Schreibdaten ausgegeben und seriell mit einem freilaufenden Schreibtaktsignal WCLK auf der Schreibtaktsignalleitung 403p synchronisiert. Der Schreibtakt wird durch den Speichercontroller 400p erzeugt und zunächst zu dem nächstgelegenen Speichermodul 301p angesteuert, bevor er über das verbleibende Speichermodul bzw. die verbleibenden Speichermodule 302p angesteuert wird. Von dem Speichercontroller 400p werden eine Vielzahl von Befehlssignalleitungen 406 verwendet, um Befehle CMD an die Steuermodule 301p, 302p zu senden. Ähnlich werden von dem Speichercontroller eine Vielzahl von Adressensignalleitungen 407p verwendet, um Adressen ADDR an die Speichermodule 301p, 302p zu senden. Der Datenbus 150p oder der Befehls-/Adressenbus 151p können im Fachgebiet gut bekannte zusätzliche Signalleitungen, z. B. Chipauswahlleitungen, haben, die der Einfachheit halber nicht veranschaulicht sind. Außerdem können die Befehle CMD und die Adressen ADDR durch ein (nicht gezeigtes) Register in den Speichermodulen 301p, 302p gepuffert werden, bevor sie an die Speichereinrichtungen 101p-104p eines jeweiligen Moduls verteilt werden. Jede der Vielzahl von Schreibtaktsignalleitungen 404p, der Vielzahl von Datensignalleitungen 401a, 401b, der Vielzahl von Befehlssignalleitungen 406 und der Vielzahl von Adressensignalleitungen 407 ist durch einen Abschlusswiderstand 450 abgeschlossen, der ein Widerstand sein kann.
  • Wenn eine Speichereinrichtung 101p-104p einen Lesebefehl akzeptiert, werden die mit diesem Lesebefehl assoziierten Daten erst an den Datenbus 150p ausgegeben, wenn eine bestimmte Zeitdauer abgelaufen ist. Diese Zeit ist als Einrichtungsleselatenz bekannt. Jede Speichereinrichtung 101p-104p besitzt eine assoziierte Einrichtungs-Minimalleselatenz, wobei sie aber auch mit einer Vielzahl größerer Leselatenzen betrieben werden kann. Die Zeitdauer, die zwischen dem Zeitpunkt, zu dem der Speichercontroller 400p einen Lesebefehl abgibt, und dem Zeitpunkt, zu dem die Lesedaten bei dem Speichercontroller 400p ankommen, abläuft, ist als Systemleselatenz bekannt. Die Systemleselatenz ist gleich der Summe der Einrichtungsleselatenz der Speichereinrichtung 101p-104p und der Signalfortpflanzungszeit zwischen der Speichereinrichtung 101p-104p und dem Speichercontroller 400p. Da die Speichermodule 301p näher zu dem Speichercontroller 400p als das Speichermodul 302p liegen, haben die Speichereinrichtungen 101p, 102p, die sich im Speichermodul 301p befinden, kürzere Signalfortpflanzungszeiten als die Speichereinrichtungen 103p, 104p, die sich im Speichermodul 302p befinden. Bei hohen Taktfrequenzen (z. B. 300 MHz bis wenigstens 533 MHz) kann diese Differenz der Signalfortpflanzungszeit erheblich werden.
  • Wegen der Differenzen der Minimalleselatenz in jeder Speichereinrichtung 101p-104p sowie der Differenzen der Signalfortpflanzungszeit des Lesetakts RCLK entlang der Lesetakt-Signalleitungen 402ap, 402bp (z. B. brauchen Daten, die vom DRAM-3 103p ausgegeben werden, länger, um den Speichercontroller 400p zu erreichen, als Daten, die vom DRAM-1 101p ausgegeben werden, da der DRAM-3 103 weiter vom Speichercontroller 400p entfernt liegt als der DRAM-1 101p) können die mit derselben Lesetakt-Signalleitung gekoppelten Speichereinrichtungen (z. B. der DRAM-1 101p und der DRAM-3 103p) unterschiedliche Systemleselatenzen haben. Würde der Speichercontroller 400p gezwungen, Lesetransaktionen für jede Speichereinrichtung 101p-104p mit einer unterschiedlichen Systemleselatenz zu verarbeiten, würde dies den Speichercontroller 400p unnötig kompliziert machen.
  • Ferner beschreibt US 5.917.760A eine integrierte Speichercontrollerschaltung für DRAMs.
  • Dementsprechend besteht ein Bedarf an einer Einrichtung und an einem Verfahren zum Ausgleichen der Systemleselatenz der Speichereinrichtungen, um die Kompliziertheit des Speichercontrollers zu verringern.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung schafft eine Vorrichtung gemäß Anspruch 1 und ein Verfahren gemäß Anspruch 37 zum Ausgleichen der Systemleselatenz von Speichereinrichtungen in einem Hochgeschwindigkeitsspeicherteilsystem.
  • Die Verwendung einer Vielzahl von Flagsignalen steuert die Einrichtungsleselatenz jeder Speichereinrichtung. Die Flagsignale werden so geleitet, dass sie äquivalente Signalfortpflanzungszeiten wie das Lesetaktsignal haben. Eine Speichereinrichtung beginnt bei einer vorgegebenen Anzahl von Lesetaktzyklen, nachdem sie das Flagsignal empfängt, Daten auszugeben, die mit einem früher akzeptierten Lesebefehl assoziiert sind. Somit bestimmt das Timing des Flagsignals die Einrichtungsleselatenz der Speichereinrichtung. Während der Initialisierung führt ein Speichercontroller eine Kalibrierungsroutine aus. Die Kalibrierungsroutine wird verwendet, um den minimalen zwischen dem Lesebefehl und dem Flagsignal erforderlichen Timingversatz zu bestimmen, der ermöglicht, dass jede mit derselben Lesetakt-Signalleitung gekoppelte Speichereinrichtung zuverlässig Lesedaten ausgibt, d. h., um die Einrichtungs-Minimalleselatenz jeder Einrichtung zu erfüllen. Alternativ kann der minimale Timingversatz vorgegeben sein und in einem Speicher (z. B. in einem Serial-Presence-Detect- oder SPD-EEP-ROM) gespeichert sein, wodurch ermöglicht wird, dass der Controller einen Timingversatz einstellt, ohne eine Kalibrierung ausführen zu müssen. Der Timingversatz wird während des normalen Betriebs verwendet, um zu steuern, wann jede Speichereinrichtung Lesedaten ausgibt. Da das Flagsignal wegen einer ähnlichen Pfadlänge und ähnlicher Signalfortpflanzungseigenschaften ein äquivalentes Signalfortpflanzungstiming wie der Lesetaktpfad hat, kompensiert die Signalfortpflanzungszeit des Flagsignals automatisch die Differenzen der Signalfortpflanzungszeiten zwischen den Speichereinrichtungen, wodurch sichergestellt wird, dass der Speichercontroller für jede mit dem Flagsignal gekoppelte Speichereinrichtung die gleiche Systemleselatenz sieht. In einer alternativen Ausführungsform sind die Flagsignale für jedes Speichermodul lokal und werden durch eine Flagerzeugungslogik erzeugt, die sich ebenfalls auf dem Speichermodul befindet. Gemäß diesem System sind die Flagsignale mit dem Speichermodul assoziiert und dienen zum Ausgleichen der Latenz der Speichereinrichtungen jedes Speichermoduls.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die vorstehenden und weitere Vorteile und Merkmale der Erfindung werden deutlicher verständlich aus der folgenden ausführlichen Beschreibung der Erfindung, die in Verbindung mit den beigefügten Zeichnungen gegeben wird.
  • 1 ist ein Blockschaltplan, der ein Computersystem mit einem Hochgeschwindigkeitsspeicherteilsystem veranschaulicht;
  • 2 ist ein Blockschaltplan eines Hochgeschwindigkeitsspeichersystems gemäß einer ersten Ausführungsform der vorliegenden Erfindung;
  • 3 ist ein Blockschaltplan, der eine Speichereinrichtung des in 2 gezeigten Hochgeschwindigkeitsspeichersystems veranschaulicht;
  • 4 ist ein Ablaufplan, der veranschaulicht, wie eine Speichereinrichtung auf ein Flagsignal reagiert;
  • 5 ist ein Blockschaltplan, der ein Hochgeschwindigkeitsspeichersystem gemäß einer zweiten Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • 6 ist ein Blockschaltplan, der ein Hochgeschwindigkeitsspeichersystem gemäß einer dritten Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • 7 ist ein Blockschaltplan, der ein Hochgeschwindigkeitsspeichersystem gemäß der fünften Ausführungsform der vorliegenden Erfindung veranschaulicht; und
  • 8 ist ein Blockschaltplan, der ein Hochgeschwindigkeitsspeichersystem gemäß der sechsten Ausführungsform der vorliegenden Erfindung veranschaulicht.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN
  • AUSFÜHRUNGSFORMEN
  • Nunmehr in den Zeichnungen, in denen gleiche Bezugszeichen gleiche Elemente bezeichnen, ist in 2 eine Veranschaulichung eines beispielhaften Speicherteilsystems 100 gemäß der ersten Ausführungsform der vorliegenden Erfindung gezeigt. Das Speicherteilsystem 100 enthält einen Speichercontroller 400, der eine Vielzahl von Signalen über den Datenbus 150 und über einen Befehls-/Adressenbus 151 überträgt. Der Datenbus 150 enthält eine Vielzahl von Flagsignalen FL1, FL2, die unter Verwendung einer entsprechenden Vielzahl von Flagsignalleitungen 404, 405 übertragen werden. Jede Flagsignalleitung ist mit einer entsprechenden Lesetakt-Signalleitung assoziiert, wobei die Speichereinrichtungen mit dieser Lesetakt-Signalleitung gekoppelt sind. Zum Beispiel wird das Flagsignal FL1 auf der Flagsignalleitung 404 übertragen, wobei es mit dem Lesetakt RCLK, der auf der Lesetakt-Signalleitung 402a übertragen wird, und mit den Speichereinrichtungen DRAM-1 101 und DRAM-3 103 assoziiert ist. Jedes Speichermodul 301, 302 ist über den Datenbus 150, der die Vielzahl von Flagsignalleitungen 404, 405 enthält, mit dem Speichercontroller 400 gekoppelt. Obgleich 2 (sowie die 5-8, die auf alternative Ausführungsformen gerichtet sind) ein spezifisches Leitungsschema für die Befehlssignalleitungen 406 und für die Adressensignalleitungen 407 veranschaulicht, wird angemerkt, dass die Prinzipien der vorliegenden Erfindung ebenfalls auf alternative Leitungsanordnungen anwendbar sind. Zum Beispiel können die Befehlssignalleitungen 406 und die Adressensignalleitungen 407 parallel zu jeder der Speichereinrichtungen 101-104 geleitet und/oder durch ein (nicht gezeigtes) Register gepuffert sein.
  • 3 ist ein ausführlicheres Diagramm eines der in 2 gezeigten Speichermodule 101. In der beispielhaften Ausführungsform sind die Speichereinrichtungen 101-104 Advance-DRAM-Technologie-(ADT-)Einrichtungen. Allerdings können die Prinzipien der vorliegenden Erfindung in irgendeinen Typ einer synchronen Speichereinrichtung integriert werden. Eine ADT-Speichereinrichtung 101 enthält eine Steuerschaltung 2000 (einschließlich Adressendecodierern), die mit der Lesetakt-Signalleitung 402a, mit der Schreibtaktsignalleitung 403, mit der Flagsignalleitung 404, mit der Vielzahl von Befehlssignalleitungen 406 und mit der Vielzahl von Adressensignalleitungen 407 gekoppelt ist. Die Steuerschaltung 2000 kann mit zusätzlichen herkömmlichen Signalleitungen gekoppelt sein, die nicht veranschaulicht sind, um die Figur zu vereinfachen. Außerdem enthält die ADT-Speichereinrichtung 101 einen Schreibdatenpfad 2002 und einen Lesedatenpfad 2004, die beide mit der Datensignalleitung 401a und (über die E/A-Torsteuerschaltung 2006) mit einer Vielzahl von Speicherfeldern 2001 gekoppelt sind. Der Lesedatenpfad 2004, der ebenfalls mit der Lesetakt-Signalleitung 402a gekoppelt ist, enthält einen Parallel-Seriell-Umsetzer (serializer) 2005, der die von der Vielzahl der Speicherfelder 2001 gelesenen parallelen Daten synchron zum Lesetaktsignal RCLK in die auf der Datensignalleitung 401a ausgegebenen seriellen Daten umsetzt. Ähnlich enthält der Schreibdatenpfad 2002, der ebenfalls mit der Schreibtaktsignalleitung 403 gekoppelt ist, einen Seriell-Parallel-Umsetzer (parallelizer) 2003, der serielle Schreibdaten von der Datensignalleitung 401a in parallele Daten umsetzt.
  • Die Speichereinrichtung 101 verwendet das Flagsignal FL1 als eine Bereitmeldung, um zu bestimmen, wann mit der Ausgabe der mit einem früher akzeptierten Lesebefehl assoziierten Daten zu beginnen ist. Dabei wird die Leselatenz der Speichereinrichtung durch das Timing des Flagsignals FL1 auf der Flagsignalleitung 404 bestimmt. Genauer veranlasst die Steuerschaltung 2000 der Speichereinrichtung 101, dass der Lesedatenpfad 2003 zu einer vorgegebenen Anzahl von Lesetaktzyklen, nachdem das Flag FL1 auf der Flagsignalleitung 404 bereitgestellt worden ist, mit dem Ausgeben von Daten beginnt, die mit einem früher akzeptierten Lesebefehl assoziiert sind.
  • Das Verfahren ist in 4 veranschaulicht und beginnt mit Schritt 1001, wenn die Speichereinrichtung einen über die Vielzahl von Befehlssignalleitungen 406 übertragenen Lesebefehl akzeptiert. In Schritt 1002 wartet die Steuerschaltung, bis das Flagsignal FL1 empfangen worden ist. Nachdem das Flagsignal empfangen worden ist, wartet die Speichereinrichtung in den Schritten 1003-1004 eine vorgegebene Anzahl von Lesetaktzyklen, bevor sie Daten ausgibt. In der beispielhaften Ausführungsform beginnt die Speichereinrichtung 101 vier Taktzyklen, nachdem sie das Flagsignal FL1 empfangen hat, Lesedaten auszugeben. Allerdings kann eine andere Anzahl abgelaufener Lesetaktzyklen verwendet werden, solange die Anzahl für jede Speichereinrichtung 101-104 die gleiche ist und ausreichend Zeit enthält, damit die Speichereinrichtung 101-104 die angeforderten Daten ausgibt.
  • Das über die Flagsignale FL1, FL2 eingestellte Steuertiming für die Einrichtungsleselatenz einer Speichereinrichtung 101-104 wird in einer Kalibrierungsprozedur bestimmt, die durch den Speichercontroller z. B. bei der Systeminitialisierung ausgeführt wird. Zu dieser Zeit bestimmt der Speichercontroller 400 einen Timingversatz zwischen, wann er für jede Speichereinrichtung einen Lesebefehl abgibt und wann er für sie ein Flagsignal abgibt. Der Timingversatz gleicht die Systemleselatenzen der mit derselben Flagsignalleitung (z. B. mit der Flagsignalleitung 404) gekoppelten Speichereinrichtungen (z. B. DRAM-1 101 und DRAM-3 103) aus. Der Kalibrierungsprozess wird auf einer Flagsignalleitungsgrundlage ausgeführt.
  • Der Kalibrierungsprozess beginnt, wenn der Speichercontroller 400 an diejenige Speichereinrichtung (z. B. DRAM-3 103), die von den mit der Flagsignalleitung, die kalibriert wird (z. B. mit der Flagsignalleitung 404), gekoppelten Speichereinrichtungen am weitesten von dem Speichercontroller 400 entfernt ist, einen Kalibrierungsbefehl sendet. Der Kalibrierungsbefehl ist ein spezieller Lesebefehl, der veranlasst, dass die Speichereinrichtung 103 ein Referenzkalibrierungsmuster ausgibt. Das Referenzkalibrierungsmuster ist so formatiert, dass es ermöglicht, dass der Speichercontroller leicht identifiziert, wann erstmals Daten bei dem Speichercontroller ankommen. In der beispielhaften Ausführungsform gibt die Speichereinrichtung 103 8 Bits Daten pro Lesebefehl zurück. Die Speichereinrichtung 103 steuert die Daten seriell über die Datensignalleitungen 401a zu dem Speichercontroller 400 an. Ein gutes Kalibrierungsmuster würde ermöglichen, dass der Speichercontroller leicht erkennt, wann das erste Datenbit bei dem Speichercontroller ankommt. In der beispielhaften Ausführungsform ist das bevorzugte Referenzkalibrierungsmuster ein Byte, in dem das erste Bit, das bei dem Speichercontroller ankommt, auf einen Zustand eingestellt ist, während die verbleibenden Bits auf einen anderen Zustand eingestellt sind. Somit sind (binär) 01111111 oder (binär) 10000000 gute Kalibrierungsmuster. Die Wahl zwischen diesen zwei Mustern kann durch die Busarchitektur beeinflusst werden. Zum Beispiel ist der Speicherbus 150 in der beispielhaften Ausführungsform ein "Pull-up"-Bus, der einen natürlichen Logikzustand von "1" hat. Somit ist das Muster (binär) 01111111 ideal, da das einzige Mal, dass auf dem Bus eine "0" erscheint, dann ist, wenn sie auf dem Bus angesteuert wird. Wenn der Datenbus 150 dagegen so konstruiert wäre, dass sein natürlicher Logikzustand eine "0" ist, wäre das bevorzugte Muster stattdessen (binär) 10000000.
  • Während der Speichercontroller 400 den Kalibrierungsbefehl abgibt, stellt er außerdem gleichzeitig das Flagsignal FL1 auf der Flagsignalleitung 404 bereit. Wenn der DRAM-3 103 das Flagsignal empfängt, beginnt er, das Kalibrierungsmuster auszugeben, nachdem die vorgegebene Anzahl von Lesetaktzyklen abgelaufen sind.
  • Die Flagsignalleitung 404 ist so geleitet, dass das Flagsignal FL1 zu dem Speichercontroller 400 zurückkehrt, nachdem es jede der Speichereinrichtungen 103, 101, die mit der mit dem Flagsignal FL1 assoziierten Flagsignalleitung 404 gekoppelt sind, durchlaufen hat. Wenn der Speichercontroller 400 das zurückkehrende Flagsignal FL1 empfängt, versucht er, das Kalibrierungsmuster von der Datensignalleitung 401a auszulesen, nachdem die vorgegebene Anzahl von Lesetaktzyklen abgelaufen ist. Falls das Referenzkalibrierungsmuster erfasst wird, erlegt die vorgegebene Anzahl von Lesetaktzyklen der Speichereinrichtung 103 eine ausreichende Einrichtungsleselatenz auf, damit sie richtig arbeitet. Falls das Referenzkalibrierungsmuster nicht erfasst worden ist, schließt der Speichercontroller, dass das Flagsignal FL1 zu früh gesendet wurde, was zu einem Versuch führt, die Speichereinrichtung 103 mit einer schnelleren Einrichtungsleselatenz als ihrer Einrichtungs-Minimalleselatenz zu betreiben. In diesem Fall wiederholt der Speichercontroller 400 somit die oben beschriebene Prozedur mit zunehmender Anzahl von Lesetaktzyklen zwischen dem Senden des Kalibrierungsbefehls und dem Senden des Flagsignals FL1, bis das Referenzkalibrierungsmuster richtig empfangen wird.
  • Daraufhin wiederholt der Speichercontroller 400 die obige Prozedur an jeder der verbleibenden mit derselben Flagsignalleitung gekoppelten Speichereinrichtungen. Der Speichercontroller setzt das Verfahren mit der nächstnäheren mit der Flagsignalleitung 404 gekoppelten Speichereinrichtung (z. B. dem DRAM-1 101) fort, bis die Kalibrierungsprozedur an der nächstgelegenen mit dieser selben Flagsignalleitung (z. B. der Flagsignalleitung 404) gekoppelten Speichereinrichtung ausgeführt worden ist. Der Speichercontroller 400 nimmt für jede Iteration den letzten Timingversatz, der in der vorangehenden Iteration verwendet wurde, als die Anfangstimingdifferenz. Nachdem die nächstgelegene Speichereinrichtung (z. B. der DRAM-1 101) durch diese Prozedur kalibriert worden ist, wird durch den Speichercontroller 400 der letzte Timingversatz angenommen, um an den mit dieser Flagsignalleitung (z. B. mit der Flagsignalleitung 404) gekoppelten Speichereinrichtungen Lesetransaktionen durchzuführen. Dieser Timingversatz veranlasst, dass jede mit derselben Flagsignalleitung gekoppelte Speichereinrichtung (z. B. die Flagsignalleitung 404 und die Speichereinrichtungen DRAM-1 101, DRAM-3 103) mit der Einrichtungs-Minimalleselatenz der langsamsten Speichereinrichtung dieses Satzes von Speichereinrichtungen betrieben wird. Da sich das Flagsignal wegen einer ähnlichen Pfadlänge und ähnlicher Signalfortpflanzungseigenschaften mit äquivalenten Signalfortpflanzungseigenschaften wie der Lesetaktpfad fortpflanzt, kompensiert die Signalfortpflanzungsverzögerung des Flagsignals automatisch die Differenz der Signalfortpflanzungszeiten zwischen den mit derselben Flagsignalleitung (z. B. mit der Flagsignalleitung 404) gekoppelten Speichereinrichtungen (z. B. dem DRAM-1 101 und dem DRAM-3 103).
  • Zum Beispiel kalibriert der Controller des Speichers 400 in dem in 2 veranschaulichten System zuerst den DRAM-3 103, da der DRAM-1 101 und der DRAM-3 103 beide mit derselben Flagsignalleitung (d. h. 404) gekoppelt sind, wobei der DRAM-3 103 die am weitesten von dem Speichercontroller 400 entfernte Speichereinrichtung ist. Während des ersten Schritts sendet der Speichercontroller gleichzeitig den Kalibrierungsbefehl und das Flagsignal FL1. Die Steuerschaltung 2000 der Speichereinrichtung 103 veranlasst, dass die Speichereinrichtung Daten zu einer vorgegebenen Anzahl von Lesetaktzyklen nach dem Flagsignal ausgibt. In der beispielhaften Ausführungsform sind die vorgegebene Anzahl 4 Lesetaktzyklen. Falls das Kalibrierungsmuster durch den Speichercontroller 400 nicht vier Zyklen, nachdem die Rückkehr des Flagsignals FL1 in dem Speichercontroller 400 erfasst worden ist, richtig empfangen worden ist, heißt das, dass die Speichereinrichtung 103 zu der angegebenen Zeit nicht zum Ausgeben von Lesedaten bereit war, d. h., dass die Einrichtungs-Minimalleselatenz der Speichereinrichtung 103 nicht erfüllt worden ist. Somit sendet der Speichercontroller 400 einen weiteren Kalibrierungsbefehl, wobei er das Flagsignal FL1 aber unter Verwendung eines modifizierten Timing überträgt, das gleich der Erhöhung der Verzögerung zwischen dem Lesebefehl und dem Flagsignal FL1 um einen Lesetaktzyklus ist. Der Prozess wird wiederholt, bis in dem Speichercontroller 400 vier Taktzyklen, nachdem der Speichercontroller das rückkehrende Flagsignal FL1 empfangen hat, das Kalibrierungsmuster erfasst wird. Dieses Timing ist gleich dem Betrieb der Speichereinrichtung 103 bei ihrer Einrichtungs-Minimalleselatenz.
  • Daraufhin fährt der Speichercontroller 400 mit der Kalibrierung der verbleibenden mit der Flagsignalleitung 404 gekoppelten Speichereinrichtungen fort. Die Kalibrierung wird mit der nächstnäheren Speichereinrichtung fortgesetzt und abgeschlossen, wenn die nächstgelegene Speichereinrichtung kalibriert worden ist. In diesem Beispiel ist die nächstnähere Speichereinrichtung der DRAM-1 101. Für jede verbleibende Speichereinrichtung, die kalibriert wird, wird die Anfangsverzögerung zwischen dem Lesebefehl und dem Flagsignal auf den letzten Timingversatz eingestellt, der für die früher kalibrierte Speichereinrichtung verwendet worden ist. In dem Beispiel setzt der Speichercontroller 400 den Kalibrierungsprozess durch Kalibrieren des DRAM-1 101 fort. Der Speichercontroller 400 sendet einen Kalibrierungsbefehl an den DRAM-1 101 und wartet einen Lesetaktzyklus, bevor er das Flagsignal FL1 sendet, da eine Lesetakttimingdifferenz eins die Anfangstimingdifferenz war, die für die früher kalibrierte Speichereinrichtung (d. h. für den DRAM-3 103) verwendet worden ist. Falls das Referenzkalibrierungsmuster nicht richtig durch den Speichercontroller 400 empfangen wird, setzt der Speichercontroller 400 das Senden von Kalibrierungsbefehlen an den DRAM-1 101 unter Verwendung zunehmender Lesetaktzyklusversätze zwischen dem Lesebefehl und dem Flagsignal FL1 für jeden Kalibrierungsbefehl fort. Es wird angenommen, dass der Speichercontroller 400 drei Kalibrierungsbefehle an den DRAM-3 103 gesendet hat, bevor das Referenzkalibrierungsmuster richtig in dem Speichercontroller empfangen wurde. Dies entspricht einem Timingversatz von 3 Lesetaktzyklen zwischen dem Kalibrierungsbefehl und dem Flagsignal (da der erste Kalibrierungsbefehl das Timing von dem vorangehenden Speichermodul anwendet, das gleich einer Lesetaktzyklusverzögerung 1 ist, erhöht der zweite Kalibrierungsbefehl das Timing um 1 Lesetaktzyklus auf 2 Lesetaktzyklen, während schließlich der dritte Kalibrierungsbefehl das Timing um einen weiteren Lesetaktzyklus auf 3 Lesetaktzyklen erhöht). Da der DRAM-1 101 die nächstgelegene Speichereinrichtung ist, die mit der Flagsignalleitung 404 gekoppelt ist, ist der Kalibrierungsprozess für die mit dieser Flagsignalleitung 404 gekoppelten Speichereinrichtungen abgeschlossen worden. Im normalen Betrieb stellt der Speichercontroller 400 das Flagsignal FL1 3 Lesetaktzyklen, nachdem er den Lesebefehl gesendet hat, bereit, wobei die Daten, die durch jede mit der Flagsignalleitung 404 gekoppelte Speichereinrichtung DRAM-1 101, DRAM-3 103 zurückgegeben werden, die gleiche System-Latenz haben.
  • Die oben beschriebene Prozedur wird für jede Flagsignalleitung (z. B. für die Flagsignalleitung 405) ausgeführt. Zum Beispiel wird in dem System aus 1 für die Speichereinrichtungen DRAM-4 104 und DRAM-2 102 das Flagsignal FL2 verwendet. Vorzugsweise kalibriert der Speichercontroller jede Flagleitung gleichzeitig. Außerdem kann der Speichercontroller das Maximum der letzten Timingversätze für die Flagleitungen als einen gemeinsamen Timingversatz zur Verwendung auf jeder Flagleitung anwenden, wodurch ermöglicht wird, dass der Speichercontroller das gesamte Speichersystem mit der gleichen System-Latenz betreibt.
  • Ein Aspekt der Erfindung ist, dass die Vielzahl der Flagsignale FL1, FL2 äquivalente Signalfortpflanzungszeiten wie die Vielzahl der Lesetakte RCLK haben. Da die Flagsignale FL1, FL2 die äquivalenten Fortpflanzungszeiten wie die zum Synchronisieren der Datenausgabe von den Speichereinrichtungen 101-104 verwendeten Lesetaktsignale RCLK haben, kompensieren die Flagsignale FL1, FL2 automatisch die Differenz der Signalfortpflanzungszeiten zwischen den Speichermodulen 301, 302 des Speicherteilsystems. In der in 2 veranschaulichten Ausführungsform sind die Vielzahl der Flagsignalleitungen 404, 405 parallel zu den Lesetakt-Signalleitungen 402a, 402b geleitet, um sicherzustellen, dass die Vielzahl der Flagsignalleitungen 404, 405 und der Lesetakt-Signalleitungen 402a, 402b äquivalente Fortpflanzungszeiten haben.
  • 5 zeigt eine zweite Ausführungsform des Speicherteilsystems 100' der Erfindung. Das Speicherteilsystem 100' leitet ein einzelnes abgehendes Lesetaktsignal RCLK' auf der abgehenden Lesetakt-Signalleitung 402' von dem Speichercontroller 400 zu einem Taktpuffer 401. Der Taktpuffer 401 ist eine Einrichtung mit niedriger Verzögerung, die auf der Vielzahl der Lesetakt-Signalleitungen 402a, 402b eine Vielzahl von Lesetaktsignalen RCLK mit praktisch gleicher Phasenlage wie das einzelne abgehende Lesetaktsignal RCLK' erzeugt. Die Vielzahl der Flagsignalleitungen 404, 405 sind anfangs von dem Speichercontroller 400 parallel zu der einzelnen abgehenden Lesetakt-Signalleitung 402' zu einem Bereich in der Nähe des Taktpuffers 401 geleitet. Daraufhin sind die Vielzahl der Flagsignalleitungen 404, 405 parallel zu der Vielzahl der Lesetakt-Signalleitungen 402a, 402b geleitet. Diese Anordnung hält die äquivalenten Fortpflanzungszeiten zwischen den Flagsignalen FL1, FL2 und den Lesetaktsignalen RCLK, RCLK aufrecht.
  • In 6 ist nun eine dritte Ausführungsform der Erfindung veranschaulicht. Das Speicherteilsystem 100'' der dritten Ausführungsform verwendet einen Taktpuffer mit einem Flagzwischenverstärker 401'. Somit werden das abgehende Lesetaktsignal RCLK' sowie die Vielzahl der abgehenden Flagsignale FL1', FL2' anfangs parallel zueinander von dem Speichercontroller 400 zu dem Taktpuffer mit dem Flagzwischenverstärker 401' geleitet. Der Taktpuffer mit dem Flagzwischenverstärker 401' sendet diese Signale daraufhin erneut als die Vielzahl von Lesetaktsignalen RCLK und die Vielzahl von Flagsignalen FL1, FL2. Der Taktpuffer mit dem Flagzwischenverstärker erhält die äquivalente Signalfortpflanzungstimingbeziehung zwischen den Lesetaktsignalen und den Flagsignalen.
  • In 7 ist nun ein Speicherteilsystem 100''' gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt, in dem die Flagsignale FL1, FL2 durch eine interne Logik 410 auf dem Speichermodul anstatt durch den Speichercontroller 400 erzeugt werden. Die Flagsignalleitungen 404, 405 in jedem Speichermodul (z. B. im Speichermodul 301) sind unabhängig von den entsprechenden Flagsignalen in anderen Speichermodulen (z. B. im Speichermodul 302) und somit nicht mit den Flagsignalleitungen 404, 405 anderer Speichermodule gekoppelt. Das in 7 gezeigte Speicherteilsystem 100''' ist typisch bei einem kleineren Speichersystem. Da ein kleineres Speichersystem eine kleinere Timinglaufzeitdifferenz hat, ist es möglich, auf einer Taktsignalleitung 402'' einen einzelnen Takt CLK" zu verwenden. Allerdings ist diese Ausführungsform nicht auf kleine Speichersysteme beschränkt. In einem größeren Speichersystem kann das einzelne Taktsignal CLK" auf der Taktsignalleitung 402'' durch unabhängige Lese- und Schreibtakte ersetzt werden.
  • Die Funktion der internen Logik 410 jedes Speichermoduls ist es, interne Flagsignale FL1, FL2 zu erzeugen, die zum Angleichen der Einrichtungsleselatenz der Speichereinrichtungen (z. B. des DRAM-1 101 und des DRAM-2 102) in einem Speichermodul (z. B. in dem Speichermodul 301) verwendet werden können. Der Kalibrierungsprozess wird abgewandelt, so dass er zwischen den Speichereinrichtungen auf dem gleichen Speichermodul bewegt. Zum Beispiel kann der Kalibrierungsprozess im Speichermodul 301 mit der "obersten" Speichereinrichtung (z. B. mit dem DRAM-1 101) beginnen und fortsetzen, bis die "unterste" Speichereinrichtung (z. B. der DRAM-2 102) kalibriert worden ist. Somit stellt diese Prozedur sicher, dass jede Speichereinrichtung (z. B. der DRAM-1 101 und der DRAM-2 102) eines Speichermoduls (z. B. des Speichermoduls 301) mit der gleichen Einrichtungsleselatenz betrieben wird. Somit könnte ein Speichercontroller 400 nach der Kalibrierung irgendeine Speichereinrichtung aus demselben Speichermodul mit der gleichen Systemleselatenz lesen.
  • Falls das Speichersystem 100''' auf größere Speichersysteme mit erhöhten Timinglaufzeitdifferenzen zwischen den Modulen angewendet werden soll, kann außer dem Ersetzen des einzelnen Takts CLK" auf der Signalleitung 402'' durch unabhängige Lese- und Schreibtakte auch die Kalibrierungstechnik zwischen den Modulen der anderen Ausführungsformen angewendet werden. Die Kalibrierungsprozeduren der anderen Ausführungsformen sind auf eine Implementierung der vorliegenden Ausführungsform in großen Speichersystemen anwendbar. Da es keine Flagsignalleitungen gibt, die von dem Speichercontroller 400 durch jedes Speichermodul 301, 302 laufen, bestimmt der Speichercontroller allerdings lediglich, ob das Kalibrierungsmuster richtig empfangen worden ist, wobei er dann, wenn das nicht der Fall ist, die interne Logik 410 des Speichermoduls, das kalibriert wird, anweist, ihren Flagsignaltimingversatz (für jeden der modulinternen Flags FL1, FL2) zu erhöhen. Der Speichercontroller 400 kann die interne Logik 410 eines Speichermoduls (z. B. des Speichermoduls 302) durch eine Vielzahl von Mechanismen einschließlich z. B. des Sendens von Sonderbefehlen an eine Vielzahl von Befehlsleitungen 406 oder über dedizierte Signalleitungen (nicht gezeigt) anweisen, sein Flagtiming zu erhöhen.
  • In 8 ist nun ein Speicherteilsystem 100'''' gemäß einer weiteren Ausführungsform der vorliegenden Erfindung gezeigt. Das Speicherteilsystem 100'''' ist ähnlich dem Speichersystem 100 aus 2. Allerdings enthalten die Speichermodule 301, 302 des Speichersystems 100'''' jeweils einen Konfigurationsspeicher 105, 106 und wenigstens eine assoziierte Signalleitung 410. Die Konfigurationsspeicher 105, 106 können irgendein Speicher sein, der vorgegebene Konfigurationsinformationen hinsichtlich der Speichereinrichtungen DRAM-1 101 – DRAM-4 104 in einem Speichermodul 301, 302 speichert. Zum Beispiel können die Konfigurationsspeicher 105, 106 Serial-Presence-Detect- oder SPD-EEPROMs sein.
  • Die vorgegebenen Konfigurationsdaten SPDDC können durch den Speichercontroller 400 unter Verwendung der wenigstens einen Signalleitung 410 gelesen werden. Die Konfigurationsdaten SPDDC enthalten für jede Flagsignalleitung vorgegebene Flagtimingverzögerungen. Die vorgegebenen Flagtimingverzögerungen können als eine Reihe einzelner Werte für jede Flagsignalleitung (d. h. die tatsächliche Verzögerung, die ein Speichercontroller verwenden sollte) spezifiziert werden oder können eine Kombination von Werten sein, die, wenn sie zusammengenommen werden, ermöglichen, dass der Speichercontroller für jede Flagsignalleitung den geforderten Verzögerungswert berechnet. Zum Beispiel kann der Konfigurationsspeicher einen einzelnen Wert, der die System-Latenz repräsentiert, die allen Speichereinrichtungen auf dem Speichermodul gemeinsam ist, sowie eine Einrichtungs-Minimalleselatenz für jede Speichereinrichtung speichern. Der Speichercontroller summiert die System-Latenz mit der richtigen Einrichtungs-Minimalleselatenz, um die vorgeschlagene Flagtimingverzögerung für den mit dieser Speichereinrichtung assoziierten Flag zu berechnen. Somit braucht der Speichercontroller 400 während der Systeminitialisierung keine Kalibrierungsroutine auszuführen. Stattdessen können die geforderten Flagtimingverzögerungen aus den in den Konfigurationsspeichern 105, 106 gespeicherten Daten gelesen oder berechnet werden. Falls die Konfigurationsspeicher 105, 106 für dasselbe Flagsignal verschiedene Flagtimingverzögerungen spezifizieren, wendet der Speichercontroller 400 für dieses Flag die größte dieser Flagtimingverzögerungen an. Dies ermöglicht, dass der Speichercontroller die Speichermodule 301, 302 mit einem Timing betreibt, das an die Timinganforderungen jedes Speichermoduls angepasst ist.
  • Die Prinzipien dieser Ausführungsform sind ebenfalls auf andere früher beschriebene Ausführungsformen anwendbar. Zum Beispiel können die Speichersysteme 100', 100'' und 100''', wie sie in den 5-7 gezeigt sind, ähnlich abgewandelt werden, so dass sie Konfigurationsspeicher und ihre assoziierte Signalleitung bzw. ihre assoziierten Signalleitungen enthalten, um die Notwendigkeit einer Kalibrierung zu vermeiden.
  • Somit nutzt die vorliegende Erfindung ein oder mehrere Flagsignale, die veranlassen, dass die Speichereinrichtungen Daten, die mit einem früher akzeptierten Lesebefehl assoziiert sind, mit einer vorgegebenen Anzahl von Lesetaktzyklen nach der Ankunft des Flagsignals ausgeben. Während der Systeminitialisierung wird eine Kalibrierungsroutine ausgeführt, um eine Timingverzögerung zwischen der Bereitstellung eines Lesebefehls und der Bereitstellung des Flagsignals oder der Flagsignale abzuleiten. Alternativ kann die Timingverzögerung vorgegeben und in einem Konfigurationsspeicher auf dem Speichermodul gespeichert sein. Die Timingverzögerung wird im Wesentlichen verwendet, um das Flagsignal bzw. die Flagsignale während des normalen Betriebs bereitzustellen. Das Flagsignal wird verwendet, um die Systemleselatenz der Speichereinrichtungen anzugleichen. Wenn die Flagsignale extern von dem Speichermodul (z. B. durch einen Speichercontroller) erzeugt werden, können sie verwendet werden, um die Systemleselatenz der mit der Flagsignalleitung gekoppelten Speichereinrichtungen anzugleichen. Alternativ können die Flagsignale auch in jedem Speichermodul durch eine modulinterne Logik erzeugt werden. Falls die modulinternen Flagsignale das Speichermodul nie verlassen, können sie nicht zum Angleichen der Systemleselatenz von Speichereinrichtungen anderer Speichermodule verwendet werden. Allerdings können sie verwendet werden, um die Systemleselatenzen der Speichereinrichtungen des Speichermoduls anzugleichen.

Claims (57)

  1. Speichereinrichtung (101), umfassend: ein Speicherfeld (2001); wenigstens eine Datensignalleitung (401a), die mit dem Speicherfeld (2001) gekoppelt ist; eine Steuerschaltung (2000); eine Lesetakt-Signalleitung (402), die mit der Steuerschaltung (2000) zum Empfangen eines Lesetaktssignals (RCLK) gekoppelt ist; eine Flagsignalleitung (404), die mit der Steuerschaltung (2000) gekoppelt ist, zum Empfangen eines Flagsignals (FL1); wenigstens eine Befehlssignalleitung (406), die mit der Steuerschaltung (2000) gekoppelt ist, zum Empfangen von Befehlen; und wobei die Steuerschaltung (2000) betreibbar ist, um die Speichereinrichtung (101) zu veranlassen Daten von dem Feld (2001), die mit einem früher akzeptierten Befehl auf der wenigstens einen Datensignalleitung (401a) assoziiert sind, beginnend bei einer vorgegebenen Anzahl von Lesetaktzyklen, nachdem die Steuerschaltung (2000) das Flagsignal empfängt, auszugeben; dadurch gekennzeichnet, dass sich das Flagsignal von dem früher akzeptierten Befehl unterscheidet.
  2. Speichereinrichtung (101) nach Anspruch 1, wobei der früher akzeptierte Befehl ein Lesebefehl ist.
  3. Speichereinrichtung (101) nach Anspruch 1, wobei der früher akzeptierte Befehl ein Kalibrierungsbefehl ist.
  4. Speichereinrichtung (101) nach Anspruch 3, wobei die Daten ein Kalibrierungsmuster sind.
  5. Speichereinrichtung (101) nach Anspruch 4, wobei das Kalibrierungsmuster wenigstens zwei sukzessive Bits einschließt, die einen unterschiedlichen Logikzustand aufweisen.
  6. Speichereinrichtung (101) nach Anspruch 5, wobei das Kalibrierungsmuster sein erstes Bit auf eine binäre 0 gesetzt und sämtliche nachfolgende Bits auf eine binäre 1 gesetzt hat.
  7. Speichereinrichtung (101) nach Anspruch 5, wobei das Kalibrierungsmuster sein erstes Bit auf eine binäre 1 gesetzt und sämtliche nachfolgende Bits auf eine binäre 0 gesetzt hat.
  8. Speichereinrichtung (101) nach Anspruch 1, wobei die Speichereinrichtung (101) mit wenigstens einer anderen Speichereinrichtung (102) angeordnet ist, wobei die Speichereinrichtung (101) und jede der wenigstens einen anderen Speichereinrichtung (102) ihr Flagsignalleitungen (404, 405) gekoppelt und ihre Befehlssignalleitungen gekoppelt (406) haben, und wobei jede Speichereinrichtung (101, 102) das Flagsignal über ihre jeweiligen Flagsignalleitungen (404, 405) bei der gleichen Anzahl von Lesetaktzyklen, nachdem jede Speichereinrichtung (404, 405) des Rangs einen Lesebefehl empfängt, empfängt.
  9. Speichereinrichtung (101) nach Anspruch 1, wobei die Speichereinrichtung (101) mit wenigstens einer anderen Speichereinrichtung (102) auf einem Speichermodul (100''') angeordnet ist, wobei das Speichermodul (100''') und jede der wenigstens einen anderen Speichereinrichtung (102) ihre Flagsignalleitungen (404, 405) mit einer Flagerzeugungslogik (410) gekoppelt haben, die auf dem Speichermodul (100''') angeordnet ist.
  10. Speichermodul (301), umfassend: eine Vielzahl von Speichereinrichtungen (101, 102) nach Anspruch 1.
  11. Speichermodul (301) nach Anspruch 10, wobei der früher akzeptierte Befehl eine Lesebefehl ist.
  12. Speichermodul (301) nach Anspruch 10, wobei der früher akzeptierte Befehl ein Kalibrierungsbefehl ist.
  13. Speichermodul (301) nach Anspruch 12, wobei die Daten als ein Kalibrierungsmuster ausgegeben werden.
  14. Speichermodul (301) nach Anspruch 13, wobei das Kalibrierungsmuster wenigstens zwei sukzessive Bits einschließt, die einen unterschiedlichen Logikzustand aufweisen.
  15. Speichermodul (301) nach Anspruch 14, wobei das Kalibrierungsmuster für ein erstes Bit auf eine binäre 0 gesetzt und sämtliche nachfolgenden Bits auf eine binäre 1 gesetzt hat.
  16. Speichermodul (301) nach Anspruch 14, wobei das Kalibrierungsmuster für ein erstes Bit auf eine binäre 1 gesetzt und sämtliche nachfolgenden Bits auf eine binäre 0 gesetzt hat.
  17. Speichermodul (301) nach Anspruch 10, ferner umfassend: eine Flagerzeugungslogik, die mit jeder der Vielzahl von Speichereinrichtungen über deren jeweilige Flagsignalleitungen gekoppelt ist.
  18. Speichermodul (301) nach Anspruch 17, wobei die Flagerzeugungslogik das Flagsignal an jede der Vielzahl von Speichereinrichtungen bei der gleichen Anzahl von Lesetaktzyklen sendet, nachdem ein Lesebefehl an jede der Vielzahl von Speichereinrichtungen (101, 102) gesendet ist.
  19. Speichermodul (301) nach Anspruch 18, wobei jede der Vielzahl von Speichereinrichtungen (101, 102) Lesedaten bei der gleichen vorgegebenen Anzahl von Lesetaktzyklen nach Empfangen des Flagsignals ausgibt.
  20. Speichermodul (301) nach Anspruch 10, wobei das Speichermodul (301) mit wenigstens einem anderen Speichermodul (302) so gekoppelt ist, dass jede der Vielzahl von Speichereinrichtungen (101, 102) auf dem Speichermodul (301) ihre Flagsignalleitung mit den Flagsignalleitungen von jeder entsprechenden Speichereinrichtung (103, 104) von dem wenigstens einen anderen Speichermodul (302) gekoppelt hat.
  21. Speichermodul (301) nach Anspruch 10, ferner umfassend: einen Konfigurationsspeicher, wobei der Konfigurationsspeicher eine vorgeschlagene Verzögerung speichert, die ein externer Speichercontroller (400) zwischen der Bereitstellung eines Lesebefehls und eines Flagsignals warten sollte.
  22. Speichermodul (301) nach Anspruch 21, wobei die vorgeschlagene Verzögerung aus einer Einrichtungs-Minimalleselatenzverzögerung und einer System-Latenz besteht.
  23. Computersystem, umfassend: einen Prozessor; einen Speichercontroller (400), der mit dem Prozessor gekoppelt ist; wenigstens ein Speichermodul (301), das mit dem Speichercontroller (400) gekoppelt ist, wobei jedes des wenigstens einen Speichermoduls (301) eine Vielzahl von Speichereinrichtungen (101, 102) nach Anspruch 1, organisiert in wenigstens einen Satz, aufweist; wobei die Lesetaktsignalleitung (RCLK) mit Lesetaktsignalleitungen (402a, 402b) von entsprechenden Speichereinrichtungen (103, 104) in den anderen Speichermodulen (302) des wenigstens einen Speichermoduls gekoppelt ist; wobei die Flagsignalleitungen (404, 405) mit Flagsignalleitungen (404, 445) von anderen entsprechenden Speichereinrichtungen (103, 104) in den anderen Speichermodulen (302) des wenigstens einen Speichermoduls gekoppelt sind; und wobei das Flagsignal die Speichereinrichtung (101) veranlasst Daten entsprechend zu einen früher akzeptierten Befehl, der auf der Befehlssignalleitung (406) empfangen wird, beginnend bei einer vorgegebenen Anzahl von Lesetaktzyklen nach einem Empfang des Flagsignals auszugeben.
  24. Computersystem nach Anspruch 23, wobei der früher akzeptierte Befehl ein Lesebefehl ist.
  25. Computersystem nach Anspruch 23, wobei der früher akzeptierte Befehl ein Kalibrierungsbefehl ist.
  26. Computersystem nach Anspruch 25, wobei die Daten als ein Kalibrierungsmuster ausgegeben werden.
  27. Computersystem nach Anspruch 26, wobei das Kalibrierungsmuster wenigstens zwei sukzessive Bits einschließt, die einen unterschiedlichen Logikzustand aufweisen.
  28. Computersystem nach Anspruch 21, wobei das Kalibrierungsmuster sein erstes Bit auf eine binäre 0 gesetzt und sämtliche nachfolgenden Bits auf eine binäre 1 gesetzt hat.
  29. Computersystem nach Anspruch 23, wobei das Kalibrierungsmuster sein erstes Bit auf eine binäre 1 gesetzt und sämtliche nachfolgenden Bits auf eine binäre 0 gesetzt hat.
  30. Computersystem nach Anspruch 23, ferner umfassend: einen Taktpuffer, der mit dem Speichercontroller (400) durch eine Masterlesetaktsignalleitung und mit jedem des wenigstens einen Speichermoduls durch die Lesetaktsignalleitungen des nächsten einen Speichermoduls gekoppelt ist, wobei der Taktpuffer betreibbar ist, um ein Masterlesetaktsignal, das auf der Masterlesetaktsignalleitung empfangen wird, auf der Lesetaktsignalleitung jedes Rangs mit einer minimalen Verzögerung erneut zu übertragen.
  31. Computersystem nach Anspruch 23, ferner umfassend: einen Taktpuffer, der mit dem Speichercontroller (400) durch eine Masterlesetaktsignalleitung und eine Vielzahl von Masterflagsignalleitungen gekoppelt ist, wobei der Taktpuffer auch mit jedem des wenigstens einen Speichermoduls (301, 302) durch die Lesetaktsignalleitungen (402a, 402b) und die Flagsignalleitungen (404, 405) des wenigstens einen Speichermoduls (301, 302) gekoppelt ist, wobei der Taktpuffer betreibbar ist, um ein Masterlesetaktsignal, das auf der Masterlesetaktsignalleitung empfangen wird, auf jeder Lesetaktsignalleitung (402a, 402b) erneut zu übertragen und auch betreibbar ist, um die Vielzahl von Masterflagsignalen, die auf der Vielzahl von Flagsignalleitungen empfangen werden, auf jeder Flagsignalleitung (404, 405) erneut zu übertragen, wobei der Taktpuffer betreibbar ist, um das Masterlesetaktsignal und die Masterflagsignale mit der gleichen Verzögerung erneut zu übertragen.
  32. Computersystem nach Anspruch 23, wobei jedes der wenigstens einen Speichermodule (301, 302) ferner einen Konfigurationsspeicher umfasst, wobei der Konfigurationsspeicher eine vorgeschlagene Verzögerung speichert, die der Speichercontroller (400) zwischen der Bereitstellung eines Lesebefehls und eines Flagsignals warten sollte.
  33. Computersystem nach Anspruch 23, wobei die vorgeschlagene Verzögerung aus einer Einrichtungs-Minimalleselatenzverzögerung und einer System-Latenz gebildet ist.
  34. Computersystem, umfassend: einen Prozessor; einen Speichercontroller, der mit dem Prozessor gekoppelt ist; wenigstens ein Speichermodul (100'''), das mit dem Speichercontroller (400) gekoppelt ist, wobei jedes des wenigstens einen Speichermoduls (100''') wenigstens einen Satz von Speichereinrichtungen nach Anspruch 1 (101, 102) aufweist, wobei jede des wenigstens einen Satzes von Speichereinrichtungen ferner umfasst: eine Flagerzeugungslogik (410), und eine Vielzahl von Speichereinrichtungen (101, 102), wobei die Lesetaktsignalleitung (402''') mit Lesetaktsignalleitungen von anderen entsprechenden Speichereinrichtungen auf anderen des wenigstens einen Speichermoduls gekoppelt ist; wobei die Flagsignalleitung (404, 405) mit der Flagerzeugungslogik (410) zum Empfangen eines Flagsignals gekoppelt ist, wobei das Flagsignal die Speichereinrichtung (101, 102) veranlasst Daten auf der Datensignalleitung (401a) entsprechend zu einem früher akzeptierten Befehl, der auf der Befehlssignalleitung (406) empfangen wird, beginnend bei einer vorgegebenen Anzahl von Lesetaktzyklen nach Empfang des Flagsignals auszugeben.
  35. Computersystem nach Anspruch 34, wobei die Flagerzeugungslogik (410) das Flagsignal an jede gekoppelte Speichereinrichtung (101, 102) unter Verwendung der gleichen Anzahl von Lesetaktzyklen, nachdem die gekoppelten Speichereinrichtungen (101,102) einen Lesebefehl empfangen, überträgt.
  36. Computersystem nach Anspruch 34, wobei jedes des wenigstens einen Speichermoduls (301, 302) ferner einen Konfigurationsspeicher umfasst, wobei der Konfigurationsspeicher eine vorgeschlagene Verzögerung speichert, die durch die Flagerzeugungslogik verwendet werden soll, um zu bestimmen, wann die Vielzahl von Flagsignalen zu erzeugen sind.
  37. Verfahren zum Betreiben einer Speichereinrichtung (101, 102), die mit einem Speichercontroller (400), einer Lesetaktsignalquelle und einer Flagsignalquelle gekoppelt ist, umfassend: Empfangen eines Befehls von dem Speichercontroller (400); Empfangen eines Flagsignals (FL1, FL2) von der Flagsignalquelle; Empfangen eines Lesetaktsignals (RCLK) von der Lesetaktsignalquelle; Ausgeben eines Datenwerts, der mit dem Befehl assoziiert ist, der zu dem Lesetaktsignal (RCLK) synchronisiert ist, und beginnend bei einer vorgegebenen Anzahl von Lesetaktzyklen nach Empfangen des Flagsignals (FL1, FL2), dadurch gekennzeichnet, dass sich das Flagsignal von dem früher akzeptierten Befehl unterscheidet.
  38. Verfahren nach Anspruch 37, wobei der Befehl eine Lesebefehl ist.
  39. Verfahren nach Anspruch 37, wobei der Befehl ein Kalibrierungsbefehl ist.
  40. Verfahren nach Anspruch 39, wobei die Daten ein Kalibrierungsmuster sind.
  41. Verfahren nach Anspruch 40, wobei das Kalibrierungsmuster wenigstens zwei sukzessive Bits einschließt, die einen unterschiedlichen Logikzustand aufweisen.
  42. Verfahren nach Anspruch 41, wobei das Kalibrierungsmuster ein erstes Bit auf eine binäre 0 gesetzt und alle nachfolgenden Bits auf eine binäre 1 gesetzt hat.
  43. Verfahren nach Anspruch 42, wobei das Kalibrierungsmuster sein erstes Bit auf eine binäre 1 gesetzt und sämtliche nachfolgenden Bits auf eine binäre 0 gesetzt hat.
  44. Verfahren nach Anspruch 37, wobei die Lesetaktquelle der Speichercontroller ist und die Flagsignalquelle der Speichercontroller ist.
  45. Verfahren nach Anspruch 37, wobei die Speichereinrichtung auf einem Speichermodul (301, 302) angeordnet ist und die Flagsignalquelle eine Flagerzeugungslogik ist, die auf den Speichermodul angeordnet ist.
  46. Verfahren nach Anspruch 37, geeignet zur Verwendung in einem Speichersystem mit einem Speichercontroller (400), der mit einer Vielzahl von Speichereinrichtungen (101, 102, 103, 104) gekoppelt ist, wobei die Speichereinrichtungen eine gemeinsame Flagsignalleitung (FL1, FL2) und eine gemeinsame Lesetaktsignalleitung (RCLK) aufweisen, die beide auch mit dem Speichercontroller (400) gekoppelt sind, wobei das Verfahren auf das Ausgleichen der System-Leselatenz für die Speichereinrichtungen gerichtet ist, ferner umfassend die folgenden Schritte: Senden, durch den Speichercontroller (400), eines Lesebefehls an eine Zielspeichereinrichtung (101), die auf einer der Vielzahl von Speichereinrichtungen (101, 102, 103, 104) gewählt ist; Senden, durch den Speichercontroller, eines Flagsignals auf der gemeinsamen Flagsignalleitung (FL1) an die Zielspeichereinrichtung (101) bei einer Anzahl von Lesetaktzyklen, nachdem der Lesebefehl gesendet worden ist; Ausgeben von Daten, die mit dem Lesebefehl assoziiert sind, durch die Zielspeichereinrichtung (101), beginnend bei einer vorgegebenen Anzahl von Lesetaktzyklen, nachdem die Zielspeichereinrichtung (101) das Flagsignal empfangen hat; wobei die Anzahl die gleich ist unabhängig davon, welche Speichereinrichtung (101) als die Zielspeichereinrichtung (101) gewählt worden ist.
  47. Verfahren nach Anspruch 46, wobei die Anzahl einem vorgeschlagenen Verzögerungswert entspricht, der in einem Konfigurationsspeicher gespeichert ist, der mit wenigstens einer der Vielzahl von Speichereinrichtungen (101, 102, 103, 104) assoziiert ist.
  48. Verfahren nach Anspruch 47, wobei die vorgeschlagene Verzögerung aus einer Einrichtungs-Minimalleselatenzverzögerung und einer System-Latenzverzögerung besteht.
  49. Verfahren nach Anspruch 37, geeignet zur Verwendung in einem Speichersystem mit einem Speichercontroller (400) und wenigstens einem Speichermodul, wobei jedes der Speichermodule eine Vielzahl von Speichereinrichtungen aufweist, die mit einer Flagerzeugungslogik und einem Takt gekoppelt sind, wobei das Verfahren zum Ausgleichen der Leselatenz der Vielzahl von Speichereinrichtungen auf jeden Speichermodul ferner die folgenden Schritte umfasst: Senden eines Lesebefehls an eine Zielspeichereinrichtung (101), gewählt aus der Vielzahl von Speichereinrichtungen (101, 102, 103, 104), angeordnet auf einem Zielspeichermodul (301, 302), gewählt aus dem wenigstens einen Speichermodul; Senden eines Flagsignals nach einer Anzahl eines Taktzyklus an die Zielspeichereinrichtung; Ausgeben, durch die Zielspeichereinrichtung, von Daten, die mit dem Lesebefehl assoziiert sind, beginnend bei einer vorgegebenen Anzahl von Taktzyklen, nachdem die Zielspeichereinrichtung das Flagsignal empfangen hat; wobei die Anzahl die gleiche ist unabhängig davon, welche Speichereinrichtung der Zielspeichereinrichtung als die Zielspeichereinrichtung gewählt worden ist.
  50. Verfahren nach Anspruch 49, wobei die Anzahl dem Maximum der vorgeschlagenen Verzögerungswerten entspricht, die in einem Konfigurationsspeicher jedes Speichermoduls (301, 302) gespeichert sind.
  51. Verfahren nach Anspruch 50, wobei jeder der vorgeschlagenen Verzögerungswerte aus einer Minimalleselatenzverzögerung und einer System-Latenzverzögerung gebildet ist.
  52. Verfahren nach Anspruch 37, geeignet zur Verwendung in einem Verfahren zum Kalibrieren eines Speichersystems, mit wenigstens einer Speichereinrichtung (101, 102, 103, 104), wobei jede der wenigstens einen Speichereinrichtung (101, 102, 103, 104) mit einem Speichercontroller (400), einer Flagquelle, und einer Lesetaktquelle über wenigstens eine Lesetaktleitung, wenigstens eine Befehlleitung, wenigstens eine Flagleitung und wenigstens eine Datenleitung gekoppelt ist, wobei das Verfahren ferner die folgenden Schritte umfasst: (a) Einstellen eines Timingversatzes auf Null-Lesetaktzyklen; (b) Senden eines Kalibrierungsbefehls über die wenigstens eine Befehlsleitung von dem Speichercontroller an eine gewählte Speichereinrichtung (101) von der wenigstens einen Speichereinrichtung (101); (c) Senden eines Flagsignals von dem Speichercontroller (400) auf der wenigstens einen Flagleitung, wobei das Flagsignal nach einer Verzögerung gesendet wird, die gleich zu dem Timingversatz in Lesetaktzyklen relativ dazu, wann der Kalibrierungsbefehl gesendet wurde, ist; (d) Empfang des Flagsignals an der gewählten Speichereinrichtung (101) und Ausgeben eines Referenzkalibrierungsmusters, nachdem eine vorgegebene Anzahl von Lesetaktzyklen relativ dazu, wann das Flagsignal an der gewählten Speichereinrichtung (101) empfangen wurde, abgelaufen ist; (e) Empfangen des Flagsignals auf der Flagleitung an dem Speichercontroller (400) und Lesen eines Datenwerts von der Datenleitung beginnend, nachdem die vorgegebene Anzahl von Lesetaktzyklen von der Zeit, zu der das Flagsignal an dem Speichercontroller (400) empfangen wurde, abläuft; (f) Schließen, dass der Timingversatz ausreichend ist, wenn der Datenwert dem Referenzkalibrierungsmuster entspricht; (g) Schließen, dass der Timingversatz unzureichend ist, wenn der Datenwert nicht dem Referenzkalibrierungsmuster entspricht; (h) Erhöhen des Timingversatzes um einen Lesetaktzyklus und Wiederholen der Schritte (b), (c), (d), (e), (f) und (g), wenn der Timingversatz unzureichend ist.
  53. Verfahren nach Anspruch 52, wobei die gewählte Speichereinrichtung (104) eine ist, die von dem Speichercontroller (400) am weitesten entfernt ist.
  54. Verfahren nach Anspruch 53, wobei das Speichersystem eine Vielzahl von Speichereinrichtungen (101, 102, 103, 104) aufweist, die von einer am weitesten entfernten zu einer nächsten Speichereinrichtung (104), zu dem Speichercontroller (400), geordnet sind, ferner umfassend die folgenden Schritte: (i) Wiederholen der Schritte (b), (c), (d), (e), (f), (g) und (h) für jede verbleibende Speichereinrichtung (101, 102, 103) in der Ordnung.
  55. Verfahren nach Anspruch 37 zum Steuern einer Leselatenz für eine Vielzahl an Speichereinrichtungen (101, 102, 103, 104), wobei das Verfahren ferner die folgenden Schritte umfasst: Bereitstellen eines Lesetaktsignals in der Sequenz an der Vielzahl von Speichereinrichtungen (101, 102,103, 104); Abgeben eines Lesebefehls an eine der Speichereinrichtungen (101, 102, 103, 104); Abgeben eines Flagsignals an die eine Speichereinrichtung (101) bei einer ersten vorgegebenen Anzahl Lesetaktperioden, nachdem der Lesebefehl abgegeben wird; und Ausgeben, durch die Speichereinrichtung (101, 102, 103, 104); von Daten, die mit dem Lesebefehl assoziiert sind, bei einer zweiten vorgegebenen Anzahl von Lesetaktperioden, nachdem das Flagsignal an der Speichereinrichtung (101) empfangen worden ist.
  56. Verfahren nach Anspruch 55, wobei die erste vorgegebene Anzahl von Lesetaktperioden plus die zweite vorgegebene Anzahl von Lesetaktperioden größer als oder gleich wie ein Maximum von minimalen Einrichtungs-Leselatenzen entsprechend zu der Vielzahl von Speichereinrichtungen (101, 102, 103, 104) ist.
  57. Verfahren nach Anspruch 55, wobei die zweite vorgegeben Anzahl von Lesetaktzyklusperioden vier ist.
DE60205877T 2001-02-23 2002-02-01 Verfahren zur synchronisation der auslesezeit eines hochgeschwindigkeitsspeichers Expired - Lifetime DE60205877T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US790538 2001-02-23
US09/790,538 US6445624B1 (en) 2001-02-23 2001-02-23 Method of synchronizing read timing in a high speed memory system
PCT/US2002/002764 WO2002069341A2 (en) 2001-02-23 2002-02-01 A method of synchronizing read timing in a high speed memory system

Publications (2)

Publication Number Publication Date
DE60205877D1 DE60205877D1 (de) 2005-10-06
DE60205877T2 true DE60205877T2 (de) 2006-06-29

Family

ID=25150999

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60205877T Expired - Lifetime DE60205877T2 (de) 2001-02-23 2002-02-01 Verfahren zur synchronisation der auslesezeit eines hochgeschwindigkeitsspeichers

Country Status (8)

Country Link
US (3) US6445624B1 (de)
EP (1) EP1374244B1 (de)
JP (2) JP4030875B2 (de)
KR (1) KR100626506B1 (de)
CN (1) CN100385570C (de)
AT (1) ATE303649T1 (de)
DE (1) DE60205877T2 (de)
WO (1) WO2002069341A2 (de)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6445624B1 (en) * 2001-02-23 2002-09-03 Micron Technology, Inc. Method of synchronizing read timing in a high speed memory system
US6901471B2 (en) * 2001-03-01 2005-05-31 Synopsys, Inc. Transceiver macrocell architecture allowing upstream and downstream operation
US6658523B2 (en) * 2001-03-13 2003-12-02 Micron Technology, Inc. System latency levelization for read data
US6675272B2 (en) 2001-04-24 2004-01-06 Rambus Inc. Method and apparatus for coordinating memory operations among diversely-located memory components
US8391039B2 (en) * 2001-04-24 2013-03-05 Rambus Inc. Memory module with termination component
DE10123769C1 (de) * 2001-05-16 2002-12-12 Infineon Technologies Ag Verfahren zur Anpassung unterschiedlicher Signallaufzeiten zwischen einer Steuerung und wenigstens zweier Verarbeitungseinheiten sowie Rechnersystem
US6697926B2 (en) * 2001-06-06 2004-02-24 Micron Technology, Inc. Method and apparatus for determining actual write latency and accurately aligning the start of data capture with the arrival of data at a memory device
DE10149031A1 (de) * 2001-10-05 2003-04-24 Infineon Technologies Ag Speichervorrichtung
US6941433B1 (en) * 2002-05-22 2005-09-06 Juniper Networks, Inc. Systems and methods for memory read response latency detection
JP3866618B2 (ja) * 2002-06-13 2007-01-10 エルピーダメモリ株式会社 メモリシステム及びその制御方法
JP4159415B2 (ja) 2002-08-23 2008-10-01 エルピーダメモリ株式会社 メモリモジュール及びメモリシステム
US6851032B2 (en) * 2002-08-16 2005-02-01 Micron Technology, Inc. Latency reduction using negative clock edge and read flags
US20040078615A1 (en) * 2002-10-17 2004-04-22 Intel Corporation (A Delaware Corporation) Multi-module system, distribution circuit and their methods of operation
US7142461B2 (en) * 2002-11-20 2006-11-28 Micron Technology, Inc. Active termination control though on module register
US7149841B2 (en) * 2003-03-31 2006-12-12 Micron Technology, Inc. Memory devices with buffered command address bus
US7464282B1 (en) 2003-09-03 2008-12-09 T-Ram Semiconductor, Inc. Apparatus and method for producing dummy data and output clock generator using same
US6947349B1 (en) 2003-09-03 2005-09-20 T-Ram, Inc. Apparatus and method for producing an output clock pulse and output clock generator using same
US7089439B1 (en) 2003-09-03 2006-08-08 T-Ram, Inc. Architecture and method for output clock generation on a high speed memory device
US6891774B1 (en) 2003-09-03 2005-05-10 T-Ram, Inc. Delay line and output clock generator using same
US7299329B2 (en) * 2004-01-29 2007-11-20 Micron Technology, Inc. Dual edge command in DRAM
DE102004015868A1 (de) * 2004-03-31 2005-10-27 Micron Technology, Inc. Rekonstruktion der Signalzeitgebung in integrierten Schaltungen
EP1735794B1 (de) * 2004-03-31 2011-04-27 Micron Technology, Inc. Rekonstruktion des signal-timing in integrierten schaltungen
US7296129B2 (en) 2004-07-30 2007-11-13 International Business Machines Corporation System, method and storage medium for providing a serialized memory interface with a bus repeater
US7519877B2 (en) * 2004-08-10 2009-04-14 Micron Technology, Inc. Memory with test mode output
US7301831B2 (en) 2004-09-15 2007-11-27 Rambus Inc. Memory systems with variable delays for write data signals
US7542322B2 (en) * 2004-09-30 2009-06-02 Intel Corporation Buffered continuous multi-drop clock ring
US7512762B2 (en) 2004-10-29 2009-03-31 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
US7299313B2 (en) 2004-10-29 2007-11-20 International Business Machines Corporation System, method and storage medium for a memory subsystem command interface
US7331010B2 (en) 2004-10-29 2008-02-12 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
US7305574B2 (en) * 2004-10-29 2007-12-04 International Business Machines Corporation System, method and storage medium for bus calibration in a memory subsystem
US7966439B1 (en) * 2004-11-24 2011-06-21 Nvidia Corporation Apparatus, system, and method for a fast data return memory controller
KR100588599B1 (ko) * 2005-05-03 2006-06-14 삼성전자주식회사 메모리 모듈 및 메모리 시스템
US7187599B2 (en) 2005-05-25 2007-03-06 Infineon Technologies North America Corp. Integrated circuit chip having a first delay circuit trimmed via a second delay circuit
KR100717113B1 (ko) * 2005-09-12 2007-05-10 삼성전자주식회사 반도체 메모리 모듈 및 반도체 메모리 시스템
US7397684B2 (en) * 2005-09-15 2008-07-08 Infineon Technologies, Ag Semiconductor memory array with serial control/address bus
US7478259B2 (en) 2005-10-31 2009-01-13 International Business Machines Corporation System, method and storage medium for deriving clocks in a memory system
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
US7669086B2 (en) 2006-08-02 2010-02-23 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
US7539842B2 (en) * 2006-08-15 2009-05-26 International Business Machines Corporation Computer memory system for selecting memory buses according to physical memory organization information stored in virtual address translation tables
US7870459B2 (en) 2006-10-23 2011-01-11 International Business Machines Corporation High density high reliability memory module with power gating and a fault tolerant address and command bus
US7721140B2 (en) 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
EP2410436A1 (de) * 2007-06-12 2012-01-25 Rambus Inc. Zyklusbasierte in-dram-Nivellierung
US8098539B2 (en) * 2009-08-26 2012-01-17 Qualcomm Incorporated Hybrid single and dual channel DDR interface scheme by interleaving address/control signals during dual channel operation
US8312193B2 (en) * 2010-01-08 2012-11-13 International Business Machines Corporation Eager protocol on a cache pipeline dataflow
KR101132797B1 (ko) * 2010-03-30 2012-04-02 주식회사 하이닉스반도체 모듈제어회로를 포함하는 반도체모듈 및 반도체모듈의 제어방법
US9021181B1 (en) * 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
US9025364B2 (en) 2013-03-14 2015-05-05 Micron Technology, Inc. Selective self-reference read
JP2015056129A (ja) * 2013-09-13 2015-03-23 キヤノン株式会社 メモリコントローラ及び印刷装置
CN105677320B (zh) * 2015-12-28 2019-06-21 小米科技有限责任公司 一种设置等待时长的方法和装置
US10592114B2 (en) 2016-03-03 2020-03-17 Samsung Electronics Co., Ltd. Coordinated in-module RAS features for synchronous DDR compatible memory
US10558388B2 (en) * 2016-03-03 2020-02-11 Samsung Electronics Co., Ltd. Memory system and method of controlling the same
KR102601143B1 (ko) * 2018-10-29 2023-11-13 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11609868B1 (en) 2020-12-31 2023-03-21 Waymo Llc Control calibration timing to avoid memory write blackout period
KR20220101502A (ko) 2021-01-11 2022-07-19 에스케이하이닉스 주식회사 메모리 장치, 이를 포함하는 메모리 시스템 및 그것의 동작 방법
CN116206648B (zh) * 2022-01-27 2024-02-20 北京超弦存储器研究院 动态存储器及其读写方法、存储装置
CN115080469B (zh) * 2022-05-13 2024-06-14 珠海全志科技股份有限公司 一种存储器传输时延校准方法及装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4519034A (en) 1982-06-30 1985-05-21 Elxsi I/O Bus clock
JPH05250280A (ja) * 1992-03-09 1993-09-28 Fujitsu Ltd データ転送方法
US5748914A (en) 1995-10-19 1998-05-05 Rambus, Inc. Protocol for communication with dynamic memory
US5917760A (en) * 1996-09-20 1999-06-29 Sldram, Inc. De-skewing data signals in a memory system
JPH1166851A (ja) * 1997-08-21 1999-03-09 Mitsubishi Electric Corp クロックシフト回路装置、クロックシフト回路およびこれを用いた同期型半導体記憶装置
JP3832947B2 (ja) * 1997-11-14 2006-10-11 富士通株式会社 データ転送メモリ装置
JP2000011681A (ja) * 1998-06-22 2000-01-14 Mitsubishi Electric Corp 同期型半導体記憶装置
JP2000076122A (ja) * 1998-08-31 2000-03-14 Hitachi Ltd データ処理装置
JP2000163965A (ja) * 1998-11-27 2000-06-16 Mitsubishi Electric Corp 同期型半導体記憶装置
JP3706772B2 (ja) * 1999-07-12 2005-10-19 富士通株式会社 半導体集積回路
DE60019081D1 (de) * 2000-01-31 2005-05-04 St Microelectronics Srl Verschachtelter Burst-Speicher mit Burst-Zugriff bei synchronen Lesezyklen, wobei die beiden untergeordneten Speicherfelder unabhängig lesbar sind mit wahlfreiem Zugriff während asynchroner Lesezyklen
US6445624B1 (en) * 2001-02-23 2002-09-03 Micron Technology, Inc. Method of synchronizing read timing in a high speed memory system

Also Published As

Publication number Publication date
JP4030875B2 (ja) 2008-01-09
US20030002355A1 (en) 2003-01-02
US6724666B2 (en) 2004-04-20
US20040160832A1 (en) 2004-08-19
CN100385570C (zh) 2008-04-30
US6847583B2 (en) 2005-01-25
WO2002069341A2 (en) 2002-09-06
DE60205877D1 (de) 2005-10-06
ATE303649T1 (de) 2005-09-15
KR100626506B1 (ko) 2006-09-20
JP2007299522A (ja) 2007-11-15
CN1503974A (zh) 2004-06-09
EP1374244A2 (de) 2004-01-02
WO2002069341A3 (en) 2002-11-28
US6445624B1 (en) 2002-09-03
EP1374244B1 (de) 2005-08-31
US20020118578A1 (en) 2002-08-29
JP2004525453A (ja) 2004-08-19
JP5415677B2 (ja) 2014-02-12
KR20040005877A (ko) 2004-01-16

Similar Documents

Publication Publication Date Title
DE60205877T2 (de) Verfahren zur synchronisation der auslesezeit eines hochgeschwindigkeitsspeichers
DE19852986B4 (de) Schaltungsanordnung und Verfahren zur Datenmaskierung
DE602004007674T3 (de) Integrierte Schaltung mit bimodalem Daten-Strobe
DE10235448B4 (de) Eichverfahren und Speichersystem
DE10084993B3 (de) Ausgabeschaltung für einen mit doppelter Datenrate arbeitenden dynamischen Speicher mit wahlfreiem Zugriff (DDR DRAM), ein mit doppelter Datenrate arbeitender dynamischer Speicher mit wahlfreiem Zugriff (DDR DRAM), ein Verfahren zum getakteten Auslesen von Daten aus mit doppelter Datenrate arbeitenden dynamischen Speicher mit wahlfreiem Zugriff (DDR DRAM)
DE60222354T2 (de) Halbleiterspeicheranordnung
DE19882418B4 (de) System einer quellensynchronen Schnittstelle zwischen Master- und Slave-Einrichtungen und zugehöriges Verfahren
DE19982871B4 (de) Speichersystem mit jeweils einen Speichermodul-Controller enthaltenden Speichermodulen
DE102012204991B4 (de) Speichereinrichtungen, Systeme und Verfahren unter Verwendung einer Befehls/Adressenkalibrierung
DE10210904A1 (de) Speichermodul, zugehöriges Speichersystem und Taktsignalerzeugungsverfahren
DE102006035612B4 (de) Speicherpuffer, FB-DIMM und Verfahren zum Betrieb eines Speicherpuffers
DE102006050233A1 (de) Speichermodul, Speichersteuereinheit, Speichersystem und Verfahren zum Steuern eines Speichersystems
DE19507562A1 (de) Synchrone Halbleiterspeichervorrichtung mit einer Schreiblatenzsteuerfunktion
DE102005050595A1 (de) Speichersystem, Speichervorrichtung, Speichersteuervorrichtung und Verfahren dafür
DE19860650A1 (de) Chip-Satz-Speichersteuervorrichtung mit Datenausblend-Maskenfunktion
DE10206060A1 (de) Speichersystem mit Stichleitungskonfiguration und zugehöriges Datenübertragungsverfahren
DE10326925A1 (de) Speichersystem und Steuerungsverfahren dafür
DE19915044A1 (de) Schnittstelle für synchrone Halbleiterspeicher
DE10236696A1 (de) Taktsynchrone Halbleiterspeichervorrichtung
DE4307449A1 (de)
DE10125724B4 (de) Speichersystem, Speicherbauelement und Speicherdatenzugriffsverfahren
DE102005042427A1 (de) Speichervorrichtung, Speichersteuereinheit und Speichersystem mit bidirektionalen Taktsignalleitungen
DE68922984T2 (de) Programmierbare Zeitsteuerung der Datenübertragung.
DE10208716B4 (de) Steuerschaltung für ein S-DRAM
DE10335069A1 (de) Synchrone Halbleiterspeichervorrichtung, die ein Einstellen des Datenausgabezeitablaufs ermöglicht

Legal Events

Date Code Title Description
8364 No opposition during term of opposition