DE112007002619T5 - Speichersteuerung mit einer Speicherverbindung mit zwei Betriebsmodi - Google Patents
Speichersteuerung mit einer Speicherverbindung mit zwei Betriebsmodi Download PDFInfo
- Publication number
- DE112007002619T5 DE112007002619T5 DE112007002619T DE112007002619T DE112007002619T5 DE 112007002619 T5 DE112007002619 T5 DE 112007002619T5 DE 112007002619 T DE112007002619 T DE 112007002619T DE 112007002619 T DE112007002619 T DE 112007002619T DE 112007002619 T5 DE112007002619 T5 DE 112007002619T5
- Authority
- DE
- Germany
- Prior art keywords
- memory controller
- data
- memory
- differential
- clock signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
- Static Random-Access Memory (AREA)
- Information Transfer Systems (AREA)
Abstract
einer Eingangs/Ausgangs-(I/O-)Schaltung mit mehreren Eingangspuffern und mehreren Ausgangstreibern, wobei die I/O-Schaltung ausgebildet ist, in einem ersten Betriebsmodus oder in einem zweiten Betriebsmodus abhängig von einem Zustand eines Modusauswahlsignals zu arbeiten;
wobei beim Betrieb in dem ersten Betriebsmodus die I/O-Schaltung ausgebildet ist, eine parallele Verbindung zur Verbindung mit einem oder mehreren Speichermodulen bereitzustellen;
wobei beim Betrieb in dem zweiten Betriebsmodus die I/O-Schaltung ausgebildet ist, eine entsprechende serielle Verbindung zur Verbindung mit jeder von einer oder mehreren Puffereinheiten bereitzustellen, wovon jede ausgebildet ist, Speicherdaten zu speichern, die aus dem einen oder den mehreren Speichermodulen ausgelesen oder in diese geschrieben werden.
Description
- Technisches Gebiet
- Diese Erfindung betrifft Computerspeichersysteme und betrifft insbesondere die Datenübertragung zwischen einer Speichersteuerung und einer Speichereinheit.
- Hintergrund
- In Computersystemen werden viele unterschiedliche Arten von Systemspeichern verwendet. Eine übliche Art eines Systemspeichers wird eingerichtet, indem entfernbare Speichermodule verwendet werden. Speichermodule treten in unterschiedlichen Arten und Strukturen auf. Jedoch wird im Allgemeinen ein Speichermodul als eine gedruckte Leiterplatte vorgesehen, die ein Randverbindungselement und eine Reihe aus Speicherbauelementen aufweist. Das Speichermodul wird in einen Sockel eingesetzt, der auf einer Mutterplatine oder einer anderen Systemplatine angebracht ist. Ein üblicherweise verwendetes Speichermodul ist als ein doppelreihiges Speichermodul (DIMM) bekannt, obwohl es auch andere Arten gibt. In anderen Systemen sind die Speicherbauelemente nicht abnehmbar und sind direkt auf der Mutterplatine oder der Systemplatine aufgebracht.
- Die Prozessorgeschwindigkeit und das Leistungsverhalten eines Computersystem wurden in der Vergangenheit ständig vergrößert. Jedoch hinkt das Leistungsverhalten des Speichers typischerweise hinterher. Somit ist eine gewisse Steigerungen des Systemleistungsverhaltens durch die Leistungsfähigkeit des Systemspeichers beschränkt werden. Somit besitzen Verbesserungen in der Bandbreite des Systemspeichers und dessen Kapazität eine hohe Wichtigkeit für den Systemarchitekten.
- Obwohl Verbesserungen im Verhalten von Systemspeichern möglich sind, sind diese Verbesserungen häufig kostenintensiv. Es ist daher wünschenswert, die Bandbreite und die Kapazität des Systemspeichers zu verbessern, wobei auch die Kosten gering gehalten werden.
- Überblick über die Erfindung
- Es sind diverse Ausführungsformen einer Speichersteuerung mit einer Speicherverbindung mit dualem Betriebsmodus offenbart. In einer Ausführungsform umfasst die Speichersteuerung eine Eingangs/Ausgangs-(I/O-)Schaltung mit mehreren Eingangspuffern und mehreren Ausgangstreibern. Die I/O-Schaltung ist ausgebildet, in einem ersten Modus oder einem zweiten Modus, abhängig von einem Zustand eines Modusauswahlsignals, zu arbeiten. Während des Betriebs im ersten Modus ist die I/O-Schaltung ausgebildet, eine parallele Verbindung zur Verbindung mit einem oder mehreren Speichermodulen bereitzustellen. Während des Betriebs im zweiten Modus ist die I/O-Schaltung ausgebildet, eine entsprechende serielle Verbindung zur Verbindung mit jeder von einer oder mehreren Puffereinheiten bereitzustellen, wovon jede ausgebildet ist, Speicherdaten zu speichern, die aus dem einen oder den mehreren Speichermodulen ausgelesen oder in diese geschrieben werden.
- In einer speziellen Ausführungsform umfasst jede entsprechende serielle Verbindung mehrere differenzielle bidirektionale Datensignalwege. Jeder differenzielle bidirektionale Datensignalweg kann Daten zwischen einer gegebenen Puffereinheit und der Speichersteuerung übertragen.
- In einer weiteren speziellen Ausführungsform umfasst jede entsprechende serielle Verbindung einen differenziellen Befehlssignalweg, der eine Befehlsinformation von der Speichersteuerung zu einer gegebenen Puffereinheit übertragen kann.
- In einer weiteren speziellen Ausführungsform umfasst jede entsprechende serielle Verbindung mehrere abwärts gerichtete differenzielle unidirektionale Signalwege und einen abwärts gerichteten unidirektionalen differenziellen Taktsignalweg. Jeder der abwärts gerichteten differenziellen unidirektionalen Signalwege kann Daten, Adress- und Befehlsinformationen von der Speichersteuerung zu der einen oder den mehreren Puffereinheiten übertragen. Der abwärts gerichtete unidirektionale differenzielle Taktsignalweg kann ein serielles Taktsignal von der Speichersteuerung zu jeder der einen oder mehreren Puffereinheiten übertragen.
- In einer noch weiteren speziellen Ausführungsform umfasst jede entsprechende serielle Verbindung mehrere aufwärts gerichtete differenzielle unidirektionale Signalwege. Jeder der aufwärts gerichteten differenziellen unidirektionalen Signalwege kann Daten und eine zyklischen Redundanzcodierungs-(CRC)Information von einem der einen oder den mehreren Puffereinheiten zu der Speichersteuerung übertragen.
- Kurze Beschreibung der Zeichnungen
-
1 ist eine Blockansicht einer Ausführungsform eines Speichersystems mit einem Hochgeschwindigkeitspuffer. -
2 ist eine Ansicht, die Aspekte der Speichersystemkomponenten aus1 detaillierter darstellt. -
3 ist ein Zeitablaufdiagramm, das einen beispielhaften Frequenzbetrieb der in1 und2 gezeigten Ausführungsformen zeigt. -
4 ist ein Flussdiagramm, das die Funktionsweise der in den1 bis3 gezeigten Ausführungsformen darstellt. -
5 ist eine Blockansicht einer Ausführungsform eines Computersystems mit dem in1 gezeigten Speichersystem. -
6 ist ein Blockansicht einer Ausführungsform eines Computersystems mit einer Speichersteuerung, die eine Doppelmodus-Speicherverbindung besitzt. -
7 ist eine Blockansicht einer weiteren Ausführungsform eines Speichersystems mit einem Hochgeschwindigkeitspuffer. -
8 ist eine Ansicht, die detailliertere Aspekte des Speichersystems aus7 zeigt. -
9 ist ein Flussdiagramm, das die Funktionsweise der in den7 und8 gezeigten Ausführungsformen darstellt. -
10 ist eine Blockansicht einer Ausführungsform eines Computersystems mit dem in7 gezeigten Speichersystem. -
11 ist eine Blockansicht einer weiteren Ausführungsform eines Computersystems mit einer Speichersteuerung, die eine Speicherverbindung mit zwei Modi besitzt. - Obwohl die Erfindung diversen Modifizierungen und alternativen Formen unterliegen kann, sind dennoch spezielle Ausführungsformen beispielhaft in den Zeichnungen gezeigt und hierin detailliert beschrieben. Es sollte jedoch beachtet werden, dass die Zeichnungen und die detaillierte Beschreibung nicht beabsichtigen, die Erfindung auf die spezielle offenbarte Form einzuschränken, sondern die Erfindung soll vielmehr alle Modifizierungen, Äquivalente und Alternativen abdecken, die innerhalb des Grundgedankens und des Schutzbereichs der vorliegenden Erfindung liegen, wie sie durch die angefügten Patentansprüche definiert ist. Zu beachten ist, dass der Begriff „kann” in dieser Anmeldung durchwegs im Sinne des „ist möglich” (d. h. besitzt das Potential, ist in der Lage zu) verwendet wird, und nicht im Sinne von erforderlich (d. h. muss).
- Art bzw. Arten zum Ausführen der Erfindung
-
1 zeigt eine Blockansicht eines Speichersystems mit einer Ausführungsform eines seriellen Hochgeschwindigkeitspuffers. Das Speichersystem10 umfasst eine Speichersteuerung100 , die mit Speichereinheiten110A bis110H und mit Puffereinheiten170A bis170J verbunden ist. Zu beachten ist, dass Komponenten, die ein Bezugszeichen mit einer Zahl und einem Buchstaben besitzen, auch durch die Zahl alleine bezeichnet werden können. Beispielsweise wird die Speichereinheit110A auch als Speichereinheit110 bezeichnet, wenn dies geeignet ist. Es sollte auch beachtet werden, dass die Speichersteuerung100 eine Speichersteuerung ist, die ein Teil eines Chipsatzes sein kann, der in einer Anordnung mit Nordbrücke verwendet werden kann. Alternativ kann, wie in5 gezeigt ist, die Speichersteuerung100 eine eingebettete Anordnung sein, in der die Speichersteuerung100 in einen Verarbeitungsknoten eingebettet ist, der beispielsweise einen oder mehrere Prozessorkerne aufweist. - In einer Ausführungsform sind die Speichereinheit
110A bis110H Speichermodule, etwa doppelreihige Speichermodule (DIMM), um ein Beispiel zu nennen. Jedes DIMM kann mehrere Speicherbauelemente (nicht gezeigt) enthalten, etwa Bauelemente der Familie dynamischer Speicher mit wahlfreiem Zugriff (DRAM), um nur ein Beispiel zu nennen. Jedoch ist zu beachten, dass im Allgemeinen die Speichereinheiten110 des Systems10 repräsentativ sind für eine beliebige Art an Systemspeicher. - In der dargestellten Ausführungsform ist die Speichersteuerung
100 mit den Puffereinheiten170 über eine serielle Hochgeschwindigkeitsverbindung160A und160B verbunden. In einer Ausführungsform wird in jeder seriellen Hochgeschwindigkeitsverbindung160 eine Technik der differenziellen Signalführung verwendet. Die serielle Hochgeschwindigkeitsverbindung umfasst mehrere differenzielle bidirektionale Datensignalwege (DDQ), differenzielle Pufferbefehlssignalwege (BCMD), differenzielle Taktsignalwege (WCLK) und differenzielle Signalwege für zyklisch redundante Codierungssignale (CRC). In der dargestellten Ausführungsform sind zwei Speicherkanäle gezeigt. Die serielle Verbindung160A kann für einen Kanal verwendet werden und ist damit mit den Puffereinheiten170A bis170F verbunden, und die serielle Verbindung160B kann für den anderen Kanal verwendet werden und ist daher mit den Puffereinheiten170G bis170J verbunden. Zu beachten ist, dass in der dargestellten Ausführungsform ein Teil jeder der Puffereinheiten170E und170J nicht verwendet ist, und somit bei Bedarf für andere Zwecke verwendet werden kann. - Des Weiteren ist die Speichersteuerung
100 mit den Speichereinheiten110 über eine parallele Verbindung bzw. Verbindungseinrichtung165 verbunden. Wie gezeigt, umfasst die parallele Verbindung165 zwischen der Speichersteuerung100 und den Speichereinheit110 Adressen/Befehlssignalwege (ADDR/CMD), und Taktsignalwege (MCLK). Ähnlich zu den zwei seriellen Verbindungen, die gezeigt sind, sind auch zwei ADDR/CMD/MCLK-Signalwege gezeigt. Jeder ADDR/CMD/MCLK-Signalwege kann für einen jeweiligen Speicherkanal verwendet werden. Wie gezeigt, ist einer der ADDR/CMD/MCLK-Signalwege mit den Speichereinheiten110A bis110D verbunden, und der andere ADDR/CMD/MCLK-Signalweg ist mit den Speichereinheiten110E bis110H verbunden. Des Weiteren sind die Puffereinheiten170 auch mit den Speichereinheiten110 über die parallele Verbindung165 verbunden. Wie gezeigt umfasst die parallele Verbindung165 auch Datenwege (DQ) und Datenabtastsignalwege (DQS). In einer Ausführungsform steuert die Speichersteuerung100 den Betrieb der Speichereinheiten110 durch das Senden von Adressen und Befehlen über die ADDR/CMD-Signalwege. - Wie nachfolgend detaillierter beschrieben ist, können die DQ-Datenwege Daten in beiden Richtungen zwischen den Puffereinheiten
170 und den Speichereinheiten110 übertragen. Die DQ-Daten enthalten eine Reihe von Acht-Bit-(bytebreite)Datenwege. Beispielsweise kann der volle Datenweg 288 Bits breit sein, wobei der volle Datenweg jedoch in Bytegroße Bereiche unterteilt werden kann. Zu beachten ist, dass in einer Ausführungsform die 288 Bits vier Prüfbytes enthalten können, während in anderen Ausführungsformen eine andere Anzahl an Prüfbytes verwendet wird. Zu beachten ist auch, dass der vollständige Datenweg eine beliebige Anzahl an Datenbits aufweisen kann und in unterschiedlich große Bereiche unterteilt werden kann. Die DDQ-Datenwege der seriellen Verbindungen160 können die Daten, die über die parallele Verbindung übertragen wurden, mit hoher Geschwindigkeit seriell transportieren. Beispielsweise übermittelt der DDQ0-Signalweg Datenbits, die DQ [0:3] entsprechen, der DDQ1-Signalweg überträgt Datenbits, die DQ [4:7] entsprechen, und dergleichen, obwohl andere Zuordnungen möglich sind. - Es gibt eine Vielzahl von Möglichkeiten, in denen die Datenwege mit den Speichereinheiten
110 verbunden werden können. Beispielsweise können die Puffereinheiten170 Teil einer einzelnen integrierten Schaltung sein. Aufgrund der Anzahl an Anschlussstiften, die für eine derartige Anordnung erforderlich sind, kann dies gegebenenfalls nicht praxisgerecht sein. In einer Ausführungsform wird der Datenweg aufgeteilt und in kleinere Einheiten eingruppiert. Folglich ist in einer Ausführungsform jede der Puffereinheiten170 eine autarke integrierte Schaltung, die eine Pufferfunktionsfähigkeit für eine entsprechende Gruppe liefert. - In einer Ausführungsform kann während der Schreiboperationen jede serielle Puffereinheit
170 seriell Bits empfangen und speichern, und kann diese nachfolgend parallel über die Parallelverbindung165 senden. Um den erforderlichen Durchsatz zu erreichen, kann in einer Ausführungsform die serielle Verbindung160 Daten mit der vierfachen Rate übertragen, mit der die parallele Verbindung165 Daten auf den Datensignalwegen überträgt. Jedoch können die ADDR/CMD-Signalwege und die MCLK-Signalwege mit der halben Rate der Datenwege der parallelen Verbindung165 arbeiten. Beispielsweise überträgt die serielle Verbindung160 Daten auf den DDQ-Datenwegen mit 6,4 GT/s, während die Datensignalwege DQ/DQS der parallelen Verbindung165 Daten mit 1600 MT/s übertragen, und die ADDR/CMD-Signalwege und MCLK-Signalwege arbeiten bei 800 MT/s. Zu beachten ist, dass in anderen Ausführungsformen die seriellen Puffereinheiten170 eine beliebige Anzahl an Bytes speichern können, bevor diese über die parallele Schnittstelle165 gesendet werden. Zu beachten ist auch, dass die serielle Verbindung160 mit einer beliebigen geeigneten Datenrate in Abhängigkeit zur parallelen Verbindung165 arbeiten kann. - Die CRC-Signalwege können die CRC-Information von jeder Puffereinheit
170 zu der Speichersteuerung100 über einen entsprechenden unidirektionalen differenziellen Signalweg übertragen. Des Weiteren können die Taktsignalwege WCLK-Signale zu jeder der Puffereinheiten170 übertragen. In ähnlicher Weise übermitteln die BCMD-Signalwege die Pufferbefehle von der Speichersteuerung100 zu jeder der Puffereinheiten170 . - In einer Ausführungsform steuert die Speichersteuerung
100 den Betrieb der Puffereinheiten170 über Befehle, die über die BCMD-Signalwege gesendet werden. Die Puffereinheiten170 besitzen einen normalen Betriebsmodus und einen Konfigurations- und Testmodus. Beispielsweise sendet während des normalen Datenbetriebs die Speichersteuerung100 Lese- und Schreibbefehle für Daten und den Daten vorgeordnete und nachgeordnete Daten, um den Datenspeicher auszulesen und zu beschreiben, und um den Phasenoffset der DQ-Signalwege einzustellen. Des Weiteren kann die Speichersteuerung100 die Konfiguration, das Trainieren und das Prüfen der Puffereinheiten170 steuern, indem eine Vielzahl von Rückschleifbefehlen, CRC-Steuerbefehlen und CRC-Trainingsmusterbefehlen gesendet werden, um ein Beispiel zu nennen. - Bei hohen Datenraten ist die Wahrscheinlichkeit, dass die Puffereinheit
170 oder die Speichersteuerung100 einen Bitfehler empfängt, sehr groß. Daher kann es notwendig sein, die Datenübertragungen zwischen der Speichersteuerung100 und den Puffereinheiten170 mit einer Fehlererkennungscodierung zu versehen, die in robuster Weise mehrere Bitfehler innerhalb eines geschützten Blockes erkennen kann. In einer Ausführungsform wird eine CRC-Codierung verwendet, um eine derartige Mehrfachbitfehlererkennung bereitzustellen. Wie insbesondere in2 gezeigt ist, berechnet zur Vereinfachung der Logik in der Puffereinheit und/oder den Speichermodulen und zur Erleichterung des Berichterstattens von Fehlern an die Speichersteuerung100 die Puffereinheit170 eine CRC auf der Grundlage der Daten, die sie erzeugt, oder auf der Grundlage der Daten, die sie empfängt. Folglich können zum Übertragen der CRC-Information zurück zu der Speichersteuerung100 die unidirektionalen CRC-Signalwege verwendet werden. Wie in2 gezeigt ist, berechnet die CRC-Einheit250 die CRC auf der Grundlage ihrer internen Daten und sendet die CRC-Daten zurück zur Speichersteuerung100 . Wenn ein Fehler auf der Verbindung in einer beliebigen Richtung erkannt wird, korrigiert die Speichersteuerung100 den Fehler durch erneutes Ausführen der Operation. - In einer Ausführungsform wird die CRC-Information berechnet und gleichzeitig mit den Daten bei einem Transfer von der Puffereinheit
170 zu der Speichersteuerung100 gesendet, so dass die CRC zur selben Zeit verfügbar ist, wie der Datenblock, der zu schützen ist, wenn dieser die Speichersteuerung100 erreicht. In einer Ausführungsform werden Verzögerungen, die mit dem Berechnen der CRC verknüpft sind, vermieden durch Verzögerungen, die auf den Datenwegen während der Übergängen von Schreiben-zu-Lesen und Lesen-zu-Schreiben eingeführt werden. - Wie zuvor erläutert ist, wird in vielen konventionellen Systemen die bidirektionale Hochgeschwindigkeitskommunikation gesteuert, indem Steuerfunktionen, etwa Taktphasenwiederherstellung, Kanalentzerrung, Fehlererkennung, und dergleichen, in beiden Kommunikationseinrichtungen bereitgestellt werden. Wie jedoch detaillierter nachfolgend beschrieben ist, kann die Puffereinheit
170 vereinfacht werden, indem diese Art der Steuerung der Funktion asymmetrisch eingerichtet wird. Die Speichersteuerung100 kann eine Steuerfunktion enthalten, die dynamisch und adaptiv die Signaleigenschaften (beispielsweise die Phase, etc.) gesendeter Schreibdaten einstellt, um die Puffereinheit170 in die Lage zu versetzen, die Daten auf der Grundlage von Information, die von der Puffereinheit170 empfangen wird, in korrekter Weise zu lesen. Des Weiteren kann die Speichersteuerung100 ihre inter nen Empfangseigenschaften einstellen, so dass die Speichersteuerung100 in der Lage ist, von der Puffereinheit170 gesendete Daten zu empfangen. Des Weiteren kann die Speichersteuerung100 die Phase der Taktsignale einstellen, die von der Puffereinheit170 bereitgestellt werden, um damit ein korrektes Abtasten der Adressen- und Befehlsinformationen zu ermöglichen. - Insbesondere erfordert bei hohen Datenraten die Unsicherheit der Verzögerungen im Übertragungsweg für unterschiedliche Signale in einem Bus eine Justierung pro Bitphase eines Abtastsignals eines Empfängers der Signale. Um das Verwenden dieser Schaltung in der Puffereinheit
170 zu vermeiden, justiert die Speichersteuerung100 die Phase ihrer übertragenen Takt- und Datensignale, um komplexe Phasenschieberschaltungen im nachgeordneten Gerät zu vermeiden. In der dargestellten Ausführungsform umfasst die Speichersteuerung100 eine Steuereinheit101 , die mit einer Sendeeinheit102 , einer Empfangseinheit104 und Taktsignaleinheiten106 verbunden ist. Die Speichereinheit101 berechnet Phaseninformation auf der Grundlage von Daten, die von den Puffereinheiten170 empfangen werden, wobei die Information verwendet wird, um die Phase der diversen Taktflanken innerhalb der Speichersteuerung100 einzustellen. Beispielsweise steuert in Reaktion auf eine derartige Information, etwa CRC-Daten und Lesedaten, die Steuereinheit101 die Phasenverfolgungs- und Einstellschaltungen (in2 gezeigt) innerhalb der Sendeeinheit102 , der Empfangseinheit104 und den Taktsignaleinheiten106 . Diese Funktion wird nachfolgend in Verbindung mit den Beschreibungen der2 und5 detaillierter dargelegt. -
2 ist ein Diagramm, das gewisse Speichersystemkomponenten aus1 detaillierter darstellt. Komponenten, die jenen in1 gezeigten Komponenten entsprechen, sind der Einfachheit halber und der Deutlichkeit halber identisch benannt. Die Speichersteuerung100 ist mit dem seriellen Puffer170 über eine differenzielle serielle Verbindung160 verbunden. Zu beachten ist, dass die Puffereinheit170 repräsentativ ist für beliebige Puffereinheiten170A bis170J , die in1 gezeigt sind. Daher umfasst die differenzielle serielle Verbindung160 einen differenziellen WCLK-Signalweg, einen differenziellen BCMD-Signalweg, einen differenziellen CRC-Signalweg und differenzielle Datensignalwege DDQ [7:0]. - Die Speichersteuerung
100 enthält ein 6,4 GHz-Taktsignal, das durch die Taktsignaleinheiten106 aus1 erzeugt wird, und ist mit variablen Phaseneinheiten293 ,294 ,295 und296 verbunden, die Teil der Taktsignaleinheiten106 sind und den internen Takt für die Speichersteuerung100 bereitstellen. Die Ausgänge der variablen Phaseneinheiten293 ,294 ,295 und296 liefern das Taktsignal für Flipflops (FF)290 ,289 ,286 und284 . Die vari able Phaseneinheit293 ist mit dem Taktsignaleingang des FF290 verbunden. Da das FF290 einen Inverter292 besitzt, der in einer Rückkoppelungsschleife mit dem Eingang verbunden ist, wird das 6,4 GHz-Taktsignal als ein 3,2 GHz-Taktsignal ausgegeben. Der Ausgang des FF290 ist mit dem Eingang eines differenziellen Ausgangstreibers291 verbunden, dessen Ausgang mit einem differenziellen WCLK-Signalweg verbunden ist. Die Schreibdaten sind mit dem Eingang des FF286 verbunden. Der Ausgang des FF286 ist mit einem differenziellen Entzerrungsausgangstreiber287 verbunden. Der Ausgang des Treibers287 ist mit einem der Signalwege DDQ [7:0] verbunden. Somit ist für jeden Signalweg DDQ [7:0] ein ähnlicher Schreibdatenausgangsweg (nicht gezeigt) verwendbar. In ähnlicher Weise ist für die Lesedaten ein einzelner Signalweg von DDQ [7:0] mit einem differenziellen Eingangspuffer283 verbunden, dessen Ausgang mit dem Eingang des FF284 verbunden ist. Der Ausgang des FF284 liefert Lesedaten für andere Bereiche (nicht gezeigt) der Speichersteuerung100 . Der CRC-Signalweg ist mit einem differenziellen Eingangspuffer281 verbunden, dessen Ausgang mit dem Eingang einer Empfängertaktdatenwiederherstellungseinheit (RxCDR)282 verbunden ist. Die RxCDR ist mit der Pro-Bit-Offseteinheit285 verbunden, die mit der variablen Phaseneinheit296 verbunden ist. Es werden Pufferbefehlsinformationen dem Eingang des FF289 zugeleitet. Der Ausgang des FF289 ist mit einem differenziellen Entzerrungsausgangstreiber288 verbunden, der mit dem differenziellen BCMD-Signalweg verbunden ist. - Die Puffereinheit
170 enthält einen Puffer209 , der einen differenziellen Eingangspuffer für jeden der DDQ [7:0]-Signalwege repräsentiert. Der Puffer209 ist so angeschlossen, dass er die von einem der DDQ [7:0]-Signalwege empfangenen Schreibdaten erhält. Der Ausgang des Puffers209 ist mit einem Eingang des FF208 verbunden. Der Ausgang des FF208 ist mit dem Schreib-FIFO220 verbunden. Der Ausgang des Schreib-FIFO220 ist mit einer DRAM-Schnittstelle256 verbunden, die die Eingangspufferschaltungen und Ausgangstreiberschaltungen repräsentieren soll, die als eine Schnittstelle zu den Speichereinheiten110 über die parallele Verbindung165 verwendet werden. Wie gezeigt, gibt es 16 Datenabtastsignalwege DQS [15:0] und 32 Datensignalwege DQ [31:0] als Teil der parallelen Verbindung165 . Die Schreibdaten aus dem FIFO werden an die Speichereinheiten110 über DQ [31:0] ausgegeben. Zu beachten ist, dass lediglich die DQ- und DQS-Signale gezeigt sind und andere Signale der Einfachheit halber weggelassen sind. Zu beachten ist ferner, dass, obwohl dies der Einfachheit halber nicht gezeigt ist, die MCLK- und DQ-Signale differenzielle Signale sein können. - Die Lesedaten aus den Speichereinheiten
110 werden über DQ [31:0] über die DRAM-Schnittstelle256 zu einem einzelnen Eingang eines Multiplexers (Mux)203 übertragen. Der Ausgang des Mux203 ist einem Eingang des FF206 zugeleitet. Die Steuerlogik255 steuert die Eingangauswahl des Multiplexers203 . Der Ausgang des FF206 ist mit einem differenziellen Entzerrungsdatenausgangstreiber210 verbunden, der mit einem der differenziellen Signalwege von DDQ [7:0] verbunden ist. - Die Puffereinheit
170 enthält eine Steuerlogik255 , die so angeschlossen ist, dass sie die Pufferbefehlsinformation (BCMD) von der Speichersteuerung100 über den Eingangspuffer201 empfängt, der mit dem Eingang des FF202 gekoppelt ist. Die BCMD-Information veranlasst die Steuerlogik255 , die Schreibdaten auf die DQ-Datenwege zu legen, oder Daten für die DQ-Datenwege zu lesen, oder in eine Initialisierungssequenz einzutreten oder diese zu beenden, etc.. Somit kann die Steuerlogik255 die DRAM-Schnittstelle256 , die CRC-Einheit250 , den Multiplexer203 sowie andere Schaltungen steuern. - In der dargestellten Ausführungsform wird das 3,2 GHz-Taktsignal an den Taktsignaleingang der FF
202 ,205 ,208 und206 gelegt. Jedes FF202 ,205 ,208 und206 ist als ein Doppelflanken-Flipflop gezeigt, wobei dies bedeuten soll, dass diese ausgebildet sind, den „D”-Eingang sowohl während der ansteigenden als auch während der abfallenden Flanke des Eingangstaktsignals zu übernehmen. Folglich können Schreibdaten und die BCMD-Information bei 6,4 Gb/s auf ihren jeweiligen Datenwegen übertragen werden, und der Eingang wird unter Verwendung des 3,2 GHz/Taktsignals übernommen und gespeichert. Da die Speichersteuerung100 bei 6,4 GHz arbeitet, können Lesedaten und die CRC-Information mit 6,4 Gb/s auf ihren jeweiligen Signalwegen übermittelt werden und können in der Speichersteuerung100 während gewisser Rückschleifmodi verwendet werden. - In einer Ausführungsform werden Schreibdaten beim Empfang durch das FF
208 zwischengespeichert und in dem Schreib-FIFO220 gespeichert. Der Schreib-FIFO220 kann die Daten speichern, bis ausreichend Bits empfangen werden, die an die Speichereinheiten110 über die DRAM-Schnittstelle256 ausgegeben werden. - Wie nachfolgend detaillierter beschrieben ist in Verbindung mit der
5 , kann während des Betriebs die Speichersteuerung100 die Signaleigenschaften (beispielhaft die Phase etc.) gesendeter Schreibdaten und ihre internen Empfängereigenschaften dynamisch und adaptiv einstellen, und kann die Phase des 6,4 GHz-Taktsignals einstellen, das die 3,2 GHz-Taktsignale erzeugt, die der Puffereinheit170 zugeleitet sind. Insbesondere enthält, wie zuvor erläutert ist, die Empfangseinheit104 Abtasttaktphaseneinstellschaltungen, etwa RxCDR282 und die Offseteinheit285 , um ihre eigene lokale Abtasttaktsignalphase einzustellen, um damit in optimalerer Weise Daten zu empfangen, die von der Puffereinheit170 empfangen werden. Wann immer die Speichersteuerung100 CRC-Daten von der Puffereinheit170 empfängt, kann die Empfangseinheit104 die RxCDR282 , die Offseteinheit285 und die variable Phaseneinheit296 verwenden, um die Taktsignalphase des FF284 einzustellen. Des Weiteren kann die Steuereinheit101 in der Speichersteuerung100 die variable Phaseneinheit293 einstellen, um die Phase des 6,4 GHz-Taktsignals, das dem FF290 zugeleitet ist, zu justieren. Während eines Initialisierungsprozesses, etwa während einer Einschaltphase beispielsweise, kann die Speichersteuerung100 die variable Phaseneinheit294 einstellen, um die Phase des 6,4 GHz-Taktsignals, das dem FF298 zugeleitet ist, zu justieren, so dass die Puffereinheit170 in korrekter Weise die Pufferbefehlssignale abtasten kann. Während der Initialisierung und während des Betriebes kann unter vorbestimmten Intervallen die Steuereinheit101 die variable Phaseneinheit295 justieren, um die Phase des 6,4 GHz-Taktsignals, das dem FF286 zugeleitet ist, einzustellen, um damit die Phase der Schreibdaten zu justieren, die zu der Puffereinheit170 übertragen werden, um damit die Puffereinheit170 in die Lage zu versetzen, die Schreibdaten in optimalerer Weise zu empfangen. -
3 ist ein Zeitablaufdiagramm, das exemplarisch die Funktionsweise der in den1 und2 gezeigten Ausführungsformen während einer 8-Bit-Sequenz zeigt. Insbesondere zeigt das Zeitablaufdiagramm eine 128-Byte-Lese/Schreib/Lese-Sequenz. Das Diagramm enthält die MCLK- und ADDR/CMD-Signale, die den Speichereinheiten110 von der Speichersteuerung100 zugeführt werden. Das Diagramm zeigt ferner die DQ- und DQS-Signale, die Daten und Datenfreigabesignale zwischen den Puffereinheiten170 und den Speichereinheiten110 übertragen. Die verbleibenden Signale: DDQ, BCMD und CRC übertragen Informationen zwischen der Speichersteuerung100 und den Puffereinheiten170 . - Wie gezeigt, wurden Lesebefehle (beispielsweise rdA und rdB) den Speichereinheiten
110 von der Speichersteuerung100 gesendet. Einige MCLK-Zyklen später erscheinen die Daten auf den DQ-Signalwegen zusammen mit den Datenabtastsignalen DQS. Bevor die Daten auf den DQ-Signalwegen erscheinen, werden Lesebefehle (beispielsweise r0, r1) an die Puffereinheiten170 über die BCMD-Signalwege gesendet. Im nächsten MCLK-Zyklus, nachdem die rdA-Daten auf den DQ-Signalwegen liegen, erscheinen die rdA-Daten auf den DDQ-Signalwegen. Wie zuvor beschrieben ist, werden die rdA- und rdB-Daten parallel von den Speichereinheiten110 zu den Puffereinheiten170 bei der doppelten MCLK-Rate übertragen (beispielsweise 1.600 MT/s). Jedoch werden die Daten von den Puffereinheiten140 zu der Speichersteuerung100 seriell mit einer sehr viel höheren Datenrate (beispielsweise 6,4 GT/s) übertragen. - Um die Busverzögerungszeit zu umgehen, wenn ein Übergang von einem Lesevorgang zu einem Schreibvorgang stattfindet, können die Schreibdaten in der Puffereinheit
170 zwischengespeichert werden. Wie beispielsweise gezeigt ist, werden die wrX-Daten und die zugehörigen BCMD-Schreibbefehle (beispielsweise w1) den Puffereinheiten170 zugesendet, aber die Daten werden nicht sofort in die Speichereinheiten110 geschrieben, wie dies durch die gestrichelte Linie angegeben ist. - Die Lese/Schreib/Lese-Sequenz kann generell wie folgt beschrieben werden: Die wrX-Daten werden über die DDQ-Signalwege in die Puffereinheit
170 mittels der Speichersteuerung100 geschrieben und werden in der Puffereinheit170 gespeichert. Die Speichersteuerung100 gibt gleichzeitig Lesebefehle (rdA gefolgt von rdB mehrere MCLK-Zyklen später) an die Speichereinheiten110 über die ADDR/CMD-Signalwege aus. Unmittelbar vor dem Zeitpunkt, an dem die rdA-Daten auf dem DQ-Bus erscheinen (beispielsweise am Ende der wrX-Datenübertragung auf DDQ), gibt die Speichersteuerung100 Lesebefehle (beispielsweise r0, r1) an die Puffereinheit170 über BCMD aus. Während die rdA- und rdB-Daten auf dem DQ-Bus liegen, sendet die Speichersteuerung100 Schreibbefehle (beispielsweise wrX und wrY) über den ADDR/CMD-Bus an die Speichereinheiten110 . Die rdA- und rdB-Daten werden in der Puffereinheit170 zwischengespeichert und über die DDQ an die Speichersteuerung100 gesendet. Bevor der rdB-Datentransfer auf DDQ abgeschlossen ist, sendet die Speichersteuerung100 Schreibbefehle (beispielsweise w0, w2 und w3) an die Puffereinheit170 . Der w2-Befehl bewirkt, dass zuvor gespeicherte wrX-Daten in die Speichereinheiten110 geschrieben werden, während der w3-Befehl bewirkt, dass wrY-Daten, die gerade über die DDQ-Signalwege gesendet wurden, an die Speichereinheiten110 über die DQ-Datenwege gesendet werden. Während die wrX-Daten in die Speichereinheiten110 geschrieben werden, gibt die Speichersteuerung100 einen rdC-Befehl an die Speichereinheiten110 über die ADDR/CMD-Signalwege aus. Einige Zyklen später erscheinen die rdC-Daten und Datenabtastsignale auf den DQ-Signalwegen bzw. den DQS-Signalwegen. Wenn die rdC-Daten auf den DQ-Datenwegen an die Puffereinheiten170 übertragen werden, gibt die Speichersteuerung100 die Lesebefehle (beispielsweise r0 und r1) an die Puffereinheiten170 über die BCMD-Signalwege aus, wodurch die Puffereinheiten170 die Le sedaten über die DDQ-Datenwege senden können. Ähnlich zu den wrX-Daten werden die wrZ-Daten während dieser Sequenz nicht in die Speichereinheiten110 geschrieben. Stattdessen werden diese Daten in der Puffereinheit170 zur Verwendung während der nächsten Schreibsequenz gespeichert. Wie zuvor beschrieben ist, wird die CRC erzeugt und an die Speichersteuerung170 während der Lese- und Schreiboperationen zwischen der Speichersteuerung100 und den Puffereinheiten170 gesendet. Die CRC wird aus der BCMD-Information, den Schreibdaten und den Lesedaten erzeugt, wie dies durch die Pfeile angegeben ist. Wie gezeigt werden die w1-, r0- und w0-Befehle und die wrX-, rdA- und rdB-Daten verwendet, um die auf den CRC-Signalwegen von den Puffereinheiten170 zu der Speichersteuerung100 gesendete CRC-Information zu erzeugen. - Zu beachten ist, dass, obwohl die obigen Signale bewirken, dass die CRC-Information erzeugt und zu der Speichersteuerung
100 gesendet wird, wie dies dargestellt ist, die CRC-Signalwege Signalübergangsphasen besitzen, selbst wenn die Puffereinheiten170 nicht arbeiten (d. h., keine Daten übertragen). Wie zuvor beschrieben ist, steuern die CRC-Daten die RxCDR282 in der Speichersteuerung100 an. Somit ermöglichen diese Übergänge, dass das Lesedatenabtasttaktsignal ständig in der Phase justiert wird, um in korrekter Weise die Lesedaten abzutasten. -
4 ist ein Flussdiagramm, das die Funktionsweise der1 und2 gezeigten Ausführungsformen zeigt. Wie zuvor kurz beschrieben ist, ist die Schnittstelle zwischen der Speichersteuerung und den Puffereinheiten170 asymmetrisch. D. h., ein größerer Anteil der Steuerfunktion liegt in der Speichersteuerung100 im Verhältnis zu den Puffereinheiten170 . Während des Einschaltens und während vorbestimmter Zeiten während des Betriebes kann somit die Speichersteuerung100 die Signaleigenschaften (beispielsweise die Phase etc.) gesendeter Schreibdaten einstellen, um die Puffereinheit170 in die Lage zu versetzen, die Daten auf der Grundlage der Information, die von der Puffereinheit170 empfangen wird, in korrekter Weise zu lesen. Des Weiteren kann die Speichersteuerung100 ihre inneren Empfangseigenschaften justieren, um die Speichersteuerung100 in die Lage zu versetzen, in korrekter Weise die von der Puffereinheit170 gesendeten Daten zu empfangen. Des Weiteren kann die Speichersteuerung100 die Phase der Taktsignale, die der Puffereinheit170 zugeleitet werden, einstellen und kann auch die Phase des BCMD-Signals justieren, um zu ermöglichen, dass Pufferbefehlsinformationen in korrekter Weise von den Puffereinheiten170 abgetastet werden können. - Es sei nun gemeinsam auf die
1 ,2 und4 verwiesen, wobei zunächst auf Block400 der4 verwiesen sei; nach einem Zurücksetzen oder einer Einschaltbedingung (Block400 ) veranlasst in einer Ausführungsform die Steuerlogik255 die Puffereinheit170 , nach der Rücksetzphase in einem Übungsmodus bzw. Trainingsmodus zu arbeiten (Block405 ). Beim Eintritt in den Übungsstatus werden alle bidirektionalen Signalwegtreiber (beispielsweise DDQ, DQ und DQS) in einen hochohmigen Zustand versetzt (Block410 ). In der Übungsphase wird der BCMD-Signalweg auf den CRC-Signalweg selbst während der MCLK-Zyklen zurückgeschleift (Block415 ), und es wird ein Übungsmuster (beispielsweise 10101010....) auf dem CRC-Signalweg während ungeradzahliger MCLK-Zyklen ausgegeben (Block420 ). Die Speichersteuerung100 legt ein Übungsmuster auf den BCMD-Signalweg, das selbst während der MCLK-Zyklen auf den CRC-Weg gelegt wird (Block425 ). Die Speichersteuerung100 erhält bekannte Bitverrriegelungs- und Byteverriegelungswartemuster auf dem CRC-Weg (Block430 ). Des Weiteren justiert die Speichersteuerung100 die Phase des BCMD-Taktsignals durch Einstellen der variablen Phaseneinheit294 , so dass die Puffereinheit170 eine Bit-Verriegelung (d. h. eine Bitzuordnung) und eine Byte-Verriegelung (d. h. eine Bytezuordnung) auf dem BCMD-Signalweg erhält (Block435 ). Insbesondere kann die Speichersteuerung100 das Muster variieren (verschieben), das während einer Bitzeit (UI) gesendet wird, um sicherzustellen, dass die Puffereinheit170 jedes Bit in korrekter Weise empfängt und die seriellen Bits verschiebt und vollständige 8-Bit-Bytes an der korrekten Bytegrenze empfängt. Die Speichersteuerung sendet dann einen Pufferbefehl, um den Übungsmodus der Puffereinheit170 aufzuheben (Block440 ). - Um den DDQ-Datenweg zu trainieren, sendet die Speichersteuerung
100 ein Übungsmuster (beispielsweise ein Zufallsmuster mit einer Vielzahl an Übergängen) über die DDQ-Datenwege. Dieses Muster wird im Schreib-FIFO220 (Block445 ) gespeichert. Die Speichersteuerung100 liest das gespeicherte Muster wieder aus, um die Bit-Verriegelung zu erhalten (Block450 ). Die Speichersteuerung100 justiert die Phase der Schreibdaten (beispielsweise durch Justieren der variablen Phaseneinheit295 ), um eine Bitfehlerrate von ungefähr 50% zu erhalten. Die 50%-ige Übergangsfehlerrate gibt an, dass die Schreibdaten in der Nähe der Flanke abgetastet werden. Die Speichersteuerung100 justiert dann die Phase der Schreibdaten um 0,5 UI wieder zurück. Dies sollte das FF208 beispielsweise veranlassen, die Daten in der Nähe der Mitte jedes Datenbits abzugreifen. Dieser Prozess kann für jeden DDQ-Signalweg ausgeführt werden (Block455 ). Um eine Byte-Verriegelung zu erhalten, sendet die Speichersteuerung100 ein Übungsmuster über die DDQ-Datenwege. In einer Ausführungsform besitzt das Übungsmuster für jedes Byte eine andere Struktur. Wäh rend der Überwachung der CRC-Information verschiebt die Speichersteuerung100 die Trainingsmusterdaten in Einheiten von einer UI. Wenn die CRC-Information korrekt ist, wird die Byte-Verriegelung eingerichtet (Block460 ). Sobald das Übungsmuster Byte-verriegelt ist innerhalb der Puffereinheit170 , versucht die Speichersteuerung100 , eine Byte-Verriegelung der Lesedaten zu erreichen. In einer Ausführungsform liest die Speichersteuerung100 das Byte-verriegelte Übungsmuster (Block465 ) zurück. Zu diesem Zeitpunkt sollte die serielle Verbindung so justiert sein, dass sowohl die Bit-Verriegelung als auch die Byte-Verriegelung in Schreibrichtung und in Leserichtung erreicht sind. - Die parallele DRAM-Schnittstelle
156 ist somit eingestellt. Insbesondere kann in einer Ausführungsform die Speichersteuerung100 die WCLK-Phase einstellen, während die BCMD- und die DQ-Schreibphasenzuordnung beibehalten wird, bis die Schreibphasen-DQS-Flanken mit den geeigneten MCLK-Flanken übereinstimmen (Block470 ). - Sobald die serielle und parallele Verbindung der Puffereinheit
170 justiert sind, kann während des normalen Betriebs die Speichersteuerung100 eine Übung für die Schreibphase der seriellen Verbindung160 unter Verwendung von Übungsmustern durchführen, wie dies zuvor beschrieben ist. Diese Übungsphase kann in vorbestimmten Intervallen ausgeführt werden. Während untätiger Phasen kann die Speichersteuerung100 die BCMD- und CRC-Ausrichtung bzw. Justierung überwachen und einstellen, indem eine Reihe von Untätigkeitsbefehlen an die Puffereinheit170 gesendet werden. Diese „Untätigkeitsbefehle” bewirken vorbestimmte CRC-Muster mit vielen Übergängen, die auf dem CRC-Signalweg gesendet werden (Block475 ). -
5 zeigt eine Blockansicht einer beispielhaften Ausführungsform eines Computersystems, das das Speichersystem aus1 und2 enthält. Zu beachten ist, dass Komponenten, die den in1 und2 gezeigten Komponenten entsprechen, der Klarheit und Einfachheit halber in gleicher Weise bezeichnet sind. Ein Computersystem500 umfasst einen Verarbeitungsknoten650 , der mit den Pufferspeichern170 und den Speichereinheiten110 verbunden ist. - In einer Ausführungsform sind die Puffereinheiten
170 integrierte Schaltungschips, die auf der Mutterplatine montiert sind, und die Speichereinheiten110 werden in einen Sockel eingefügt. In einer weiteren Ausführungsform sind die Puffereinheiten170 integrierte Speicherchips, die auf einer Nebenplatine angeordnet sind, die in einen Speicherkartensockel für die Nebenplatine passt. In einer derartigen Ausführungsform besitzen die Nebenplatinen Sockel, in die die Speichereinheiten110 entsprechend stufenartig eingesteckt werden können. - Insbesondere umfasst der Verarbeitungsknoten
650 Prozessorkerne601 , die mit einer Speichersteuerung100 verbunden sind. Zu beachten ist, dass eine beliebige Anzahl an Prozessorkernen601 in dem Verarbeitungsknoten650 vorgesehen sein kann. Wie zuvor beschrieben ist, werden Signale der Speichersteuerung100 den Speicherpuffern170 über eine differentielle serielle Verbindung160 zugeleitet, und den Speichereinheiten170 über eine parallele Verbindung165 zugeleitet. Wie gezeigt umfasst die serielle Verbindung unidirektionale CRC-Signalwege, unidirektionale WCLK-Signalwege, unidirektionale BCMD-Sigalwege und unidirektionale Datensignalwege. Des Weiteren umfasst die parallele Verbindung165 bidirektionale Daten- und Datenabtastsignalwege zwischen den Speicherpuffern170 und den Speichereinheiten110 . Des Weiteren umfasst die parallele Verbindung165 unidirektionale ADDR/CMD- und MCLK-Signalwege zwischen den Verarbeitungsknoten650 und den Speichereinheiten110 . Zu beachten ist, dass zusätzlich zu den ADDR/CMD-Signalen auch andere Signale in der parallelen Verbindung165 vorgesehen werden können, etwa Chipauswahlsignale, Bankauswahlsignale und andere, wobei diese jedoch der Einfachheit halber hier weggelassen sind. Zu beachten ist auch, dass, obwohl dies der Einfachheit halber nicht gezeigt ist, die MCLK- und DQS-Signale differentielle Signale sein können. -
6 ist eine Blockansicht einer Ausführungsform eines Computersystems mit einer Speichersteuerung, die eine Doppelmodus- Speicherverbindung bzw. eine Speicherverbindung mit zwei Modi besitzt. Ein Computersystem700 ist ähnlich zu dem in5 gezeigten Computersystem500 . Beispielsweise umfasst auch das Computersystem700 einen Verarbeitungsknoten650 , der mit Speicherpuffern170 und den Speichereinheiten110 verbunden ist. Jedoch unterscheidet sich in6 die Speichersteuerung710 von der Speichersteuerung100 der5 , da hier eine Speichersteuerung im Dualmodus vorgesehen ist. Insbesondere ist, wie nachfolgend detaillierter beschrieben wird, die Speichersteuerung selektiv so ausgebildet, dass diese entweder mit einer parallelen Verbindung zu den Speichereinheiten110 oder mit einer seriellen Verbindung zur Verwendung mit den Puffereinheiten170 arbeitet. - Wie kurz zuvor beschrieben ist, wollen u. U. Computersystemarchitekten Systeme entwickeln, die ein hohes Maß an Flexibilität aufweisen, so dass ihre Komponenten von möglichst vielen Systemherstellern verwendet werden können. Folglich ist in einer Ausführungs form die Speichersteuerung
710 so konfiguriert, dass diese in einem ersten Modus arbeitet, um eine parallele Speicherverbindung bereitzustellen, die mit einer Vielzahl von Speicherspezifikationen kompatibel ist. Beispielsweise sind in diversen Ausführungsformen die Speichereinheiten110 mit DDR2, DDR3 oder anderen Spezifikationen nach Bedarf kompatibel. Die Speichersteuerung710 stellt als parallele Verbindung eine parallele Verbindung bereit, die mit der DDR2- und DDR3-Technologie bei Bedarf kompatibel ist. Des Weiteren ist die Speichersteuerung710 ausgebildet, in einem zweiten Modus zu arbeiten, der eine differentielle serielle Verbindung, etwa die serielle Verbindung160 der1 und der2 bereitstellt. - Wie in
6 gezeigt ist, legt eine Konfigurationseinheit420 die Konfiguration von I/O-Schaltungen711 in der Speichersteuerung710 fest und wählt diese aus. In einer Ausführungsform kann der Modus der Speichersteuerung710 unter Anwendung eines festverdrahteten externen Anschlussstiftes des Verarbeitungsknotens600 ausgewählt werden. In einer derartigen Ausführungsform können ein oder mehrere externe Auswahlanschlüsse des Verarbeitungsknotens600 mit der Schaltungsmasse verdrahtet sein, wie gezeigt ist, oder diese können mit VDD oder einer anderen Spannung verbunden sein, um nur ein Beispiel zu nennen. Die Konfigurationseinheit720 erkennt den Zustand des Auswahlanschlusses und kann dann die I/O-Schaltungen711 der Speichersteuerung710 entsprechend konfigurieren. In einer weiteren Ausführungsform kann der Modus der Speichersteuerung während des Hochfahrens des Systems beim Ausführen des BIOS605 oder einer anderen Software auf Systemebene ausgewählt werden. - In der dargestellten Ausführungsform ist die Speichersteuerung
710 im ersten Modus direkt mit den Speichereinheiten110 verbunden. In einer derartigen Konfiguration sind die I/O-Schaltungen711 eine parallele Verbindung, die Signalwege, etwa DQ, DQS, ADDR/CMD und MCLK beispielsweise, enthält. In dem zweiten Modus ändern die I/O-Schaltungen711 ihren Zustand, um eine differenzielle serielle Verbindung herzustellen, die mit der Speicherpuffereinheit170 (gestrichelte Linie) verbunden ist, wie dies in1 ,2 und5 gezeigt ist. - Um das Umschalten des Betriebsmodus zu erreichen, enthalten die I/O-Schaltungen
711 mehrere Ausgangstreiber und Eingangspuffer. Einige der Treiber und Puffer können differenzielle Schaltungen sein und andere können unsymmetrische Signalschaltungen sein. In einer Ausführungsform werden abhängig von dem Betriebsmodus die Verbindungen zwischen den diversen I/O-Anschlussstiften des Verarbeitungsknotens und der Treiber und der Puffer geändert. Somit arbeiten in einer Ausführungsform Bereiche der I/O-Schaltungen711 als eine programmierbare Verbindung. - Wie beispielsweise in
6 gezeigt ist, können sich die CRC/DQS-Signalwege von bidirektionalen DQS-Signalwegen in unidirektionale CRC-Signalwege ändern. Der DQS/BCMD kann sich ebenfalls von bidirektionalen DQS-Signalwegen in unidirektionale BCMD-Signalwege und umgekehrt ändern. Des Weiteren können die BCLK/DQS-Signalwege zwischen bidirektionalen DQS-Signalwegen und unidirektionalen BCLK-Signalwegen umgeschaltet werden. Des Weiteren können die DDQ/DQ-Signalwege zwischen bidirektionalen unsymmetrischen DQS-Signalwegen und bidirektionalen differenziellen Daten – die DDQ-Signalwege umgeschaltet werden. -
7 ist eine Blockansicht einer weiteren Ausführungsform des Speichersystems mit einem Hochgeschwindigkeitspuffer. Das Speichersystem80 umfasst eine Speichersteuerung800 , die mit Speichereinheiten110A bis110H und mit Puffereinheiten870A bis870D verbunden ist. Zu beachten ist, dass ähnlich, wie bei der in1 gezeigten Speichersteuerung auch die Speichersteuerung800 eine Steuerung ist, die einen Teil eines Chipsatzes, wie er etwa in einer Nordbrücken-Anordnung verwendet wird, sein kann. Alternativ kann die Speichersteuerung800 , wie dies in10 gezeigt ist, eine eingebettete Lösung sein, in der die Speichersteuerung100 in einem Verarbeitungsknoten, beispielsweise in einem oder mehreren Prozessorkernen, eingebettet ist. - Komponenten, die den in den vorhergehenden Figuren gezeigten Komponenten entsprechen, sind der Klarheit und Einfachheit halber in gleicher Weise nummeriert. In einer Ausführungsform sind die Speichereinheiten
110A –110H repräsentativ für Speichermodule, etwa Doppelreihenspeichermodule (DIMM), wie dies beispielsweise zuvor beschrieben ist. In diversen Ausführungsformen sind die Speichereinheiten mit diversen Technologien, etwa DDR2- und DDR3-Technologie kompatibel, um ein Beispiel zu nennen. - In der dargestellten Ausführungsform ist die Speichersteuerung
800 mit den Puffereinheiten870 über eine serielle Verbindung860A bis860D verbunden. In einer Ausführungsform wird in jeder seriellen Verbindung860 eine differenzielle Signalführungstechnik verwendet. Wie nachfolgend detaillierter beschrieben ist im Zusammenhang mit8 , enthalten die seriellen differenziellen Verbindungen860A bis860D jeweils eine vorgeordnete bzw. aufwärts gerichtete Verbindung zu jeder Puffereinheit840 . Eine nachgeordnete bzw. abwärts gerichtete Verbindung enthält mehrere nachgeordnete serielle Datensignalwege (DSD) und einen entsprechenden nachgeordneten seriellen Taktsignalweg (DSCLK), der zum taktsynchronen Aufnehmen der Daten in der Puffereinheit870 verwendet wird. In ähnlicher Weise enthält jede vorgeordnete Verbindung mehrere vorgeordnete serielle Datensignalwege (USD) und einen entsprechenden vorgeordneten seriellen Taktsignalweg (USCLK), der zur taktsynchronen Aufnahme der Daten in der Speichersteuerung800 verwendet wird. In der dargestellten Ausführungsform sind vier Speicherkanäle gezeigt, obwohl andere Zahlen möglich sind. Die serielle Verbindung860A kann für einen Kanal verwendet werden und ist damit mit Puffereinheit870A verbunden, die serielle Verbindung860B kann für den zweiten Kanal verwendet werden und ist mit den Puffereinheiten870B verbunden, die serielle Verbindung860C kann für den dritten Kanal verwendet werden und ist mit den Puffereinheiten870C verbunden und die serielle Verbindung860D kann für den vierten Kanal verwendet werden und ist mit den Puffereinheiten870D verbunden. - Im Gegensatz zu der seriellen Verbindung
160 , die in den zuvor beschriebenen Ausführungsformen verwendet wird, werden in der seriellen Verbindung860 Datensignalwege verwendet, die jeweils Daten, CRC- und ADDR/CMD-Informationen übertragen. In einer Ausführungsform wird in der seriellen Verbindung860 ein Paketprotokoll verwendet, in welchem die Pakete Codierungen erhalten können, um anzuzeigen, ob die Nutzdaten ADDR/CMD-Daten oder Daten sind. Des Weiteren besitzt jedes Paket ein Format, das zugeordnete Bitzeiten für die CRC-Informationen und für die Nutzdaten (beispielsweise Daten oder ADDR/CMD) besitzt. - Des Weiteren sind die Puffereinheiten
870A bis870D mit den Speichereinheiten110 über eine parallele Verbindung865 verbunden. In einer Ausführungsform umfasst die parallele Verbindung865 Datenwege (DQ), Datenabtastsignalwege (DQS), Adressen/Befehlssignalwege (ADDR/CMD) und Taktsignalwege (MCLK). Zu beachten ist, dass auch andere Signale, etwa Chipauswahl, Bankauswahl, Prüfbits und andere auf der parallelen Verbindung865 übertragen werden können, jedoch wurden diese der Einfachheit halber weggelassen. Zu beachten ist auch, dass die parallele Verbindung865 vier Kanäle enthalten kann. Wie gezeigt, ist einer der Kanäle mit den Speichereinheit110A bis110D verbunden, während ein anderer mit den Speichereinheiten110E bis110H verbunden ist, ein weiterer ist mit den Speichereinheiten110J bis110M verbunden und wiederum ein weiterer ist mit den Speichereinheiten110N bis110R verbunden. - Wie nachfolgend detaillierter beschrieben ist, können die DQ-Signalwege Daten in beiden Richtungen zwischen den Puffereinheiten
870 und den Speichereinheiten110 übertragen, während die differenziellen Datenwege der seriellen Verbindung860 Daten seriell übertragen, die über die parallele Verbindung übertragen wurden, wobei dies mit höherer Geschwindigkeit erfolgt. Beispielsweise kann ein vorgegebener Aufwärts-USD [0] oder Abwärts-DSD [0] Datenbits entsprechend DQ [0:3] übertragen, der USD [1] Signalweg kann Datenbits entsprechend zu DQ [4:7] und dergleichen übertragen, obwohl andere Zuordnungen möglich sind. In einigen Ausführungsformen können die seriellen Verbindungsleitungen unsymmetrisch im Hinblick auf die Anzahl der seriellen Daten Anschlüsse sein. In einer Ausführungsform besitzt die Aufwärtsverbindung mehr Datensignalwege als die Abwärtsverbindung, da angenommen wird, dass eine größere Bandbreite durch Leseoperationen als durch Schreiboperationen verbraucht wird. - Ähnlich zu den zuvor beschriebenen Puffereinheiten
170 überträgt jede serielle Verbindung860 Daten mit der vierfachen Rate, mit der die parallele Verbindung865 Daten auf den Datensignalwegen überträgt. Jedoch arbeiten die ADDR/CMD-Signalwege und die MCLK-Signalwege bei der halben Datenrate der Wege der parallelen Verbindung865 . Beispielsweise überträgt die serielle Verbindung860 Daten auf dem Aufwärts- und Abwärts-Datenwegen mit 6,5 GT/s, während die Datensignalwege DQ/DQS der parallelen Verbindung865 Daten mit 1600 MT/s übertragen, und die ADDR/CMD- und MCLK-Signalwege arbeiten bei 800 MT/s. Zu beachten ist, dass die serielle Verbindung860 mit einer beliebigen geeigneten Datenrate abhängig von der parallelen Verbindung865 abhängen kann. - In einer Ausführungsform steuert die Speichersteuerung
800 den Betrieb der Puffereinheiten870 über die Befehle, die auf den DSD-Signalwegen gesendet werden. Die Puffeinheiten870 besitzen einen normalen Betriebsmodus und einen Konfigurations- und Testmodus. Beispielsweise sendet die Speichersteuerung800 während normaler Datenoperationen Lese- und Schreibbefehle für sowohl Daten als auch vorgeordnete Daten und nachgeordnete Datenelemente, um den Datenspeicher auszulesen und zu beschreiben, und um den Phasenversatz der DQ-Signalwege einzustellen. Des Weiteren steuert die Speichersteuerung800 die Konfiguration, die Übungsphase und das Prüfen der Puffereinheiten870 durch Senden einer Vielzahl von Rückschleifbefehlen, CRC-Steuerbefehle und CRC-Übungsmusterbefehlen, um ein Beispiel zu nennen. - Bei hohen Datenraten ist die Wahrscheinlichkeit, dass die Puffereinheit
170 oder die Speichersteuerung100 ein fehlerhaftes Bit empfängt, sehr hoch. Folglich ist es notwendig, die Übertragungen zwischen der Speichersteuerung100 und den Puffereinheiten170 mit einer Fehlererkennungskodierung zu übertragen, die in robuster Weise Mehrfachbitfehler inner halb eines geschützten Blockes erkennt. In einer Ausführungsform wird eine CRC-Codierung angewendet, um eine derartige Mehrfachbitfehlererkennung zu ermöglichen. Insbesondere, wie in2 gezeigt ist, wird die CRC-Information sowohl in der Aufwärtsverbindung als auch in der Abwärtsverbindung erzeugt und gesendet. Wenn ein Fehler in der seriellen Verbindung in einer beliebigen Richtung erkannt wird, korrigiert die Speichersteuerung100 den Fehler durch Wiederholen der Operation. In einer Ausführungsform wird ein CRC-Fehler, der in der Abwärtsverbindung erkannt wird, in der Aufwärts-CRC codiert. - In einer Ausführungsform umfasst die Speichersteuerung
800 eine Steuerfunktion, die dynamisch und adaptiv die Signaleigenschaften (beispielsweise Phase, etc.) der gesendeten Schreibdaten anpasst, um zu ermöglichen, dass die Puffereinheit870 in korrekter Weise die Daten auf der Grundlage der von der Puffereinheit870 empfangenen Information ausliest. Des Weiteren justiert die Speichersteuerung800 ihre internen Empfangseigenschaften, um zu ermöglichen, dass die Speichersteuerung100 die von der Puffereinheit870 empfangenen Daten empfängt. Ferner kann die Speichersteuerung800 die Phase der Taktsignale einstellen, die an die Puffereinheit870 geleitet werden, um damit ein korrektes Abtasten von Adressen- und Befehlsinformation zu ermöglichen. - Insbesondere kann bei hohen Datenraten durch die Unsicherheiten der Verzögerungen im Übertragungsweg für unterschiedliche Signale in einem Bus eine Pro-Bit-Phasenjustierung eines Abtasttaktsignals eines Empfängers dieser Signale erforderlich sein. Um zu vermeiden, dass eine derartige Schaltung in der Puffereinheit
870 verwendet werden muss, stellt die Speichersteuerung800 die Phase der übertragenen Takt- und Datensignale ein, um damit komplexe Phasenschiebeschaltungen in dem untergeordneten Gerät zu vermeiden. In der dargestellten Ausführungsform umfasst die Speichersteuerung800 eine Steuereinheit800 , die mit einer Sendeeinheit802 , einer Empfangseinheit804 und Taktsignaleinheiten806 verbunden ist. Die Steuereinheit801 berechnet die Phaseninformation auf der Grundlage von Daten, die von den Puffereinheiten870 empfangen werden, wobei diese Information verwendet wird, um die Phase diverser Taktsignalflanken in der Speichersteuerung800 einzustellen. Beispielsweise steuert in Reaktion auf eine derartige Information, etwa CRC-Daten und Lesedaten, die Steuereinheit800 Phasenüberwachungs- und Einstellschaltungen (in8 gezeigt) in der Sendeeinheit802 , der Empfangseinheit804 und der Taktsignaleinheit806 . Diese Funktion ist nachfolgend detaillierter in Verbindung mit der Beschreibung der8 und9 dargelegt. -
8 zeigt ein Diagramm, das detailliertere Aspekte der Komponenten des in7 gezeigten Speichersystems darstellt. Komponenten, die den in7 gezeigten Komponenten entsprechen, sind der Klarheit und Einfachheit halber in gleicher Weise bezeichnet. Die Speichersteuerung800 ist mit der seriellen Puffereinheit870 über eine differenzielle serielle Verbindung860 verbunden. Zu beachten ist, dass die Puffereinheit870 repräsentativ ist für eine beliebige der Puffereinheiten870A bis870D , die in7 gezeigt sind. Folglich umfasst die differenzielle serielle Verbindung860 einen abwärts gerichteten differenziellen seriellen Taktsignalweg (DSCLK) und abwärts gerichtete differenzielle Datensignalwege DSD [11:0]. In ähnlicher Weise umfasst die differenzielle serielle Verbindung860 einen aufwärts gerichteten differenziellen seriellen Taktsignalweg (USCLK) und aufwärts gerichtete differenzielle Datensignalwege USD [19:0]. - Die Speichersteuerung
800 umfasst ein 6,4 GHz-Taktsignal, das durch die Taktsignaleinheit806 aus7 erzeugt wird. In einer Ausführungsform wird das 6,4 GHz-Taktsignal das interne Taktsignal für die Speichersteuerung800 . Der Ausgang der variablen Phaseneinheit890 liefert das Taktsignal für das Flip-Flop (FF)889 . Das 6,4 GHz-Taktsignal ist ebenfalls mit einer Leitungssynchronisierschaltung881 und mit dem Taktsignaleingang des FF893 verbunden, um das serielle Taktsignal DSCLK zu erzeugen. Da das FF893 einen Inverter892 , der eine Rückkopplungsschleife mit dem Eingang verbunden ist, besitzt, wird das 6,4 GHz-Taktsignal durch zwei geteilt und wird als 3,2 GHz-serielles Taktsignal ausgegeben. Das 3,2 GHz-Taktsignal wird durch einen differenziellen Ausgangstreiber891 in differenzieller Weise bereitgestellt. - In der dargestellten Ausführungsform werden die Schreibdaten DDR/CMD und CRC den Eingang des FF
889 zugeleitet. Der Ausgang des FF889 ist mit einem differenziellen Entzerrerausgangstreiber888 verbunden. Der Ausgang des Treibers888 ist mit einem Signalweg von DSD [11:0] verbunden. Somit wird für jeden Signalweg von DSD [11:0] ein ähnlicher Ausgangsweg (nicht gezeigt) verwendet. In gleicher Weise ist für Lesedaten ein Signalweg von USD [19:0] mit einem differenziellem Eingangspuffer885 verbunden, dessen Ausgang mit dem Eingang des FF886 verbunden ist. Der Ausgang des FF886 ist mit dem Eingang der Leitungssynchronisiereinheit881 verbunden. Der Ausgang der Leitungssynchronisiereinheit881 wird als Lesedaten und CRC-Information für andere Bereiche (nicht gezeigt) der Speichersteuerung800 bereitgestellt. Das aufwärts gerichtete serielle Taktsignal USCLK ist mit dem differenziellen Eingangpuffer887 verbunden, dessen Ausgang mit variablen Phaseneinheiten882 verbunden ist. Dessen Ausgang ist mit dem Taktsignaleingang des FF886 verbunden. - Die Puffereinheit
870 umfasst einen Puffer801 , der einen differenziellen Eingangspuffer für jeden der DSD [11:0] Signalwege repräsentiert. Der Puffer801 ist angeschlossen, um die Schreibdaten, ADDR/CMD und die CRC-Information, die auf einen der DSD [11:0] Signalwege gesendet wird, zu empfangen. Somit wird ähnlich zu der Speichersteuerung800 für jeden Signalweg von DSD [11:0] ein ähnlicher Ausgangsweg (nicht gezeigt) verwendet. Der Ausgang des Puffers801 ist mit einem Eingang des FF802 verbunden. Der Ausgang des FF802 ist mit dem Eingang des FF803 verbunden. Der Ausgang des FF803 ist mit einem Befehlspuffer805 , der CRC-Einheit806 , dem Schreib-FIFO807 und einem Ausgangsmultiplexer (mux)809 verbunden. Der Ausgang des Schreib-FIFOs807 ist mit einer DRAM-Schnittstelle256 verbunden, die ähnlich zu der in Verbindung mit2 beschriebenen DRAM-Schnittstelle aufgebaut ist. Wie gezeigt, gibt es vier MCLK-Signale, ADDR/CMD-Signale, 16 Datenabtastsignalwege DQS [15:0] Signalwege und 72 Datensignalwege DQ [71:0] als Teil der parallelen Verbindung865 . Die Schreibdaten aus dem Schreib-FIFO807 werden an die Speichereinheiten110 über DQ [71:0] ausgegeben. Zu beachten ist, dass andere Signale der Einfachheit halber weggelassen sind. Zu beachten ist, obwohl dies der Einfachheit halber nicht gezählt ist, dass die MCLK- und DQS-Signale differenzielle Signale sein können. - Lesedaten aus den Speichereinheiten
110 sind mittels DQ [71:0] über die DRAM-Schnittstelle865 mit Eingang des Multiplexers809 verbunden. Der Ausgang des Multiplexers809 ist einem Eingang des FF810 zugeleitet. Die Steuerlogik855 steuert die Eingangsauswahl des Multiplexers809 . Der Ausgang des FF810 ist mit einem differenziellen Entzerrungsdatenausgangstreiber881 verbunden, der mit einem der differenziellen Signalwege von USD [19:0] verbunden ist. - Die Puffereinheit
870 umfasst ferner eine Steuerlogik855 , die angeschlossen ist, um die Befehlsinformation (CMD) von der Speichersteuerung800 zu empfangen. Die CMD-Information veranlasst die Steuerlogik855 , die Schreibdaten auf die DQ-Datenwege zu legen, oder die Daten für die DQ-Datenwege auszulesen oder Initialisierungssequenzen und Testsequenzen zu beginnen oder zu beenden, etc. Somit steuert die Steuerlogik805 die DRAM-Schnittstelle856 , die CRC-Einheiten806 und808 , den Multiplexer809 , sowie andere Schaltungen. - In der dargestellten Ausführungsform ist das 3,2 GHz-Taktsignal dem Taktsignaleingang des FF
810 und dem Eingang des differenziellen Entzerrungsdatenausgangstreibers812 zugeleitet, dessen Ausgang das aufwärts gerichtete serielle Taktsignal USCLK ist. Das 3,2 GHz-Taktsignal ist ferner mit der Einheit804 zur Teilung durch vier zugeleitet, wodurch eine interne 800 MHz-Taktsignaldomäne bereitgestellt wird, die die MCLK-Domäne ist. - In einer Ausführungsform werden die über die DSD [11:0] Signalwege empfangenen Pakete dem CMD-Puffer
805 , dem Schreib-FIFO807 und der CRC-Einheit806 gleichzeitig zugeleitet. Da die Pakete so codiert sind, dass sie entweder als ADDR/CMD oder Nutzdaten bezeichnet sind, können der CMD-Puffer805 und der Schreib-FIFO807 eine Paketdecodierlogik (nicht gezeigt) aufweisen, um damit ihre entsprechenden Pakete zu empfangen. Wenn daher ein Paket mit Schreibnutzdaten empfangen wird, wird das Paket von dem Schreib-FIFO807 decodiert und die Daten werden in dem Schreib-FIFO807 gespeichert. Der CMD-Puffer805 jedoch verwirft die Nutzdatenpakete. Der Schreib-FIFO807 speichert die Schreibdaten, bis ausreichend Bits empfangen werden, so dass diese durch die Speichereinheit110 über die DRAM-Schnittstelle856 ausgegeben werden können. Wenn ein CMD-Nutzdatenpaket empfangen wird, kann das Paket von dem CMD-Puffer805 decodiert werden und die CMD-Information wird in dem CDM-Puffer805 gespeichert. Der Schreib-FIFO807 andererseits verwirft CMD-Nutzdatenpakete. Da alle Pakete der CRC-Nutzdaten enthalten können, empfängt die CRC-Einheit806 alle Pakete und extrahiert die CRC-Information. - Wie nachfolgend detaillierter in Verbindung mit
9 beschrieben ist, kann während des Betriebs die Speichersteuerung800 die Signaleigenschaften (beispielsweise die Phase, etc.) gesendeter Schreibdaten und empfangener Lesedaten dynamisch und adaptiv einstellen. Insbesondere enthält, wie zuvor erwähnt ist, die Empfangseinheit804 Abtasttaktphaseneinstellschaltungen, etwa die Leitungssynchronisierung881 , und variable Phaseneinheiten809 und882 , um die lokale Abtasttaktphase einzustellen, um damit in optimalerer Weise von der Puffereinheit870 gesendete Daten zu empfangen. Immer wenn die Speichersteuerung890 CRC-Daten aus der Puffereinheit870 empfängt, kann die Empfangseinheit804 die Leitungssynchronisier- und variable Phaseneinheit882 verwenden, um die Taktsignalphase FF885 einzustellen. Des Weiteren kann die Steuereinheit801 in der Speichersteuerung800 die variable Phaseneinheit890 justieren, um damit die Phase der von der Puffereinheit870 gesendeten Schreibdaten einzustellen, um damit zu ermöglichen, dass die Puffereinheit870 die Schreibdaten in optimalerer Weise empfängt. -
9 ist ein Flussdiagramm, das beispielhafte Arbeitsweise der in7 und8 gezeigten Ausführungsformen darstellt. Insbesondere ist eine Initialisierungs- und Konfigurationsprozedur zum Erstellen und Beibehalten einer Kommunikation zwischen der Speichersteuerung890 und den Puffereinheiten870 beschrieben. Es sei nun gemeinsam auf7 bis9 verwiesen und es wird mit Block900 aus9 begonnen, wenn das System zurückgesetzt wird, etwa während des Einschaltens oder während anderer Systemrücksetzbedingungen, wobei keiner der seriellen Signalwege als zugeordnet bzw. justiert betrachtet wird. Die Speichersteuerung und die Puffereinheit870 gehen aus der Rücksetzphase gemäß einem Übungszustand 1 oder T1 hervor. In dem T1-Zustand arbeitet die serielle Verbindung860 bei 400 MT/s (Block905 ). Die Speichersteuerung800 verwendet einen als konstant angenommenen 0,5 UI-Versatz, um Daten zu senden und zu empfangen (Block910 ). Beispielsweise justiert die Speichersteuerung den Versatz so, dass dieser ungefähr in der Mitte der gegebenen Bitzeit liegt. Die Speichersteuerung800 sendet einen Befehl, um die Puffereinheit870 zu veranlassen, den T1-Zustand zu verlassen und in den T2-Zustand überzugehen (Block915 ). Im T2-Zustand legt die Puffereinheit870 ein vorbestimmtes Muster 101010... auf alle Bitleitungen der USD-Verbindung. Die Speichersteuerung erhält eine Bit-Verriegelung und Anwendung des bekannten Musters und justiert beispielsweise die variable Phaseneinheit882 (Block920 ). - In einer Ausführungsform sendet die Speichersteuerung
800 einen Pufferbefehl, um die Puffereinheit870 zu veranlassen, den T2-Zustand zu verlassen und in den T3-Zustand überzugehen, indem beispielsweise für alle acht Bitzeiten eine eins erzeugt wird (Block925 ). Im T3-Zustand sendet die Puffereinheit870 ein vorbestimmtes Muster, etwa 101010... an die Speichersteuerung800 über die USD-Signalwege bei geraden MCLK-Zyklen (Block930 ). Die Puffereinheit870 ist ausgebildet, die abwärts gerichteten Daten zu den aufwärts gerichteten USD-Signalwegen bei ungeradzahligen MCLK-Zyklen zurückzuschleifen und in Abwärtsrichtung über die DSD-Signalwege ein anderes Muster als 101010... zu senden (Block935 ). Die Speichersteuerung800 ermittelt die Byte-Verriegelung unter Anwendung unterschiedlicher Muster. Die Speichersteuerung800 stellt dann die aufwärts gerichteten Datenphase ein, um der Puffereinheit870 zu ermöglichen, dass diese die Bit-Verriegelung und die Byte-Verriegelung ermittelt (Block940 ). Wenn dies abgeschlossen ist, legt die Speichersteuerung800 eine Null während aller acht Bitzeiten an, um die Puffereinheit870 zu veranlassen, den T3-Zustand zu verlassen und in den normalen Betriebsmodus überzugehen (Block945 ), wobei die Speichersteuerung800 Daten liest und diese in die Speichereinheiten110 schreibt, etc. - In normalem Betriebsmodus stellt die Speichersteuerung
800 den MCLK-Teiler804 , der durch vier teilt, in jeder Puffereinheit870 ein, so dass alle Puffereinheiten870 die gleiche Taktflanke (Phase) verwenden (Block950 ). Insbesondere sendet die Speichersteuerung800 Befehle, um die MCLK-Bit-Phase um eine oder mehrere Bitzeiten zu verzögern. - In vorbestimmten Intervallen während des normalen Betriebs (beispielsweise alle 100 μs) trainiert die Speichersteuerung
800 die aufwärts gerichteten und abwärts gerichteten Signalwege (Block955 ) unter Anwendung des periodischen Übungsmodus. Beispielsweise schreibt für eine Übung der Abwärtsleitung die Steuerung900 ein Übungsmuster in den Schreib-FIFO807 unter Verwendung eines vorbestimmten Übungsphasenoffsets (Block960 ). Die Speichersteuerung800 liest dann das Übungsmuster zurück und berechnet ein Fehlervorzeichen aus den Übergangswerten des Musters (Block965 ). Unter Anwendung des berechneten Fehlervorzeichens stellt die Speichersteuerung800 die abwärts gerichtete Datenphase ein (Block970 ). - Für das Üben für die aufwärts gerichtete Verbindung schreibt die Speichersteuerung
800 ein Übungsmuster in den Schreib-FIFO807 unter Anwendung eines normalen Phasenversatzes (Block975 ). Die Speichersteuerung800 liest dann das gespeicherte Übungsmuster zurück und berechnet ein Fehlervorzeichen aus den Übergangswerten für das Muster unter Anwendung eines weiteren vorbestimmten Übungsphasenversatzes (Block980 ). Unter Anwendung des berechneten Fehlervorzeichens stellt dann die Speichersteuerung800 die aufwärts gerichtete Abtastphase ein (Block985 ). Sobald die periodische Übungsphase abgeschlossen ist, wird die Puffereinheit870 in ihren normalen Modus zurückversetzt, wie dies zuvor in Block945 beschrieben ist. -
10 ist eine Blockansicht einer Ausführungsform eines Computersystems mit dem Speichersystem aus7 . Zu beachten ist, dass Komponenten, die den in den7 und8 gezeigten Komponenten entsprechen, der Einfachheit und Klarheit halber in ähnlicher Weise bezeichnet sind. Ein Computersystem1100 umfasst einen Verarbeitungsknoten1150 , der mit Pufferspeichern870 und Speichereinheit110 verbunden ist. - Ähnlich zu dem in
5 gezeigten Computersystem sind in einer Ausführungsform die Puffereinheiten870 integrierte Schaltungschips, die auf der Hauptplatine montiert sind, und Speichereinheiten110 können in Sockel eingesteckt sein. In einer weiteren Ausführungsform sind die Puffereinheiten870 integrierte Schaltungschips, die in einer Nebenplatine montiert sind, die in einen Speicherkartensockel für die Nebenplatine passt. In einer derar tigen Ausführungsform weisen die Nebenplatinen Sockel auf, in die die Speichereinheiten110 in einer entsprechenden Anordnung einsteckbar sind. - In der in
10 gezeigten Ausführungsform umfasst der Verarbeitungsknoten1150 Prozessorkerne1101 , die mit einer Speichersteuerung800 verbunden sind. Zu beachten ist, dass eine beliebige Anzahl an Prozessorkernen1101 in dem Verarbeitungsknoten1150 enthalten sein kann. Wie zuvor im Hinblick auf die Beschreibungen der7 und8 angegeben ist, sind die Signale der Speichersteuerung800 den Speicherpuffern870 über eine differenzielle serielle Verbindung860 und den Speichereinheit110 über eine parallele Verbindung860 zugeleitet. Wie gezeigt, umfasst die serielle Verbindung860 unidirektionale Abwärtssignalwege, unidirektionale Abwärtstaktsignalwege, unidirektionale Aufwärtssignalwege und unidirektionale Aufwärtstaktsignalwege. Des Weiteren umfasst die parallele Verbindung865 bidirektionale Daten- und Datenabtastsignalwege zwischen den Speicherpuffern870 und den Speichereinheiten110 . Des Weiteren umfasst die parallele Verbindung865 unidirektionale ADDR/CMD- und MCLK-Signalwege zwischen dem Verarbeitungsknoten600 und den Speichereinheiten110 . Zu beachten ist, dass zusätzlich zu den ADDR/CMD-Signalen andere Signale auf der parallelen Verbindung865 anliegen können, etwa Chipauswahlsignale, Bankauswahlsignale und andere, die hier der Einfachheit halber weggelassen sind. -
11 ist eine Blockansicht einer weiteren Ausführungsform eines Computersystems mit einer Speichersteuerung, die in einen zweifachen Speicherverbindungsmodus besitzt. Das Computersystem1200 ist ähnlich dem Computersystem1100 , das in10 gezeigt ist. Beispielsweise umfasst das Computersystem1200 einen Verarbeitungsknoten1250 , der mit den Speicherpuffern870 und den Speichereinheiten110 verbunden ist. Jedoch unterscheidet sich die Speichersteuerung1210 in11 von der Speichersteuerung800 der10 , da diese eine Speichersteuerung mit zwei Betriebmodi ist. Insbesondere kann, wie nachfolgend detaillierter beschrieben ist, die Speichersteuerung1210 selektiv so konfiguriert werden, dass sie entweder mit der parallelen Verbindung865 für eine direkte Anbindung an die Speichereinheit110 arbeitet, oder mit der seriellen Verbindung860 zur Verwendung mit den Puffereinheiten870 , wie dies auch zuvor mit Bezug zu den7 und8 beschrieben ist. - Ähnlich zu der Speichersteuerung
710 , die zuvor beschrieben ist, kann auch die Speichersteuerung1210 aus11 selektiv im parallelen Verbindungsmodus für eine direkte Verbindung mit den Speichermodulen arbeiten, die mit einer Vielzahl von Speicherspezifizie rungen kompatibel sind. Zum Beispiel sind in diversen Ausführungsformen die Speichereinheiten110 mit DDR2, DDR3 oder anderen Spezifikationen nach Bedarf kompatibel. Die Speichersteuerung1210 stellt als parallele Verbindung eine parallele Verbindung865 bereit, die mit DDR2- und DDR3-Technologien nach Bedarf kompatibel ist. Des Weiteren kann die Speichersteuerung1210 auch selektiv so konfiguriert werden, dass diese in einem zweiten Modus arbeitet, um eine serielle differenzielle Verbindung, etwa die serielle Verbindung870 aus7 und8 zur Verwendung mit der Puffereinheit870 bereitzustellen. - Wie in
11 gezeigt ist, ermittelt eine Konfigurationseinheit1220 die Konfiguration von I/O-Schaltungen1211 in der Speichersteuerung1210 und wählt diese aus. In einer Ausführungsform wird der Arbeitsmodus der Speichersteuerung1210 unter Anwendung eines festverdrahteten externen Anschlussstiftes des Verarbeitungsknotens1250 ausgewählt. In einer derartigen Ausführungsform können ein oder mehrere externe Auswahlanschlüsse des Verarbeitungsknotens1250 mit der Schaltungsmasse verbunden sein, wie dies gezeigt ist, oder diese können mit VDD oder einer anderen Spannung verbunden sein, um ein Beispiel zu nennen. Die Konfigurationseinheit1220 erkennt den Zustand des Auswahlanschlusses und konfiguriert dann die I/O-Schaltungen1211 der Speichersteuerung1210 entsprechend. In einer weiteren Ausführungsform wird der Arbeitsmodus der Speichersteuerung während des Hochlaufens beim Ausführen des BIOS1205 oder einer anderen Software auf Systemebene ausgewählt. - In der dargestellten Ausführungsform ist im ersten Arbeitsmodus die Speichersteuerung
1210 direkt mit den Speichereinheiten110 verbunden. In einer derartigen Konfiguration bilden die I/O-Schaltungen1211 eine parallele Verbindung, die die Signalwege, etwa DQ, DQS, ADDR/CMD und MCLK oder auch andere enthält. In dem zweiten Arbeitsmodus gehen die I/O-Schaltungen1211 in eine differenzielle serielle Verbindung über, die mit der Speicherpuffereinheit870 verbunden ist (gestrichelte Linien), wie dies etwa in den7 ,8 und10 gezeigt ist. - Um die Umschaltung des Arbeitsmodus zu bewerkstelligen, können die I/O-Schaltungen
1211 mehrere Ausgangstreiber und Eingangspuffer aufweisen. Einige der Treiber und Puffer sind differenzielle Schaltungen, während andere unsymmetrische Schaltungen sind. In einer Ausführungsform wird abhängig von dem Betriebsmodus die Verbindung zwischen den diversen I/O-Anschlussstiften des Verarbeitungsknotens und den Treibern und Puffern geändert. Somit arbeiten in einer Ausführungsform Bereiche der I/O-Schaltungen1211 wie eine programmierbare Verbindung. - Wie beispielsweise in
11 gezeigt, können sich die DDS-Signalwege von unidirektionalen differenziellen DDS-Signalwegen in bidirektionale unsymmetrische DQ-Signalwege und umgekehrt bei Bedarf ändern. Des Weiteren können sich die USD-Signalwege von unidirektionalen USD-Signalwege in bidirektionale unsymmetrische ADDR/CMD-Signalwege und/oder bidirektionale differenzielle DQS-Signalwege ändern und umgekehrt. Ferner können sich die DSCLK-Signalwege ebenfalls von einem differenziellen unidirektionalen Taktsignalweg in einen oder mehrere unsymmetrische MCLK-Signalwege und umgekehrt ändern, etc. Zu beachten ist, dass andere Anschlussstiftkombinationen möglich und hierin eingeschlossen sind. - Obwohl die Ausführungsformen detailliert beschrieben sind, erkennt der Fachmann zahlreiche Variationen und Modifizierungen, sobald er den Inhalt der Offenbarung vollständig würdigt. Zu beachten ist, dass die folgenden Patentansprüche so zu interpretieren sind, dass sie alle derartigen Variationen und Modifizierungen umfassen.
- Industrielle Anwendbarkeit
- Diese Erfindung ist im allgemeinen auf Mikroprozessoren anwendbar.
- Zusammenfassung
- Speichersteuerung mit einer Speicherverbindung mit zwei Betriebsmodi
- Eine Speichersteuerung mit einer Speicherverbindung mit zwei Betriebsmodi umfasst eine Eingangs/Ausgangs-(I/O-)Schaltung mit mehreren Eingangspuffern und mehreren Ausgangstreibern. Die I/O-Schaltung ist ausgebildet, in einem ersten Betriebsmodus oder einem zweiten Betriebsmodus abhängig von einem Zustand eines Moduswahlsignals zu arbeiten. Beim Betrieb in dem ersten Betriebsmodus ist die I/O-Schaltung ausgebildet, eine parallele Verbindung zur Verbindung mit einem oder mehreren Speichermodulen bereitzustellen. Beim Betrieb in dem zweiten Betriebsmodus ist die I/O-Schaltung ausgebildet, eine entsprechende serielle Verbindung zur Verbindung mit einer oder mehreren Puffereinheiten bereitzustellen, wovon jede ausgebildet ist, Speicherdaten zu speichern, die aus dem einen oder den mehreren Speichermodulen ausgelesen oder in diese geschrieben werden.
Claims (27)
- Speichersteuerung mit: einer Eingangs/Ausgangs-(I/O-)Schaltung mit mehreren Eingangspuffern und mehreren Ausgangstreibern, wobei die I/O-Schaltung ausgebildet ist, in einem ersten Betriebsmodus oder in einem zweiten Betriebsmodus abhängig von einem Zustand eines Modusauswahlsignals zu arbeiten; wobei beim Betrieb in dem ersten Betriebsmodus die I/O-Schaltung ausgebildet ist, eine parallele Verbindung zur Verbindung mit einem oder mehreren Speichermodulen bereitzustellen; wobei beim Betrieb in dem zweiten Betriebsmodus die I/O-Schaltung ausgebildet ist, eine entsprechende serielle Verbindung zur Verbindung mit jeder von einer oder mehreren Puffereinheiten bereitzustellen, wovon jede ausgebildet ist, Speicherdaten zu speichern, die aus dem einen oder den mehreren Speichermodulen ausgelesen oder in diese geschrieben werden.
- Speichersteuerung nach Anspruch 1, wobei jede entsprechende serielle Verbindung mehrere differenzielle bidirektionale Datensignalwege aufweist, wovon jeder ausgebildet ist, Daten zwischen einer gegebenen Puffereinheit der einen oder mehreren Puffereinheiten und der Speichersteuerung zu übertragen.
- Speichersteuerung nach Anspruch 1, wobei jede entsprechende serielle Verbindung einen differenziellen Befehlssignalweg aufweist, der ausgebildet ist, die Befehlsinformation von der Speichersteuerung zu einer gegebenen Puffereinheit der einen oder mehreren Puffereinheiten zu übertragen.
- Speichersteuerung nach Anspruch 1, die ferner eine Konfigurationseinheit aufweist, die mit der I/O-Schaltung verbunden und ausgebildet ist zu erkennen, ob der erste oder der zweite Betriebsmodus auszuwählen ist, und die das Modusauswahlsignal für die I/O-Schaltung bereitstellt.
- Speichersteuerung nach Anspruch 1, wobei jede entsprechende serielle Verbindung bei einer ersten Datenübertragungsrate und die parallele Verbindung bei einer zweiten Datenübertragungsrate arbeitet, wobei die erste Datenübertragungsrate höher ist als die zweite Datenübertragungsrate.
- Speichersteuerung nach Anspruch 5, wobei jede entsprechende serielle Verbindung einen differenziellen Taktsignalweg aufweist, der ausgebildet ist, ein Taktsignal von der Speichersteuerung zu einer gegebenen Puffereinheit der einen oder mehreren Puffereinheiten zu übertragen, wobei jedes der differenziellen Taktsignale entsprechend der ersten Datenübertragungsrate erzeugt ist.
- Speichersteuerung nach Anspruch 5, wobei die parallele Verbindung einen oder mehrere Taktsignalwege aufweist, wovon jeder ausgebildet ist, ein zweites Taktsignal von der Speichersteuerung zu dem einen oder den mehreren Speichermodulen zu übertragen, wobei das zweite Taktsignal entsprechend der zweiten Datenübertragungsrate erzeugt ist.
- Speichersteuerung nach Anspruch 1, wobei die parallele Verbindung mehrere bidirektionale Datensignalwege aufweist, die jeweils ausgebildet sind, Daten zwischen der Speichersteuerung speziellen Modulen des einen oder der mehreren Speichermodule zu übertragen.
- Speichersteuerung nach Anspruch 1, wobei die parallele Verbindung mehrere bidirektionale Datenabtastsignalwege aufweist, die ausgebildet sind, Datenabtastsignale zwischen der Speichersteuerung und speziellen Modulen des einen oder der mehreren Speichermodule zu übertragen.
- Speichersteuerung nach Anspruch 1, wobei die parallele Verbindung mehrere unidirektionale Adressen- und Befehlssignalwege aufweist, die ausgebildet sind, Adressen- und Befehlsinformationen von der Speichersteuerung zu dem einen oder den mehreren Speichermodulen zu übertragen.
- Speichersteuerung nach Anspruch 1, wobei jede der entsprechenden seriellen Verbindungen ausgebildet ist, eine zyklische Redundanzcodierungs-(CRC)Information der einen oder mehreren Puffereinheiten über mehrere unidirektionale CRC-Signalwege zu übertragen, wobei die CRC-Information den Daten entspricht, die von der Speichersteuerung über die entsprechende serielle Verbindung gesendet werden.
- Speichersteuerung nach Anspruch 1, wobei jede entsprechende serielle Verbindung mehrere abwärts gerichtete differenzielle unidirektionale Signalwege aufweist, wovon jeder ausgebildet ist, Daten, Adress- und Befehlsinformationen von der Speichersteuerung zu der einen oder mehreren Puffereinheiten zu übertragen.
- Speichersteuerung nach Anspruch 12, wobei jede entsprechende serielle Verbindung einen abwärts gerichteten unidirektionalen differenziellen Taktsignalweg aufweist, der ausgebildet ist, ein serielles Taktsignal von der Speichersteuerung zu jeder der einen oder mehreren Puffereinheiten zu übertragen.
- Speichersteuerung nach Anspruch 1, wobei jede entsprechende serielle Verbindung mehrere aufwärts gerichtete differenzielle unidirektionale Signalwege aufweist, die ausgebildet sind, Daten und eine zyklische Redundanzcodierungs-(CRC)Information von einer der einen oder mehreren Puffereinheiten zu der Speichersteuerung zu übertragen.
- Speichersteuerung nach Anspruch 1, wobei jede entsprechende serielle Verbindung einen aufwärts gerichteten unidirektionalen differenziellen Taktsignalweg aufweist, der ausgebildet ist, ein serielles Taktsignal von einer der einen oder mehreren Puffereinheiten zu der Speichersteuerung zu übertragen.
- Computersystem mit: einem Prozessor; und einer mit dem Prozessor verbundenen Speichersteuerung, wobei die Speichersteuerung umfasst: eine Eingangs/Ausgangs-(I/O-)Schaltung mit mehreren Eingangspuffern und mehreren Ausgangstreibern, wobei die I/O-Schaltung ausgebildet ist, in einem ersten Betriebsmodus oder einem zweiten Betriebsmodus abhängig von einem Zustand eines Modusauswahlsignals zu arbeiten; wobei beim Betrieb in dem ersten Betriebsmodus die I/O-Schaltung ausgebildet ist, eine parallele Verbindung zur Verbindung mit einem oder mehreren Speichermodulen bereitzustellen; wobei beim Betrieb in dem zweiten Betriebsmodus die I/O-Schaltung ausgebildet ist, eine differenzielle serielle Verbindung zur Verbindung mit einer oder mehreren Puffereinheiten bereitzustellen, wovon jede ausgebildet ist, Speicherdaten zu speichern, die von dem einen oder den mehreren Speichermodulen ausgelesen oder in diese geschrieben werden.
- Computersystem nach Anspruch 16, wobei jede entsprechende serielle Verbindung mehrere differenzielle bidirektionale Datensignalwege aufweist, wovon jeder ausgebildet ist, Daten zwischen einer gegebenen Puffereinheit der einen oder mehreren Puffereinheiten und der Speichersteuerung zu übertragen.
- Computersystem nach Anspruch 16, wobei jede entsprechende serielle Verbindung einen differenziellen Befehlssignalweg aufweist, der ausgebildet ist, die Befehlsinformation von der Speichersteuerung zu einer gegebenen Puffereinheit der einen oder mehreren Puffereinheiten zu übertragen.
- Computersystem nach Anspruch 16, das ferner eine Konfigurationseinheit aufweist, die mit der I/O-Schaltung verbunden und ausgebildet ist zu erfassen, ob der erste oder der zweite Betriebsmodus auszuwählen ist, und das Modusauswahlsignal für die I/O-Schaltung bereitzustellen.
- Computersystem nach Anspruch 16, wobei jede entsprechende serielle Verbindung mit einer ersten Datenübertragungsrate und die parallele Verbindung bei einer zweiten Datenübertragungsrate arbeitet, wobei die erste Datenübertragungsrate höher ist als die zweite Datenübertragungsrate.
- Computersystem nach Anspruch 20, wobei jede entsprechende serielle Verbindung einen differenziellen Taktsignalweg aufweist, der ausgebildet ist, ein Taktsignal von der Speichersteuerung zu einer gegebenen Puffereinheit der einen oder mehreren Puffereinheiten zu übertragen, wobei jedes der differenziellen Taktsignale der ersten Datenübertragungsrate entspricht.
- Computersystem nach Anspruch 20, wobei die parallele Verbindung einen oder mehrere Taktsignalwege aufweist, wovon jeder ausgebildet ist, ein zweites Taktsignal von der Speichersteuerung zu dem einen oder den mehreren Speichermodulen zu übertragen, wobei das zweite Taktsignal der zweiten Datenübertragungsrate entspricht.
- Computersystem nach Anspruch 16, wobei die parallele Verbindung umfasst: mehrere bidirektionale Datensignalwege, die jeweils ausgebildet sind, Daten zwischen der Speichersteuerung und speziellen Modulen des einen oder der mehreren Speichermodule zu übertragen; mehrere bidirektionale Datensynchronisiersignalwege, die ausgebildet sind, Datenabtastsignale zwischen der Speichersteuerung und speziellen Modulen des einen oder der mehreren Speichermodule auszutauschen; und mehrere unidirektionale Adressen- und Befehlssignalwege, die ausgebildet sind, Adressen- und Befehlsinformationen von der Speichersteuerung zu dem einen oder den mehreren Speichermodulen zu übertragen.
- Computersystem nach Anspruch 16, wobei jede entsprechende serielle Verbindung mehrere abwärts gerichtete differenzielle unidirektionale Signalwege aufweist, wovon jeder ausgebildet ist, Daten und Befehlsinformationen von der Speichersteuerung zu der einen oder mehreren Puffereinheiten zu übertragen.
- Computersystem nach Anspruch 24, wobei jede entsprechende serielle Verbindung einen abwärts gerichteten unidirektionalen differenziellen Taktsignalweg aufweist, der ausgebildet ist, ein serielles Taktsignal von der Speichersteuerung zu jeder der einen oder mehreren Puffereinheiten zu übertragen.
- Computersystem nach Anspruch 16, wobei jede entsprechende serielle Verbindung mehrere abwärts gerichtete differenzielle unidirektionale Signalwege aufweist, wovon jeder ausgebildet ist, Daten und eine zyklische Redundanzcodierungs-(CRC)Information von einer der einen oder mehreren Puffereinheiten zu der Speichersteuerung zu übertragen.
- Computersystem nach Anspruch 16, wobei jede entsprechende serielle Verbindung einen aufwärts gerichteten unidirektionalen differenziellen Taktsignalweg aufweist, der ausgebildet ist, ein serielles Taktsignal von einer der einen oder mehreren Puffereinheiten zu der Speichersteuerung zu übertragen.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/590,286 US7694031B2 (en) | 2006-10-31 | 2006-10-31 | Memory controller including a dual-mode memory interconnect |
| US11/590,286 | 2006-10-31 | ||
| PCT/US2007/022814 WO2008054696A1 (en) | 2006-10-31 | 2007-10-29 | Memory controller including a dual- mode memory interconnect |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE112007002619T5 true DE112007002619T5 (de) | 2009-09-10 |
| DE112007002619B4 DE112007002619B4 (de) | 2022-08-04 |
Family
ID=39175571
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE112007002619.7T Active DE112007002619B4 (de) | 2006-10-31 | 2007-10-29 | Speichersteuerung mit einer Speicherverbindung mit zwei Betriebsmodi |
Country Status (8)
| Country | Link |
|---|---|
| US (2) | US7694031B2 (de) |
| JP (1) | JP2010508600A (de) |
| KR (1) | KR20090077015A (de) |
| CN (1) | CN101583933B (de) |
| DE (1) | DE112007002619B4 (de) |
| GB (1) | GB2458040A (de) |
| TW (1) | TWI489456B (de) |
| WO (1) | WO2008054696A1 (de) |
Families Citing this family (41)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080140907A1 (en) * | 2006-12-06 | 2008-06-12 | Dreps Daniel M | Multimodal Memory Controllers |
| US20080189457A1 (en) * | 2006-12-06 | 2008-08-07 | International Business Machines Corporation | Multimodal memory controllers |
| WO2008130878A2 (en) * | 2007-04-19 | 2008-10-30 | Rambus Inc. | Techniques for improved timing control of memory devices |
| US8521979B2 (en) * | 2008-05-29 | 2013-08-27 | Micron Technology, Inc. | Memory systems and methods for controlling the timing of receiving read data |
| US7979757B2 (en) | 2008-06-03 | 2011-07-12 | Micron Technology, Inc. | Method and apparatus for testing high capacity/high bandwidth memory devices |
| KR100942953B1 (ko) * | 2008-06-30 | 2010-02-17 | 주식회사 하이닉스반도체 | 데이터 전달 회로 및 그를 포함하는 반도체 메모리 장치 |
| US8289760B2 (en) | 2008-07-02 | 2012-10-16 | Micron Technology, Inc. | Multi-mode memory device and method having stacked memory dice, a logic die and a command processing circuit and operating in direct and indirect modes |
| US8756486B2 (en) | 2008-07-02 | 2014-06-17 | Micron Technology, Inc. | Method and apparatus for repairing high capacity/high bandwidth memory devices |
| US7855931B2 (en) | 2008-07-21 | 2010-12-21 | Micron Technology, Inc. | Memory system and method using stacked memory device dice, and system using the memory system |
| US8127204B2 (en) * | 2008-08-15 | 2012-02-28 | Micron Technology, Inc. | Memory system and method using a memory device die stacked with a logic die using data encoding, and system using the memory system |
| US8489837B1 (en) | 2009-06-12 | 2013-07-16 | Netlist, Inc. | Systems and methods for handshaking with a memory module |
| US9128632B2 (en) | 2009-07-16 | 2015-09-08 | Netlist, Inc. | Memory module with distributed data buffers and method of operation |
| US8533538B2 (en) * | 2010-06-28 | 2013-09-10 | Intel Corporation | Method and apparatus for training a memory signal via an error signal of a memory |
| KR101728067B1 (ko) * | 2010-09-03 | 2017-04-18 | 삼성전자 주식회사 | 반도체 메모리 장치 |
| US9223726B2 (en) | 2010-09-10 | 2015-12-29 | Cypress Semiconductor Corporation | Apparatus and method for programmable read preamble with training pattern |
| US9355051B2 (en) | 2010-09-10 | 2016-05-31 | Cypress Semiconductor Corporation | Apparatus, method, and manufacture for using a read preamble to optimize data capture |
| US8140778B1 (en) * | 2010-09-10 | 2012-03-20 | Spansion Llc | Apparatus and method for data capture using a read preamble |
| US8990605B2 (en) | 2010-09-10 | 2015-03-24 | Spansion Llc | Apparatus and method for read preamble disable |
| US8583987B2 (en) | 2010-11-16 | 2013-11-12 | Micron Technology, Inc. | Method and apparatus to perform concurrent read and write memory operations |
| US8400808B2 (en) | 2010-12-16 | 2013-03-19 | Micron Technology, Inc. | Phase interpolators and push-pull buffers |
| TWI464597B (zh) * | 2012-07-19 | 2014-12-11 | Wistron Corp | 改善資料傳輸之方法及其相關電腦系統 |
| US20140359181A1 (en) * | 2013-05-31 | 2014-12-04 | Hewlett-Packard Development Company, L.P. | Delaying Bus Activity To Accomodate Memory Device Processing Time |
| US10324841B2 (en) | 2013-07-27 | 2019-06-18 | Netlist, Inc. | Memory module with local synchronization |
| US9171597B2 (en) | 2013-08-30 | 2015-10-27 | Micron Technology, Inc. | Apparatuses and methods for providing strobe signals to memories |
| US9218575B2 (en) * | 2013-09-04 | 2015-12-22 | Intel Corporation | Periodic training for unmatched signal receiver |
| TWI533608B (zh) * | 2014-06-30 | 2016-05-11 | 友達光電股份有限公司 | 資料接收器及資料接收方法 |
| US9852811B2 (en) * | 2014-11-13 | 2017-12-26 | Macronix International Co., Ltd. | Device and method for detecting controller signal errors in flash memory |
| US20160371211A1 (en) * | 2015-06-16 | 2016-12-22 | Apple Inc. | Bus-bit-order ascertainment |
| US10692555B2 (en) | 2016-06-29 | 2020-06-23 | Samsung Electronics Co., Ltd. | Semiconductor memory devices enabling read strobe mode and related methods of operating semiconductor memory devices |
| US10186309B2 (en) | 2016-06-29 | 2019-01-22 | Samsung Electronics Co., Ltd. | Methods of operating semiconductor memory devices and semiconductor memory devices |
| KR102641515B1 (ko) | 2016-09-19 | 2024-02-28 | 삼성전자주식회사 | 메모리 장치 및 그것의 클록 분배 방법 |
| US10795592B2 (en) * | 2017-05-05 | 2020-10-06 | Dell Products, L.P. | System and method for setting communication channel equalization of a communication channel between a processing unit and a memory |
| US11604714B2 (en) | 2017-08-09 | 2023-03-14 | Samsung Electronics Co, Ltd. | Memory device for efficiently determining whether to perform re-training operation and memory system including the same |
| KR102392055B1 (ko) * | 2017-08-09 | 2022-04-28 | 삼성전자주식회사 | 리트레이닝 동작의 수행 여부를 효율적으로 결정하기 위한 메모리 장치 및 이를 포함하는 메모리 시스템 |
| KR102438991B1 (ko) | 2017-11-28 | 2022-09-02 | 삼성전자주식회사 | 메모리 장치 및 그것의 동작 방법 |
| US10884451B2 (en) * | 2018-05-01 | 2021-01-05 | DeGirum Corporation | System and methods for completing a cascaded clock ring bus |
| US10418125B1 (en) * | 2018-07-19 | 2019-09-17 | Marvell Semiconductor | Write and read common leveling for 4-bit wide DRAMs |
| US11734174B2 (en) * | 2019-09-19 | 2023-08-22 | Intel Corporation | Low overhead, high bandwidth re-configurable interconnect apparatus and method |
| US11392299B2 (en) * | 2019-12-20 | 2022-07-19 | Micron Technology, Inc. | Multi-purpose signaling for a memory system |
| US12470231B2 (en) * | 2022-03-07 | 2025-11-11 | Intel Corporation | Method and apparatus to perform cyclic redundancy check training in a memory module |
| US12537724B2 (en) * | 2023-03-07 | 2026-01-27 | Micron Technology, Inc. | Apparatus with speed selection mechanism and method for operating |
Family Cites Families (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6510487B1 (en) * | 1996-01-24 | 2003-01-21 | Cypress Semiconductor Corp. | Design architecture for a parallel and serial programming interface |
| CA2302466A1 (en) * | 1997-07-31 | 1999-02-11 | Stanford Syncom Inc. | Means and method for a synchronous network communications system |
| US20040236877A1 (en) * | 1997-12-17 | 2004-11-25 | Lee A. Burton | Switch/network adapter port incorporating shared memory resources selectively accessible by a direct execution logic element and one or more dense logic devices in a fully buffered dual in-line memory module format (FB-DIMM) |
| US6304930B1 (en) * | 1998-01-20 | 2001-10-16 | Matsushita Electric Industrial Co., Ltd. | Signal transmission system having multiple transmission modes |
| JP3315375B2 (ja) * | 1998-01-20 | 2002-08-19 | 松下電器産業株式会社 | 信号伝送システム |
| US6052073A (en) * | 1998-03-23 | 2000-04-18 | Pmc-Sierra Ltd. | Serial to parallel converter enabled by multiplexed flip-flop counters |
| JPH11306074A (ja) * | 1998-04-23 | 1999-11-05 | Sharp Corp | 情報処理装置 |
| JP2000207350A (ja) * | 1999-01-19 | 2000-07-28 | Asahi Chem Ind Co Ltd | デ―タ転送装置及びデ―タ転送方法 |
| US6502161B1 (en) * | 2000-01-05 | 2002-12-31 | Rambus Inc. | Memory system including a point-to-point linked memory subsystem |
| US7047330B2 (en) * | 2001-03-06 | 2006-05-16 | Ati Technologies, Inc. | System for digital stream transmission and method thereof |
| US6845420B2 (en) * | 2001-10-11 | 2005-01-18 | International Business Machines Corporation | System for supporting both serial and parallel storage devices on a connector |
| US20040098545A1 (en) * | 2002-11-15 | 2004-05-20 | Pline Steven L. | Transferring data in selectable transfer modes |
| JP2004199309A (ja) * | 2002-12-18 | 2004-07-15 | Renesas Technology Corp | マイクロコントローラ、マイクロプロセッサおよび不揮発性半導体メモリ装置 |
| US7313639B2 (en) * | 2003-01-13 | 2007-12-25 | Rambus Inc. | Memory system and device with serialized data transfer |
| KR101095025B1 (ko) * | 2003-05-13 | 2011-12-20 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | 직렬 메모리 상호접속부를 통해 복수의 메모리 모듈에결합된 호스트를 포함하는 시스템 |
| US7085886B2 (en) * | 2003-05-28 | 2006-08-01 | International Buisness Machines Corporation | Autonomic power loss recovery for a multi-cluster storage sub-system |
| JP2005346123A (ja) * | 2004-05-31 | 2005-12-15 | Toshiba Corp | パラレルインタフェースコネクタを備えたストレージ装置及び同装置に適用される変換コネクタ |
| KR100643605B1 (ko) * | 2004-08-16 | 2006-11-10 | 삼성전자주식회사 | 적응형 프리 엠퍼시스 장치, 데이터 통신용 송신기,데이터 통신용 송수신 장치 및 적응형 프리 엠퍼시스 방법 |
| US20060195631A1 (en) | 2005-01-31 | 2006-08-31 | Ramasubramanian Rajamani | Memory buffers for merging local data from memory modules |
| US7558124B2 (en) * | 2005-11-16 | 2009-07-07 | Montage Technology Group, Ltd | Memory interface to bridge memory buses |
| US7577039B2 (en) * | 2005-11-16 | 2009-08-18 | Montage Technology Group, Ltd. | Memory interface to bridge memory buses |
| US7368950B2 (en) * | 2005-11-16 | 2008-05-06 | Montage Technology Group Limited | High speed transceiver with low power consumption |
-
2006
- 2006-10-31 US US11/590,286 patent/US7694031B2/en active Active
-
2007
- 2007-10-29 TW TW096140532A patent/TWI489456B/zh active
- 2007-10-29 WO PCT/US2007/022814 patent/WO2008054696A1/en not_active Ceased
- 2007-10-29 DE DE112007002619.7T patent/DE112007002619B4/de active Active
- 2007-10-29 CN CN2007800407571A patent/CN101583933B/zh active Active
- 2007-10-29 KR KR1020097011350A patent/KR20090077015A/ko not_active Ceased
- 2007-10-29 JP JP2009535286A patent/JP2010508600A/ja active Pending
- 2007-10-29 GB GB0908637A patent/GB2458040A/en not_active Withdrawn
-
2010
- 2010-04-02 US US12/753,373 patent/US8019907B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US7694031B2 (en) | 2010-04-06 |
| KR20090077015A (ko) | 2009-07-13 |
| GB0908637D0 (en) | 2009-06-24 |
| US20080147897A1 (en) | 2008-06-19 |
| WO2008054696A1 (en) | 2008-05-08 |
| TW200832406A (en) | 2008-08-01 |
| JP2010508600A (ja) | 2010-03-18 |
| GB2458040A (en) | 2009-09-09 |
| US8019907B2 (en) | 2011-09-13 |
| US20100228891A1 (en) | 2010-09-09 |
| CN101583933B (zh) | 2012-09-05 |
| TWI489456B (zh) | 2015-06-21 |
| CN101583933A (zh) | 2009-11-18 |
| DE112007002619B4 (de) | 2022-08-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE112007002619T5 (de) | Speichersteuerung mit einer Speicherverbindung mit zwei Betriebsmodi | |
| DE112007002605T5 (de) | Speichersystem mit seriellem Hochgeschwindigkeitspuffer | |
| DE102009021865B4 (de) | Bereitstellung eines Präfixes für einen Datenkopf | |
| DE112015006944B4 (de) | Einrichtung, System und Verfahren zum Ermöglichen einer Kommunikation über eine Verbindung mit einer Vorrichtung außerhalb einer Baugruppe | |
| DE102012204991B4 (de) | Speichereinrichtungen, Systeme und Verfahren unter Verwendung einer Befehls/Adressenkalibrierung | |
| DE102007052840B4 (de) | Vorrichtung und Verfahren zum Umschalten einer Vorrichtung in einen Leistungssparmodus | |
| DE602004008067T2 (de) | Speichermodularchitektur-reigentopologie, detektionen und meldungen, präsenz eines äusseren speichermoduls zu innerem modul | |
| DE69605037T2 (de) | Taktquellensynchrone datenverbindung | |
| DE102006029742A1 (de) | Halbleiterspeichersystem | |
| DE4307449C2 (de) | Verfahren und Schaltung zur Resynchronisation einer synchronen seriellen Schnittstelle | |
| DE102017120447A1 (de) | Halbleitervorrichtung, Verfahren zum Betreiben der Halbleitervorrichtung und ein System, das diese beinhaltet | |
| DE112006000298T5 (de) | Zwischenspeicher zum Zusammenfassen lokaler Daten von Speichermodulen | |
| DE112011103207T5 (de) | Implementierung eines Quickpath Interconnect-Protokolls auf einer PCIe-Schnittstelle | |
| DE10212642A1 (de) | Speichersteuerung mit 1X/MX-Lesefähigkeit | |
| DE102009036631B4 (de) | Vorrichtung, Verfahren und System zum Überwachen eines internen Links über einen zweiten Link | |
| DE102019112628A1 (de) | Dimm für speicherkanal mit hoher bandbreite | |
| DE102007060805A1 (de) | Modulare Speichersteuerungstaktungsarchitektur | |
| DE112008002273T5 (de) | Optimale Lösung zur Steuerung von Datenkanälen | |
| DE102006035612B4 (de) | Speicherpuffer, FB-DIMM und Verfahren zum Betrieb eines Speicherpuffers | |
| DE102015010900A1 (de) | Serieller Hochgeschwindigkeitsring | |
| DE60017774T2 (de) | Verfahren und vorrichtung zur unterstützung von mehrtaktübertragung in einem rechnersystem mit einer punkt-zu-punkt halb-duplex verbindung | |
| DE102008030514A1 (de) | Verfahren und Vorrichtung zur Anbindung von Speichervorrichtungen | |
| DE10128770B4 (de) | Verfahren zum Übertragen von Daten in ein Speicherzellenfeld und Schaltungsanordnung | |
| DE102008051657B4 (de) | Speicherbaustein und Speichersystem mit einem Speicherbaustein und einem Speicherkontrollbaustein | |
| DE112006003503T5 (de) | Mehrfachanschluss-Speicher mit Banksätzen zugeordneten Anschlüssen |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| OP8 | Request for examination as to paragraph 44 patent law | ||
| 8127 | New person/name/address of the applicant |
Owner name: GLOBALFOUNDRIES INC., GRAND CAYMAN, KY |
|
| 8128 | New person/name/address of the agent |
Representative=s name: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER, |
|
| R016 | Response to examination communication | ||
| R016 | Response to examination communication | ||
| R081 | Change of applicant/patentee |
Owner name: GLOBALFOUNDRIES U.S. INC., SANTA CLARA, US Free format text: FORMER OWNER: GLOBALFOUNDRIES INC., GRAND CAYMAN, KY Owner name: MEDIATEK INC., TW Free format text: FORMER OWNER: GLOBALFOUNDRIES INC., GRAND CAYMAN, KY |
|
| R082 | Change of representative |
Representative=s name: GRUENECKER PATENT- UND RECHTSANWAELTE PARTG MB, DE Representative=s name: HOEFER & PARTNER PATENTANWAELTE MBB, DE |
|
| R081 | Change of applicant/patentee |
Owner name: MEDIATEK INC., TW Free format text: FORMER OWNER: GLOBALFOUNDRIES U.S. INC., SANTA CLARA, CA, US |
|
| R082 | Change of representative |
Representative=s name: HOEFER & PARTNER PATENTANWAELTE MBB, DE |
|
| R016 | Response to examination communication | ||
| R018 | Grant decision by examination section/examining division | ||
| R020 | Patent grant now final |