DE60205877T2 - Verfahren zur synchronisation der auslesezeit eines hochgeschwindigkeitsspeichers - Google Patents
Verfahren zur synchronisation der auslesezeit eines hochgeschwindigkeitsspeichers Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1066—Output synchronization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4243—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4072—Circuits for initialization, powering up or down, clearing memory or presetting
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/20—Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/10—Aspects relating to interfaces of memory device to external buses
- G11C2207/107—Serial-parallel conversion of data or prefetch
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2254—Calibration
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2281—Timing 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 Prozessor500 , ein Speicherteilsystem100p und einen Erweiterungsbuscontroller510 . Das Speicherteilsystem100p und der Erweiterungsbuscontroller510 sind über einen lokalen Bus520 mit dem Prozessor500 gekoppelt. Außerdem ist der Erweiterungsbuscontroller510 mit wenigstens einem Erweiterungsbus530 gekoppelt, an den verschiedene Peripheriegeräte540 -542 wie etwa Massenspeichereinrichtungen, Tastatur, Maus, Graphikadapter und Multimediaadapter angeschlossen werden können. - Das Speicherteilsystem
100p enthält einen Speichercontroller400p und eine Vielzahl von Speichermodulen301p -302p , die jeweils eine Vielzahl von Speichereinrichtungen, z. B. für das Modul302p den DRAM-1101p und den DRAM-2102p , enthalten. Jede Speichereinrichtung101p -104p ist eine synchrone Hochgeschwindigkeitsspeichereinrichtung. Obgleich in1 nur zwei Speichermodule301p ,302p und assoziierte Signalleitungen401ap ,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 Speichereinrichtungen101p -102p ,103p -104p hat, können die Speichermodule301p -302p ähnlich mehr oder weniger Speichereinrichtungen101p -104p haben, wobei eine typische Konfiguration aber acht oder neun Speichereinrichtungen in jedem Speichermodul haben kann. Die Signalleitungen401ap ,401bp ,402ap ,402bp und403p sind als der Datenbus150p bekannt, während die Signalleitungen406p und407p als der Befehls-/Adressenbus151p bekannt sind. - Der Datenbus
150p enthält eine Vielzahl von Datensignalleitungen401ap ,401bp , die zum Austausch von Daten DATA zwischen dem Speichercontroller400p und den Speichereinrichtungen101p -104p verwendet werden. Von den Speichermodulen301p ,302p werden Lesedaten ausgegeben und seriell mit einem freilaufenden Lesetaktsignal RCLK auf der Lesetakt-Signalleitung402ap ,402bp synchronisiert. Das Lesetaktsignal RCLK wird durch den Speichercontroller400p erzeugt und zunächst zu dem am weitesten von dem Speichercontroller400p entfernten Speichermodul302p angesteuert, bevor es über das verbleibende Speichermodul bzw. die verbleibenden Speichermodule301p angesteuert wird, um zu dem Speichercontroller400p zurückzukehren. Von dem Speichercontroller400p werden Schreibdaten ausgegeben und seriell mit einem freilaufenden Schreibtaktsignal WCLK auf der Schreibtaktsignalleitung403p synchronisiert. Der Schreibtakt wird durch den Speichercontroller400p erzeugt und zunächst zu dem nächstgelegenen Speichermodul301p angesteuert, bevor er über das verbleibende Speichermodul bzw. die verbleibenden Speichermodule302p angesteuert wird. Von dem Speichercontroller400p werden eine Vielzahl von Befehlssignalleitungen406 verwendet, um Befehle CMD an die Steuermodule301p ,302p zu senden. Ähnlich werden von dem Speichercontroller eine Vielzahl von Adressensignalleitungen407p verwendet, um Adressen ADDR an die Speichermodule301p ,302p zu senden. Der Datenbus150p oder der Befehls-/Adressenbus151p 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 Speichermodulen301p ,302p gepuffert werden, bevor sie an die Speichereinrichtungen101p -104p eines jeweiligen Moduls verteilt werden. Jede der Vielzahl von Schreibtaktsignalleitungen404p , der Vielzahl von Datensignalleitungen401a ,401b , der Vielzahl von Befehlssignalleitungen406 und der Vielzahl von Adressensignalleitungen407 ist durch einen Abschlusswiderstand450 abgeschlossen, der ein Widerstand sein kann. - Wenn eine Speichereinrichtung
101p -104p einen Lesebefehl akzeptiert, werden die mit diesem Lesebefehl assoziierten Daten erst an den Datenbus150p ausgegeben, wenn eine bestimmte Zeitdauer abgelaufen ist. Diese Zeit ist als Einrichtungsleselatenz bekannt. Jede Speichereinrichtung101p -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 Speichercontroller400p einen Lesebefehl abgibt, und dem Zeitpunkt, zu dem die Lesedaten bei dem Speichercontroller400p ankommen, abläuft, ist als Systemleselatenz bekannt. Die Systemleselatenz ist gleich der Summe der Einrichtungsleselatenz der Speichereinrichtung101p -104p und der Signalfortpflanzungszeit zwischen der Speichereinrichtung101p -104p und dem Speichercontroller400p . Da die Speichermodule301p näher zu dem Speichercontroller400p als das Speichermodul302p liegen, haben die Speichereinrichtungen101p ,102p , die sich im Speichermodul301p befinden, kürzere Signalfortpflanzungszeiten als die Speichereinrichtungen103p ,104p , die sich im Speichermodul302p 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-Signalleitungen402ap ,402bp (z. B. brauchen Daten, die vom DRAM-3103p ausgegeben werden, länger, um den Speichercontroller400p zu erreichen, als Daten, die vom DRAM-1101p ausgegeben werden, da der DRAM-3103 weiter vom Speichercontroller400p entfernt liegt als der DRAM-1101p ) können die mit derselben Lesetakt-Signalleitung gekoppelten Speichereinrichtungen (z. B. der DRAM-1101p und der DRAM-3103p ) unterschiedliche Systemleselatenzen haben. Würde der Speichercontroller400p gezwungen, Lesetransaktionen für jede Speichereinrichtung101p -104p mit einer unterschiedlichen Systemleselatenz zu verarbeiten, würde dies den Speichercontroller400p 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 in2 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 Speicherteilsystems100 gemäß der ersten Ausführungsform der vorliegenden Erfindung gezeigt. Das Speicherteilsystem100 enthält einen Speichercontroller400 , der eine Vielzahl von Signalen über den Datenbus150 und über einen Befehls-/Adressenbus151 überträgt. Der Datenbus150 enthält eine Vielzahl von Flagsignalen FL1, FL2, die unter Verwendung einer entsprechenden Vielzahl von Flagsignalleitungen404 ,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 Flagsignalleitung404 übertragen, wobei es mit dem Lesetakt RCLK, der auf der Lesetakt-Signalleitung402a übertragen wird, und mit den Speichereinrichtungen DRAM-1101 und DRAM-3103 assoziiert ist. Jedes Speichermodul301 ,302 ist über den Datenbus150 , der die Vielzahl von Flagsignalleitungen404 ,405 enthält, mit dem Speichercontroller400 gekoppelt. Obgleich2 (sowie die5 -8 , die auf alternative Ausführungsformen gerichtet sind) ein spezifisches Leitungsschema für die Befehlssignalleitungen406 und für die Adressensignalleitungen407 veranschaulicht, wird angemerkt, dass die Prinzipien der vorliegenden Erfindung ebenfalls auf alternative Leitungsanordnungen anwendbar sind. Zum Beispiel können die Befehlssignalleitungen406 und die Adressensignalleitungen407 parallel zu jeder der Speichereinrichtungen101 -104 geleitet und/oder durch ein (nicht gezeigtes) Register gepuffert sein. -
3 ist ein ausführlicheres Diagramm eines der in2 gezeigten Speichermodule101 . In der beispielhaften Ausführungsform sind die Speichereinrichtungen101 -104 Advance-DRAM-Technologie-(ADT-)Einrichtungen. Allerdings können die Prinzipien der vorliegenden Erfindung in irgendeinen Typ einer synchronen Speichereinrichtung integriert werden. Eine ADT-Speichereinrichtung101 enthält eine Steuerschaltung2000 (einschließlich Adressendecodierern), die mit der Lesetakt-Signalleitung402a , mit der Schreibtaktsignalleitung403 , mit der Flagsignalleitung404 , mit der Vielzahl von Befehlssignalleitungen406 und mit der Vielzahl von Adressensignalleitungen407 gekoppelt ist. Die Steuerschaltung2000 kann mit zusätzlichen herkömmlichen Signalleitungen gekoppelt sein, die nicht veranschaulicht sind, um die Figur zu vereinfachen. Außerdem enthält die ADT-Speichereinrichtung101 einen Schreibdatenpfad2002 und einen Lesedatenpfad2004 , die beide mit der Datensignalleitung401a und (über die E/A-Torsteuerschaltung2006 ) mit einer Vielzahl von Speicherfeldern2001 gekoppelt sind. Der Lesedatenpfad2004 , der ebenfalls mit der Lesetakt-Signalleitung402a gekoppelt ist, enthält einen Parallel-Seriell-Umsetzer (serializer)2005 , der die von der Vielzahl der Speicherfelder2001 gelesenen parallelen Daten synchron zum Lesetaktsignal RCLK in die auf der Datensignalleitung401a ausgegebenen seriellen Daten umsetzt. Ähnlich enthält der Schreibdatenpfad2002 , der ebenfalls mit der Schreibtaktsignalleitung403 gekoppelt ist, einen Seriell-Parallel-Umsetzer (parallelizer)2003 , der serielle Schreibdaten von der Datensignalleitung401a 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 Flagsignalleitung404 bestimmt. Genauer veranlasst die Steuerschaltung2000 der Speichereinrichtung101 , dass der Lesedatenpfad2003 zu einer vorgegebenen Anzahl von Lesetaktzyklen, nachdem das Flag FL1 auf der Flagsignalleitung404 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 Schritt1001 , wenn die Speichereinrichtung einen über die Vielzahl von Befehlssignalleitungen406 übertragenen Lesebefehl akzeptiert. In Schritt1002 wartet die Steuerschaltung, bis das Flagsignal FL1 empfangen worden ist. Nachdem das Flagsignal empfangen worden ist, wartet die Speichereinrichtung in den Schritten1003 -1004 eine vorgegebene Anzahl von Lesetaktzyklen, bevor sie Daten ausgibt. In der beispielhaften Ausführungsform beginnt die Speichereinrichtung101 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 Speichereinrichtung101-104 die gleiche ist und ausreichend Zeit enthält, damit die Speichereinrichtung101 -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 Speichercontroller400 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 Flagsignalleitung404 ) gekoppelten Speichereinrichtungen (z. B. DRAM-1101 und DRAM-3103 ) aus. Der Kalibrierungsprozess wird auf einer Flagsignalleitungsgrundlage ausgeführt. - Der Kalibrierungsprozess beginnt, wenn der Speichercontroller
400 an diejenige Speichereinrichtung (z. B. DRAM-3103 ), die von den mit der Flagsignalleitung, die kalibriert wird (z. B. mit der Flagsignalleitung404 ), gekoppelten Speichereinrichtungen am weitesten von dem Speichercontroller400 entfernt ist, einen Kalibrierungsbefehl sendet. Der Kalibrierungsbefehl ist ein spezieller Lesebefehl, der veranlasst, dass die Speichereinrichtung103 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 Speichereinrichtung103 8 Bits Daten pro Lesebefehl zurück. Die Speichereinrichtung103 steuert die Daten seriell über die Datensignalleitungen401a zu dem Speichercontroller400 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 Speicherbus150 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 Datenbus150 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 Flagsignalleitung404 bereit. Wenn der DRAM-3103 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 Speichercontroller400 zurückkehrt, nachdem es jede der Speichereinrichtungen103 ,101 , die mit der mit dem Flagsignal FL1 assoziierten Flagsignalleitung404 gekoppelt sind, durchlaufen hat. Wenn der Speichercontroller400 das zurückkehrende Flagsignal FL1 empfängt, versucht er, das Kalibrierungsmuster von der Datensignalleitung401a auszulesen, nachdem die vorgegebene Anzahl von Lesetaktzyklen abgelaufen ist. Falls das Referenzkalibrierungsmuster erfasst wird, erlegt die vorgegebene Anzahl von Lesetaktzyklen der Speichereinrichtung103 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 Speichereinrichtung103 mit einer schnelleren Einrichtungsleselatenz als ihrer Einrichtungs-Minimalleselatenz zu betreiben. In diesem Fall wiederholt der Speichercontroller400 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 Flagsignalleitung404 gekoppelten Speichereinrichtung (z. B. dem DRAM-1101 ) fort, bis die Kalibrierungsprozedur an der nächstgelegenen mit dieser selben Flagsignalleitung (z. B. der Flagsignalleitung404 ) gekoppelten Speichereinrichtung ausgeführt worden ist. Der Speichercontroller400 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-1101 ) durch diese Prozedur kalibriert worden ist, wird durch den Speichercontroller400 der letzte Timingversatz angenommen, um an den mit dieser Flagsignalleitung (z. B. mit der Flagsignalleitung404 ) gekoppelten Speichereinrichtungen Lesetransaktionen durchzuführen. Dieser Timingversatz veranlasst, dass jede mit derselben Flagsignalleitung gekoppelte Speichereinrichtung (z. B. die Flagsignalleitung404 und die Speichereinrichtungen DRAM-1101 , DRAM-3103 ) 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 Flagsignalleitung404 ) gekoppelten Speichereinrichtungen (z. B. dem DRAM-1101 und dem DRAM-3103 ). - Zum Beispiel kalibriert der Controller des Speichers
400 in dem in2 veranschaulichten System zuerst den DRAM-3103 , da der DRAM-1101 und der DRAM-3103 beide mit derselben Flagsignalleitung (d. h.404 ) gekoppelt sind, wobei der DRAM-3103 die am weitesten von dem Speichercontroller400 entfernte Speichereinrichtung ist. Während des ersten Schritts sendet der Speichercontroller gleichzeitig den Kalibrierungsbefehl und das Flagsignal FL1. Die Steuerschaltung2000 der Speichereinrichtung103 veranlasst, dass die Speichereinrichtung Daten zu einer vorgegebenen Anzahl von Lesetaktzyklen nach dem Flagsignal ausgibt. In der beispielhaften Ausführungsform sind die vorgegebene Anzahl4 Lesetaktzyklen. Falls das Kalibrierungsmuster durch den Speichercontroller400 nicht vier Zyklen, nachdem die Rückkehr des Flagsignals FL1 in dem Speichercontroller400 erfasst worden ist, richtig empfangen worden ist, heißt das, dass die Speichereinrichtung103 zu der angegebenen Zeit nicht zum Ausgeben von Lesedaten bereit war, d. h., dass die Einrichtungs-Minimalleselatenz der Speichereinrichtung103 nicht erfüllt worden ist. Somit sendet der Speichercontroller400 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 Speichercontroller400 vier Taktzyklen, nachdem der Speichercontroller das rückkehrende Flagsignal FL1 empfangen hat, das Kalibrierungsmuster erfasst wird. Dieses Timing ist gleich dem Betrieb der Speichereinrichtung103 bei ihrer Einrichtungs-Minimalleselatenz. - Daraufhin fährt der Speichercontroller
400 mit der Kalibrierung der verbleibenden mit der Flagsignalleitung404 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-1101 . 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 Speichercontroller400 den Kalibrierungsprozess durch Kalibrieren des DRAM-1101 fort. Der Speichercontroller400 sendet einen Kalibrierungsbefehl an den DRAM-1101 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-3103 ) verwendet worden ist. Falls das Referenzkalibrierungsmuster nicht richtig durch den Speichercontroller400 empfangen wird, setzt der Speichercontroller400 das Senden von Kalibrierungsbefehlen an den DRAM-1101 unter Verwendung zunehmender Lesetaktzyklusversätze zwischen dem Lesebefehl und dem Flagsignal FL1 für jeden Kalibrierungsbefehl fort. Es wird angenommen, dass der Speichercontroller400 drei Kalibrierungsbefehle an den DRAM-3103 gesendet hat, bevor das Referenzkalibrierungsmuster richtig in dem Speichercontroller empfangen wurde. Dies entspricht einem Timingversatz von3 Lesetaktzyklen zwischen dem Kalibrierungsbefehl und dem Flagsignal (da der erste Kalibrierungsbefehl das Timing von dem vorangehenden Speichermodul anwendet, das gleich einer Lesetaktzyklusverzögerung1 ist, erhöht der zweite Kalibrierungsbefehl das Timing um1 Lesetaktzyklus auf2 Lesetaktzyklen, während schließlich der dritte Kalibrierungsbefehl das Timing um einen weiteren Lesetaktzyklus auf3 Lesetaktzyklen erhöht). Da der DRAM-1101 die nächstgelegene Speichereinrichtung ist, die mit der Flagsignalleitung404 gekoppelt ist, ist der Kalibrierungsprozess für die mit dieser Flagsignalleitung404 gekoppelten Speichereinrichtungen abgeschlossen worden. Im normalen Betrieb stellt der Speichercontroller400 das Flagsignal FL13 Lesetaktzyklen, nachdem er den Lesebefehl gesendet hat, bereit, wobei die Daten, die durch jede mit der Flagsignalleitung404 gekoppelte Speichereinrichtung DRAM-1101 , DRAM-3103 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 aus1 für die Speichereinrichtungen DRAM-4104 und DRAM-2102 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 Speichermodulen301 ,302 des Speicherteilsystems. In der in2 veranschaulichten Ausführungsform sind die Vielzahl der Flagsignalleitungen404 ,405 parallel zu den Lesetakt-Signalleitungen402a ,402b geleitet, um sicherzustellen, dass die Vielzahl der Flagsignalleitungen404 ,405 und der Lesetakt-Signalleitungen402a ,402b äquivalente Fortpflanzungszeiten haben. -
5 zeigt eine zweite Ausführungsform des Speicherteilsystems100' der Erfindung. Das Speicherteilsystem100' leitet ein einzelnes abgehendes Lesetaktsignal RCLK' auf der abgehenden Lesetakt-Signalleitung402' von dem Speichercontroller400 zu einem Taktpuffer401 . Der Taktpuffer401 ist eine Einrichtung mit niedriger Verzögerung, die auf der Vielzahl der Lesetakt-Signalleitungen402a ,402b eine Vielzahl von Lesetaktsignalen RCLK mit praktisch gleicher Phasenlage wie das einzelne abgehende Lesetaktsignal RCLK' erzeugt. Die Vielzahl der Flagsignalleitungen404 ,405 sind anfangs von dem Speichercontroller400 parallel zu der einzelnen abgehenden Lesetakt-Signalleitung402' zu einem Bereich in der Nähe des Taktpuffers401 geleitet. Daraufhin sind die Vielzahl der Flagsignalleitungen404 ,405 parallel zu der Vielzahl der Lesetakt-Signalleitungen402a ,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 Speicherteilsystem100'' der dritten Ausführungsform verwendet einen Taktpuffer mit einem Flagzwischenverstärker401' . Somit werden das abgehende Lesetaktsignal RCLK' sowie die Vielzahl der abgehenden Flagsignale FL1', FL2' anfangs parallel zueinander von dem Speichercontroller400 zu dem Taktpuffer mit dem Flagzwischenverstärker401' geleitet. Der Taktpuffer mit dem Flagzwischenverstärker401' 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 Speicherteilsystem100''' gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt, in dem die Flagsignale FL1, FL2 durch eine interne Logik410 auf dem Speichermodul anstatt durch den Speichercontroller400 erzeugt werden. Die Flagsignalleitungen404 ,405 in jedem Speichermodul (z. B. im Speichermodul301 ) sind unabhängig von den entsprechenden Flagsignalen in anderen Speichermodulen (z. B. im Speichermodul302 ) und somit nicht mit den Flagsignalleitungen404 ,405 anderer Speichermodule gekoppelt. Das in7 gezeigte Speicherteilsystem100''' ist typisch bei einem kleineren Speichersystem. Da ein kleineres Speichersystem eine kleinere Timinglaufzeitdifferenz hat, ist es möglich, auf einer Taktsignalleitung402'' 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 Taktsignalleitung402'' 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-1101 und des DRAM-2102 ) in einem Speichermodul (z. B. in dem Speichermodul301 ) 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 Speichermodul301 mit der "obersten" Speichereinrichtung (z. B. mit dem DRAM-1101 ) beginnen und fortsetzen, bis die "unterste" Speichereinrichtung (z. B. der DRAM-2102 ) kalibriert worden ist. Somit stellt diese Prozedur sicher, dass jede Speichereinrichtung (z. B. der DRAM-1101 und der DRAM-2102 ) eines Speichermoduls (z. B. des Speichermoduls301 ) mit der gleichen Einrichtungsleselatenz betrieben wird. Somit könnte ein Speichercontroller400 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 Signalleitung402'' 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 Speichercontroller400 durch jedes Speichermodul301 ,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 Logik410 des Speichermoduls, das kalibriert wird, anweist, ihren Flagsignaltimingversatz (für jeden der modulinternen Flags FL1, FL2) zu erhöhen. Der Speichercontroller400 kann die interne Logik410 eines Speichermoduls (z. B. des Speichermoduls302 ) durch eine Vielzahl von Mechanismen einschließlich z. B. des Sendens von Sonderbefehlen an eine Vielzahl von Befehlsleitungen406 oder über dedizierte Signalleitungen (nicht gezeigt) anweisen, sein Flagtiming zu erhöhen. - In
8 ist nun ein Speicherteilsystem100'''' gemäß einer weiteren Ausführungsform der vorliegenden Erfindung gezeigt. Das Speicherteilsystem100'''' ist ähnlich dem Speichersystem100 aus2 . Allerdings enthalten die Speichermodule301 ,302 des Speichersystems100'''' jeweils einen Konfigurationsspeicher105 ,106 und wenigstens eine assoziierte Signalleitung410 . Die Konfigurationsspeicher105 ,106 können irgendein Speicher sein, der vorgegebene Konfigurationsinformationen hinsichtlich der Speichereinrichtungen DRAM-1101 – DRAM-4104 in einem Speichermodul301 ,302 speichert. Zum Beispiel können die Konfigurationsspeicher105 ,106 Serial-Presence-Detect- oder SPD-EEPROMs sein. - Die vorgegebenen Konfigurationsdaten SPDDC können durch den Speichercontroller
400 unter Verwendung der wenigstens einen Signalleitung410 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 Speichercontroller400 während der Systeminitialisierung keine Kalibrierungsroutine auszuführen. Stattdessen können die geforderten Flagtimingverzögerungen aus den in den Konfigurationsspeichern105 ,106 gespeicherten Daten gelesen oder berechnet werden. Falls die Konfigurationsspeicher105 ,106 für dasselbe Flagsignal verschiedene Flagtimingverzögerungen spezifizieren, wendet der Speichercontroller400 für dieses Flag die größte dieser Flagtimingverzögerungen an. Dies ermöglicht, dass der Speichercontroller die Speichermodule301 ,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'' und100''' , wie sie in den5 -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)
- 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. - Speichereinrichtung (
101 ) nach Anspruch 1, wobei der früher akzeptierte Befehl ein Lesebefehl ist. - Speichereinrichtung (
101 ) nach Anspruch 1, wobei der früher akzeptierte Befehl ein Kalibrierungsbefehl ist. - Speichereinrichtung (
101 ) nach Anspruch 3, wobei die Daten ein Kalibrierungsmuster sind. - Speichereinrichtung (
101 ) nach Anspruch 4, wobei das Kalibrierungsmuster wenigstens zwei sukzessive Bits einschließt, die einen unterschiedlichen Logikzustand aufweisen. - 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. - 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. - 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. - 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. - Speichermodul (
301 ), umfassend: eine Vielzahl von Speichereinrichtungen (101 ,102 ) nach Anspruch 1. - Speichermodul (
301 ) nach Anspruch 10, wobei der früher akzeptierte Befehl eine Lesebefehl ist. - Speichermodul (
301 ) nach Anspruch 10, wobei der früher akzeptierte Befehl ein Kalibrierungsbefehl ist. - Speichermodul (
301 ) nach Anspruch 12, wobei die Daten als ein Kalibrierungsmuster ausgegeben werden. - Speichermodul (
301 ) nach Anspruch 13, wobei das Kalibrierungsmuster wenigstens zwei sukzessive Bits einschließt, die einen unterschiedlichen Logikzustand aufweisen. - 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. - 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. - Speichermodul (
301 ) nach Anspruch 10, ferner umfassend: eine Flagerzeugungslogik, die mit jeder der Vielzahl von Speichereinrichtungen über deren jeweilige Flagsignalleitungen gekoppelt ist. - 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. - 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. - 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. - 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. - Speichermodul (
301 ) nach Anspruch 21, wobei die vorgeschlagene Verzögerung aus einer Einrichtungs-Minimalleselatenzverzögerung und einer System-Latenz besteht. - 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. - Computersystem nach Anspruch 23, wobei der früher akzeptierte Befehl ein Lesebefehl ist.
- Computersystem nach Anspruch 23, wobei der früher akzeptierte Befehl ein Kalibrierungsbefehl ist.
- Computersystem nach Anspruch 25, wobei die Daten als ein Kalibrierungsmuster ausgegeben werden.
- Computersystem nach Anspruch 26, wobei das Kalibrierungsmuster wenigstens zwei sukzessive Bits einschließt, die einen unterschiedlichen Logikzustand aufweisen.
- 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.
- 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.
- 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. - 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. - 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. - Computersystem nach Anspruch 23, wobei die vorgeschlagene Verzögerung aus einer Einrichtungs-Minimalleselatenzverzögerung und einer System-Latenz gebildet ist.
- 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. - 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. - 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. - 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. - Verfahren nach Anspruch 37, wobei der Befehl eine Lesebefehl ist.
- Verfahren nach Anspruch 37, wobei der Befehl ein Kalibrierungsbefehl ist.
- Verfahren nach Anspruch 39, wobei die Daten ein Kalibrierungsmuster sind.
- Verfahren nach Anspruch 40, wobei das Kalibrierungsmuster wenigstens zwei sukzessive Bits einschließt, die einen unterschiedlichen Logikzustand aufweisen.
- 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.
- 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.
- Verfahren nach Anspruch 37, wobei die Lesetaktquelle der Speichercontroller ist und die Flagsignalquelle der Speichercontroller ist.
- 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. - 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. - 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. - Verfahren nach Anspruch 47, wobei die vorgeschlagene Verzögerung aus einer Einrichtungs-Minimalleselatenzverzögerung und einer System-Latenzverzögerung besteht.
- 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. - Verfahren nach Anspruch 49, wobei die Anzahl dem Maximum der vorgeschlagenen Verzögerungswerten entspricht, die in einem Konfigurationsspeicher jedes Speichermoduls (
301 ,302 ) gespeichert sind. - Verfahren nach Anspruch 50, wobei jeder der vorgeschlagenen Verzögerungswerte aus einer Minimalleselatenzverzögerung und einer System-Latenzverzögerung gebildet ist.
- 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. - Verfahren nach Anspruch 52, wobei die gewählte Speichereinrichtung (
104 ) eine ist, die von dem Speichercontroller (400 ) am weitesten entfernt ist. - 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. - 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. - 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. - Verfahren nach Anspruch 55, wobei die zweite vorgegeben Anzahl von Lesetaktzyklusperioden vier ist.
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)
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)
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 |
-
2001
- 2001-02-23 US US09/790,538 patent/US6445624B1/en not_active Expired - Lifetime
-
2002
- 2002-02-01 DE DE60205877T patent/DE60205877T2/de not_active Expired - Lifetime
- 2002-02-01 JP JP2002568374A patent/JP4030875B2/ja not_active Expired - Fee Related
- 2002-02-01 EP EP02718884A patent/EP1374244B1/de not_active Expired - Lifetime
- 2002-02-01 WO PCT/US2002/002764 patent/WO2002069341A2/en active IP Right Grant
- 2002-02-01 KR KR1020037011014A patent/KR100626506B1/ko not_active IP Right Cessation
- 2002-02-01 AT AT02718884T patent/ATE303649T1/de not_active IP Right Cessation
- 2002-02-01 CN CNB028086325A patent/CN100385570C/zh not_active Expired - Fee Related
- 2002-08-19 US US10/222,798 patent/US6724666B2/en not_active Expired - Fee Related
-
2004
- 2004-02-17 US US10/778,145 patent/US6847583B2/en not_active Expired - Fee Related
-
2007
- 2007-07-02 JP JP2007174529A patent/JP5415677B2/ja not_active Expired - Fee Related
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 |