DE20221512U1 - Vorrichtung zur Koordinierung von Speicheroperationen zwischen Speicherkomponenten - Google Patents

Vorrichtung zur Koordinierung von Speicheroperationen zwischen Speicherkomponenten Download PDF

Info

Publication number
DE20221512U1
DE20221512U1 DE2002221512 DE20221512U DE20221512U1 DE 20221512 U1 DE20221512 U1 DE 20221512U1 DE 2002221512 DE2002221512 DE 2002221512 DE 20221512 U DE20221512 U DE 20221512U DE 20221512 U1 DE20221512 U1 DE 20221512U1
Authority
DE
Germany
Prior art keywords
memory
signal
clock
data
component
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
DE2002221512
Other languages
English (en)
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.)
Rambus Inc
Original Assignee
Rambus 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=25286018&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE20221512(U1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Rambus Inc filed Critical Rambus Inc
Priority to DE2002221512 priority Critical patent/DE20221512U1/de
Publication of DE20221512U1 publication Critical patent/DE20221512U1/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/4076Timing circuits
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/06Clock generators producing several clock signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • G06F1/105Distribution of clock signals, e.g. skew in which the distribution is at least partially optical
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • 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/1684Details of memory controller using multiple buses
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • 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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4086Bus impedance matching, e.g. termination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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
    • 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 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/022Detection or location of defective auxiliary circuits, e.g. defective refresh counters in I/O circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/023Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50008Marginal testing, e.g. race, voltage or current testing of impedance
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50012Marginal testing, e.g. race, voltage or current testing of timing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/06Arrangements for interconnecting storage elements electrically, e.g. by wiring
    • G11C5/063Voltage and signal distribution in integrated semi-conductor memory access lines, e.g. word-line, bit-line, cross-over resistance, propagation delay
    • 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
    • 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/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • 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
    • 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 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/18Address timing or clocking circuits; Address control signal generation or management, e.g. for row address strobe [RAS] or column address strobe [CAS] signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/04Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects

Abstract

Speichersystem, umfassend:
eine erste Speichervorrichtung (116);
eine erste Vielzahl von Signalleitungen, welche mit der ersten Speichervorrichtung gekoppelt sind, wobei die erste Vielzahl von Signalleitungen ausgebildet ist für Datenübertragungen, in welche die erste Speichervorrichtung eingebunden ist;
eine zweite Speichervorrichtung (117);
eine zweite Vielzahl von Signalleitungen, welche mit der zweiten Speichervorrichtung gekoppelt sind, wobei die zweite Vielzahl von Signalleitungen ausgebildet ist für Datenübertragungen, in welche die zweite Speichervorrichtung eingebunden ist;
eine erste Abschlusskomponente (119); und
eine dritte Vielzahl von Signalleitungen, welche mit der ersten Speichervorrichtung, der zweiten Speichervorrichtung und der ersten Abschlusskomponente (119) solcherart gekoppelt sind, dass ein Signal, welches sich auf der dritten Vielzahl von Signalleitungen ausbreitet, sich zu der ersten Speichervorrichtung (116) ausbreitet, bevor es die zweite Speichervorrichtung (117) erreicht, und sich zu der zweiten Speichervorrichtung (117) ausbreitet, bevor es die erste Abschlusskomponente (119) erreicht.

Description

  • Die Erfindung bezieht sich allgemein auf das Speichern und Rückgewinnen von Informationen und insbesondere auf das Koordinieren von Speicherkomponenten.
  • Technischer Hintergrund der Erfindung
  • In Folge des Wachstums der technischen Fähigkeiten von Computern und Datenverarbeitungsgeräten haben ihre Nutzer Anwendungen entwickelt, die steigende Anforderungen an die Geräte stellen. Daher existiert ein kontinuierlich steigender Bedarf, mehr Information in einer vorgegebenen Zeitspanne zu verarbeiten. Ein Weg, mehr Information in einer vorgegebenen Zeitspanne zu verarbeiten ist es, jedes Informationselement in einer kürzeren Zeitspanne zu verarbeiten. Im Zuge der Verkürzung dieser Zeitspanne nähert sich diese den physikalischen Geschwindigkeitsgrenzen, die die Kommunikation elektronischer Signale beherrschen. Es wäre zwar ideal, wenn man elektronische Repräsentationen von Informationen ohne Verzögerung bewegen könnte, jedoch ist eine sol che Verzögerung unvermeidbar. Tatsächlich ist nicht nur die Verzögerung unvermeidbar, sondern variiert diese Verzögerung, weil ihr Betrag eine Funktion des Abstandes ist, entsprechend den relativen Positionen der miteinander kommunizierenden Vorrichtungen.
  • Da die technischen Fähigkeiten einer einzelnen elektronischen Vorrichtung begrenzt sind, ist es oft wünschenswert, viele Vorrichtungen zu kombinieren, wie beispielsweise Speicherkomponenten, um zusammenzuwirken und so die Gesamtkapazität eines Systems zu steigern. Da die Vorrichtungen sich jedoch nicht alle gleichzeitig am selben Raumpunkt befinden können, muss dem Betrieb des Systems mit Vorrichtungen, die über ein gewisses Gebiet verteilt sind, Beachtung geschenkt werden.
  • Traditionell wurde das Timing des Betriebs der Vorrichtungen nicht bis zu dem Punkt beschleunigt, an dem der Unterschied der Position der Vorrichtungen für ihren Betrieb problematisch war. Da jedoch die Leistungsanforderungen gestiegen sind, bilden traditionelle Timing-Paradigmen mittlerweile Barrieren für einen weiteren Fortschritt.
  • Ein Beispiel eines existierenden Speichersystems verwendet DDR (engl. Double Data Rate, doppelte Datenrate) Speicherkomponenten. Das Speichersystem beinhaltet einen Speichercontroller (Speichersteuerung) und ein Speichermodul. Eine Ausbreitungsverzögerung entsteht entlang eines Adressbusses zwischen dem Speichercontroller und dem Speichermodul. Eine weitere Ausbreitungsverzögerung entsteht entlang des Datenbusses zwischen dem Speichercontroller und dem Speichermodul.
  • Die Verteilung der Steuersignale und eines Steuertaktsignals im Speichermodul ist strikten Randbedingungen unterworfen. Typischerweise sind die Steuerdrähte so geführt, dass eine gleiche Länge zu jeder Speicherkomponente gegeben ist. Eine „Stern"- oder „Binärbaum"-Topologie wird typischerweise verwendet, wobei jede Spitze des Sterns oder jeder Zweig des Binärbaums die gleiche Länge hat. Damit ist beabsichtigt, jegliche Abweichung des Timings der Steuersignale und des Steuertaktsignals zwischen verschiedenen Speicherkomponenten eines Speichermoduls zu eliminieren. Jedoch kompromittiert das Ausgleichen der Drahtlängen zu jeder Speicherkomponente die Arbeitsleistung des Systems (manche Pfade sind länger als sie sein müssen). Darüber hinaus begrenzt die Notwendigkeit, die Drähte so zu führen, dass gleiche Längen vorgesehen werden, die Anzahl der Speicherkomponenten und verkompliziert ihre Verbindungen.
  • In solchen DDR-Systemen wird ein Datenstrobesignal (Datenabtastsignal) verwendet, um dass Timing von sowohl Datenlese- als auch Datenschreiboperationen zu steuern. Das Datenstrobesignal ist kein periodisches Timingsignal, sondern wird vielmehr nur angelegt, wenn gerade Daten übertragen werden. Das Timingsignal für die Steuersignale ist ein periodischer Takt. Das Datenstrobesignal für die Datenschreiboperation ist auf den Takt für die Steuersignale ausgerichtet. Das Strobe für die Datenleseoperation ist um eine Verzögerungszeitspanne relativ zum Steuertakt verzögert, die gleich der Ausbreitungsverzögerung entlang des Adressbusses plus der Ausbreitungsverzögerung entlang des Datenbusses ist. Eine Signalisierungspause muss vorgesehen werden, wenn einem Lesetransfer ein Schreibtransfer folgt, um Interferenz entlang verschiedener verwendeter Signalleitungen zu vermeiden. Solch eine Pause reduziert die Systemleistung.
  • Ein solches System ist in verschiedener Hinsicht eingeschränkt. Erstens treten an den Stubs (den Enden der Sternspitzen oder Baumzweige) Reflexionen auf, weil die Steuerdrähte entsprechend einer Sterntopologie oder einem Binärbaum geführt sind. Die Reflexionen erhöhen die Einschwingzeit der Signale und begrenzen die Übertragungsbandbreite der Steuerdrähte. In der Folge ist das Zeitintervall, während dem ein Stück Information auf einen Steuerdraht gespeist wird, länger als die Zeitspanne, die eine Signal-Wellenfront benötigt, um sich von einem zum anderen Ende des Steuerdrahts auszubreiten.
  • Darüber hinaus werden mehr Drahtstubs zu jedem Leiter des Datenbusses hinzugefügt, wenn mehr Module zum System hinzugefügt werden, wodurch die Reflektionen aufgrund der Stubs erhöht werden. Dies erhöht die Einschwingzeit der Signale und begrenzt die Übertragungsbreite des Datenbusses zusätzlich.
  • Da auch die Beziehung zwischen den Ausbreitungsverzögerungen entlang des Adressbusses und des Datenbusses in diesem System einer Randbedingung unterliegt, ist es schwer, die Betriebsfrequenz zu erhöhen, ohne einen Timing-Parameter der Speicherkomponente zu verletzen. Wenn ein Taktsignal unabhängig von einem anderen Taktsignal ist, werden diese Taktsignale und die Komponenten, auf die sie sich beziehen, als zu unterschiedlichen Taktdomänen gehörig betrachtet. Innerhalb einer Speicherkomponente arbeitet der Schreibdatenempfänger in einer anderen Taktdomäne als der Rest der Logik der Speicherkomponente, und wird das Domänenüberschreitungsschaltungssystem nur einen begrenzten Betrag des Unterschiedes (skew) zwischen diesen Domänen auffangen können. Eine Erhöhung der Datensignalrate wird diesen Unterschiedsparameter (gemessen in Zeiteinheiten) reduzieren und die Wahrscheinlichkeit erhöhen, dass eine Führungsfehlanpassung zwischen Daten- und Steuerdrähten auf der Platine eine Timingverletzung erzeugt.
  • Die meisten DDR-Systeme haben auch strikte Grenzwerte bezüglich der Größe der Adressbus- und Datenbus-Ausbreitungsverzögerungen (in Zeiteinheiten). Dies sind Grenzwerte, die der Speichercontroller und die Logik vorschreiben, welche typischerweise für das Überschreiten von der Taktdomäne des Lesedatenempfängers des Controllers in die Taktdomäne, die vom Rest des Controllers verwendet wird, enthalten ist. Gewöhnlich gibt es auch einen Grenzwert (ausgedrückt in Taktzyklen) für die Größe der Summe dieser Ausbreitungsverzögerungen. Wenn das Layout der Hauptplatine diese Summe zu groß werden lässt (gemessen in Zeiteinheiten), muss die Signalrate des Systems möglicherweise verringert werden, wodurch die Leistung gesenkt wird.
  • In einem anderen Beispiel eines existierenden Speichersystems sind die Steuerdrähte und der Datenbus mit einem Speichercontroller verbunden und zusammen an Speicherkomponenten auf jedem Speichermodul vorbeigeleitet. Ein Takt wird verwendet, um das Timing der Datenschreib- und Steuersignale zu steuern, während ein anderer Takt verwendet wird, um das Timing der Lesedaten zu steuern. Die zwei Takte werden am Speichercontroller ausgerichtet. Anders als in dem vorhergehenden Beispiel aus dem Stand der Technik werden diese zwei Timing-Signale auf getrennten Drähten transportiert.
  • In solch einem alternativen System können verschiedene Gruppen von Steuerdrähten und ein Datenbus verwendet werden, um den Speichercontroller mit einer oder mehreren der Speicherkomponenten zu koppeln. Der Bedarf an getrennten Gruppen von Steuerdrähten erzeugt zusätzliche Kosten und Komplexität, was unerwünscht ist. Wenn darüber hinaus ein Speichersystem mit einer großen Kapazität benötigt wird, wird die Anzahl der Speicherkomponenten auf jedem Datenbus relativ groß sein. Dies wird tendenziell die maximale Signalrate auf dem Datenbus und damit auch die Arbeitsleistung begrenzen.
  • Daher wird eine Technik benötigt, um die Speicheroperationen zwischen verteilt angeordneten Speicherkomponenten zu koordinieren.
  • Kurzbeschreibung der Figuren
  • 1 ist ein Blockdiagramm, das ein Speichersystem mit einer einzelnen Reihe von Speicherkomponenten illustriert, mit dem ein Ausführungsbeispiel der Erfindung implementiert werden kann.
  • 2 ist ein Blockdiagramm zur Illustration von Taktungsdetails für einen Abschnitt einer Reihe von Speicherkomponenten eines Speichersystems wie dem in 1 illustrierten, gemäß einem Ausführungsbeispiel der Erfindung.
  • 3 ist ein Timingdiagramm, das Adress- und Steuertiming-Notationen illustriert, die in Timingdiagrammen anderer Figuren verwendet werden.
  • 4 ist ein Timingdiagramm, das Datentiming-Notationen illustriert, die in Timingdiagrammen anderer Figuren verwendet werden.
  • 5 ist ein Timingdiagramm, das das Timing von Signalen illustriert, die über den Adress- und Steuerbus (Addr/Ctrl oder ACS,M) kommuniziert werden, gemäß einem Ausführungsbeispiel der Erfindung.
  • 6 ist ein Timingdiagramm, das das Timing von Signalen illustriert, die über den Datenbus (DQS,M) kommuniziert werden, gemäß einem Ausführungsbeispiel der Erfindung.
  • 7 ist ein Timingdiagramm, das das Systemtiming an einer Speichercontrollerkomponente illustriert, gemäß einem Ausführungsbeispiel der Erfindung.
  • 8 ist ein Timingdiagramm, das die Anpassung von Takten AclkS1,M1, WClkS1,M1, und RClkS1,M1, an der Speicherkomponente in einem Abschnitt 1 einer Reihe 1 illustriert, gemäß einem Ausführungsbeispiel der Erfindung.
  • 9 ist ein Timingdiagramm, das die Anpassung der Takte AclkSNs,M1, WClkSNs,M1, und RClkSNs,M1, an der Speicherkomponente im Abschnitt NS der Reihe 1 illustriert, gemäß einem Ausführungsbeispiel der Erfindung.
  • 10 ist ein Blockdiagramm, das weitere Details für einen Abschnitt einer Reihe von Speicherkomponenten eines Speichersystems wie dem in 1 dargestellten illustriert, gemäß einem Ausführungsbeispiel der Erfindung.
  • 11 ist eine Blockdiagramm, das Taktungselemente eines Abschnitts einer Reihe der Speicherkomponenten eines Speichersystems wie in 1 dargestellten illustriert, gemäß einem Ausführungsbeispiel der Erfindung.
  • 12 ist ein Blockdiagramm, das Details der Speichercontrollerkomponente eines Speichersystems wie dem in 1 dargestellten illustriert, gemäß einem Ausführungsbeispiel der Erfindung.
  • 13 ist ein Blockdiagramm, das Taktungselemente einer Speichercontrollerkomponente eines Speichersystems wie dem in 1 dargestellten illustriert, gemäß einem Ausführungsbeispiel der Erfindung.
  • 14 ist ein logisches Diagramm, das Details des ClkC8-Blocks der Speichercontrollerkomponente wie der in 12 dargestellten illustriert, gemäß einem Ausführungsbeispiel der Erfindung.
  • 15 ist ein Blockdiagramm, das illustriert, wie die ClkC8[N1:1]-Signale in den Sende- und Empfangsblöcken der Speichercontrollerkomponente wie der in 12 dargestellten verwendet werden, gemäß einem Ausführungsbeispiel der Erfindung.
  • 16 ist ein Blockdiagramm, das einen Schaltkreis zum Herstellen eines ClkC8B-Takts und eines ClkC1B-Taktes auf der Basis des ClkC8A-Taktes illustriert, gemäß einem Ausführungsbeispiel der Erfindung.
  • 17 ist ein Blockdiagramm, das Details des PhShC-Blocks illustriert, gemäß einem Ausführungsbeispiel der Erfindung.
  • 18 ist ein Blockdiagramm, das die logischen Details der Skip-Logik in einem Controller-Abschnitt des Empfangsblocks einer Speichercontrollerkomponente illustriert, gemäß einem Ausführungsbeispiel der Erfindung.
  • 19 ist ein Timingdiagramm, das die Timingdetails der Skip-Logik in einem Controllerabschnitt des Empfangsblocks einer Speichercontrollerkomponente illustriert, gemäß einem Ausführungsbeispiel der Erfindung.
  • 20 ist ein Blockdiagramm, das die Logik-Details der Skip-Logik in einem Controllerabschnitt des Sendeblocks einer Speichercontrollerkomponente illustriert, gemäß einem Ausführungsbeispiel der Erfindung.
  • 21 ist ein Timingdiagramm, das die Timingdetails der Skip-Logik in einem Controllerabschnitt des Sendeblock einer Speichercontrollerkomponente illustriert, gemäß einem Ausführungsbeispiel der Erfindung.
  • 22 ist ein Timingdiagramm, das ein Beispiel einer Datentaktungsanordnung illustriert, gemäß einem Ausführungsbeispiel der Erfindung.
  • 23 ist ein Timingdiagramm, das ein Beispiel einer Anordnung der Datentaktung illustriert, gemäß einem Ausführungsbeispiel der Erfindung.
  • 24 ist ein Timingdiagramm, das das Timing bei der Speichercontrollerkomponente für das Beispiel der Datentaktungsanordnung aus 23 illustriert, gemäß einem Ausführungsbeispiel der Erfindung.
  • 25 ist ein Timingdiagramm, das das Timing eines ersten Abschnitts einer Reihe von Speicherkomponenten für das Beispiel der Datentaktungsanordnung aus 23 illustriert, gemäß einem Ausführungsbeispiel der Erfindung.
  • 26 ist ein Timingdiagramm, das das Timing eines letzten Abschnitts einer Reihe von Speicherkomponenten für das Beispiel der Datentaktungsanordnung aus 23 illustriert, gemäß einem Ausführungsbeispiel der Erfindung.
  • 27 ist ein Blockdiagramm, das ein Speichersystem illustriert, welches eine Mehrzahl Reihen von Speicherkomponenten und eine Mehrzahl Speichermodule enthalten kann, gemäß einem Ausführungsbeispiel der Erfindung.
  • 28 ist ein Blockdiagramm, das ein Speichersystem illustriert, welches eine Mehrzahl Reihen von Speicherkomponenten und eine Mehrzahl Speichermodule enthalten kann, gemäß einem Ausführungsbeispiel der Erfindung.
  • 29 ist ein Blockdiagramm, das ein Speichersystem illustriert, welches eine Mehrzahl Reihen von Speicherkomponenten und eine Mehrzahl Speichermodule enthalten kann, gemäß einem Ausführungsbeispiel der Erfindung.
  • 30 ist ein Blockdiagramm, das ein Speichersystem illustriert; welches eine Mehrzahl Reihen von Speicherkomponenten und eine Mehrzahl Speichermodule mit einem fest zugeordneten Steuer-/Adressbus pro Speichermodul enthält, gemäß einem Ausführungsbeispiel der Erfindung.
  • 31 ist ein Blockdiagramm, das ein Speichersystem illustriert, welches eine Mehrzahl Reihen von Speicherkomponenten und eine Mehrzahl Speichermodule mit einem einzelnen Steuer-/Adressbus, der von den Speichermodulen geteilt wird, enthält, gemäß einem Ausführungsbeispiel der Erfindung.
  • 32 ist ein Blockdiagramm, das ein Speichersystem illustriert, welches eine Mehrzahl Reihen von Speicherkomponenten und eine Mehrzahl Speichermodule mit einem einzelnen Steuer-/Adressbus, der von allen Speichermodulen geteilt wird, enthält, gemäß einem Ausführungsbeispiel der Erfindung.
  • 33 ist ein Blockdiagramm, das ein Speichersystem illustriert, welches eine Mehrzahl Reihen von Speicherkomponenten und eine Mehrzahl Speichermodule mit einem fest zugeordneten, in Abschnitte unterteilten (sliced) Steuer-/Adressbus pro Speichermodul enthält, gemäß einem Ausführungsbeispiel der Erfindung.
  • 34 ist ein Blockdiagramm, das ein Speichersystem illustriert, welches eine Mehrzahl Reihen von Speicherkomponenten und eine Mehrzahl Speichermodule mit einem einzelnen Steuer-/Adressbus, der von allen Speichermodulen geteilt wird, enthält, gemäß einem Ausführungsbeispiel der Erfindung.
  • 35 ist ein Blockdiagramm, das ein Speichersystem illustriert, welches eine Mehrzahl Reihen von Speicherkomponenten und eine Mehrzahl Speichermodule mit einem einzelnen Steuer-/Adressbus, der von allen Speichermodulen geteilt wird, enthält, gemäß einem Ausführungsbeispiel der Erfindung.
  • Detaillierte Beschreibung einer bevorzugten Ausführungsform
  • Es wird ein Verfahren und eine Vorrichtung zum Koordinieren von Speichervorgängen unter verteilt angeordneten Speicherkomponenten beschrieben. Gemäß einer Ausführungsform der Erfindung wird ein Wellen-Pipelining für einen Adressbus implementiert, der mit einer Vielzahl von Speicherkomponenten gekoppelt ist. Die Vielzahl der Speicherkomponenten ist nach Koordinaten konfiguriert, die in Bezug zur Ausbreitungsverzögerung des Adressbusses und zur Ausbreitungsverzögerung des Datenbusses stehen. Ein Timingsignal, das den Adress- und/oder Steuersignalen zugeordnet ist und die Ausbreitungsverzögerung dieser Signale dupliziert, wird verwendet, um die Speichervorgänge zu koordinieren. Die Ausbreitungsverzögerung des Adressbusses oder die Ausbreitungsverzögerung des allgemeinen Adressbusses betrifft die Verzögerung eines Signals, welches entlang eines Adressbusses zwischen der Speichercontroller-Komponente und einer Speicherkomponente läuft. Die Ausbreitungsverzögerung des Datenbusses betrifft die Verzögerung eines Signals, welches entlang eines Datenbusses zwischen dem Speichercontroller und einer Speicherkomponente läuft.
  • Gemäß einem Ausführungsbeispiel der Erfindung enthält ein Speichersystem eine Mehrzahl Speichermodule, die eine Mehrzahl Reihen und eine Mehrzahl Abschnitte von Speicherkomponenten bereitstellen. Ein solches System kann mit Bezugnahme auf 27 verstanden werden. Das Speichersystem der 27 enthält ein Speichermodul 2703 und ein Speichermodul 2730. Das Speichermodul 2703 beinhaltet eine Reihe, die Speicherkomponenten 27162618 beinhaltet, und eine andere Reihe, die Speicherkomponenten 27442746 beinhaltet.
  • Das Speichersystem ist in Abschnitte organisiert, die die Speichercontrollerkomponente und die Speichermodule übergreifen. Das Speichersystem der 27 enthält einen Abschnitt 2713, der einen Teil des Speichercontrollers 2702, einen Teil des Speichermoduls 2703 mit Speicherkomponenten 2716 und 2744 sowie einem Teil des Speichermoduls 2730 mit Speicherkomponenten 2731 und 2734 enthält. Das Speichersystem der 27 enthält einen anderen Abschnitt 2714, der einen anderen Teil des Speichercontrollers 2702, einen anderen Teil des Speichermoduls 2703 mit Speicherkomponenten 2717 und 2745 sowie einen anderen Teil des Speichermoduls 2730 mit Speicherkomponenten 2732 und 2735 enthält. Das Speichersystem der 27 enthält weiterhin noch einen anderen Abschnitt 2715, der noch einen anderen Teil des Speichercontroller 2702, noch einen anderen Teil des Speichermoduls 2703 mit Speicherkomponenten 2718 und 2746 sowie noch einen anderen Teil des Speichermoduls 2730 mit Speicherkomponenten 2733 und 2736 enthält.
  • Die Verwendung mehrerer Abschnitte und Reihen, die durch Verwendung mehrerer Module implementiert werden kann, erlaubt eine effiziente Verbindung zwischen einem Speichercontroller und mehreren Speicherkomponenten, während sie einen Abfall der Arbeitsleistung verhindert, der auftreten kann, wenn ein Datenbus oder ein Adressbus eine große Anzahl von Verbindungen hat. Mit einem separaten Datenbus für jeden Abschnitt kann die Anzahl von Verbindungen zu jedem Datenbus auf einem vernünftigen Wert gehalten werden. Die separaten Datenbusse können unabhängig voneinander verschiedene Signale transportieren. Ein Abschnitt kann eine oder mehrere Speicherkomponenten pro Modul enthalten. Beispielsweise kann ein Abschnitt eine Speicherkomponente jeder Reihe enthalten. Es ist zu beachten, dass der Begriff „Abschnitt" zur Bezeichnung des Teils eines Abschnitts ohne den Speichercontroller verwendet werden kann. Die Verwendung mehrerer Module erlaubt es, Speicherkomponenten gemäß ihrer Pfadlängen zum Speichercontroller zu organisieren. Selbst geringfügige Unterschiede solcher Pfadlängen können entsprechend der Organisation der Speicherkomponenten in Reihen gehandhabt werden. Die Organisation von Speicherkomponenten gemäß Reihen und Modulen erlaubt es Adress- und Steuersignalen, effizient verteilt zu werden, beispielsweise durch das Teilen (sharing) eines Adressbusses innerhalb einer Reihe oder eines Moduls.
  • In einem Ausführungsbeispiel kann ein Abschnitt so verstanden werden, dass er verschiedene Elemente beinhaltet, die an einen Datenbus gekoppelt sind. Als ein Beispiel können diese Elemente einen Teil einer Speichercontroller komponente, eine oder mehrere Speicherkomponenten auf einem Modul und, optional, eine oder mehrere Speicherkomponenten auf einem anderen Modul enthalten. In einem Ausführungsbeispiel kann eine Reihe so verstanden werden, dass sie verschiedene Speicherkomponenten enthält, die durch einen gemeinsamen Adressbus gekoppelt sind. Der gemeinsame Adressbus kann optional an eine Mehrzahl Reihen auf dem Modul oder an eine Mehrzahl Module gekoppelt sein. Der gemeinsame Adressbus kann eine Speichercontrollerkomponente mit jedem der Abschnitte einer Reihe in Aufeinanderfolge verbinden, wodurch es dem gemeinsamen Adressbus ermöglicht wird, von einem ersten Abschnitt der Reihe zu einem zweiten Abschnitt der Reihe und vom zweiten Abschnitt der Reihe zu einem dritten Abschnitt der Reihe geleitet zu werden. Eine solche Konfiguration kann das Leiten (Routing) des gemeinsamen Adressbusses vereinfachen.
  • Zu Diskussionszwecken wird zuerst eine vereinfachte Form eines Speichersystems diskutiert, um bestimmte Konzepte zu illustrieren, während ein komplexeres Speichersystem, das eine Vielzahl von Modulen und Reihen enthält, später in der Beschreibung diskutiert wird.
  • 1 ist ein Blockdiagramm, das ein Speichersystem mit einer einzelnen Reihe Speicherkomponenten illustriert, mit der ein Ausführungsbeispiel der Erfindung implementiert werden kann. Das Speichersystem 101 umfasst eine Speichercontrollerkomponente 102 und ein Speichermodul 103. Ein Adresstaktgeber 104 liefert ein Adresstaktsignal, das als Timingsignal dient, welches mit den Adress- und Steuersignalen assoziiert ist, die sich entlang des Adressbusses 107 ausbreiten. Der Adresstaktgeber 104 liefert sein Adresstaktsignal entlang eines Adresstaktleiters 109, der an die Speichercontrollerkomponente 102 und an das Speichermodul 103 gekoppelt ist. Die Adress- und Steuersignale werden manchmal einfach als die Adresssignale oder als der Adressbus bezeichnet. Da jedoch Steuersignale entsprechend einer mit Adresssignalen gemeinsamen Topologie geleitet werden können, sollten diese Begriffe, wenn sie benutzt werden, in dem Sinne verstanden werden, dass sie Adresssignale und/oder Steuersignale enthalten.
  • Ein Schreibtaktgeber 105 liefert ein Schreibtaktsignal, das als Timingsignal dient, welches mit den sich während Schreiboperationen entlang des Datenbusses 108 ausbreitenden Datensignalen assoziiert ist. Der Schreibtaktgeber 105 liefert sein Schreibtaktsignal entlang eines Taktleiters 110, der an die Speichercontrollerkomponente 102 und das Speichermodul 103 gekoppelt ist. Ein Lesetaktgeber 106 liefert ein Lesetaktsignal, das als Timingsignal dient, welches mit den während Leseoperationen entlang eines Datenbusses 108 sich ausbreitenden Datensignalen assoziiert ist. Der Lesetaktgeber 106 liefert sein Lesetaktsignal entlang eines Lesetaktleiters 111, der an die Speichercontrollerkomponente 102 und das Speichermodul 103 gekoppelt ist.
  • Eine Abschlusskomponente 120 ist an den Datenbus 108 nahe der Speichercontrollerkomponente 102 gekoppelt. Beispielsweise kann die Abschlusskomponente 120 in der Speichercontrollerkomponente 102 enthalten sein. Eine Abschlusskomponente 122 ist an den Datenbus 108 nahe dem Speichermodul 103 gekoppelt. Die Abschlusskomponente 121 ist vorzugsweise in dem Speichermodul 103 enthalten. Eine Abschlusskomponente 123 ist an den Schreibtaktleiter 110 nahe der Speicherkomponente 116 des Speichermoduls 103 gekoppelt. Die Abschlusskomponente 123 ist vorzugsweise in dem Speichermodul 103 enthalten. Eine Abschlusskomponente 124 ist an den Lesetaktleiter 111 nahe der Speichercontrollerkomponente 102 gekoppelt. Beispielsweise kann die Abschlusskomponente 124 in der Speichercontrollerkomponente 102 enthalten sein. Eine Abschlusskomponente 125 ist an den Lesetaktleiter 111 nahe einer Speicherkomponente 116 des Speichermoduls 103 gekoppelt. Die Abschlusskomponente 125 ist vorzugsweise in dem Speichermodul 103 enthalten. Die Abschlusskomponenten können aktive Bauelemente (beispielsweise Transistoren oder andere Halbleiterbauelemente) oder passive Bauelemente (beispielsweise Widerstände, Kondensatoren oder Spulen) verwenden. Die Abschusskomponenten können eine offene Verbindung verwenden. Die Abschlusskomponenten können in einer oder mehreren Speichercontrollerkomponenten oder in einer oder mehreren Speicherkomponenten enthalten sein, oder sie können separate Komponenten auf einem Modul oder auf einer Hauptplatine (Main Circuit Board) sein.
  • Das Speichermodul 103 enthält eine Reihe 112 mit Speicherkomponenten 116, 117 und 118. Das Speichermodul 103 ist so organisiert, dass jede Speicherkomponente einem Abschnitt entspricht. Die Speicherkomponente 116 entspricht einem Abschnitt 113, die Speicherkomponente 117 entspricht einem Abschnitt 114, und die Speicherkomponente 118 entspricht einem Abschnitt 115. Obwohl dies in 1 nicht dargestellt ist, wiederholen sich das spezifische Schaltungssystem, das mit dem Datenbus assoziiert ist, der Schreibtaktgeber und die damit assoziierten Leiter sowie der Lesetaktgeber und die damit assoziierten Leiter, die für den Fall des Abschnitts 113 illustriert sind, für jeden der anderen Abschnitte 114 und 115. Es versteht sich daher, dass, obwohl solche Schaltungssysteme der Einfachheit halber in 1 nicht illustriert sind, diese Schaltungssysteme vorzugsweise Abschnitt für Abschnitt im dargestellten Speichersystem enthalten sind.
  • Innerhalb des Speichersystems 103 ist der Adressbus 107 an jede der Speicherkomponenten 116, 117 und 118 gekoppelt. Der Adresstaktleiter 109 ist an jede der Speicherkomponenten 116, 117 und 118 gekoppelt. Am Abschluss des Adressbusses 107 innerhalb des Speichermoduls 103 ist eine Abschlusskomponente 119 an den Adressbus 107 gekoppelt. Am Abschluss des Adresstaktleiters 109 ist die Abschlusskomponente 122 an den Adresstaktleiter 109 gekoppelt.
  • Im Speichersystem der 1 verbindet jeder Datensignalleiter einen Steuerdatenbusknoten mit einem Speichergerätdatenbusknoten. Es ist jedoch für jeden Steuer- und Adresssignalleiter möglich, einen Steueradress-/Steuerbusknoten mit einem Adress-/Steuerbusknoten auf jeder Speicherkomponente der Speicherreihe zu verbinden. Dies ist aus mehreren Gründen möglich. Erstens leiten die Steuer- und Adresssignalleiter unidirektionale Signale (die Signalwellenfront breitet sich vom Controller zu den Speichergeräten aus). Es ist leichter, eine gute Signalintegrität auf einem unidirektionalen Signalleiter aufrechtzuerhalten als auf einem bidirektionalen Signalleiter (wie einem Datensignalleiter). Zweitens enthalten die Adress- und Datensignale die selbe Information für alle Speichergeräte. Die Datensignale werden für alle Speichergeräte unterschiedlich sein. Es ist anzumerken, dass es einige Steuersignale geben könnte (wie Schreibfreigabesignale (Write Enable Signals)), die für jedes Speichergerät verschieden sind – diese werden als unidirektionale Datensignale behandelt und für die Zwecke dieser Unterscheidung als Teil des Datenbusses betrachtet. Beispielsweise kann in manchen Fällen der Datenbus Datenleitungen entsprechend einer großen Anzahl von Bits enthalten, während in manchen Anwendungen möglicherweise nur ein Teil der auf dem Datenbus transportierten Bits für eine bestimmte Speicheroperation in den Speicher geschrieben wird. Beispielsweise kann ein 16-Bit Datenbus zwei Bytes Daten enthalten, wobei während einer bestimmten Speicheroperation nur eines der zwei Bytes in ein spezielles Speichergerät zu schreiben ist. In einem solchen Beispiel können zusätzliche Steuersignale entlang eines ähnlichen Pfades wie des vom Datensignal genommenen Pfades ausgegeben werden, die steuern, ob die Daten auf den Datenbitleitungen geschriebenen werden oder nicht. Diese durchlaufen das System entlang eines Pfades mit einer Verzögerung, die im allgemeinen an die der Daten angepasst ist, so dass die Verwendung der Steuersignale bei der Steuerung des Schreibens der Daten passend getimed ist. Drittens spart das Leiten der Adress- und Steuersignale zu allen Speichergeräten Pins auf der Controller- und Speichermodulschnittstelle.
  • Als ein Ergebnis werden die Steuer- und Adresssignale sich auf Drähten ausbreiten, die länger als die Drähte sind, die zur Ausbreitung der Datensignale verwendet werden. Dies ermöglicht es, in machen Fällen für die Datensignale eine höhere Signalisierungsrate als für die Steuer- und Adresssignale zu verwenden.
  • Um eine Beeinträchtigung der Arbeitsleistung des Speichersystems zu vermeiden, können die Adress- und Steuersignale gemäß einem Ausführungsbeispiel der Erfindung einem Wave-Pipelining unterworfen werden. Das Speichersystem ist konfiguriert, verschiedene für das Wave-Pipelining günstige Bedingungen zu erfüllen. Erstens sind zwei oder mehr Speicherkomponenten als eine Reihe organisiert. Zweitens sind einige oder alle Adress- und Steuersignale allen Speicherkomponenten der Reihe gemeinsam. Drittens breiten sich die gemeinsamen Adress- und Steuersignale mit geringer Verzerrung aus (beispielsweise gesteuerte Impedanz). Viertens breiten sich die gemeinsamen Adress- und Steuersignale mit einer geringer Intersymbol-Interferenz aus (beispielsweise einfacher oder doppelter Abschluss).
  • Wave-Pipelining tritt auf, wenn TBit < TDraht wobei der Timingparameter TDraht als die Zeitverzögerung für eine Wellenfront, die beim Controller erzeugt wird, für die Ausbreitung bis zur Abschlusskomponente am Ende des das Signal transportierenden Drahtes ist, und wobei der Timingparameter TBit definiert ist als das Zeitintervall zwischen aufeinanderfolgenden Stücken (Bits) von Information auf dem Draht. Solche Informationsstücke können einzelne Bits oder eine Mehrzahl Bits, die für eine simultane Übertragung kodiert sind, darstellen. Einem Wave-Pipelining unterworfene Signale auf Drähten sind einfallende Wellen, die von Empfängern abgetastet werden, die an den Draht angeschlossen sind. Dies bedeutet, dass das Abtasten im allgemeinen stattfinden wird, bevor die Wellenfront vom Ende der Übertragungsleitung (beispielsweise dem Draht) reflektiert worden ist.
  • Es ist auf mehrere Weisen möglich, die Anwendbarkeit der Erfindung von einer einzelnen Reihe auf mehrere Reihen von Speicherkomponenten zu erweitern. Erstens kann eine Vielzahl an Reihen von Speicherkomponenten auf einem Speichermodul implementiert werden. Zweitens kann eine Vielzahl Speichermodule in einem Speichersystem implementiert werden. Drittens können Datensignalleiter zu jedem Modul fest zugeordnet, geteilt oder „verkettet" sein. Das Verketten beinhaltet, einem Bus zu erlauben, durch ein Modul hindurchzuführen, wobei er mit den gewünschten Schaltkreisen auf dem Modul verbunden ist, während er beim Austritt aus diesem Modul anschließend in ein anderes Modul eintreten kann oder einen Abschluss erreichen kann. Beispiele einer solchen Verkettung von Leitern werden unten in den 29, 32 und 35 dargestellt und in zusätzlichen Details beschrieben. Viertens können gemeinsame Steuer- und Adresssignalleiter für jedes Modul fest zugeordnet, geteilt oder verkettet sein. Fünftens können Datensignalleiter abgeschlossene Übertragungsleitungen oder abgeschlossene Leitungsstücke (Stubs) auf jedem Modul sein. Für die vorliegende Diskussion wird angenommen, dass Übertragungsleitungen Signalleitungen darstellen, die ausreichende Längen haben, so dass Reflektionen und andere Übertragungsleitungscharakteristiken beachtet und berücksichtigt werden müssen, um eine korrekte Signalübertragung durch die Übertragungsleitungen sicherzustellen. Im Gegensatz dazu werden abgeschlossene Leitungsstücke als von derart begrenzter Länge angenommen, dass die parasitischen Reflektionen und andere Übertragungsleitungscharakteristiken, die mit solchen Leitungsstücken verbunden sind, im Allgemeinen ignoriert werden können. Sechstens können gemeinsame Steuer- und Adresssignalleiter abgeschlossene Übertragungsleitungen oder abgeschlossene Leitungsstücke auf jedem Modul sein. Indem man zulässt, dass die geteilten Adress- und Steuersignale einem Wave-Pipelining unterworfen werden, ermöglicht man eine Erhöhung ihrer Signalrate, wodurch die Arbeitsleistung des Speichersystems erhöht wird.
  • 2 ist ein Blockdiagramm, das Taktungsdetails für einen Abschnitt einer Reihe von Speicherkomponenten eines Speichersystems wie dem in 1 illustrierten darstellt, gemäß einem Ausführungsbeispiel der Erfindung. Die Speichercontrollerkomponente 102 enthält einen Adresssendeblock 201, der an den Adressbus 107 und an den Adresstaktleiter 109 gekoppelt ist. Die Speichercontrollerkomponente 102 enthält auch in jedem Abschnitt einen Datensendeblock 202 und einen Datenempfangsblock 203, die an den Datenbus 108 gekoppelt sind. Der Datensendeblock 202 ist an den Schreibtaktleiter 110 gekoppelt und der Datenempfangsblock 203 ist an den Lesetaktleiter 111 gekoppelt.
  • Innerhalb jeder Speicherkomponente, wie der Speicherkomponente 116, sind ein Adressempfangsblock 204, ein Datenempfangsblock 205 und ein Datensendeblock 206 vorgesehen. Der Adressempfangsblock 204 ist an den Adressbus 107 und den Adresstaktleiter 109 gekoppelt. Der Datenempfangsblock 205 ist an den Datenbus 108 und den Schreibtaktleiter 110 gekoppelt. Der Datensendeblock 206 ist an den Datenbus 108 und den Lesetaktleiter 111 gekoppelt.
  • Eine Ausbreitungsverzögerung 207, hier bezeichnet als tPD0, existiert entlang des Adressbusses 107 zwischen der Speichercontrollerkomponente 102 und dem Speichermodul 103. Eine Ausbreitungsverzögerung 208, hier bezeichnet als tPD1, existiert entlang des Adressbusses 107 innerhalb des Speichermoduls 103.
  • Die grundlegende Topologie, die in 2 dargestellt ist, hat mehrere Merkmale. Sie beinhaltet einen Speichercontroller. Sie beinhaltet ein einzelnes Speichermodul. Sie beinhaltet eine einzelne Reihe Speicherkomponenten. Sie beinhaltet einen in Abschnitte unterteilten Datenbus (DQ), wobei jeder Abschnitt von Drähten den Controller mit einer Speicherkomponente verbindet. Sie beinhaltet einen gemeinsamen Adress- und Steuerbus (Addr/Ctrl oder AC), der den Controller mit allen Speicherkomponenten verbindet. Quellen-synchrone Taktsignale fließen mit Daten-, Steuer- und Adresssignalen. Steuer- und Adresssignale sind unidirektional und fließen vom Controller zu den Speicherkomponenten. Datensignale sind bidirektional und können vom Controller zu den Speicherkomponenten (Schreiboperation) oder von den Speicherkomponenten zum Controller (Leseoperation) fließen. Es kann einige Steuersignale mit der selben Topologie wie Datensignale geben, die jedoch nur vom Controller zu den Speicherkomponenten fließen. Solche Signale können beispielsweise zur Maskierung von Schreibdaten bei Schreiboperationen verwendet werden. Diese können für die Zwecke der vorliegenden Diskussion als unidirektionale Datensignale behandelt werden. Die Daten-, Adress-, Steuer- und Taktdrähte verbreiten Signale mit geringer Verzerrung (beispielsweise entlang Leitern mit gesteuerter Impedanz). Die Daten-, Adress-, Steuer- und Taktdrähte verbreiten Signale mit geringer Intersymbol-Interferenz (beispielsweise gibt es einen einzelnen Abschluss für unidirektionale Signale und einen doppelten Abschluss für bidirektionale). Diese Merkmale werden zur Aufrechterhaltung der Klarheit aufgelistet. Die Erfindung ist nicht auf eine Ausübung mit diesen Merkmalen begrenzt und kann ausgeübt werden, um andere Systemtopologien zu beinhalten.
  • In 2 gibt es ein zweidimensionales Koordinatensystem, das auf der Abschnittsnummer der Datenbusse und der Speicherkomponenten (S={0,1,...NS}) und der Modulnummer (M={0,1}) basiert. Hier beziehen sich eine Abschnittsnummer mit dem Wert „0" und eine Modulnummer mit dem Wert „0" auf den Controller. Dieses Koordinatensystem ermöglicht es, Signale an verschiedenen Positionen eines Drahtes zu benennen. Dieses Koordinatensystem wird auch eine Erweiterung auf Topologien mit mehr als einer Speicherreihe oder einem Speichermodul ermöglichen.
  • 2 zeigt weiterhin drei Taktquellen (Adresstaktgeber 104, der das AClk-Signal erzeugt, Schreibtaktgeber 105, der das WClk-Signal erzeugt, und Lesetaktgeber 106, der das RClk-Signal erzeugt), die die Taktungsreferenzsignale für die drei Informationstransfer-Typen erzeugen. Jede dieser Taktquellen speist einen Taktdraht, der parallel zu demjenigen Signalbus verläuft, mit dem er assoziiert ist. Vorzugsweise ist die Positionierung der Taktquellen innerhalb des Systems derart, dass die physikalische Position der Taktleitung, bei der die Taktquelle das entsprechende Taktsignal einspeist, in der Nähe des entsprechenden Einspeisungspunktes für die Busleitung liegt, so dass die Ausbreitung des Taktes für einen bestimmten Bus im Allgemeinen die Ausbreitung der entsprechenden Information auf dem assoziierten Bus verfolgt. Beispielsweise ist die Positionierung des Adresstaktgebers (Aclk-Taktgeber 104) vorzugsweise nahe der physikalischen Position, wo die Adresssignale in den Adressbus 107 eingespeist werden. In einer solchen Konfiguration wird der Adresstakt bei der Ausbreitung durch die Schaltung ähnliche Verzögerungen erfahren wie die Verzögerungen, die die Adresssignale erfahren, welche entlang eines Busses mit im Allgemeinen derselben Wegführung (Route) wie die Adresstaktsignalleitung erfahren.
  • Das Taktsignal für jeden Bus steht in Beziehung mit der maximalen Bitrate der Signale auf dem assoziierten Bus. Diese Beziehung ist typischerweise eine ganze Zahl oder ein Verhältnis ganzer Zahlen. Beispielsweise kann die maximale Datenrate das doppelte der Frequenz der Datentaktsignale betragen. Es ist auch möglich, dass eine oder zwei der Taktquellen „virtuelle" Taktquellen sein können; die drei Taktquellen werden in einem Verhältnis eines Bruches ganzer Zahlen (N/M) zueinander stehen, und jede von ihnen kann aus einer der beiden anderen synthetisiert werden, indem Techniken einer phasenstarren Regelschleife (Phase-Locked-Loop, PLL) zur Einstellung der Frequenz und Phase verwendet werden. Virtuelle Taktquellen bilden ein Mittel, durch das die Anzahl der tatsächli chen Taktquellen innerhalb der Schaltung minimiert werden kann. Beispielsweise könnte ein WClk-Takt von einem Adresstakt (AClk) abgeleitet werden, der von einem Speichergerät empfangen wird, so dass das Speichergerät einen WClk-Takt nicht tatsächlich von einer externen Quelle empfangen muss. Obwohl das Speichergerät also nicht tatsächlich einen eindeutig individuell erzeugten WClk-Takt empfängt, ist der aus dem AClk-Takt erzeugte WClk-Takt funktionell äquivalent. Die Phase eines synthetisierten Taktsignals wird so angepasst, dass sie dieselbe ist, wie wenn sie von einer Taktquelle an den gezeigten Positionen erzeugt worden wäre.
  • Jedes der gezeigten Taktsignale kann alternativ ein nicht-periodisches Signal sein (beispielsweise ein Strobe-Steuersignal), welches nur dann angelegt wird, wenn Information auf dem assoziierten Bus vorliegt. Wie oben im Zusammenhang mit den Taktquellen beschrieben wurde, sind die nicht-periodischen Signalquellen in einem physikalischen Sinn in der Nähe der jeweiligen Busse angeordnet, denen sie entsprechen, so dass die Ausbreitungsverzögerungen, die mit den nicht-periodischen Signalen verbunden sind, im Allgemeinen den Ausbreitungsverzögerungen der Signale auf den entsprechenden Bussen gleichen.
  • 3 ist ein Timingdiagramm, das Adress- und Steuertiming-Notationen illustriert, die in Timingdiagrammen anderer Figuren verwendet werden. In 3 tritt eine ansteigende Flanke 302 des AClk-Signals 301 zu einem Zeitpunkt 307 während der Übertragung von Adressinformation ACa 305 auf. Eine ansteigende Flanke 303 des AClk-Signals tritt zu einem Zeitpunkt 308 während der Übertragung von Adressinformation ACb 306 auf. Der Zeitpunkt 308 tritt eine Zeitspanne tCC vor dem Zeitpunkt 309 der nächsten ansteigenden Flanke 304 des AClk-Signals 301 auf. Die Zeitspanne tCC stellt eine Zyklusdauer einer Taktschaltung einer Speichercontrollerkomponente dar. Gestrichelte Linien in den Timingdiagrammen dienen zur Darstellung von zeitlichen Abschnitten eines Signals, das mit Adressinformation oder Datuminformation koinzident ist. Beispielsweise enthält das AClk-Signal 301 einen zeitlichen Abschnitt, der der Gegenwart von Adressinformation ACa 305 entspricht, und einen anderen zeitlichen Abschnitt, der der Gegenwart von Adressinformation ACb 306 entspricht. Adressinformation kann über einen Adressbus als ein Adresssignal übertragen werden.
  • Wenn ein Bit pro Draht pro tCC auftritt, wird ein Adressbit 311 während eines Zyklus 310 übertragen. Wenn zwei Bits pro Draht pro tCC auftreten, werden Adressbits 313 und 314 während eines Zyklus 312 übertragen. Wenn vier Bits pro Draht pro tCC auftreten, werden Adressbits 316, 317, 318 und 319 während eines Zyklus 315 übertragen. Wenn 8 Bits pro Draht pro tCC auftreten, werden Adressbits 321, 322, 323, 324, 325, 326, 327 und 328 während eines Zyklus 320 übertragen. Es ist zu beachten, dass die Einspeisungs- und Abtastpunkte für jedes Bitfenster um einen Offset verzögert oder vorgezogen sein können (bis zu einer Bitdauer, die tCC/NAC beträgt), in Abhängigkeit von den verwendeten Treiber- und Abtastschaltungstechniken. Die Parameter NAC und NDQ repräsentieren jeweils die Anzahl Bits pro tCC für die Adress/Steuer- bzw. Datendrähte. In einem Ausführungsbeispiel wird ein festes Offset verwendet. Ein Offset zwischen den Einspeise-/Abtastpunkten und den Bitfenstern sollte zwischen der einspeisenden und der abtastenden Komponente konsistent sein. Vorzugsweise ist in einem bestimmten System jedes Offset, das mit dem Einspeisepunkt für einen Bus assoziiert ist, im ganzen System konsistent. In ähnlicher Weise sollte jedes vereinbarte Abtast-Offset in Bezug auf den Bus ebenso konsistent sein. Wenn beispielsweise erwartet wird, dass Daten an einem Punkt eingespeist werden, der im Allgemeinen einer ansteigenden Flanke eines in Bezug stehenden Taktsignals für eine Datenbusleitung entspricht, wird dieses vereinbarte Offset (oder dessen Fehlen) vorzugsweise in konsistenter Weise für alle Datenleitungen verwendet. Es ist zu bemerken, dass das Offset, welches mit dem Einspeisen von Daten auf den Bus assoziiert ist, vollständig anders sein kann, als das, welches mit dem Abtasten von Daten, die durch den Bus transportiert werden, verbunden ist. In Fortsetzung des obigen Beispiels kann also der Abtastpunkt für Daten, die im Allgemeinen mit einer ansteigenden Flanke koinzident eingespeist werden, 180 Grad außer Phase in Bezug auf die ansteigende Flanke sein, so dass gültige Fenster der Daten vom Abtastpunkt besser getroffen werden kann.
  • 4 ist ein Timingdiagramm, das Datentiming-Notationen illustriert, die in Timingdiagrammen anderer Figuren verwendet werden. In 4 tritt eine ansteigende Flanke 402 eines WClk-Signals 401 zu einem Zeitpunkt 407 während einer Übersendung von Schreibdatuminformation Da 405 auf. Eine ansteigende Flanke 403 des WClk-Signals 401 tritt zu einem Zeitpunkt 408 auf. Eine ansteigende Flanke des WClk-Signals 401 tritt zu einem Zeitpunkt 409 während einer Übersendung von Lesedatuminformation Qb 406 auf. Der Zeitpunkt 407 ist vom Zeitpunkt 408 eine Zeitspanne tCC entfernt, und der Zeitpunkt 408 ist vom Zeitpunkt 409 eine Zeitspanne tCC entfernt. Die Zeitspanne tCC stellt die Dauer eines Taktzyklus dar. Ein RClk-Signal 410 enthält eine ansteigende Flanke 411 und eine ansteigende Flanke 412. Diese ansteigenden Flanken können als Referenzen für die Taktzyklen des RClk-Signals 410 verwendet werden. Beispielsweise erfolgt die Übertragung der Schreibdatuminformation Da 405 während eines Taktzyklus des RClk-Signals 410; der die ansteigende Flanke 411 enthält, und die Übertragung der Lesedatuminformation Qb 406 erfolgt während eines Taktzyklus des RClk-Signals 410, der die ansteigende Flanke 412 enthält. Wie für einen Durchschnittfachmann ersichtlich, kann die Taktzykluszeit, die mit dem Adresstaktgeber assoziiert ist, sich von der Taktzykluszeit unterscheiden, die mit den Lese- und/oder Schreibtaktgebern assoziiert ist.
  • Schreibdatuminformation ist ein Informationselement, das geschrieben wird und über einen Datenbus als ein Schreibdatensignal übertragen werden kann. Lesedatuminformation ist ein Informationselement, das gelesen wird und über einen Datenbus als ein Lesedatensignal übertragen werden kann. Ersichtlich wird die Notation Dx zur Darstellung von Schreibdatuminformation x verwendet, während die Notation Qy zur Darstellung von Lesedatuminformation y verwendet wird. Signale, ob Adresssignale, Schreibdatensignale, Lesedatensignale oder andere Signale können an einen Leiter oder Bus für eine Zeitperiode angelegt werden, die als ein elementares Zeitintervall bezeichnet wird. Ein solches elementares Zeitintervall kann mit einem Ereignis assoziiert sein, das auf einem Leiter oder einem Bus geschieht, der ein Timingsignal transportiert, wo ein solches Ereignis als ein Timingsignalereignis bezeichnet werden kann. Zu den Beispielen eines solchen Timingsignals zählen ein Taktsignal, ein Timingsignal, das von einem anderen Signal oder einem Informationselement abgeleitet ist, und jedes andere Signal, von dem ein Timing abgeleitet werden kann. In einer Speicherzugriffsoperation kann die Zeitspanne von dem Beginn des Anlegens eines Adresssignals an einen Adressbus bis zum Beginn des Anlegens eines Datensignals, das mit diesem Adresssignal korrespondiert, an einen Datenbus als ein Zugriftszeitintervall bezeichnet werden.
  • Wenn pro tCC ein Bit pro Draht auftritt, wird ein Datumbit 415 während eines Zyklus 414 übertragen. Wenn pro tCC zwei Bits pro Draht auftreten, werden Datenbits 417 und 418 während eines Zyklus 416 übertragen. Wenn pro tCC vier Bits pro Draht auftreten, werden Datenbits 420, 421, 422 und 423 während eines Zyklus 419 übertragen. Wenn pro tCC acht Bits pro Draht auftreten, werden Datenbits 425, 426, 427, 428, 429, 430, 431 und 432 während eines Zyklus 424 übertragen. Es ist zu beachten, dass die Einspeise- und Abtastpunkte für jedes Bitfenster um ein Offset (bis zu einer Bitdauer, die tCC/NDQ beträgt) verzögert oder vorgezogen werden können, in Abhängigkeit von den verwendeten Treiber- und Abtastschaltungstechniken. In einem Ausführungsbeispiel wird ein festes Offset verwendet. Ein Offset zwischen den Einspeise-/Abtastpunkten und den Bitfenstern sollte zwischen der einspeisenden und abtastenden Komponente konsistent sein. Wenn beispielsweise das Datenfenster als so positioniert angenommen wird, dass Daten an der Anstiegsflanke des betreffenden Taktsignals am Controller abgetastet werden, sollte eine ähnliche Konvention am Speichergerät verwendet werden, so dass angenommen wird, das ebenfalls gültige Daten zur ansteigenden Flanke des entsprechenden Taktes an dieser Position innerhalb der Schaltung vorliegen.
  • Wenn pro tCC ein Bit pro Draht auftritt, wird ein Datumbit 434 während eines Zyklus 433 übertragen. Wenn pro tCC zwei Bits pro Draht auftreten, werden Datenbits 436 und 437 während eines Zyklus 435 übertragen. Wenn pro tCC vier Bits pro Draht auftreten, werden Datenbits 439, 440, 441 und 442 während eines Zyklus 438 übertragen. Wenn pro tCC acht Bits pro Draht auftreten, werden Datenbits 444, 445, 446, 447, 448, 449, 450 und 451 während eines Zyklus 443 übertragen. Es ist zu beachten, dass die Einspeise- und Abtastpunkte für jedes Bitfenster um ein Offset (bis zu einer Bitdauer, die tCC/NDQ beträgt) verzögert oder vorgezogen werden können, in Abhängigkeit verwendeten von den Treiber- und Abtastschaltungstechniken. In einem Ausführungsbeispiel wird ein festes Offset verwendet. Ein Offset zwischen den Einspeise-/Abtastpunkten und den Bitfenstern sollte zwischen der einspeisenden und abtastenden Komponente konsistent sein. Wie oben festgestellt ist es bevorzugt, dass in einem bestimmten System jedes mit dem Einspeisepunkt oder dem Abtastpunkt für einen Bus assoziierte Offset im gesamten System konsistent ist.
  • Die Spaltenzyklusdauer der Speicherkomponente stellt das Zeitintervall dar, das benötigt wird, um aufeinanderfolgende Spaltenzugriffsoperationen (Lese- oder Schreiboperationen) durchzuführen. Im gezeigten Beispiel sind die AClk-, RClk- und WClk-Taktsignale mit einer Zyklusdauer gleich der Spaltenzyklusdauer dargestellt. Wie für einen Durchschnittsfachmann ersichtlich, kann sich die Zyklusdauer der im System verwendeten Taktsignale von der Spaltenzyklusdauer in anderen Ausführungsbeispielen unterscheiden.
  • Alternativ könnte jeder der Takte eine Zyklusdauer haben, die sich von der Spaltenzyklusdauer unterscheidet. Der Takt mit angemessener Geschwindigkeit für das Senden oder Empfangen von Signalen auf einem Bus kann stets aus dem Takt synthetisiert werden, der auf dem Bus verteilt wird, solange zwischen dem verteilten Takt und dem synthetisierten Takt ein ganzzahliges oder gebrochen ganzzahliges Verhältnis gegeben ist. Wie bereits früher erwähnt, kann jeder der erforderlichen Takte aus jedem der verbreiteten Takte der anderen Busse synthetisiert werden.
  • Für die vorliegende Diskussion wird im folgenden angenommen, dass auf jedem Draht ein einzelnes Bit während jedem Intervall tCC abgetastet oder eingespeist wird, um die Timingdiagramme so einfach wie möglich zu halten. Die Anzahl Bits, die auf jedem Signaldraht während jedem Intervall tCC übertragen wird, kann jedoch verändert werden. Die Parameter NAC und NDQ stellen die Anzahl Bits pro tCC für die Adress-/Steuer- bzw. Datendrähte dar. Der verbreitete oder synthetisierte Takt wird hochmultipliziert, um die geeigneten Taktflanken zum Einspeisen und Abtasten der Vielzahl von Bits pro tCC zu erzeugen. Es ist zu beachten, dass die Einspeise- und Abtastpunkte für jedes Bitfenster um ein Offset (das bis zu einer Bitdauer, die gleich tCC/NAC oder tCC/NDQ beträgt) verzögert oder vorgezogen sein können, in Abhängigkeit von den verwendeten Treiber- und Abtastschaltungstechniken. In einem Ausführungsbeispiel wird ein festes Offset verwendet. Ein Offset zwischen den Einspeise-/Abtastpunkten und den Bitfenstern sollte zwischen der einspeisenden und abtastenden Komponente konsistent sein. Noch einmal wird die obige Feststellung wiederholt, dass es bevorzugt ist, dass in einem bestimmten System jedes mit dem Einspeisepunkt oder Abtastpunkt für einen Bus verbundene assoziierte Offset im gesamten System konsistent ist.
  • 5 ist ein Timingdiagramm, das das Timing von Signalen illustriert, die über den Adress- und Steuerbus (Addr/Ctrl oder ACS,M) kommuniziert werden, gemäß einem Ausführungsbeispiel der Erfindung. Dieser Bus wird von einem Taktsignal AClkS, M begleitet, das im wesentlichen den selben Drahtpfad wie der Bus durchläuft. Die tiefgestellten Buchstaben (S, M) kennzeichnen das Bus- oder Taktsignal in einem bestimmten Modul M oder einem bestimmten Abschnitt S. Der Controller ist als Abschnitt 0 definiert.
  • Die Wellenform für ein AClk-Taktsignal 501 beschreibt das Timing des AClk-Taktsignals an der Speichercontrollerkomponente. Eine ansteigende Flanke 502 des AClk-Taktsignals 501 tritt an einem Zeitpunkt 510 auf und ist mit der Übertragung einer Adressinformation ACa 518 verbunden. Eine ansteigende Flanke 503 des AClk-Taktsignals 501 tritt an einem Zeitpunkt 511 auf und ist mit der Übertragung einer Adressinformation ACb 519 verbunden.
  • Die Wellenform für ein AClk-Taktsignal 520 beschreibt das Timing des AClk-Taktsignals an einer Speicherkomponente, die im Abschnitt 1 angeordnet ist. Das AClk-Signal 520 ist um eine Verzögerungszeit tPD0 gegenüber dem Signal 501 verzögert. Beispielsweise ist die ansteigende Flanke 523 des Signals 520 um eine Verzögerungszeit tPD0 gegenüber der Flanke 502 des Signals 501 verzögert. Die Adressinformation ACa 537 ist mit der ansteigenden Flanke 523 des Signals 520 assoziiert. Die Adressinformation ACb 538 ist mit der ansteigenden Flanke 525 des Signals 520 verbunden.
  • Die Wellenform eines AClk-Taktsignals 539 beschreibt das Timing des AClk-Taktsignals an der Speicherkomponente, die im Abschnitt NS angeordnet ist. Das AClk-Signal 539 ist um eine Verzögerungszeit tPD1, gegenüber dem Signal 520 verzögert. Beispielsweise ist die ansteigende Flanke 541 des Signals 539 um eine Verzögerungszeit tPD1, gegenüber der Flanke 523 des Signals 520 verzögert. Die Adressinformation ACa 548 ist mit der ansteigenden Flanke 541 des Signals 539 assoziiert. Die Adressinformation ACb 549 ist mit der ansteigenden Flanke 542 des Signals 539 assoziiert.
  • Das Taktsignal AClk ist mit einer Zyklusdauer dargestellt, die der Spaltenzyklusdauer entspricht. Wie zuvor erwähnt könnte es auch eine kürzere Zyklusdauer haben, solange die Frequenz und Phase die Randbedingung erfüllen, dass es dem Controller und den Speicherkomponenten möglich ist, die erforderlichen Timingzeitpunkte zum Abtasten und Einspeisen der Information auf dem Bus zu erzeugen. Ebenso ist der Bus mit einem einzelnen pro Draht und pro tCC-Intervall übertragenen Bit dargestellt. Wie zuvor erwähnt könnten mehr als ein Bit in jedem tCC-Intervall übertragen werden, weil der Controller und die Speicherkomponenten in der Lage sind, die erforderlichen Timingzeitpunkte für das Abtasten und Einspeisen der Information auf dem Bus zu erzeugen. Es ist zu beachten, dass der tatsächliche Einspeisepunkt für den Bus (der Zeitpunkt, an dem Datensignale, Adresssignale und/oder Steuersignale an den Bus angelegt werden) ein Offset von dem gezeigten haben kann (relativ zu den ansteigenden und abfallenden Flanken des Taktes) – dies wird vom Design und den Sende- und Empfangsschaltungen im Controller und den Speicherkomponenten abhängen. In einem Ausführungsbeispiel wird ein festes Offset verwendet. Ein Offset zwischen den Einspeise-/Abtastpunkten und den Bitfenstern sollte zwischen der einspeisenden Komponente und der abtastenden Komponente konsistent sein. Wie oben wiederholt erläutert, ist es bevorzugt, dass in einem bestimmten System jedes Offset, das mit dem Einspeisepunkt oder dem Abtastpunkt für einen Bus assoziiert ist, im gesamten System konsistent ist.
  • Es ist bei 5 zu beachten, dass es eine Verzögerung tPD0 im Takt AClkS,M und im Bus ACS,M gibt, während sie vom Controller zum ersten Abschnitt fortschreiten. Wie angedeutet, ist das AClk-Signal 520 zeitlich und räumlich gegenüber dem AClk-Signal 501 verschoben. Es ist auch zu beachten, dass es eine zweite Verzögerung tPD1 im Takt AClkS,M und im Bus ACS,M gibt, während diese vom ersten Abschnitt zum letzten Abschnitt NS fortschreiten. Es wird eine Verzögerung von tPD1/(NS – 1) geben, während der Takt und der Bus von Abschnitt zu Abschnitt wandern. Es ist zu beachten, dass diese Rechnung einen im Allgemeinen gleichen Abstand zwischen den Abschnitten zugrunde legt, und dass die Verzögerung nicht mit dieser Formel übereinstimmen wird, wenn solche physikalischen Charakteristiken im System nicht vorliegen. Wie angedeutet, wird also das AClk-Signal 539 zeitlich und räumlich gegenüber dem AClk-Signal 520 verschoben. Im Ergebnis wird jede der NS-Speicherkomponenten den Adress- und Steuerbus an geringfügig unterschiedlichen Zeitpunkten abtasten.
  • 6 ist ein Timingdiagramm, das das Timing von Signalen illustriert, die über den Datenbus (DQS,M) kommuniziert werden, gemäß einem Ausführungsbeispiel der Erfindung. Dieser Bus wird von zwei Taktsignalen RClkS,M und WClkS,M begleitet, die im wesentlichen den selben Drahtpfad durchlaufen wie der Bus. Die Indizes (S, M) kennzeichnen den Bus oder das Taktsignal an einem bestimmten Modul M und einem bestimmten Abschnitt S. Der Controller ist definitionsgemäß Modul 0. Die zwei Takte wandern in entgegengesetzten Richtungen. WClkS,M begleitet die Schreibdaten, die vom Controller gesendet und von den Speicherkomponenten empfangen werden. RClkS,M begleitet die Lesedaten, die von den Speicherkomponenten gesendet werden und vom Controller empfangen werden. Im beschriebenen Beispiel besetzen Lesedaten (gekennzeichnet mit „Q") und Schreibdaten (gekennzeichnet mit „D") nicht gleichzeitig den Datenbus. Es ist zu beachten, dass dies in anderen Ausführungsbeispielen nicht der Fall sein muss, wo ein zusätzliches Schaltungssystem vorgesehen ist, um additive Signalisierung zu berücksichtigen, so dass eine Vielzahl Wellenformen, die über den selben Leiter transportiert werden, unterschieden und aufgelöst werden kann.
  • Die Wellenform des WClk-Taktsignals 601 veranschaulicht das Timing des WClk-Taktsignals an der Speichercontrollerkomponente. Eine ansteigende Flanke 602 tritt an einem Zeitpunkt 610 auf und ist mit Schreibdatuminformation Da 618 assoziiert, die im Abschnitt 1 des Moduls 0 vorliegt. Eine ansteigende Flanke 607 tritt an einem Zeitpunkt 615 auf und ist mit Schreibdatuminformation Dd 621 assoziiert, die am Abschnitt 1 des Moduls 0 vorliegt. Eine ansteigende Flanke 608 tritt an einem Zeitpunkt 616 auf und ist mit einem Schreibdatum De 622 assoziiert, das am Abschnitt 1 des Moduls 0 vorliegt.
  • Die Wellenform des RClk-Taktsignals 623 veranschaulicht das Timing des RClk-Taktsignals an der Speichercontrollerkomponente (am Modul 0). Eine ansteigende Flanke 626 ist mit einer Lesedatuminformation Qb 619 assoziiert, die an der Speichercontrollerkomponente (am Abschnitt 1 des Moduls 0) vorliegt. Eine ansteigende Flanke ist mit einer Lesedatuminformation Qc 620 verbunden, die an der Speichercontrollkomponente (am Abschnitt 1 des Moduls 0) vorliegt.
  • Die Wellenform eines WClk-Taktsignals 632 veranschaulicht das Timing des WClk-Taktsignals an der Speicherkomponente am Abschnitt 1 des Moduls 1. Eine ansteigende Flanke 635 ist mit einer Schreibdatuminformation Da 649 assoziiert, die am Abschnitt 1 des Moduls 1 vorliegt. Eine ansteigende Flanke 645 ist mit einer Schreibdatuminformation Dd 652 assoziiert, die am Abschnitt 1 des Moduls 1 vorliegt. Eine ansteigende Flanke 647 ist mit Schreibdatuminformation De 653 assoziiert, die am Abschnitt 1 des Moduls 1 vorliegt.
  • Die Wellenform eines RClk-Taktsignals 654 veranschaulicht das Timing des RClk-Taktsignals an der Speicherkomponente des Abschnitt 1 von Modul 1. Eine ansteigende Flanke 658 ist mit einer Lesedatuminformation Qb 650 assoziiert, die am Abschnitt 1 des Moduls 1 vorliegt. Eine ansteigende Flanke 660 ist mit Lesedatuminformation Qd 651 assoziiert, die am Abschnitt des Moduls 1 vorliegt.
  • Die Taktsignale sind mit einer Zyklusdauer dargestellt, die tCC entspricht. Wie zuvor erwähnt könnten sie auch eine kürzere Zyklusdauer haben, solange die Frequenz und Phase die Randbedingung erfüllen, dass es dem Controller und den Speicherkomponenten möglich ist, die erforderlichen Timingzeitpunkte zum Abtasten und Einspeisen der Information auf dem Bus zu erzeugen. Ebenso ist der Bus mit einem einzelnen Bit pro Draht dargestellt. Wie zuvor erwähnt könnten mehr als ein Bit in jedem tCC-Intervall übertragen werden, weil der Controller und die Speicherkomponenten in der Lage sind, die erforderlichen Timingzeitpunkte für das Abtasten und Einspeisen der Information auf dem Bus zu erzeugen. Es ist zu beachten, dass der tatsächliche Einspeisepunkt für den Bus ein Offset von dem Gezeigten haben kann (relativ zu den ansteigenden und abfallenden Flanken des Taktes) – dies wird vom Design und den Sende- und Empfangsschaltungen im Controller und den Speicherkomponenten abhängen. In einem Ausführungsbeispiel wird ein festes Offset verwendet. Ein Offset zwischen den Einspeise-/Abtastpunkten und den Bitfenstern sollte zwischen der einspeisenden Komponente und der abtastenden Komponente konsistent sein.
  • Es ist bei 6 zu beachten, dass es eine Verzögerung tPD2 im Takt WClkS, M und Bus DQS, M (mit den Schreibdaten) gibt, während sie vom Controller zu den Abschnitten des ersten Moduls fortschreiten. Daher ist das WClk-Taktsignal 632 zeitlich und räumlich gegenüber dem WClk-Taktsignal 601 verschoben. Es ist auch zu beachten, dass es eine annähernd gleiche Verzögerung tPD2 im Takt RClkS, M und Bus DQS,M (mit den Lesedaten) gibt, während sie von den Abschnitten des ersten Moduls zum Controller fortschreiten. Daher ist das RClk-Taktsignal 623 zeitlich und räumlich gegenüber dem RClk-Taktsignal 654 verschoben.
  • Als ein Ergebnis müssen die Controller- und die Speicherkomponenten ihre Sendelogik koordiniert haben, damit sie nicht versuchen, die Schreibdaten und Lesedaten zum selben Zeitpunkt einzuspeisen. Das Beispiel der 6 zeigt eine Sequenz, in der es Schreib-Lese-Lese-Schreib-Schreib-Transfers gibt. Man kann sehen, dass Lese-Lese- und Schreib-Schreib-Transfers in aufeinanderfolgenden tCC-Intervallen vorgenommen werden können, weil die Daten in beiden Intervallen in dieselbe Richtung wandern. Jedoch werden Lücken (Blasen) an den Schreib-Lese- und Lese-Schreibübergängen eingefügt, so dass ein Treiber nur in Betrieb geht, wenn die im vorhergehenden Intervall eingespeisten Daten nicht mehr auf dem Bus sind (sie sind von den Abschlusskomponenten an einem der Enden der Busdrähte absorbiert worden).
  • In 6 sind der Lesetakt RClkS ,M und der Schreibtakt WClkS,M an jeder Speicherkomponente in Phase (die relative Phase dieser Takte an jeder Speicherkomponente wird jedoch gegenüber den anderen Speicherkomponenten unterschiedlich sein – dies wird später erläutert, wenn das Timing des Gesamtsystems diskutiert wird). Es ist zu beachten, dass diese Wahl einer Phasenanpassung eine von mehreren möglichen Alternativen bildet, die hätten verwendet werden können. Einige der anderen Alternativen werden später beschrieben.
  • Als ein Ergebnis der Anpassung der Lese- und Schreibtakte an jeder Speicherkomponente (Abschnitt) werden die tCC-Intervalle mit den Lesedaten Qb 650 scheinbar unmittelbar den tCC-Intervallen mit den Schreibdaten Da 649 an den Speicherkomponenten folgen (6 unten). Jedoch wird es eine Lücke von 2·tPD2 zwischen dem Lesedatenintervall Qb 619 und dem Schreibdatenintervall Da 618 am Controller geben (6 oben). Es wird eine zweite Lücke von (2·tCC – 2·tPD2) zwischen den Lesedaten Qc 620 und den Schreibdaten Dd 621 am Controller geben. Es wird eine Lücke von (2·tCC) zwischen den Lesedaten Qc 651 und den Schreibdaten Dd 621 geben. Zu beachten ist, dass die Summe der Lücken an den Speicherkomponenten und am Controller 2·tCC betragen wird.
  • Als nächstes wird das Timing des Gesamtsystems beschrieben. Das Beispielsystem richtet die Phasen der AClkS, M-, RClkS, M- und WClkS, M-Takte an jeder Speicherkomponente aus (die Abschnittsnummer variiert von 1 bis NS, und die Modulnummer ist bei 1 fest). Dies hat den Nutzen, dass jeder Speicherkomponente erlaubt wird, in einer einzigen Taktdomäne zu operieren, was jegliche Domänenüberschreitungsprobleme vermeidet. Da der Adress- und Steuertakt AClkS,M an jeder Speicherkomponente vorbeifließt, wird die Taktdomäne jedes Speicherabschnitts geringfügig gegenüber den angrenzenden Abschnitten verschoben sein. Die Kosten der Entscheidung für diese Phasengebung sind, dass der Controller die Schreib- und Lesetakte für jeden Abschnitt auf unterschiedliche Phasenwerte anpassen muss – das bedeutet, dass es 1 + (2·NS)Taktdomänen im Controller geben wird, und dass ein effizientes Überschreiten dieser Taktdomänen sehr wichtig wird. Andere Phasen-Randbedingungen sind möglich und werden später diskutiert.
  • 7 ist ein Timingdiagramm, das das Systemtiming an einer Speichercontrollerkomponente illustriert, gemäß einem Ausführungsbeispiel der Erfindung. Wie zuvor sendet der Controller eine Schreib-Lese-Lese-Schreib-Operationssequenz auf den Steuer- und Adressbus AClkS0,M1. Die Da-Schreibdatuminformation wird auf den WClkS1,M0- und WClkSNs,M0-Bussen gesandt, so dass sie vorzugsweise an der Speicherkomponente jedes Abschnitts einen Zyklus nach der Adress- und Steuerinformation ACa eintrifft. Dies wird realisiert, in dem die Phase des WClkS1,M0-Taktes im Allgemeinen äquivalent zu (tPD0 – tPD2) relativ zur Phase des AClkS0,M0-Taktes gemacht wird (positiv bedeutet später, negativ bedeutet früher). Dies wird sie veranlassen, an der Speicherkomponente des ersten Abschnitts des ersten Moduls in Phase zu sein. In ähnlicher Weise wird die Phase des WClkSNs,M0-Taktes so eingestellt, dass sie im Allgemeinen äquivalent zu (tPD0 + tPD1 – tPD2) relativ zur Phase des AClkS0,M1-Taktes ist. Zu beachten ist, dass vorzugsweise eine gewisse Toleranz in das System eingebaut ist, so dass die Phasenanpassung des Taktes zur Annäherung an die Ausbreitungsverzögerungen geringfügig von der gewünschten Anpassung abweichen kann und trotzdem einen erfolgreichen Systembetrieb ermöglicht.
  • In ähnlicher Weise ist die Phase des RClkS1,M0-Taktes so eingestellt, dass sie im Allgemeinen äquivalent zu (tPD0 + tPD2) relativ zur Phase des AClkS0,M1-Taktes ist. Dies wird sie veranlassen, an der Speicherkomponente des letzten Abschnitts des ersten Moduls in Phase zu sein. In ähnlicher Weise ist die Phase des RClkSNs,M0-Taktes entsprechend dem Ausdruck (tPD0 + tPD1 + tPD2) relativ zur Phase des AClkS0,M1-Taktes angepasst, um den RClkSNs,M0-Takt und den AClkS0,M1-Takt zu veranlassen, an der Speicherkomponente des letzten Abschnitts des ersten Moduls in Phase zu sein.
  • Die Wellenform des AClk-Taktsignals 701 veranschaulicht das AClk-Taktsignal an der Speichercontrollerkomponente, die als im Abschnitt 0 befindlich gekennzeichnet ist. Eine ansteigende Flanke 702 tritt an einem Zeitpunkt 710 auf und ist mit einer Adressinformation ACa 718 assoziiert, die am Abschnitt 0 vorliegt. Eine ansteigende Flanke 703 tritt an einem Zeitpunkt 711 auf und ist mit einer Adressinformation ACb 719 assoziiert, die am Abschnitt 0 vorliegt. Eine ansteigende Flanke 704 tritt an einem Zeitpunkt 712 auf und ist mit einer Adressinformation ACc 720 assoziiert, die am Abschnitt 0 vorliegt. Eine ansteigende Flanke 707 tritt an einem Zeitpunkt 715 auf und ist mit einer Adressinformation ACd 721 assoziiert, die am Abschnitt 0 vorliegt.
  • Die Wellenform eines WClk-Taktsignals 722 veranschaulicht, das WClk-Taktsignal für die Speicherkomponente am Abschnitt 1, wenn das WClk-Taktsignal an der Speichercontrollerkomponente am Modul 0 vorliegt. Eine ansteigende Flanke 724 tritt an einem Zeitpunkt 711 auf und ist mit einer Schreibdatuminformation Da 730 assoziiert, die vorliegt. Eine ansteigende Flanke 729 tritt an einem Zeitpunkt 716 auf und ist mit einer Schreibdatuminformation Dd 733 assoziiert, die vorliegt.
  • Die Wellenform eines WClk-Taktsignals 734 veranschaulicht das RClk-Taktsignal für die Speicherkomponente des Abschnittes 1, wenn das RClk-Taktsignal an der Speichercontrollerkomponente am Modul 0 vorliegt. Eine ansteigende Signalflanke 737 ist mit Lesedatuminformation Qb 731 assoziiert, die vorliegt. Eine ansteigende Flanke 738 ist mit Lesedatuminformation Qc 732 assoziiert, die vorliegt.
  • Die Wellenform eines WClk-Taktsignals 741 veranschaulicht das WClk-Taktsignal für die Speicherkomponente am Abschnitt NS, wenn das WClk-Taktsignal an der Speichercontrollerkomponente am Modul 0 vorliegt. Schreibdatuminformation Da 756 ist mit einer ansteigenden Flanke 744 des Signals 741 assoziiert. Schreibdatuminformation Dd 759 ist mit einer Flanke 754 des Signals 741 assoziiert.
  • Die Wellenform eines RClk-Taktsignals 760 veranschaulicht das RClk-Taktsignal für die Speicherkomponente am Abschnitt NS, wenn das RClk-Taktsignal an Speichercontrollerkomponente am Modul 0 vorliegt. Lesedatuminformation Qb 757 ist mit einer Flanke 764 des Signals 760 assoziiert. Lesedatuminformation Qc 758 ist mit einer Flanke 766 des Signals 760 assoziiert.
  • 8 ist ein Timingdiagramm, das die Anpassung von Takten AclkS1,M1, WClkS1,M1, und RClkS1,M1, an der Speicherkomponente in einem Abschnitt 1 einer Reihe 1 illustriert, gemäß einem Ausführungsbeispiel der Erfindung. Alle drei Takte sind um tPD0 relativ zum AClksS0,M1-Takt verzögert, der am Controller erzeugt wird.
  • Die Wellenform eines AClk-Taktsignals 801 veranschaulicht das AClk-Taktsignal für die Speicherkomponente am Abschnitt 1 des Moduls 1. Adressinformation ACa 822 ist mit einer Flanke 802 des Signals 801 assoziiert. Adressinformation ACb 823 ist mit einer Flanke 804 des Signals 801 assoziiert. Adressinformation ACc 824 ist mit einer Flanke 806 des Signals 801 assoziiert. Adressinformation ACd 825 ist mit einer Flanke 812 des Signals 801 assoziiert.
  • Die Wellenform eines WClk-Taktsignals 826 veranschaulicht das WClk-Taktsignal für die Speicherkomponente am Abschnitt 1 des Moduls 1. Schreibdatuminformation Da 841 ist mit einer Flanke 829 des Signals 826 assoziiert. Schreibdatuminformation Dd 844 ist mit einer Flanke 839 des Signals 826 assoziiert.
  • Die Wellenform eines RClk-Taktsignals 845 veranschaulicht das RClk-Taktsignal für die Speicherkomponente am Abschnitt 1 des Moduls 1. Lesedatuminformation Qb 842 ist mit einer Flanke 850 des Signals 845 assoziiert. Lesedatuminformation Qc 843 ist mit einer Flanke 852 des Signals 845 assoziiert.
  • 9 ist ein Timingdiagramm, das die Anpassung der Takte AclkSNs,M1, WClkSNs,M1, und RClkSNs,M1, an der Speicherkomponente im Abschnitt NS der Reihe 1 illustriert, gemäß einem Ausführungsbeispiel der Erfindung. Alle drei Takte sind (tPD0 + tPD1) relativ zum AClkS0,M1-Takt verzögert, der am Controller erzeugt wird.
  • Die Wellenform eines AClk-Taktsignals 901 veranschaulicht das RClk-Taktsignal für die Speicherkomponente am Abschnitt NS am Modul 1. Eine ansteigende Flanke 902 des Signals 901 ist mit Adressinformation ACa 917 assoziiert. Eine ansteigende Flanke 903 des Signals 901 ist mit Adressinformation ACb assoziiert. Eine ansteigende Flanke 904 des Signals 901 ist mit einer Adressinformation ACc 919 assoziiert. Eine ansteigende Flanke 907 des Signals 901 ist mit einer Adressinformation ACd 920 assoziiert.
  • Die Wellenform eines WClk-Taktsignals 921 veranschaulicht das WClk-Taktsignal für die Speicherkomponente am Abschnitt NS am Modul 1. Eine ansteigende Flanke 923 des Signals 921 ist mit Schreibdatuminformation Da 937 assoziiert. Eine ansteigende Flanke 928 des Signals 921 ist mit Schreibdatuminformation Dd 940 assoziiert.
  • Die Wellenform eines RClk-Taktsignals 929 veranschaulicht das RClk-Taktsignal für die Speicherkomponente am Abschnitt NS am Modul 1. Eine ansteigende Flanke 932 des Signals 929 ist mit Schreibdatuminformation Qb 938 assoziiert. Eine ansteigende Flanke 933 des Signals 929 ist mit Schreibdatuminformation Qc 939 assoziiert.
  • Zu beachten ist, dass in beiden 8 und 9 eine Zyklusverzögerung um tCC existiert zwischen der Adress-/Steuerinformation (beispielsweise ACa 917 in 9) und der Lese- oder Schreibinformation, die sie begleitet (in diesem Beispiel Da 937 in 9), wenn man sie bei jeder Speicherkomponente betrachtet. Dies kann für andere Technologien anders sein; das heißt, dort kann eine längere Zugriffsverzögerung existieren. Im Allgemeinen sollte die Zugriffsverzögerung für die Schreiboperation an der Speicherkomponente gleich oder annähernd gleich der Zugriffsverzögerung für die Leseoperation sein, um die Nutzung des Datenbus zu maximieren.
  • Die 10 bis 18 illustrieren die Details eines Beispielsystems, das Adress- und Datentimingbeziehungen verwendet, die mit dem, was in Bezug auf die 5 bis 9 beschrieben wurde, fast identisch sind. Insbesondere sind alle drei Takte an jeder Speicherkomponente in Phase. Dieses Beispielsystem hat jedoch mehrere Unterschiede im Vergleich mit dieser früheren Beschreibung. Erstens werden zwei Bits pro Draht pro tCC-Intervall auf dem AC-Bus (Adress/Steuerbus, oder einfach Adressbus) angelegt. Zweitens werden acht Bits pro Draht pro tCC-Intervall auf dem DQ-Bus angelegt. Drittens begleitet ein Taktsignal den AC-Bus, und werden jedoch die Lese- und Schreibtakte für den DQ-Bus aus dem Takt für den AC-Bus synthesiert.
  • 10 ist ein Blockdiagramm, das weitere Details für eine Speicherreihe (ein oder mehrere Abschnitte von Speicherkomponenten) eines Speichersystems wie dem in 1 dargestellten illustriert, in Übereinstimmung mit einem Ausführungsbeispiel der Erfindung. Die internen Blocks der Speicherkomponenten, die diese Reihe bilden, sind mit den externen AC- oder DQ-Bussen verbunden. Die serialisierten Daten auf diesen externen Bussen werden in parallele Form oder aus paralleler Form auf internen Bussen konvertiert, die mit dem Speicherkern (den Feldern von Speicherzellen, die zur Speicherung von Information für das System verwendet werden) verbunden sind. Zu beachten ist, dass 10 alle 32 Bits des DQ-Busses zeigt, der mit der Speicherreihe verbunden ist – diese 32 Bits werden in eine Vielzahl gleich großer Abschnitte aufgeteilt, und jeder Abschnitt des Busses wird zu einer Speicherkomponente geleitet. Abschnitte werden also auf der Basis von Stücken des DQ-Busses definiert, die zu verschiedenen Speicherkomponenten geleitet sind. Das in 10 gezeigte Beispiel illustriert eine Speicherkomponente oder ein Speichergerät, das die gesamte Menge von 32 Datenbits für ein bestimmtes Beispielsystem unterstützt. In anderen Ausführungsbeispielen kann ein solches System zwei Speichergeräte enthalten, wobei jedes Speichergerät die Hälfte der 32 Datenbits unterstützt. Jedes dieser Speichergeräte würde also die geeigneten Datensendeblöcke, Datenempfangsblöcke und einen entsprechenden Anteil am Speicherkern enthalten, so dass sie jeweils die Stücke des gesamten Datenbusses unterstützen können, für die sie verantwortlich sind. Zu beachten ist es, das die Anzahl der Datenbits nicht 32 sein muss, sondern variiert werden kann.
  • Das AClk-Signal ist der Takt, der den AC-Bus begleitet. Es wird empfangen und als Frequenz- und Phasenreferenz für alle Taktsignale verwendet, die von der Speicherkomponente erzeugt werden. Die anderen Takte sind ClkM2, ClkM8 und ClkM. Diese weisen die zweifache, achtfache Frequenz des AClk beziehungsweise gleiche Frequenz wie AClk auf. Die ansteigenden Flanken aller Takte sind ausgerichtet (kein Phasenoffset). Die Frequenz- und Phasenanpassung wird typischerweise mit einem bestimmten Typ von phasenstarrer Regelschleifen(PLL)-Schaltung vorgenommen, obwohl andere Techniken ebenso möglich sind. Eine Vielzahl verschiedener geeigneter PLL-Schaltungen sind dem Fachmann gut bekannt. Die Rückkopplungsschleife enthält die Asymmetrie der Takttreiber, die benötigt werden, um die verschiedenen Takte zu den Empfangs- und Sendeblöcken sowie zum Speicherkern zu verteilen. Es wird angenommen, dass der Speicherkern in der ClkM-Domäne betrieben wird.
  • Eine Speicherkomponente 116 enthält einen Speicherkern 1001, eine PLL 1002, eine PLL 1003 und eine PLL 1004. Ein AClk-Taktsignal 109 wird von einem Puffer 1015 empfangen, der ein Taktsignal 1019 an die PLLs 1002, 1003 und 1004 liefert. Verschiedene PLL-Designs sind dem Fachmann gut bekannt, jedoch verlangen einige in den hier beschriebenen Ausführungsbeispielen implementierte PLLs eine geringfügige Anpassung, um die gewünschte spezifische Funktionalität zu ermöglichen. Daher wird in einigen hier beschriebenen Ausführungsbeispielen die besondere Betriebsweise der verschiedenen Blöcke innerhalb der PLL in zusätzlichem Detail erläutert. Obwohl daher einige der in den hier beschriebenen Ausführungsbeispielen enthaltenen PLL-Konstrukte nicht bis ins letzte Detail erläutert werden, liegt es für einen Durchschnittsfachmann auf dem vorliegenden technischen Gebiet auf der Hand, dass die allgemeinen Ziele, die solche PLLs erreichen sollen, durch eine Vielzahl von Schaltungen, die der Durchschnittsfachmann auf dem vorliegenden technischen Gebiet gut kennt, unmittelbar nachvollziehbar sind. Die PLL 1002 enthält einen Phasenvergleicher und einen spannungsgesteuerten Oszillator (Voltage Controlled Oscillator, VCO) 1005. Die PLL 1002 liefert ein Taktsignal ClkM 1024 an den Speicherkern 1001, einen Adress-/Steuerempfangsblock 204, einen Datenempfangsblock 205 und einen Datensendeblock 206.
  • Die PLL 1003 enthält einen Vorskalierer 1009, einen Phasenvergleicher und VCO 1010 und einen Teiler 1011. Der Vorskalierer 1009 kann als Frequenzteiler implementiert sein (wie der, der für die Implementierung des Teilers 1011 verwendet wird) und liefert eine kompensierende Verzögerung ohne die Notwendigkeit einer Frequenzteilung. Der Vorskalierer 1009 liefert ein Signal 1021 an den Phasenvergleicher und den VCO 1010. Der Phasenvergleicher im VCO 1010 ist als Dreieck mit zwei Eingängen und einem Ausgang dargestellt. Die Funktionalität des Phasenvergleichers 1010 ist vorzugsweise so konfiguriert, dass er ein Ausgangssignal erzeugt, das sicherstellt, dass die Phase des Rückkopplungssignals 1023, das einen seiner Eingänge bildet, im Allgemeinen mit einem Referenzsignal 1021 phasenangepasst ist. Diese Konvention ist vorzugsweise auf ähnliche Strukturen, die in anderen hier beschrieben PLLs enthalten sind, anwendbar. Der Teiler 1011 liefert ein Rückkopplungssignal 1023 an den Phasenvergleicher und VCO 1010. Die PLL 1003 liefert ein Taktsignal ClkM2 1025 an den Adress-/Steuerempfangsblock 204.
  • Die PLL 1004 enthält einen Vorskalierer 1006, einen Phasenvergleicher und VCO 1007 und einen Teiler 1008. Der Vorskalierer 1006 kann als Frequenzteiler (so wie der, der zur Implementierung des Teilers 1011 verwendet wird) implementiert werden und liefert eine kompensierende Verzögerung ohne Notwendigkeit einer Frequenzteilung. Der Vorskalierer 1006 liefert ein Signal 1020 an den Phasenvergleicher und VCO 1007. Der Teiler 1008 liefert ein Rückkopplungssignal 1022 an den Phasenvergleicher und VCO 1007. Die PLL 1004 liefert ein Taktsignal ClkM8 1026 an den Datenempfangsblock 205 und den Datensendeblock 206.
  • Der Adressbus 107 ist über Puffer 1012 an den Adress-/Steuerempfangsblock 204 über einen Koppler 1016 gekoppelt. Die Datenausgänge 1018 des Datensendeblocks 206 sind an einen Datenbus 108 über Puffer 1014 ge koppelt. Der Datenbus 108 ist über Puffer 1013 an Dateneingänge 1017 des Datenempfangsblocks 205 gekoppelt.
  • Der Adress-/Steuerempfangsblock 204 liefert über einen internen Adressbus 1027 Adressinformation an den Speicherkern 1001. Die Datenempfangsblöcke 205 liefern über einen internen Schreibdatenbus 1028 Schreibdaten an den Speicherkern 1001. Der Speicherkern 1001 liefert über einen internen Lesedatenbus 1029 Lesedaten an die Datensendeblöcke 206.
  • 11 ist eine Blockdiagramm, das Taktungselemente eines Abschnitts einer Reihe der Speicherkomponenten eines Speichersystems wie in 1 dargestellten illustriert, gemäß einem Ausführungsbeispiel der Erfindung. In dieser Figur sind der Klarheit halber die Elemente für nur ein Bit auf jedem Bus illustriert. Es versteht sich, dass solche Elemente für jedes Bit des Busses repliziert werden können.
  • Der Adress-/Steuerempfangsblock 204 enthält Register 1101, 1102 und 1103. Ein Adressbusleiter 1016 ist an die Register 1101 und 1102 gekoppelt, die zusammen ein Schieberegister bilden und durch das ClkM2-Taktsignal 1025 getaktet werden und über Verbindungen 1104 beziehungsweise 1105 an das Register 1103 gekoppelt sind. Das Register 1103 wird durch ein ClkM-Taktsignal 1024 getaktet und liefert Adress-/Steuerinformation an einen internen Adressbus 1027. Die Darstellung der Register 1101 und 1102 in 11 ist vorzugsweise so zu verstehen, dass sie ein Schieberegister bilden, so dass Daten, die das Register 1101 in einem Zyklus eintreten, im nachfolgenden Zyklus in das Register 1102 überfragen werden, während neue Daten in das Register 1101 eintreten. In dem in 11 gezeigten speziellen Ausführungsbeispiel wird die Bewegung der Daten durch das Taktsignal ClkM2 1025 gesteuert. Wenn also der Takt ClkM2 1025 bei der doppelten Frequenz des Taktes ClkM 1024 arbeitet, arbeitet der Empfangsblock 204 im allgemeinen als Seriell-Parallel-Schieberegister, wobei zwei aufeinanderfolgende serielle Bits in einem parallelen Zwei-Bit-Format zusammen gruppiert werden, bevor sie auf die Signalleitungen RAC 1027 ausgegeben werden. Andere, ähnliche Darstellungen in den Figuren, wo eine Anzahl von Registern in einer ähnlichen Konfiguration zusammen gruppiert werden, sind also vorzugsweise so zu verstehen, dass sie die notwendigen Verbindungen untereinander enthalten, um zu ermöglichen, dass Daten entlang des von den Registern gebildeten Pfades seriell verschoben werden. Zu den Beispielen zählen die Register 11231130, die im Sendeblock 206 enthalten sind, und die Register 11061113, die im Empfangsblock 205 enthalten sind. Im Ergebnis wird die serielle Information am Eingang 1016 in eine parallele Form am Ausgang 1027 umgewandelt.
  • Der Datenempfangsblock 205 umfasst Register 1106, 1107, 1008, 1109, 1110, 1111, 1112, 1113 und 1114. Ein Dateneingang 1017 ist an die Register 1106, 1107, 1108, 1109, 1110, 1111, 1112 und 1113 gekoppelt, die durch das ClkM8-Taktsignal 1026 getaktet sind und an das Register 1114 über Verbindungen 1115, 1116, 1117, 1118, 1119, 1120, 1121 beziehungsweise 1122 gekoppelt sind. Das Register 1114 ist durch das ClkM-Taktsignal 1024 getaktet und liefert Schreibdaten an den internen Schreibdatenbus 1028. Dadurch wird die serielle Information am Eingang 1017 in parallele Form am Ausgang 1028 umgewandelt.
  • Der Datensendeblock 206 umfasst Register 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130 und 1131. Lesedaten vom internen Lesedatenbus 1029 werden an das Register 1131 geliefert, das durch den ClkM-Takt 1024 getaktet ist und an die Register 1123, 1124, 1125, 1126, 1127, 1128, 1129 und 1130 über Verbindungen 1132, 1133, 1134, 1135, 1136, 1137, 1138 und 1139 gekoppelt ist. Die Register 1123, 1124, 1125, 1126, 1127, 1128, 1129 und 1130 werden durch den ClkM8-Takt 1026 getaktet und liefern Datenausgang 1018. Daher wird die parallele Information am Eingang 1029 in serielle Form am Ausgang 1018 umgewandelt.
  • Dargestellt sind die Registerelemente, die benötigt werden, um die Adress-, Steuer- und Schreibdaten abzutasten, und um die Lesedaten einzuspeisen. Es wird in diesem Beispiel angenommen, dass zwei Bits pro Adress-/Steuer-(AC[i])-Draht in jedem tCC-Intervall übertragen werden, und dass acht Bits pro Lesedaten(Q[i])-Draht oder Schreibdaten(D[i])-Draht in jedem tCC-Intervall über tragen werden. Zusätzlich zum primären Takt ClkM (mit einer Zyklusdauer von tCC) gibt es zwei andere ausgerichtete Takte, die erzeugt werden. Es gibt den Takt ClkM2 (mit einer Zyklusdauer von tCC/2) und den Takt ClkM8 (mit einer Zyklusdauer von tCC/8). Diese Takte mit höherer Frequenz verschieben Information in die Speicherkomponente oder aus ihr heraus. Einmal in jedem tCC-Intervall werden die seriellen Daten in das parallele Register, das durch ClkM getaktet ist, hinein oder aus ihm heraus übertragen.
  • Zu beachten ist, dass die ClkM2- und ClkM8-Takte frequenzstarr und phasenstarr gegenüber dem ClkM-Takt sind. Die exakte Phasenanpassung der beiden höherfrequenten Takte wird von der Schaltungsimplementation der Treiber- und Abtasterlogik abhängen. Es kann kleine Offsets geben, um eine Treiber- oder Abtasterverzögerung zu berücksichtigen. Es kann auch kleine Offsets geben, um die exakte Position der Bit-Gültig-Fenster auf den AC und DQ-Bussen relativ zum ClkM-Takt zu berücksichtigen.
  • Zu beachten ist auch, dass in der Speicherkomponente die ClkM2- oder ClkM8-Takte durch zwei oder acht Takte mit einer Zyklusdauer tCC ersetzt werden könnten, die jedoch in ihrer Phase in gleichen Inkrementen über das gesamte tCC-Intervall verschoben sind. Das serielle Register, das im Sendeblock 204 die Register 11011102 enthält, im Sendeblock 206 die Register 11231130 enthält, und im Datenempfangsblock 205 die Register 11061113 enthält, würde durch einen Block von zwei oder acht Registern ersetzt, wobei jedes Register mit einem anderen Taktsignal beschickt würde, so dass die Bitfenster auf den AC- und DQ-Bussen korrekt abgetastet oder eingespeist werden. Beispielsweise würden im Sendeblock 204 zwei individuelle Register enthalten sein, wobei ein Register durch ein erstes Taktsignal mit einer bestimmten Phase und das zweite Register durch ein anderes Taktsignal mit einer anderen Phase getaktet würde, wobei die Phasenbeziehung zwischen diesen zwei Taktsignalen so zu verstehen ist, dass die äquivalente Seriell-Parallel-Umwandlung erzielt werden kann wie die oben im Detail beschriebene. Eine andere Möglichkeit ist, niveauempfindliche Speicherelemente (Latches) an Stelle von flankensensitiven Speicherelementen (Register) zu verwenden, so dass die ansteigenden und abfallenden Flanken eines Taktsignals das Beladen unterschiedlicher Speicherelemente bewirken.
  • Unabhängig davon, wie die Serialisierung implementiert ist, gibt es eine Vielzahl von Bitfenstern pro tCC-Intervall auf jedem Draht, und wird eine Vielzahl Taktflanken pro tCC-Intervall in der Speicherkomponente erzeugt, um diese Bitfenster korrekt zu speisen und abzutasten.
  • 12 ist ein Blockdiagramm, das Details der Speichercontrollerkomponente eines Speichersystems wie dem in 1 dargestellten illustriert, gemäß einem Ausführungsbeispiel der Erfindung. Die Speichercontrollerkomponente 102 umfasst PLLs 1202, 1203, 1204 and 1205, Adress-/Steuersendeblöcke 201, Datensendeblöcke 202, Datenempfangsblöcke 203 und einen Steuerlogikkern 1234. Die PLL 1202 umfasst einen Phasenvergleicher und VCO 1206. Die PLL 1202 empfängt ein Clkln-Taktsignal 1201 und liefert ein ClkC-Taktsignal 1215 an den Steuerlogikkern 1234 und an einen Puffer 1224, der das Aclk-Taktsignal 109 ausgibt.
  • Die PLL 1203 umfasst einen Vorskalierer 1207, einen Phasenvergleicher und VCO 1208 und einen Teiler 1209. Der Vorskalierer 1207 kann als ein Frequenzteiler implementiert sein und liefert eine kompensierende Verzögerung, wobei keine Frequenzteilung notwendig ist. Der Vorskalierer 1207 empfängt das Clkln-Taktsignal 1201 und liefert ein Signal 1216 an den Phasenvergleicher und VCO 1208. Der Teiler 1209 liefert ein Rückkopplungssignal 1218 an den Phasenvergleicher und VCO 1208, der einen ClkC2-Taktausgang 1217 an die Adress-/Steuersendeblöcke 201 liefert.
  • Die PLL 1204 umfasst einen Phasenvergleicher und VCO 1210, eine Dummy-Phasenoffsetauswahlschaltung 1212 und einen Teiler 1211. Die Dummy-Phasenoffsetauswahlschaltung 1212 fügt einen Verzögerungsbetrag ein, um die Verzögerung nachzubilden, die einer Phasenoffsetauswahlschaltung inhärent ist, und liefert ein Signal 1220 an den Teiler 1211, der ein Rückkopplungssignal 1221 an den Phasenvergleicher und VCO 1210 liefert. Der Phasenvergleicher und VCO 1210 empfängt den Clkln-Takteingang 1201 und liefert einen ClkC8-Taktausgang 1219 an die Datensendeblöcke 202 und die Datenempfangsblöcke 203.
  • Die PLL 1205 umfasst eine Phasenschieberschaltung 1214 und einen Phasenvergleicher und VCO 1213. Die Phasenschieberschaltung 1214 liefert ein Rückkopplungssignal 1223 an den Phasenvergleicher und VCO 1213. Der Phasenvergleicher und VCO 1213 empfängt das Clkln-Taktsignal 1201 und liefert ein ClkCD-Taktsignal 1222 an die Datensendeblöcke 202 und die Datenempfangsblöcke 203.
  • Der Steuerlogikkern 1234 liefert TPhShB-Signale 1235 und TphShA-Signale 1236 an die Datensendeblöcke 202. Der Steuerlogikkern 1234 liefert RPhShB-Signale 1237 und RphShA-Signale 1238 an die Datenempfangsblöcke 203. Der Steuerlogikkern 1234 liefert ein LoadSkip-Signal 1239 an die Datensendeblöcke 202 und die Datenempfangsblöcke 203. Der Steuerlogikkern 1234 umfasst einen PhShC-Block 1240. Die Funktionalität der Steuerlogik 1234 wird unten detaillierter mit Bezug auf 17 diskutiert.
  • Der Steuerlogikkern 1234 liefert Adress-/Steuerinformation an die Adress-/Steuersendeblöcke 201 über einen internen Adressbus 1231. Der Steuerlogikkern 1234 liefert Schreibdaten an die Datensendeblöcke 1232 über einen internen Schreibdatenbus 1232. Der Steuerlogikkern 1234 empfängt Lesedaten von den Datensendeblöcken 203 über einen internen Lesedatenbus 1233.
  • Die Adress-/Steuersendeblöcke 201 sind über einen Ausgang 1228 an Puffer 1225 gekoppelt, die den AC-Bus 107 speisen. Datensendeblöcke 202 liefern Ausgangssignale 1229 an Puffer 1226, die den DQ-Bus 108 speisen. Puffer 1227 koppeln den DQ-Bus 108 an Eingänge 1230 der Datenempfangsblöcke 203.
  • Jeder der Adress-/Steuersendeblöcke 201 ist mit dem AC-Bus verbunden, und jeder der Blöcke 202 und 203 ist mit dem DQ-Bus verbunden. Die serialisier ten Daten auf diesen externen Bussen werden in parallele Daten oder aus parallelen Daten von internen Bussen umgewandelt, die eine Verbindung mit dem Rest der Steuerlogik herstellen. Es wird angenommen, dass der Rest des Controllers in der ClkC-Taktdomäne betrieben wird.
  • In dem dargestellten Ausführungsbeispiel ist das Clkln-Signal der Master-Takt für das gesamte Speichersubsystem. Es wird empfangen und als Frequenz- und Phasenreferenz für all die vom Controller verwendeten Taktsignale genutzt. Die anderen Taktsignale sind ClkC2, ClkC8, ClkC und ClkCD. Diese haben die zweifache, achtfache, gleiche beziehungsweise gleiche Frequenz wie Clkln. ClkC hat keine Phasenverschiebung gegenüber Clkln, und ClkCD ist um 90° verzögert. Bei ClkC2 ist jede zweite ansteigende Flanke an einer ansteigenden Flanke von Clkln ausgerichtet.
  • Jede achte ClkC8-Anstiegsflanke ist an einer ansteigenden Flanke von Clkln ausgerichtet, mit Ausnahme eines Offsets, das die Verzögerung eines Frequenzteilers und einer Phasenoffsetauswahlschaltung in den Sende- und Empfangsblöcken kompensiert. Es gibt „N" zusätzliche ClkC8-Signale (ClkC8[N:1]), die relativ zum ClkC8-Signal phasenverschoben sind. Diese anderen ClkC8-Phasen werden verwendet, um die Sende- und Empfangstaktdomänen zu synthetisieren, die benötigt werden, um mit den Speicherkomponenten zu kommunizieren.
  • Die Frequenz- und Phasenanpassung wird typischer Weise mit einem bestimmten Typ einer PLL-Schaltung vorgenommen, obwohl andere Techniken ebenso möglich sind. Die Rückkopplungsschleife der PLL-Schaltung schließt den Zeitversatz der Takttreiber ein, die benötigt werden, um die verschiedenen Taktsignale an die Empfangs- und Sendeblöcke sowie an den Rest der Steuerlogik zu verteilen.
  • 13 ist ein Blockdiagramm, das die in den Empfangs- und Sendeblöcken der 12 verwendeten Logik illustriert, gemäß einem Ausführungsbeispiel der Erfindung. Die Speichercontrollerkomponente 102 umfasst die Adress- /Steuersendeblöcke 201, die Datensendeblöcke 202 und die Datenempfangsblöcke 203. Der Klarheit halber sind nur die Elemente für ein einzelnes Bit dargestellt. Es versteht sich, dass solche Elemente für jedes Bit der Busse repliziert werden können.
  • Die Adress-/Steuersendeblöcke 201 umfassen ein Register 1301 und Register 1302 und 1303. Der interne Adressbus 1231 ist an das Register 1301 gekoppelt, das durch den ClkC-Takt 1215 getaktet ist, und Ausgangssignale an die Register 1302 und 1303 über Verbindungen 1304 beziehungsweise 1305 liefert. Die Register 1302 und 1303 sind durch den ClkC2-Takt 1217 getaktet und liefern einen Ausgang 1328 an den AC-Bus. Dadurch wird die parallele Information auf dem internen Adressbus 1231 in serielle Information am Ausgang 1228 umgewandelt. Eine zusätzliche funktionale Beschreibung der Adress-/Steuersendeblöcke 201 wird unten mit Bezug auf 13 gegeben.
  • Allgemein erfüllen die Datensendeblöcke 202 und die Datenempfangsblöcke 203, die in 13 gezeigt sind, die Funktion, eine Seriell-Parallel- oder Parallel-Seriell-Wandlung von Daten zu bewirken (der Wandlungstyp hängt dabei von der Richtung des Datenflusses ab). Solche Blöcke sind denen ähnlich, die in den Speichervorrichtungen vorliegen, jedoch ist im Fall der Sende- und Empfangsblöcke, die im Controller dieses speziellen Systems enthalten sind, ein zusätzliches Schaltungssystem erforderlich, um die geeigneten Taktungssignale zu erhalten, die erforderlich sind, um diese Seriell-Parallel- und Parallel-Seriell-Wandlungen durchzuführen. In den Speichervorrichtungen dieses Beispiels ist ein solches Taktanpassungs-Schaltungssystem nicht erforderlich, weil die Takte vereinbarungsgemäß innerhalb der Speichergeräte phasenangepasst sind. Jedoch kann innerhalb des Controllers eine solche Phasenanpassung nicht garantiert werden, aufgrund der Annahme innerhalb des Systems, dass eine Phasenanpassung innerhalb der Speichervorrichtungen möglicherweise eine Phasenfehlanpassung in anderen Teilen des Systems verursachen wird, aufgrund der physikalischen Anordnung der Speichervorrichtungen relativ zum Controller. Ein Speichergerät, das mit einem ersten Abstand vom Controller angeordnet ist, wird also einen anderen Satz von charakteristischen Verzögerungen bezüglich mit dem Controller ausgetauschten Signale haben als ein zweites Speichergerät, das an einer zweiten Position angeordnet ist. An sich wäre ein individuelles Taktanpassungs-Schaltungssystem für solche Speichergeräte innerhalb des Controllers erforderlich, so dass sichergestellt wird, dass der Controller Lesedaten korrekt erfasst, die von jeder der Speichervorrichtungen geliefert werden, und um zu ermöglichen, dass der Controller Schreibdaten korrekt einspeist, die von jeder der Speichervorrichtungen empfangen werden sollen.
  • Innerhalb des Sendeblocks 202 werden für das Senden vorgesehene Daten über den TD-Bus 1232 in parallelem Format empfangen. Diese Daten werden in das Register 1310 geladen, basierend auf den ClkC-Taktsignal 1215. Wenn die Daten einmal in das Register 1310 geladen sind, werden die Daten entweder direkt durch den Multiplexer 1312 zum Register 1313 weitergeleitet oder um einen halben Taktzyklus verzögert, indem sie den Pfad durch den Multiplexer 1312 durchlaufen, der das Register 1311 enthält, welches durch die abfallende Flanke des ClkC-Signals getaktet ist. Ein solches Schaltungssystem ermöglicht es den Daten auf dem TD-Bus, der zur ClkC-Taktdomäne gehört, erfolgreich in die für ihre Aussendung erforderliche Taktdomäne übertragen zu werden. Diese Taktdomäne ist die TClkC1B-Taktdomäne, die dieselbe Frequenz hat wie der ClkC-Takt, jedoch nicht notwendiger Weise an das ClkC-Taktsignal phasenangepasst ist. Ein ähnliches Schaltungssystem ist innerhalb des Empfangsblockes 203 enthalten, so dass Daten, die in der RClkC1B-Taktdomäne empfangen werden, erfolgreich auf den RQ-Bus übertragen werden können, der in der ClkC-Taktdomäne betrieben wird.
  • Die Datensendeblöcke 202 umfassen einen PhShA-Block 1306, eine Taktteilerschaltung 1307, Register 1308, 1309, 1310, 1311 und 1313, einen Multiplexer 1312, und ein Schieberegister 1314. Die TphShA-Signale 1236 und die ClkC8-Taktsignale 1219 werden an den PhShA-Block 1306 geliefert. Zusätzliche Details zum PhShA-Block 1306 werden unten mit Bezug auf 15 erläutert. Die Taktteilerschaltung 1307 umfasst eine 1/1-Teilerschaltung 1324 und eine 1/8-Teilerschaltung 1325. Die TPhShB-Signale 1235 werden an die 1/8-Teilerschaltung 1325 geliefert. Ein Ausgangssignal des PhShA-Blocks 1306 wird an Eingänge der 1/1-Teilerschaltung 1324 und der 1/8-Teilerschaltung 1325 geliefert. Ein Ausgangssignal der 1/1-Teilerschaltung 1324 wird an ein Taktschieberegister 1314 geliefert. Ein Ausgangssignal der 1/8-Teilerschaltung 1325 wird an das Taktregister 1313 und als Eingang an das Register 1308 geliefert.
  • Das Register 1308 wird durch das ClkCD-Taktsignal 1222 getaktet und liefert ein Ausgangssignal an das Register 1309. Das Register 1309 wird durch das ClkC-Taktsignal 1215 getaktet und empfängt das LoadSkip-Signal 1238, um ein Ausgangssignal an den Multiplexer 12 und ein Ausgangssignal an die Taktregister 1310 und 1311 zu liefern. Das Register 1310 empfängt Schreibdaten aus dem Schreibdatenbus 1232 und liefert ein Ausgangssignal an das Register 1311 und den Multiplexer 1312. Das Register 1311 liefert ein Ausgangssignal an den Multiplexer 1312. Der Multiplexer 1312 liefert ein Ausgangssignal an das Register 1313. Das Register 1313 liefert parallele Ausgangssignale an das Schieberegister 1314. Das Schieberegister 1314 liefert ein Ausgangssignal 1229. Als ein Ergebnis wird die am Eingang 1232 anliegende parallele Information in serielle Form am Ausgang 1229 umgewandelt.
  • Die Datenempfangsblöcke 203 umfassen einen PhShA-Block 1315, eine Taktteilerschaltung 1316, Register 1317, 1318, 1320, 1321 und 1323, ein Schieberegister 1319 und einen Multiplexer 1322. Die Taktteilerschaltung 1316 umfasst eine 1/1-Teilerschaltung 1326 und eine 1/8-Teilerschaltung 1327. Die RPhShA-Signale 1238 und das ClkC8-Taktsignal 1219 werden an den PhShA-Block 1315 geliefert, der ein Ausgangssignal an die 1/1-Teilerschaltung 1326 und an die 1/8-Teilerschaltung 1327 liefert. Das RPhShB-Signal 1237 wird an einen Eingang der 1/8-Teilerschaltung 1327 geliefert. Die 1/1-Teilerschaltung 1326 liefert ein Ausgangssignal, das verwendet wird, um das Schieberegister 1319 zu takten. Die 1/8-Teilerschaltung 1327 liefert ein Ausgangssignal, das verwendet wird, um das Register 1320 zu takten und das als Eingangssignal zum Register 1317 verwendet wird. Das Register 1317 wird durch das ClkCD-Taktsignal 1222 getaktet und liefert ein Ausgangssignal an das Register 1318. Das Register 1318 empfängt das LoadSkip-Signal 1238 und wird durch das ClkC-Taktsignal 1215 getaktet, und liefert ein Ausgangssignal an den Multiplexer 1322 und ein Ausgangssignal, das verwendet wird, um die Register 1321 und 1323 zu takten.
  • Das Schieberegister 1319 empfängt das Eingangssignal 1230 und liefert parallele Ausgangssignale an das Register 1320. Das Register 1320 liefert ein Ausgangssignal an das Register 1321 und an den Multiplexer 1322. Das Register 1321 liefert ein Ausgangssignal an den Multiplexer 1322. Der Multiplexer 1322 liefert ein Ausgangssignal an das Register 1323. Das Register 1323 liefert ein Ausgangssignal an den internen Lesedatenbus 1233. Als ein Ergebnis wird die serielle Information am Eingang 1230 in parallele Form am Ausgang 1233 umgewandelt.
  • Es sind die Register und Gating-Elemente dargestellt, die benötigt werden, um Adress-/Steuer- und Schreibdaten einzuspeisen, und um die Lesedaten abzutasten. Es wird bei diesem Beispiel angenommen, dass zwei Bits pro Adress-/Steuer (AC[i])-Draht in jedem tCC-Intervall übertragen werden, und dass acht Bits pro Lesedaten (Q[i])-Draht oder Schreibdaten (D[I])-Draht in jedem tCC-Intervall übertragen werden. Zusätzlich zum primären Takt ClkC (mit einer Zyklusdauer von tCC) gibt es zwei andere angepasste Taktsignale, die erzeugt werden. Es gibt das ClkC2 (mit einer Zyklusdauer tCC/2) und das ClkC8 (mit einer Zyklusdauer von tCC/8). Diese höherfrequenten Takte verschieben Information in den Controller oder aus dem Controller heraus. Einmal in jedem tCC-Intervall werden serielle Daten zu einem parallelen Register, das durch ClkC getaktet wird, oder von ihm fort übertragen.
  • Zu beachten ist, dass im Controller die ClkC2- oder ClkC8-Takte durch zwei oder acht Takte ersetzt werden können, wobei jeder eine Zyklusdauer von tCC hat, jedoch in der Phase in gleichen Inkrementen über das gesamte tCC-Intervall verschoben ist. In solchen Ausführungsbeispielen ist das serielle Register durch Blöcke von zwei oder acht Registern ersetzt, wobei jedes Schieberegister mit einem anderen Taktsignal beschickt wird, so dass die Bitfenster auf den AC- und DQ-Bussen korrekt abgetastet oder gespeist werden. Eine andere Möglichkeit ist es, Niveau-sensitive Speicherelemente (Latches) an Stelle von flan kensensitiven Speicherelementen (Registern) zu verwenden, so dass die ansteigenden und abfallenden Flanken eines Taktsignals die Beschickung unterschiedlicher Speicherelemente bewirken.
  • Ungeachtet der Art, wie die Serialisierung implementiert ist, wird es eine Vielzahl Bitfenster pro tCC-Intervall auf jedem Draht geben, und verwenden viele Ausführungsbeispiele eine Vielzahl Taktflanken pro tCC-Intervall im Controller, um diese Bitfenster korrekt zu speisen und abzutasten.
  • 13 zeigt auch, wie der Controller mit der Tatsache umgeht, dass die Lese- und Schreibdaten, die empfangen und gesendet werden, für jeden Abschnitt in einer anderen Taktdomäne sind. Da ein Abschnitt nur ein einzelnes Bit schmal sein kann, können 32 Lesetaktdomänen und 32 Schreibtaktdomänen im Controller simultan vorliegen (dieses Beispiel nimmt einen DQ-Bus mit einer Breite von 32 Bits an). Zu erinnern ist, dass in diesem Beispiel keine Takte mit den Lese- und Schreibdaten übertragen werden, und das solche Takte vorzugsweise aus einer Frequenzquelle synthetisiert werden. Das Problem der Vielzahl von Taktdomänen würde selbst dann noch immer vorliegen, wenn ein Takt mit den Lese- und Schreibdaten übertragen würde. Dies liegt daran, dass die Speicherkomponente der Punkt im System ist, wo alle lokalen Takte vorzugsweise in Phase sind. Andere Systemtaktungs-Topologien werden später in dieser Beschreibung erläutert.
  • Der Sendeblock für den Adress-/Steuerbus (AC) in 13 verwendet die ClkC2- und ClkC-Takte, um eine Zwei- auf Eins-Serialisierung durchzuführen. Der ClkC2-Takt schiebt das serielle Register 1302, 1304 auf die AC-Drähte 1328. Zu beachten ist, dass die exakte Phasenanpassung des ClkC2-Taktes von der Schaltungsimplementation der Treiberlogik abhängt. Es kann ein geringes Offset geben, um die Treiberverzögerung zu berücksichtigen. Es kann auch geringe Offsets geben, um die exakte Position des Bit-Einspeisefensters auf dem AC-Bus relativ zum ClkC-Takt zu berücksichtigen. Wenn beispielsweise die Ausgabetreiber eine bekannte Verzögerung haben, kann die Phase des ClkC2-Taktsignals so angepasst werden, dass ein Teil der Ausgabeschaltung mit der Lieferung von Daten an die Ausgabetreiber etwas früher beginnt als der Zeitpunkt, zu dem die Daten tatsächlich in eine externe Signalleitung gespeist werden sollen. Die Verschiebung der Phase des ClkC2-Taktsignals kann also verwendet werden, um die inhärente Verzögerung im Ausgabetreiber zu berücksichtigen, so dass die Daten tatsächlich zum gewünschten Zeitpunkt auf der externen Datenleitung präsentiert werden. In ähnlicher Weise können Anpassungen der Phase des ClkC2-Taktsignals auch verwendet werden, um sicherzustellen, dass die Positionierung des Gültige-Daten-Fensters für eingespeiste Daten auf der Basis des ClkC2-Taktsignals optimal platziert ist.
  • In einer ähnlichen Weise nutzt der Sendeblock für den Schreibdatenbus (D) in 13 einen phasenverzögerten ClkC8-Takt, um eine Acht-auf-Eins-Serialisierung durchzuführen. Der phasenverzögerte ClkC8-Takt schiebt das serielle Register 1314 auf die DQ-Drähte. Zu beachten ist, dass die exakte Anpassung des phasenverzögerten ClkC8-Taktes von der Schaltungsimplementierung der Einspeiselogik abhängt; es kann ein geringes Offset zur Berücksichtigung einer Treiberverzögerung vorliegen. Es können auch geringe Offsets zur Berücksichtigung der exakten Position des Bit-Speisefensters auf dem DQ-Bus vorliegen.
  • Die TphShA[i][n:0]-Steuersignale 1236 wählen das angemessene Phasenoffset relativ zu den Eingabereferenzvektoren ClkC8[N:1] aus. Ein Phasenoffset-Auswähler kann unter Verwendung eines einfachen Multiplexers, eines technisch höher entwickelten Phaseninterpolators oder anderer Phasenoffset-Auswahltechniken implementiert sein. In einem Beispiel eines Phaseninterpolators werden ein erster Referenzvektor mit einem weniger-als-gewünschten Phasenoffset und ein zweiter Referenzvektor mit einem größer-als-gewünschten Phasenoffset ausgewählt. Ein Wichtungswert wird angewandt, um einen Teil des ersten Referenzvektors mit einem Teil des zweiten Referenzvektors zu kombinieren und das gewünschte Ausgangsphasenoffset des TClkC8A-Taktes zu erzielen. Das gewünschte Ausgangsphasenoffset des TClkC8A-Taktes wird also im Ergebnis aus den ersten und zweiten Referenzvektoren interpoliert. In einem Beispiel eines Phasenmultiplexers, werden die TphShA[i][n:0]-Steuersignale 1236 verwendet, um eines der ClkC8[N:1]-Taktsignale 1219 für die Durchleitung an den TClkC8A-Takt zu verwenden (zu beachten ist, dass 2n+1 = N). Die verwendete Phase ist im Allgemeinen für jeden Sendeabschnitt auf dem Controller unterschiedlich. Die Phase für jeden Abschnitt auf dem Controller wird vorzugsweise während eines Kalibrierungsprozesses im Rahmen einer Initialisierung ausgewählt. Dieser Prozess wird im Rahmen der vorliegenden Beschreibung später im Detail beschrieben.
  • Der TClkC8A-Takt passiert den 1/8-Frequenzteiler 1325 und den 1/1-Frequenzteiler 1324, bevor er das parallele Register 1313 und das serielle Register 1314 taktet. Zu beachten ist, dass die ClkC8[N:1]-Signale, die verteilt werden, ein kleines Phasenoffset haben, um die Verzögerung am Phasenoffsetauswahlblock (PhShA) 1306 und an den Frequenzteilerblöcken 1324 und 1325 zu kompensieren. Dieses Offset wird von einer PLL-Schaltung erzeugt und wird Änderungen der Versortungsspannung und der Temperatur ausgleichen.
  • Selbst mit korrekt gesetztem Wert der Sendephasenverschiebung (so dass die Bitfenster auf dem D-Bus 1229 korrekt gespeist werden) könnte die Phase des TClkC1B-Taktes fehljustiert sein, die für das parallele Register 1313 verwendet wird (es gibt acht mögliche Phasenkombinationen). Es gibt mehrere Wege, dieses Problem zu handhaben. Das im illustrierten Ausführungsbeispiel verwendete Schema liefert ein Eingangssignal TPhShB 1235, so dass sich, wenn dieses Eingangssignal gepulst ist, die Phase des TClkC1B-Taktes um 1/8 eines Zyklus (45°) verschiebt. Die Initialisierungssoftware passt die Phase dieses Taktes an, bis das parallele Register das serielle Register zum richtigen Zeitpunkt lädt. Dieser Initialisierungsprozess wird im Rahmen dieser Beschreibung später im Detail erläutert.
  • Alternativ ist es auch möglich, die Phasenanpassung in der ClkC-Domäne durchzuführen, wenn der TD-Bus 1232 vorbereitet wird, den Sendeblock 202 zu beschicken. Um dies zu bewerkstelligen, können Multiplexer und Register zum Rotieren der Schreibdaten über ClkC-Zyklusgrenzen hinweg verwendet werden. Ein Kalibrierungsprozess kann bei der Initialisierung vorgesehen sein, um die Phase des TClkC1B-Taktes anzupassen, während der Sendeblock hochgefahren wird.
  • Nachdem die Phasenschiebersteuerungen korrekt justiert sind, können die Schreibdaten aus dem parallelen Register 1313 auf den D-Bus gesendet werden. Die Schreibdaten müssen jedoch noch vom TD-Bus 1232 in der ClkC-Domäne 1215 in das parallele Register 1313 in der TClkC1B-Domäne übertragen werden. Dies wird mit dem Skip-Multiplexer 1312 bewerkstelligt. Der Multiplexer wählt zwischen den Registern, die auf den ansteigenden Flanken 1310 und den abfallenden Flanken 1311 des ClkC-Taktes getaktet werden. Der SkipT-Wert bestimmt, welcher der Multiplexer-Pfade ausgewählt ist. Der SkipT-Wert wird durch Abtasten des TClkC1B-Taktes mit dem ClkCD-Takt 1222 bestimmt. Der resultierende Wert wird vom LoadSkip-Signal 1238 während der Initialisierungsroutine in ein Register 1309 geladen. Dieses Schaltungssystem wird im Rahmen dieser Beschreibung später im Detail erläutert.
  • Der Empfangsblock 203 für die Lesedaten Q ist in 13 unten dargestellt. Der Empfangsblock hat im wesentlichen dieselben Elemente wie der Sendeblock, der soeben diskutiert wurde, mit der Ausnahme, dass der Datenfluss umgekehrt ist. Jedoch sind die Probleme des Übergangs zwischen Taktdomänen grundsätzlich ähnlich.
  • Die RphShA[i][n:0]-Steuersignale 1238 wählen eines der ClkC8[N:1]-Taktsignale 1219 zur Durchleitung an den RClkC8-Taktgeber aus. Die verwendete Phase ist im allgemeinen für jeden Empfangsabschnitt auf dem Controller unterschiedlich. Die Phase wird während eines Kalibrierungsprozesses im Rahmen der Initialisierung ausgewählt. Dieser Prozess wird im Rahmen dieser Beschreibung später im Detail erläutert.
  • Der RClkC8A-Takt passiert den 1/8-Frequenzteiler 1327 und den 1/1-Frequenzteiler 1326, bevor er das parallele Register 1320 und das serielle Register 1319 taktet. Zu beachten ist, dass die ClkC8[N:1]-Signale 1219, die verteilt werden, ein kleines Phasenoffset haben, um die Verzögerung des Phasenoffset auswahlblocks (PhShA) 1315 und der Frequenzteilerblöcke 1326 und 1327 zu kompensieren. Dieses Offset wird von einer PLL-Schaltung erzeugt und wird Veränderungen der Versorgungsspannung und der Temperatur ausgleichen.
  • Selbst bei korrekt gesetztem Wert der Empfangsphasenverschiebung (so dass die Bitfenster auf dem Q-Bus korrekt abgetastet werden) könnte die Phase des RClkC1B-Taktes, die für das parallele Register 1320 verwendet wird, fehlangepasst sein (es gibt acht mögliche Phasenkombinationen). Es gibt mehrere Wege, dieses Problem zu handhaben. Das im illustrierten Ausführungsbeispiel verwendete Schema liefert ein Eingangssignal RPhShB 1237, so dass, wenn dieses Eingangssignal gepulst ist, sich die Phase des RClkC1B-Taktes um 1/8 eines Zyklus (45°) verschiebt. Die Initialisierungssoftware passt die Phase dieses Taktes an, bis das parallele Register 1320 das serielle Register 1319 zum richtigen Zeitpunkt lädt. Dieser Initialisierungsprozess wird im Rahmen dieser Beschreibung später im Detail erläutert.
  • Ein Skip-Multiplexer ähnlich dem, der für die Sendeschaltung beschrieben wurde, wird zur Bewegung zwischen den Taktdomänen RClkC1B und ClkC verwendet. Nachdem die Phasenschiebersteuerungen korrekt justiert sind, können die Lesedaten vom Q-Bus 1230 empfangen werden und in das parallele Register 1320 geladen werden. Die Lesedaten müssen jedoch noch vom parallelen Register 1320 in der RClkC1B-Domäne in das Register 1323 in der ClkC-Domäne 1215 übertragen werden. Dies wird mit Hilfe des Skip-Multiplexers 1322 bewerkstelligt. Der Multiplexer kann ein Register 1321 einfügen oder nicht einfügen, das auf der negativen Flanke des ClkC-Signals zwischen Registern getaktet wird, die auf den ansteigenden Flanken der RClkC1B 1320 und ClkC 1323 getaktet werden. Der SkipR-Wert bestimmt, welcher der Multiplexerpfade ausgewählt wird. Der SkipR-Wert wird durch Abtasten des Taktes RClkC1B mit dem ClkCD-Takt 1222 bestimmt. Der sich ergebende Wert wird während der Initialisierungsroutine vom LoadSkip-Signal 1238 in ein Register 1318 geladen. Dieses Schaltungssystem wird im Rahmen dieser Beschreibung später im Detail erläutert.
  • 14 ist ein logisches Diagramm, das Details des ClkC8-Blocks der Speichercontrollerkomponente wie der in 12 dargestellten illustriert, gemäß einem Ausführungsbeispiel der Erfindung. Die PLL 1204 umfasst eine PLL-Schaltung 1401, einstellbare angepasste Verzögerungen 1402, angepasste Puffer 1403 und einen Phasenvergleicher 1404. Die PLL-Schaltung 1401 umfasst einen VCO 1405, einen Dummy-Phasenoffsetauswähler 1406, einen Frequenzteiler 1407 und einen Phasenvergleicher 1408. Das Clkln-Taktsignal 1201 wird dem VCO 1405 und dem Phasenvergleicher 1408 zugeführt. Der VCO 1405 liefert ein Ausgangssignal an die einstellbaren angepassten Verzögerungen 1402 und die angepassten Puffer 1403. Die einstellbaren angepassten Verzögerungen 1402 liefern eine Vielzahl inkrementell verzögerter Ausgangssignale an die angepassten Puffer 1403.
  • Die PLL-Schaltung 1401 erzeugt ein Taktsignal, das die achtfache Frequenz des Eingangstaktsignals Clkln 1201 hat. Das erzeugte Signal ist auch phasenverschoben, um eine Verzögerung zu berücksichtigen, die in den Pfaden des von der Schaltung in 14 erzeugten Taktsignals erwartet wird. Als solche werden erwartete Verzögerungen während des Takterzeugungsprozesses kompensiert, so dass die Taktsignale am Punkt ihres tatsächlichen Gebrauchs korrekt phasenangepasst sind. Der verbleibende Teil des Blocks 1204 außerhalb der PLL-Schaltung 1402 wird verwendet, um gleich phasenbeabstandete Versionen des von der PLL-Schaltung 1401 erzeugten Taktes zu erzeugen. Dies wird mit bekannten Techniken verzögerungsstarrer Schleifen bewerkstelligt, bei denen die verzögerungsstarre Schleife den Mechanismus zur Erzeugung der gleich beabstandeten Taktsignale bereitstellt. Die als Ergebnis des Blocks 1204 in 14 erzeugten Taktsignale werden an die Phasenschieberlogik geliefert, die unten mit Bezug auf 15 beschrieben wird. Die Ergebnisse der Takterzeugung, die von den Schaltungen der 14 und 15 durchgeführt werden, werden verwendet, um die Seriell-Parallel- oder Parallel-Seriell-Wandlung durchzuführen, wie in 13 oben beschrieben wurde.
  • Ein Ausgang 1409 der angepassten Puffer 1403, der nicht durch die einstellbaren angepassten Verzögerungen 1402 verzögert ist, ist einem Eingang des Dummy-Phasenoffsetauswählers 1406 und einem Eingang des Phasenvergleichers 1404 zugeführt und liefert das ClkC8-Taktsignal. Ein verzögerter Ausgang 1410 liefert das ClkC81-Taktsignal. Ein verzögerter Ausgang 1411 liefert das ClkC82-Taktsignal. Ein verzögerter Ausgang 1412 liefert das ClkC83-Taktsignal. Ein verzögerter Ausgang 1413 liefert das ClkC8N-1-Taktsignal. Ein verzögerter Ausgang 1414 liefert das ClkC8N-Taktsignal, das einem Eingang des Phasenvergleichers 1404 zugeführt ist. Der Phasenvergleicher 1404 liefert ein Rückkopplungssignal an die einstellbaren angepassten Verzögerungen 1402, wodurch eine verzögerungsstarre Schleife (Delay-Locked Loop, DLL) bereitgestellt wird. Jeder der angepassten Puffer 1403 hat eine im wesentlichen ähnliche Ausbreitungsverzögerung, um ein gepuffertes Ausgangssignal ohne Einführung eines unbeabsichtigten Timing-Ersatzes (timing skew) zwischen dem Ausgangssignal 1409 und den verzögerten Ausgangssignalen 1410 bis 1414 einzuführen.
  • Der Clkln-Referenztakt 1201 wird empfangen und mit den Faktor 8 von der PLL 1204 frequenzmultipliziert. Mehrere Verzögerungen sind in der PLL-Rückkopplungsschleife der PLL 1204 enthalten, darunter eine Pufferverzögerung, die von den angepassten Puffern 1403 erzeugt wird, eine Dummy-Phasenoffsetauswahl-Verzögerung, die von dem Dummy-Phasenoffsetauswähler 1406 erzeugt wird, und eine Frequenzteiler-Verzögerung, die vom Frequenzteiler 1407 erzeugt wird. Indem diese Verzögerungen in die Rückkopplungsschleife eingeschlossen werden, wird der Takt, der zum Abtasten und Einspeisen von Bits auf dem DQ-Bus verwendet wird, an die Clkln-Referenz angepasst sein, und werden jegliche Verzögerungsschwankungen, die von einer langsamen Drift der Temperatur und der Versorgungsspannung verursacht werden, ausgeglichen.
  • Der Ausgang der PLL-Schaltung 1401 wird anschließend durch eine Verzögerungsleitung 1402 mit N Abzweigungen geleitet. Die Verzögerung jedes Elementes ist identisch und kann über einen angemessenen Bereich angepasst werden, so dass die Gesamtverzögerung von N Elementen gleich einem ClkC8-Zyklus (tCC/8) sein kann. Es gibt eine Rückkopplungsschleife 1404, die die Phase des unverzögerten ClkC8-Taktes mit dem maximal verzögerten Takt ClkC8[N] vergleicht. Die Verzögerungselemente werden eingestellt, bis ihre Signale pha senangepasst sind, was bedeutet, dass es eine Verzögerung von tCC/8 über die gesamte Verzögerungsleitung gibt.
  • Die ClkC8[N:1] Signale passieren identische Puffer 1403 und sehen identische Lasten von den Sende- und Empfangsabschnitten, mit denen sie verbunden sind. Das ClkC8-Referenzsignal 1409 hat auch einen Puffer und eine angepasste Dummy-Last, um die Verzögerung nachzubilden.
  • 15 ist ein Blockdiagramm, das illustriert, wie die ClkC8[N:1]-Signale in den Sende- und Empfangsblöcken der Speichercontrollerkomponente wie der in Figur dargestellten verwendet werden, gemäß einem Ausführungsbeispiel der Erfindung. Ein PhShA-Logikblock 1501 umfasst eine Phasenoffsetauswahlschaltung 1502, die einen Phasenoffsetauswähler 1503 umfasst. Der Phasenoffsetauswähler 1503 empfängt das ClkC81-Taktsignal 1410, das ClkC82-Taktsignal 1411, das ClkC83-Taktsignal 1412, das ClkC8N-1-Taktsignal 1413 und das ClkC8N-Taktsignal 1414 (das heißt, N Varianten des ClkC8-Taktsignals) und wählt und liefert ein ClkC8A-Taktsignal 1504. Dies wird bewerkstelligt, in dem der N-auf-1-Multiplexer 1503 verwendet wird, der eines der Signale auswählt, in Abhängigkeit von der Einstellung der Steuersignale PhShA[i][n:0], wobei N = 2n+1 ist. Dies erlaubt es, die Phase des ClkC8A-Ausgangstaktes für einen Abschnitt [i] über einen ClkC8-Zyklus (tCC/8) in Inkrementen von tCC/8N zu variieren.
  • Bei einer Initialisierung wird eine Kalibrierungsprozedur mit Software und/oder Hardware durchgeführt, in welcher Testbits bei jeder Kombination der Steuersignale PhShA[i][n:0] abgetastet und eingespeist werden. Für jeden Abschnitt wird die Kombination ausgewählt, die das beste Ergebnis erzielt. Dieser statische Wert kompensiert die Laufzeit der DQ- und AC-Signale zwischen dem Controller und den Speicherkomponenten. Diese Laufzeit ist im wesentlichen ein Faktor von Spurlänge und Ausbreitungsgeschwindigkeit auf gedruckten Schaltungsplatinen und verändert sich nicht stark während des Systembetriebs. Andere Verzögerungsschwankungen aufgrund der Versorgungsspannung und der Temperatur werden automatisch durch die Rückkopplungsschleifen der PLLs im System ausgeglichen.
  • 16 ist ein Blockdiagramm, das die PhShB-Schaltungen 1307 und 1316 der 13 illustriert. Eine Taktwandlerschaltung 1601 der 16 entspricht vorzugsweise der 1/1-Teilerschaltung 1324 und der 1/1-Teilerschaltung 1326 der 13. In ähnlicher Weise entspricht eine Taktwandlerschaltung 1602 der 16 vorzugsweise der 1/8-Teilerschaltung 1325 und der 1/8-Teilerschaltung 1327 der 13. Sie erzeugt einen ClkC8B-Takt und einen ClkC1B-Takt auf der Grundlage des ClkC8A-Taktes, gemäß einem Ausführungsbeispiel der Erfindung. Die Taktwandlerschaltung 1601 umfasst einen Multiplexer 1603, der das ClkC8A-Signal 1504 empfängt und ein ClkC8B-Signal 1604 liefert. Die Taktwandlerschaltung 1602 umfasst Register 1605, 1606, 1607 und 1612, ein Logikgatter 1608, einen Multiplexer 1611 und Inkrementierungsschaltungen 1609 und 1610. Ein PhShB-Signal 1614 wird an das Register 1605 angelegt, und das ClkC8A-Taktsignal 1504 wird verwendet, um das Register 1605 zu takten. Ausgänge des Registers 1605 werden als Eingang und als Takteingang an das Register 1606 angelegt. Ein Ausgang des Registers 1606 wird als Eingang an das Register 1607 und an das Logikgatter 1608 angelegt. Ein Ausgang des Registers 1606 wird verwendet, um das Register 1607 zu takten. Ein Ausgang des Registers 1607 wird an das Logikgatter 1608 angelegt. Ein Ausgang des Registers 1607 wird verwendet, um das Register 1612 zu takten. Ein Ausgang des Logikgatters 1608 wird an den Multiplexer 1611 angelegt.
  • Die Inkrementierungsschaltung 1609 inkrementiert einen eingehenden Drei-Bit-Wert um zwei. Die Inkrementierungsschaltung 1610 inkrementiert den eingehenden Drei-Bit-Wert in einer binären Weise um eins, so dass sie von 111 auf 000 zurückspringt. Der Multiplexer 1611 wählt zwischen den Drei-Bit-Ausgängen der Inkrementierungsschaltung 1609 und 1610 aus und liefert ein Drei-Bit-Ausgangssignal an das Register 1612. Das Register 1612 liefert ein Drei-Bit-Ausgangssignal, das als eingehender Drei-Bit-Wert für die Inkrementierungsschaltung 1609 und 1610 verwendet wird. Das signifikanteste Bit (most significant bit, MSB) des Drei-Bit-Ausgangssignals wird für die Ausgabe des ClkC1B-Taktsignals 1613 verwendet.
  • In 16 wird der ClkC8A-Takt, der vom PhShA-Block (1306 und 1315 in 13) erzeugt wird, anschließend verwendet, um einen ClkC8B-Takt mit derselben Frequenz und einen ClkC1B-Takt mit 1/8 der Frequenz zu erzeugen. Diese zwei Takte sind aneinander phasenangepasst (jede ansteigende Flanke des ClkC1B-Taktes ist an eine ansteigende Flanke des ClkC8B-Taktes angepasst).
  • Das Signal ClkC1B 1613 wird erzeugt, indem es durch einen Divisiondurch-acht-Zähler 1602 geleitet wird. Das ClkC8A-Signal taktet ein Drei-Bit-Register 1612, welches an jeder Taktflanke inkrementiert. Das signifikanteste Bit wird ClkC1B sein, was 1/8 der Frequenz des ClkC8A-Signals ist. Der ClkC8B-Takt 1604 wird von einem Multiplexer erzeugt, der die Takt-zu-Ausgang-Verzögerung des Drei-Bit-Registers nachbildet, so dass die Signale ClkC1B und ClkC8B aneinander angepasst sind. Wie für den Durchschnittsfachmann ersichtlich, können anstelle des im Block 1601 gezeigten Multiplexers andere Verzögerungsmittel verwendet werden, um die Aufgabe der Anpassung der Verzögerung durch den Division-durch-acht-Zähler zu bewerkstelligen.
  • Wie in bezug auf 13 erläutert wurde, ist es notwendig, die Phase des ClkC1B-Signals 1613 so auszurichten, so dass das parallele Register in den Sende- und Empfangsblöcken zur richtigen Zeit vom seriellen Register beladen werden und das serielle Register zur richtigen Zeit beladen. Bei der Initialisierung wird eine Kalibrierungsprozedur Testbits senden und empfangen, um die richtige Phasenlage des ClkC1B-Taktes zu bestimmen. Diese Prozedur wird den PhShB-Steuereingang 1614 verwenden. Wenn dieser Eingang eine ansteigende Flanke hat, wird der Drei-Bit-Zähler an einer der folgenden ClkC8A-Flanken (nach Synchronisierung) um +2 anstelle von +1 inkrementieren. Die Phase des ClkC1 B-Taktes wird um 1/8 eines Zyklus zu früheren Zeitpunkten hin verschoben. Die Kalibrierungsprozedur wird dann die Phase des ClkC1B-Taktes vorschieben und die Position von Testbits auf den TD[i][7:0] und RQ[i][7:0]-Bussen prüfen. Wenn die Testbits in der richtigen Position sind, wird die ClkC1B-Phase eingefroren.
  • 17 ist ein Blockdiagramm, das Details des PhShC-Blocks (1240 in 12) gemäß einem Ausführungsbeispiel der Erfindung illustriert. Der PhShC-Block enthält Blöcke 1701 bis 1704. Der Block 1701 umfasst ein Register 1705 und einen Multiplexer 1706. Ein Schreibdateneingang 1714 ist dem Register 1705 und dem Multiplexer 1706 zugeführt. Das Register 1705 wird durch das ClkC-Taktsignal 1215 getaktet und liefert ein Ausgangssignal an den Multiplexer 1706. Der Multiplexer 1706 empfängt ein TPhShC[0]-Auswahl-Eingangssignal 1713 und liefert ein Schreibdatenausgangssignal 1715. Der Block 1702 enthält ein Register 1707 und einen Multiplexer 1708. Ein Lesedateneingang 1717 ist einem Register 1707 und einem Multiplexer 1708 zugeführt. Das Register 1707 wird durch das ClkC-Taktsignal 1215 getaktet und liefert ein Ausgangssignal an den Multiplexer 1708. Der Multiplexer 1708 empfängt ein RPhShC[0]-Auswahl-Eingangssignal 1716 und liefert ein Lesedatenausgangssignal 1718. Der Block 1703 umfasst ein Register 1709 und einen Multiplexer 1710. Ein Schreibdateneingang 1720 ist dem Register 1709 und dem Multiplexer 1710 zugeführt. Das Register 1709 wird durch das ClkC-Taktsignal 1215 getaktet und liefert ein Ausgangssignal an den Multiplexer 1710. Der Multiplexer 1710 empfängt ein TPhShC[31]-Auswahl-Eingangssignal 1719 und liefert ein Schreibdatenausgangssignal 1721. Der Block 1704 umfasst ein Register 1711 und einen Multiplexer 1712. Ein Lesedateneingang 1723 ist dem Register 1711 und dem Multiplexer 1712 zugeführt. Das Register 1711 wird durch das ClkC-Taktsignal 1215 getaktet und liefert ein Ausgangssignal an den Multiplexer 1712. Der Multiplexer 1712 empfängt ein RpShC[31]-Auswahl-Eingangssignal 1722 und liefert ein Lesedatenausgangssignal 1724. Obwohl nur zwei Instanzen der Blöcke für die Schreibdaten und nur zwei Instanzen der Blöcke für die Lesedaten illustriert sind, versteht es sich, dass die Blöcke für jedes Bit von Schreibdaten und jedes Bit von Lesedaten repliziert werden können.
  • Der PhShC-Block 1240 ist der abschließende Logikblock, der zur Ausrichtung der Verzögerung der 32×8 Lesedatenbits und der 32×8 Schreibdatenbits verwendet wird, so dass alle im Controller-Logikblock auf derselben ClkC-Taktflanke eingespeist oder abgetastet werden. Dies wird mit einem Acht-Bit-Register bewerkstelligt, das in den Pfad der Lese- und Schreibdaten für jeden Abschnitt eingefügt werden kann. Die Einfügung der Verzögerung wird von den zwei Steuerbussen TPhShC[31:0] und RPhShC[31:0] bestimmt. Es gibt ein Steuerbit für jeden Abschnitt, da die Ausbreitungsverzögerung der Lese- und Schreibdaten eine ClkC-Grenze an jeder Speicherabschnittsposition überschreiten kann. Manche Systeme mit größeren Zeitversätzen bei den Lese- und Schreibdaten über die Speicherabschnitte hinweg können mehr als ein ClkC an Anpassung erfordern. Die gezeigten PhShC-Zellen können leicht erweitert werden, um zusätzliche Verzögerung durch Hinzufügung von mehr Registern und mehr Multiplexer-Eingängen zu schaffen.
  • Die zwei Steuerbusse TPhShC[31:0] und RPhShC[31:0] werden während der Initialisierung mit einer Kalibrierungsprozedur konfiguriert. Wie in den anderen Phasenanpassungsschritten, werden Testbits an jedem Speicherabschnitt gelesen und geschrieben und werden die Steuerbits auf die Werte gesetzt, die, im Ausführungsbeispiel, es erlauben, dass alle 256 Lesedatenbits in einem ClkC-Zyklus abgetastet werden und dass alle 256 Schreibdatenbits in einem ClkC-Zyklus von der Controllerlogik eingespeist werden.
  • 18 ist ein Blockdiagramm, das die Logikdetails der Skiplogik des Sendeblocks 203 (in 13) einer Speichercontrollerkomponente illustriert, gemäß einem Ausführungsbeispiel der Erfindung. Die Skiplogik umfasst Register 1801, 1802, 1803, 1804, und 1806, und einen Multiplexer 1805. Ein RClkC1 B-Takteingangssignal 1807 wird dem Register 1801 zugeführt, und wird zur Taktung des Registers 1803 verwendet. Das ClkCD-Takteingangssignal 1222 wird zur Taktung des Registers 1801 verwendet, welches ein Ausgangssignal an das Register 1802 liefert. Das Register 1802 empfängt das LoadSkip-Signal 1238, wird vom ClkC-Taktsignal 1215 getaktet, und liefert ein Ausgangssignal an den Multiplexer 1805, sowie ein Ausgangssignal, das zur Taktung der Register 1804 und 1806 verwendet wird. Das Register 1803 empfängt Daten in der Domäne RClkC1B am Eingang 1808 und liefert ein Ausgangssignal an das Register 1804 und den Multiplexer 1805. Das Register 1804 liefert ein Ausgangssignal an den Multiplexer 1805. Der Multiplexer 1805 liefert ein Ausgangssignal an das Regis ter 1806. Das Register 1806 liefert Daten in der Domäne ClkC am Ausgang 1809.
  • Die Schaltung überträgt die Daten der RClkC1B-Taktdomäne in die ClkC-Domäne. Diese zwei Takte haben dieselbe Frequenz, aber sie können eine beliebige Phasenausrichtung haben. Die Lösung besteht darin, RClkC1B mit einer verzögerten Version von ClkC zu takten, die als ClkCD bezeichnet wird (die Grenzen des Betrages der Verzögerung können vom System bestimmt sein, aber in einem Ausführungsbeispiel ist die nominelle Verzögerung ¼ eines ClkC-Zyklus). Der abgetastete Wert wird mit SkipR bezeichnet und bestimmt, ob die Daten in einem RClkC1B-Register direkt zu einem ClkC-Register transferiert werden können oder ob die Daten zunächst durch ein auf negativer Flanke getriggertes ClkC-Register geleitet werden müssen.
  • In bezug auf 18 können die folgenden Aufbau-Randbedingungen für den schlimmsten Fall (worst Gase setup constraints) angenommen werden:
    Fall B0 TD,MAX + tH1,MIN + tCL,MIN + tV,MAX + tM,MAX + tS,MiN <= tCYCLE oder TD,MAX <= tCH,MIN – tH1,MIN – tV,MAX – tM,MAX – tS,MIN **Raildbedmgung S**Fall D1 tD,MAX + tH1,MIN + tCYCLE + tV,MAX + tS,MIN <= tCYCLE + tCL,MIN oder tD,MAX <= tCL,MIN – tH1,MIN – tV,MAX – tS,MIN
  • Die folgenden Halte-Randbedingungen für den schlimmsten Fall (worst case setup constraints) können angenommen werden:
    Fall A1 tD,MIN – tS1,MIN + tV,MIN >= tH,MIN oder tD,MIN >= tH,MIN + tS1,MIN – tV,MIN **Randbedingung H**Fall C0 tD,MIN – tS1,MIN + tV,MIN + tM,MIN >= tH,MIN oder tD,MIN >= tH,MIN + tS1,MIN – tV,MIN – tM,MIN
  • Die oben verwendeten Timing-Parameter sind wie folgt definiert:
  • tS1
    – Aufbau(Setup)zeit für Taktabtaster
    tH1
    – Haltezeit für Taktabtaster
    tS
    – Aufbauzeit für Datenregister
    tH
    – Haltezeit für Datenregister
    tV
    – Gültige Verzögerung (Takt-zu-Ausgang) von Datenregistern
    tM
    – Ausbreitungsverzögerung des Datenmultiplexer
    tCYCLE
    – Taktzykluszeit (RClkC1B, ClkC, ClkCD)
    tCH
    – Takt-Hoch-Zeit (RClkC1B, ClkC, ClkCD)
    tCl
    – Takt-Tief-Zeit (RClkC1B, ClkC, ClkCD)
    tD
    – Offset zwischen ClkC und ClkCD (ClkCD ist später)
  • Zu beachten ist: tD,NOM ∼ tCYCLE/4 tCH,NOM tCYCLE/2 tCL,NOM tCYCLE/2
  • 19 ist ein Timingdiagramm, das die Timing-Details der Skiplogik des Empfangsblock 203 (illustriert in 13) illustriert, gemäß einem Ausführungsbeispiel der Erfindung. 19 illustriert Wellenformen eines ClkCD-Taktsignals 1901, eines ClkC-Taktsignals 1902, eines RClkC1B-(Fall A0)-Taktsignals 1903, eines RClkC1B-(Fall A1)-Taktsignals 1904, eines RClkC1B(Fall B0)-Taktisgnals 1905, eines RClkC1B(Fall B1)-Taktsignals 1906, eines RClkC1B(Fall C0)-Taktsignals 1907, eines RClkC1B(Fall C1)-Taktsignals 1908, eines RClkC1B(Fall D0)-Taktsignals 1909, und eines RClkC1B(Fall D1)-Taktsignals 1910. Zeitpunkte 1911, 1912, 1913, 1914, 1915, 1916, 1917 und 1918, in Intervallen von jeweils einem Taktzyklus, sind dargestellt, um die Timing-Differenzen zwischen den Taktsignalen anzuzeigen.
  • 19 fasst die möglichen Phasenausrichtungen von RClkC1B und ClkC allgemein als acht Fälle zusammen, die mit A0 bis D1 gekennzeichnet sind. Diese Fälle unterscheiden sich durch die Position der ansteigenden und abfallenden Flanke des RClkC1B-Signals relativ zum Setzen/Halten-Fenster der ansteigenden Flanke des ClkCD-Signals, welches RClkC1B abtastet, um den SkipR-Wert zu bestimmen. Es ist klar, dass die ansteigende oder abfallende RClkC1B-Flanke korrekt abgetastet wird, wenn sie außerhalb dieses Fensters liegt. Wenn sie an der Kante des Fensters oder innerhalb des Fensters liegt, kann sie entweder als Null oder als Eins abgetastet werden (das heißt, die Gültigkeit der Abtastung kann nicht sichergestellt werden). Die Skip-Logik ist so gestaltet worden, dass sie in beiden Fällen korrekt funktioniert, und dies bestimmt dann die Grenzen der Verzögerung des ClkCD-Taktes tD.
  • Für den Empfangsblock stellt der Fall B0 1905 den schlimmsten Fall der Aufbau-Randbedingung dar, und stellt der Fall A1 1904 den schlimmsten Fall der Halte-Randbedingung dar: tD,MAX <= tCH,MIN – tH1,MIN – tV,MAX – tM,MAX – tS,MIN **Randbedingung S** tD,MIN >= tH,MIN + tS1,MIN – tV„MIN **Randbedingung H**
  • Wie zuvor erwähnt, ist der nominelle Wert von tD (die Verzögerung von ClkCD relativ zu ClkC) der Erwartung nach ¼ eines ClkC-Zyklus. Der Wert von tD kann bis zum oben erläuterten Wert von tD,MAX nach oben hin variieren, oder nach unten hin zum Wert tD, MI N, der ebenfalls oben erläutert wurde. Wenn die Aufbaubeispielsweise tS1, tS), Halte- (beispielsweise tH1, tH) Multiplexer-Ausbreitungsverzögerungs- (beispielsweise tM) und Gültig- (beispielsweise tV) Zeiten alle auf Null gingen, könnte der tD-Wert nach oben hin bis auf tCH,MIN (die minimale Hoch-Zeit von ClkC) und bis herunter auf Null variieren. Das endliche Setzen-/Halten-Fenster von Registern und die endliche Takt-bis-Ausgabe- (Gültig-Zeit) Verzögerung sowie die Multiplexer-Verzögerung reduzieren in Kombination die erlaubbare Variation des tD-Wertes.
  • Zu beachten ist, dass es möglich wäre, einige Elemente der Skip-Logik zu ändern, ohne ihre grundlegende Funktion zu verändern. Beispielsweise könnte ein Abtasttakt ClkCD verwendet werden kann, der früher liegt und nicht später (die Ranbedingungs-Gleichungen ändern sich, aber es gibt eine ähnliche Abhängigkeit des Timing-Versatz-Bereichs von ClkC bis ClkCD von den verschiedenen Setzen-, Halten-, und Gültig-Timing-Parametern. In anderen Ausführungsbeispielen wird ein auf der negativen Flanke getriggertes RClkC1B-Register verwendet anstelle eines ClkC-Registers im Domänen-Überschreitungspfad (wiederum ändern sich die Randbedingungsgleichungen, aber es bleibt eine ähnliche Abhängigkeit des Timing-Versatz-Bereiches von ClkC bis ClkCD von den verschiednen Setzen-, Halten-, und Gültig-Timing-Parametern).
  • Schließlich sollte beachtet werden, dass der verwendete Skip-Wert vorzugsweise einmal während der Initialisierung erzeugt wird und dann in ein Register (mit dem LoadSkip-Steuersignal) geladen wird. Ein solcher statischer Wert ist gegenüber einem Wert vorzuziehen, der auf jeder ClkCD-Flanke abgetastet wird. Denn wenn die Ausrichtung von RClkC1B so ist, dass es einen Übergang in dem Setzen-/Halten-Fenster des ClkCD-Abtastregisters hat, es jedes Mal, wenn es abgetastet wird, unterschiedliche Werte erzeugen kann. Dies würde nicht die Zuverlässigkeit der Taktdomänen-Überschreitung beeinträchtigen (das RClkC1B-Datum würde korrekt in das ClkC-Register übertragen). Jedoch würde es die scheinbare Latenz der Lesedaten beeinträchtigen, gemessen in ClkC-Zyklen im Controller. Das heißt, manchmal würden die Lesedaten einen ClkC-Zyklus länger brauchen als zu anderen Zeiten. Ein Abtasten des Skip-Wertes und seine Verwendung für alle Domänen-Übergänge lösen dieses Problem. Zu beachten ist auch, dass während der Kalibrierung zu jedem Zeitpunkt, wenn die RClkC1B-Phase angepasst wird, die LoadSkip-Steuerung gepulst wird, wenn der Skip-Wert sich ändert.
  • 20 ist ein Blockdiagramm, dass die Logikdetails der Skip-Logik des Sendeblocks 202 der 13 illustriert, gemäß einem Ausführungsbeispiel der Erfindung. Die Skip-Logik umfasst Register 2001, 2002, 2003, 2004 und 2006, und einen Multiplexer 2005. Ein TClkC1B-Takteingang 2007 ist dem Register 2001 zugeführt und wird zum Takten des Registers 2006 verwendet. Ein ClkCD-Takteingang 1222 wird zur Taktung des Registers 2001 verwendet, welches ein Ausgangssignal an das Register 2002 liefert. Das Register 2002 empfängt das LoadSkip-Signal 1238 und wird vom ClkC-Taktsignal 1215 getaktet, und liefert ein Ausgangssignal an den Multiplexer 2005 sowie ein Ausgangssignal, das zum Takten der Register 2003 und 2004 verwendet wird. Das Register 2003 empfängt Daten in der Domäne ClkC an einem Eingang 2008 und liefert ein Ausgangssig nal an das Register 2004 und den Multiplexer 2005. Das Register 2004 liefert ein Ausgangssignal an den Multiplexer 2005. Der Multiplexer 2005 liefert ein Ausgangssignal an das Register 2006. Das Register 2006 liefert Daten in der Domäne TClkC1B an einen Ausgang 2009.
  • Die Schaltung der 20 wird bei der Übertragung von Daten der ClkC-Taktdomäne in die TClkC1B-Domäne verwendet. Die zwei Takte ClkC und TClkC1B haben dieselbe Frequenz, können jedoch phasenfehlangepasst sein. Eine Technik, die bei der Taktdomänen-Überschreitung verwendet werden kann, ist ein Abtasten von TClkC1B mit einer verzögerten Version von ClkC, bezeichnet als ClkCD (die Grenzen des Verzögerungsbetrages können variieren, in einem Ausführungsbeispiel ist die ausgewählte Verzögerung ¼ eines ClkC-Zyklus). Der abgetastete Wert, SkipT, bestimmt, ob die Daten in einem ClkC-Register direkt in ein TClkC1B-Register übertragen werden oder ob die Daten zuerst durch ein auf negativer Flanke getriggertes ClkC-Register geleitet werden.
  • In bezug auf 20 können die folgenden Aufbau-Randbedingungen für den schlimmsten Fall angenommen werden:
    Fall C0 tD,MIN – tS1,MIN >= tV,MAX + tM,MAX + tS,MIN oder tD,MIN >= tS1,MIN + tV,MAX + tM,MAX + tS,MIN **Randbedingung S**Fall A1 tD,MIN – tS1,MIN >= tV,MAX + tS,MIN oder tD,MIN >= tS1,MIN + tV,MAX + tS,MIN
  • Die folgenden Halte-Randbedingungen für den schlimmsten Fall können angenommen werden:
    Fall D1 tH,MIN <= tCH,MIN – tD,MAX – tH1,MIN – tV„MIN oder tD,MAX <= tCH,MIN – tH1,MIN – tV,MIN – tH,MIN oder tD,MAX <= tCL,MIN – tH1,MIN – tV,MIN – tM„MIN – tH,MIN Fall B0 tH,MIN <= tCL,MIN – tD,MAX – tH1,MIN – tV„MIN – tM,,MIN oder tD,MAX <= tCL,MIN – tH1,MIN – tV„MIN – tM,,MIN – tH,MIN **Randbedingung H**
  • Definitionen für die oben verwendeten Timing-Parameter können in der Diskussion der 18 weiter oben gefunden werden.
  • 21 ist ein Timing-Diagramm, das Timing-Details der Skip-Logik des Sendeblocks 202 der 13 illustriert, gemäß einem Ausführungsbeispiel der Erfindung. 21 illustriert Wellenformen eines ClkCD-Taktsignals 2101, eines ClkC-Taktsignals 2102, eines TClkC1B (Fall A0)-Taktsignals 2103, eines TClkC1B (Fall A1)-Taktsignals 2104, eines TClkC1B (Fall B0)-Taktsignals 2105, eines TClkC1B (Fall B1)-Taktsignals 2106, eines TClkC1B (Fall C0)-Taktsignals 2107, eines TClkC1B (Fall C1)-Taktsignals 2108, eines TClkC1B (Fall D0)-Taktsignals 2109, und eines TClkC1B (Fall D1)-Taktsignals 2110. Zeitpunkte 2111, 2112, 2113, 2114, 2115, 2116, 2117 und 2118, in Intervallen eines Taktzyklus, sind zum Anzeigen der Timing-Differenzen zwischen den Taktsignalen dargestellt.
  • 21 fasst die möglichen Phasenausrichtungen von TClkC1B und ClkC in Form acht Fällen allgemein zusammen, die mit A0 bis D1 gekennzeichnet sind. Diese Fälle unterscheiden sich in der Position der ansteigenden und abfallenden Flanke von TClkC1B relativ zum Setzen-Halten-Fenster der ansteigenden Flanke von ClkCD, das TClkC1B abtastet, um den SkipR-Wert zu bestimmen. Es ist klar, dass die ansteigende oder abfallende TClkC1B-Flanke korrekt abgetastet wird, wenn sie außerhalb dieses Fensters liegt. Wenn sie an der Kante des Fensters oder innerhalb des Fensters, kann sie entweder als Null oder als Eins abgetastet werden (das heißt, die Gültigkeit der Abtastung kann nicht sichergestellt werden). Die Skip-Logik ist so gestaltet worden, dass sie in beiden Fällen korrekt funktioniert, und dies bestimmt dann die Grenzen der Verzögerung des ClkCD-Taktes tD.
  • Für den Sendeblock stellt der Fall C0 2107 den schlimmsten Fall der Aufbau-Randbedingung dar, und stellt der Fall B0 2105 den schlimmsten Fall der Halte-Randbedingung dar: tD,MIN >= tS1,MIN + tV,MAX + tM,MAX + tS,MIN **Randbedingung S** tD,MAX >= tCL,MIN – tH1,MIN – tV,MIN – tM„MIN – tH,MIN **Randbedingung H**
  • Wie zuvor erwähnt, wird der nominelle Wert von tD (die Verzögerung von ClkCD relativ zu ClkC) ¼ eines ClkC-Zyklus betragen. Dabei kann er nach oben hin bis zum oben erläuterten tD,MAX-Wert, oder nach unten hin bis zum tD,MIN-Wert variieren. Wenn die Setzen-, Halten-, mux- (das heißt, Multiplexer), und Gültig- Zeiten alle auf Null gingen, könnte der tD-Wert nach oben hin bis zu tCH,MIN (die minimale Hoch-Zeit von ClkC) und nach unten hin bis auf Null variieren. Das endliche Setzen-/Halten-Fenster von Registern und die endliche Takt-bis-Ausgabe- (Gültig-Zeit) Verzögerung sowie die Multiplexer-Verzögerung reduzieren in Kombination die erlaubbare Variation des tD-Wertes.
  • Wie im Zusammenhang mit 19 oben beschrieben, können einige Elemente der Skip-Logik für andere Ausführungsbeispiele geändert werden, wobei Ihre allgemeine Funktionalität gewahrt bleibt. In ähnlicher Weise, wie mit Bezug auf die Skip-Logik der 19 beschrieben, wird der verwendete Skip-Wert vorzugsweise während einer Initialisierung erzeugt und dann in ein Register geladen (mit dem LoadSkip-Steuersignal).
  • 22 ist ein Timing-Diagramm, das ein Beispiel einer Datentaktungsanordnung illustriert, gemäß einem Ausführungsbeispiel der Erfindung. In diesem Beispiel sind jedoch die Taktphasen im Speichercontroller und den Speicherkomponenten auf einen anderen Wertesatz eingestellt worden als in dem Beispiel, das in den 5 bis 21 illustriert ist. Die Wellenformen eines WClkS1,M0-Taktsignals 2201 und eines RClkS1,M0-Taktsignals 2202 sind dargestellt, um das Datentiming für den Abschnitt 1 aus der Perspektive der Speichercontrollerkomponente im Abschnitt 0 zu zeigen. Die ansteigenden Flanken von aufeinanderfolgenden Zyklen des WClkS1,M0-Taktsignals 2201 treten jeweils zu Zeitpunkten 2205, 2206, 2207, 2208, 2209, 2210, 2211 und 2212 auf. Eine Schreibdatum-Information Da 2213 ist zum Zeitpunkt 2205 auf den Datenleitungen am Controller vorhanden. Eine Lesedatum-Information Qb 2204 ist zum Zeitpunkt 2208 vorhanden. Eine Lesedatum-Information Qc 2215 ist zum Zeitpunkt 2209 vorhanden. Eine Schreibdatum-Information Dd 2216 ist zum Zeitpunkt 2210 vorhanden. Eine Schreibdatum-Information De 2217 ist zum Zeitpunkt 2211 vorhanden.
  • Die Wellenformen eines WClkS1,M1-Taktsignals 2203 und eines RClkS1,M1-Taktsignals 2204 sind dargestellt, um das Datentiming für den Abschnitt 1 aus der Perspektive der Speicherkomponente im Abschnitt 1 darzustellen. Eine Schreibdatum-Information Da 2218 ist auf den Datenleitungen an der Speicher komponente zum Zeitpunkt 2206 vorhanden. Eine Lesedatum-Information Qb 2219 ist zum Zeitpunkt 2207 vorhanden. Eine Lesedatum-Information Qc 2220 ist zum Zeitpunkt 2208 vorhanden. Eine Schreibdatum-Information Dd 2221 ist zum Zeitpunkt 2211 vorhanden. Eine Schreibdatum-Information De 2222 ist zum Zeitpunkt 2212 vorhanden.
  • Das in den 5 bis 21 illustrierte Beispielsystem basierte auf der Annahme, dass der Takt für die Lese- und Schreibdaten an jeder Speicherkomponente in Phase sei. 22 basiert auf der Annahme, dass für jeden Abschnitt der Lesetakt an jeder Speicherkomponente in Phase mit dem Schreibtakt am Controller ist (RClkS1,M0 = WClkS1,M1), und da die Ausbreitungsverzögerung tPD2 in jeder Richtung dieselbe ist, der Schreibtakt an jeder Speicherkomponente in Phase ist mit den Lesetakt am Controller (WClkS1,M0 = RClkS1,M1). Diese Phasenbeziehung verschiebt die Timing-Abschnitte für die Lese- und Schreibdaten relativ zu 6, sie ändert jedoch nicht die Tatsache, dass zwei Leerlaufzyklen während einer Schreib-Lese-Lese-Schreib-Sequenz eingefügt werden. Die Phasenbeziehung ändert die Positionen innerhalb des Systems, wo Domänenüberschreitungen auftreten (manche Domänenüberschreitungslogik wird vom Controller in die Speicherkomponenten verschoben).
  • Die 23 bis 26 sind Timingdiagramme, die ein Beispiel einer Datentaktungsanordnung illustrieren, gemäß einem Ausführungsbeispiel der Erfindung. In diesem Beispiel sind die Taktphasen im Speichercontroller und den in den Speicherkomponenten jedoch auf einen anderen Wertesatz eingestellt worden als die in dem Beispiel der 5 bis 21 dargestellten. Das Beispiel in den 23 bis 26 verwendet auch einen anderen Taktphasen-Wertesatz als das Beispiel in 22.
  • 23 ist ein Timingdiagramm, das ein Beispiel einer Datentaktungsanordnung illustriert, gemäß einem Ausführungsbeispiel der Erfindung. Die Wellenformen eines WClkS1,M0-Taktsignals 2301 und eines RClkS1,M0-Taktsignals 2302 sind dargestellt, um das Datentiming für Abschnitt 1 aus der Perspektive der Speichercontrollerkomponente im Abschnitt 0 zu zeigen. Ansteigende Flanken aufeinanderfolgender Zyklen des WClkS1,M0-Taktsignals 2301 treten jeweils zu Zeitpunkten 2305, 2306, 2307 und 2308 auf. Eine Schreibdatum-Information Da 2309 ist auf dem Datenbus am Controller während eines ersten Zyklus des WClkS1,M0-Taktsignals 2301 vorhanden. Lesedatum-Information Qb 2310 ist bei einem vierten Zyklus des WClkS1,M0-Taktsignals 2301 vorhanden. Eine Lesedatum-Information Qc 2311 ist zum Zeitpunkt 2305 vorhanden. Eine Schreibdatum-Information Dd 2312 ist zum Zeitpunkt 2306 vorhanden. Eine Schreibdatum-Information De 2313 ist zum Zeitpunkt 2307 vorhanden.
  • Die Wellenformen des WClkS1,M1-Taktsignals 2303 und des RClkS1,M1-Taktsignals 2303 sind illustriert, um das Datentiming für den Abschnitt 1 aus der Perspektive der Speicherkomponente im Abschnitt 1 zu zeigen. Eine Schreibdatuminformation Da 2314 eilt einen Taktzyklus relativ zu seiner Position aus der Perspektive der Speichercontrollerkomponente im Abschnitt 0 voraus. In anderen Worten, die Schreibdaten erscheinen auf dem Datenbus an der Speichervorrichtung etwa einen Taktzyklus später als sie auf dem Datenbus am Controller erscheinen. Eine Lesedatuminformation Qb 2315 ist einen Taktzyklus relativ zu ihrer Position aus der Perspektive der Speichercontrollerkomponente im Abschnitt 0 verzögert. Eine Lesedatuminformation Qc 2316 ist ebenfalls einen Taktzyklus relativ zu ihrer Position aus der Perspektive der Speichercontrollerkomponente im Abschnitt 0 verzögert. Eine Schreibdatuminformation Dd 2317 liegt zu einem Zeitpunkt 2317 vor. Eine Schreibdatuminformation De 2318 liegt zu einem Zeitpunkt 2308 vor.
  • Das Beispielsystem nimmt an, dass die Takte für die Lese- und Schreibdaten an jeder Speicherkomponente in Phase sind. 23 nimmt an, dass für jeden Abschnitt der Lesetakt und der Schreibtakt am Controller in Phase sind (RClkS1,M0 = WClkSi,M0), und weiterhin, dass jeder Abschnitt in Phase mit jedem anderen Abschnitt am Controller in Phase ist (WClkSi,M0 = WClkSj,M0). Dies verschiebt die Timingabschnitte für die Lese- und Schreibdaten relativ zu den 6 und 22, es ändert jedoch nicht die Tatsache, dass zwei Leerlaufzyklen während einer Schreib-Lese-Schreib-Sequenz verwendet werden. Die Phasenbeziehung ändert die Position innerhalb des Systems, wo Domänenüberschrei tungen auftreten (die gesamte Domänenüberschreitungslogik rückt vom Controller in die Speicherkomponenten).
  • 6 repräsentiert den Fall, in dem alle drei Taktphasen (Adress-, Lesedaten und Schreibdaten) bei jeder Speicherkomponente gleich gesetzt werden, 23 repräsentiert den Fall, in welchem alle drei Taktphasen (Adress-, Lesedaten und Schreibdaten) beim Speichercontroller gleichgesetzt werden, und 22 repräsentiert einen möglichen dazwischen liegenden Fall. Diese Spanne von Fällen wird dargestellt, um zu betonen, dass verschiedene Ausführungsbeispiele der Erfindung mit unterschiedlicher Synchronisierung implementiert werden können. Der Speichercontroller und die Speicherkomponenten können leicht konfiguriert werden, um jegliche Kombination der Taktsynchronisierung zu unterstützen.
  • Der eine extreme Fall, in dem alle drei Taktphasen (Adress-, Lesedaten und Schreibdaten) bei jeder Speicherkomponente gleichgesetzt werden (illustriert in den 5 bis 21) ist wichtig, weil es eine einzige Taktdomäne innerhalb jeder Speicherkomponente gibt. Der andere extreme Fall, in dem alle drei Taktphasen (Adress-, Lesedaten und Schreibdaten) beim Speichercontroller gleichgesetzt werden (23) ist auch wichtig, weil es eine einzige Taktdomäne innerhalb des Controllers gibt. Die 24 bis 26 illustrieren diesen Fall näher.
  • 24 ist ein Timingdiagramm, das das Timing bei der Speichercontrollerkomponente für das Beispiel der Datentaktungsanordnung aus 23 gemäß einem Ausführungsbeispiel der Erfindung illustriert. Die Wellenformen eines AClkS0,M1-Taktsignals 2401 sind illustriert, um das Adress-Steuertiming für Speichermodul Eins aus der Perspektive der Speichercontrollerkomponente im Abschnitt 0 darzustellen. Die ansteigenden Flanken aufeinanderfolgender Zyklen des AClkS0,M1-Taktsignals treten jeweils zu Zeitpunkten 2406, 2407, 2408, 2409, 2410, 2411, 2412 und 2413 auf. Eine Adressinformation ACa 2414 liegt auf den Adresssignalleitungen am Controller zum Zeitpunkt 2406 vor. Eine Adressinformation ACb 2415 liegt zum Zeitpunkt 2407 vor. Eine Adressinformation ACc 2416 liegt zum Zeitpunkt 2408 vor. Eine Adressinformation ACd 2417 liegt zum Zeitpunkt 2412 vor.
  • Die Wellenformen eines WClkS1,M0-Taktsignals 2402 und eines RClkS1,M0-Taktsignals 2403 sind illustriert, um das Datentiming für Abschnitt 1 aus der Perspektive der Speichercontrollerkomponente im Modul 0 darzustellen. Eine Schreibdatuminformation Da 2418 liegt auf den Datenleitungen am Controller zum Zeitpunkt 2407 vor. Eine Lesedatuminformation Qb 2419 liegt zum Zeitpunkt 2411 vor. Eine Schreibdatuminformation Qc 2420 liegt zum Zeitpunkt 2412 vor. Eine Schreibdatuminformation Dd 2421 liegt zum Zeitpunkt 2413 vor.
  • Die Wellenformen eines WClkSNs,M0-Taktsignals 2404 und eines RClkSNs,M0-Taktsignals 2405 sind illustriert, um das Datentiming für Abschnitt NS aus der Perspektive der Speichercontrollerkomponente im Modul 0 darzustellen. Eine Schreibdatuminformation Da 2422 liegt auf der Datenleitung am Controller zum Zeitpunkt 2407 vor. Eine Lesedatuminformation Qb 2423 liegt zum Zeitpunkt 2411 vor. Eine Lesedatuminformation Qc 2424 liegt zum Zeitpunkt 2412 vor. Eine Schreibdatuminformation Dd 2425 liegt zum Zeitpunkt 2413 vor.
  • Die 24 bis 26 zeigen das gesamte Systemtiming für den Fall, in welchem alle Taktphasen am Controller ausgerichtet sind. 24 ist das Timing am Controller und ist analog zu 7, mit Ausnahme der Tatsache, dass die Takte alle am Controller zusammenliegen anstelle an jedem Speicherabschnitt. Als ein Ergebnis sind in 24 die Takte alle ausgerichtet, und die Zwei-Zyklus-Lücke, die der Controller in die Schreib-Lese-Lese-Schreib-Sequenz einfügt, ist zwischen den Adresspaketen ACc und ACd sichtbar.
  • 25 ist ein Timing Diagramm, das das Timing eines ersten Abschnitts einer Reihe von Speicherkomponenten für das Beispiel der Datentaktungsanordnung aus 23 illustriert, gemäß einem Ausführungsbeispiel der Erfindung. Die Wellenformen eines AClkS1,M1-Taktsignals 2501 sind illustriert, um das Adress-/Steuertiming für Speichermodul Eins aus der Perspektive der Speicherkomponente im Abschnitt 1 darzustellen. Zeitpunkte 2504, 2505, 2506, 2507, 2508, 2509, 2510 und 2511 entsprechen jeweils Zeitpunkten 2406, 2407, 2408, 2409, 2410, 2411, 2412 und 2413 der 24. Das Signal AClkS1,M1 2501 ist um eine Verzögerung tPD0 relativ zum Signal AClkS0,M1 2401 in 24 verzögert. Mit anderen Worten, das AClk-Signal benötigt eine Zeitperiode tPD0, um sich vom Controller zur Speicherkomponente fortzupflanzen. Eine Adressinformation ACa 2512 ist mit einer Flanke 2530 des Singals 2501 assoziiert. Eine Adressinformation ACb 2513 ist mit einer Flanke 2531 des Signals 2501 assoziiert. Eine Adressinformation ACc 2514 ist mit einer Flanke 2532 des Signals 2501 assoziiert. Eine Adressinformation ACd 2515 ist mit einer Flanke 2533 des Signals 2501 assoziiert.
  • Die Wellenformen des WClkS1,M1-Taktsignals 2502 und des RClkS1,M1-Taktsignals 2503 sind illustriert, um das Datentiming für Abschnitt 1 aus der Perspektive der Speicherkomponente im Modul 1 darzustellen. 25 zeigt das Timing an der ersten Speicherkomponente (Abschnitt 1), und die Takte sind inzwischen aufgrund der Fortpflanzungsverzögerungen tPD2 und tPD0 fehlangepasst: Das Signal WClkS1,M1 2502 ist um eine Verzögerung tPD2 relativ zum Signal WClkS1,M0 2402 der 24 verzögert. Eine Schreibdatuminformation Da 2516 ist mit einer Flanke 2534 des Signals 2502 assoziiert. Eine Schreibdatuminformation Dd 2519 ist mit einer Flanke 2537 des Signals 2502 assoziiert. Das Signal RClkS1,M1 2503 läuft dem Signal RClkS1,M0 2403 der 24 um tPD2 voraus. Eine Lesedatuminformation Qb 2517 ist mit einer Flanke 2535 des Signals 2503 assoziiert. Eine Lesedatuminformation Qc 2518 ist mit einer Flanke 2536 des Signals 2503 assoziiert.
  • 26 ist ein Timingdiagramm, das das Timing eines letzten Abschnitts einer Reihe von Speicherkomponenten für das Beispiel der Datentaktungsanordnung aus 23 illustriert, gemäß einem Ausführungsbeispiel der Erfindung. Die Wellenformen eines AClkS1,M1-Taktsignals 2601 sind illustriert, um das Adress-/Steuertiming für Speichermodul Eins aus der Perspektive der Speicherkomponente im Abschnitt NS darzustellen. Zeitpunkte 2604, 2605, 2606, 2607, 2608, 2609, 2610 und 2611 entsprechen jeweils den Zeitpunkten 2406, 2407, 2408, 2409, 2410, 2411, 2412 und 2413 der 24. Das Signal AClkSNs,M1 2601 ist um eine Verzögerung von tPD0 + tPD1 relativ zum Signal AClkS0,M1 2401 der 24 verzögert. Mit anderen Worten, eine Adressinformation ACa 2612 ist mit einer Flanke 2630 des Signals 2601 assoziiert. Eine Adressinformation ACb 2613 ist mit einer Flanke 2631 des Signals 2601 assoziiert. Eine Adressinformation ACc 2614 ist mit einer Flanke 2632 des Signals 2601 assoziiert. Eine Adressinformation ACd 2615 ist mit einer Flanke 2633 des Signals 2601 assoziiert.
  • Die Wellenformen eines WClkSNs,M1-Taktsignals 2602 und eines RClkSNs,M1-Taktsignals 2603 sind illustriert, um das Datentiming für Abschnitt NS aus der Perspektive der Speicherkomponente im Modul 1 darzustellen. Das Signal WClkSNs,M1 2602 ist um eine Verzögerung tPD2 relativ zum Signal WClkS1,M0 2402 der 24 verzögert. Eine Schreibdatuminformation Da 2616 ist mit einer Flanke 2634 des Signals 2602 assoziiert (beispielsweise liegt die Schreibdatuminformation Da 2616 auf dem Datenbus an der Speicherkomponente vor, wenn die Flanke 2634 des Signals 2602 auf dem AClk-Taktleiter an der Speicherkomponente vorliegt). Eine Schreibdatuminformation Dd 2619 ist mit einer Flanke 2637 des Signals 2602 assoziiert. Das Signal RClkSNs,M1 2603 läuft dem Signal RClkS1,M0 2403 der 24 um tPD2 voraus. Eine Schreibdatuminformation Qb 2617 ist mit einer Flanke 2635 des Signals 2603 assoziiert. Eine Lesedatuminformation Qc 2618 ist mit einer Flanke 2636 des Signals 2603 assoziiert.
  • 26 zeigt das Timing an der letzten Speicherkomponente (Abschnitt NS), und die Takte sind aufgrund der Fortpflanzungsverzögerungen tPD1 inzwischen weiter fehlangepasst. Als Ergebnis wird jede Speicherkomponente Domänenüberschreitungshardware aufweisen, ähnlich der, die im Controller enthalten ist, wie mit Bezug auf die 12 bis 21 beschrieben ist.
  • Zur Erinnerung: das anhand von 2 beschriebene Beispielsystem enthielt ein einzelnes Speichermodul, eine einzelne Reihe von Speicherkomponenten auf diesem Modul, einen gemeinsamen Adress- und Steuerbus (so dass jeder Controllerpin mit einem Pin auf jeder von zwei oder mehr Speicherkomponenten verbunden ist) und einen in Abschnitte unterteilten Datenbus (wobei jeder Controllerpin mit einem Pin auf genau einer Speicherkomponente verbunden ist).
  • Diese Charakteristika wurden für die Beispiel-Ausführungsformen gewählt, um die Diskussion der Details zu vereinfachen, und weil diese Konfiguration ein illustrativer spezieller Fall ist. Die Taktungsverfahren, die bisher diskutiert wurden, können jedoch auf einen größeren Bereich von Systemtopologien ausgedehnt werden. Es sollte also selbstverständlich sein, dass die Ausführungsbeispiele der Erfindung mit Systemen betrieben werden können, die Merkmale haben, welche sich von den Merkmalen des Beispielsystems der 2 unterscheiden.
  • Der Rest dieser Diskussion ist auf Systeme mit einer Mehrzahl von Speichermodulen oder einer Mehrzahl Speicherreihen pro Modul (oder beidem) fokussiert). In diesen Systemen ist jeder Datenbusdraht mit einem Controllerpin und einem Pin auf jedem der zwei oder mehr Speicherkomponenten verbunden. Da die Fortpflanzungsverzögerung tPD2 zwischen dem Controller und jeder der Speicherkomponenten unterschiedlich sein wird, wird das Problem der Taktdomänenüberschreitung im Controller komplizierter. Wenn die Wahl auf die Ausrichtung aller Takte in jeder Speicherkomponente fällt, wird der Controller einen Satz Domänenüberschreitungshardware für jede Reihe oder jedes Modul Speicherkomponenten in einem Abschnitt benötigen. Dies unterliegt insofern einem Nachteil als es eine große Controllerfläche benötigt und kritische Timingpfade nachteilig beeinflusst. In einem System mit einer Mehrzahl Modulen oder einer Mehrzahl Reihen kann es als solches vorzuziehen sein, alle Takte im Controller ausgerichtet zu halten und die Domänenüberschreitungslogik in den Speicherkomponenten anzuordnen.
  • 27 ist ein Blockdiagramm, das ein Speichersystem illustriert, welches eine Mehrzahl Reihen von Speicherkomponenten und eine Mehrzahl Speichermodule enthält, gemäß einem Ausführungsbeispiel der Erfindung. Das Speichersystem umfasst eine Speichercontrollerkomponente 2702, ein Speichermodul 2703, ein Speichermodul 2730, einen Schreibtaktgeber 2705, einen Lesetaktgeber 2706, einen Schreibtaktgeber 2726, einen Lesetaktgeber 2727, eine Splitterkomponente 2742, eine Splitterkomponente 2743, eine Abschlusskomponente 2720, eine Abschlusskomponente 2724, eine Abschlusskomponente 2737 und eine Abschlusskomponente 2740. Es sollte selbstverständlich sein, dass es wenigstens einen Schreibtaktgeber pro Abschnitt im dargestellten Beispielsystem gibt.
  • Innerhalb jedes Speichermoduls sind Speicherkomponenten in Reihen organisiert. Eine erste Reihe des Speichermoduls 2703 enthält Speicherkomponenten 2716, 2717 und 2718. Eine zweite Reihe des Speichermoduls 2703 enthält Speicherkomponenten 2744, 2745 und 2746. Eine erste Reihe des Speichermoduls 2730 enthält Speicherkomponenten 2731, 2732 und 2733. Eine zweite Reihe des Speichermoduls 2730 enthält Speicherkomponenten 2734, 2735 und 2736.
  • Das Speichersystem ist über die Speichercontrollerkomponente und die Speichermodule hinweg in Abschnitte organisiert. Beispiele dieser Abschnitte sind ein Abschnitt 2713, ein Abschnitt 2714 und ein Abschnitt 2715. Jeder Abschnitt umfasst eine Speicherkomponente von jeder Reihe. In diesem Ausführungsbeispiel hat jeder Abschnitt innerhalb jedes Speichermoduls seinen eigenen Datenbus 2708, Schreibtaktleiter 2710 und Lesetaktleiter 2711. Ein Datenbus 2708 ist an die Speichercontrollerkomponente 2702, die Speicherkomponente 2716 und die Speicherkomponente 2744 gekoppelt. Eine Abschlusskomponente 2720 ist an den Datenbus 2708 nahe der Speichercontrollerkomponente 2702 gekoppelt, und kann beispielsweise in der Speichercontrollerkomponente 2702 enthalten sein. Eine Abschlusskomponente 2721 ist nahe einem entgegengesetzten Abschluss des Datenbusses 2708 gekoppelt, und ist vorzugsweise innerhalb des Speichermoduls 2703 vorgesehen. Der Schreibtaktgeber 2705 ist an den Schreibtaktleiter 2710 gekoppelt, der an die Speichercontrollerkomponenten 2702 und an die Speicherkomponenten 2716 und 2744 gekoppelt ist. Eine Abschlusskomponente 2723 ist nahe einem Abschluss des Schreibtaktleiters 2710 nahe den Speicherkomponenten 2716 und 2744 gekoppelt, vorzugsweise innerhalb des Speichermoduls 2703. Der Lesetaktgeber 2706 ist an den Lesetaktleiter 2711 gekoppelt, der durch die Splitterkomponente 2742 an die Speichercontrollerkomponente 2702 und die Speicherkomponenten 2716 und 2744 gekoppelt ist. SplitterKomponenten sind unten detaillierter beschrieben. Eine Abschluss komponente 2724 ist nahe der Speichercontrollerkomponente 2702 gekoppelt und kann beispielsweise in der Speichercontrollerkomponente 2702 enthalten sein. Eine Abschlusskomponente 2725 ist nahe einem Abschluss des Lesetaktleiters 2711 nahe den Speicherkomponenten 2716 und 2714 gekoppelt, vorzugsweise innerhalb des Speichermoduls 2703.
  • Der Abschnitt 2713 des Speichermoduls 2730 ist mit einem Datenbus 2747, einem Schreibtaktleiter 2728 und einem Lesetaktleiter 2729 versehen. Der Datenbus 2747 ist an die Speichercontrollerkomponente 2702, die Speicherkomponente 2731 und die Speicherkomponente 2734 gekoppelt. Eine Abschlusskomponente 2737 ist an den Datenbus 2747 nahe der Speichercontrollerkomponente 2702 gekoppelt und kann beispielsweise in der Speichercontrollerkomponente 2702 enthalten sein. Eine Abschlusskomponente 2738 ist nahe einem entgegengesetzten Abschluss des Datenbus 2747 gekoppelt und ist vorzugsweise innerhalb des Speichermoduls 2730 vorgesehen. Der Schreibtaktgeber 2726 ist an den Schreibtaktleiter 2728 gekoppelt, der an die Speichercontrollerkomponente 2702 und die Speicherkomponenten 2731 und 2734 gekoppelt ist. Eine Abschlusskomponente 2739 ist nahe einem Abschluss des Schreibtaktleiters 2728 nahe den Speicherkomponenten 2731 und 2734 gekoppelt, vorzugsweise innerhalb des Speichermoduls 2730. Der Lesetaktgeber 2727 ist an den Lesetaktleiter 2729 gekoppelt, der durch den Splitterbaustein 2743 an die Speichercontrollerkomponente 2702 und die Speicherkomponenten 2731 und 2734 gekoppelt ist. Eine Abschlusskomponente 2740 ist nahe der Speichercontrollerkomponente 2702 gekoppelt, und kann beispielsweise in der Speichercontrollerkomponente 2702 enthalten sein. Eine Abschlusskomponente 2741 ist nahe einem Abschluss des Lesetaktleiters 2729 in der Nähe der Speicherkomponente 2731 und 2734 gekoppelt, vorzugsweise innerhalb des Speichermoduls 2730.
  • Der in Abschnitte unterteilte Datenbus kann auf eine Vielzahl Reihen von Speicherkomponenten und eine Vielzahl Speicherkomponenten in einem Speichersystem ausgedehnt werden. In diesem Beispiel gibt es einen fest zugeordneten Datenbus für jeden Abschnitt jedes Moduls. Jeder Datenbus wird von den Reihen der Speichergeräte auf jedem Modul geteilt. Vorzugsweise werden die Impedanzen der Drähte angeglichen, wo sie von der Hauptplatine mit gedruckter Verdrahtung auf die Module überleiten, so dass sie nicht in einem Maße unterschiedlich sind, das die Arbeitsleistung beeinträchtigt. In manchen Ausführungsbeispielen sind die Abschlusskomponenten auf jedem Modul. Ein fest zugeordneter Lese- und Schreibtakt, der mit den Daten wandert, ist für jeden Datenbus dargestellt, obwohl diese als virtuelle Takte betrachtet werden könnten; d. h. die Lese- und Schreibtakte könnten aus dem Adress-/Steuertakt wie in dem Beispielsystem synthetisiert werden, das bereits beschrieben wurde.
  • 28 ist ein Blockdiagramm, das ein Speichersystem illustriert, welches eine Mehrzahl an Reihen von Speicherkomponenten und eine Mehrzahl Speichermodule umfasst, gemäß einem Ausführungsbeispiel der Erfindung. Das Speichersystem umfasst eine Speichercontrollerkomponente 2802, ein Speichermodul 2803, ein Speichermodul 2830, einen Schreibtaktgeber 2805, einen Lesetaktgeber 2806, eine Splitterkomponente 2842, eine Splitterkomponente 2843, eine Splitterkomponente 2848, eine Splitterkomponente 2849, eine Splitterkomponente 2850, eine Splitterkomponente 2851, eine Abschlusskomponente 2820, eine Abschlusskomponente 2824, eine Abschlusskomponente 2880 und eine Abschlusskomponente 2881.
  • Innerhalb jedes Speichermoduls sind Speicherkomponenten in Reihen organisiert. Eine erste Reihe des Speichermoduls 2803 enthält Speicherkomponenten 2816, 2817 und 2818. Eine zweite Reihe des Speichermoduls 2803 enthält Speicherkomponenten 2844, 2845 und 2846. Eine erste Reihe des Speichermoduls 2830 enthält Speicherkomponenten 2831, 2832 und 2833. Eine zweite Reihe des Speichermoduls 2830 enthält Speicherkomponenten 2834, 2835 und 2836.
  • Das Speichersystem ist über die Speichercontrollerkomponente und die Speichermodule hinweg in Abschnitte organisiert. Beispiele dieser Abschnitte schließen die Abschnitte 2813, 2814 und 2815 ein. Jeder Abschnitt umfasst eine Speicherkomponente jeder Reihe. In diesem Ausführungsbeispiel ist jeder Abschnitt über eine Vielzahl Speichermodule mit einem Datenbus 2808, einem Schreibtaktleiter 2810 und einem Lesetaktleiter 2811 versehen. Der Datenbus 2808 ist an die Speichercontrollerkomponente 2802 gekoppelt, über den Splitter 2848 an die Speicherkomponenten 2816 und 2844, und über den Splitter 2849 an die Speicherkomponenten 2831 und 2834. Eine Abschlusskomponente 2820 ist an den Datenbus 2808 in der Nähe der Speichercontrollerkomponente 2802 gekoppelt und kann beispielsweise in der Speichercontrollerkomponente 2802 enthalten sein. Eine Abschlusskomponente 2880 ist in der Nähe eines entgegengesetzten Abschlusses des Datenbusses 2808 gekoppelt, nahe dem Splitter 2849. Eine Abschlusskomponente 2821 ist in der Nähe der Speicherkomponenten 2816 und 2844 gekoppelt und ist vorzugsweise innerhalb des Speichermoduls 2803 vorgesehen. Eine Abschlusskomponente 2838 ist in der Nähe der Speicherkomponenten 2831 und 2834 gekoppelt und ist vorzugsweise innerhalb des Speichermoduls 2830 vorgesehen.
  • Der Schreibtaktgeber 2805 ist an den Schreibtaktleiter 2810 gekoppelt, der an die Speichercontrollerkomponente 2802, über den Splitter 2850 an die Speicherkomponenten 2816 und 2844, und über den Splitter 2851 an die Speicherkomponenten 2831 und 2834 gekoppelt ist. Eine Abschlusskomponente 2881 ist in der Nähe eines Abschlusses des Schreibtaktleiters 2810 gekoppelt, nahe dem Abschluss 2851. Eine Abschlusskomponente 2823 ist nahe den Speicherkomponenten 2816 und 2844 gekoppelt, vorzugsweise innerhalb des Speichermoduls 2803. Eine Abschlusskomponente 2839 ist in der Nähe der Speicherkomponenten 2831 und 2834 gekoppelt, vorzugsweise innerhalb des Speichermoduls 2830.
  • Der Lesetaktgeber 2806 ist an den Lesetaktleiter 2811 gekoppelt, der durch den Splitterbaustein 2843 an die Speicherkomponenten 2831 und 2834, und durch den Splitterbaustein 2842 and die Speichercontrollerkomponente 2802 und die Speicherkomponenten 2816 und 2844 gekoppelt ist. Eine Abschlusskomponente 2824 ist in der Nähe der Speichercontrollerkomponente 2802 gekoppelt, und kann beispielsweise in der Speichercontrollerkomponente 2802 enthalten sein. Eine Abschlusskomponente 2825 ist in der Nähe eines Abschlusses des Lesetaktleiters 2811, nahe den Speicherkomponenten 2816 und 2844 gekoppelt, vorzugsweise innerhalb des Speichermoduls 2803. Eine Abschlusskomponente 2841 ist in der Nähe eines Abschlusses des Lesetaktleiters 2811, nahe den Speicherkomponenten 2831 und 2834 gekoppelt, vorzugsweise innerhalb des Speichermoduls 2830.
  • Wie illustriert, verwendet dieses Beispiel einen einzelnen Datenbus pro Datenabschnitt, der von allen Speichermodulen geteilt wird, wie in 28. In diesem Beispiel ist jeder Datendraht verzweigt, unter Verwendung einer gewissen Form von Splitterkomponente S. Dieser Splitter könnte ein passiver Impedanzanpasser (drei Widerstände in einer Delta- oder y-Konfiguration) oder eine gewisse Form eines aktiven Puffer- oder Schaltelements sein. In jedem Fall bleibt die elektrische Impedanz jedes Drahtes über seine gesamte Länge aufrecht erhalten (innerhalb von Herstellungsgrenzen), so dass die Signalintegrität hoch gehalten wird. Wie in der vorhergehenden Konfiguration ist jeder abgespaltene Datenbus auf ein Speichermodul geführt, an allen Speicherkomponenten im Abschnitt vorbei, und in eine Abschlusskomponente hinein.
  • 29 ist ein Blockdiagramm, das ein Speichersystem illustriert, welches eine Mehrzahl an Reihen von Speicherkomponenten und eine Mehrzahl Speichermodule enthält, gemäß einem Ausführungsbeispiel der Erfindung. Das Speichersystem umfasst eine Speichercontrollerkomponente 2902, ein Speichermodul 2903, ein Speichermodul 2930, einen Schreibtaktgeber 2905, einen Lesetaktgeber 2906, eine Abschlusskomponente 2920, eine Abschlusskomponente 2921, eine Abschlusskomponente 2923 und eine Abschlusskomponente 2924.
  • Innerhalb jedes Speichermoduls sind Speicherkomponenten in Reihen organisiert. Eine erste Reihe des Speichermoduls 2903 enthält Speicherkomponenten 2916, 2917 und 2918. Eine zweite Reihe des Speichermoduls 2903 enthält Speicherkomponenten 2924, 2945 und 2946. Eine erste Reihe des Speichermoduls 2930 enthält Speicherkomponenten 2931, 2932 und 2933. Eine zweite Reihe des Speichermoduls 2930 enthält Speicherkomponenten 2934, 2935 und 2936.
  • Das Speichersystem ist in Abschnitte über die Speichercontrollerkomponente und die Speichermodule hinweg organisiert. Beispiele dieser Abschnitte schließen einen Abschnitt 2913, einen Abschnitt 2914 und einen Abschnitt 2915 ein. Jeder Abschnitt umfasst eine Speicherkomponente jeder Reihe. In diesem Ausführungsbeispiel teilt jeder Abschnitt über die Speichermodule hinweg einen gemeinsamen prioritätisch verketteten (daisy-chained) Datenbus 2908, einen gemeinsamen prioritätisch verketteten Schreibtaktleiter 2910 und einen gemeinsamen prioritätisch verketteten Lesetaktleiter 2911. Der Datenbus 2908 ist an die Speichercontrollerkomponente 2902, die Speicherkomponente 2916, die Speicherkomponente 2944, die Speicherkomponente 2931 und die Speicherkomponente 2934 gekoppelt. Eine Abschlusskomponente 2920 ist an den Datenbus 2908 in der Nähe der Speichercontrollerkomponente 2902 gekoppelt und kann beispielsweise in der Speichercontrollerkomponente 2902 enthalten sein. Eine Abschlusskomponente 2921 ist nahe einem entgegengesetzten Abschluss des Datenbusses 2908 gekoppelt.
  • Der Schreibtaktgeber 2905 ist an den Schreibtaktleiter 2910 gekoppelt, der an die Speichercontrollerkomponente 2902 und die Speicherkomponenten 2916, 2944, 2931 und 2934 gekoppelt ist. Eine Abschlusskomponente 2923 ist in der Nähe eines Abschlusses des Schreibtaktleiters 2910 gekoppelt. Der Lesetaktgeber 2906 ist an den Lesetaktleiter 2911 gekoppelt, der an die Speichercontrollerkomponente 2902 und die Speicherkomponenten 2916, 2944, 2931 und 2934 gekoppelt ist. Eine Abschlusskomponente 2924 ist in der Nähe der Speichercontrollerkomponente 2902 gekoppelt und kann beispielsweise in der Speichercontrollerkomponente 2902 enthalten sein.
  • In diesem Ausführungsbeispiel gibt es einen einzelnen Datenbus pro Datenabschnitt, aber anstelle der Verwendung von Splitterkomponenten ist jeder Datendraht auf ein Speichermodul geführt, an allen Speicherkomponenten des Abschnittes vorbei und zurück vom Modul und auf die Hauptplatine, um „kettenartig" durch ein anderes Modul zu verlaufen oder in eine Abschlusskomponente hinein zu führen. Dieselben drei Konfigurationsalternativen, die oben mit Blick auf den Datenbus beschrieben wurden, sind auch für einen gemeinsamen Steuer-/Adressbus in einem Multi-Modul-, Multi-Reihen-Speichersystem anwendbar.
  • 30 ist ein Blockdiagramm, das ein Speichersystem illustriert, welches eine Mehrzahl an Reihen von Speicherkomponenten und eine Mehrzahl Speichermodule mit einem fest zugeordneten Steuer-/Adressbus pro Speichermodul enthalten kann, gemäß einem Ausführungsbeispiel der Erfindung. Das Speichersystem umfasst eine Speichercontrollerkomponente 3002, ein Speichermodul 3003, ein Speichermodul 3030, einen Adress-/Steuertaktgeber 3004, einen Adress-/Steuertaktgeber 3053, eine Abschlusskomponente 3052 und eine Abschlusskomponente 3056.
  • Innerhalb jedes Speichermoduls sind Speicherkomponenten in Reihen organisiert. Eine erste Reihe des Speichermoduls 3003 enthält Speicherkomponenten 3016, 3017 und 3018. Eine zweite Reihe des Speichermoduls 3003 enthält Speicherkomponenten 3044, 3045 und 3046. Eine erste Reihe des Speichermoduls 3030 enthält Speicherkomponenten 3031, 3032 und 3033. Eine zweite Reihe des Speichermoduls 3030 enthält Speicherkomponenten 3034, 3035 und 3036.
  • Das Speichersystem ist über die Speichercontrollerkomponente und die Speichermodule hinweg in Abschnitte organisiert. Beispiele dieser Abschnitte schließen einen Abschnitt 3013, einen Abschnitt 3014 und einen Abschnitt 3015 ein. Jeder Abschnitt umfasst eine Speicherkomponente jeder Reihe. In diesem Ausführungsbeispiel ist jedes Speichermodul mit seinem eigenen Adressbus 3007 und einem Adress-/Steuertaktleiter 3010 versehen. Der Adressbus 3007 ist an die Speichercontrollerkomponenten 3002 und an die Speicherkomponenten 3016, 3017, 3018, 3044, 3045 und 3046 gekoppelt. Eine Abschlusskomponente 3052 ist an den Adressbus 3007 in der Nähe der Speichercontrollerkomponente 3002 gekoppelt, und kann beispielsweise in der Speichercontrollerkomponente 3002 enthalten sein. Eine Abschlusskomponente 3019 ist in der Nähe eines entgegengesetzten Abschlusses des Adressbusses 3007 gekoppelt und ist vorzugsweise innerhalb des Speichermoduls 3003 vorgesehen. Der Adress- /Steuertaktgeber 3004 ist an einen Adress-/Steuertaktleiter 3009 gekoppelt, der an die Speichercontrollerkomponente 3002 und an die Speicherkomponenten 3016, 3017, 3018, 3044, 3045 und 3046 gekoppelt ist. Eine Abschlusskomponente 3022 ist in der Nähe eines Abschlusses des Adress-/Steuertaktleiters 3009 gekoppelt, vorzugsweise innerhalb des Speichermoduls 3003.
  • Das Speichermodul 3030 ist mit einem Adressbus 3054 und einem Adress-/Steuertaktleiter 3055 versehen. Der Adressbus 3054 ist an die Speichercontrollerkomponente 3002 und an die Speicherkomponenten 3031, 3032, 3033, 3034, 3035, und 3036 gekoppelt. Eine Abschlusskomponente 3056 ist an den Adressbus 3054 in der Nähe der Speicherkomponente 3002 gekoppelt, und kann beispielsweise in der Speichercontrollerkomponente 3002 enthalten sein. Eine Abschlusskomponente 3057 ist in der Nähe eines entgegengesetzten Abschlusses des Adressbusses 3054 gekoppelt und ist vorzugsweise innerhalb des Speichermoduls 3030 vorgesehen. Der Adress-/Steuertaktgeber 3053 ist an einen Adress-/Steuertaktleiter 3055 gekoppelt, der an die Speichercontrollerkomponente 3002 und an die Speicherkomponenten 3031, 3032, 3033, 3034, 3035 und 3036 gekoppelt ist. Eine Abschlusskomponente 3058 ist in der Nähe eines Abschlusses des Adress-/Steuertaktleiters 3055 gekoppelt, vorzugsweise innerhalb des Speichermoduls 3030.
  • Jeder Steuer-/Adressdraht ist auf ein Speichermodul geführt, an allen Speicherkomponenten vorbei, und in eine Abschlusskomponente hinein. Die Drahtführung ist in der Richtung der Reihen auf dem Modul dargestellt, aber der Draht könnte auch in der Richtung von Abschnitten geführt sein.
  • 31 ist ein Blockdiagramm, das ein Speichersystem illustriert, welches eine Mehrzahl an Reihen von Speicherkomponenten und eine Mehrzahl Speichermodule mit einem einzelnen Steuer-/Adressbus, der von den Speichermodulen geteilt wird, enthält, gemäß einem Ausführungsbeispiel der Erfindung. Das Speichersystem umfasst eine Speichercontrollerkomponente 3102, ein Speichermodul 3103, ein Speichermodul 3130, einen Adress-/Steuertaktgeber 3104, eine Splitterkomponente 3159, eine Splitterkomponente 3160, eine Splitterkom ponente 3161, eine Splitterkomponente 3162, eine Abschlusskomponente 3163 und eine Abschlusskomponente 3164.
  • Innerhalb jedes Speichermoduls sind Speicherkomponenten in Reihen organisiert. Eine erste Reihe des Speichermoduls 3103 enthält Speicherkomponenten 3116, 3117 und 3118. Eine zweite Reihe des Speichermoduls 3103 enthält Speicherkomponenten 3144, 3145 und 3146. Eine erste Reihe des Speichermoduls 3130 enthält Speicherkomponenten 3131, 3132 und 3133. Eine zweite Reihe des Speichermoduls 3130 enthält Speicherkomponenten 3134, 3135 und 3136.
  • Das Speichersystem ist in Abschnitte über die Speichercontrollerkomponente und die Speichermodule hinweg organisiert. Beispiele dieser Abschnitte schließen einen Abschnitt 3113, einen Abschnitt 3114 und einen Abschnitt 3115 ein. Jeder Abschnitt umfasst eine Speicherkomponente jeder Reihe. In diesem Ausführungsbeispiel sind ein Adressbus 3107 und ein Adress-/Steuertaktleiter 3109 an jede Speicherkomponente unter einer Mehrzahl Speichermodulen gekoppelt. Ein Adressbus 3107 ist an die Speichercontrollerkomponente 3102, über den Splitter 3159 an die Speicherkomponenten 3116, 3117, 3118, 3144, 3145 und 3146, und über den Splitter 3161 an die Speicherkomponenten 3131, 3132, 3133, 3134, 3135 und 3136 gekoppelt. Eine Abschlusskomponente 3152 ist an den Adressbus 3107 in der Nähe der Speichercontrollerkomponente 3102 gekoppelt, und kann beispielsweise in der Speichercontrollerkomponente 3102 enthalten sein. Eine Abschlusskomponente 3163 ist in der Nähe eines Entgegengesetzten Abschlusses des Adressbusses 3107 gekoppelt, nahe dem Splitter 3161. Eine Abschlusskomponente 3119 ist an den Adressbus 3107 gekoppelt, vorzugsweise innerhalb des Speichermoduls 3103. Eine Abschlusskomponente 3157 ist an den Adressbus 3107 gekoppelt, vorzugsweise innerhalb des Speichermoduls 3130.
  • Der Adress-/Steuertaktgeber 3104 ist an den Adress-/Steuertaktleiter 3109 gekoppelt, der an die Speichercontrollerkomponente 3102, über den Splitter 3160 an die Speicherkomponenten 3116, 3117, 3118, 3144, 3145 und 3146 und über den Splitter 3162 an die Speicherkomponenten 3131, 3132, 3133, 3134, 3135 und 3136 gekoppelt ist. Eine Abschlusskomponente 3164 ist in der Nähe eines Abschlusses des Adress-/Steuertaktleiters 3109 gekoppelt, nahe dem Splitter 3162. Eine Abschlusskomponente 3122 ist an den Adress-/Steuertaktleiter 3109 gekoppelt, vorzugsweise innerhalb des Speichermoduls 3103. Eine Abschlusskomponente 3158 ist an den Adress-/Steuertaktleiter 3109 gekoppelt, vorzugsweise innerhalb des Speichermoduls 3130.
  • In diesem Beispiel ist jeder Steuer-/Adressdraht verzweigt, unter Verwendung einer gewissen Form einer Splittingkomponente S. Dieser Splitter könnte ein passiver Impedanzanpasser (drei Widerstände in einer Delta- oder y-Konfiguration) oder eine gewisse Form eines aktiven Puffer- oder Schalterelements sein. In jedem Fall bleibt die elektrische Impedanz jedes Drahtes über seine gesamte Länge aufrecht erhalten (innerhalb von Herstellungsgrenzen), so dass die Signalintegrität hoch gehalten wird. Wie in der vorhergehenden Konfiguration ist jeder abgespaltene Datenbus auf ein Speichermodul geführt, an allen Speicherkomponenten im Abschnitt vorbei, und in eine Abschlusskomponente hinein.
  • 32 ist ein Blockdiagramm, das ein Speichersystem illustriert, welches eine Mehrzahl an Reihen von Speicherkomponenten und eine Mehrzahl Speichermodule mit einem einzelnen Steuer-/Adressbus, der von allen Speichermodulen geteilt wird, enthält, gemäß einem Ausführungsbeispiel der Erfindung. Das Speichersystem umfasst eine Speichercontrollerkomponente 3202, ein Speichermodul 3203, ein Speichermodul 3230, einen Adress-/Steuertaktgeber 3204, eine Abschlusskomponente 3219 und eine Abschlusskomponente 3222.
  • Innerhalb jedes Speichermoduls sind Speicherkomponenten in Reihen organisiert. Eine erste Reihe des Speichermoduls 3203 enthält Speicherkomponenten 3216, 3217 und 3218. Eine zweite Reihe des Speichermoduls 3203 enthält Speicherkomponenten 3244, 3245 und 3246. Eine erste Reihe des Speichermoduls 3230 enthält Speicherkomponenten 3231, 3232 und 3233. Eine zweite Reihe des Speichermoduls 3230 enthält Speicherkomponenten 3234, 3235 und 3236.
  • Das Speichersystem ist in Abschnitte über die Speichercontrollerkomponente und die Speichermodule hinweg organisiert. Beispiel dieser Abschnitte schließen einen Abschnitt 3213, einen Abschnitt 3214 und einen Abschnitt 3215 ein. Jeder Abschnitt umfasst eine Speicherkomponente jeder Reihe. In diesem Ausführungsbeispiel teilen sich die Speicherkomponenten der Speichermodule einen gemeinsamen prioritätisch verketteten Adressbus 3207 und einen gemeinsamen prioritätisch verketteten Adress-/Steuertaktleiter 3209. Ein Adressbus 3207 ist an die Speichercontrollerkomponente 3202 und an die Speicherkomponenten 3216, 3217, 3218, 3244, 3245, 3246, 3231, 3232, 3233, 3234, 3235 und 3236 gekoppelt. Eine Abschlusskomponente 3252 ist an den Adressbus 3207 in der Nähe der Speichercontrollerkomponente 3202 gekoppelt, und kann beispielsweise in der Speichercontrollerkomponente 3202 enthalten sein. Eine Abschlusskomponente 3219 ist in der Nähe eines entgegengesetzten Abschlusses des Adressbusses 3207 gekoppelt.
  • Der Adress-/Steuertaktgeber 3204 ist an den Adress-/Steuertaktleiter 3209 gekoppelt, der an die Speichercontrollerkomponente 3202 und die Speicherkomponenten 3216, 3217, 3218, 3244, 3245, 3246, 3231, 3232, 3233, 3234, 3235 und 3236 gekoppelt ist. Eine Abschlusskomponente 3222 ist in der Nähe eines Abschlusses des Adress-/Steuertaktleiters 3209 gekoppelt.
  • Anders als im Speichersystem der 31 ist, anstelle der Verwendung einer gewissen Art einer Splitterkomponente, jeder Steuer-/Adressdraht auf ein Speichermodul geführt, an allen Speicherkomponenten vorbei, und von dem Modul zurück sowie auf die Hauptplatine, um kettenartig durch ein anderes Speichermodul oder in eine Abschlusskomponente hineinzuführen.
  • Die selben drei Konfigurationsalternativen sind möglich für einen in Abschnitte unterteilten Steuer-/Adressbus in einem Mehr-Modul-Mehr-Reihen-Speichersystem. Dies stellt eine Abweichung von den Systemen dar, die bis zu diesem Punkt diskutiert worden sind – die vorhergehenden Systeme hatten alle einen Steuer-/Adressbus, der über die Speicherabschnitte hinweg gemeinsam war. Es ist auch möglich, statt dessen einen Adress-/Steuerbus pro Abschnitt vorzusehen. Jeder Bus ist vorzugsweise zusammen mit dem Datenbus für jeden Abschnitt geführt und hat vorzugsweise die selben topologischen Charakteristika wie ein Datenbus, der nur Schreiboperationen durchführt.
  • 33 ist ein Blockdiagramm, das ein Speichersystem illustriert, welches eine Mehrzahl an Reihen von Speicherkomponenten und eine Mehrzahl Speichermodule mit einem fest zugeordneten in Abschnitte unterteilten Steuer-/ Adressbus pro Speichermodul enthält, gemäß einem Ausführungsbeispiel der Erfindung. Das Speichersystem umfasst eine Speichercontrollerkomponente 3302, ein Speichermodul 3303, ein Speichermodul 3330, einen Adress-/Steuertaktgeber 3304, einen Adress-/Steuertaktgeber 3353, eine Abschlusskomponente 3352 und eine Abschlusskomponente 3356.
  • Innerhalb jedes Speichermoduls sind Speicherkomponenten in Reihen organisiert. Eine erste Reihe des Speichermoduls 3303 enthält Speicherkomponenten 3316, 3317 und 3318. Eine zweite Reihe des Speichermoduls 3303 enthält Speicherkomponenten 3344, 3345 und 3346. Eine erste Reihe des Speichermoduls 3330 enthält Speicherkomponenten 3331, 3332 und 3333. Eine zweite Reihe des Speichermoduls 3330 enthält Speicherkomponenten 3334, 3335 und 3336.
  • Das Speichersystem ist in Abschnitte über die Speichercontrollerkomponente und die Speichermodule hinweg organisiert. Beispiele dieser Abschnitte schließen einen Abschnitt 3313, einen Abschnitt 3314 und einen Abschnitt 3315 ein. Jeder Abschnitt umfasst eine Speicherkomponente jeder Reihe. In diesem Beispiel ist jeder Abschnitt innerhalb jedes Speichermoduls mit seinem eigenen Adressbus 3307 und Adress-/Steuertaktleiter 3310 versehen. Der Adressbus 3307 ist an die Speichercontrollerkomponente 3302 und die Speicherkomponenten 3316 und 3344 gekoppelt. Eine Abschlusskomponente 3252 ist an den Adressbus 3307 in der Nähe der Speichercontrollerkomponente 3302 gekoppelt, und kann beispielsweise in der Speichercontrollerkomponente 3302 enthalten sein. Eine Abschlusskomponente 3319 ist in der Nähe eines entgegengesetzten Abschlusses des Adressbusses 3307 gekoppelt, und ist vorzugsweise innerhalb des Speichermoduls 3303 vorgesehen. Der Adress-/Steuertaktgeber 3304 ist an den Adress-/Steuertaktleiter 3309 gekoppelt, der an die Speichercontrollerkomponente 3302 und die Speicherkomponenten 3316 und 3344 gekoppelt ist. Eine Abschlusskomponente 3322 ist in der Nähe eines Abschlusses eines Adress-/Steuertaktleiters 3309 gekoppelt, vorzugsweise innerhalb des Speichermoduls 3303.
  • Dem Speichermodul 3330 ist der Adressbus 3354 und der Adress-/Steuertaktleiter 3355 zugeführt. Der Adressbus 3354 ist an die Speichercontrollerkomponente 3302 und an die Speicherkomponenten 3331 und 3334 gekoppelt. Eine Abschlusskomponente 3356 ist an den Adressbus 3354 in der Nähe der Speichercontrollerkomponente 3302 gekoppelt, und kann beispielsweise in der Speichercontrollerkomponente 3302 enthalten sein. Eine Abschlusskomponente 3357 ist in der Nähe eines entgegengesetzten Abschlusses des Adressbusses 3354 gekoppelt, und ist vorzugsweise innerhalb des Speichermoduls 3330 vorgesehen. Der Adress-/Steuertaktgeber 3353 ist an den Adress-/Steuertaktleiter 3355 gekoppelt, der an die Speichercontrollerkomponente 3302 und an die Speicherkomponenten 3331 und 3334 gekoppelt ist. Eine Abschlusskomponente 3358 ist in der Nähe eines Abschlusses des Adress-/Steuertaktleiters 3335 gekoppelt, vorzugsweise innerhalb des Speichermoduls 3330. Jeder Steuer-/Adressdraht ist auf ein Speichermodul geleitet, an allen Speicherkomponenten im Abschnitt vorbei, und in eine Abschlusskomponente hinein.
  • 34 ist ein Blockdiagramm, das ein Speichersystem illustriert, welches eine Mehrzahl an Reihen von Speicherkomponenten und eine Mehrzahl Speichermodule mit einem einzelnen Steuer-/Adressbus, der von allen Speichermodulen geteilt wird, enthält, gemäß einem Ausführungsbeispiel der Erfindung. Das Speichersystem umfasst eine Speichercontrollerkomponente 3402, ein Speichermodul 3403, ein Speichermodul 3430, einen Adress-/ Steuertaktgeber 3404, eine Splitterkomponente 3459, eine Splitterkomponente 3460, eine Splitterkomponente 3461, eine Splitterkomponente 3462, eine Abschlusskomponente 3463 und eine Abschlusskomponente 3464.
  • Innerhalb jedes Speichermoduls sind die Speicherkomponenten in Reihen organisiert. Eine erste Reihe des Speichermoduls 3403 enthält Speicherkomponenten 3416, 3417 und 3418. Eine zweite Reihe des Speichermoduls 3403 enthält Speicherkomponenten 3444, 3445 und 3446. Eine erste Reihe des Speichermoduls 3130 enthält Speicherkomponenten 3431, 3432 und 3433. Eine zweite Reihe des Speichermoduls 3430 enthält Speicherkomponenten 3434, 3435 und 3436.
  • Das Speichersystem ist in Abschnitte über die Speichercontrollerkomponente und die Speichermodule hinweg organisiert. Beispiele dieser Abschnitte beinhalten einen Abschnitt 3413, einen Abschnitt 3414 und einen Abschnitt 3415. Jeder Abschnitt umfasst eine Speicherkomponente jeder Reihe. In diesem Ausführungsbeispiel sind ein Adressbus 3407 und ein Adress-/ Steuertaktleiter 3409 an jede Speicherkomponente in einem Abschnitt zwischen einer Vielzahl Speicherkomponenten gekoppelt. Der Adressbus 3407 ist an die Speichercontrollerkomponente 3402, über den Splitter 3459 and die Speicherkomponenten 3416 und 3444 und über den Splitter 3461 an die Speicherkomponenten 3431 und 3434 gekoppelt. Eine Abschlusskomponente 3452 ist an den Adressbus 3407 in der Nähe der Speichercontrollerkomponente 3402 gekoppelt, und kann beispielsweise in der Speichercontrollerkomponente 3402 enthalten sein. Eine Abschlusskomponente 3463 ist in der Nähe eines entgegengesetzten Abschlusses des Adressbus 3407 gekoppelt, nahe dem Splitter 3461. Eine Abschlusskomponente 3419 ist an den Adressbus 3407 gekoppelt, vorzugsweise innerhalb des Speichermoduls 3403. Eine Abschlusskomponente 3457 ist an den Adressbus 3407 gekoppelt, vorzugsweise innerhalb des Speichermoduls 3430.
  • Der Adress-/Steuertaktgeber 3404 ist an den Adress-/Steuertaktleiter 3409 gekoppelt, der an die Speichercontrollerkomponente 3402, über den Splitter 3460 an die Speicherkomponenten 3416 und 3444 und über den Splitter 3462 an die Speicherkomponenten 3431 und 3434 gekoppelt ist. Eine Abschlusskomponente 3464 ist nahe einem Abschluss des Adress-/Steuertaktleiters 3409 gekoppelt, nahe dem Splitter 3462. Eine Abschlusskomponente 3422 ist an den Adress-/Steuertaktleiter 3409 gekoppelt, vorzugsweise innerhalb des Speichermoduls 3403. Eine Abschlusskomponente 3458 ist an den Adress-/Steuertaktleiter 3409 gekoppelt, vorzugsweise innerhalb des Speichermoduls 3430.
  • In diesem Beispiel ist jeder Steuer-/Adressdraht verzweigt, unter Verwendung einer gewissen Form einer Splitterkomponente S. Dieser Splitter könnte ein passiver Impedanzanpasser (drei Widerstände in einer Delta- oder y-Konfiguration) oder eine gewisse Form eines aktiven Puffer- oder Schalterelements sein. In jedem Fall bleibt die elektrische Impedanz jedes Drahtes über seine gesamte Länge aufrecht erhalten (innerhalb von Herstellungsgrenzen), so dass die Signalintegrität hoch gehalten wird. Wie in der vorhergehenden Konfiguration ist jeder abgespaltene Datenbus auf ein Speichermodul geführt, an allen Speicherkomponenten im Abschnitt vorbei, und in eine Abschlusskomponente hinein.
  • 35 ist ein Blockdiagramm, das ein Speichersystem illustriert, welches eine Mehrzahl an Reihen von Speicherkomponenten und eine Mehrzahl Speichermodule mit einem einzelnen Steuer-/Adressbus, der von allen Speichermodulen geteilt wird, enthält, gemäß einem Ausführungsbeispiel der Erfindung. Das Speichersystem umfasst eine Speichercontrollerkomponente 3502, ein Speichermodul 3503, ein Speichermodul 3530, einen Adress-/Steuertaktgeber 3504, eine Abschlusskomponente 3515 und eine Abschlusskomponente 3522.
  • Innerhalb jedes Speichermoduls sind die Speicherkomponenten in Reihen organisiert. Eine erste Reihe des Speichermoduls 3503 enthält Speicherkomponenten 3516, 3517 und 3518. Eine zweite Reihe des Speichermoduls 2903 ent hält Speicherkomponenten 3544, 3545 und 3546. Eine erste Reihe des Speichermoduls 3130 enthält Speicherkomponenten 3531, 3532 und 3533. Eine zweite Reihe des Speichermoduls 3530 enthält Speicherkomponenten 3534, 3535 und 3536.
  • Das Speichersystem ist in Abschnitte über die Speichercontrollerkomponente und die Speichermodule hinweg organisiert. Beispiel dieser Abschnitte schließen einen Abschnitt 3513, einen Abschnitt 3514 und einen Abschnitt 3515 ein. Jeder Abschnitt umfasst eine Speicherkomponente jeder Reihe. In diesem Ausführungsbeispiel teilen sich die Speicherkomponenten der Speichermodule einen gemeinsamen prioritätisch verketteten Adressbus 3507 und einen gemeinsamen prioritätisch verketteten Adress-/Steuertaktleiter 3509. Ein Adressbus 3507 ist an die Speichercontrollerkomponente 3502 und an die Speicherkomponenten 3516, 3544, 3531 und 3534 gekoppelt. Eine Abschlusskomponente 3552 ist an den Adressbus 3507 in der Nähe der Speichercontrollerkomponente 3502 gekoppelt, und kann beispielsweise in der Speichercontrollerkomponente 3502 enthalten sein. Eine Abschlusskomponente 3519 ist in der Nähe eines entgegengesetzten Abschlusses des Adressbusses 3507 gekoppelt.
  • Der Adress-/Steuertaktgeber 3504 ist an den Adress-/Steuertaktleiter 3509 gekoppelt, der an die Speichercontrollerkomponente 3502 und die Speicherkomponenten 3516, 3544, 3531 und 3534 gekoppelt ist. Eine Abschlusskomponente 3522 ist in der Nähe eines Abschlusses des Adress-/Steuertaktleiters 3509 gekoppelt.
  • Anders als im Speichersystem der 34 ist, anstelle der Verwendung einer gewissen Art einer Splitterkomponente, jeder Steuer-/Adressdraht auf ein Speichermodul geführt, an allen Speicherkomponenten vorbei, und von dem Modul zurück sowie auf die Hauptplatine, um kettenartig durch ein anderes Speichermodul oder in eine Abschlusskomponente hineinzuführen.
  • Wie mit Bezugnahme auf die oben beschriebenen Figuren zu erkennen ist, erlauben Ausführungsbeispiele der Erfindung eine Implementierung eines Spei chersystems, einer Speicherkomponente und/oder einer Speichercontrollerkomponente. Innerhalb dieser Ausführungsbeispiele kann ein Zeitversatz entsprechend einer Bitdauer und/oder einem Timingsignal gemessen werden. In einigen Ausführungsbeispielen gleicht Logik in der Speichercontrollerkomponente den Zeitversatz aus, während in anderen Ausführungsbeispielen Logik in einer Speicherkomponente den Zeitversatz ausgleicht. Der Zeitversatz kann größer als eine Bitdauer oder größer als eine Zyklusdauer sein.
  • Ein Ausführungsbeispiel der Erfindung stellt ein Speichermodul mit einem ersten Draht, der ein erstes Signal trägt, bereit. Der erste Draht ist mit einem ersten Modul-Kontaktpin verbunden. Der erste Draht ist mit einem ersten Pin einer ersten Speicherkomponente verbunden. Der erste Draht ist mit einem ersten Abschlussgerät verbunden. Der erste Draht hält einen ungefähr konstanten ersten Impedanzwert entlang seiner vollen Länge auf dem Speichermodul. Die Abschlusskomponente ist annähernd diesem ersten Impedanzwert angepasst. Optional gibt es eine zweite Speicherkomponente, mit der der erste Draht nicht verbunden ist. Optional trägt das erste Signal prinzipiell Information, die beim normalen Betrieb aus Steuerinformation, Adressinformation und Dateninformation ausgewählt ist. Optional ist das Abschlussgerät eine Komponente, die von der ersten Speicherkomponente auf dem Speichermodul getrennt ist. Optional ist das Abschlussgerät in die erste Speicherkomponente auf dem Speichermodul integriert. Ein solches Speichermodul kann mit einer Speichercontrollerkomponente verbunden sein und kann in einem Speichersystem verwendet werden.
  • Ein Ausführungsbeispiel der Erfindung stellt ein Speichermodul mit einem ersten Draht bereit, der ein erstes Signal trägt, und mit einem zweiten Draht, der ein zweites Signal trägt. Der erste Draht ist mit einem ersten Modul-Kontaktpin verbunden. Der zweite Draht ist mit einem zweiten Modul-Kontaktpin verbunden. Der erste Draht ist mit einem ersten Pin einer ersten Speicherkomponente verbunden. Der zweite Draht ist mit einem zweiten Pin der ersten Speicherkomponente verbunden. Der erste Draht ist mit einem dritten Pin einer zweiten Speicherkomponente verbunden. Der zweite Draht ist nicht mit einem Pin der zweiten Speicherkomponente verbunden. Der erste Draht ist mit einer ersten Abschlussvorrichtung verbunden. Der zweite Draht ist mit einer zweiten Abschlussvorrichtung verbunden. Der erste Draht hält einen ungefähr konstanten ersten Impedanzwert entlang seiner vollen Länge auf dem Speichermodul aufrecht. Der zweite Draht hält einen ungefähr konstanten zweiten Impedanzwert entlang seiner vollen Länge auf dem Speichermodul aufrecht. Die erste Abschlusskomponente ist ungefähr an den ersten Impedanzwert angepasst. Die zweite Abschlusskomponente ist ungefähr an den zweiten Impedanzwert angepasst. Optional ist die erste und/oder zweite Abschlussvorrichtung eine Komponente, die von der ersten Speicherkomponente auf dem Speichermodul getrennt ist. Optional ist die erste und/oder zweite Abschlussvorrichtung in die erste Speicherkomponenten auf dem Speichermodul integriert. Optional trägt das erste Signal Adressinformation und das zweite Signal trägt Dateninformation. Ein solches Speichermodul kann mit einer Speichercontrollerkomponente verbunden sein und in einem Speichersystem verwendet werden.
  • Ein Ausführungsbeispiel der Erfindung stellt ein Verfahren zum Durchführen von Speicheroperationen in einem Speichersystem bereit. Das Speichersystem enthält eine Speichercontrollerkomponente und eine Reihe mit Speicherkomponenten. Die Speicherkomponenten enthalten Abschnitte. Die Abschnitte enthalten einen ersten Abschnitt und einen zweiten Abschnitt. Die Speichercontrollerkomponente ist an Leiter gekoppelt, darunter ein gemeinsamer Adressbus, der die Speichercontrollerkomponente mit dem ersten Abschnitt und dem zweiten Abschnitt verbindet, ein erster Datenbus, der die Speichercontrollerkomponente mit dem ersten Abschnitt verbindet, und ein zweiter Datenbus, der die Speichercontrollerkomponente mit dem zweiten Abschnitt verbindet. Der erste Datenbus ist vom zweiten Datenbus getrennt. Das Verfahren beinhaltet den Schritt des Anlegens eines Signals an einen der Leiter. Das Signal kann ein Adresssignal, ein Schreibdatensignal oder Lesedatensignal sein. Die Ausbreitungsverzögerung des einen der Leiter ist länger als eine Zeitspanne, die ein Informationselement, das von dem Signal repräsentiert wird, an diesen Leiter angelegt wird. Optional kann das Verfahren einen Schritt des Anlegens eines ersten Datensignals an den ersten Datenbus und eines zweiten Datensignals and den zweiten Datenbus beinhalten. Das erste Datensignal ist spezifisch auf den ersten Abschnitt bezogen, und das zweite Datensignal ist spezifisch auf den zweiten Abschnitt bezogen. In einem Beispiel trägt das erste Datensignal Daten in den ersten Abschnitt oder aus ihm heraus, während das zweite Datensignal Daten in den zweiten Abschnitt oder aus ihm heraus trägt.
  • Ein Ausführungsbeispiel der Erfindung stellt ein Verfahren zum Koordinieren von Speicheroperationen zwischen einer ersten Speicherkomponente und einer zweiten Speicherkomponente bereit. Das Verfahren beinhaltet den Schritt des Anlegens eines ersten Adresssignals, das auf die erste Speicherkomponente bezogen ist, an einen gemeinsamen Adressbus während eines ersten Zeitintervalls. Der gemeinsame Adressbus ist an die erste Speicherkomponente und die zweite Speicherkomponente gekoppelt. Das Verfahren beinhaltet auch den Schritt des Anlegens eines zweiten Adresssignals, das auf die zweite Speicherkomponente bezogen ist, an den gemeinsamen Adressbus während eines zweiten Zeitintervalls. Das erste Zeitintervall ist kürzer als eine Ausbreitungsverzögerung des gemeinsamen Adressbuses, und das zweite Zeitintervall ist kürzer als eine Gemeinsamer-Adressbus-Verzögerung des gemeinsamen Adressbusses. Das Verfahren beinhaltet auch den Schritt des Steuerns einer ersten Speicheroperation der ersten Speicherkomponente unter Verwendung eines ersten Speicherkomponententimingsignals. Das erste Speicherkomponententimingsignal hängt von einer ersten Beziehung zwischen der Gemeinsamer-Adressbus-Ausbreitungsverzögerung und einer Erster-Datenbus-Ausbreitungsverzögerung eines ersten Datenbusses ab, der an die erste Speicherkomponente gekoppelt ist. Das Verfahren beinhaltet auch den Schritt des Steuerns einer zweiten Speicheroperation der zweiten Speicherkomponente unter Verwendung eines zweiten Speicherkomponententimingsignals. Das zweite Speicherkomponententimingsignal hängt ab von einer zweiten Beziehung zwischen der Gemeinsamer-Adressbus-Ausbreitungsverzögerung und einer Zweiter-Datenbus-Ausbreitungsverzögerung eines zweiten Datenbusses, der an die zweite Speicherkomponente gekoppelt ist.
  • Ein Ausführungsbeispiel der Erfindung (nachfolgend als Beschreibung B bezeichnet) stellt bereit: ein Speichersystem mit einer Speichercontrollerkomponete, einer einzelnen Reihe Speicherkomponenten auf einem einzelnen Speichermodul, einem gemeinsamen Adressbus, der den Controller in einer Abfolge mit allen Speicherkomponenten der Reihe verbindet, getrennten Datenbussen, die den Controller mit jeder Speicherkomponente (Abschnitt) der Reihe verbinden, einem Adressbus, der Steuer- und Adresssignale vom Controller in einer Abfolge an jeder Speicherkomponente vorbeitransportiert, Datenbussen, die Lesedatensignale von jeder Speicherkomponente (Abschnitt) der Reihe zum Controller transportieren, Datenbussen, die Schreibdatensignale vom Controller zu jeder Speicherkomponente (Abschnitt) der Reihe transportieren, Datenbusse, die Schreib-Maskiersignale vom Controller zu jeder Speicherkomponente (Abschnitt) der Reihe transportieren, wobei die Lesedaten- und die Schreibdatensignale jedes Abschnitts sich die selben Datenbusdrähte (bidirektional) teilen und die Busse so gestaltet sind, dass aufeinanderfolgende, auf einem Draht übersandte Informationsstücke nicht interferieren, wobei ein periodisches Taktsignal die Steuer- und Adresssignale begleitet und vom Controller verwendet wird, Information zu übertragen und von den Speicherkomponenten verwendet wird, Information zu empfangen, wobei ein periodisches Taktsignal jeden Abschnitt von Schreibdatensignalen und, optionaler Schreib-Maskiersignale begleitet und vom Controller verwendet wird, Information zu übersenden und von einer Speicherkomponente verwendet wird, Information zu empfangen, und wobei ein periodisches Taktsignal jeden Abschnitt von Lesedatensignalen begleitet und von einer Speicherkomponente verwendet wird, Information zu übersenden und vom Controller verwendet wird, Information zu empfangen.
  • Ein Ausführungsbeispiel der Erfindung (als Beschreibung A bezeichnet) stellt bereit: ein Speichersystem mit Merkmalen aus der obigen Beschreibung (Beschreibung B) und zusätzlich einem Timingsignal, das mit Steuer- und Adresssignalen assoziiert ist und die Ausbreitungsverzögerung dieser Signale dupliziert, und das vom Controller verwendet wird, Information zu übersenden und von den Speicherkomponenten verwendet wird, Information zu empfangen, einem Timingsignal, das mit jedem Abschnitt von Schreibdatensignalen und optionalen Schreib-Maskiersignalen assoziiert ist und das die Ausbreitungsverzögerung dieser Signale dupliziert und das vom Controller verwendet wird, Information zu übersenden, und von einer Speicherkomponente verwendet wird, Information zu empfangen, einem Timingsignal, das mit jedem Abschnitt von Lesedatensignalen assoziiert ist und die Ausbreitungsverzögerung dieser Signale dupliziert und das von einer Speicherkomponente verwendet wird, Information zu übersenden und vom Controller verwendet wird, Information zu empfangen, wobei eine Ausbreitungsverzögerung eines Drahtes, der Steuer- und Adresssignale vom Controller zur letzten Speicherkomponente transportiert, länger ist als die Zeitspanne, die ein Stück Information auf dem Draht vom Controller gesendet wird.
  • Ein Ausführungsbeispiel der Erfindung stellt ein Speichersystem mit Merkmalen aus der obigen Beschreibung (Beschreibung A) bereit, wobei eine Ausbreitungsverzögerung eines Drahtes, der Schreibdatensignale und optionale Schreibmaskiersignale vom Controller zu einer Speicherkomponente transportiert, länger ist als die Zeitspanne, die ein Stück Information auf dem Draht vom Controller gesendet wird.
  • Ein Ausführungsbeispiel der Erfindung stellt ein Speichersystem mit Merkmalen aus der obigen Beschreibung (Beschreibung A) bereit, wobei eine Ausbreitungsverzögerung eines Drahts, der Lesedatensignale von einer Speicherkomponente zum Controller transportiert, länger ist als die Zeitspanne ist, die ein Stück Information auf den Draht von der Speicherkomponente übersandt wird.
  • Ein Ausführungsbeispiel der Erfindung stellt ein Speichersystem mit Merkmalen der obigen Beschreibung (Beschreibung a) bereit, wobei die Ausrichtungen der Timingsignale so eingestellt sind, dass sie annähernd dieselben sind, unabhängig von der Anzahl Abschnitte in der Reihe, wobei die Ausrichtungen von Timingsignalen der Lesedatenempfängerabschnitte des Controllers so eingestellt sind, dass sie annähernd dieselben sind, unabhängig von der Anzahl Abschnitte in. der Reihe, und wobei die Ausrichtungen von Timingsignalen der Lesedatenempfängerabschnitte des Controllers so eingestellt sind, dass sie annähernd dieselben sind wie die Timingsignale der Schreibdatensenderabschnitte.
  • Ein Ausführungsbeispiel der Erfindung stellt ein Speichersystem mit Merkmalen aus der obigen Beschreibung (Beschreibung A) bereit, wobei die Ausrichtungen der Timingsignale der Schreibdatensenderabschnitte des Controllers so eingestellt sind, dass sie größten Teils voneinander unterschiedlich sind.
  • Ein Ausführungsbeispiel der Erfindung stellt ein Speichersystem mit Merkmalen aus der obigen Beschreibung (Beschreibung A) bereit, wobei die Ausrichtungen von Timingsignalen der Lesedatenempfängerabschnitte des Controllers so sind eingestellt sind, größten Teils unterschiedlich voneinander.
  • Ein Ausführungsbeispiel der Erfindung stellt ein Speichersystem mit Merkmalen aus der obigen Beschreibung (Beschreibung A) bereit, wobei die Ausrichtungen der Timingsignale des Lesedatensenders jeder Speicherkomponente eingestellt sind, annähernd dieselben wie die die Timingsignale des Schreibdatenempfängers in derselben Speicherkomponente zu sein, und wobei die Ausrichtungen der Timingsignale für jeden Speicherkomponentenabschnitt in der Reihe unterschiedlich sein werden.
  • Ein Ausführungsbeispiel der Erfindung stellt ein Speichersystem mit Merkmalen aus der obigen Beschreibung (Beschreibung A) bereit, wobei die Ausrichtungen der Timingsignale des Schreibdatensenders jeder Speicherkomponente so eingestellt sind, dass sie von den Timingsignalen des Lesedatenempfängers in derselben Speicherkomponente unterschiedlich sind.
  • Zahlreiche Variationen an den Ausführungsformen, die hierin beschrieben wurden, sind möglich, ohne von dem Umfang der hieran anschließenden Ansprüche abzuweichen. Beispiele dieser Variationen werden weiter unten beschrieben. Diese Beispiele können auf Steuer- und Adresssignale, Lesedatensignale, Schreibdatensignale und optional Schreibmaskierungssignale angewendet werden. Z.B. kann ein Timingsignal, welches solchen Signalen zugeordnet ist, durch eine externe Taktkomponente oder durch eine Steuerungskomponente erzeugt werden. Das Timingsignal kann auch auf Drähten laufen, welche im Wesentlichen die gleiche Topologie wie die Drähte haben, die solche Signale übertragen. Das Timingsignal kann aus der Information erzeugt werden; die auf den Drähten enthalten ist, die solche Signale übertragen oder aus einem Timingsignal, das einem jeglichen solcher Signale zugeordnet ist. Das Timingsignal kann für eine ganzzahlige Anzahl von Zeiten gesetzt werden während des Intervalls, in dem jedes Informationsstück auf einem solche Signale übertragenden Draht vorhanden ist. Als eine andere Variation kann eine ganzzahlige Anzahl von Informationsstücken auf einem solche Signale übertragenden Draht jedes Mal gesetzt werden, wenn das Timingsignal, das solchen Signalen zugeordnet ist, gesetzt ist. Als noch eine andere Variation kann eine ganzzahlige Anzahl von Informationsstücken auf einem solche Signale übertragenden Draht jedes Mal gesetzt werden, wenn das Timingsignal, welches solchen Signalen zugeordnet ist, für eine ganzzahlige Anzahl von Zeitpunkten gesetzt ist. Der Punkt, an dem ein solchen Signalen zugeordnetes Timingsignal gesetzt wird, kann einen Versatz relativ zu dem Zeitintervall haben, in dem jedes Informationsstück auf einem solche Signale übertragenden Draht vorhanden ist.
  • Als Beispiele von anderen Variationen können die Abschlusskomponenten für einige der Signale auf einer gedruckten Hauptleiterplatte, einer Speichermodulplatte, einer Speicherkomponente oder einer Steuerkomponente angeordnet sein. Auch können zwei oder mehr Reihen von Speichermodulen auf dem Speichermodul vorhanden sein, wobei einige Steuer- und Adresssignale mit allen Speicherkomponenten verbunden sind und einige Steuer- und Adresssignalen mit einigen der Speicherkomponenten verbunden sind. Es ist auch möglich, dass zwei oder mehr Module der Speicherkomponenten in dem Speichersystem vorhanden sind, wobei einige Steuer- und Adresssignale mit allen Speicherkomponenten verbunden sind und einige Steuer- und Adresssignale, die mit einigen der Speicherkomponenten verbunden sind.
  • Dementsprechend wurde ein Verfahren und eine Vorrichtung zum Koordinieren von Speichervorgängen unter unterschiedlich angeordneten Speicher komponenten beschrieben. Es sollte verstanden werden, dass die Implementation von anderen Variationen und Modifikationen der Erfindung in ihren verschiedenen Aspekten für den Fachmann ersichtlich sein wird und dass die Erfindung nicht auf die beschriebenen, spezifischen Ausführungsformen beschränkt ist. Es ist daher beabsichtigt, die vorliegende Erfindung, jegliche und alle Modifikationen, Variationen oder Äquivalente abzudecken, welche innerhalb des Sinnes und Umfangs der grundsätzlich zu Grunde liegenden Prinzipien fallen, die hierin beschrieben und beansprucht sind.

Claims (18)

  1. Speichersystem, umfassend: eine erste Speichervorrichtung (116); eine erste Vielzahl von Signalleitungen, welche mit der ersten Speichervorrichtung gekoppelt sind, wobei die erste Vielzahl von Signalleitungen ausgebildet ist für Datenübertragungen, in welche die erste Speichervorrichtung eingebunden ist; eine zweite Speichervorrichtung (117); eine zweite Vielzahl von Signalleitungen, welche mit der zweiten Speichervorrichtung gekoppelt sind, wobei die zweite Vielzahl von Signalleitungen ausgebildet ist für Datenübertragungen, in welche die zweite Speichervorrichtung eingebunden ist; eine erste Abschlusskomponente (119); und eine dritte Vielzahl von Signalleitungen, welche mit der ersten Speichervorrichtung, der zweiten Speichervorrichtung und der ersten Abschlusskomponente (119) solcherart gekoppelt sind, dass ein Signal, welches sich auf der dritten Vielzahl von Signalleitungen ausbreitet, sich zu der ersten Speichervorrichtung (116) ausbreitet, bevor es die zweite Speichervorrichtung (117) erreicht, und sich zu der zweiten Speichervorrichtung (117) ausbreitet, bevor es die erste Abschlusskomponente (119) erreicht.
  2. Speichersystem nach Anspruch 1, worin die Signale, welche sich auf der dritten Vielzahl von Signalleitungen ausbreiten, eine Steuerinformation und/oder Adressinformation darstellen.
  3. Speichersystem nach einem der Ansprüche 1 oder 2, worin die dritte Vielzahl von Signalleitungen Signalleitungen beinhaltet, um Steuerinformationen zu der ersten Speichervorrichtung (116) und der zweiten Speichervorrichtung sowie Adressinformationen zu der ersten Speichervorrichtung (116) und der zweiten Speichervorrichtung zu übertragen.
  4. Speichersystem nach einem der Ansprüche 1–3, weiterhin umfassend eine Signalleitung, um ein Timingsignal zu befördern, welches einen ersten Zeitpunkt anzeigt, bei dem das Signal, welches sich auf der dritten Vielzahl von Signalleitungen ausbreitet, durch die erste Speichervorrichtung abzutasten ist, wobei das erste Timingsignal auch einen zweiten Zeitpunkt anzeigt, bei dem das Signal, welches sich auf der dritten Vielzahl von Signalleitungen ausbreitet, durch die zweite Speichervorrichtung abzutasten ist.
  5. Speichersystem nach Anspruch 4, worin das Timingsignal ein Strobesignal ist.
  6. Speichersystem nach Anspruch 4 oder 5, worin die Signalleitung sich entlang der dritten Vielzahl von Signalleitungen solcherart erstreckt, dass das Timingsignal sich zu jeder der Speichervorrichtungen in der gleichen Reihenfolge ausbreitet wie sich die Signale auf der dritten Vielzahl von Signalleitungen ausbreiten.
  7. Speichersystem nach einem der Ansprüche 1–3, weiterhin umfassend: eine erste Signalleitung, welche mit der ersten Speichervorrichtung gekoppelt ist und die ein erstes Timingsignal leitet, welches den Datenübertragungen zugeordnet ist, in welche die erste Speichervorrichtung eingebunden ist; und eine zweite Signalleitung, welche mit der zweiten Speichervorrichtung gekoppelt ist und die ausgebildet ist, um ein zweites Timingsignal zu leiten, welches den Datenübertragungen zugeordnet ist, in welche die zweite Speichervorrichtung eingebunden ist.
  8. Speichersystem nach Anspruch 7, worin das erste Timingsignal ein Strobesignal ist und das zweite Timingsignal ein Strobesignal ist.
  9. Speichersystem nach Anspruch 7 oder 8, worin sich die erste Signalleitung entlang der ersten Vielzahl von Signalleitungen erstreckt und worin sich die zweite Signalleitung entlang der zweiten Vielzahl von Signalleitungen erstreckt.
  10. Speichersystem nach einem der vorhergehenden Ansprüche, weiterhin umfassend: eine zweite Abschlusskomponente, welche mit der ersten Vielzahl von Signalleitungen gekoppelt ist und die an der ersten Speichervorrichtung angeordnet ist; und eine dritte Abschlusskomponente, welche mit der zweiten Vielzahl von Signalleitungen gekoppelt ist und die auf der zweiten Speichervorrichtung angeordnet ist.
  11. Speichersystem nach einem der vorhergehenden Ansprüche, umfassend einen Speichercontroller (102), welcher mit der ersten Speichervorrichtung (116) und der zweiten Speichervorrichtung (117) gekoppelt ist.
  12. Speichersystem nach Anspruch 11, worin der Speichercontroller (102) beinhaltet: einen ersten Timingschaltkreis zum Verzögern der Übertragung eines Datentransfers zu der ersten Speichervorrichtung (116) um ein erstes Zeitintervall, welches zumindest teilweise auf einem Zeitbetrag basiert ist, der für die Signale, die sich auf der dritten Vielzahl von Signalleitungen ausbreiten, benötigt wird, um sich von dem ersten Speichercontroller (102) zu der ersten Speichervorrichtung auszubreiten; und einen zweiten Timingschaltkreis, um die Übertragung eines Datentransfers zu der zweiten Speichervorrichtung (117) um ein zweites Zeitintervall zu verzögern, welches zumindest teilweise auf einem Zeitbetrag basiert ist, der ist für die Signale, die sich auf der dritten Vielzahl von Signalleitungen ausbreiten, benötigt wird, um sich von dem Speichercontroller (102) zu der zweiten Speichervorrichtung auszubreiten.
  13. Speichermodul, umfassend die Elemente des Speichersystems gemäß einem der Ansprüche 1–12.
  14. Speichersystem, umfassend: eine erste Speichervorrichtung (116), beinhaltend eine erste Abschlusskomponente (119); eine erste Vielzahl von Datenleitungen, die mit der ersten Abschlusskomponente (119) gekoppelt sind; eine zweite Speichervorrichtung (117), beinhaltend eine zweite Abschlusskomponente; eine zweite Vielzahl von Datenleitungen, die mit der zweiten Abschlusskomponente gekoppelt sind; eine dritte Abschlusskomponente; und eine Vielzahl von Signalleitungen, die mit der ersten Speichervorrichtung, der zweiten Speichervorrichtung und der dritten Abschlusskomponente solcherart gekoppelt sind, dass ein Signal, welches sich auf der Vielzahl von Signalleitungen ausbreitet, sich zu der ersten Speichervorrichtung (116) und der zweiten Speichervorrichtung (117) ausbreitet, bevor es die dritte Abschlusskomponente erreicht.
  15. Speichersystem nach Anspruch 14, weiterhin umfassend: eine Taktleitung, welche mit der ersten Speichervorrichtung (116) und der zweiten Speichervorrichtung gekoppelt ist, wobei die Taktleitung entlang der Vielzahl der Signalleitungen geführt ist und ein Taktsignal überträgt, und die erste Speichervorrichtung (116) unter Verwendung des Taktsignals das Signal abtastet, welches sich auf der Vielzahl der Signalleitungen ausbreitet und die zweite Speichervorrichtung (117) unter Verwendung des Taktsignals das Signal abtastet, welches sich auf der Vielzahl der Signalleitungen ausbreitet.
  16. Speichersystem nach Anspruch 14 oder 15, weiterhin umfassend: eine erste Signalleitung, die mit der ersten Speichervorrichtung gekoppelt ist und die ein erstes Strobesignal leitet, das den Datenübertragungen zugeordnet ist, in welche die erste Speichervorrichtung eingebunden ist; und eine zweite Signalleitung, die mit der zweiten Speichervorrichtung gekoppelt ist und die ein zweites Strobesignal leitet, das den Datenübertragungen zugeordnet ist, in welche die zweite Speichervorrichtung eingebunden ist.
  17. Speichersystem nach einen der Ansprüche 14–16, weiterhin umfassend: einen Speichercontroller (102), zum Bereitstellen von ersten Daten zu der ersten Speichervorrichtung (116) und zweiten Daten zu der zweiten Speichervorrichtung, wobei der Speichercontroller (102) beinhaltet: einen ersten Timingschaltkreis zum Verzögern der Übertragung der ersten Daten auf der ersten Vielzahl von Datenleitungen um ein Zeitintervall, welches wenigstens teilweise auf einem Zeitbetrag basiert ist, der für die Signale, welche sich auf der Vielzahl von Signalleitungen ausbreiten, benötigt wird, um sich von dem Speichercontroller (102) zu der ersten Speichervorrichtung auszubreiten; und einen zweiten Timingschaltkreis zum Verzögern der Übertragung der zweiten Daten auf der zweiten Vielzahl von Datenleitungen um ein Zeitintervall, welches wenigstens teilweise auf einem Zeitbetrag basiert ist, der für die Signale, welche sich auf der Vielzahl von Signalleitungen ausbreiten, benötigt wird, um sich von dem Speichercontroller (102) zu der zweiten Speichervorrichtung auszubreiten.
  18. Speichermodul (103), umfassend die Elemente des Speichersystems gemäß einem der Ansprüche 14–17.
DE2002221512 2001-04-24 2002-04-23 Vorrichtung zur Koordinierung von Speicheroperationen zwischen Speicherkomponenten Expired - Lifetime DE20221512U1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE2002221512 DE20221512U1 (de) 2001-04-24 2002-04-23 Vorrichtung zur Koordinierung von Speicheroperationen zwischen Speicherkomponenten

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US841911 1992-02-25
US09/841,911 US6675272B2 (en) 2001-04-24 2001-04-24 Method and apparatus for coordinating memory operations among diversely-located memory components
US53340 2001-10-22
US10/053,340 US7484064B2 (en) 2001-04-24 2001-10-22 Method and apparatus for signaling between devices of a memory system
DE2002221512 DE20221512U1 (de) 2001-04-24 2002-04-23 Vorrichtung zur Koordinierung von Speicheroperationen zwischen Speicherkomponenten

Publications (1)

Publication Number Publication Date
DE20221512U1 true DE20221512U1 (de) 2006-04-27

Family

ID=25286018

Family Applications (4)

Application Number Title Priority Date Filing Date
DE20221511U Expired - Lifetime DE20221511U1 (de) 2001-04-24 2002-04-23 Vorrichtung zur Signalisierung zwischen Komponenten eines Speichersystems
DE2002221512 Expired - Lifetime DE20221512U1 (de) 2001-04-24 2002-04-23 Vorrichtung zur Koordinierung von Speicheroperationen zwischen Speicherkomponenten
DE60239030T Expired - Lifetime DE60239030D1 (de) 2001-04-24 2002-04-23 Verfahren und Vorrichtung zur Signalisierung zwischen Geräten eines Speichersystems
DE60235050T Expired - Lifetime DE60235050D1 (de) 2001-04-24 2002-04-23 Verfahren und Vorrichtung zur Koordination von Speicheroperationen zwischen unterschiedlich angeordneten Speicherkomponenten

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE20221511U Expired - Lifetime DE20221511U1 (de) 2001-04-24 2002-04-23 Vorrichtung zur Signalisierung zwischen Komponenten eines Speichersystems

Family Applications After (2)

Application Number Title Priority Date Filing Date
DE60239030T Expired - Lifetime DE60239030D1 (de) 2001-04-24 2002-04-23 Verfahren und Vorrichtung zur Signalisierung zwischen Geräten eines Speichersystems
DE60235050T Expired - Lifetime DE60235050D1 (de) 2001-04-24 2002-04-23 Verfahren und Vorrichtung zur Koordination von Speicheroperationen zwischen unterschiedlich angeordneten Speicherkomponenten

Country Status (4)

Country Link
US (23) US6675272B2 (de)
EP (8) EP2273376B1 (de)
JP (6) JP4255242B2 (de)
DE (4) DE20221511U1 (de)

Families Citing this family (194)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6401167B1 (en) 1997-10-10 2002-06-04 Rambus Incorporated High performance cost optimized memory
US7024257B2 (en) * 2001-02-09 2006-04-04 Motion Engineering, Inc. System for motion control, method of using the system for motion control, and computer-readable instructions for use with the system for motion control
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
EP1291778B1 (de) * 2001-04-24 2007-06-27 Rambus Inc. Verfahren und Gerät zum Koordinieren von Speicheroperationen zwischen unterschiedlich angeordneten Speicherkomponenten
US7076595B1 (en) * 2001-05-18 2006-07-11 Xilinx, Inc. Programmable logic device including programmable interface core and central processing unit
DE10141376A1 (de) * 2001-08-23 2003-03-13 Boehringer Ingelheim Pharma Verfahren zur Herstellung von Inhalationspulvern
US6920540B2 (en) 2001-10-22 2005-07-19 Rambus Inc. Timing calibration apparatus and method for a memory device signaling system
US6950910B2 (en) * 2001-11-08 2005-09-27 Freescale Semiconductor, Inc. Mobile wireless communication device architectures and methods therefor
TW550563B (en) * 2002-02-01 2003-09-01 Silicon Integrated Sys Corp Memory data receiver and method
US6934922B1 (en) 2002-02-27 2005-08-23 Xilinx, Inc. Timing performance analysis
US7231306B1 (en) * 2002-04-30 2007-06-12 Rambus Inc. Method and apparatus for calibrating static timing offsets across multiple outputs
US7292629B2 (en) 2002-07-12 2007-11-06 Rambus Inc. Selectable-tap equalizer
US8861667B1 (en) 2002-07-12 2014-10-14 Rambus Inc. Clock data recovery circuit with equalizer clock calibration
US6807125B2 (en) * 2002-08-22 2004-10-19 International Business Machines Corporation Circuit and method for reading data transfers that are sent with a source synchronous clock signal
US7203262B2 (en) * 2003-05-13 2007-04-10 M/A-Com, Inc. Methods and apparatus for signal modification in a fractional-N phase locked loop system
US7234099B2 (en) * 2003-04-14 2007-06-19 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
KR100522433B1 (ko) * 2003-04-29 2005-10-20 주식회사 하이닉스반도체 도메인 크로싱 회로
US7421525B2 (en) * 2003-05-13 2008-09-02 Advanced Micro Devices, Inc. System including a host connected to a plurality of memory modules via a serial memory interconnect
US6999887B2 (en) * 2003-08-06 2006-02-14 Infineon Technologies Ag Memory cell signal window testing apparatus
JP2005078592A (ja) * 2003-09-03 2005-03-24 Brother Ind Ltd メモリ制御装置及び画像形成装置
US6924660B2 (en) 2003-09-08 2005-08-02 Rambus Inc. Calibration methods and circuits for optimized on-die termination
US7330993B2 (en) * 2003-09-29 2008-02-12 Intel Corporation Slew rate control mechanism
US6980020B2 (en) * 2003-12-19 2005-12-27 Rambus Inc. Calibration methods and circuits for optimized on-die termination
KR100558557B1 (ko) * 2004-01-20 2006-03-10 삼성전자주식회사 반도체 메모리 장치에서의 데이터 샘플링 방법 및 그에따른 데이터 샘플링 회로
US7222224B2 (en) * 2004-05-21 2007-05-22 Rambus Inc. System and method for improving performance in computer memory systems supporting multiple memory access latencies
US8270501B2 (en) 2004-08-18 2012-09-18 Rambus Inc. Clocking architectures in high-speed signaling systems
US7171321B2 (en) 2004-08-20 2007-01-30 Rambus Inc. Individual data line strobe-offset control in memory systems
US7188208B2 (en) * 2004-09-07 2007-03-06 Intel Corporation Side-by-side inverted memory address and command buses
US7301831B2 (en) * 2004-09-15 2007-11-27 Rambus Inc. Memory systems with variable delays for write data signals
US7196567B2 (en) * 2004-12-20 2007-03-27 Rambus Inc. Systems and methods for controlling termination resistance values for a plurality of communication channels
US7543172B2 (en) 2004-12-21 2009-06-02 Rambus Inc. Strobe masking in a signaling system having multiple clock domains
US7688672B2 (en) * 2005-03-14 2010-03-30 Rambus Inc. Self-timed interface for strobe-based systems
KR100630742B1 (ko) * 2005-03-17 2006-10-02 삼성전자주식회사 Dqs도메인에서 클록 도메인으로의 변환을 위한 데이터샘플링 방법 및 이를 이용한 동기식 반도체 메모리 장치의데이터 입력 회로
US7401245B2 (en) * 2005-04-29 2008-07-15 Hewlett-Packard Development Company, L.P. Count calibration for synchronous data transfer between clock domains
US7558317B2 (en) * 2005-04-29 2009-07-07 Hewlett-Packard Development Company, L.P. Edge calibration for synchronous data transfer between clock domains
US7477712B2 (en) * 2005-04-29 2009-01-13 Hewlett-Packard Development Company, L.P. Adaptable data path for synchronous data transfer between clock domains
US7332950B2 (en) * 2005-06-14 2008-02-19 Micron Technology, Inc. DLL measure initialization circuit for high frequency operation
US7593430B2 (en) * 2005-07-28 2009-09-22 Alcatel-Lucent Usa Inc. Method and apparatus for generating virtual clock signals
US7519778B2 (en) * 2005-08-10 2009-04-14 Faraday Technology Corp. System and method for cache coherence
US7366966B2 (en) * 2005-10-11 2008-04-29 Micron Technology, Inc. System and method for varying test signal durations and assert times for testing memory devices
US7174474B1 (en) * 2005-10-12 2007-02-06 Avago Technologies Ecbu Ip (Singapore) Pte. Ltd. Distributed autonomous control system for multi-axis motion control
US7321524B2 (en) 2005-10-17 2008-01-22 Rambus Inc. Memory controller with staggered request signal output
DE102005051792A1 (de) * 2005-10-28 2007-05-03 Infineon Technologies Ag Verfahren zur Datenübertragung in einer Speichervorrichtung, Vorrichtung zur Kopplung eines Speichermoduls mit einer Speichersteuerung und entsprechendes Speichermodul
US7269093B2 (en) * 2005-10-31 2007-09-11 Infineon Technologies Ag Generating a sampling clock signal in a communication block of a memory device
US7610417B2 (en) 2005-11-30 2009-10-27 Rambus Inc. Data-width translator coupled between variable-width and fixed-width data ports and supporting multiple data-width configurations
US7863946B2 (en) * 2005-12-01 2011-01-04 Ricoh Company, Ltd. Electric signal outputting apparatus with a switching part, an impedance matching part, and an auxiliary switching part
US20070132485A1 (en) * 2005-12-09 2007-06-14 Elad Alon Four-wire signaling system
US7650526B2 (en) * 2005-12-09 2010-01-19 Rambus Inc. Transmitter with skew reduction
US7439760B2 (en) 2005-12-19 2008-10-21 Rambus Inc. Configurable on-die termination
US20070189049A1 (en) * 2006-02-16 2007-08-16 Srdjan Djordjevic Semiconductor memory module
US8121237B2 (en) 2006-03-16 2012-02-21 Rambus Inc. Signaling system with adaptive timing calibration
US7486104B2 (en) * 2006-06-02 2009-02-03 Rambus Inc. Integrated circuit with graduated on-die termination
US7886122B2 (en) * 2006-08-22 2011-02-08 Qimonda North America Corp. Method and circuit for transmitting a memory clock signal
US7587571B2 (en) * 2006-11-29 2009-09-08 Qimonda Ag Evaluation unit in an integrated circuit
WO2008079911A1 (en) 2006-12-21 2008-07-03 Rambus Inc. Dynamic on-die termination of address and command signals
US7388795B1 (en) * 2006-12-28 2008-06-17 Intel Corporation Modular memory controller clocking architecture
US7836324B2 (en) * 2007-02-09 2010-11-16 Apple Inc. Oversampling-based scheme for synchronous interface communication
US8874831B2 (en) 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
KR100902104B1 (ko) * 2007-06-08 2009-06-09 주식회사 하이닉스반도체 반도체 메모리장치
US8068357B2 (en) * 2007-09-05 2011-11-29 Rambus Inc. Memory controller with multi-modal reference pad
JP4382842B2 (ja) 2007-09-18 2009-12-16 富士通株式会社 メモリ制御回路,遅延時間制御装置,遅延時間制御方法および遅延時間制御プログラム
KR20090045773A (ko) * 2007-11-02 2009-05-08 주식회사 하이닉스반도체 고속으로 동작하는 반도체 장치의 지연 고정 회로
KR101470975B1 (ko) * 2007-12-21 2014-12-09 램버스 인코포레이티드 메모리 시스템 내 기록 타이밍을 교정하기 위한 방법 및 장치
KR100910852B1 (ko) * 2007-12-26 2009-08-06 주식회사 하이닉스반도체 반도체 메모리 소자
US7804735B2 (en) * 2008-02-29 2010-09-28 Qualcomm Incorporated Dual channel memory architecture having a reduced interface pin requirements using a double data rate scheme for the address/control signals
US8516185B2 (en) * 2009-07-16 2013-08-20 Netlist, Inc. System and method utilizing distributed byte-wise buffers on a memory module
JP5289569B2 (ja) * 2008-08-08 2013-09-11 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. 標準メモリモジュールとピン互換性のあるメモリモジュール内における独立制御可能且つ再構成可能な仮想メモリデバイス
US7886103B2 (en) * 2008-09-08 2011-02-08 Cisco Technology, Inc. Input-output module, processing platform and method for extending a memory interface for input-output operations
US8856434B2 (en) * 2008-09-26 2014-10-07 Cypress Semiconductor Corporation Memory system and method
US8095747B2 (en) * 2008-09-26 2012-01-10 Cypress Semiconductor Corporation Memory system and method
US7957216B2 (en) * 2008-09-30 2011-06-07 Intel Corporation Common memory device for variable device width and scalable pre-fetch and page size
US8806258B2 (en) 2008-09-30 2014-08-12 Intel Corporation Platform communication protocol
KR100991383B1 (ko) * 2008-12-26 2010-11-02 주식회사 하이닉스반도체 반도체 장치의 출력 드라이버
EP2384474B1 (de) * 2008-12-31 2015-08-12 Rambus Inc. Aktive kalibrierung für schnelle speicher
KR101614569B1 (ko) 2009-01-13 2016-04-21 램버스 인코포레이티드 메모리 요청과 데이터 전송 간 타이밍 교정을 포함하는 프로토콜
US9520986B2 (en) 2009-03-30 2016-12-13 Coriant Operations, Inc. Method and appartus for exchanging data between devices operating at different clock rates
US9128632B2 (en) * 2009-07-16 2015-09-08 Netlist, Inc. Memory module with distributed data buffers and method of operation
JP2011079308A (ja) 2009-09-14 2011-04-21 Ricoh Co Ltd 感熱記録材料及びその製造方法
CN107293322B (zh) 2010-02-07 2021-09-21 芝诺半导体有限公司 含导通浮体晶体管、并具有永久性和非永久性功能的半导体存储元件及操作方法
WO2011106055A1 (en) * 2010-02-23 2011-09-01 Rambus Inc. Coordinating memory operations using memory-device generated reference signals
US8307235B2 (en) 2010-05-05 2012-11-06 National Instruments Corporation Cross controller clock synchronization
US9077386B1 (en) * 2010-05-20 2015-07-07 Kandou Labs, S.A. Methods and systems for selection of unions of vector signaling codes for power and pin efficient chip-to-chip communication
US9246713B2 (en) 2010-05-20 2016-01-26 Kandou Labs, S.A. Vector signaling with reduced receiver complexity
US9251873B1 (en) 2010-05-20 2016-02-02 Kandou Labs, S.A. Methods and systems for pin-efficient memory controller interface using vector signaling codes for chip-to-chip communications
US9288082B1 (en) 2010-05-20 2016-03-15 Kandou Labs, S.A. Circuits for efficient detection of vector signaling codes for chip-to-chip communication using sums of differences
US9985634B2 (en) 2010-05-20 2018-05-29 Kandou Labs, S.A. Data-driven voltage regulator
US8495327B2 (en) 2010-06-04 2013-07-23 Nvidia Corporation Memory device synchronization
EP2583280A4 (de) 2010-06-17 2014-06-18 Rambus Inc Balancierte on-chip-beendigung
US9069688B2 (en) * 2011-04-15 2015-06-30 Sandisk Technologies Inc. Dynamic optimization of back-end memory system interface
US8464135B2 (en) 2010-07-13 2013-06-11 Sandisk Technologies Inc. Adaptive flash interface
US8583957B2 (en) 2010-07-27 2013-11-12 National Instruments Corporation Clock distribution in a distributed system with multiple clock domains over a switched fabric
WO2012021380A2 (en) * 2010-08-13 2012-02-16 Rambus Inc. Fast-wake memory
JP2012059184A (ja) * 2010-09-13 2012-03-22 Nec Computertechno Ltd メモリコントローラ、これを備えたメモリシステム及びメモリデバイスの制御方法
KR20120044668A (ko) 2010-10-28 2012-05-08 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그를 포함하는 반도체 시스템
JP5541373B2 (ja) * 2011-01-13 2014-07-09 富士通株式会社 メモリコントローラ、及び情報処理装置
US8743634B2 (en) * 2011-01-28 2014-06-03 Lsi Corporation Generic low power strobe based system and method for interfacing memory controller and source synchronous memory
WO2012118714A2 (en) * 2011-03-02 2012-09-07 Rambus Inc. Timing calibration for multimode i/o systems
US9235537B2 (en) 2011-10-26 2016-01-12 Rambus Inc. Drift detection in timing signal forwarded from memory controller to memory device
JP2013118033A (ja) * 2011-12-05 2013-06-13 Elpida Memory Inc 半導体装置
JP2013125561A (ja) * 2011-12-14 2013-06-24 Elpida Memory Inc 半導体装置
US9082464B2 (en) * 2012-02-14 2015-07-14 Samsung Electronics Co., Ltd. Memory module for high-speed operations
US9563597B2 (en) 2012-03-19 2017-02-07 Rambus Inc. High capacity memory systems with inter-rank skew tolerance
US8836394B2 (en) * 2012-03-26 2014-09-16 Rambus Inc. Method and apparatus for source-synchronous signaling
WO2013147886A1 (en) * 2012-03-30 2013-10-03 Intel Corporation Virtual device sparing
JP5677376B2 (ja) * 2012-07-06 2015-02-25 株式会社東芝 メモリ制御装置、半導体装置、およびシステムボード
WO2014101172A1 (zh) * 2012-12-31 2014-07-03 香港中国模拟技术有限公司 一种流水线型模数转换器
US8692600B1 (en) 2013-01-09 2014-04-08 International Business Machines Corporation Multi-protocol driver slew rate calibration system for calibration slew rate control signal values
CN105122758B (zh) 2013-02-11 2018-07-10 康杜实验室公司 高带宽芯片间通信接口方法和系统
JP6091239B2 (ja) * 2013-02-13 2017-03-08 キヤノン株式会社 プリント回路板、プリント配線板および電子機器
EP2979388B1 (de) 2013-04-16 2020-02-12 Kandou Labs, S.A. Verfahren und systeme für eine kommunikationsschnittstelle mit hoher bandbreite
CN105393512B (zh) 2013-06-25 2019-06-28 康杜实验室公司 具有低接收器复杂度的向量信令
US9285828B2 (en) 2013-07-11 2016-03-15 Apple Inc. Memory system with improved bus timing calibration
US9554131B1 (en) * 2013-07-23 2017-01-24 Harmonic, Inc. Multi-slice/tile encoder with overlapping spatial sections
CN105706064B (zh) 2013-07-27 2019-08-27 奈特力斯股份有限公司 具有本地分别同步的内存模块
US9377966B2 (en) 2013-10-09 2016-06-28 Samsung Electronics Co., Ltd. Method and apparatus for efficiently processing storage commands
US9806761B1 (en) 2014-01-31 2017-10-31 Kandou Labs, S.A. Methods and systems for reduction of nearest-neighbor crosstalk
US9100232B1 (en) 2014-02-02 2015-08-04 Kandou Labs, S.A. Method for code evaluation using ISI ratio
US10521387B2 (en) * 2014-02-07 2019-12-31 Toshiba Memory Corporation NAND switch
WO2015131203A1 (en) 2014-02-28 2015-09-03 Kandou Lab, S.A. Clock-embedded vector signaling codes
CN103927131B (zh) * 2014-03-25 2017-02-15 四川和芯微电子股份有限公司 同步闪存u盘的启动方法及其控制系统
US9798628B2 (en) 2014-04-25 2017-10-24 Rambus Inc. Memory mirroring
US9509437B2 (en) 2014-05-13 2016-11-29 Kandou Labs, S.A. Vector signaling code with improved noise margin
US10339079B2 (en) * 2014-06-02 2019-07-02 Western Digital Technologies, Inc. System and method of interleaving data retrieved from first and second buffers
US9852806B2 (en) 2014-06-20 2017-12-26 Kandou Labs, S.A. System for generating a test pattern to detect and isolate stuck faults for an interface using transition coding
US9112550B1 (en) 2014-06-25 2015-08-18 Kandou Labs, SA Multilevel driver for high speed chip-to-chip communications
WO2016007863A2 (en) 2014-07-10 2016-01-14 Kandou Labs, S.A. Vector signaling codes with increased signal to noise characteristics
US9432082B2 (en) 2014-07-17 2016-08-30 Kandou Labs, S.A. Bus reversable orthogonal differential vector signaling codes
US9444654B2 (en) 2014-07-21 2016-09-13 Kandou Labs, S.A. Multidrop data transfer
EP3175592B1 (de) 2014-08-01 2021-12-29 Kandou Labs S.A. Orthogonale differenzielle vektorsignalisierungscodes mit eingebettetem takt
US9921993B2 (en) 2014-08-11 2018-03-20 Qualcomm Incorporated Memory circuit configuration schemes on multi-drop buses
US9674014B2 (en) 2014-10-22 2017-06-06 Kandou Labs, S.A. Method and apparatus for high speed chip-to-chip communications
US9734127B2 (en) * 2015-02-05 2017-08-15 Weng Tianxiang Systematic method of synthesizing wave-pipelined circuits in HDL
KR102517583B1 (ko) 2015-06-26 2023-04-03 칸도우 랩스 에스에이 고속 통신 시스템
US10055372B2 (en) 2015-11-25 2018-08-21 Kandou Labs, S.A. Orthogonal differential vector signaling codes with embedded clock
US10622032B2 (en) 2015-12-08 2020-04-14 Rambus Inc. Low power signaling interface
CN108431785B (zh) * 2016-01-25 2021-12-10 爱信艾达株式会社 存储器控制器
US10003315B2 (en) 2016-01-25 2018-06-19 Kandou Labs S.A. Voltage sampler driver with enhanced high-frequency gain
US9841922B2 (en) 2016-02-03 2017-12-12 SK Hynix Inc. Memory system includes a memory controller
US10003454B2 (en) 2016-04-22 2018-06-19 Kandou Labs, S.A. Sampler with low input kickback
CN115051705A (zh) 2016-04-22 2022-09-13 康杜实验室公司 高性能锁相环
US10153591B2 (en) 2016-04-28 2018-12-11 Kandou Labs, S.A. Skew-resistant multi-wire channel
WO2017189931A1 (en) 2016-04-28 2017-11-02 Kandou Labs, S.A. Vector signaling codes for densely-routed wire groups
CN109417521B (zh) 2016-04-28 2022-03-18 康杜实验室公司 低功率多电平驱动器
US10152262B2 (en) 2016-05-03 2018-12-11 Micron Technology, Inc. Memory access techniques in memory devices with multiple partitions
US10141926B2 (en) 2016-07-19 2018-11-27 Ciena Corporation Ultra-low power cross-point electronic switch apparatus and method
US10872055B2 (en) 2016-08-02 2020-12-22 Qualcomm Incorporated Triple-data-rate technique for a synchronous link
US9997220B2 (en) * 2016-08-22 2018-06-12 Micron Technology, Inc. Apparatuses and methods for adjusting delay of command signal path
US9906358B1 (en) 2016-08-31 2018-02-27 Kandou Labs, S.A. Lock detector for phase lock loop
US10411922B2 (en) 2016-09-16 2019-09-10 Kandou Labs, S.A. Data-driven phase detector element for phase locked loops
US10789185B2 (en) 2016-09-21 2020-09-29 Rambus Inc. Memory modules and systems with variable-width data ranks and configurable data-rank timing
US10200188B2 (en) 2016-10-21 2019-02-05 Kandou Labs, S.A. Quadrature and duty cycle error correction in matrix phase lock loop
US10200218B2 (en) 2016-10-24 2019-02-05 Kandou Labs, S.A. Multi-stage sampler with increased gain
US10372665B2 (en) 2016-10-24 2019-08-06 Kandou Labs, S.A. Multiphase data receiver with distributed DFE
KR102656219B1 (ko) * 2016-11-07 2024-04-11 삼성전자주식회사 메모리 장치, 그것을 포함하는 메모리 시스템, 및 그것의 슬루 레이트 조정 방법
WO2018106682A1 (en) * 2016-12-07 2018-06-14 Integrated Device Technology, Inc. Time slotted bus system for multiple coupled digital phase-locked loops
US10379748B2 (en) 2016-12-19 2019-08-13 International Business Machines Corporation Predictive scheduler for memory rank switching
US11017839B2 (en) 2017-01-13 2021-05-25 Mediatek Inc. DRAM, memory controller and associated training method
US10090057B2 (en) * 2017-02-23 2018-10-02 Sandisk Technologies Llc Dynamic strobe timing
US10761589B2 (en) * 2017-04-21 2020-09-01 Intel Corporation Interconnect fabric link width reduction to reduce instantaneous power consumption
US10116468B1 (en) 2017-06-28 2018-10-30 Kandou Labs, S.A. Low power chip-to-chip bidirectional communications
US10686583B2 (en) 2017-07-04 2020-06-16 Kandou Labs, S.A. Method for measuring and correcting multi-wire skew
US10203226B1 (en) 2017-08-11 2019-02-12 Kandou Labs, S.A. Phase interpolation circuit
US10157661B1 (en) * 2017-08-25 2018-12-18 Micron Technology, Inc. Mitigating line-to-line capacitive coupling in a memory die
US10290332B1 (en) * 2017-10-31 2019-05-14 Sandisk Technologies Llc Signal path optimization for read operations in storage devices
US10467177B2 (en) 2017-12-08 2019-11-05 Kandou Labs, S.A. High speed memory interface
US10326623B1 (en) 2017-12-08 2019-06-18 Kandou Labs, S.A. Methods and systems for providing multi-stage distributed decision feedback equalization
US10554380B2 (en) 2018-01-26 2020-02-04 Kandou Labs, S.A. Dynamically weighted exclusive or gate having weighted output segments for phase detection and phase interpolation
US10607671B2 (en) 2018-02-17 2020-03-31 Micron Technology, Inc. Timing circuit for command path in a memory device
US10963404B2 (en) * 2018-06-25 2021-03-30 Intel Corporation High bandwidth DIMM
US10884958B2 (en) * 2018-06-25 2021-01-05 Intel Corporation DIMM for a high bandwidth memory channel
WO2020117481A1 (en) 2018-12-04 2020-06-11 Rambus Inc. Off-module data buffer
US10825493B2 (en) * 2018-12-14 2020-11-03 Micron Technology, Inc. Feedback for multi-level signaling in a memory device
KR20210093360A (ko) * 2018-12-19 2021-07-27 마이크론 테크놀로지, 인크 가변적인 물리 치수들, 메모리 포맷들, 및 동작 능력들을 가진 메모리 디바이스들, 모듈들 및 메모리 디바이스들을 가진 시스템들
WO2020176448A1 (en) 2019-02-27 2020-09-03 Rambus Inc. Low power memory with on-demand bandwidth boost
US10777253B1 (en) * 2019-04-16 2020-09-15 International Business Machines Corporation Memory array for processing an N-bit word
US10902171B1 (en) * 2019-07-09 2021-01-26 SiFive, Inc. Clock crossing interface for integrated circuit generation
US11321511B2 (en) 2019-07-09 2022-05-03 SiFive, Inc. Reset crossing and clock crossing interface for integrated circuit generation
US11699471B2 (en) 2019-09-25 2023-07-11 Intel Corporation Synchronous dynamic random access memory (SDRAM) dual in-line memory module (DIMM) having increased per data pin bandwidth
US10885959B1 (en) * 2019-10-02 2021-01-05 Micron Technology, Inc. Apparatuses and methods for semiconductor devices including clock signal lines
KR20210074429A (ko) * 2019-12-11 2021-06-22 삼성전자주식회사 클럭 신호를 보상하기 위한 보상 회로 및 그것을 포함하는 메모리 장치
CN113571118A (zh) * 2020-04-29 2021-10-29 瑞昱半导体股份有限公司 存储器控制器装置与相位校正方法
US11409684B2 (en) 2020-07-31 2022-08-09 Alibaba Group Holding Limited Processing accelerator architectures
US11625341B2 (en) 2020-08-11 2023-04-11 Alibaba Group Holding Limited Narrow DRAM channel systems and methods
CN114115439A (zh) * 2020-08-26 2022-03-01 长鑫存储技术有限公司 存储器
CN114115440B (zh) 2020-08-26 2023-09-12 长鑫存储技术有限公司 存储器
CN114115441A (zh) 2020-08-26 2022-03-01 长鑫存储技术有限公司 存储器
CN114115437B (zh) 2020-08-26 2023-09-26 长鑫存储技术有限公司 存储器
KR20220046211A (ko) * 2020-10-07 2022-04-14 에스케이하이닉스 주식회사 저항성 메모리 장치를 제어하기 위한 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
TWI786763B (zh) * 2021-08-10 2022-12-11 群聯電子股份有限公司 訊號調變裝置、記憶體儲存裝置及訊號調變方法
TWI788160B (zh) * 2021-12-24 2022-12-21 晶豪科技股份有限公司 資料控制電路以及記憶體裝置
CN114756496A (zh) * 2022-03-11 2022-07-15 Tcl空调器(中山)有限公司 Eeprom芯片的数据读取方法、系统、空调器及存储介质
CN116844605A (zh) * 2022-03-23 2023-10-03 长鑫存储技术有限公司 一种信号采样电路以及半导体存储器
US11881255B2 (en) 2022-04-27 2024-01-23 Nvidia Corp. Look ahead switching circuit for a multi-rank system

Family Cites Families (315)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7056A (en) * 1850-01-29 Am-photo-uthft co
US1660754A (en) * 1926-03-31 1928-02-28 Christian H Kenneweg Fuel-injection valve
DE1291778B (de) 1967-04-29 1969-04-03 Licentia Gmbh Taktsignalgenerator
US3820081A (en) 1972-10-05 1974-06-25 Honeywell Inf Systems Override hardware for main store sequencer
US3950735A (en) 1974-01-04 1976-04-13 Honeywell Information Systems, Inc. Method and apparatus for dynamically controlling read/write operations in a peripheral subsystem
US4866680A (en) 1977-12-05 1989-09-12 Scherbatskoy Serge Alexander Method and apparatus for transmitting information in a borehole employing signal discrimination
US4183095A (en) 1978-09-01 1980-01-08 Ncr Corporation High density memory device
US4315308A (en) 1978-12-21 1982-02-09 Intel Corporation Interface between a microprocessor chip and peripheral subsystems
US4266282A (en) 1979-03-12 1981-05-05 International Business Machines Corporation Vertical semiconductor integrated circuit chip packaging
US4280221A (en) * 1979-05-31 1981-07-21 The Boeing Company Digital data communication system
JPS5634186A (en) 1979-08-29 1981-04-06 Hitachi Ltd Bipolar memory circuit
US4330852A (en) 1979-11-23 1982-05-18 Texas Instruments Incorporated Semiconductor read/write memory array having serial access
JPS5764895U (de) 1980-10-03 1982-04-17
JPS57101957A (en) 1980-12-17 1982-06-24 Hitachi Ltd Storage control device
FR2513407B1 (fr) * 1981-09-24 1987-01-16 Finger Ulrich Systeme d'arbitrage des demandes d'acces de plusieurs processeurs a des ressources communes, par l'intermediaire d'un bus commun
US4567545A (en) 1983-05-18 1986-01-28 Mettler Rollin W Jun Integrated circuit module and method of making same
US4656605A (en) 1983-09-02 1987-04-07 Wang Laboratories, Inc. Single in-line memory module
US4646270A (en) 1983-09-15 1987-02-24 Motorola, Inc. Video graphic dynamic RAM
US4763249A (en) 1983-09-22 1988-08-09 Digital Equipment Corporation Bus device for use in a computer system having a synchronous bus
US4654790A (en) * 1983-11-28 1987-03-31 Amdahl Corporation Translation of virtual and real addresses to system addresses
JPS60136086A (ja) 1983-12-23 1985-07-19 Hitachi Ltd 半導体記憶装置
JPS6142795A (ja) 1984-08-03 1986-03-01 Toshiba Corp 半導体記憶装置の行デコ−ダ系
US4637018A (en) 1984-08-29 1987-01-13 Burroughs Corporation Automatic signal delay adjustment method
DE3543911A1 (de) 1984-12-14 1986-06-26 Mitsubishi Denki K.K., Tokio/Tokyo Digitale verzoegerungseinheit
US4712190A (en) 1985-01-25 1987-12-08 Digital Equipment Corporation Self-timed random access memory chip
US4719602A (en) 1985-02-07 1988-01-12 Visic, Inc. Memory with improved column access
US4637545A (en) * 1985-03-25 1987-01-20 Winfield Corporation Waste management system
JPS628614A (ja) 1985-07-05 1987-01-16 Nec Corp 入力インバ−タ回路
US4920483A (en) 1985-11-15 1990-04-24 Data General Corporation A computer memory for accessing any word-sized group of contiguous bits
US4792926A (en) 1985-12-09 1988-12-20 Kabushiki Kaisha Toshiba High speed memory system for use with a control bus bearing contiguous segmentially intermixed data read and data write request signals
US4755937A (en) 1986-02-14 1988-07-05 Prime Computer, Inc. Method and apparatus for high bandwidth shared memory
DE3607141A1 (de) * 1986-03-05 1987-09-10 Irs Ind Rationalis Syst Gmbh Verfahren und vorrichtung zum explosionsschutz von anlagen, rohrleitungen u. dgl. durch druckueberwachung
JPS634493A (ja) 1986-06-24 1988-01-09 Mitsubishi Electric Corp デユアルポ−トメモリ
JPH0774606B2 (ja) 1986-07-09 1995-08-09 本田技研工業株式会社 三弁・sohc型内燃機関
US4800530A (en) 1986-08-19 1989-01-24 Kabushiki Kasiha Toshiba Semiconductor memory system with dynamic random access memory cells
US4845664A (en) 1986-09-15 1989-07-04 International Business Machines Corp. On-chip bit reordering structure
US4799199A (en) 1986-09-18 1989-01-17 Motorola, Inc. Bus master having burst transfer mode
US5140688A (en) 1986-11-10 1992-08-18 Texas Instruments Incorporated GaAs integrated circuit programmable delay line element
US4845684A (en) * 1986-12-09 1989-07-04 International Business Machines Corporation Acoustic contact sensor for handwritten computer input
JPS63276795A (ja) 1986-12-16 1988-11-15 Mitsubishi Electric Corp 可変長シフトレジスタ
US4821226A (en) 1987-01-30 1989-04-11 Rca Licensing Corporation Dual port video memory system having a bit-serial address input port
US4792929A (en) 1987-03-23 1988-12-20 Zenith Electronics Corporation Data processing system with extended memory access
JPS63271679A (ja) 1987-04-30 1988-11-09 Toshiba Corp デ−タ書込み方式
US4817058A (en) 1987-05-21 1989-03-28 Texas Instruments Incorporated Multiple input/output read/write memory having a multiple-cycle write mask
JP2590122B2 (ja) 1987-08-07 1997-03-12 富士通株式会社 半導体メモリ
US4845677A (en) 1987-08-17 1989-07-04 International Business Machines Corporation Pipelined memory chip structure having improved cycle time
US5179687A (en) 1987-09-26 1993-01-12 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device containing a cache and an operation method thereof
JPS6488662A (en) 1987-09-29 1989-04-03 Fujitsu Ltd Semiconductor memory
JP2701030B2 (ja) 1987-10-09 1998-01-21 株式会社日立製作所 高速記憶装置の書込制御回路
KR970008786B1 (ko) 1987-11-02 1997-05-29 가부시기가이샤 히다찌세이사꾸쇼 반도체 집적회로
JPH01146187A (ja) 1987-12-02 1989-06-08 Mitsubishi Electric Corp キヤッシュメモリ内蔵半導体記憶装置
US4916670A (en) 1988-02-02 1990-04-10 Fujitsu Limited Semiconductor memory device having function of generating write signal internally
US4866676A (en) 1988-03-24 1989-09-12 Motorola, Inc. Testing arrangement for a DRAM with redundancy
US5301278A (en) 1988-04-29 1994-04-05 International Business Machines Corporation Flexible dynamic memory controller
US4866679A (en) 1988-08-11 1989-09-12 Western Atlas International, Inc. Method for identifying anomalous noise amplitudes in seismic data
US5335337A (en) 1989-01-27 1994-08-02 Digital Equipment Corporation Programmable data transfer timing
US4937734A (en) 1989-02-21 1990-06-26 Sun Microsystems, Inc. High speed bus with virtual memory data transfer and rerun cycle capability
US5001672A (en) 1989-05-16 1991-03-19 International Business Machines Corporation Video ram with external select of active serial access register
US5097489A (en) 1989-05-19 1992-03-17 Tucci Patrick A Method for incorporating window strobe in a data synchronizer
KR940008295B1 (ko) 1989-08-28 1994-09-10 가부시기가이샤 히다찌세이사꾸쇼 반도체메모리
IL96808A (en) 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
US5428389A (en) 1990-06-14 1995-06-27 Fuji Photo Film Co., Ltd. Image data storage/processing apparatus
JP2519580B2 (ja) 1990-06-19 1996-07-31 三菱電機株式会社 半導体集積回路
US5404483A (en) * 1990-06-29 1995-04-04 Digital Equipment Corporation Processor and method for delaying the processing of cache coherency transactions during outstanding cache fills
KR100214435B1 (ko) 1990-07-25 1999-08-02 사와무라 시코 동기식 버스트 엑세스 메모리
US5077693A (en) 1990-08-06 1991-12-31 Motorola, Inc. Dynamic random access memory
KR950010570B1 (ko) 1990-09-03 1995-09-19 마쯔시다덴기산교 가부시기가이샤 멀티포오트메모리
US5357621A (en) 1990-09-04 1994-10-18 Hewlett-Packard Company Serial architecture for memory module control
US5117389A (en) 1990-09-05 1992-05-26 Macronix International Co., Ltd. Flat-cell read-only-memory integrated circuit
US5239639A (en) * 1990-11-09 1993-08-24 Intel Corporation Efficient memory controller with an independent clock
TW198135B (de) 1990-11-20 1993-01-11 Oki Electric Ind Co Ltd
JP3100622B2 (ja) 1990-11-20 2000-10-16 沖電気工業株式会社 同期型ダイナミックram
US5379438A (en) 1990-12-14 1995-01-03 Xerox Corporation Transferring a processing unit's data between substrates in a parallel processor
JPH04216392A (ja) 1990-12-18 1992-08-06 Mitsubishi Electric Corp ブロックライト機能を備える半導体記憶装置
JP3992757B2 (ja) 1991-04-23 2007-10-17 テキサス インスツルメンツ インコーポレイテツド マイクロプロセッサと同期するメモリ、及びデータプロセッサ、同期メモリ、周辺装置とシステムクロックを含むシステム
WO1992021088A1 (en) 1991-05-17 1992-11-26 Eastman Kodak Company Novel electrical bus structure
US5345573A (en) 1991-10-04 1994-09-06 Bull Hn Information Systems Inc. High speed burst read address generation with high speed transfer
US5381538A (en) 1991-10-15 1995-01-10 International Business Machines Corp. DMA controller including a FIFO register and a residual register for data buffering and having different operating modes
JP2599539B2 (ja) 1991-10-15 1997-04-09 インターナショナル・ビジネス・マシーンズ・コーポレイション 直接メモリ・アクセス装置及びルック・アヘッド装置
JPH05134973A (ja) * 1991-11-14 1993-06-01 Toshiba Corp データ転送装置
US5381376A (en) 1991-11-22 1995-01-10 Samsung Electronics Co., Ltd. Video RAM having block selection function during serial write transfer operation
US5276858A (en) 1991-12-26 1994-01-04 Intel Corporation Memory controller with integrated delay line circuitry
KR950000503B1 (ko) 1992-01-10 1995-01-24 삼성전자 주식회사 블럭라이트 기능을 갖는 반도체 메모리장치
JP2740097B2 (ja) 1992-03-19 1998-04-15 株式会社東芝 クロック同期型半導体記憶装置およびそのアクセス方法
JP2830594B2 (ja) 1992-03-26 1998-12-02 日本電気株式会社 半導体メモリ装置
US5164916A (en) 1992-03-31 1992-11-17 Digital Equipment Corporation High-density double-sided multi-string memory module with resistor for insertion detection
US5384745A (en) 1992-04-27 1995-01-24 Mitsubishi Denki Kabushiki Kaisha Synchronous semiconductor memory device
US5572722A (en) 1992-05-28 1996-11-05 Texas Instruments Incorporated Time skewing arrangement for operating random access memory in synchronism with a data processor
JP2950018B2 (ja) 1992-06-02 1999-09-20 日本電気株式会社 半導体記憶回路とそれを用いた半導体記憶モジュール及び音響信号再生装置
US5731633A (en) 1992-09-16 1998-03-24 Gary W. Hamilton Thin multichip module
US5553248A (en) 1992-10-02 1996-09-03 Compaq Computer Corporation System for awarding the highest priority to a microprocessor releasing a system bus after aborting a locked cycle upon detecting a locked retry signal
JP3476231B2 (ja) 1993-01-29 2003-12-10 三菱電機エンジニアリング株式会社 同期型半導体記憶装置および半導体記憶装置
CA2109043A1 (en) 1993-01-29 1994-07-30 Charles R. Moore System and method for transferring data between multiple buses
JP2605576B2 (ja) 1993-04-02 1997-04-30 日本電気株式会社 同期型半導体メモリ
US5392239A (en) 1993-05-06 1995-02-21 S3, Incorporated Burst-mode DRAM
JP3277603B2 (ja) 1993-05-19 2002-04-22 富士通株式会社 半導体記憶装置
US5511024A (en) 1993-06-02 1996-04-23 Rambus, Inc. Dynamic random access memory system
WO1994029871A1 (en) 1993-06-14 1994-12-22 Rambus, Inc. Method and apparatus for writing to memory components
JP4018159B2 (ja) 1993-06-28 2007-12-05 株式会社ルネサステクノロジ 半導体集積回路
JP3543336B2 (ja) 1993-07-20 2004-07-14 株式会社ルネサステクノロジ 半導体装置および半導体装置の配線方式
US5504874A (en) 1993-09-29 1996-04-02 Silicon Graphics, Inc. System and method of implementing read resources to maintain cache coherency in a multiprocessor environment permitting split transactions
US5511025A (en) * 1993-10-18 1996-04-23 Texas Instruments Incorporated Write per bit with write mask information carried on the data path past the input data latch
US5386375A (en) 1993-11-01 1995-01-31 Motorola, Inc. Floating point data processor and a method for performing a floating point square root operation within the data processor
US5530623A (en) 1993-11-19 1996-06-25 Ncr Corporation High speed memory packaging scheme
JP3328638B2 (ja) 1994-01-21 2002-09-30 株式会社日立製作所 メモリ装置
US5386385A (en) * 1994-01-31 1995-01-31 Texas Instruments Inc. Method and apparatus for preventing invalid operating modes and an application to synchronous memory devices
US5406518A (en) * 1994-02-08 1995-04-11 Industrial Technology Research Institute Variable length delay circuit utilizing an integrated memory device with multiple-input and multiple-output configuration
KR0122099B1 (ko) 1994-03-03 1997-11-26 김광호 라이트레이턴시제어기능을 가진 동기식 반도체메모리장치
JPH07253962A (ja) * 1994-03-14 1995-10-03 Fujitsu Ltd 半導体装置
US5579352A (en) 1994-04-06 1996-11-26 National Semiconductor Corporation Simplified window de-skewing in a serial data receiver
US5533204A (en) 1994-04-18 1996-07-02 Compaq Computer Corporation Split transaction protocol for the peripheral component interconnect bus
JPH07311735A (ja) * 1994-05-18 1995-11-28 Hitachi Ltd データ転送装置
EP0692764B1 (de) 1994-06-17 2000-08-09 Advanced Micro Devices, Inc. Speicherübertragungsgeschwindigkeitsbegrenzung für PCI-Meister
US5655113A (en) * 1994-07-05 1997-08-05 Monolithic System Technology, Inc. Resynchronization circuit for a memory system and method of operating same
US5528177A (en) * 1994-09-16 1996-06-18 Research Foundation Of State University Of New York Complementary field-effect transistor logic circuits for wave pipelining
JPH08123717A (ja) 1994-10-25 1996-05-17 Oki Electric Ind Co Ltd 半導体記憶装置
US5548788A (en) 1994-10-27 1996-08-20 Emc Corporation Disk controller having host processor controls the time for transferring data to disk drive by modifying contents of the memory to indicate data is stored in the memory
US5475690A (en) * 1994-11-10 1995-12-12 Digital Equipment Corporation Delay compensated signal propagation
JPH08278916A (ja) * 1994-11-30 1996-10-22 Hitachi Ltd マルチチャネルメモリシステム、転送情報同期化方法及び信号転送回路
US5611068A (en) * 1994-12-27 1997-03-11 Motorola, Inc. Apparatus and method for controlling pipelined data transfer scheme between stages employing shift register and associated addressing mechanism
US5577236A (en) 1994-12-30 1996-11-19 International Business Machines Corporation Memory controller for reading data from synchronous RAM
JP2962463B2 (ja) 1995-01-13 1999-10-12 焼津水産化学工業株式会社 生鮮長芋の保存方法及び生鮮長芋冷凍品の製造方法
JP3487458B2 (ja) 1995-01-27 2004-01-19 株式会社リコー 並列信号伝送装置
US5638520A (en) * 1995-03-31 1997-06-10 Motorola, Inc. Method and apparatus for distributing bus loading in a data processing system
US5578940A (en) 1995-04-04 1996-11-26 Rambus, Inc. Modular bus with single or double parallel termination
US5638531A (en) 1995-06-07 1997-06-10 International Business Machines Corporation Multiprocessor integrated circuit with video refresh logic employing instruction/data caching and associated timing synchronization
US5852640A (en) * 1995-06-26 1998-12-22 Kliza; Phillip S. Clock distribution apparatus with current sensed skew cancelling
US5764963A (en) 1995-07-07 1998-06-09 Rambus, Inc. Method and apparatus for performing maskable multiple color block writes
US5742840A (en) * 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
US5692165A (en) 1995-09-12 1997-11-25 Micron Electronics Inc. Memory controller with low skew control signal
US5748914A (en) 1995-10-19 1998-05-05 Rambus, Inc. Protocol for communication with dynamic memory
US6470405B2 (en) 1995-10-19 2002-10-22 Rambus Inc. Protocol for communication with dynamic memory
US6035369A (en) 1995-10-19 2000-03-07 Rambus Inc. Method and apparatus for providing a memory with write enable information
US6810449B1 (en) 1995-10-19 2004-10-26 Rambus, Inc. Protocol for communication with dynamic memory
JPH09161472A (ja) * 1995-12-13 1997-06-20 Hitachi Ltd メモリ制御方法
JP3986578B2 (ja) * 1996-01-17 2007-10-03 三菱電機株式会社 同期型半導体記憶装置
JP3410922B2 (ja) * 1996-04-23 2003-05-26 株式会社東芝 クロック制御回路
US6211703B1 (en) 1996-06-07 2001-04-03 Hitachi, Ltd. Signal transmission system
US6125419A (en) * 1996-06-13 2000-09-26 Hitachi, Ltd. Bus system, printed circuit board, signal transmission line, series circuit and memory module
JP3546613B2 (ja) * 1996-10-25 2004-07-28 株式会社日立製作所 回路基板
JPH1022458A (ja) * 1996-07-04 1998-01-23 Fujitsu Ltd 半導体装置及びピン配列
US5802395A (en) 1996-07-08 1998-09-01 International Business Machines Corporation High density memory modules with improved data bus performance
US5742798A (en) 1996-08-09 1998-04-21 International Business Machines Corporation Compensation of chip to chip clock skew
JP3204108B2 (ja) * 1996-08-23 2001-09-04 トヨタ自動車株式会社 空気温センサの異常検出装置
US6226723B1 (en) * 1996-09-20 2001-05-01 Advanced Memory International, Inc. Bifurcated data and command/address communication bus architecture for random access memories employing synchronous communication protocols
US6088774A (en) 1996-09-20 2000-07-11 Advanced Memory International, Inc. Read/write timing for maximum utilization of bidirectional read/write bus
EP0831402A1 (de) 1996-09-23 1998-03-25 Hewlett-Packard Company Dynamisches Konfigurieren des Zeitverhaltens zur Anpassung an Speicherbuslastbedingungen
US5892981A (en) 1996-10-10 1999-04-06 Hewlett-Packard Company Memory system and device
US5933379A (en) * 1996-11-18 1999-08-03 Samsung Electronics, Co., Ltd. Method and circuit for testing a semiconductor memory device operating at high frequency
US6115318A (en) 1996-12-03 2000-09-05 Micron Technology, Inc. Clock vernier adjustment
JP3455040B2 (ja) * 1996-12-16 2003-10-06 株式会社日立製作所 ソースクロック同期式メモリシステムおよびメモリユニット
KR19980064365A (ko) 1996-12-19 1998-10-07 윌리엄비.켐플러 메모리 모듈로의 어드레스 및 데이타 분산용 장치 및 방법
US5966343A (en) 1997-01-02 1999-10-12 Texas Instruments Incorporated Variable latency memory circuit
US5943573A (en) 1997-01-17 1999-08-24 United Microelectronics Corp. Method of fabricating semiconductor read-only memory device
DE69731066T2 (de) * 1997-01-23 2005-10-06 Hewlett-Packard Development Co., L.P., Houston Speichersteuerungsvorrichtung mit programmierbarer Impulsverzögerung
US6912680B1 (en) * 1997-02-11 2005-06-28 Micron Technology, Inc. Memory system with dynamic timing correction
US5987576A (en) 1997-02-27 1999-11-16 Hewlett-Packard Company Method and apparatus for generating and distributing clock signals with minimal skew
JPH10302471A (ja) 1997-02-28 1998-11-13 Mitsubishi Electric Corp 半導体記憶装置
JP2935694B2 (ja) 1997-04-25 1999-08-16 松下電器産業株式会社 半導体集積回路およびシステム、並びにクロック信号とデータ信号との間のスキューを低減する方法
US5952691A (en) 1997-05-14 1999-09-14 Ricoh Company, Ltd. Non-volatile electrically alterable semiconductor memory device
US5946712A (en) 1997-06-04 1999-08-31 Oak Technology, Inc. Apparatus and method for reading data from synchronous memory
JPH10340222A (ja) * 1997-06-09 1998-12-22 Nec Corp メモリ装置の入力回路及び出力回路
US6247138B1 (en) 1997-06-12 2001-06-12 Fujitsu Limited Timing signal generating circuit, semiconductor integrated circuit device and semiconductor integrated circuit system to which the timing signal generating circuit is applied, and signal transmission system
KR100213241B1 (ko) * 1997-06-23 1999-08-02 윤종용 데이터 입출력 회로 및 데이터 입출력 방법
US6232792B1 (en) * 1997-06-25 2001-05-15 Sun Microsystems, Inc. Terminating transmission lines using on-chip terminator circuitry
US6286062B1 (en) 1997-07-01 2001-09-04 Micron Technology, Inc. Pipelined packet-oriented memory system having a unidirectional command and address bus and a bidirectional data bus
US6292903B1 (en) * 1997-07-09 2001-09-18 International Business Machines Corporation Smart memory interface
US6044429A (en) 1997-07-10 2000-03-28 Micron Technology, Inc. Method and apparatus for collision-free data transfers in a memory device with selectable data or address paths
US6124727A (en) 1997-07-11 2000-09-26 Adaptec, Inc. Bias compensator for differential transmission line with voltage bias
JP3922765B2 (ja) * 1997-07-22 2007-05-30 富士通株式会社 半導体装置システム及び半導体装置
US6442644B1 (en) * 1997-08-11 2002-08-27 Advanced Memory International, Inc. Memory system having synchronous-link DRAM (SLDRAM) devices and controller
JPH11161601A (ja) * 1997-08-19 1999-06-18 Matsushita Electric Ind Co Ltd 複数伝送線路間の遅延時間の調整装置
JPH1185345A (ja) 1997-09-02 1999-03-30 Toshiba Corp 入出力インターフェース回路及び半導体システム
US6067594A (en) * 1997-09-26 2000-05-23 Rambus, Inc. High frequency bus system
JPH11167515A (ja) * 1997-10-03 1999-06-22 Matsushita Electric Ind Co Ltd データ伝送装置及びデータ伝送方法
US6226757B1 (en) 1997-10-10 2001-05-01 Rambus Inc Apparatus and method for bus timing compensation
US6343352B1 (en) * 1997-10-10 2002-01-29 Rambus Inc. Method and apparatus for two step memory write operations
DE69816464T2 (de) * 1997-10-10 2004-04-15 Rambus Inc., Los Altos Vorrichtung und verfahren zum zeitverzögerungsausgleich von einrichtungen
US6075730A (en) * 1997-10-10 2000-06-13 Rambus Incorporated High performance cost optimized memory with delayed memory writes
US6401167B1 (en) 1997-10-10 2002-06-04 Rambus Incorporated High performance cost optimized memory
WO1999021915A1 (fr) * 1997-10-29 1999-05-06 Kanebo, Limited Composition de resine biodegradable et capable de former de la mousse
US6003118A (en) * 1997-12-16 1999-12-14 Acer Laboratories Inc. Method and apparatus for synchronizing clock distribution of a data processing system
US6005776A (en) 1998-01-05 1999-12-21 Intel Corporation Vertical connector based packaging solution for integrated circuits
US6111757A (en) 1998-01-16 2000-08-29 International Business Machines Corp. SIMM/DIMM memory module
KR100278653B1 (ko) 1998-01-23 2001-02-01 윤종용 이중 데이터율 모드 반도체 메모리 장치
US6968419B1 (en) * 1998-02-13 2005-11-22 Intel Corporation Memory module having a memory module controller controlling memory transactions for a plurality of memory devices
US6105144A (en) 1998-03-02 2000-08-15 International Business Machines Corporation System and method for alleviating skew in a bus
DE19808888A1 (de) * 1998-03-03 1999-09-09 Huels Chemische Werke Ag Verstärkte Formmasse
US6154821A (en) 1998-03-10 2000-11-28 Rambus Inc. Method and apparatus for initializing dynamic random access memory (DRAM) devices by levelizing a read domain
KR100601149B1 (ko) * 1998-03-12 2006-07-13 가부시키가이샤 히타치세이사쿠쇼 데이터 전송장치
GB2352375B (en) * 1998-03-16 2003-06-04 Jazio Inc High speed signaling for interfacing VLSI CMOS circuits
US6327205B1 (en) * 1998-03-16 2001-12-04 Jazio, Inc. Signal latching of high bandwidth DRAM arrays when skew between different components is higher than signal rate
JPH11265313A (ja) * 1998-03-18 1999-09-28 Hitachi Ltd 記憶装置
US5933387A (en) 1998-03-30 1999-08-03 Richard Mann Divided word line architecture for embedded memories using multiple metal layers
DE69923769T2 (de) * 1998-04-01 2006-02-02 Mosaid Technologies Incorporated, Kanata Asynchrones halbleiterspeicher-fliessband
CA2233789C (en) * 1998-04-01 2013-06-11 Ian Mes Semiconductor memory asynchronous pipeline
US6356260B1 (en) * 1998-04-10 2002-03-12 National Semiconductor Corporation Method for reducing power and electromagnetic interference in conveying video data
JP3727778B2 (ja) * 1998-05-07 2005-12-14 株式会社東芝 データ高速転送同期システム及びデータ高速転送同期方法
JP4079507B2 (ja) * 1998-05-12 2008-04-23 富士通株式会社 メモリ制御システムおよびメモリ制御方法
US6049238A (en) * 1998-05-12 2000-04-11 Mitsubishi Denki Kabushiki Kaisha Clock generator and clock generating method capable of varying clock frequency without increasing the number of delay elements
US6041419A (en) * 1998-05-27 2000-03-21 S3 Incorporated Programmable delay timing calibrator for high speed data interface
KR100305647B1 (ko) * 1998-05-27 2002-03-08 박종섭 동기식메모리장치
US6016282A (en) * 1998-05-28 2000-01-18 Micron Technology, Inc. Clock vernier adjustment
US6057743A (en) * 1998-06-22 2000-05-02 Hubbell Incorporation Distributed noise reduction circuits in telecommunication system connector
JP2000035831A (ja) 1998-07-21 2000-02-02 Nec Corp 可変閾値電圧トランジスタを用いた低スキュークロックツリー回路
US6178517B1 (en) * 1998-07-24 2001-01-23 International Business Machines Corporation High bandwidth DRAM with low operating power modes
US6510503B2 (en) * 1998-07-27 2003-01-21 Mosaid Technologies Incorporated High bandwidth memory interface
US6049467A (en) * 1998-08-31 2000-04-11 Unisys Corporation Stackable high density RAM modules
US6279090B1 (en) 1998-09-03 2001-08-21 Micron Technology, Inc. Method and apparatus for resynchronizing a plurality of clock signals used in latching respective digital signals applied to a packetized memory device
US6029250A (en) * 1998-09-09 2000-02-22 Micron Technology, Inc. Method and apparatus for adaptively adjusting the timing offset between a clock signal and digital signals transmitted coincident with that clock signal, and memory device and system using same
KR100318257B1 (ko) * 1998-11-07 2002-04-22 박종섭 인쇄회로기판및그의신호배선방법
US6336205B1 (en) * 1998-11-12 2002-01-01 Matsushita Electric Industrial Co., Ltd. Method for designing semiconductor integrated circuit
KR100287542B1 (ko) * 1998-11-26 2001-04-16 윤종용 웨이브 파이프라인 스킴을 구비한 동기형 반도체 메모리 장치및 그것의 데이터 패스 제어 방법
JP3803204B2 (ja) 1998-12-08 2006-08-02 寛治 大塚 電子装置
US6222785B1 (en) * 1999-01-20 2001-04-24 Monolithic System Technology, Inc. Method and apparatus for refreshing a semiconductor memory using idle memory cycles
US6347367B1 (en) 1999-01-29 2002-02-12 International Business Machines Corp. Data bus structure for use with multiple memory storage and driver receiver technologies and a method of operating such structures
JP4115028B2 (ja) 1999-02-17 2008-07-09 富士通株式会社 集積回路デバイス及びそれを搭載したモジュール
US6253266B1 (en) * 1999-02-19 2001-06-26 Inet Technologies, Inc. Apparatus and method for controlling information flow in a card cage having multiple backplanes
US6654897B1 (en) 1999-03-05 2003-11-25 International Business Machines Corporation Dynamic wave-pipelined interface apparatus and methods therefor
US6137734A (en) * 1999-03-30 2000-10-24 Lsi Logic Corporation Computer memory interface having a memory controller that automatically adjusts the timing of memory interface signals
JP2000284873A (ja) 1999-03-31 2000-10-13 Adtec:Kk メモリ回路基板
JP3880286B2 (ja) 1999-05-12 2007-02-14 エルピーダメモリ株式会社 方向性結合式メモリシステム
KR100316713B1 (ko) 1999-06-26 2001-12-12 윤종용 반도체 메모리 장치 및 이에 적합한 구동신호 발생기
US6629222B1 (en) 1999-07-13 2003-09-30 Micron Technology Inc. Apparatus for synchronizing strobe and data signals received from a RAM
US6839393B1 (en) 1999-07-14 2005-01-04 Rambus Inc. Apparatus and method for controlling a master/slave system via master device synchronization
US6370668B1 (en) * 1999-07-23 2002-04-09 Rambus Inc High speed memory system capable of selectively operating in non-chip-kill and chip-kill modes
JP3813768B2 (ja) 1999-07-30 2006-08-23 株式会社日立製作所 半導体装置及び半導体モジュール
US6477592B1 (en) 1999-08-06 2002-11-05 Integrated Memory Logic, Inc. System for I/O interfacing for semiconductor chip utilizing addition of reference element to each data element in first data stream and interpret to recover data elements of second data stream
US6180754B1 (en) * 1999-09-03 2001-01-30 The Dow Chemical Company Process for producing cross-linked polyallylamine polymer
US6640292B1 (en) 1999-09-10 2003-10-28 Rambus Inc. System and method for controlling retire buffer operation in a memory system
US6646953B1 (en) * 2000-07-06 2003-11-11 Rambus Inc. Single-clock, strobeless signaling system
US6321282B1 (en) * 1999-10-19 2001-11-20 Rambus Inc. Apparatus and method for topography dependent signaling
US6643787B1 (en) 1999-10-19 2003-11-04 Rambus Inc. Bus system optimization
US6526469B1 (en) * 1999-11-12 2003-02-25 International Business Machines Corporation Bus architecture employing varying width uni-directional command bus
US6643752B1 (en) 1999-12-09 2003-11-04 Rambus Inc. Transceiver with latency alignment circuitry
US6172895B1 (en) * 1999-12-14 2001-01-09 High Connector Density, Inc. High capacity memory module with built-in-high-speed bus terminations
US6502161B1 (en) 2000-01-05 2002-12-31 Rambus Inc. Memory system including a point-to-point linked memory subsystem
US6760857B1 (en) * 2000-02-18 2004-07-06 Rambus Inc. System having both externally and internally generated clock signals being asserted on the same clock pin in normal and test modes of operation respectively
US6179687B1 (en) * 2000-03-10 2001-01-30 Elena Lee Undergarments with invisible strap
US6191997B1 (en) 2000-03-10 2001-02-20 Mosel Vitelic Inc. Memory burst operations in which address count bits are used as column address bits for one, but not both, of the odd and even columns selected in parallel.
JP2001265708A (ja) * 2000-03-16 2001-09-28 Toshiba Corp 電子機器及び電子機器の基板
US6833984B1 (en) 2000-05-03 2004-12-21 Rambus, Inc. Semiconductor module with serial bus connection to multiple dies
US6449159B1 (en) 2000-05-03 2002-09-10 Rambus Inc. Semiconductor module with imbedded heat spreader
US6388886B1 (en) * 2000-05-08 2002-05-14 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory module and module system
JP2001319500A (ja) * 2000-05-10 2001-11-16 Mitsubishi Electric Corp 半導体集積回路装置
US6545875B1 (en) * 2000-05-10 2003-04-08 Rambus, Inc. Multiple channel modules and bus systems using same
JP3757757B2 (ja) 2000-05-18 2006-03-22 株式会社日立製作所 リード優先メモリシステム
JP2001339283A (ja) 2000-05-26 2001-12-07 Mitsubishi Electric Corp 遅延回路およびそのための半導体回路装置
US6611905B1 (en) 2000-06-29 2003-08-26 International Business Machines Corporation Memory interface with programable clock to output time based on wide range of receiver loads
US6316980B1 (en) 2000-06-30 2001-11-13 Intel Corporation Calibrating data strobe signal using adjustable delays with feedback
KR100608346B1 (ko) * 2000-06-30 2006-08-09 주식회사 하이닉스반도체 반도체 메모리 장치의 시스템 버스 구조
US6760856B1 (en) 2000-07-17 2004-07-06 International Business Machines Corporation Programmable compensated delay for DDR SDRAM interface using programmable delay loop for reference calibration
US6807613B1 (en) 2000-08-21 2004-10-19 Mircon Technology, Inc. Synchronized write data on a high speed memory bus
US6333893B1 (en) 2000-08-21 2001-12-25 Micron Technology, Inc. Method and apparatus for crossing clock domain boundaries
US6691214B1 (en) 2000-08-29 2004-02-10 Micron Technology, Inc. DDR II write data capture calibration
US6928571B1 (en) 2000-09-15 2005-08-09 Intel Corporation Digital system of adjusting delays on circuit boards
US6853557B1 (en) * 2000-09-20 2005-02-08 Rambus, Inc. Multi-channel memory architecture
JP2002117670A (ja) 2000-10-04 2002-04-19 Mitsubishi Electric Corp 半導体記憶装置
US6411122B1 (en) 2000-10-27 2002-06-25 Intel Corporation Apparatus and method for dynamic on-die termination in an open-drain bus architecture system
US6553472B2 (en) * 2001-01-12 2003-04-22 Sun Microsystems, Inc. Method for programming clock delays, command delays, read command parameter delays, and write command parameter delays of a memory controller in a high performance microprocessor
US6873939B1 (en) * 2001-02-02 2005-03-29 Rambus Inc. Method and apparatus for evaluating and calibrating a signaling system
JP2002230985A (ja) * 2001-02-06 2002-08-16 Sharp Corp 不揮発性半導体記憶装置及びその制御方法
US7313715B2 (en) 2001-02-09 2007-12-25 Samsung Electronics Co., Ltd. Memory system having stub bus configuration
US6445624B1 (en) * 2001-02-23 2002-09-03 Micron Technology, Inc. Method of synchronizing read timing in a high speed memory system
US6788593B2 (en) * 2001-02-28 2004-09-07 Rambus, Inc. Asynchronous, high-bandwidth memory component using calibrated timing elements
US6618736B1 (en) * 2001-03-09 2003-09-09 Ensim Corporation Template-based creation and archival of file systems
US6658523B2 (en) * 2001-03-13 2003-12-02 Micron Technology, Inc. System latency levelization for read data
US6684283B1 (en) * 2001-03-13 2004-01-27 Texas Instruments Incorporated Method for interfacing a cardbay card to the host system by indicating a 16-bit or cardbus PC card insertion to host software
US6456544B1 (en) 2001-03-30 2002-09-24 Intel Corporation Selective forwarding of a strobe based on a predetermined delay following a memory read command
EP1249438A1 (de) * 2001-04-13 2002-10-16 Dsm N.V. Kontinuierliches Hydroformylierungsverfahren zur Herstellung von Aldehyden
US6675272B2 (en) * 2001-04-24 2004-01-06 Rambus Inc. Method and apparatus for coordinating memory operations among diversely-located memory components
EP1291778B1 (de) 2001-04-24 2007-06-27 Rambus Inc. Verfahren und Gerät zum Koordinieren von Speicheroperationen zwischen unterschiedlich angeordneten Speicherkomponenten
US8391039B2 (en) * 2001-04-24 2013-03-05 Rambus Inc. Memory module with termination component
JP2003005831A (ja) 2001-06-20 2003-01-08 Nippon Yusoki Co Ltd 接触検出装置
US6801989B2 (en) 2001-06-28 2004-10-05 Micron Technology, Inc. Method and system for adjusting the timing offset between a clock signal and respective digital signals transmitted along with that clock signal, and memory device and computer system using same
US6697918B2 (en) * 2001-07-18 2004-02-24 Broadcom Corporation Cache configured to read evicted cache block responsive to transmitting block's address on interface
US6807614B2 (en) 2001-07-19 2004-10-19 Shine C. Chung Method and apparatus for using smart memories in computing
US6970988B1 (en) 2001-07-19 2005-11-29 Chung Shine C Algorithm mapping, specialized instructions and architecture features for smart memory computing
US7102958B2 (en) * 2001-07-20 2006-09-05 Samsung Electronics Co., Ltd. Integrated circuit memory devices that support selective mode register set commands and related memory modules, memory controllers, and methods
US6504790B1 (en) * 2001-08-09 2003-01-07 International Business Machines Corporation Configurable DDR write-channel phase advance and delay capability
JP2003085974A (ja) 2001-09-13 2003-03-20 Toshiba Corp 半導体集積回路およびメモリシステム
US6748465B2 (en) 2001-09-28 2004-06-08 Intel Corporation Local bus polling support buffer
JP4308461B2 (ja) * 2001-10-05 2009-08-05 ラムバス・インコーポレーテッド 半導体記憶装置
US6920540B2 (en) * 2001-10-22 2005-07-19 Rambus Inc. Timing calibration apparatus and method for a memory device signaling system
KR100393232B1 (ko) * 2001-10-23 2003-07-31 삼성전자주식회사 제1 또는 제2메모리 아키텍쳐로의 구현이 가능한 반도체메모리 장치 및 이를 이용한 메모리 시스템
US6661721B2 (en) 2001-12-13 2003-12-09 Infineon Technologies Ag Systems and methods for executing precharge commands using posted precharge in integrated circuit memory devices with memory banks each including local precharge control circuits
KR100414943B1 (ko) 2001-12-28 2004-01-16 엘지전자 주식회사 콤팩트 피씨아이에 기반한 다중 처리 시스템에서의 클럭분배 장치 및 방법
CN1509475B (zh) * 2002-01-11 2010-05-26 索尼公司 存储设备、运动矢量检测器、和运动补偿预测编码器
US6804764B2 (en) 2002-01-22 2004-10-12 Mircron Technology, Inc. Write clock and data window tuning based on rank select
US7043599B1 (en) * 2002-06-20 2006-05-09 Rambus Inc. Dynamic memory supporting simultaneous refresh and data-access transactions
US20040003194A1 (en) * 2002-06-26 2004-01-01 Amit Bodas Method and apparatus for adjusting DRAM signal timings
JP4481588B2 (ja) 2003-04-28 2010-06-16 株式会社東芝 半導体集積回路装置
JP4205553B2 (ja) * 2003-11-06 2009-01-07 エルピーダメモリ株式会社 メモリモジュール及びメモリシステム
JP4015986B2 (ja) 2003-11-12 2007-11-28 沖電気工業株式会社 半導体集積回路装置
JP4741226B2 (ja) 2003-12-25 2011-08-03 株式会社日立製作所 半導体メモリモジュール、およびメモリシステム
JP4565883B2 (ja) 2004-04-27 2010-10-20 ルネサスエレクトロニクス株式会社 半導体集積回路装置
US7224595B2 (en) 2004-07-30 2007-05-29 International Business Machines Corporation 276-Pin buffered memory module with enhanced fault tolerance
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
TWI304395B (en) * 2004-11-26 2008-12-21 Ind Tech Res Inst A method for fabricating a high specific surface area mesoporous alumina
US7688672B2 (en) * 2005-03-14 2010-03-30 Rambus Inc. Self-timed interface for strobe-based systems
DE102005019041B4 (de) * 2005-04-23 2009-04-16 Qimonda Ag Halbleiterspeicher und Verfahren zur Anpassung der Phasenbeziehung zwischen einem Taktsignal und Strobe-Signal bei der Übernahme von zu übertragenden Schreibdaten
US7609567B2 (en) * 2005-06-24 2009-10-27 Metaram, Inc. System and method for simulating an aspect of a memory circuit
US8077535B2 (en) * 2006-07-31 2011-12-13 Google Inc. Memory refresh apparatus and method
KR100615580B1 (ko) * 2005-07-05 2006-08-25 삼성전자주식회사 반도체 메모리 장치 및 이 장치의 데이터 입출력 방법과이를 구비한 메모리 시스템
US7839792B2 (en) * 2005-08-30 2010-11-23 Tektronix, Inc. Time-correlated, simultaneous measurement and analysis of network signals from multiple communication networks
JP5072072B2 (ja) 2007-03-15 2012-11-14 東洋ゴム工業株式会社 研磨パッド
US7872937B2 (en) * 2008-03-31 2011-01-18 Globalfoundries Inc. Data driver circuit for a dynamic random access memory (DRAM) controller or the like and method therefor
US8661285B2 (en) * 2008-06-06 2014-02-25 Uniquify, Incorporated Dynamically calibrated DDR memory controller
JP4405565B2 (ja) * 2008-06-19 2010-01-27 株式会社東芝 メモリシステムおよびメモリデバイス
US7733685B2 (en) 2008-07-09 2010-06-08 Sandisk 3D Llc Cross point memory cell with distributed diodes and method of making same
US8742791B1 (en) * 2009-01-31 2014-06-03 Xilinx, Inc. Method and apparatus for preamble detection for a control signal
US8902693B2 (en) * 2013-04-25 2014-12-02 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for per-bit de-skew for datamask in a double data-rate memory device interface
US8937846B2 (en) * 2013-05-09 2015-01-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Write level training using dual frequencies in a double data-rate memory device interface

Also Published As

Publication number Publication date
US20060069895A1 (en) 2006-03-30
EP2278474B8 (de) 2015-10-21
US8214616B2 (en) 2012-07-03
DE60239030D1 (de) 2011-03-10
EP2192494B1 (de) 2012-06-20
JP2008135063A (ja) 2008-06-12
EP2273376A1 (de) 2011-01-12
US20180012644A1 (en) 2018-01-11
US20160196864A1 (en) 2016-07-07
US9311976B2 (en) 2016-04-12
EP1653374A2 (de) 2006-05-03
EP2849075A1 (de) 2015-03-18
JP5014446B2 (ja) 2012-08-29
US10706910B2 (en) 2020-07-07
US8625371B2 (en) 2014-01-07
US7225311B2 (en) 2007-05-29
DE20221511U1 (de) 2006-04-13
US20020174311A1 (en) 2002-11-21
JP2010108525A (ja) 2010-05-13
US10236051B2 (en) 2019-03-19
US7177998B2 (en) 2007-02-13
EP2275943A1 (de) 2011-01-19
US20120213020A1 (en) 2012-08-23
EP2275943B1 (de) 2015-03-11
US20150043290A1 (en) 2015-02-12
US20070255919A1 (en) 2007-11-01
EP1653374A3 (de) 2006-07-26
US7484064B2 (en) 2009-01-27
JP2008123552A (ja) 2008-05-29
EP2192494A1 (de) 2010-06-02
US20040170072A1 (en) 2004-09-02
US20040054845A1 (en) 2004-03-18
US20190325936A1 (en) 2019-10-24
EP3693866A1 (de) 2020-08-12
JP5112391B2 (ja) 2013-01-09
US9472262B2 (en) 2016-10-18
US20060039174A1 (en) 2006-02-23
US20210027825A1 (en) 2021-01-28
US20130250706A1 (en) 2013-09-26
JP2012248225A (ja) 2012-12-13
US9053778B2 (en) 2015-06-09
JP2002342153A (ja) 2002-11-29
US20130279278A1 (en) 2013-10-24
US8359445B2 (en) 2013-01-22
US8717837B2 (en) 2014-05-06
JP4255242B2 (ja) 2009-04-15
US7225292B2 (en) 2007-05-29
EP3693866B1 (de) 2022-03-30
JP4489817B2 (ja) 2010-06-23
US20140098622A1 (en) 2014-04-10
US7200055B2 (en) 2007-04-03
US20130305079A1 (en) 2013-11-14
US7210016B2 (en) 2007-04-24
US8760944B2 (en) 2014-06-24
EP3139277A1 (de) 2017-03-08
EP2278474A1 (de) 2011-01-26
US20120287725A1 (en) 2012-11-15
US9741424B2 (en) 2017-08-22
JP2009238244A (ja) 2009-10-15
US20170053691A1 (en) 2017-02-23
US20060129776A1 (en) 2006-06-15
EP2849075B1 (de) 2016-10-19
US8537601B2 (en) 2013-09-17
EP2278474B1 (de) 2015-02-18
EP2849075A8 (de) 2015-09-16
JP4358887B2 (ja) 2009-11-04
US7209397B2 (en) 2007-04-24
US6675272B2 (en) 2004-01-06
DE60235050D1 (de) 2010-02-25
US8462566B2 (en) 2013-06-11
US20060007761A1 (en) 2006-01-12
EP1653374B2 (de) 2014-10-29
EP2273376B1 (de) 2014-10-29
JP5220221B2 (ja) 2013-06-26
US8395951B2 (en) 2013-03-12
EP1653374B1 (de) 2010-01-06
US20090063887A1 (en) 2009-03-05
EP3139277B1 (de) 2019-11-27
US20090138646A1 (en) 2009-05-28
US20050169097A1 (en) 2005-08-04

Similar Documents

Publication Publication Date Title
DE20221512U1 (de) Vorrichtung zur Koordinierung von Speicheroperationen zwischen Speicherkomponenten
DE602004004224T2 (de) Phasengesteuerte Hochgeschwindigkeitsschnittstellen
US8320202B2 (en) Clocked memory system with termination component
DE60220863T2 (de) Verfahren und Gerät zum Koordinieren von Speicheroperationen zwischen unterschiedlich angeordneten Speicherkomponenten
DE10326925A1 (de) Speichersystem und Steuerungsverfahren dafür
DE10253696A1 (de) Speichersystem, welches einen nicht verteilten Befehls/Adress-Takt nutzt
DE60308006T2 (de) System mit phasensprung-regelkreisschaltung
DE20221506U1 (de) Vorrichtung zur Phasenanpassung für ein Signalisierungssystem einer Speichervorrichtung

Legal Events

Date Code Title Description
R207 Utility model specification

Effective date: 20060601

R150 Utility model maintained after payment of first maintenance fee after three years

Effective date: 20060427

R151 Utility model maintained after payment of second maintenance fee after six years

Effective date: 20080529

R152 Utility model maintained after payment of third maintenance fee after eight years

Effective date: 20100520

R071 Expiry of right
R071 Expiry of right