-
HINTERGRUND
-
Die vorliegende Offenbarung bezieht sich im Allgemeinen auf Speicheruntersysteme von Computersystemen und insbesondere auf Systeme und Vorrichtungen zum Verbessern der Leistung und der Speicherkapazität von Speicheruntersystemen oder Speicher”platten”, insbesondere Speicherplatten, die Dual In-Line Memory Modules (DIMMs) bzw. doppelreihige Speicherbausteine aufweisen.
-
Bestimmte Arten von Computer-Speicheruntersystemen weisen eine Vielzahl von Dynamic Random Access Memory (DRAM) Vorrichtungen bzw. dynamischen Speicherbausteinen mit wahlfreiem Zugriff oder Synchronous Dynamic Random Access Memory (SDRAM) Vorrichtungen bzw. synchronen dynamischen Speicherbausteinen mit wahlfreiem Zugriff auf, die auf einer gedruckten Leiterplatte angebracht sind. Diese Speicheruntersysteme oder Speicher”platten” sind typischerweise in einem Speicherschlitz oder -sockel eines Computersystems, zum Beispiel eines Serversystems oder eines Personal Computers, angebracht, und werden vom Prozessor des Computersystems angesteuert. Speicherplatten weisen typischerweise ein oder mehrere Speichermodule auf, jedes mit einer Vielzahl von Speichervorrichtungen (z. B. DRAMs oder SDRAMs) in einer eindeutigen Konfiguration von Reihen, Spalten und Banken, die die Gesamtspeicherkapazität für das Speichermodul bereitstellen.
-
Die Speichervorrichtungen eines Speichermoduls sind im Allgemeinen als Speicherreihen angeordnet, wobei jede Speicherreihe im Allgemeinen eine Bitbreite hat. Beispielsweise wird ein Speichermodul, bei dem jede Reihe des Speichermoduls eine Breite von 64 Bit hat, als „x64” oder „by 64” Architektur aufweisend beschrieben. Ähnlich wird ein Speichermodul mit 72 Bit breiten Reihen als „x72” oder „by 72” Architektur aufweisend beschrieben.
-
Die Speicherkapazität eines Speichermoduls steigt mit der Anzahl der Speichervorrichtungen. Die Anzahl der Speichervorrichtungen eines Speichermoduls kann erhöht werden, indem die Anzahl von Speichervorrichtungen pro Reihe erhöht wird, oder indem die Anzahl der Reihen erhöht wird. Unter bestimmten Umständen bezieht man sich nicht auf die Speicherkapazität des Speichermoduls, sondern stattdessen auf die Speicherdichte des Speichermoduls.
-
Im Betrieb werden die Reihen eines Speichermoduls durch Steuersignale ausgewählt oder aktiviert, die vom Prozessor empfangen werden. Beispiele solcher Steuersignale beinhalten, sind jedoch nicht beschränkt auf, Reihenauswahlsignale, auch Chipauswahlsignale genannt. Die meisten Computer- und Serversysteme unterstützen eine begrenzte Anzahl von Reihen pro Speichermodul, was die Speicherdichte, die in jedem Speichermodul integriert werden kann, einschränkt.
-
In einem elektronischen System ist der Speicherplatz durch den physikalisch adressierbaren Raum begrenzt, der durch die Anzahl von Adressbits oder die Anzahl ausgewählter Chips definiert ist. Im Allgemeinen ist es, sobald der Speicherplatz für ein elektronisches System definiert ist, nicht machbar, den Speicherplatz ohne umfangreiche Designänderung zu modifizieren. Dies trifft insbesondere für den Fall zu, bei dem ein Speicherplatz durch eine Vereinigung definiert wird, zum Beispiel das Joint Electron Device Engineering Council (JEDEC). Ein Problem ergibt sich, wenn die Anwendung eines Benutzers einen größeren adressierbaren Speicherplatz erfordert, als den Speicherplatz, den das aktuelle elektronische System unterstützen kann.
-
Beim Entwickeln eines Speicheruntersystems wird stets auf die Speicherdichte, die Verlustleistung, die Geschwindigkeit und die Kosten geachtet. Im Allgemeinen sind diese Attribute nicht orthogonal zueinander, was bedeutet, dass das Optimieren eines Attributs eine schädliche Wirkung auf ein anderes Attribut haben kann. Das Erhöhen der Speicherdichte verursacht zum Beispiel typischerweise höhere Verlustleistung, geringere Betriebsgeschwindigkeit und höhere Kosten.
-
Des Weiteren können die Spezifikationen des Speicheruntersystems von physikalischen Einschränkungen geleitet werden, die mit diesen Attributen verbunden sind. Eine hohe Verlustleistung kann zum Beispiel die Operationsgeschwindigkeit einschränken, oder die physikalische Größe des Speichermoduls kann die Dichte des Moduls begrenzen.
-
Diese Attribute diktieren im Allgemeinen die Designparameter des Speichermoduls und erfordern normalerweise, dass das Speichersystem die Operationsgeschwindigkeit herunterfährt, wenn das Speicheruntersystem mit mehreren Speichervorrichtungen bestückt ist, um Speicherkarten mit höherer Dichte bereitzustellen.
-
ÜBERBLICK
-
Bei bestimmten Ausführungsformen wird ein Speichermodul bereitgestellt. Das Speichermodul weist wenigstens eine gedruckte Leiterplatte und eine Vielzahl von Speichervorrichtungen auf, die mechanisch mit der wenigstens einen gedruckten Leiterplatte verbunden sind. Das Speichermodul weist des Weiteren eine Steuerschaltung auf, die mechanisch mit der wenigstens einen gedruckten Leiterplatte verbunden ist. Die Steuerschaltung ist dazu konfigurierbar, Steuersignale von einem Systemspeichercontroller zu empfangen und Modulsteuersignale an die Vielzahl von Speichervorrichtungen zu senden. Das Speichermodul weist des Weiteren eine Vielzahl von Datenübertragungsschaltungen auf, die mechanisch mit der wenigstens einen gedruckten Leiterplatte verbunden und an entsprechenden Positionen bezüglich der wenigstens einen gedruckten Leiterplatte verteilt sind. Die Vielzahl von Datenübertragungsschaltungen ist dazu konfigurierbar, betriebsbereit mit dem Systemspeichercontroller verbunden zu werden, und dazu konfigurierbar, Modulsteuersignale von der Steuerschaltung zu empfangen. Wenigstens eine erste Datenübertragungsschaltung der Vielzahl von Datenübertragungsschaltungen ist betriebsbereit mit wenigstens zwei Speichervorrichtungen der Vielzahl von Speichervorrichtungen verbunden. Wenigstens eine zweite Datenübertragungsschaltung der Vielzahl von Datenübertragungsschaltungen ist betriebsbereit mit wenigstens zwei Speichervorrichtungen der Vielzahl von Speichervorrichtungen verbunden. Die wenigstens eine erste Datenübertragungsschaltung ist dazu konfigurierbar, auf die Modulsteuersignale anzusprechen, indem sie Datenübertragung zwischen dem Systemspeichercontroller und wenigstens einer ausgewählten Speichervorrichtung der wenigstens zwei Speichervorrichtungen, die betriebsbereit mit der wenigstens einen ersten Datenübertragungsschaltung verbunden sind, selektiv zulässt oder verhindert. Die wenigstens eine zweite Datenübertragungsschaltung ist dazu konfigurierbar, auf die Modulsteuersignale anzusprechen, indem sie Datenübertragung zwischen dem Systemspeichercontroller und wenigstens einer ausgewählten Speichervorrichtung der wenigstens zwei Speichervorrichtungen, die betriebsbereit mit der wenigstens einen zweiten Datenübertragungsschaltung verbunden sind, selektiv zulässt oder verhindert.
-
Bei bestimmten Ausführungsformen wird ein Speichermodul breitgestellt. Das Speichermodul weist eine Vielzahl von Speichervorrichtungen und einen Controller auf, der dazu konfiguriert ist, Steuerinformationen von einem Systemspeichercontroller zu empfangen und Modulsteuersignale zu erzeugen. Das Speichermodul weist des Weiteren eine Vielzahl von Schaltungen auf, die dazu konfiguriert sind, die Vielzahl von Speichervorrichtungen selektiv von dem Systemspeichercontroller zu isolieren. Die Schaltungen sind dazu betreibbar, im Ansprechen auf die Modulsteuersignale Schreibdaten von dem Systemspeichercontroller an die Vielzahl von Speichervorrichtungen zu treiben und Lesedaten von der Vielzahl von Speichervorrichtungen an den Systemspeichercontroller zusammenzuführen. Die Schaltungen sind an entsprechenden Positionen, die voneinander getrennt sind, verteilt.
-
Ein Verfahren zum Betreiben eines Speichermoduls weist eine Vielzahl von Speichervorrichtungen auf. Das Verfahren umfasst das Bereitstellen einer Datenübertragungsschaltung an einer Datenleitung zwischen einem Speichercontroller eines Computersystems und der Vielzahl von Speichervorrichtungen des Speichermoduls. Die Datenübertragungsschaltung weist einen byteweisen Puffer auf. Das Verfahren umfasst des Weiteren, während einer Schreiboperation, das Aktivieren der Datenübertragungsschaltung, um ein Datensignal von dem Speichercontroller des Computersystems auf einem einer Vielzahl von Pfaden an die Speichervorrichtungen des Speichermoduls zu treiben. Das Verfahren umfasst des Weiteren, während einer Leseoperation, das Aktivieren der Datenübertragungsschaltung, um eine Vielzahl von Datensignalen von den Speichervorrichtungen des Speichermoduls zusammenzuführen und das zusammengeführte Datensignal an den Speichercontroller des Computersystems zu treiben.
-
Bei bestimmten Ausführungsformen wird ein Speichermodul bereitgestellt, das eine Vielzahl von Speichervorrichtungen aufweist. Das Speichermodul kann des Weiteren einen Controller aufweisen, der dazu konfiguriert ist, Steuerinformationen von einem Systemspeichercontroller zu empfangen und Modulsteuersignale zu erzeugen. Bei einigen Ausführungsformen weist das Speichermodul einen Schaltkreis auf, der dazu konfiguriert ist, die Vielzahl von Speichervorrichtungen von dem Systemspeichercontroller zu isolieren. Der Schaltkreis kann dazu betreibbar sein, im Ansprechen auf die Modulsteuersignale Schreibdaten von dem Systemspeichercontroller an die Vielzahl von Speichervorrichtungen zu treiben, und bei einigen Ausführungsformen Lesedaten von der Vielzahl von Speichervorrichtungen an den Systemspeichercontroller zusammenzuführen.
-
Ein Verfahren zum Betreiben eines Speichermoduls weist eine Vielzahl von Speichervorrichtungen auf. Das Verfahren kann das Bereitstellen eines lastreduzierenden Schaltkreises an einer Datenleitung zwischen einem Speichercontroller des Computersystems und der Vielzahl von Speichervorrichtungen des Speichermoduls umfassen. Das Verfahren umfasst während einer Schreiboperation das Aktivieren des lastreduzierenden Schaltkreises, um ein Datensignal von dem Speichercontroller des Computersystems auf einem einer Vielzahl von Pfaden an die Speichervorrichtungen des Speichermoduls zu treiben. Das Verfahren umfasst während einer Leseoperation das Aktivieren des lastreduzierenden Schaltkreises, um eine Vielzahl von Datensignalen von den Speichervorrichtungen des Speichermoduls zusammenzuführen und das zusammengeführte Datensignal an den Speichercontroller des Computersystems zu treiben.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Ein vollständiges Verständnis der Erfindung kann durch Bezugnahme auf die beigefügten Zeichnungen erhalten werden, wenn sie in Zusammenhang mit der nachfolgenden detaillierten Beschreibung betrachtet werden. Es zeigt:
-
1A eine schematische Darstellung eines herkömmlichen Speicheruntersystems, das mit wenigstens einem Speichermodul mit zwei Reihen vom JEDEC-Standard bestückt ist.
-
1B eine schematische Darstellung eines herkömmlichen Speicheruntersystems, das mit wenigstens einem Speichermodul mit vier Reihen vom JEDEC-Standard bestückt ist.
-
2A eine schematische Darstellung eines anderen herkömmlichen Speicheruntersystems, das mit wenigstens einem Speichermodul mit zwei Reihen bestückt ist.
-
2B eine schematische Darstellung eines anderen herkömmlichen Speicheruntersystems, das mit wenigstens einem Speichermodul mit vier Reihen bestückt ist.
-
2C und 2D schematische Darstellungen eines herkömmlichen Speichermoduls mit zwei Reihen bzw. eines herkömmlichen Speichermoduls mit vier Reihen, die jeweils einen Speicherpuffer aufweisen.
-
3A eine schematische Darstellung eines beispielhaften Speicheruntersystems gemäß einer Ausführungsform der Offenbarung.
-
3B eine schematische Darstellung eines anderen beispielhaften Speicheruntersystems gemäß bestimmter vorliegend beschriebener Ausführungsformen.
-
3C eine schematische Darstellung eines beispielhaften Aufbaus der Speichervorrichtungen, der Datenübertragungsschaltungen und der Steuerschaltung eines Speichermoduls gemäß bestimmter vorliegend beschriebener Ausführungsformen.
-
3D eine Abbildung eines beispielhaften Speicheruntersystems gemäß bestimmter vorliegend beschriebener Ausführungsformen.
-
4A eine schematische Darstellung eines beispielhaften Speicheruntersystems, das eine Datenübertragungsschaltung mit einer Bitbreite aufweist, die identisch mit derjenigen der einzelnen Speichervorrichtungen ist.
-
4B eine schematische Darstellung eines beispielhaften Speicheruntersystems, das eine Datenübertragungsschaltung mit einer Bitbreite aufweist, die sich von derjenigen der einzelnen Speichervorrichtungen unterscheidet.
-
5 eine schematische Darstellung einer beispielhaften Ausführungsform einer Datenübertragungsschaltung, die mit dem Speicheruntersystem von 3A kompatibel ist.
-
6 ein beispielhaftes Zeitdiagramm, das den Betrieb des Speichersystems von 3A und 5 zeigt.
-
Der Deutlichkeit und Kürze halber sind gleiche Elemente und Komponenten in den Figuren mit gleichen Bezeichnungen und Nummern versehen.
-
DETAILLIERTE BESCHREIBUNG
-
Ein Verfahren zum Erhöhen des Speicherplatzes basiert auf einem Adressdecodierungsschema. Dieses Verfahren ist in der Elektronikindustrie beim Gestalten von Application Specific Integrated Circuit (ASIC) Vorrichtungen bzw. anwendungsspezifischen integrierten Schaltungen und System-On-Chip (SOC) Vorrichtungen bzw. System-auf-Chip-Vorrichtungen weit verbreitet, um Systemspeicher zu erweitern. Ein anderes Verfahren erhöht den adressierbaren Speicherplatz ohne beträchtliche Änderung der Software oder Hardware eines bestehenden Elektroniksystems. Dieses Verfahren kombiniert Chipauswahlsignale mit einem Adresssignal, um die Anzahl physikalisch adressierbarer Speicherplätze zu erhöhen (z. B. um einen Faktor 2, um einen Faktor 4, um einen Faktor 8, oder auch um andere Faktoren).
-
Diese Verfahren weisen mehrere Mängel auf. Beispielsweise wird, weil diese Verfahren den adressierbaren Speicherplatz erhöhen, indem sie Speicherchips direkt hinzufügen, den Ausgängen des Systemcontrollers und den Ausgängen der Speichervorrichtungen größere Last zugeführt, was zu einem langsameren System führt. Auch führt das Erhöhen der Anzahl der Speichervorrichtungen zu größerer Verlustleistung. Außerdem weichen, weil eine Erhöhung der Anzahl der Speichervorrichtungen bei jedem Speichermodul die physikalischen Eigenschaften des Speichermoduls ändert, während die Systemplatte gleich bleibt, die Welleneigenschaften des Gesamtsignals (Übertragungsleitung) von der Absicht oder Spezifikation der Ursprungsgestaltung ab. Des Weiteren wird, insbesondere wenn registrierte DIMMs (RDIMMs) verwendet werden, die Erhöhung der Anzahl der Speichervorrichtungen in eine Erhöhung der verteilten RC-Last auf den Datenpfaden, aber nicht auf den Steuerpfaden (z. B. Adresspfaden), umgesetzt, wodurch zwischen den Datensignalpfaden und den Steuersignalpfaden eine ungleichmäßige Signalfortpflanzungsverzögerung eingeführt wird. In der vorliegenden Verwendung umfassen die Begriffe „Steuerleitungen” und „Steuerpfade” Adressleitungen oder -pfade und Befehlsleitungen oder -pfade, und der Begriff „Steuersignale” umfasst Adresssignale und Befehlssignale.
-
Die 1A und 1B zeigen eine Herangehensweise zum Erhöhen der Anzahl von Speichervorrichtungen nach dem Stand der Technik. Insbesondere zeigt 1A ein herkömmliches Speicheruntersystem 100 mit wenigstens einem Speichermodul mit zwei Reihen 110 vom JEDEC-Standard, zum Beispiel ein registriertes Dual In-Line Memory Module (RDIMM) bzw. einen registrierten doppelreihigen Speicherbaustein, wovon aus Gründen der Klarheit nur eines gezeigt ist. Jede Reihe des Speichermoduls 110 weist eine Vielzahl von Speichervorrichtungen 112 auf, zum Beispiel Dynamic Random Access Memory (DRAM) Vorrichtungen oder Synchronous DRAM (SDRAM) Vorrichtungen. Ein Register 130 empfängt eine Vielzahl von Steuerleitungen 140 (die als einzige durchgehende Line gezeigt sind) von dem Systemspeichercontroller 120 und ist über Steuerleitungen 142 mit den Speichervorrichtungen 112 jeder Reihe des Speichermoduls 110 verbunden. Dieses Speicheruntersystem 100 verbindet jede Datenleitung einer Anordnung von Datenleitungen 150 (die als gestrichelte Linien gezeigt sind) von einem Systemspeichercontroller 120 mit korrespondierenden Speichervorrichtungen 112 in den beiden Reihen in jedem Speichermodul 110. Daher erfährt der Systemspeichercontroller 120 während einer Schreiboperation alle Speichervorrichtungen 112 als Last über die Datenleitungen 150, und während einer Leseoperation erfährt jede Speichervorrichtung 112 mehrere andere Speichervorrichtungen 112, sowie den Systemspeichercontroller 120, als Last über die Datenleitungen 150.
-
1B ist eine schematische Ansicht eines anderen herkömmlichen Speicheruntersystems 100' mit wenigstens einem Speichermodul mit vier Reihen 110' vom JEDEC-Standard (von denen aus Klarheitsgründen nur eines gezeigt ist), wobei jede Reihe eine Vielzahl von Speichervorrichtungen 112' aufweist. Das Register 130' empfängt die Vielzahl von Steuerleitungen 140' (die als einzige durchgezogene Linie gezeigt sind) von dem Systemspeichercontroller 120' und ist über Steuerleitungen 142' mit den Speichervorrichtungen 112' jeder Reihe des Speichermoduls 110' verbunden. Jede Datenleitung der Anordnung von Datenleitungen 150' (als gestrichelte Linien gezeigt) von dem Systemspeichercontroller 120' ist (z. B. durch vier Ausgangsverzweigungen) mit korrespondierenden Speichervorrichtungen 112' in den vier Reihen in jedem Speichermodul 110' verbunden. Daher erfährt, wie bei dem in 1A gezeigten Speichermodul mit zwei Reihen 110, während einer Schreiboperation der Systemspeichercontroller 120' alle Speichervorrichtungen 112' als Last über die Datenleitungen 150', und während einer Leseoperation erfährt jede Speichervorrichtung 112' mehrere andere Speichervorrichtungen 112' und den Systemspeichercontroller 120' als Last über die Datenleitungen 150'.
-
Sowohl für das herkömmliche Speichermodul mit zwei Reihen 110 als auch für das herkömmliche Speichermodul mit vier Reihen 110' verursachen die mehreren Lasten, die von dem Speichercontroller 120, 120' während Schreiboperationen erfahren werden, und die mehreren Lasten, die von den Speichervorrichtungen 112, 112' während Leseoperationen erfahren werden, signifikante Leistungsprobleme. Für einen Synchronbetrieb wird zum Beispiel gewünscht, dass Zeitverzögerungen der verschiedenen Signale im Wesentlichen zueinander gleich sind, so dass der Betrieb des Speichermoduls 110, 110' mit dem Systembus des Computersystems synchronisiert ist. Somit werden die Spurlängen des Speichermoduls 110, 110' so gewählt, dass die Signale dieselbe Taktphase haben. Beispielsweise sind die Längen der Steuerleitungen 142, 142' vom Register 130, 130' zu jeder der Speichervorrichtungen 112, 112' im Wesentlichen gleich zueinander. Für schnellere Taktgeschwindigkeiten machen jedoch geringe Fehler in den Spurlängen einen derartigen synchronen Betrieb schwierig oder unmöglich. Daher verringern diese Techniken des Stands der Technik nicht nur die Geschwindigkeit der Speichersysteme, sondern sie erfordern auch Hardwaremodifizierungen, um jegliche Abweichung der Welleneigenschaften der Übertragungsleitung von der Spezifikation der Ursprungsgestaltung zu minimieren.
-
Die 2A und 2B zeigen eine andere Herangehensweise des Stands der Technik, um die Anzahl von Speichervorrichtungen zu erhöhen. Insbesondere zeigt 2A ein herkömmliches Speicheruntersystem 200 mit wenigstens einem Speichermodul mit zwei Reihen 210, von denen der Klarheit halber nur eines gezeigt ist. Jede Reihe des Speichermoduls 210 weist eine Vielzahl von Speichervorrichtungen 212 auf, zum Beispiel Dynamic Random Access Memory (DRAM) Vorrichtungen oder Synchronous DRAM (SDRAM) Vorrichtungen. Ein Register 230 empfängt eine Vielzahl von Steuerleitungen 240 (die als einzige durchgehende Line gezeigt sind) von dem Systemspeichercontroller 220 und ist über Steuerleitungen 242 mit den Speichervorrichtungen 212 jeder Reihe des Speichermoduls 210 verbunden. Dieses Speicheruntersystem 200 verbindet jede Datenleitung einer Anordnung von Datenleitungen 250 (die als gestrichelte Linien gezeigt sind) von einem Systemspeichercontroller 220 mit korrespondierenden Speichervorrichtungen 212 in den beiden Reihen in jedem Speichermodul 210. Daher erfährt der Systemspeichercontroller 220 während einer Schreiboperation alle Speichervorrichtungen 212 als Last über die Datenleitungen 250, und während einer Leseoperation erfährt jede Speichervorrichtung 212 mehrere andere Speichervorrichtungen 212, sowie den Systemspeichercontroller 220, als Last über die Datenleitungen 250.
-
2B ist eine schematische Ansicht eines anderen herkömmlichen Speicheruntersystems 200' mit wenigstens einem Speichermodul mit vier Reihen 210' vom JEDEC-Standard (von denen aus Klarheitsgründen nur eines gezeigt ist), wobei jede Reihe eine Vielzahl von Speichervorrichtungen 212' aufweist. Das Register 230' empfängt die Vielzahl von Steuerleitungen 240' (die als einzige durchgezogene Linie gezeigt sind) von dem Systemspeichercontroller 220' und ist über Steuerleitungen 242' mit den Speichervorrichtungen 212' jeder Reihe des Speichermoduls 210' verbunden. Jede Datenleitung der Anordnung von Datenleitungen 250' (als gestrichelte Linien gezeigt) von dem Systemspeichercontroller 220' ist (z. B. durch vier Ausgangsverzweigungen) mit korrespondierenden Speichervorrichtungen 212' in den vier Reihen in jedem Speichermodul 210' verbunden. Daher erfährt, wie bei dem in 2A gezeigten Speichermodul mit zwei Reihen 210, während einer Schreiboperation der Systemspeichercontroller 220' alle Speichervorrichtungen 212' als Last über die Datenleitungen 250', und während einer Leseoperation erfährt jede Speichervorrichtung 212' mehrere andere Speichervorrichtungen 212' und den Systemspeichercontroller 220' als Last über die Datenleitungen 250'.
-
Für die Speichermodule 210, 210' haben die Steuerleitungen 242, 242' eine „fly-by” bzw. „Vorbeiflug”-Konfiguration. Bei einer solchen Konfiguration werden Steuersignale entlang der Steuerleitungen 242, 242' (zum Beispiel in einer Einpfad-Verkettung) von dem Register 230, 230' zu den Speichervorrichtungen 212, 212' einer gegebenen Reihe gesendet. Diese Steuersignale erreichen jede Speichervorrichtung 212, 212' der Reihe sequenziell, wobei die Steuersignale zuerst die Speichervorrichtung 212, 212' erreichen, die die kürzeste Steuerleitung 242, 242' hat, dann die Speichervorrichtung 212, 212' erreichen, die die nächstkurze Steuerleitung 242, 242' hat, und so weiter. Beispielsweise kann ein Steuersignal die Speichervorrichtung 212, 212', die die längste Steuerleitung 242, 242' hat, einen beträchtlichen Zeitraum später erreichen, als dasselbe Steuersignal die Speichervorrichtung 212, 212', die die kürzeste Steuerleitung 242, 242' hat, erreicht. Für einen Synchronbetrieb haben die Speicheruntersysteme 200, 200' die Datenleitungen 250, 250' derart konfiguriert, dass die Zeitverzögerungen der verschiedenen Datensignale zwischen dem Speichercontroller 220, 220' und den bestimmten Speichervorrichtungen 212, 212' im Wesentlichen so zugeschnitten sind, dass die Datensignale und die Steuersignale die bestimmte Speichervorrichtung 212, 212' so erreichen, dass der Betrieb des Speichermoduls 210, 210' mit dem Systembus des Computersystems synchronisiert ist. Solche „Vorbeiflug”-Konfigurationen sind so beschrieben, dass sie im „local sync” bzw. lokal synchron arbeiten, während sie „global async” bzw. global asynchron sind.
-
Für solche „Vorbeiflug”-Konfigurationen ist der Speichercontroller 220, 220' der 2A und 2B komplizierter als der Speichercontroller 120, 120' der 1A und 1B, weil der Speichercontroller 220, 220' den Zeitverzögerungen zwischen den verschiedenen Speichervorrichtungen 212, 212' Rechnung trägt und die Zeitsteuerung für diese Signale für den Synchronbetrieb entsprechend anpasst. Bei einigen Situationen ist jedoch die Taktzykluszeit gleich oder geringer als die Zeitdifferenz (z. B. ca. 900 Pikosekunden) zwischen den Steuersignalen, die die Speichervorrichtung 212, 212', die die längste Steuerleitung 242, 242' hat, und die Speichervorrichtung 212, 212', die die kürzeste Steuerleitung 242, 242' hat, erreichen. Bei solchen Situationen ist kein Synchronbetrieb erzielbar. Somit stellt die Zeitdifferenz zwischen den Steuersignalen, die die Speichervorrichtungen 212, 212' an den Extremen der Steuerleitungen 242, 242' erreichen, eine Begrenzung für die Taktgeschwindigkeit dar, mit der das Speichermodul 210, 210' betrieben werden kann. Diese Zeitdifferenzen, die mehr als einen Taktzyklus betragen können, schränken die Betriebsgeschwindigkeit und die Leistung des Speichermoduls ein. Außerdem leiden, wie bei den Speicheruntersystemen 100, 100' der 1A und 1B, die „Vorbeiflug”-Speichersysteme 200, 200' der 2A und 2B an großen Lasten, die zu langsameren Taktgeschwindigkeiten führen.
-
Ein jüngster Vorschlag für die „Vorbeiflug”-Konfigurationen ist, einen Speicherpuffer bereitzustellen, der sowohl die Steuersignale als auch die Datensignale bearbeitet. Die 2C und 2D zeigen schematisch ein herkömmliches Speichermodul mit zwei Reihen 310 bzw. ein Speichermodul mit vier Reihen 310', die jeweils einen Speicherpuffer 330, 330' aufweisen. Die Steuerleitungen 340, 340' stellen Kanäle für Steuersignale von dem Speicherpuffer 330, 330' zu den Speichervorrichtungen 312, 312' bereit, und die Steuerleitungen 342, 342' stellen Kanäle für Steuersignale von dem Speicherpuffer 330, 330' zu den Speichervorrichtungen 312, 312' bereit. Die Vielzahl von Datenleitungen 350, 350' (die aus Gründen der Klarheit als eine gestrichelte Linie gezeigt sind) stellen Kanäle für Datensignale von dem Speichercontroller 320, 320' zu dem Speicherpuffer 330, 330' bereit, und Datenleitungen (die aus Gründen der Klarheit nicht gezeigt sind) an dem Speichermodul 310, 310' stellen Kanäle für Datensignale von dem Speichercontroller 320, 320' zu den Speichervorrichtungen 312, 312' bereit.
-
Die Konfigurationen der 2C und 2D zielen darauf ab, dass sowohl die Datensignale als auch die Steuersignale an den Speicherpuffer 330, 330' gehen. Solche Konfigurationen haben jedoch signifikante Nachteile. Um die Datensignale an die verschiedenen Speichervorrichtungen 312, 312' zu senden, weist das Speichermodul 310, 310' eine extrem große Anzahl von Datenleitungen (die aus Gründen der Klarheit nicht gezeigt sind) auf, die den Speicherpuffer 330, 330' mit den Speichervorrichtungen 312, 312' verbinden. Unter bestimmten Umständen ist zum Beispiel der Speicherpuffer 330, 330' für ein LRDIMM eine 628-Pin-Vorrichtung, die extrem groß ist. Außerdem ist die Logistik zum Abstimmen der Zeitverzögerungen dieser vielen Datenleitungen kompliziert oder schwierig, um die gewünschte Zeitsteuerung von Datensignalen von dem Speicherpuffer 330, 330' an die Speichervorrichtungen 312, 312' bereitzustellen. Das Speichermodul 310, 310' verwendet auch signifikante Modifizierungen des Speichercontrollers 320, 320', weil der Speicherpuffer 330, 330' einen Teil der Steuerung der Datensignal-Zeitsteuerung, die herkömmliche Speichercontroller haben, übernimmt. Ebenso können die Speichermodule 310, 310' der 2C und 2D, aufgrund der langen „Vorbeiflug”-Zeiten im Vergleich zu den gewünschten Taktfrequenzen, nur im asynchronen Modus und nicht im synchronen Modus arbeiten. Für eine „Vorbeiflug”-Verzögerung von beispielsweise 1 Nanosekunde besteht, wenn die Datenrate 1 Gb/Sekunde ist, die Möglichkeit von Kollisionen auf den Datenleitungen während einer Lese-/Schreib-Wende. Um solche Kollisionen zu bekämpfen, kann die Datenrate verlangsamt werden oder „tote” Zyklen können eingeführt werden. Das Speichermodul 310, 310' kann als Einzeleinheit nicht im synchronen Modus betrieben werden, arbeitet jedoch lokal synchron, global (DIMM-Ebene) asynchron.
-
3A zeigt schematisch ein beispielhaftes Speicheruntersystem 400 mit lastreduzierten Speichermodulen 402 gemäß bestimmter vorliegend beschriebener Ausführungsformen. 3B zeigt schematisch ein anderes beispielhaftes Speicheruntersystem 400' mit lastreduzierten Speichermodulen 402' gemäß bestimmter vorliegend beschriebener Ausführungsformen. 3C zeigt schematisch einen beispielhaften Aufbau der Speichervorrichtungen 412', der Datenübertragungsschaltungen 416' und der Steuerschaltung 430' eines Speichermoduls 402' gemäß bestimmter vorliegend beschriebener Ausführungsformen. 3D ist eine Abbildung eines beispielhaften Speicheruntersystems gemäß bestimmter vorliegend beschriebener Ausführungsformen. In den 3A bis 3C sind Steuerleitungen (z. B. die Adress- und Steuerleitungen 440, 440', die den Systemspeichercontroller 420, 420' mit den Speichermodulen 410, 410' verbinden) als gestrichelte Linien gezeigt, Datenleitungen (z. B. die Datenleitungen 450, 450', die den Systemspeichercontroller 420, 420' mit den Speichermodulen 410, 410' verbinden) sind als durchgezogene Linien gezeigt, und in den 3A und 3B sind Eingangs-/Ausgangsverbindungen als schwarze Punkte dargestellt. Bei bestimmten Ausführungsformen sind, wie in den 3A bis 3C schematisch dargestellt ist, die Adress- und Steuerleitungen 440, 440', die den Systemspeichercontroller 420, 420' mit dem Speichermodul 410, 410' (z. B. mit der Steuerschaltung 430, 430') verbinden, von den Datenleitungen 450, 450', die den Systemspeichercontroller 420, 420' mit dem Speichermodul 410, 410' (z. B. mit den Datenübertragungsschaltungen 416, 416') verbinden, getrennt. Bei bestimmten Ausführungsformen ist das Speicheruntersystem 400, 400' zum Beispiel dazu ausgelegt, höhere Geschwindigkeit und höhere Speicherdichte mit geringerer Verlustleistung im Vergleich zu herkömmlichen Speicheruntersystemen zu liefern. In der folgenden Erläuterung sollten Aspekte des beispielhaften Untersystems 400 und korrespondierender Komponenten (z. B. Speichermodule 402, Speichervorrichtungen 412A, 412B, 412C, 412D, Datenübertragungsschaltungen 416, Steuerschaltung 430) und des beispielhaften Untersystems 400' und korrespondierender Komponenten (z. B. Speichermodule 402', Speichervorrichtungen 412'A 1, 412'A 2, 412'B 1, 412'B 2, 412'C 1, 412'C 2, 412'D 1, 412'D 2, Datenübertragungsschaltungen 416', Steuerschaltung 430') so verstanden werden, dass sie auch für bestimmte andere Ausführungsformen zutreffen.
-
Wie in den 3A und 3B schematisch dargestellt ist, weist das beispielhafte Speichermodul 402, 402' wenigstens eine gedruckte Leiterplatte 410, 410' und eine Vielzahl von Speichervorrichtungen 412, 412' auf, die mechanisch mit der wenigstens einen gedruckten Leiterplatte 410, 410' verbunden sind. Das Speichermodul 402, 402' weist des Weiteren eine Steuerschaltung 430, 430' auf, die mechanisch mit der wenigstens einen gedruckten Leiterplatte 410, 410' verbunden ist. Die Steuerschaltung 430, 430' ist dazu konfigurierbar, Steuersignale von dem Systemspeichercontroller 420, 420' zu empfangen und Modulsteuersignale an die Vielzahl von Speichervorrichtungen 412, 412' zu übertragen. Das Speichermodul 402, 402' weist des Weiteren eine Vielzahl von Datenübertragungsschaltungen 416, 416' auf, die mechanisch mit der wenigstens einen gedruckten Leiterplatte 410, 410' verbunden und an entsprechenden Positionen bezüglich der wenigstens einen gedruckten Leiterplatte 410, 410' verteilt sind. Die Vielzahl von Datenübertragungsschaltungen 416, 416' sind dazu konfigurierbar, betriebsbereit mit dem Systemspeichercontroller 420, 420' verbunden zu werden und dazu konfigurierbar, Modulsteuersignale von der Steuerschaltung 430, 430' zu empfangen. Wenigstens eine erste Datenübertragungsschaltung der Vielzahl von Datenübertragungsschaltungen 416, 416' ist betriebsbereit mit wenigstens zwei Speichervorrichtungen der Vielzahl von Speichervorrichtungen 412, 412' verbunden. Wenigstens eine zweite Datenübertragungsschaltung der Vielzahl von Datenübertragungsschaltungen 416, 416' ist betriebsbereit mit wenigstens zwei Speichervorrichtungen der Vielzahl von Speichervorrichtungen 412, 412' verbunden. Die wenigstens eine erste Datenübertragungsschaltung ist dazu konfigurierbar, auf die Modulsteuersignale anzusprechen, indem sie Datenübertragung zwischen dem Systemspeichercontroller 420, 420' und wenigstens einer ausgewählten Speichervorrichtung der wenigstens zwei Speichervorrichtungen, die betriebsbereit mit der wenigstens einen ersten Datenübertragungsschaltung verbunden sind, selektiv zulässt oder verhindert. Die wenigstens eine zweite Datenübertragungsschaltung ist dazu konfigurierbar, auf die Modulsteuersignale anzusprechen, indem sie Datenübertragung zwischen dem Systemspeichercontroller 420, 420' und wenigstens einer ausgewählten Speichervorrichtung der wenigstens zwei Speichervorrichtungen, die betriebsbereit mit der wenigstens einen zweiten Datenübertragungsschaltung verbunden sind, selektiv zulässt oder verhindert.
-
Wie in den 3A und 3B gezeigt ist, ist das Speicheruntersystem 400, 400' dazu konfigurierbar, betriebsbereit mit einem Systemspeichercontroller 420, 420' eines in der Technik bekannten Typs (z. B. Intel Nehalem EP, EX Chipsätze; AMD Opteron Chipsatz) verbunden zu werden. Das Speicheruntersystem 400, 400' weist typischerweise ein oder mehrere Speichermodule 402, 402', wie zum Beispiel DIMMs oder RDIMMs, auf, von denen zusätzliche Details aus Gründen der Klarheit nur für eines gezeigt sind. Verschiedene Arten von Speichermodulen 402, 402' sind mit vorliegend beschriebenen Ausführungsformen kompatibel. Beispielsweise sind Speichermodule, die Speicherkapazitäten von 512 MB, 1 GB, 2 GB, 4 GB, 8 GB sowie andere Kapazitäten haben, mit vorliegend beschriebenen Ausführungsformen kompatibel. Außerdem sind Speichermodule mit Breiten von 4 Bytes, 8 Bytes, 9 Bytes, 16 Bytes, 32 Bytes oder 32 Bits, 64 Bits, 72 Bits, 128 Bits, 256 Bits sowie anderen Breiten (in Bytes oder in Bits) mit vorliegend beschriebenen Ausführungsformen kompatibel. Des Weiteren weisen Speichermodule 420, 420', die mit vorliegend beschriebenen Ausführungsformen kompatibel sind, Single In-Line Memory Modules (SIMMs) bzw. einreihige Speicherbausteine, Dual In-Line Memory Modules (DIMMs) bzw. doppelreihige Speicherbausteine, Small-Outline DIMMs (SO-DIMMs) bzw. DIMMs mit kleinem Grundriss, Unbuffered DIMMs (UDIMMs) bzw. DIMMs ohne Puffer, Registered DIMMs (RDIMMs) bzw. registrierte DIMMs, Fully-Buffered DIMMs (FBDIMMs) bzw. voll gepufferte DIMMS, Mini-DIMMs und Micro-DIMMs auf.
-
Das eine oder die mehreren Speichermodule 402, 402' weist/weisen eine oder mehrere gedruckte Leiterplatten bzw. Printed Circuit Boards (PCB) 410, 410' auf, die in einem vertikalen Stapel (wie gezeigt) oder in einer Rücken-an-Rücken-Anordnung angeordnet sein können. Jedes Speichermodul 402, 402' weist bei bestimmten Ausführungsformen eine einzige PCB 410, 410' auf, während bei bestimmten anderen Ausführungsformen jedes des einen oder der mehreren Speichermodule 402, 402' mehrere PCBs 410, 410' aufweist. Bei einigen Ausführungsformen sind die PCBs 410, 410' in (nicht gezeigten) Modulschlitzen des Computersystems anbringbar. Eine PCB 410, 410' bestimmter derartiger Ausführungsformen hat wenigstens einen Randstecker (nicht gezeigt), der eine Vielzahl elektrischer Kontakte aufweist, die an einem Rand der PCB 410, 410' positioniert und dazu konfiguriert sind, lösbar mit korrespondierenden Kontakten eines Computersystem-Sockels verbunden zu werden, um elektrische Leitfähigkeit zwischen dem Systemspeichercontroller 420, 420' und den verschiedenen Komponenten der Speichermodule 402, 401' auf den PCBs 410, 410' bereitzustellen.
-
Wenigstens ein Speichermodul 402, 402' weist eine Vielzahl von Speichervorrichtungen 412, 412' (wie zum Beispiel DRAMs oder SDRAMs) auf. Die Speichervorrichtungen 412, 412' des Speichermoduls 402, 402' können vorteilhaft in einer Vielzahl von Reihen angeordnet sein. Speichervorrichtungen 412, 412', die mit vorliegend beschriebenen Ausführungsformen kompatibel sind, umfassen, sind jedoch nicht beschränkt auf, Random Access Memory (RAM) bzw. Speicher mit wahlfreiem Zugriff, Dynamic Random Access Memory (DRAM) bzw. dynamische Speicher mit wahlfreiem Zugriff, Synchronous DRAM (SDRAM) bzw. synchrone DRAM und Double-Data-Rate DRAM bzw. Doppeldatenrate-DRAM (z. B. DDR, DDR2, DDR3, etc.). Außerdem sind Speichervorrichtungen 412, 412', die Bitbreiten von 4, 8, 16, 32 sowie andere Bitbreiten haben, mit vorliegend beschriebenen Ausführungsformen kompatibel. Speichervorrichtungen 412, 412', die mit vorliegend beschriebenen Ausführungsformen kompatibel sind, haben eine Konfektionierung, die Thin Small-Outline Package (TSOP) bzw. dünnes Package mit kleinem Grundriss, Ball-Grid-Array (BGA) bzw. Kugelgitteranordnung, Fine-Pitch BGA (FBGA) bzw. Kugelgitteranordnung mit feinem Rastermaß, Micro-BGA (μBGA), Mini-BGA (mBGA) und Chip-Scale Packaging (CSP) bzw. Gehäuse in der Größenordnung des Chips einschließt, jedoch nicht hierauf beschränkt ist.
-
Bei bestimmten Ausführungsformen sind die Speichervorrichtungen 412, 412' des Speichermoduls 402, 402' in vier Reihen angeordnet, obwohl Ausführungsformen mit weniger als vier Reihen (z. B. eine Reihe, zwei Reihen, drei Reihen) oder mehr als vier Reihen (z. B. 6 Reihen, 8 Reihen) pro Speichermodul 402, 402' verwendet werden können. Bei bestimmten Ausführungsformen weist jede Reihe acht oder neun Speichermodule auf, während bei bestimmten anderen Ausführungsformen andere Anzahlen von Speichermodulen pro Reihe ebenfalls verwendet werden können. Bei bestimmten Ausführungsformen, wie schematisch in 3A gezeigt ist, sind die Speichervorrichtungen 412 in vier Reihen angeordnet, die mit A, B, C und D bezeichnet sind, und jede Reihe weist n Speichervorrichtungen auf. Zum Zweck der vorliegenden Offenbarung weist bei dem beispielhaften Speicheruntersystem 400 von 3A die Reihe A Speichervorrichtungen 412A 1, 412A 2, ..., 412A n auf, die Reihe B weist Speichervorrichtungen 412B 1, 412B 2, ..., 412B n auf, die Reihe C weist Speichervorrichtungen 412C 1, 412C 2, ..., 412C n auf, und die Reihe D weist Speichervorrichtungen 412D 1, 412D 2, ..., 412D n auf. Zum Zweck der vorliegenden Offenbarung weist bei dem beispielhaften Speicheruntersystem 400' von 3B die Reihe A Speichervorrichtungen 412'A 1, 412'A 2, ..., 412'A n auf, die Reihe B weist Speichervorrichtungen 412'B 1, 412'B 2, ..., 412'B n auf, die Reihe C weist Speichervorrichtungen 412'C 1, 412'C 2, ..., 412'C n auf, und die Reihe D weist Speichervorrichtungen 412'D 1, 412'D 2, ..., 412'D n auf.
-
Bei bestimmten Ausführungsformen weist wenigstens ein Speichermodul 402, 402' eine oder mehrere elektrische Komponenten (nicht gezeigt) auf, die an der PCB 410, 410', in der PCB 410, 410' oder sowohl an als auch in der PCT 410, 410' angebracht sein können, und die betriebsbereit miteinander und mit der Vielzahl von Speichervorrichtungen 412, 412' verbunden sind. Die elektrischen Komponenten können zum Beispiel oberflächenmontiert, in einer Durchgangsbohrung montiert, zwischen Schichten der PCB 410, 410' eingebettet oder „begraben” sein, oder anderweitig mit der PCB 410, 410' verbunden sein. Diese elektrischen Komponenten können einschließen, sind jedoch nicht beschränkt auf, elektrische Leitungen, Widerstände, Kondensatoren, Induktoren, Transistoren, Puffer, Register, logische Elemente oder andere Schaltungselemente. Bei bestimmten Ausführungsformen sind wenigstens einige dieser elektrischen Komponenten diskret, während bei anderen bestimmten Ausführungsformen wenigstens einige dieser elektrischen Komponenten Bestandteile einer oder mehrere integrierter Schaltungen sind.
-
Bei bestimmten Ausführungsformen weist wenigstens ein Speichermodul 402, 402' eine Steuerschaltung 430, 430' auf, die dazu konfiguriert ist, betriebsbereit mit dem Systemspeichercontroller 420, 420' und mit den Speichervorrichtungen 412, 412' des Speichermoduls 402, 402' (z. B. über die Leitungen 442, 442') verbunden zu werden. Bei bestimmten Ausführungsformen kann die Steuerschaltung 430, 430' eine oder mehrere Funktionsvorrichtungen aufweisen, zum Beispiel ein Programmable-Logic Device (PLD) bzw. eine programmierbare logische Schaltung, eine Application-Specific Integrated Circuit (ASIC) bzw. eine anwendungsspezifische integrierte Schaltung, ein Field-Programmable Gate Array (FPGA) bzw. eine im Feld programmierbare Gatter-Anordnung, eine auf die Kundenbedürfnisse zugeschnittene Halbleitervorrichtung oder ein Complex Programmable-Logic Device (CPLD) bzw. eine komplexe programmierbare logische Schaltung. Bei bestimmten Ausführungsformen kann die Steuerschaltung 430, 430' eine oder mehrere benutzerdefinierte Vorrichtungen aufweisen. Bei bestimmten Ausführungsformen kann die Steuerschaltung 430, 430' verschiedene diskrete elektrische Elemente aufweisen, während bei anderen Ausführungsformen die Steuerschaltung 430, 430' eine oder mehrere integrierte Schaltungen aufweisen kann.
-
Die Steuerschaltung
430,
430' bestimmter Ausführungsformen ist dazu konfigurierbar, betriebsbereit mit Steuerleitungen
440,
440' verbunden zu werden, um Steuersignale (z. B. Bankadresssignale, Reihenadresssignale, Spaltenadresssignale, Adressabtastsignale und Reihenadress- oder Chip-Auswahlsignale) von dem Systemspeichercontroller
420,
420' zu empfangen. Die Steuerschaltung
430,
430' bestimmter Ausführungsformen registriert Signale von den Steuerleitungen
440,
440' auf eine Art und Weise, die hinsichtlich der Funktion mit dem Adressregister eines herkömmlichen RDIMM vergleichbar ist. Die registrierten Steuerleitungen
440,
440' sind ebenfalls betriebsbereit mit den Speichervorrichtungen
412,
412' verbunden. Außerdem liefert die Steuerschaltung
430,
430' Steuersignale für die Datenübertragungsschaltungen
416,
416' (z. B. über die Leitungen
432,
432'), wie unten im Einzelnen beschrieben wird. Die Steuersignale geben zum Beispiel die Richtung des Datenflusses an, d. h. zu oder von den Speichervorrichtungen
412,
412'. Die Steuerschaltung
430,
430' kann zusätzliche Chipauswahlsignale oder Ausgangsfreigabesignale basierend auf Adressdecodierung erzeugen. Beispiele von Schaltungen, die als Steuerschaltung
430,
430' dienen können, sind im Einzelnen in den
US-Patenten Nr. 7,289,386 und
7,532,537 beschrieben, die jeweils vollumfänglich unter Bezugnahme hier aufgenommen sind.
-
Bei bestimmten Ausführungsformen weist wenigstens ein Speichermodul 402, 402' eine Vielzahl von Datenübertragungsschaltungen 416, 416' auf, die an der einen oder den mehreren PCBs 410, 410', in der einen oder den mehreren PCBs 410, 410' oder sowohl an als auch in der einen oder den mehreren PCBs 410, 410' angebracht sind. Die Vielzahl von Datenübertragungsschaltungen 416, 416' sind betriebsbereit mit der Steuerschaltung 430, 430' (z. B. über die Leitungen 432, 432') verbunden und dazu konfiguriert, betriebsbereit mit dem Systemspeichercontroller 420, 420' (z. B. über die Datenleitungen 450, 450') verbunden zu werden, nachdem das Speichermodul 402, 402' betriebsbereit mit dem Computersystem verbunden worden ist. Bei bestimmten Ausführungsformen können diese Datenübertragungsschaltungen 416, 416' als „lastreduzierende Schaltungen” oder „lastreduzierende Schaltkreise” bezeichnet werden. In der vorliegenden Verwendung beziehen sich die Ausdrücke „lastreduzierend” oder „lastreduzierendes Schalten” auf die Verwendung der Datenübertragungsschaltungen 416, 416', um die von dem Systemspeichercontroller 420, 420' erfahrene Last zu reduzieren, wenn er betriebsbereit mit dem Speichermodul 402, 402' verbunden ist. Bei bestimmten Ausführungsformen, wie schematisch in 3A gezeigt ist, weist das Speichermodul 402 n Datenübertragungsschaltungen 416 auf, wobei n die Anzahl von Speichervorrichtungen pro Reihe des Speichermoduls 410 ist. Wie zum Beispiel in 3A schematisch gezeigt ist, sind die Speichervorrichtungen 412 des Speichermoduls 410 in vier Reihen von jeweils n Speichervorrichtungen angeordnet, und das Speichermodul 410 weist wenigstens eine erste Datenüberragungsschaltung 416 1 und eine zweite Datenübertragungsschaltung 416 2 auf. Die erste Datenübertragungsschaltung 416 1 bestimmter derartiger Ausführungsformen ist betriebsbereit mit wenigstens einer Speichervorrichtung 412 jeder Reihe verbunden (z. B. den Speichervorrichtungen 412A 1, 412B 1, 412C 1, 412D 1). Die zweite Datenübertragungsschaltung 416 2 bestimmter derartiger Ausführungsformen ist betriebsbereit mit wenigstens einer Speichervorrichtung 412 jeder Reihe verbunden (z. B. den Speichervorrichtungen 412A 2, 412B 2, 412C 2, 412D 2). Bei bestimmten Ausführungsformen, wie in 3B schematisch gezeigt ist, weist das Speichermodul 402' n/2 Datenübertragungsschaltungen 416' auf, wobei n die Anzahl von Speichervorrichtungen pro Reihe des Speichermoduls 410' ist. Wie zum Beispiel schematisch in 3B gezeigt ist, sind die Speichervorrichtungen 412' des Speichermoduls 410' in vier Reihen von jeweils n Speichervorrichtungen angeordnet, und das Speichermodul 410' weist wenigstens eine erste Datenübertragungsschaltung 416' 1 und eine zweite Datenübertragungsschaltung 416' 2 auf. Die erste Datenübertragungsschaltung 416' 1 bestimmter derartiger Ausführungsformen ist betriebsbereit mit wenigstens zwei Speichervorrichtungen 412' jeder Reihe verbunden (z. B. den Speichervorrichtungen 412'A 1, 412'A 2, 412'B 1, 412'B 2, 412'C 1, 412'C 2, 412'D 1, 412'D 2). Die zweite Datenübertragungsschaltung 416' 2 bestimmter derartiger Ausführungsformen ist betriebsbereit mit wenigstens zwei Speichervorrichtungen 412' jeder Reihe verbunden (z. B. den Speichervorrichtungen 412'A 3, 412'A 4, 412'B 3, 412'B 4, 412'C 3, 412'C 4, 412'D 3, 412'D 4).
-
Bei bestimmten Ausführungsformen schaltet wenigstens eine Datenübertragungsschaltung 416, 416' selektiv zwischen zwei oder mehr Speichervorrichtungen 412, 412', um wenigstens eine ausgewählte Speichervorrichtung 412, 412' mit dem Systemspeichercontroller 420, 420' zu verbinden (z. B. ist die Datenübertragungsschaltung 416, 416' dazu konfigurierbar, auf Modulsteuersignale anzusprechen, indem sie Datenübertragung zwischen dem Systemspeichercontroller 420, 420' und wenigstens einer ausgewählten Speichervorrichtung 420, 420' selektiv zulässt oder verhindert). Bei bestimmten derartigen Ausführungsformen verbindet die wenigstens eine Datenübertragungsschaltung 416, 416' selektiv zwei ausgewählte Speichervorrichtungen betriebsbereit mit dem Systemspeichercontroller 420, 420'. Wie zum Beispiel schematisch in 3A gezeigt ist, ist die erste Datenübertragungsschaltung 416 1 dazu konfigurierbar, auf Modulsteuersignale anzusprechen, indem sie Datenübertragung zwischen dem Systemspeichercontroller 420 und entweder den ausgewählten Speichervorrichtungen 412A 1 und 412C 1 oder den ausgewählten Speichervorrichtungen 412B 1 und 412D 1 selektiv zulässt oder verhindert, und die zweite Datenübertragungsschaltung 416 2 ist dazu konfigurierbar, auf Modulsteuersignale anzusprechen, indem sie Datenübertragung zwischen dem Systemspeichercontroller 420 und entweder den ausgewählten Speichervorrichtungen 412A 2 und 412C 2 oder den ausgewählten Speichervorrichtungen 412B 2 und 412D 2 selektiv zulässt oder verhindert. Umgekehrt sind bei einem herkömmlichen Speichermodul ohne die Datenübertragungsschaltungen 416 die zwei oder mehreren Speichervorrichtungen 412 (z. B. die Speichervorrichtungen 412A 1, 412B 1, 412C 1, 412D 1) gleichzeitig betriebsbereit mit dem Systemspeichercontroller 420 verbunden. Eine Datenübertragungsschaltung 416 bestimmter Ausführungsformen puffert bidirektional Datensignale zwischen dem Speichercontroller 420 und den Speichervorrichtungen 412 entsprechend der Datenübertragungsschaltung 416. Als anderes Beispiel ist, wie in 3B schematisch gezeigt ist, die erste Datenübertragungsschaltung 416' 1 dazu konfigurierbar, auf Modulsteuersignale anzusprechen, indem sie Datenübertragung zwischen dem Systemspeichercontroller 420' und entweder den ausgewählten Speichervorrichtungen 412'A 1 und 412'C 1 oder den ausgewählten Speichervorrichtungen 412'B 1 und 412'D 1 und entweder den ausgewählten Speichervorrichtungen 412'A 2 und 412'C 2 oder den ausgewählten Speichervorrichtungen 412'B 2 und 412'D 2 selektiv zulässt oder verhindert, und die zweite Datenübertragungsvorrichtung 416' 2 ist dazu konfigurierbar, auf Modulsteuersignale anzusprechen, indem sie Datenübertragung zwischen dem Systemspeichercontroller 420' und entweder den ausgewählten Speichervorrichtungen 412'A 3 und 412'C 3 oder den ausgewählten Speichervorrichtungen 412'B 3 und 412'D 3 und entweder den ausgewählten Speichervorrichtungen 412'A 4 und 412'C 4 oder den ausgewählten Speichervorrichtungen 412'B 4 und 412'D 4 selektiv zulässt oder verhindert.
-
Bei bestimmten Ausführungsformen sind zwei oder mehrere der Datenübertragungsschaltungen 416, 416' an entsprechenden Positionen, die voneinander getrennt sind, mechanisch mit der wenigstens PCB 410, 410' verbunden. Wie zum Beispiel schematisch in 3A dargestellt ist, befinden sich die erste Datenübertragungsschaltung 416 1 und die zweite Datenübertragungsschaltung 416 2 an entsprechenden Positionen, die voneinander getrennt sind (z. B. befindet sich das Package, das die erste Datenübertragungsschaltung 416 1 enthält, an einer Stelle, die von der Stelle des Package, das die zweite Datenübertragungsschaltung 416 2 enthält, beabstandet ist). Als weiteres Beispiel, wie schematisch in 3B dargestellt ist, befinden sich die erste Datenübertragungsschaltung 416 1 und die zweite Datenübertragungsschaltung 416 2 an entsprechenden Positionen, die voneinander getrennt sind (z. B. befindet sich das Package, das die erste Datenübertragungsschaltung 416 1 enthält, an einer Stelle, die von der Stelle des Package, das die zweite Datenübertragungsschaltung 416 2 enthält, beabstandet ist). Bei bestimmten derartigen Ausführungsformen sind zwei oder mehrere der Datenübertragungsschaltungen 416, 416' über eine Oberfläche der PCB 410, 410' des Speichermoduls 402, 402' verteilt. Bei bestimmten Ausführungsformen befinden sich die entsprechenden Positionen von zwei oder mehreren Datenübertragungsschaltungen 416, 416' (z. B. die erste Datenübertragungsschaltung 416 1 und die zweite Datenübertragungsschaltung 416 2 von 3A oder die erste Datenübertragungsschaltung 416' 1 und die zweite Datenübertragungsschaltung 416' 2 von 3B) entlang eines Rands 411, 411' der wenigstens einen PCB 410, 410', so dass eine Datenübertragungsschaltung 416, 416' im Wesentlichen zwischen dem Rand 411, 411' und wenigstens einigen der wenigstens zwei Speichervorrichtungen 412, 412' angeordnet ist, mit denen die Datenübertragungsschaltung 416, 416' betriebsbereit verbunden ist. Wie zum Beispiel schematisch in 3A gezeigt ist, befindet sich die erste Datenübertragungsschaltung 416 1 im Wesentlichen zwischen dem Rand 411 und den Speichervorrichtungen 412A 1, 412B 1, 412C 1, 412D 1, mit denen die erste Datenübertragungsschaltung 416 1 betriebsbereit verbunden ist, und die zweite Datenübertragungsschaltung 416 2 befindet sich im Wesentlichen zwischen dem Rand 411 und den Speichervorrichtungen 412A 2, 412B 2, 412C 2, 412D 2, mit denen die zweite Datenübertragungsschaltung 416 1 betriebsbereit verbunden ist. Als anderes Beispiel befindet sich, wie in 3B schematisch gezeigt ist, die erste Datenübertragungsschaltung 416' 1 im Wesentlichen zwischen dem Rand 411' und den Speichervorrichtungen 412'A 1, 412'A 2, 412'B 1, 412'B 2, 412'C 1, 412'C 2, 412'D 1, 412'D 2, mit denen die erste Datenübertragungsschaltung 416' 1 betriebsbereit verbunden ist, und die zweite Datenübertragungsschaltung 416' 2 befindet sich im Wesentlichen zwischen dem Rand 411' und den Speichervorrichtungen 412'A 3, 412'A 4, 412'B 3, 412'B 4, 412'C 3, 412'C 4, 412'D 3, 412'D 4, mit denen die zweite Datenübertragungsvorrichtung 416'2 betriebsbereit verbunden ist.
-
Die 3C und 3D zeigen die Positionierung der Datenübertragungsschaltungen 416' gemäß bestimmter vorliegend beschriebener Ausführungsformen. Bei bestimmten Ausführungsformen ist die Position wenigstens einer der Datenübertragungsschaltungen 416' im Allgemeinen mit einer oder mehreren der Speichervorrichtungen 412' ausgerichtet, mit denen die Datenübertragungsschaltung 416' betriebsbereit verbunden ist. Zum Beispiel können die eine oder mehreren der Datenübertragungsschaltungen 416' und die Speichervorrichtungen 412', mit denen sie betriebsbereit verbunden sind, im Allgemeinen entlang einer Linie positioniert sein, die im Wesentlichen senkrecht zu dem Rand 411' der PCB 410' ist. Bei bestimmten Ausführungsformen ist die Position wenigstens einer der Datenübertragungsschaltungen 416' im Allgemeinen von einer Linie versetzt, die durch die Positionen der einen oder mehreren der Speichervorrichtungen 412' definiert wird, mit denen die Datenübertragungsschaltung 416' betriebsbereit verbunden ist. Wie zum Beispiel in den 3C und 3D gezeigt ist, können die Speichervorrichtungen 412', die betriebsbereit mit einer Datenübertragungsschaltung 416' verbunden sind, entlang einer Linie positioniert sein, die im Wesentlichen senkrecht zu dem Rand 411' der PCB 410' ist, und die Datenübertragungsschaltung 416' kann in einer Richtung im Allgemeinen entlang des Rands 411' der PCB 410' im Allgemeinen von dieser Linie versetzt sein. Bei bestimmten derartigen Ausführungsformen haben die Datenübertragungsschaltungen 416' ausreichend geringe Weite und Breite (z. B. 2,5 mm mal 7,5 mm), um zwischen den Rand 411' und die korrespondierenden Speichervorrichtungen 412' zu passen, während die gewünschte Größe des Speichermoduls 400' beibehalten wird. Andere Positionen und Größen der separaten Datenübertragungsschaltungen 416' sind ebenso mit bestimmten vorliegend beschriebenen Ausführungsformen kompatibel. Bei bestimmten Ausführungsformen können zum Beispiel eine oder mehrere der Datenübertragungsschaltungen 416' zwischen zwei oder mehreren Speichervorrichtungen 412, 412' positioniert sein, oder können von einem Rand 411, 411' der PCB 410, 410' beabstandet sein, wobei sich eine oder mehrere Speichervorrichtungen 412, 412' zwischen dem Rand 411, 411' und der einen oder den mehreren Datenübertragungsschaltungen 416, 416' befinden.
-
Bei bestimmten Ausführungsformen weist die Datenübertragungsschaltung 416 einen byteweisen Puffer auf oder fungiert als solcher. Bei bestimmten derartigen Ausführungsformen hat jede der einen oder der mehreren Datenübertragungsschaltungen 416 dieselbe Bitbreite wie die zugehörigen Speichervorrichtungen 412 pro Reihe, mit denen die Datenübertragungsschaltung 416 betriebsbereit verbunden ist. Wie zum Beispiel schematisch in 4A (die im Allgemeinen 3A entspricht) gezeigt ist, kann die Datenübertragungsschaltung 416 betriebsbereit mit einer einzigen Speichervorrichtung 412 pro Reihe verbunden sein, und sowohl die Datenübertragungsschaltung 416 als auch die Speichervorrichtung 412 pro Reihe, mit der die Datenübertragungsschaltung 416 betriebsbereit verbunden ist, können jeweils dieselbe Bitbreite haben (z. B. 4 Bits, 8 Bits oder 16 Bits). Die Datenübertragungsschaltung 416 von 4A hat eine Bitbreite von 8 Bits und empfängt die Datenbits 0–7 von dem Systemspeichercontroller 420 und sendet die Datenbits 0–7 selektiv an ausgewählte Speichervorrichtungen 412A, 412B, 412C, 412D im Ansprechen auf die Modulsteuersignale von der Steuerschaltung 430. Ähnlich können die Datenübertragungsschaltungen 416' bestimmter Ausführungsformen als byteweiser Puffer für zugehörige Speichervorrichtungen 412'A, 412'B, 412'C, 412'D fungieren, mit denen die Datenübertragungsschaltungen 416' betriebsbereit verbunden sind, im Ansprechen auf die Modulsteuersignale von der Steuerschaltung 430'.
-
Bei bestimmten anderen Ausführungsformen können sich die Bitbreiten einer oder mehrerer der Speichervorrichtungen 412 von den Bitbreiten der einen oder der mehreren Datenübertragungsschaltungen 416, mit denen sie verbunden sind, unterscheiden. Wie zum Beispiel schematisch in 4B (die im Allgemeinen 3B entspricht) gezeigt ist, können die Datenübertragungsschaltungen 416 eine erste Bitbreite (z. B. eine Bitbreite von 8 Bits) haben, und die Speichervorrichtungen 412 können eine zweite Bitbreite haben, die geringer ist, als die erste Bitbreite (zum Beispiel die Hälfte der ersten Bitbreite oder eine Bitbreite von 4 Bits), wobei jede Datenübertragungsschaltung 416 betriebsbereit mit mehreren Speichervorrichtungen 412 pro Reihe verbunden ist (zum Beispiel zwei Speichervorrichtungen 412 in jeder Reihe). Bei bestimmten derartigen Ausführungsformen ist die gesamte Bitbreite der mehreren Speichervorrichtungen 412 pro Reihe, die mit der Schaltung 416 verbunden sind, gleich der Bitbreite der Schaltung 416 (zum Beispiel 4 Bits, 8 Bits oder 16 Bits). Die Datenübertragungsschaltung 416 von 4B hat eine gesamte Bitbreite von 8 Bits und empfängt die Datenbits 0–7 von dem Systemspeichercontroller 420 und sendet die Datenbits 0–3 selektiv an eine erste Speichervorrichtung 412A 1, 412B 1, 412C 1, 412D 1 und die Datenbits 4–7 an eine zweite Speichervorrichtung 412A 2, 412B 2, 412C 2, 412D 2 im Ansprechen auf die Modulsteuersignale von der Steuerschaltung 430. Ähnlich können die Datenübertragungsschaltungen 416' bestimmter Ausführungsformen mit anderen Bitbreiten arbeiten als denjenigen der zugehörigen Speichervorrichtungen 412'A 1, 412'A 2, 412'B 1, 412'B 2, 412'C 1, 412'C 2, 412'D 1, 412'D 2, mit denen die Datenübertragungsschaltungen 416' betriebsbereit verbunden sind, im Ansprechen auf die Modulsteuersignale von der Steuerschaltung 430'.
-
Bei bestimmten Ausführungsformen sind, indem die Datenübertragungsschaltung 416 einen „byteweisen” Puffer aufweist oder als solcher dient (z. B. wie in den Beispielen der 4A und 4B gezeigt), die Datensignale mit dem Synch-Takt synchron. Außerdem kann für bestimmte derartige Ausführungsformen, bei denen das Speichermodul 400 Veränderungen einer oder mehrerer Eigenschaften (zum Beispiel Temperatur, Spannung, Herstellungsparameter) erfährt, das Speichermodul 400 dazu ausgelegt sein, die Schaltungen einer geringeren Anzahl von Komponenten im Vergleich mit anderen Konfigurationen, die kein byteweises Puffer verwenden (z. B. vier Reihen von 8-Bit Speichervorrichtungen haben und zwei 4-Bit Puffer haben), zu optimieren. Bei bestimmten Ausführungsformen werden die Datenübertragungsschaltungen 416 für Bit-Slicing bzw. Bit-Schneiden verwendet, bei dem die Daten in Abschnitten definiert werden. Beispielsweise können, anstatt Daten als 64-Bit-weit zu definieren (z. B. [63:0]), können die Daten in 16-Bit-weiten Abschnitten definiert oder geschnitten werden (z. B. [15:0], [31:16], [47:32], [63:48]). Bei bestimmten derartigen Ausführungsformen sind nicht alle Bits zusammen gruppiert und nicht alle Bits erzeugen dasselbe Verhalten (z. B. logisch und/oder zeitweise).
-
Eine oder mehrere der Datenübertragungsschaltungen 416 ist, gemäß einer Ausführungsform der vorliegenden Offenbarung, betriebsbereit mit einer oder mehreren korrespondierenden der Datenleitungen 452 verbunden, die mit einer oder mehreren Speichervorrichtungen 412 in jeder der Reihen A, B, C, D verbunden sind. Beispielsweise ist bei bestimmten Ausführungsformen jede Datenübertragungsschaltung 416 mit einer oder mehreren Datenleitungen 452 verbunden, die mit einer korrespondierenden Speichervorrichtung in jeder der Reihen verbunden sind (zum Beispiel Speichervorrichtungen 204A, 204B, 204C und 204D, wie in 3A gezeigt. Jede Datenleitung 450, 452 überträgt somit Daten vom Systemspeichercontroller 420 durch die Datenübertragungsschaltungen 416 an die Speichervorrichtungen 204A, 204B, 204C, 204D, die mit den Datenübertragungsschaltungen 416 verbunden sind. Die Datenübertragungsschaltungen 416 bestimmter Ausführungsformen können verwendet werden, um jedes Datenbit an den und von dem Speichercontroller 420 und an die und von den Speichervorrichtungen 412 zu treiben, anstatt dass der Speichercontroller 420 und die Speichervorrichtungen 412 jedes Datenbit direkt an den und von dem Speichercontroller 420 und an die und von den Speichervorrichtungen 412 treiben. Insbesondere ist, wie unten im Einzelnen beschrieben wird, eine Seite jeder Datenübertragungsschaltung 416 bestimmter Ausführungsformen betriebsbereit mit einer Speichervorrichtung 412 in jeder Reihe verbunden (zum Beispiel über die Datenleitungen 452), während die andere Seite der Datenübertragungsschaltung 416 betriebsbereit mit der korrespondierenden Datenleitung 450 des Speichercontrollers 420 verbunden ist.
-
Um die von dem Systemspeichercontroller 420 erfahrenen Speichervorrichtungslasten zu reduzieren (zum Beispiel während einer Schreiboperation), ist die Datenübertragungsschaltung 416 bestimmter Ausführungsformen vorteilhaft dazu konfiguriert, von dem Systemspeichercontroller 420 als einzige Speicherlast erkannt zu werden. Dieses vorteilhafte Ergebnis wird bei bestimmten Ausführungsformen in gewünschter Weise erzielt, indem die Datenübertragungsschaltungen 416 verwendet werden, um nur die aktivierten Speichervorrichtungen 412 mit dem Speichercontroller 420 elektrisch zu verbinden (zum Beispiel die eine, zwei oder mehr Speichervorrichtungen 412, in welche Daten zu schreiben sind), und die anderen Speichervorrichtungen 412 von dem Speichercontroller 420 elektrisch zu isolieren (zum Beispiel die eine, zwei oder mehr Speichervorrichtungen 412, in welche keine Daten zu schreiben sind). Daher erfährt während einer Schreiboperation, bei der Daten in eine einzige Speichervorrichtung 412 in einer Reihe des Speichermoduls 400 zu schreiben sind, jedes Datenbit von dem Systemspeichercontroller 420 eine einzige Last von dem Speichermodul 400, präsentiert durch eine der Datenübertragungsschaltungen 416, anstatt gleichzeitig die Lasten aller vier Speichervorrichtungen 412A, 412B, 412C, 412D zu erfahren, mit denen die Datenübertragungsschaltung 416 betriebsbereit verbunden ist. Bei dem Beispiel von 3A erfährt während einer Schreiboperation, bei der Daten in zwei Speichervorrichtungen 412 in zwei Reihen zu schreiben sind (zum Beispiel die Speichervorrichtungen 412A und 412C oder die Speichervorrichtungen 412B und 412D), jedes Datenbit von dem Systemspeichercontroller 420 eine einzige Last von dem Speichermodul 402, die von der einen der Datenübertragungsschaltungen 416 präsentiert wird, anstatt gleichzeitig die Lasten aller vier Speichervorrichtungen 412A, 412B, 412C, 412D zu erfahren, mit denen die Datenübertragungsschaltung 416 betriebsbereit verbunden ist. Im Vergleich zu der DIMM-Konfiguration mit vier Reihen vom JEDEC-Standard (siehe 2A und 2B) kann das Speichersystem 402 bestimmter Ausführungsformen die Last auf den Systemspeichercontroller 420 um den Faktor vier reduzieren.
-
5 zeigt schematisch eine beispielhafte Datenübertragungsschaltung 416, die mit bestimmten vorliegend beschriebenen Ausführungsformen kompatibel ist. Bei einer Ausführungsform weist die Datenübertragungsschaltung 416 eine Steuerlogikschaltung 502 auf, die verwendet wird, um die verschiedenen Komponenten der Datenübertragungsschaltung 416 zu steuern, und die, neben anderen Komponenten, einen oder mehrere Puffer, einen oder mehrere Schalter und einen oder mehrere Multiplexer aufweisen kann. Die in 5 dargestellte Ausführungsform ist 1 Bit breit und schaltet eine einzige Datenleitung 518 zwischen dem Speichercontroller 402 und den Speichervorrichtungen 412. Bei anderen Ausführungsformen kann die Datenübertragungsschaltung 416 mehrere Bits breit sein, beispielsweise 8 Bits, und eine korrespondierende Anzahl von Datenleitungen 518 schalten. Bei einer Ausführungsform, die mehrere Bits breit ist, kann die Steuerlogikschaltung 502 über die mehreren Bits gemeinsam verwendet werden.
-
Als Teil des Isolierens der Speichervorrichtungen 412 von dem Systemspeichercontroller 420 gestatten bei einer Ausführungsform die Datenübertragungsschaltungen 416 das „Treiben” von Schreibdaten und das „Zusammenführen” von Lesedaten. Bei der in 5 gezeigten betriebsbereiten Ausführungsform werden bei einer Schreiboperation Daten, die in eine Datenübertragungsschaltung 416 eintreten, über eine Datenleitung 518 auf zwei Datenpfade getrieben, die mit Pfad A und Pfad B gekennzeichnet sind, vorzugsweise nachdem sie durch einen Schreibpuffer 503 hindurchgegangen sind. Die Reihen von Speichervorrichtungen 412 sind ebenso in zwei Gruppen aufgeteilt, wobei eine Gruppe zum Pfad A gehört und eine Gruppe zum Pfad B gehört. Wie in 3A gezeigt ist, befinden sich die Reihe A und die Reihe C in der ersten Gruppe und die Reihe B und die Reihe D in der zweiten Gruppe. Demgemäß sind die Speichervorrichtungen 412A, 412C der Reihe A und der Reihe C mit den Datenübertragungsschaltungen 416 durch einen ersten der beiden Datenpfade verbunden, und die Speichervorrichtungen 412B, 412D der Reihe B und der Reihe D sind mit den Datenübertragungsschaltungen 416 durch einen zweiten der beiden Datenpfade verbunden. Bei anderen Ausführungsformen kann das Treiben von Schreibdaten und das Zusammenführen von Lesedaten über mehr als zwei Datenpfade erfolgen.
-
Wie bekannt ist, ist Column Address Strobe(CAS)-Latenz bzw. Speicherlatenz eine Verzögerungszeit, die zwischen dem Moment, in dem der Speichercontroller 420 die Speichermodule 402 informiert, auf eine bestimmte Spalte in einer ausgewählten Reihe zuzugreifen, und dem Moment, in dem sich Daten für die oder von der bestimmten Spalte an den Ausgangspins der ausgewählten Reihe befinden, vergeht. Die Latenz kann vom Speichermodul verwendet werden, um die Operation der Datenübertragungsschaltungen 416 zu steuern. Während der Latenz laufen Adress- und Steuersignale von dem Speichercontroller 420 zu der Steuerschaltung 430, welche Steuerungen erzeugt, die an die Steuerlogikschaltung 502 (zum Beispiel über die Leitungen 432) gesendet werden, welche dann die Operation der Komponenten der Datenübertragungsschaltungen 416 steuert.
-
Für eine Schreiboperation stellt während der CAS-Latenz die Steuerschaltung 430 bei einer Ausführungsform Steuerfreigabesignale für die Steuerlogikschaltung 502 jeder Datenübertragungsschaltung 416 bereit, wonach die Steuerlogikschaltung 502 entweder Pfad A oder Pfad B auswählt, um die Daten zu leiten. Demgemäß wird, wenn die Steuerlogikschaltung 502 beispielsweise ein Signal „Freigabe A” empfängt, ein erster Tristate-Puffer 504 in Pfad A aktiviert und treibt den Datenwert aktiv an seinem Ausgang, während ein zweiter Tristate-Puffer 506 in Pfad B mit seinem Ausgang im Hochimpedanzzustand deaktiviert wird. In diesem Zustand gestattet die Datenübertragungsschaltung 416, dass die Daten entlang des Pfads A an ein erstes Endgerät Y1 geleitet werden, das mit der ersten Gruppe der Speichervorrichtungen 412, z. B. denjenigen in den Reihen A und C, verbunden ist und nur mit diesen kommuniziert. In ähnlicher Weise öffnet, wenn ein Signal „Freigabe B” empfangen wird, der erste Tristate 503 den Pfad A und der zweite Tristate 506 schließt den Pfad B, so dass die Daten an ein zweites Endgerät Y2 geleitet werden, das mit der zweiten Gruppe der Speichervorrichtungen 412, zum Beispiel denjenigen in den Reihen B und D, verbunden ist und nur mit diesen kommuniziert.
-
Für eine Leseoperation fungiert die Datenübertragungsschaltung 416 als Multiplexerschaltung. Bei der in 5 dargestellten Ausführungsform werden zum Beispiel Datensignale, die aus den Speichervorrichtungen 412 einer Reihe gelesen werden, an dem ersten oder zweiten Endgerät Y1, Y2 der Datenübertragungsschaltung 416 empfangen. Die Datensignale werden in einen Multiplexer 508 eingespeist, welcher eines auswählt, um es an seinen Ausgang zu routen. Die Steuerlogikschaltung 502 erzeugt ein Auswahlsignal, um das geeignete Datensignal auszuwählen, und das ausgewählte Datensignal wird entlang einer einzigen Datenleitung 518 an den Systemspeichercontroller 420 übertragen, vorzugsweise nachdem es durch einen Lesepuffer 509 hindurchgegangen ist. Der Lesepuffer 509 kann ein Tristate-Puffer sein, der während Leseoperationen durch die Steuerlogikschaltung 502 aktiviert wird. Bei einer anderen Ausführungsform können der Multiplexer 508 und der Lesepuffer 509 in einer Komponente kombiniert sein. Bei einer noch anderen Ausführungsform können die Operationen des Multiplexers 508 und des Lesepuffers 509 über zwei Tristate-Puffer aufgeteilt sein, einen, um den Wert von Y1 für die Datenleitung 518 freizugeben, und einen anderen, um den Wert von Y2 für die Datenleitung 518 freizugeben.
-
Die Datenübertragungsschaltungen 416 präsentieren auf den Datenleitungen 518 eine Last von dem Schreibpuffer 503 und dem Lesepuffer 509. Der Schreibpuffer 503 ist mit einem Eingangspuffer an einer der Speichervorrichtungen 412 vergleichbar, und der Lesepuffer 590 ist mit einem Ausgangspuffer an einer der Speichervorrichtungen 412 vergleichbar. Daher präsentieren die Datenübertragungsschaltungen 416 dem Speichercontroller 420 eine Last, die im Wesentlichen gleich mit der Last ist, die eine der Speichervorrichtungen 412 präsentieren würde. Ähnlich präsentieren die Datenübertragungsschaltungen 416 eine Last an den ersten und zweiten Endgeräten Y1, Y2 von dem Multiplexer 508 und dem ersten Tristate-Puffer 504 (an dem ersten Endgerät Y1) und dem zweiten Tristate-Puffer 508 (an dem zweiten Endgerät Y2). Der Multiplexer 508 ist hinsichtlich Ladens vergleichbar mit einem Eingangspuffer an dem Speichercontroller 420, und die ersten und zweiten Tristate-Puffer 504, 506 sind jeweils mit einem Ausgangspuffer an dem Speichercontroller 420 vergleichbar. Daher präsentieren die Datenübertragungsschaltungen 416 den Speichervorrichtungen 412 eine Last, die im Wesentlichen gleich mit der Last ist, die der Speichercontroller 420 präsentieren würde.
-
Außerdem arbeiten die Datenübertragungsschaltungen 416 so, dass sie die Qualität der Datensignale verbessern, die zwischen dem Speichercontroller 420 und den Speichervorrichtungen 412 laufen. Ohne die Datenübertragungsschaltungen 416 können Wellenformen von Datensignalen zwischen Quelle und Senke hinsichtlich der gewünschten Form wesentlich verschlechtert oder gestört sein. Die Signalqualität kann zum Beispiel durch verlustbehaftete Sendeleitungseigenschaften, Diskrepanz zwischen Eigenschaften von Sendeleitungssegmenten, Signalübersprechen oder elektrisches Rauschen verschlechtert werden. In Leserichtung regeneriert jedoch der Lesepuffer 509 die Signale von den Speichervorrichtungen 412 und stellt dadurch die gewünschten Signalwellenformen wieder her. Ähnlich regenerieren in Schreibrichtung der erste Tristate-Puffer 504 und der zweite Tristate-Puffer 506 die Signale von dem Speichercontroller 420 und stellen dadurch die gewünschten Wellenformen wieder her.
-
Unter nochmaligem Bezug auf 3A wird, wenn der Speichercontroller 420 Lese- oder Schreiboperationen durchführt, mit jeder bestimmten Operation auf eine bestimmte der Reihen A, B, C und D eines bestimmten Speichermoduls 402 gezielt. Die Datenübertragungsschaltung 416 an dem spezifisch angezielten der Speichermodule 402 fungiert als bidirektionaler Repeater/Multiplexer, so dass sie das Datensignal treibt, wenn die Verbindung von dem Systemspeichercontroller 420 zu den Speichervorrichtungen 412 hergestellt wird. Die anderen Datenübertragungsschaltungen 416 an den verbleibenden Speichermodulen 402 sind für die bestimmte Operation deaktiviert. Beispielsweis wird das Datensignal, das auf der Datenleitung 518 in die Datenübertragungsschaltung 614 eintritt, an die Speichervorrichtungen 412A und 412C oder 412B und 412C getrieben, je nachdem, welche Speichervorrichtungen aktiv und freigegeben sind. Die Datenübertragungsschaltung 416 multiplext dann das Signal von den Speichervorrichtungen 412A, 412B, 412C, 412D an den Systemspeichercontroller 420. Die Datenübertragungsschaltungen 416 können jeweils beispielsweise einen Nibble-breiten Datenpfad oder einen Byte-breiten Datenpfad steuern. Wie oben erläutert, sind die Datenübertragungsschaltungen 416, die zu jedem Modul 402 gehören, dazu betreibbar, Datenlesesignale zusammenzuführen und Datenschreibsignale zu treiben, wodurch die richtigen Datenpfade zwischen dem Systemspeichercontroller 420 und den angezielten oder ausgewählten Speichervorrichtungen 412 freigegeben werden. Somit erfährt der Speichercontroller 420, wenn vier Speichermodule mit vier Reihen vorhanden sind, vier lastreduzierende Schaltkreislasten anstelle von sechzehn Speichervorrichtungslasten. Die reduzierte Last auf dem Speichercontroller 420 verbessert die Leistung und reduziert den Energiebedarf des Speichersystems im Vergleich zu beispielsweise den oben unter Bezug auf die 1A, 1B und 2A–2D beschriebenen herkömmlichen Systemen.
-
Der Betrieb eines Speichermoduls unter Verwendung der Datenübertragungsschaltung 416 kann unter Bezug auf 6 weiter verstanden werden, welche ein beispielhaftes Zeitdiagramm von Signalen des Speichermoduls 402 zeigt. Das Zeitdiagramm weist erste bis achte Zeitperioden 601–608 auf. Wenn die Speichervorrichtungen 404 synchrone Speicher sind, kann jede der Zeitperioden 601–608 einem Taktzyklus der Speichervorrichtungen 404 entsprechen.
-
Die erste, zweite und dritte Zeitperiode 601–603 zeigen Schreiboperationen mit Daten, die von dem Speichercontroller 401 zu dem Speichermodul 402 laufen. Die vierte Zeitperiode 604 ist ein Übergang zwischen den Schreiboperationen und folgenden Leseoperationen. Das Zeitdiagramm zeigt eine Schreiboperation an die erste Gruppe von Speichervorrichtungen 412A, 412C, die mit den ersten Endgeräten Y1 der Datenübertragungsschaltung 416 verbunden ist, und eine Schreiboperation an die zweite Gruppe von Speichervorrichtungen 412B, 412D, die mit den zweiten Endgeräten Y2 der Datenübertragungsschaltung 416 verbunden ist. Unter Bezug auf die oben beschriebene CAS-Latenz erstreckt sich jede Schreiboperation pipelineartig über zwei Zeitperioden.
-
Das Schreiben an die erste Gruppe von Speichervorrichtungen 412A, 412C findet in der ersten Zeitperiode 601 statt, wenn Systemadress- und Steuersignale 440 von dem Speichercontroller 420 an den Modulcontroller 430 laufen. Die Steuerschaltung 430 evaluiert die Adress- und Steuersignale 440, um zu bestimmen, dass Daten an die Speichervorrichtungen 412A, 412C in der ersten Gruppe zu schreiben sind. Während der zweiten Zeitperiode 602 liefert die Steuerschaltung 430 Steuersignale an die Steuerlogikschaltung 502, um den ersten Tristate-Puffer 504 zu aktivieren und den zweiten Tristate-Puffer 506 und den Lesepuffer 509 zu deaktivieren. Somit laufen während der zweiten Zeitperiode 602 Datenbits von den Datenleitungen 518 an das erste Endgerät Y1 und weiter zu den Speichervorrichtungen 412A, 412C.
-
Ähnlich findet das Schreiben an die zweite Gruppe von Speichervorrichtungen 412A, 412C in der zweiten Zeitperiode 602 statt, wenn Systemadress- und Steuersignale 440 von dem Speichercontroller 420 an die Steuerschaltung 430 laufen. Die Steuerschaltung 430 evaluiert die Adress- und Steuersignale 440, um zu bestimmen, dass Daten an die Speichervorrichtungen 412B, 412D in der zweiten Gruppe zu schreiben sind. Während der dritten Zeitperiode 603 liefert die Steuerschaltung 430 Steuersignale an die Steuerlogikschaltung 502, um den zweiten Tristate-Puffer 506 zu aktivieren und den ersten Tristate-Puffer 504 und den Lesepuffer 509 zu deaktivieren. Somit laufen während der dritten Zeitperiode 603 Datenbits von den Datenleitungen 518 an das zweite Endgerät Y2 und weiter zu den Speichervorrichtungen 412B, 412D.
-
Die fünfte, sechste, siebte und achte Zeitperiode 605–608 zeigen Leseoperationen mit Daten, die von dem Speichermodul 402 an den Speichercontroller 420 laufen. Das Zeitdiagramm zeigt eine Leseoperation von der ersten Gruppe von Speichervorrichtungen 412A, 412C, die mit den ersten Endgeräten Y1 der Datenübertragungsschaltungen 416 verbunden ist, und eine Leseoperation von der zweiten Gruppe von Speichervorrichtungen 412B, 412D, die mit den zweiten Endgeräten Y2 der Datenübertragungsschaltungen 416 verbunden ist. Unter Bezug auf die oben beschriebene CAS-Latenz erstreckt sich jede Leseoperation pipelineartig über zwei Zeitperioden.
-
Das Lesen aus der ersten Gruppe von Speichervorrichtungen 412A, 412C findet in der fünften Zeitperiode 605 statt, wenn Systemadress- und Steuersignale 440 von dem Speichercontroller 420 an die Steuerschaltung 430 laufen. Die Steuerschaltung 430 evaluiert die Adress- und Steuersignale 440, um zu bestimmen, dass Daten aus den Speichervorrichtungen 412A, 412C in der ersten Gruppe zu lesen sind. Während der sechsten Zeitperiode 606 liefert die Steuerschaltung 430 Steuersignale an die Steuerlogikschaltung 502, um zu veranlassen, dass der Multiplexer 508 Daten aus dem ersten Endgerät Y1 auswählt, um den Lesepuffer 509 zu aktivieren und den ersten Tristate-Puffer 504 und den zweiten Tristate-Puffer 506 zu deaktivieren. Somit laufen während der sechsten Zeitperiode 606 Datenbits von den Speichervorrichtungen 412A, 412C über das erste Endgerät Y1 an die Datenleitungen 518 und weiter zu dem Speichercontroller 420.
-
Das Lesen aus der zweiten Gruppe von Speichervorrichtungen 412B, 412D findet in der siebten Zeitperiode 607 statt, wenn Systemadress- und Steuersignale 440 von dem Speichercontroller 420 an die Steuerschaltung 430 laufen. Die Steuerschaltung 430 evaluiert die Adress- und Steuersignale 440, um zu bestimmen, dass Daten aus den Speichervorrichtungen 412B, 412D in der zweiten Gruppe zu lesen sind. Während der achten Zeitperiode 608 liefert die Steuerschaltung 430 Steuersignale an die Steuerlogikschaltung 502, um zu veranlassen, dass der Multiplexer 508 Daten aus dem ersten Endgerät Y2 auswählt, um den Lesepuffer 509 zu aktivieren und den ersten Tristate-Puffer 504 und den zweiten Tristate-Puffer 506 zu deaktivieren. Somit laufen während der achten Zeitperiode 606 Datenbits von den Speichervorrichtungen 412B, 412D über das zweite Endgerät Y2 an die Datenleitungen 518 und weiter zu dem Speichercontroller 420.
-
Vorstehend sind verschiedene Ausführungsformen beschrieben worden. Obwohl die vorliegende Erfindung unter Bezug auf diese spezifischen Ausführungsformen beschrieben worden ist, ist beabsichtigt, dass die Beschreibungen für die Erfindung nur beispielhaft und nicht einschränkend sind. Verschiedene Modifizierungen und Anwendungen können sich für Fachleute ergeben, ohne vom Geist und Umfang der Erfindung, wie sie in den beigefügten Ansprüchen definiert ist, abzuweichen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 7289386 [0049]
- US 7532537 [0049]