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