-
VERWANDTE
ANMELDUNGEN
-
Die
vorliegende Anmeldung betrifft und beansprucht den Nutzen der folgenden
vorläufigen
US-Patentanmeldungen mit den entsprechenden folgenden Einreichungsdaten:
(1) vorläufige
Anmeldung mit der Nummer, mit dem Titel DISTRIBUTED CONTROL MEMORY
BUS ARCHITECTURE, eingereicht am 5. Dezember 1997; und (2) vorläufige Anmeldung
mit der Nummer, mit dem Titel DISTRIBUTED CONTROL MEMORY BUS ARCHITECTURE,
eingereicht am 5. Dezember 1997. Diese Anmeldungen wurden auf den
gleichen Zessionar wie die vorliegende Anmeldung übertragen.
-
Die
vorliegende Anmeldung betrifft ferner die U.S. Patentanmeldung mit
der Nummer, mit dem Titel MEMORY MODULE INCLUDING A MEMORY MODULE
CONTROLLER, eingereicht am 13. Februar 1998 und die U.S. Patentanmeldung
mit der Nummer, mit dem Titel MEMORY MODULE CONTROLLER, eingereicht
am 13. Februar 1998, die jeweils auf den gleichen Zessionar wie
die vorliegende Erfindung übertragen wurden.
-
GEBIET DER
ERFINDUNG
-
Die
vorliegende Erfindung betrifft das Gebiet der Speichersysteme. Im
Besonderen betrifft die vorliegende Erfindung ein Speichersystem,
das eine Speichersteuereinheit auf einem Speichermodul aufweist.
-
STAND DER
TECHNIK
-
Speichermodule,
wie etwa Single-In-Line Memory Modules (SIMMs) und Dual-In-Line
Memory Modules (DIMMs), werden für
gewöhnlich
eingesetzt, um Daten, Befehle und andere Daten in Computern oder
anderen digitalen Systemen zu speichern. Die Abbildung aus 1 zeigt
ein typisches Speichersystem, bei dem der Prozessor 102 mit
DRAM-Bausteinen 110–117 (dynamische
Direktzugriffsspeicher) an den entsprechenden Speichermodulen 106 und 108 über die
Speichersteuereinheit 104 kommuniziert. Die Speichersteuereinheit 104 überträgt entsprechende
Speicherbefehle (z.B. Schreiben, Lesen, Auffrischen, etc.) zu dem
Speichermodul 106 über
einen Adress- und Befehlsbus 18 und zu dem Speichermodul 108 über den
Adress- und Befehlsbus 120. Daten werden von der Speichersteuereinheit 104 über den
Bus 122 an beide Module übertragen.
-
Mit
dem herkömmlichen
Speichersystem aus 1 sind mindestens zwei Nachteile
verbunden: (1) die Busse 118, 120 und 122 sind
Mehrpunktbusse, die kapazitive Belastungen aufweisen, die große Steuerglieder in
der Speichersteuereinheit 104 und in den DRAMs 110–117 (zum
Ansteuern des Busses 122) voraussetzen; und (2) es existieren
tendenziell große
Nichtübereinstimmungen
der Belastungen zwischen den Adress- und Befehlsbussen und dem Datenbus 122.
Diese Nachteile reduzieren in Kombination die maximale Betriebsfrequenz,
steigern den Stromverbrauch und senken die Leistung des Systems.
Darüber
hinaus kann die Speichersteuereinheit 104 eine hohe Anzahl
von Pins bzw. Stiften aufweisen (z.B. ungefähr 190 Pins für ein System mit
4 DIMM-SDRAMs), um den Zugriff auf die Speichermodule 106 und 108 zu
unterstützen.
Die Busbreite des Datenbusses 172 entspricht häufig 64
oder 72 Bits, um größere Bandbreiten
zu unterstützen,
von zum Beispiel bis zu 100 Megaübertragungen
pro Sekunde (MT/S.).
-
Die
Abbildung aus 2 zeigt ein weiteres typisches
Speichersystem, das die Technologie von Rambus, Inc., Mountain View,
Kalifornien, USA, verwendet. Bei diesem System kommuniziert der
Prozessor 202 mit RDRAMTM-Bausteinen 210–217 (dynamische
Direktzugriffsspeicherbausteine von Rambus) auf den Speichermodulen 206 und 208 (auch
als Rambus In-Line-Speichermodule oder RIMMTM-Module
bezeichnet) entsprechend über
die Speichersteuereinheit 204. Die Speichersteuereinheit 204 überträgt entsprechende Speicherbefehle
(z.B. Schreiben, Lesen, Auffrischen, etc.) und Daten zeitmultiplexiert über einen
Speicher-spezifischen Bus 226 an die Speichermodule 206 und 208.
Jeder der RDRAMTM-Bausteine 210–217 weist eine
entsprechende Schnittstellenlogik 218–225 auf, die es ermöglicht,
dass die RDRAMTM-Bausteine Schnittstellenverbindungen
mit dem Speicher-spezifischen Bus 226 herstellen. Der Speicher-spezifische
Bus 226 kann auf einer hohen Frequenz arbeiten (z.B. 250
bis 400 MHz), eine geringe Busbreite aufweisen (z.B. 16 oder 18
Signalleitungen), eine symmetrische Belastung für Adress-, Befehls- und Dateninformationen
aufweisen und eine Bandbreite von bis zu 800 MT/S. aufweisen. In
anderen Ausführungsbeispielen
können
Die Adress- und Steuerinformationen in dieser Umgebung von dem Datenbus
getrennt werden (demultiplexiert).
-
Das
System aus 2 weist eine Reihe von Nachteilen
auf. Jeder RDRAMTM-Baustein weist eine signifikante
Logik in der Schnittstellenlogik auf, was die Implementierung der
RDRAMTM-Bausteine schwieriger und teurer
gestaltet als von anderen DRAM-Bausteinen, und was es bewirkt, dass
die RDRAMTM-Bausteine mehr Leistung ziehen
und mehr Wärme
abstrahlen, als wenn die Logik nicht vorhanden wäre. Darüber hinaus weist jeder RDRAMTM für
gewöhnlich
eine DLL-Schaltung aufweist, die mit einer Mehrzahl von Taktsignalen auf
dem Bus 226 gekoppelt ist. Di DLL-Schaltungen sind für gewöhnlich immer
im Einsatz bzw. funktionstüchtig und
ziehen erhebliche Leistungs- bzw. Strommengen, was zu thermischen
und die Zuverlässigkeit
betreffenden Problemen beiträgt.
Darüber
hinaus muss die Speichersteuereinheit 204 verhältnismäßig große Steuerglieder
zur Ansteuerung des Busses 226 aufweisen.
-
In
jedem der in Bezug auf die Abbildungen der 1 und 2 beschriebenen
Speichersysteme muss die Speichersteuereinheit so gestaltet sein,
dass sie die entsprechenden Speichertransaktionen an die Speicherbausteine
in einem vorbestimmten Format und zu vorbestimmten Zeiten bereitstellt.
Die Speicherbausteine und die Speichersteuereinheit müssen dabei
so gestaltet werden, dass sie zusammenarbeiten. Es wäre vorteilhaft,
das Design bzw. die Konstruktion der Speicherbausteine und der Speichersteuereinheit
zu entkoppeln, so dass in jeder der Technologien voneinander unabhängige Fortschritte
gemacht werden können.
Es wäre
wünschenswert,
die Funktionsweise der Speicherbausteine von der Speichersteuereinheit
zu entkoppeln, um die von jedem Speicherbaustein und das ganze Speichersystem
gezogene Leistung zu senken.
-
Das
U.S. Patent US-A-5.357.621 offenbart ein erweiterbares Speichersystem
mit einer zentralen Speichersteuereinheit und einem oder mehreren
Plugin-Speichermodulen, die jeweils eine auf der Platine integrierte
Speichermodul-Steuereinheit aufweisen, die in einer seriellen Netzwerkarchitektur
gekoppelt sind.
-
EP 0492817 A2 offenbart
einen lokalen Prozessor, der mit einem Port bzw. einem Anschluss
einer Speichersteuereinheit mit zwei Ports verbunden ist, wobei
ein Bus eine BURST-Signalleitung
aufweist, die mit dem anderen Port verbunden ist. Die Speichersteuereinheit
steuert den Zugriff auf einen lokalen Speicher. Ein entfernter Prozessor
kann eine Semaphor- bzw.
Flaggenoperation an einem Semaphor bzw. einer Flagge ausführen, die
in dem lokalen Speicher gespeichert ist, indem ein Signal LOCK von
dem entfernten Prozessor in ein Bus-BURST-Signal umgesetzt wird, das für eine Periode
aktiviert wird, die es ermöglicht,
dass der entfernte Prozessor die Flagge liest und modifiziert.
-
Weitere
Merkmale und Vorteile der vorliegenden Erfindung werden aus den
beigefügten
Zeichnungen und aus der folgenden genauen Beschreibung deutlich.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Die
Merkmale und Vorteile der vorliegenden Erfindung sind in den Abbildungen
der beigefügten
Zeichnungen beispielhaft und ohne einzuschränken veranschaulicht, in denen
die gleichen Elemente mit den gleichen Bezugsziffern bezeichnet
sind. In den Zeichnungen zeigen:
-
1 ein
Blockdiagramm eines Ausführungsbeispiels
eines herkömmlichen
Speichersystems;
-
2 ein
Blockdiagramm eines weiteren Ausführungsbeispiels eines herkömmlichen
Speichersystems;
-
3 ein
Blockdiagramm eines Ausführungsbeispiels
eines Speichersystems gemäß der vorliegenden
Erfindung;
-
4 ein
Blockdiagramm eines weiteren Ausführungsbeispiels eines Speichersystems
gemäß der vorliegenden
Erfindung;
-
5 ein
Blockdiagramm eines Ausführungsbeispiels
eines DRAM-Moduls (dynamischer Direktzugriffsspeicher) mit einer
DRAM-Speichermodul-Steuereinheit;
-
6 ein
Blockdiagramm eines SRAM-Moduls (statischer Direktzugriffsspeicher)
mit einer SRAM-Speichermodul-Steuereinheit;
-
7 ein
Blockdiagramm eines Ausführungsbeispiels
eines nichtflüchtigen
Speichermoduls mit einer nichtflüchtigen
Speichermodul-Steuereinheit;
-
8 ein
Blockdiagramm eines Ausführungsbeispiels
der Speichermodul-Steuereinheit aus 3, die mit
einem zeitmultiplexierten Systemspeicherbus gekoppelt ist;
-
9 ein
Flussdiagramm eines Ausführungsbeispiels
des Verfahrens, das durch die Speichermodul-Steuereinheit aus 8 implementiert
wird;
-
10 ein
Blockdiagramm eines Ausführungsbeispiels
der Speichermodul-Steuereinheit aus 3, die mit
einem demultiplexierten Systemspeicherbus gekoppelt ist;
-
11 ein
Flussdiagramm eines Ausführungsbeispiels
des Verfahrens, das durch die Speichermodul-Steuereinheit aus 10 implementiert
wird;
-
12 ein
Blockdiagramm eines Ausführungsbeispiels
eines Speichermoduls, das eine Speichermodul-Steuereinheit aufweist,
mit einer Schnittstellenverbindung der SDRAM-Bausteine mit einem Systemspeicherbus
unter Verwendung eines Direct RambusTM-Protokolls;
-
13 ein
Flussdiagramm eines Ausführungsbeispiels
einer durch die Speichermodul-Steuereinheit aus 12 implementierten
Lesetransaktion;
-
14 ein
beispielhaftes Zeitsteuerungsdiagramm der durch die Speichermodul-Steuereinheit aus 12 implementierten
Lesetransaktion;
-
15 ein
Flussdiagramm eines Ausführungsbeispiels
einer durch die Speichermodul-Steuereinheit aus 12 implementierten
Schreibtransaktion;
-
16 ein
beispielhaftes Zeitsteuerungsdiagramm der durch die Speichermodul-Steuereinheit aus 12 implementierten
Schreibtransaktion;
-
17 ein
beispielhaftes Zeitsteuerungsdiagramm der durch die Speichermodul-Steuereinheit aus 12 implementierten
Lesetransaktion unter Verwendung eines modifizierten Protokolls;
und
-
18 ein
beispielhaftes Zeitsteuerungsdiagramm der durch die Speichermodul-Steuereinheit aus 12 implementierten
Schreibtransaktion unter Verwendung eines modifizierten Protokolls.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Ein
Ausführungsbeispiel
der vorliegenden Erfindung weist ein Verfahren gemäß dem gegenständlichen
Anspruch 1 auf.
-
Weitere
Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden
aus den beigefügten Zeichnungen
und aus der folgenden genauen Beschreibung deutlich.
-
GENAUE BESCHREIBUNG
-
Beschrieben
wird ein Speichersystem, das eine verteilte Steuerung der Speicherbausteine
auf den Speichermodulen aufweist. Die vorliegende Erfindung weist
eine Speichermodul-Steuereinheit
an jedem Speichermodul in dem System auf. Die Speichermodul-Steuereinheit
kommuniziert mit der Systemspeicher-Steuereinheit über einen
Systemspeicherbus und mit den einzelnen Speicherbausteinen auf Modulebene.
Der Systemspeicherbus kann einen Bus mit geringer Anzahl von Pins,
mit hoher Frequenz, multiplexiert oder demultiplexiert darstellen.
Die Speichermodul-Steuereinheit kann mit den einzelnen Speicherbausteinen über breitere,
demultiplexierte Niederfrequenz-Signalleitungen kommunizieren. Wenn
die Systemspeicher-Steuereinheit direkt nur mit den Speichermodul-Steuereinheiten
kommuniziert, kann die Belastung des Systemspeicherbusses reduziert
werden, und wobei auch die Größe der Bussteuerglieder
in der Systemspeicher-Steuereinheit verringert werden kann.
-
Die
Speichermodul-Steuereinheit an jedem Speichermodul ist die Schnittstelle
zwischen der Systemspeicher-Steuereinheit und den einzelnen Speicherbausteinen
an den Modulen. Diese Architektur entkoppelt die einzelnen Speicherbausteine
von dem Systemspeicherbus und der Systemspeicher-Steuereinheit.
Dies kann eine unabhängige
Entwicklung der Speicherbausteintechnologie ermöglichen. Zum Beispiel können die Speicherbausteine
schneller und breiter entwickelt werden, so dass sie auf unterschiedlichen Betriebsversorgungsspannungen
arbeiten oder mit reduzierten Spannungshüben als wenn die Speicherbausteine
direkt mit der Systemspeicher-Steuereinheit kommunizieren würden.
-
Das
Speichermodul kann eigene Speicheradressleitungen, Steuerleitungen
und Datenleitungen zwischen der Speichermodul-Steuereinheit und
den einzelnen Speicherbausteinen aufweisen. Die Signalleitungen
für diese
Punkt-zu-Punkt- oder Busverbindungen können deutlich kürzer sein
als die Systemzwischenverbindungsbusse, die in herkömmlichen
Speichersystemen zum Einsatz kommen. Dies kann eine reduzierte Belastung,
eine bessere Steuerung der Kapazität auf den Adress- und Datenleitungen
ermöglichen
sowie die maximale Betriebsfrequenz des Moduls erhöhen, während die
von dem System verbrauchte bzw. gezogene Leistung reduziert wird.
Darüber
hinaus kann Leistung weiter reduziert werden, indem DLLs bei den
einzelnen Speicherbausteinen weggelassen werden. Eine DLL kann in
die Speichermodul-Steuereinheit integriert werden, wenn dies für eine Schnittstellenverbindung
mit dem Systemspeicherbus erforderlich ist.
-
Die
Abbildung aus 3 zeigt ein Blockdiagramm eines
Ausführungsbeispiels
der vorliegenden Erfindung. Das System 300 weist einen
Prozessor 302, eine Systemspeicher-Steuereinheit 304 und Speichermodule 306 und 308 auf.
Der Prozessor 302 kommuniziert mit der Systemspeicher-Steuereinheit 304.
Bei dem Prozessor 302 kann es sich um jede Steuerlogik
oder jeden Mikroprozessor handeln, der Schreib-, Lese- und andere
Speichertransaktionen zu der Systemspeicher-Steuereinheit 304 überträgt. Die
Systemspeicher-Steuereinheit 304 überträgt die Speichertransaktionen
an die Speichermodul-Steuereinheiten 310 und 316 der
entsprechenden Speichermodule 306 und 308 über den
Systemspeicherbus 323. Die Systemspeicher-Steuereinheit 304 kann
Teil eines Chipsatzes für
zum Beispiel einen Personalcomputer sein, oder es kann sich um eine unabhängige Logik
handeln.
-
Bei
den Speichermodulen 306 und 308 kann es sich um
SIMMs, DIMMs, RIMMTM-Module oder jede andere
Art von Speichermodulen handeln. Jedes Speichermodul weist eine
Speichermodul-Steuereinheit und einen oder mehrere Speicherbausteine
auf. Zum Beispiel weist das Speichermodul 306 die Speichermodul-Steuereinheit 310 und
die Speicherbausteine 32–315 auf,
und das Speichermodul 308 weist die Speichermodul-Steuereinheit 316 und
die Speicherbausteine 317–320 auf. Bei den
Speichermodul-Steuereinheiten kann es sich um separate integrierte
Schaltungen von den Speicherbausteinen handeln. Während das
System 300 in der Abbildung zwei Speichermodule aufweist,
kann jede Anzahl von Speichermodulen verwendet werden. Die Speicherbausteine
können
auf einer Seite des Moduls, auf beiden Seiten des Moduls platziert und/oder übereinander
gestapelt angeordnet werden. Das Modul kann auch ein Mehrchip-Modul
darstellen. In einem Ausführungsbeispiel
kann ein Speichermodul eine ungefähre Höhe 350 zwischen 1
und 2 Zoll sowie eine ungefähre
Länge 352 zwischen
4 und 6 Zoll aufweisen.
-
Die
Speichermodul-Steuereinheiten 310 und 316 kommunizieren über den
Systemspeicherbus 323 Speichertransaktionen mit der Systemspeicher-Steuereinheit 304.
Bei dem Systemspeicherbus 323 kann es sich um einen Bus
mit geringer Anzahl von Pins bzw. Stiften handeln (z.B. ungefähr 16 bis
35 Adress-, Daten- und Steuersignalleitungen), der mit einer hohen
Frequenz arbeitet. In einem Ausführungsbeispiel
kann der Systemspeicherbus 323 auf einer Frequenz von ungefähr 200 bis
500 MHz arbeiten. Es können
auch andere Frequenzen verwendet werden. Der Systemspeicherbus 323 weist
einen Befehls-/Adressbus 324 und einen Datenbus 328 auf.
Der Befehls-/Adressbus 324 kann Befehle und Adressinformationen
auf einer oder mehreren der Signalleitungen einem Zeitmultiplexing
unterziehen. Der Befehls- und Adressbus 324 kann auch in
separate Befehls- und Adressbusse aufgeteilt werden, wie dies bei
SDRAMMs der Fall ist. Der Systemspeicherbus 323 kann optional
einen Taktbus 322 aufweisen, der eines oder mehrere Taktsignale
auf der gleichen oder auf separaten Signalleitungen führen kann,
und einen Handshaking-Bus 326, der ein Handshaking-Signal
zwischen der Systemspeicher-Steuereinheit 304 und den Speichermodul-Steuereinheiten 310 und 316 führen kann.
Das Handshaking-Signal kann durch die Systemspeicher-Steuereinheit 304 zum
Beispiel am Anfang eines Speicheranforderungspakets erzeugt werden
oder wenn die Einheit gültige
Daten auf dem Datenbus 328 überträgt. Das Handshaking-Signal
kann von den Speichermodul-Steuereinheiten 310 und 316 erzeugt
werden, wenn diese gültige
Daten, die von der Systemspeicher-Steuereinheit 304 angefordert
worden sind, an den Datenbus 328 bereitstellen.
-
In
einem Ausführungsbeispiel
kann der Systemspeicherbus 323 mit der Direct RambusTM-Busarchitektur
kompatibel sein, welche 16 oder 18 Datenbits auf dem Bus aufweist,
oder ein oder mehrere Taktsignale auf dem Bus 322, und
Befehls- und Adressdaten auf dem Bus 324. Die Taktsignale
für dieses
Ausführungsbeispiel können mit
Raten von ungefähr
400 MHz betrieben werden, was eine Datenübertragungsrate von bis zu
800 MT/S. ermöglicht.
In Bezug auf das vorliegende Ausführungsbeispiel kann es sich
bei der Systemspeicher- Steuereinheit 304 um
jede Steuereinheit handeln, die in der Lage sein kann, das Protokoll
Direct RambusTM für Speichertransaktionen auf
dem Systemspeicherbus 323 zu implementieren. Darüber hinaus
kann der Systemspeicherbus 323 Rambus Signaling Levels
(RSL bzw. Rambus Signalisierungsebene) für die auf dem Bus übertragenen
Signale verwenden. In Bezug auf alternative Ausführungsbeispiele kann jede Signalisierungsebene
bzw. jeder Signaling Level verwendet werden, darunter TTL, CMOS,
GTL, SSTL, CTT oder jeder andere Signaling Level.
-
In
Bezug auf ein anderes Ausführungsbeispiel
kann es sich bei dem Systembus 323 um einen universellen
bzw. Universalbus handeln, der zeitmultiplexierte Adress-, Daten-
und Steuerinformationen führt.
Zum Beispiel kann der Systembus 323 kompatibel sein mit
Concurrent und Base RambusTM-Architekturen.
In Bezug auf diese Ausführungsbeispiele
kann es sich bei der Systemspeicher-Steuereinheit 304 um
jede Steuereinheit handeln, die in der Lage sein kann, diese Protokolle
für Speichertransaktionen
auf dem Systemspeicherbus 323 zu implementieren.
-
Der
Systemspeicherbus 323 kann physikalisch auf einer gedruckten
Leiterplatte (PCB) platziert werden, welche die Systemspeicher-Steuereinheit 304 und
Zwischenverbindungs-Steckplätze für die Module 306 und 308 aufweist,
wie dies in der Abbildung aus 3 dargestellt
ist. Alternativ kann der Systemspeicherbus 323 durch separate
Kanäle
der Speichermodule 306 und 308 geführt werden,
wie etwa die Kanäle 402, 404, 406 und 408 aus 4.
-
Die
Speichermodul-Steuereinheiten 310 und 316 arbeiten
als Brücken
zwischen dem Systemspeicherbus 323, der in einem Protokoll
oder Format arbeitet, und lokalen oder Speichermodulbussen (z.B. Leitungen 330, 332 und 334–337),
die in einem zweiten, unterschiedlichen Protokoll oder Format arbeiten.
Jedes Speichermodul weist eine Steuerlogik auf, die notwendig ist,
um die Speichertransaktion auf dem Systemspeicherbus 323 zu
interpretieren und die Transaktion in entsprechende Steuer-, Adress-
und Datensignale für die
entsprechenden Speicherbausteine an dem Speichermodul umzusetzen.
In ähnlicher
Weise interpretieren die Speichermodule die Speichertransaktionen
auf dem lokalen oder Speichermodulbus in das erforderliche Format
für die Übertragung
der Transaktion an die Systemspeicher-Steuereinheit 304 über den
Systemspeicherbus 323.
-
Die
Speichermodul-Steuereinheiten 310 und 316 können auch
Schaltkreisanordnungen aufweisen, die erforderlich sind, um Auffrischoperationen
dynamischer Speicherbausteine, Vorerfassungs- bzw. Prefetch-Operationen,
Fehlerkorrekturfunktionen auszuführen,
die zum Beispiel ECC-Bits verwenden können, eine Stromkalibrierung,
wenn es sich bei dem Systemspeicherbus 323 um einen Strombus
handelt, serielle Präsenzdetektierungs-Schaltkreisanordnungen,
eine DLL-Schaltung, eine Power-Management-Schaltkreisanordnung, welche die Taktsignale
oder Taktfreigabesignale für
die Speicherbausteine abschalten kann, oder welche andere Ruhezustandsschaltungen,
Programmierungs- und Löschspannungen
für nichtflüchtige Speicherschaltungen
bereitstellen kann und/oder eine Nivellierungsschaltkreisanordnung
zur Erzeugung von Signalen auf dem Systemspeicherbus 323 in
entsprechenden Taktbereichen (wenn auf dem Systemspeicherbus 323 mehr
als ein Taktbereich vorhanden ist).
-
Jeder
Speicherbaustein an den Speichermodulen kommuniziert Speichertransaktionen
mit der zugehörigen
Speichermodul-Steuereinheit über
Adress-, Daten- und Steuersignale. Speichertransaktionen sind die Transaktionen,
die sich für
jede Art des verwendeten Speicherbausteins eignen. Zum Beispiel
können
die Speichertransaktionen Schreiben, Lesen, Auffrischen, Vorerfassen
bzw. Prefetch, Abschalten, Zurücksetzen, Löschen und
dergleichen umfassen. Das Speichermodul 306 kann zum Beispiel
Speicheradressen zu den Speicherbausteinen 312–315 über die
Signalleitungen 330 übertragen,
Steuerinformationen (z.B. Chipfreigabesignale, Schreibfreigabesignale,
RAS, CAS, Ausgabefreigabesignale, etc.) über die Signalleitungen 332 und
Daten über
Punkt-zu-Punkt-Verbindungen 334–337. Jede der Signalleitungen 330, 332 und 334–337 kann eine
oder mehrere Signalleitungen darstellen. Die Signalleitungen 330 und 332 können Busse
darstellen, welche alle vier Speicherbausteine 312–315 zu
Gruppen von Speicherbausteinen verbinden (z.B. jeweils zwei gleichzeitig),
oder es kann sich um Punkt-zu-Punkt-Verbindungen mit der Speichermodul-Steuereinheit 310 handeln.
In ähnlicher
Weise kann das Speichermodul 308 Speicheradressen über die
Signalleitungen 338 zu den Speicherbausteinen 317–320 übertragen,
Steuerinformationen über
die Signalleitungen 340 und Daten über die Punkt-zu-Punkt-Verbindungen 341–344.
Jede der Signalleitungen 338, 340 und 341–344 kann
eine oder mehrere Signalleitungen darstellen.
-
In
einem Ausführungsbeispiel
kann die Anzahl der Signalleitungen 334–337 der Anzahl von
Signalleitungen entsprechen, die Daten für den Systemspeicherbus 323 führen. In
Bezug auf ein weiteres Ausführungsbeispiel
kann die Anzahl der Signalleitungen 334–337 kollektiv größer sein
als die Anzahl der Signalleitungen, die Daten auf dem Systemspeicherbus 323 von
der Systemspeicher-Steuereinheit 304 zu der Speichermodul-Steuereinheit 310 führen. Dies
kann die Bandbreite der Datenübertragung
auf dem Speichermodul erhöhen.
Zum Beispiel kann der Systemspeicherbus 323 16 Datensignale
parallel auf dem Bus 328 führen, und die Speichermodul-Steuereinheit 310 kann
gleichzeitig 16 Datensignale an jeden der Speicherbausteine 312–315 bereitstellen.
Da die Breite des Datenbusses breiter sein kann (z.B. 64 oder 72
Bits breit) als die des Systemspeicherbusses 323 (z.B.
16 Bits breit), kann die Speichermodul-Steuereinheit 310 ein
Taktsignal auf dem Bus 330 an die Speicherbausteine 312–315 bereitstellen,
wobei es sich dabei um eine niedrigere Frequenz handeln kann als
die Frequenz, die auf dem Systemspeicherbus 323 läuft. In
einem Ausführungsbeispiel
kann die Taktfrequenz auf dem Bus 330 ungefähr zum Beispiel
zwischen 50 und 200 MHz liegen, wenn die Frequenz des Taktsignals
auf dem Taktbus 322 ungefähr zwischen 100 und 400 MHz
liegt. Die Frequenz des Taktsignals auf dem Taktbus 322 kann
auch doppelt gepumpt werden, das heißt, sie führt eine Aktion (z.B. Daten
laden) auf jeder Taktflanke aus.
-
Durch
vorhandene lokale Adress-, Steuer- und Datenleitungen auf den Speichermodulen,
die von dem Systembus 323 entkoppelt sind, kann die Länge dieser
Signale im Vergleich zu denen auf dem Systemspeicherbus reduziert
werden, wobei die Belastung dieser Leitungen im Vergleich zu der
des Systemspeichers gesenkt werden kann, und wobei die Belastung
präziser
gesteuert werden kann zwischen den unterschiedlichen Leitungen,
so dass eine symmetrischere Belastung zwischen den Signalleitungen
erreicht wird. Zum Beispiel kann die Belastung auf den Datenleitungen
und den Adress- und Steuerleitungen ungefähr die gleiche Belastung (z.B.
ungefähr
10 bis 40 F) aufweisen, plus oder minus ungefähr zehn Prozent. Dies kann
in vorteilhafter Weise die Menge der verbrauchten Leistung durch
das Modul senken und die maximale Betriebsfrequenz des Moduls für eine bestimmte
Speichertransaktion erhöhen.
-
Durch
die Entkopplung der Speicherbausteine von dem Systemspeicherbus 323 und
der Systemspeicher-Steuereinheit 304 können die Speicherbausteine 312–315 und 317–320 ferner
mit reduzierten oder unterschiedlichen Versorgungsspannungen arbeiten
als den Spannungen, die bereitgestellt werden, um das System 300 auszugleichen.
Zum Beispiel können
die Speicherbausteine 312–315 und 317–320 (und/oder
die Speichermodul-Steuereinheiten 310 und 316) über Versorgungsspannungen
von ungefähr
1,8 Volt bis 2,5 Volt betrieben werden, während die Balance bzw. Ausgewogenheit
der Komponenten in dem System 300 mit 3,3 Volt oder 5,0
Volt betrieben werden kann. Sie können auch so arbeiten, dass
die Menge der durch das Modul und somit durch das System 300 entzogenen
bzw. verbrauchten Leistung reduziert wird. Darüber hinaus kann der Spannungshub
der Signale auf den Leitungen 330, 332 und 334–337 in
vorteilhafter klein ausgewählt
werden (z.B. ungefähr
1,0 bis 2,0 Volt), um die von den Speicherbausteinen 312–315 aufgenommene
Leistung weiter zu reduzieren.
-
Die
Leistung kann für
jeden Speicherbaustein und für
das System insgesamt weiter reduziert werden, wenn eine DLL erforderlich
ist für
eine Schnittstellenverbindung mit dem Systemspeicherbus 323.
Die DLL kann in der Speichermodul-Steuereinheit 310 enthalten
sein und nicht in jedem der Speicherbausteine 312–315,
wie dies bei herkömmlichen
Systemen der Fall sein kann.
-
In
Bezug auf ein weiteres Ausführungsbeispiel
können
die Adressleitungen 330, die Steuerleitungen 332 und/oder
die Datenleitungen 334–337 in
einem zeitmultiplexierten Bus kombiniert werden, der zwischen die
Speicherbausteine 312–315 und
die Speichermodul-Steuereinheit 310 gekoppelt
ist.
-
Bei
den Speicherbausteinen 312–315 und 317–320 kann
es sich um jede Art von flüchtigen
oder nichtflüchtigen
Speicherbausteinen handeln, wie etwa DRAMs, synchrone DRAMs (SDRAMs),
Fast Page Mode DRAMs (FPM DRAMs), Extended Data Out DRAMs (EDO DRAMs),
Rambus DRAMs (RDRAMTM-Bausteine), synchrone
oder asynchrone statische Direktzugriffsspeicherbausteine (SRAMs),
Nur-Lesespeicher-Bausteine (ROMs), programmierbare ROMs (PROMs),
löschbare
PROMs (EPROMs), elektrisch löschbare
PROMs (EEPROMs), Flash-Speicherbausteine und dergleichen. Jedes
Speichermodul kann verschiedenartige Speicherbausteine aufweisen.
Das Speichermodul 306 kann zum Beispiel SDRAMs aufweisen,
und das Speichermodul 308 kann EDO DRAMs aufweisen, oder
das Speichermodul 306 kann nichtflüchtige Speicherbausteine aufweisen,
und das Speichermodul 308 kann flüchtige Speicherbausteine aufweisen.
-
Die
Abbildung aus 5 zeigt ein Blockdiagramm eines
Speichermoduls 500, das ein Ausführungsbeispiel des Speichermoduls 306 darstellt,
das als ein DRAM-Speichermodul konfiguriert ist. Das Modul 500 weist
eine DRAM-Speichermodul-Steuereinheit 510 auf, die eine
Schnittstelle zwischen den DRAM-Bausteinen 512–515 und
dem Systemspeicherbus 323 bereitstellt. Die DRAM-Speichermodul-Steuereinheit 510 setzt von
dem Systemspeicherbus 323 empfangene Speichertransaktionen
um und erzeugt DRAM-Speicheroperationen
(z.B. Schreiben, Lesen, Prefetch, Auffrischen), mit Adressen auf
dem Adressbus 516, Datensignalen auf den Datenleitungen 523–526 und
Steuersignalen, wie etwa Schreibfreigabe WE auf der Leitung 518,
RAS auf der Leitung 520 und CAS auf der Leitung 522.
Die DRAM-Speichermodul-Steuereinheit 510 kann ferner zusätzliche
Steuersignale an die DRAMs 512–515 bereitstellen,
einschließlich
Taktsignale für
den synchronen Betrieb (d.h. für
SDRAMs), Speicherbank-Auswahlsignale und/oder Chipauswahl- oder
Chipfreigabesignale. Die DRAM-Speichermodul-Steuereinheit kann auch
Auffrischbefehle erzeugen, Prefetch-Befehle und/oder Power-Management-Befehle
an die DRAMs 512–515.
-
Die
Abbildung aus 6 zeigt ein Blockdiagramm eines
Speichermoduls, das ein Ausführungsbeispiel des
Speichermoduls 306 darstellt, das als ein SRAM-Speichermodul
konfiguriert ist. Das Modul 600 weist eine SRAM-Speichermodul-Steuereinheit 610 auf,
die eine Schnittstelle zwischen den SRAM-Bausteinen 612–615 und
dem Systemspeicherbus 323 bereitstellt. Die SRAM-Speichermodul-Steuereinheit 610 setzt
von dem Systemspeicherbus 323 empfangene Speichertransaktionen
um und erzeugt SRAM-Speicheroperationen
(z.B. Schreiben, Lesen, Zurücksetzen,
Abschalten bzw. Ruhezustand), darunter Adressen auf dem Adressbus 616, Datensignale
auf den Datenleitungen 623–626 und Steuersignale
wie etwa Chipauswahl oder Chipfreigabe CE auf Leitung 618,
Schreibfreigabe WE auf Leitung 620 und Ausgabefreigabe
auf Leitung 622. Die SRAM-Speichermodul-Steuereinheit 610 kann
auch zusätzliche
Steuersignale an die SRAMs 612–615 bereitstellen,
einschließlich
Taktsignale für
einen synchronen Betrieb, Burst-Steuersignale,
Unterbrechungssignale bzw. Interrupt-Signale, Rücksetzsignale, Schreib- und
Lesesignale (z.B. für
einen ersten First-in-First-out-FIFO-Baustein), Power-Management-Signale, Byte-Freigabesignale
und/oder Erweiterungssignale.
-
Die
Abbildung aus 7 zeigt ein Blockdiagramm eines
Speichermoduls 700, das ein Ausführungsbeispiel des Speichermoduls 307 darstellt,
das als ein nichtflüchtiges
Speichermodul konfiguriert ist. Das Modul 700 weist die
nichtflüchtige
Speichermodul-Steuereinheit 710 auf,
die eine Schnittstelle zwischen den nichtflüchtigen Bausteinen 712–715 und
dem Systemspeicherbus 323 bereitstellt. Die nichtflüchtige Speichermodul-Steuereinheit 710 setzt
von dem Systemspeicherbus 323 empfangene Speichertransaktionen um
und erzeugt nichtflüchtige
Speicheroperationen (z.B. Schreiben oder Programmieren, Lesen, Zurücksetzen,
Abschalten, Löschen,
etc.), einschließlich
Aderessen auf dem Adressbus 716, Datensignale auf den Datenleitungen 723–726 und
Steuersignale wie etwa Chipauswahl oder Chipfreigabe CE auf der
Leitung 718, Schreibfreigabe WE auf der Leitung 720,
Ausgabefreigabe auf der Leitung 722 und eine Programmierspannung
auf der Leitung 728. Die nichtflüchtige Speichermodul-Steuereinheit 710 kann
ferner zusätzliche
Steuersignale an die nichtflüchtigen
Speicherbausteine 712–715 bereitstellen,
einschließlich
Taktsignale für
einen synchronen Betrieb, Burst-Steuersignale, Rücksetzsignale, Power-Management-Signale
oder andere Signale oder Befehle.
-
In
erneutem Bezug auf die Abbildung aus 3 können die
Systemspeicher-Steuereinheit 304 und die Speichermodul-Steuereinheiten 310 und 316 unter
Verwendung einer Reihe von Protokollen miteinander kommunizieren,
wie dies bereits vorstehend im Text beschrieben worden ist. Im Allgemeinen
können
diese Protokolle multiplexiert werden, so dass bestimmte oder alle
der Adress-, Steuerungs- und Dateninformationen über die gleichen Busleitungen
des Systemspeicherbusses 323 gesendet werden. Alternativ
können
die Protokolle gemäß der Abbildung
aus 3 demultiplexiert werden, wobei die Daten über einen
separaten Datenbus von den Adress- und Steuerungsinformationen übermittelt
werden. Unabhängig
davon, ob das Protokoll multiplexiert oder demultiplexiert wird,
kann das Protokoll auch gekoppelt oder entkoppelt werden. Das heißt, das
Protokoll kann gekoppelt sein, wenn die Systemspeicher-Steuereinheit
ihre Speichertransaktionen zu einem ersten Zeitpunkt zu dem Systemspeicherbus 323 sendet
und die angeforderten Daten (für
den Fall einer Lesetransaktion) oder ein Quittungssignal zu einem
zweiten Zeitpunkt erwartet (d.h. eine zeitlich gesteuerte Antwort
bzw. Reaktion). Das Protokoll kann entkoppelt werden, indem ein
Handshaking- oder gültiges
Signal verwendet wird, um den Beginn einer Speichertransaktion anzuzeigen
oder um anzuzeigen, wenn gültige
Daten von der Systemspeicher-Steuereinheit 304 der Speichermodul-Steuereinheitren 310 oder 316 zu
dem Systemspeicherbus 323 übermittelt werden.
-
Die
Abbildung aus 8 zeigt ein Blockdiagramm der
Speichermodul-Steuereinheit 800, die ein Ausführungsbeispiel
der Speichermodul-Steuereinheit 310 unter Verwendung eines
zeitlich multiplexierten Protokolls darstellt. Bei einem Ausführungsbeispiel
eines zeitmultiplexierten Protokolls kann es sich um die Base und
Concurrent RambusTM-Protokolle handeln.
Andere Protokolle können
ebenfalls verwendet werden. Hiermit wird ferner festgestellt, dass
die Speichermodul-Steuereinheit 800 nur ein Ausführungsbeispiel
für eine
Speichermodul-Steuereinheit darstellt. Andere Ausführungsbeispiele
können
ebenso verwendet werden, ohne dabei vom Umfang der vorliegenden
Erfindung abzuweichen.
-
Die
Speichermodul-Steuereinheit 800 stellt eine Schnittstellenverbindung
zu dem Systemspeicherbus 823 her, der eine oder mehrere
Taktsignalleitungen 824, einen Transaktionsbus 826 und
optional ein gültiges Signal 828 aufweist.
Der Transaktionsbus 826 ist ein universeller Bus, der Adress-,
Daten- und Steuerinformationen für
eine Speichertransaktion führen
kann. Das gültige
Signal 828 stellt ein oder mehrere Handshaking-Signale dar, die
für ein
entkoppeltes Protokoll verwendet werden können, um den Beginn einer Speichertransaktion
anzuzeigen, oder um anzuzeigen, wenn gültige Daten auf dem Transaktionsbus 826 vorliegen.
Das gültige
Signal 828 kann gesteuert durch die Steuerlogik 802 durch
die Handshake-Logik 806 überwacht und erzeugt werden.
Das gültige
Signal bzw. Gültigkeitssignal 828 kann
für ein
gekoppeltes Protokoll weggelassen werden. Die Speichermodul-Steuereinheit 800 stellt
ebenfalls eine Schnittstellenverbindung mit Speicherbausteinen au
einem Speichermodul her (wie dies in 3 abgebildet
ist), indem ein Taktsignal 830, Adresssignale 832,
Steuersignale 823 und Datensignale 836 bereitgestellt
werden. Das Taktsignal 830 kann für asynchrone Speicherbausteine
weggelassen werden.
-
Die
Speichermodul-Steuereinheit 800 weist eine Anforderungsbehandlungslogik 804 für die Schnittstellenverbindung
mit dem Transaktionsbus 826 auf. Die Anforderungsbehandlungslogik 804 kann
eine Deserialisierungslogik aufweisen, welche die auf dem Transaktionsbus 826 bereitgestellten
multiplexierten Steuer-, Adress- und Dateninformationen separieren
bzw. trennen kann, und welche diese Signale über die entsprechenden Leitungen 838, 840 und 842 an
die Steuerlogik 802 bereitstellen kann. Die Anforderungsbehandlungslogik 804 kann
ferner auch eine Serialisierungslogik aufweisen, welche die Steuer-,
Adress- und Dateninformationen auf den entsprechenden Leitungen 838, 840 und 842 in
eine zeitmultiplexierte Reihe von Signalen serialisieren kann, die
dem Transaktionsbus 826 bereitgestellt werden können.
-
Die
Steuerlogik 802 ist die Intelligenz der Speichermodul-Steuereinheit 800 und
erzeugt die entsprechenden Steuer-, Adress- und Datensignale für die Speichermodul-Speicherbausteine
als Reaktion auf die von der Anforderungsbehandlungslogik 804 empfangenen
Signale. Jeder Speichermodul-Speicherbaustein in jedem Modul kann
eine andere Steuerlogik aufweisen, die eine bestimmte Umsetzung
zwischen den Signalarten und dem Protokoll auf dem Systemspeicherbus
umsetzen kann sowie die spezifischen Speichersignale und das von
den Speicherbausteinen auf dem Speichermodul erwarteten Protokoll.
Zum Beispiel kann die Steuerlogik 802 die entsprechenden
Adresssignale über
die Leitungen 844 an die Adressschnittstellenschaltung 818 bereitstellen,
die entsprechenden Steuersignale über die Leitungen 846 an
die Steuerschnittstellenschaltung 820, und die entsprechenden
Datensignale über
die Leitungen 848 an die Daten-E/A-Schaltkreisanordnung 822.
Die Schnittstellenschaltungen können
Puffer und Registerelemente zur Ansteuerung bzw. Steuerung der Adressen 832,
der Speichersteuersignale 834 und der Daten 836 aufweisen.
-
Die
Schnittstellenschaltungen 818, 810 und 822 können durch
ein von dem Taktgenerator 810 erzeugtes Taktsignal getaktet
werden. Der Taktgenerator 810 kann auch ein Taktsignal
an die Steuerlogik 802 und an die Taktpuffer 816 bereitstellen,
welche das Taktsignal 830 und/oder Taktfreigabesignale
zu den Speicherbausteinen auf einem Speichermodul steuern können. Der
Taktgenerator 810 kann Taktsignale als Reaktion auf den
Takt 824 erzeugen, der durch den Systemspeicherbus 823 bereitgestellt
wird. Das Signal CLK 830 kann eine andere Frequenz aufweisen
als der Takt 824. Die Speichermodul-Steuereinheit 800 oder
der Taktgenerator 810 kann ferner eine DLL-, Taktpuffer-
oder Taktteilerschaltung aufweisen, welche den Takt 824 formt
oder verändert,
bevor dieser den Taktgenerator 810 erreicht.
-
Die
Speichermodul-Steuereinheit 800 kann ferner eine Power-Manager-Einheit 808 aufweisen,
die gesteuert durch die Steuerlogik 802 den Taktgenerator 810 freigeben
oder deaktivieren kann. Dies kann wiederum den Takt 830 oder
ein Taktfreigabesignal freigaben oder sperren, der bzw. das an die
Speicherbausteine auf einem Speichermodul bereitgestellt wird, um
die Leistung zu steuern bzw. zu regeln, die durch die Speicherbausteine
verbraucht wird.
-
Die
Speichermodul-Steuereinheit 800 kann ferner eine Auffrischlogik 814 und
eine Prefetch-Logik 812 aufweisen.
Gesteuert durch die Steuerlogik 802 kann die Auffrischlogik 814 Auffrischungssteuersignale
an die Speicherbausteine an einem Speichermodul über die Steuerschnittstellenschaltung 820 senden.
Die Steuerlogik 802 kann den Auffrischungsbefehl zu einem
geeigneten Zeitpunkt erzeugen, oder sie kann einen Auffrischungsbefehl
als Reaktion auf einen Auffrischungsbefehl erzeugen, der über den
Transaktionsbus 826 von der Systemspeicher-Steuereinheit 304 gesendet
worden ist. Die Prefetch-Logik 812 kann gesteuert durch
die Steuerlogik 802 eine Datenseite von Speicherbausteinen
(z.B. DRAM-Bausteinen)
vorab erfassen (Prefetching) und die vorab erfassten Daten zur Verwendung
in Speicherlesetransaktionen speichern.
-
Die
Speichermodul-Steuereinheit 800 kann ferner eine serielle
Präsenzdetektierungsschaltkreisanordnung,
eine ECC-Schaltkreisanordnung, eine Stromkalibrierungsschaltkreisanordnung
und andere Schaltkreisanordnungen aufweisen, die entweder von der
Systemspeicher-Steuereinheit oder von Speicherbausteinen entfernt
werden können,
um die Komplexität
der Designs dieser Bauteile zu reduzieren. Dies kann die Anzahl
der Pins bzw. der Stifte an der Systemspeicher-Steuereinheit reduzieren.
-
Die
Abbildung aus 19 zeigt ein Flussdiagramm,
das ein Ausführungsbeispiel
der Funktionsweise der Speichermodul-Steuereinheit 800 für Schreib-
und Lesetransaktionen veranschaulicht. Das Verfahren kann ein Pipeline-Verfahren
darstellen oder in einem einstufigen Prozess implementiert werden.
Hiermit wird festgestellt, dass die Speichermodul-Steuereinheit 800 deutlich
mehr Funktionen ausführen
kann als die Umsetzung von Schreib- und Lesetransaktionen zwischen der
Systemspeicher-Steuereinheit und den Speicherbausteinen auf einem
Speichermodul.
-
Der
Prozess beginnt mit dem Schritt 902. In dem Schritt 904 empfängt die
Speichermodul-Steuereinheit 800 eine
Speichertransaktionsanforderung auf dem Transaktionsbus 826.
Die Datenbehandlungslogik 804 deserialisiert die Transaktion
in dem Schritt 906, um die Adress-, Steuer- und Dateninformationen
der Transaktion zu erhalten. In dem Schritt 908 prüft die Steuerlogik 802 die
deserialisierten Informationen und bestimmt, ob die Transaktion
an einen Speicherbaustein des Moduls gerichtet ist, das durch die
Speichermodul-Steuereinheit 800 gesteuert wird. Dies kann
erreicht werden, indem die empfangene Speicheradresse geprüft wird, um
festzustellen, ob sie einer Adresse entspricht, die von einem der
Speicherbausteine in dem Speichermodul belegt wird. Wenn die Transaktion
nicht an einen durch die Speichermodul-Steuereinheit 800 gesteuerten Speicherbaustein
gerichtet ist, kehrt der Prozess zu dem Schritt 902 zurück. Wenn
die Transaktion an einen durch die Speichermodul-Steuereinheit 800 gesteuerten
Speicherbaustein gerichtet ist, bestimmt die Steuerlogik 802,
welche Art von Transaktion angefordert wird in dem Schritt 910.
Wenn es sich bei der Transaktion um eine Schreibtransaktion handelt,
erzeugt die Steuerlogik 802 die entsprechenden Schreibsteuerungssignale
(z.B. WE, CS, etc.) in dem Schritt 912 und stellt diese
Signale an die Steuerungsschnittstellenschaltung 820 bereit.
In dem Schritt 914 stellt die Steuerlogik 802 danach
die Schreibdaten in dem entsprechenden Datenformat an die Daten-E/A-Schaltkreisanordnung 822 bereit
und die Adresse des ausgewählten
Speicherbausteins an die Adressschnittstellenschaltung 818.
Die Schreibdaten können
in einem Schreibpuffer (nicht abgebildet) gepuffert werden. Die
Daten können
danach an den gewünschten
Speicherplatz des ausgewählten Speicherbausteins
geschrieben werden. In dem Schritt 916 kann ein optionales
Quittungssignal bzw. Bestätigungssignal
zurück
zu der Systemspeicher-Steuereinheit
gesendet werden, nachdem der Schreibvorgang abgeschlossen ist. Der
Prozess kehrt danach zu dem Schritt 902 zurück.
-
Wenn
es sich bei der Transaktion um eine Lesetransaktion handelt, stellt
die Steuerlogik 802 die Leseadresse des ausgewählten Speicherbausteins
an die Adressschnittstelleneinheit bereit. In dem Schritt 920 erzeugt
die Steuerlogik 802 die entsprechenden Lesesteuerungssignale
(z.B. WE, CS, OE, etc.) und stellt diese Signale an die Steuerungsschnittstellenschaltung 820 bereit.
Die Daten können
danach aus dem gewünschten
Speicherplatz des ausgewählten
Speicherbausteins gelesen werden. Die Lesedaten können in
einem Lesepuffer (nicht abgebildet) gepuffert, in der Steuerlogik 802 gespeichert
oder registriert werden. In dem Schritt 922 können die
Lesedaten an die Anforderungsbehandlungslogik 804 bereitgestellt
werden, wo sie serialisiert werden und von anderen Daten eingerahmt
werden können,
wie zum Beispiel einer Anforderungsnummer, die diese spezielle Lesetransaktion
anzeigt. In dem Schritt 924 können die Lesedaten danach zurück zu der
Systemspeicher-Steuereinheit gesendet werden, wenn der Systemspeicherbus 823 frei
ist oder wenn alle vorherigen Transaktionen abgeschlossen sind.
In einem Ausführungsbeispiel
kann die Handshake-Logik 806 oder eine andere Logik (z.B.
die Anforderungsbehandlungslogik 804, die Steuerlogik 802 oder
eine andere Busüberwachungslogik)
die Aktivität
auf dem Systemspeicherbus 802 überwachen und der Steuerlogik 802 anzeigen,
wenn die Speichermodul-Steuereinheit 800 an der Reihe ist,
ihre gelesenen Daten auf dem Bussystem-Speicherbus 823 zu
der Systemspeicher-Steuereinheit zu senden. Die Lesedaten können mit
dem Gültigkeitssignal 828 in
einem entkoppelten System zurück
gesendet werden. Der Prozess kehrt danach zu dem Schritt 902 zurück.
-
Die
Abbildung aus 10 zeigt ein Blockdiagramm der
Speichermodul-Steuereinheit 1000, die ein Ausführungsbeispiel
der Speichermodul-Steuereinheit 310 unter Verwendung eines
demultiplexierten Protokolls darstellt. Ein Ausführung eines demultiplexierten
Protokolls kann das Protokoll Direct RambusTM darstellen.
Andere Protokolle können
ebenfalls verwendet werden. Hiermit wird ferner festgestellt, dass
die Speichermodul-Steuereinheit 1000 nur ein Ausführungsbeispiel
der Speichermodul-Steuereinheit darstellt. Andere Ausführungsbeispiele
können
ebenfalls verwendet werden, ohne von dem Umfang der vorliegenden
Erfindung abzuweichen.
-
Die
Speichermodul-Steuereinheit 1000 stellt eine Schnittstellenverbindung
zwischen dem Systemspeicherbus 1023 bereit, der eine oder
mehrere Taktsignalleitungen 1024, einen Befehls- und Adressbus CMD/ADDR 1026,
einen Datenbus 1027 und optional ein Gültigkeitssignal 1028 aufweist.
Der CMD/ADDR-Bus 1026 kann sowohl Adress- als auch Steuerinformationen
für eine
Speichertransaktion führen. Alternativ
kann der CMD/ADDR-Bus 1026 in
separate Befehls- und Adressbusse aufgeteilt werden. Das Gültigkeitssignal 1028 ist
ein Handshaking-Signal, das für
ein entkoppeltes Protokoll verwendet werden kann, um den Beginn
einer Speichertransaktion anzuzeigen oder um anzuzeigen, wenn gültige Daten
auf dem Transaktionsbus 1026 vorhanden sind. Das Gültigkeitssignal
kann überwacht
und durch die Handshake-Logik 1006 erzeugt werden, gesteuert
durch die Steuerungslogik 1002. Das Gültigkeitssignal 1028 kann
für ein
gekoppeltes Protokoll weggelassen werden. Die Speichermodul-Steuereinheit 1000 weist
ferner eine Schnittstellenverbindung mit Speicherbausteinen auf
einem Speichermodul auf (wie in 3), indem
ein Taktsignal 1030, Adresssignale 1032, Steuersignale 1023 und
Datensignale 1036 bereitgestellt werden. Das Taktsignal 1030 kann
für asynchrone
Speicherbausteine weggelassen werden.
-
Die
Speichermodul-Steuereinheit 1000 weist eine Anforderungsbehandlungslogik 1004 für eine Schnittstellenverbindung
mit dem Transaktionsbus 1026 auf. Die Anforderungsbehandlungslogik 1004 kann eine
Deserialisierungslogik aufweisen, welche die multiplexierten Steuer-
und Adressinformationen separieren kann, die auf dem CMD/ADDR-Bus 1026 bereitgestellt
werden, und diese Signale über
die entsprechenden Leitungen 1042 und 1044 an
die Steuerlogik 1002 bereitstellen. Die Anforderungsbehandlungslogik 1004 kann auch
eine Serialisierungslogik aufweisen, welche Steuer- und Adressinformationen
auf den entsprechenden Leitungen 1042 und 1044 in
eine Reihe von Signalen serialisieren kann, die an den CMD-ADDR-Bus 1026 bereitgestellt
werden.
-
Die
Speichermodul-Steuereinheit 1000 weist ferner eine Datenbehandlungslogik 1046 auf,
die Daten von dem Datenbus 1027 empfangen kann, wobei sie
ferner die Daten in einem neuen Format neu formatieren kann, das
sich für
die Speicherbausteine eignet, und sie kann die neu formatierten
Daten an den Schreibpuffer 1012 bereitstellen. In einem
Ausführungsbeispiel
kann die Datenbehandlungslogik 1046 eine Deserialisierungs-
oder Entpackungslogik aufweisen, um die Umsetzung zum Beispiel zwischen
einem schmalen (z.B. 16 Bit) Datenbus 1027 und einem breiteren
(z.B. 64 Bit) Speicherbaustein-Datenbus 1036 auszuführen. Die
Daten können
in dem Schreibpuffer 1012 gespeichert werden, bis sie über eine
Daten-E/A-Schaltkreisanordnung 1022 an
einen Speicherbaustein bereitgestellt werden müssen. Eine entsprechende Adresse
für die
Schreibdaten können
in der Adressspeichereinheit 1014 gespeichert werden. In
einem alternativen Ausführungsbeispiel
kann der Schreibpuffer 1012 weggelassen werden. Die Datenbehandlungslogik 1046 kann
ferner Daten von den Speicherbausteinen eines Speichermoduls über die
Daten-E/A-Schaltkreisanordnung 1022 und/oder den Lesepuffer 1038 empfangen.
Die Datenbehandlungslogik kann danach die Daten neu in einem Format
formatieren, das das Protokoll des Systemspeicherbusses 1023 erwartet.
In einem Ausführungsbeispiel
kann die Datenbehandlungslogik 1046 eine Serialisierungs-
und Packlogik aufweisen, um die Umsetzung zum Beispiel zwischen
einem breiteren (z.B. 64 Bit) Speicherbaustein-Datenbus 1036 und
einem schmaleren (z.B. 16 Bit) Datenbus 1027 auszuführen. In
einem anderen Ausführungsbeispiel
kann die Datenbehandlungslogik weggelassen werden, und die Formatierung
der Daten kann durch die Steuerlogik 1002 ausgeführt werden.
-
Die
Steuerlogik 1002 ist die Intelligenz der Speichermodul-Steuereinheit 1000 und
stellt die entsprechenden Steuer-, Adress- und Datensignale für die Speichermodul-Speicherbausteine
als Reaktion auf die von der Anforderungsbehandlungslogik 1004 empfangenen
Signale bereit. Jede Speichermodul-Steuereinheit in jedem Modus
kann eine andere Steuerlogik aufweisen, die eine bestimmte Umsetzung
zwischen Signalarten und dem Protokoll auf dem Systemspeicherbus
und spezifischen Speichersignalen und dem von den Speicherbausteinen
auf dem Speichermodul erwarteten ausführt. Zum Beispiel kann die
Steuerlogik 1002 die entsprechenden Adresssignale an die
Adressschnittstellenschaltung 1018 über die Leitungen 1048 bereitstellen,
die entsprechenden Steuersignale an die Steuerschnittstellenschaltung 1020 über die
Leitungen 1050 und die entsprechenden Datensignale an die
Daten-E/A-Schaltkreisanordnung 1022,
indem der Schreibpuffer 1012 über die Leitung 1052 und
der Adressspeicher 1014 über die Leitung 1054 gesteuert
werden. Die Steuerlogik 1002 kann auch das entsprechende
Steuersignal an den Lesepuffer 1038 bereitstellen, um zu
steuern, wenn Daten, die aus einem Speicherbaustein auf einem Speichermodul
gelesen werden, an die Datenbehandlungslogik 1046 bereitgestellt
werden. Die Schnittstellenschaltungen können Puffer und Registerelemente
aufweisen, um die Adress- 1032, die Speichersteuersignale 1034 und
die Daten 1036 zu steuern.
-
Die
Schnittstellenschaltungen 1018, 1020 und 1022 können durch
ein durch den Taktgenerator 1010 erzeugtes Taktsignal getaktet
werden. Der Taktgenerator 1010 kann auch ein Taktsignal
an die Steuerlogik 1002 und an die Taktpuffer 1016 bereitstellen,
wobei das Taktsignal 1030 und/oder die Taktfreigabesignale
an Speicherbausteine auf einem Speichermodul gesteuert werden können. Der
Taktgenerator 1010 kann Taktsignale als Reaktion auf ein
durch die DLL 1058 bereitgestelltes Taktsignal erzeugen.
Die DLL 1058 kann ein oder mehr Taktsignale 1024 empfangen,
die von dem Systemspeicherbus 1023 bereitgestellt werden.
Das Signal 1030 kann eine andere Frequenz aufweisen als
der Takt 1024.
-
Die
Speichermodul-Steuereinheit 1000 kann ferner eine Power-Manager-Einheit 1008 aufweisen,
die gesteuert durch die Steuerlogik 1002 den Taktgenerator
freigeben oder sperren kann. Dies kann wiederum den Takt 1030 freigeben
oder sperren oder die Bereitstellung eines Taktfreigabesignals an
die Speicherbausteine auf einem Speichermodul, um die von diesen
Speicherbausteinen verbrauchte Leistung zu regeln.
-
Die
Speichermodul-Steuereinheit 1000 kann optional eine Adressspeicherlogik 1040 aufweisen,
die mit der Steuerlogik 1002, der Adressschnittstellenlogik 1018 und
optional dem Taktgenerator 1010 gekoppelt ist. Der Adressspeicher 1040 kann
eingesetzt werden, um Adressinformationen zu speichern, die von
dem CMD/ADDR 1026 bereitgestellt werden.
-
Die
Speichermodul-Steuereinheit 1000 kann ferner eine Auffrischungs-
und Prefetch-Logik gemäß der Darstellung
aus 8 aufweisen, welche gesteuert durch die Steuerlogik 1002 arbeitet.
Die Speichermodul-Steuereinheit 1000 kann ferner eine serielle
Präsenzdetektierungsschaltkreisanordnung,
eine ECC-Schaltkreisanordnung, eine Stromkalibrierungsschaltkreisanordnung
und sonstige Schaltkreisanordnungen aufweisen, die entweder von
der Systemspeicher-Steuereinheit oder von den Speicherbausteinen
entfernt werden können,
um die Komplexität
dieser Bauteile zu reduzieren. Dies kann die Anzahl der Pins bzw.
Stifte an der Systemspeicher-Steuereinheit reduzieren.
-
Die
Abbildung aus 11 zeigt ein Flussdiagramm eines
Ausführungsbeispiels
der Funktionsweise der Speichermodul-Steuereinheit 1000 für Schreib-
und Lesetransaktionen. Der Prozess kann ein Pipeline-Prozess sein
oder in einem einstufigen Prozess implementiert werden. Hiermit
wird festgestellt, dass die Speichermodul-Steuereinheit 1000 deutlich
mehr Funktionen ausführen
kann als die Umsetzung von Schreib- und Lesetransaktionen zwischen
einer Systemspeicher-Steuereinheit und Speicherbausteinen auf einem Speichermodul.
-
Der
Prozess beginnt mit dem Schritt 1102. In dem Schritt 1104 empfängt die
Speichermodul-Steuereinheit 1000 eine
Speichertransaktionsanforderung auf dem CMD/ADDR-Bus 1026.
In dem Schritt 1006 entpackt oder deserialisiert die Datenbehandlungslogik 1004 die
Befehls- und Adressinformationen
und übermittelt
diese Informationen an die Steuerlogik 1002. In dem Schritt 1106 untersucht
bzw. prüft
die Steuerlogik 1002 die entpackten oder deserialisierten
Informationen und bestimmt, ob die Transaktion an einen Speicherbaustein
in dem Modul gerichtet ist, das durch die Speichermodul-Steuereinheit 1000 gesteuert
wird. Erreicht wird dies durch Prüfen der empfangenen Speicheradresse,
um festzustellen, ob sie einer Adresse entspricht, die von einem
der Speicherbausteine in dem Speichermodul belegt wird. Wenn die
Transaktion nicht an einen Speicherbaustein gerichtet ist, der durch
die Speichermodul-Steuereinheit 1000 gesteuert wird, kehrt
der Prozess zurück
zu dem Schritt 1102. Wenn die Transaktion an einen durch
die Speichermodul-Steuereinheit 1000 gesteuerten Speicherbaustein
gerichtet ist, bestimmt die Steuerlogik 1002, welche Art
von Transaktion angefordert wird in dem Schritt 1110. Wenn
es sich bei der Transaktion um eine Schreibtransaktion handelt,
erzeugt die Steuerlogik 1002 die entsprechenden Schreibsteuerungssignale
(z.B. WE, CS, etc.) in dem Schritt 1112 und stellt diese
Signale an die Steuerschnittstellenschaltung 1020 bereit.
Die Anforderungsbehandlungslogik 1004 kann auch die Schreibadresse
an den Adressspeicher 1014 bereitstellen. Alternativ kann
die Steuerlogik 1002 die Schreibadresse zum Beispiel an
die Adressschnittstellenschaltung 1018 bereitstellen, wenn
der Schreibpuffer 1012 nicht verwendet wird. In dem Schritt 1114 akzeptiert
die Datenbehandlungslogik 1046 Schreibdaten von 1027,
entpackt oder deserialisiert die Schreibdaten und stellt die Schreibdaten
an den Schreibpuffer 1012 bereit. In dem Schritt 1116 werden
die Schreibdaten in dem entsprechenden Datenformat an die Daten-E/A-Schaltkreisanordnung 1022 bereitgestellt.
Die Daten können
danach an den gewünschten Speicherplatz
des ausgewählten
Speicherbausteins geschrieben werden. In dem Schritt 1118 kann
ein optionales Quittungssignal nach Abschluss der Schreiboperation
zurück
zu der Systemspeicher-Steuereinheit gesendet werden. Der Prozess
kehrt danach zu dem Schritt 1102 zurück.
-
Wenn
es sich bei der Transaktion um eine Lesetransaktion handelt, erzeugt
die Steuerlogik 1002 die entsprechenden Lesesteuerungssignale
(z.B. WE, CS, OE, etc.) in dem Schritt 1120 und stellt
diese Signale an die Steuerschnittstellenschaltung 1020 bereit.
In dem Schritt 1122 stellt die Steuerlogik 1002 danach
die Leseadresse des ausgewählten
Speiherbausteins an die Adressschnittstellenschaltung 1018 bereit.
Die Daten können
danach aus dem gewünschten
Speicherplatz des ausgewählten
Speicherbausteins gelesen werden. Die gelesenen Daten können in
dem Lesepuffer 1038 gespeichert, in der Steuerlogik 1002 gespeichert
oder registriert werden. In dem Schritt 1124 können die
Lesedaten an die Datenbehandlungslogik 1046 bereitgestellt
werden, wo sie serialisiert oder gepackt und von anderen Daten eingerahmt
werden können,
zu denen zum Beispiel eine Anforderungsnummer zählt, welche diese spezielle
Lesetransaktion anzeigt. In dem Schritt 1126 können die
Lesedaten danach zu dem Systemspeicher zurück gesendet werden, wenn der
Systemspeicherbus frei ist oder wenn alle vorherigen Transaktionen
abgeschlossen sind. In einem Ausführungsbeispiel kann die Handshake-Logik 1006 oder
eine andere Logik (z.B. die Anforderungsbehandlungslogik 1004, die
Datenbehandlungslogik 1046, die Steuerlogik 1002 oder
eine andere Busüberwachungslogik)
die Aktivität auf
dem Systemspeicherbus 1023 überwachen und der Steuerlogik 1002 anzeigen,
wenn die Speichermodul-Steuereinheit 1000 an der Reihe
ist, ihre Lesedaten zu der Systemspeicher-Steuereinheit auf dem
Systemspeicherbus 1023 zu senden. Gültige gelesene Daten können in
einem entkoppelten System mit dem Gültigkeitssignal 1028 zurück gesendet
werden. Der Prozess kehrt danach zu dem Schritt 1102 zurück.
-
Die
Abbildung aus 12 zeigt ein Blockdiagramm des
Speichermoduls 1200, das ein Ausführungsbeispiel des Speichermoduls 306 aus 3 darstellt.
Das Speichermodul 1200 ist ein SDRAM-Modul, das die SDRAM-Bausteine 1204–1207 und
die Speichermodul-Steuereinheit 1202 aufweist.
Die Speichermodul-Steuereinheit 1202 stellt eine Brücke bereit
zwischen dem Systemspeicherbus 1242 unter Verwendung des
Protokolls Direct RambusTM (und gekoppelt
mit einer Systemspeicher-Steuereinheit) und den SDRAM-Bausteinen 1204–1207.
Das Protokoll Direct RambusTM umfasst die
Taktsignale CLK 1228, /CLK 1230 (wobei das Zeichen „/" ein komplementäres Signal
anzeigt), die Datenleitungen 1232, die Zeilenadressleitungen 1234 und
die Spaltenadressleitungen 1236. Die Daten können 16
Signalleitungen aufweisen, wobei die Zeilenadresse drei Signalleitungen
aufweisen kann, und wobei die Spaltenadresse fünf Signalleitungen aufweisen
kann, wie dies in dem Datenblatt Advance Information Direct RDRAMTM 64/72-Mbit (256K × 16/18 × 16d) beschrieben ist. In einem
Ausführungsbeispiel
können
CLK 1228 und /CLK 1230 eine Frequenz von ungefähr 400 MHz
aufweisen. Andere von diesem Protokoll verwendete Signale sind nicht
abgebildet, um die vorliegende Erfindung nicht unnötig zu verschleiern.
-
Die
Speichermodul-Steuereinheit 1202 stellt von dem Systemspeicherbus 1242 empfangene
Speichertransaktionen an die SDRAMs 1204–1207 bereit.
In einem Ausführungsbeispiel
kann es sich bei den SDRAMs 1204–1207 um 64 Mb SDRAMs
handeln, wie sie in dem vorläufigen
Datenblatt der Produkte von IBM IBM0364804C, IBM0364164C, IBM0364404C
und IBM03644B4C, veröffentlicht
im November 1997, beschrieben sind. Andere SDRAMs können ebenfalls
verwendet werden.
-
Die
Speichermodul-Steuereinheit 1202 stellt erste Steuerinformationen
an die SDRAMs 1204 und 1205 über den Steuerbus 1238 bereit
sowie zweite Steuerinformationen an die SDRAMs 1206 und 1207 über den
Steuerbus 1240. Der Steuerbus 1240 kann ein Taktsignal
CLK 1208, ein Taktfreigabesignal CKE 1209, ein Schreibfreigabesignal
WE 1210, ein Spaltenadress-Strobe-Signal CAS 1211, ein
Zeilenadresssignal RAS 1212 und eines oder mehrere Chipauswahlsignale
CS 1213 aufweisen. In ähnlicher
Weise kann der Steuerbus 1240 Taktsignal CLK 1216,
ein Taktfreigabesignal CKE 1217, ein Schreibfreigabesignal
WE 1218, ein Spaltenadress-Strobe-Signal CAS 1219,
ein Zeilenadresssignal RAS 1220 und eines oder mehrere
Chipauswahlsignale CS 1221 aufweisen. In einem Ausführungsbeispiel
kann die Frequenz von CLK 1208 und CLK 1216 ungefähr 100 MHz
bis 200 MHz betragen. Andere Frequenzen können ebenfalls verwendet werden.
Die Speichermodul-Steuereinheit kommuniziert ferner Speicheradresssignale über den
Adressbus 1214 zu den SDRAMs 1204 und über den
Adressbus 1222 zu den SDRAMs 1206 und 1207.
In einem Ausführungsbeispiel kann
jeder Adressbus 12 Adressleitungen und zusätzliche Zweibank-Auswahlleitungen
für die
Auswahl von Speicherbänken
in jedem SDRAM-Baustein aufweisen. In einem alternativen Ausführungsbeispiel
kann es sich bei dem Steuerbus 1238 und 1240 um
den gleichen Bus wie in der Abbildung aus 3 handeln.
In ähnlicher
Weise können
die Adressbusse 1214 und 1222 den gleichen Bus
darstellen. Die Speichermodul-Steuereinheit kommuniziert ferner über die
entsprechenden Signalleitungen 1224, 1225, 1226 und 1227 Lese-
und Schreibdaten mit den SDRAMs 1204, 1205, 1206 und 1207.
In einem Ausführungsbeispiel
kann jede Gruppe von Signalleitungen 16 Datenleitungen aufweisen.
-
Die
Abbildung aus 13 zeigt ein Ausführungsbeispiel
eines Verfahrens, das durch die Speichermodul-Steuereinheit 1202 implementiert
wird, um eine Lesetransaktion von einem oder mehreren der SDRAMs 1204–1207 nach
dem Empfang einer Leseanforderung von dem Systemspeicherbus 1242 auszuführen. Die Abbildung
aus 13 wird unterstützt durch das exemplarische
Zeitsteuerungsdiagramm aus 14 beschrieben.
Hiermit wird festgestellt, dass die Abbildung aus 14 den
Takt CLK 1228 mit ungefähr
der zweifachen Frequenz von CLK 1208 zeigt. In einem Ausführungsbeispiel
kann CLK 1228 eine Frequenz von ungefähr 400 MHz aufweisen, und CLK 1208 kann
eine Frequenz von ungefähr
200 MHz aufweisen. In anderen Ausführungsbeispielen können verschiedene
Verhältnisse
von Frequenzen und/oder verschiedene Frequenzen verwendet werden.
-
Die
Speichermodul-Steuereinheit 1202 kann den Prozess aus 13 unter
Verwendung der Schaltkreisanordnung implementieren, die in dem Speichermodul 1000 aus 10 dargestellt
ist. Zum Beispiel entspricht CLK 1024 CLK 1228,
CMD/ADDR 1026 entspricht Zeile 1234 und Spalte 1236,
Daten 1027 entspricht Daten 1232, CLK 1030 entspricht
CLK 1208, Adresse 1032 entspricht Adresse 1214,
die Speichersteuerungssignale 1034 entsprechen dem Steuerbus 1238 und
Daten 1036 entsprechen Daten 1224. In anderen
Ausführungsbeispielen
können
andere Ausführungsbeispiele
zur Implementierung des Prozesses aus 13 eingesetzt
werden.
-
Der
Prozess beginnt mit dem Schritt 1302. In dem Schritt 1304 und
von dem Zeitpunkt t0 bis zu dem Zeitpunkt t1 wird ein aktiver Befehl
auf den Zeilenleitungen 1234 einschließlich einer Vorrichtungs-,
Bank- und Zeilenadresse der ausgewählten Speicherplätze in einem
oder mehreren SDRAMs 1204–1207 gesendet. In dem
Schritt 1306 und von dem Zeitpunkt t2 bis zu dem Zeitpunkt
t3 deserialisiert die Datenanforderungslogik 1004 die Befehls-
und Adressinformationen und stellt diese Informationen an die Steuerlogik 1002 bereit.
Die Steuerlogik 1002 stellt danach die Zeilenadresse über den
Adressbus 1214 und/oder 1222 an die ausgewählten SDRAMs
bereit sowie den entsprechenden Bankaktivierungsbefehl über den
Steuerbus 1238 und/oder 1240 an die ausgewählten SDRAMs.
In einem Ausführungsbeispiel
umfasst der entsprechende Bankaktivierungsbefehl die Deaktivierung
der CAS-Leitungen 1211 und/oder 1219 und der WE-Leitungen 1210 und/oder 1218 sowie
die Freigabe der CS-Leitungen 1213 und/oder 1221 sowie
der RAS-Leitungen 1212 und/oder 1220 an der Anstiegsflanke
von CLK 1208 und/oder 1216.
-
Da
sich das Speicheradressierungsprotokoll, das von den Direct RDRAMTM Bausteinen bzw. Vorrichtungen verwendet
wird, von dem Protokoll unterscheiden kann, das von den ausgewählten SDRAMs
verwendet wird, kann der auf den Zeilenadressleitungen 1234 bereitgestellte
Aktivierungsbefehl Spaltenadressinformationen für die ausgewählten SDRAMs
aufweisen kann. In diesem Beispiel können die Spaltenadressinformationen
in der Adressspeichereinheit 1040 gespeichert werden, bis
zu dem Zeitpunkt, wenn die Spaltenadressinformationen an die ausgewählten SDRAMs
ausgegeben werden.
-
In
dem Schritt 1038 und von dem Zeitpunkt t4 bis zu dem Zeitpunkt
t6 wird ein Lesebefehl auf den Spaltenleitungen 1236 gesendet.
Der Lesebefehl umfasst Baustein-, Bank- und Spaltenadressinformationen für den gewünschten
Speicherplatz in den ausgewählten
SDRAMs. In dem Schritt 1310 und von dem Zeitpunkt t6 bis
zu dem Zeitpunkt t7 deserialisiert die Anforderungsbehandlungslogik 1004 den
Lesebefehl und stellt diese Informationen an die Steuerlogik 1002 bereit.
Die Steuerlogik 1002 stellt danach die Spaltenadresse und den
Lesebefehl über
den Adressbus 1214 und/oder 1222 und entsprechend über den
Steuerbus 1238 und/oder 1240 an die ausgewählten SDRAMs
bereit. In einem Ausführungsbeispiel
weist der entsprechende Lesebefehl die Deaktivierung der RAS-Leitungen 1212 und/oder 1220 und
der WE-Leitungen 1210 und/oder 1218 auf sowie
die Freigabe der CS-Leitungen 1213 und/oder 1221 sowie
der CAS-Leitungen 1211 und/oder 1219 an der Anstiegsflanke
von CLK 1208 und/oder CLK 1216.
-
Wenn
eine Differenz zwischen der in den ausgewählten SDRAMs ausgewählten Bytes
und der Anzahl der von einer einzelnen Lesetransaktion von der Systemspeicher-Steuereinheit
erwarteten Bytes gegeben ist, so können die Schritte 1308 und 1310 so
oft wie gewünscht
wiederholt werden, um eine Anpassung an die Anzahl von Bytes vorzunehmen.
Wenn, wie dies in der Abbildung aus 14 dargestellt
ist, zum Beispiel der erste Lesebefehl READ1 in der Spalte 1236 (gemeinsam
mit dem Aktivierungsbefehl in Zeile 1234) 16 Datenbytes
adressiert und der Lesebefehl an die ausgewählten SDRAMs 32 Datenbytes
adressiert, so kann ein zweiter Lesebefehl READ2 zwischen dem Zeitpunkt
t6 und dem Zeitpunkt t9 ausgegeben werden, um die zweiten 16 Bytes
zu adressieren.
-
In
dem Schritt 1312 und von dem Zeitpunkt t8 bis zu dem Zeitpunkt
t15 kann die Daten-E/A-Schaltkreisanordnung 1022 aus
den ausgewählten
SDRAMs ausgelesene Daten empfangen.
-
Zum
Beispiel können
32 Datenbytes auf die folgende Art und Weise aus den vier SDRAMs 1204 bis 1207 gelesen
werden: zwischen dem Zeitpunkt t8 und dem Zeitpunkt t10 kann die
Daten-E/A-Schaltkreisanordnung 1022 das Datenpaket D0 empfangen,
das die ersten acht Bytes aufweist, zwei Bytes von jedem der vier
SDRAMs 1204–1207;
von dem Zeitpunkt t10 bis zu dem Zeitpunkt t12 das Datenpakt D1,
das die zweiten acht Bytes aufweist, zwei Bytes von jedem der vier
SDRAMs; von dem Zeitpunkt t12 bis zu dem Zeitpunkt t13 das Datenpaket
D2, das die dritten acht Bytes aufweist, zwei Bytes von jedem der
vier SDRAMs; und von dem Zeitpunkt t13 bis zu dem Zeitpunkt t14
das Datenpaket D3, das die letzten acht Bytes aufweist, zwei Bytes
von jedem der vier SDRAMs. Hiermit wird festgestellt, dass für weitere
Ausführungsbeispiele
eine andere Anzahl von Bytes und eine andere Anzahl von Zyklen erforderlich
sein können,
um die ausgewählten
Daten aus den ausgewählten
SDRAMs zu lesen.
-
Wenn
die Lesedaten empfangen werden, können sie in dem Lesepuffer 1038 gespeichert
werden, bevor die Daten an die Datenbehandlungslogik 1046 bereitgestellt
werden. Alternativ können
sie direkt an die Datenbehandlungslogik 1046 bereitgestellt
werden. In dem Schritt 1314 kann die Datenbehandlungslogik
die Daten in dem entsprechenden Format, das von der Systemspeicher-Steuereinheit
auf dem Datenbus 1232 erwartet wird, serialisieren oder
packen. In einem Ausführungsbeispiel
können
die Datenpakete D0 und D1, die insgesamt 16 Datenbytes aus den SDRAMs 1204–1207 enthalten,
in eine unterbrechungsfreie Übermittlung DATA1
gepackt werden, die in dem Schritt 1316 an den Datenbus 1232 bereitgestellt
werden und von dem Zeitpunkt t11 bis zu dem Zeitpunkt t15. In ähnlicher
Weise können
die Datenpakete D2 und D3, die zweite 16 Datenbytes von den SDRAMs 1204–1207 enthalten,
in eine unterbrechungsfreie Übermittlung
DATA2 packen, die in dem Schritt 1316 an den Datenbus 1232 bereitgestellt
wird und von dem Zeitpunkt t14 bis zu dem Zeitpunkt t16.
-
Die
Abbildung aus 15 zeigt ein Ausführungsbeispiel
eines Ausführungsbeispiels
eines Prozesses, der durch die Speichermodul-Steuereinheit 1202 implementiert
wird, um eine Schreibtransaktion an ein oder mehrere SDRAMs 1204–1207 nach
dem Empfang einer Schreibanforderung von dem Systemspeicherbus 1242 auszuführen. Der
gleiche Prozess kann verwendet werden, um Daten in ein beliebiges
der SDRAMs zu schreiben. Die Abbildung aus 15 wird
unterstützt
durch das exemplarische Zeitsteuerungsdiagramm aus 16 beschrieben.
Die Speichermodul-Steuereinheit 1202 kann den Prozess aus 13 unter Verwendung der
Schaltkreisanordnung implementieren, die in dem Speichermodul 1000 aus 10 dargestellt
ist.
-
Hiermit
wird festgestellt, dass die Abbildung aus 15 CLK 1228 mit
ungefähr
der doppelten Frequenz von CLK 1208 zeigt. In einem Ausführungsbeispiel
kann CLK 1228 eine Frequenz von ungefähr 400 MHz aufweisen, und CLK 1208 kann
eine Frequenz von ungefähr
200 MHz aufweisen. In anderen Ausführungsbeispielen können unterschiedliche
Verhältnisse
der Frequenzen und/oder andere Frequenzen eingesetzt werden.
-
Der
Prozess beginnt mit dem Schritt 1502. In dem Schritt 1504 und
von dem Zeitpunkt t0 bis zu dem Zeitpunkt t4 wird ein Aktivierungsbefehl
auf den Zeilenleitungen 1234 gesendet, einschließlich der
Baustein-, Bank- und Zeilenadresse der Speicherplätze in einem
oder mehreren der ausgewählten
SDRAMs 1204–1207. In
dem Schritt 1506 deserialisiert die Datenanforderungslogik 1004 die
Befehls- und Adressinformationen und stellt diese Informationen
an die Steuerlogik 1002 bereit.
-
Da
sich das von den Direct RDRAMTM Bausteinen
verwendete Speicheradressierungsprotokoll von dem Protokoll unterscheiden
kann, welches die SDRAMs 1204–1207 verwenden, kann
der auf den Zeilenadressleitungen 1234 bereitgestellte
Aktivierungsbefehl Spaltenadressinformationen für die ausgewählten SDRAMs
aufweisen. In dem vorliegenden Beispiel können diese Spaltenadressinformationen
in der Adressspeichereinheit 1040 gespeichert werden, bis
die Spaltenadressinformationen an die ausgewählten SDRAMs ausgegeben werden.
-
In
dem Schritt 1508 und von dem Zeitpunkt t2 bis zu dem Zeitpunkt
t3 wird ein Schreibbefehl auf den Spaltenleitungen 1236 gesendet.
Der Schreibbefehl umfasst Baustein-, Bank- und Spaltenadressinformationen
für die
gewünschten
Schreibpositionen in den ausgewählten
SDRAMs. In dem Schritt 1510 deserialisiert die Anforderungsbehandlungslogik 1004 den
Schreibbefehl und stellt diese Informationen an die Steuerlogik 1002 bereit.
Wenn zwischen der ausgewählten
Anzahl von Bytes zum Schreiben in die ausgewählten SDRAMs und der Anzahl
der durch die Systemspeicher-Steuereinheit ausgewählten Anzahl
von Bytes eine Differenz gegeben ist, so können die Schritte 1508 und 1510 so
oft wie gewünscht
wiederholt werden, um eine Angleichung der Anzahl von Bytes vorzunehmen.
Wenn gemäß der Abbildung
aus 16 zum Beispiel der erste Schreibbefehl WRITE1
in Spalte 1236 (in Verbindung mit dem Aktivierungsbefehl
in Zeile 1234) 16 Datenbytes auswählt und der Schreibbefehl an
die ausgewählten
SDRAMs 32 Datenbytes adressiert, so kann ein zweiter Schreibbefehl
WRITE2 von dem Zeitpunkt t3 bis zu dem Zeitpunkt t4 ausgegeben werden,
um die zweiten 16 Bytes zu adressieren.
-
In
dem Schritt 1512 und von dem Zeitpunkt t5 bis zu dem Zeitpunkt
t6 kann die Datenbehandlungslogik 1046 Schreibdaten DATA1
von dem Datenbus 1232 empfangen und die Schreibdaten entpacken
oder deserialisieren. Die Datenbehandlungslogik 1046 kann
die Schreibdaten DATA1 in den Schreibpuffer 1012 schreiben,
und der Adressspeicher 1014 kann die Schreibadressausgabe
von der Anforderungsbehandlungslogik 1004 speichern. Wenn
ein folgender Schreib- oder Lesebefehl empfangen wird, kann die
Steuerlogik 1002 den Schreibpuffer 1012 und den
Adressspeicher 1014 für
die angeforderte Adresse überprüfen. Wenn
sich die Adresse in dem Adressspeicher 1014 befindet, so
können
die entsprechenden Daten in dem Schreibpuffer 1012 gelesen
oder überschrieben
werden. Wenn ein folgender Schreibbefehl WRITE2 ausgegeben wird,
können
die zwischen dem Zeitpunkt t8 und dem Zeitpunkt t10 empfangenen
DATA2, welche diesem Befehl zugeordnet sind, entpackt oder deserialisiert
sowie in dem Schreibpuffer 1012 gespeichert werden.
-
In
dem Schritt 1516 und von dem Zeitpunkt t6 bis zu dem Zeitpunkt
t7 stellt die Steuerlogik 1002 danach die Zeilenadresse
an die ausgewählten
SDRAMs über
den Adressbus 1214 und/oder 1222 bereit, sowie den
entsprechenden Bankaktivierungsbefehl über den Steuerbus 1238 und/oder 1240 an
die ausgewählten SDRAMs.
In einem Ausführungsbeispiel
umfasst der entsprechende Bankaktivierungsbefehl die Deaktivierung der
CAS-Leitungen 1211 und/oder 1219 und der WE-Leitungen 1210 und/oder 1218 sowie
die Deaktivierung bzw. Sperrung der CS-Leitungen 1213 und/oder 1221 und
der RAS-Leitungen 1212 und/oder 1220 an der Anstiegsflanke
von CLK 1208 und/oder CLK 1216. In dem Schritt 1518 und
von dem Zeitpunkt t9 bis zu dem Zeitpunkt t11 stellt die Steuerlogik 1002 danach
die Spaltenadresse und den Schreibbefehl über den Adressbus 1214 und/oder 1222 und
entsprechend über
den Steuerbus 1238 und/oder 1240 an die ausgewählten SDRAMs
bereit. In einem Ausführungsbeispiel
weist der entsprechende Schreibbefehl die Deaktivierung der RAS-Leitungen 1212 und/oder 1210 und
die Freigabe der CS-Leitungen 1213 und/oder 1221,
der RAS-Leitungen 1212 und/oder 1210 und der WE-Leitungen 1210 und/oder 1218 an
der Anstiegsflanke von CLK 1208 und/oder CLK 1216 auf.
-
In
dem Schritt 1520 und von dem Zeitpunkt t9 bis zu dem Zeitpunkt
t14 kann die Steuerlogik die Bereitstellung der Schreibdaten an
die ausgewählten
SDRAMs auf den Datenleitungen 1224, 1225, 1226 und/oder 1227 von
der Daten-E/A-Schaltkreisanordnung 1022 verursachen. Zum
Beispiel können
32 Datenbytes auf die folgende Weise in die vier SDRAMs 1204–1207 geschrieben
werden: von dem Zeitpunkt t9 bis zu dem Zeitpunkt t11 kann die Daten-E/A-Schaltkreisanordnung
022 das Datenpaket D0 bereitstellen, das die ersten acht Bytes aufweist,
zwei Bytes an jedes der vier SDRAMs; und von dem Zeitpunkt t11 zu
dem Zeitpunkt t12 das Datenpaket D1, das die zweiten acht Bytes
aufweist, zwei Bytes an jedes der SDRAMs 1204–1207. D0
und D1 können
DATA1 entsprechen. Darüber
hinaus kann die Daten-E/A-Schaltkreisanordnung 1022 von dem
Zeitpunkt t12 bis zu dem Zeitpunkt t13 das Datenpaket D2 bereitstelle,
das die dritten acht Bytes aufweist, zwei Bytes an jedes SDRAM 1204–1207,
und von dem Zeitpunkt t13 bis zu dem Zeitpunkt t14 das Datenpaket D3,
das die letzten acht Bytes aufweist, zwei Bytes an jedes der SDRAMs 1204–1207.
D2 und D3 können DATA2
entsprechen. Hiermit wird festgestellt, dass in Bezug auf weitere
Ausführungsbeispiele
eine andere Anzahl von Bytes und eine andere Anzahl von Zyklen erforderlich
sein können,
um die ausgewählten
Daten an die ausgewählten
SDRAMs zu schreiben. In dem vorliegenden Beispiel werden zwar in
alle DRAMs geschrieben, wobei aber in alternativen Ausführungsbeispielen
ein teilweiser Schreibvorgang in nur ein (oder weniger als alle)
der SDRAMs ausgeführt
werden kann.
-
In
einem alternativen Ausführungsbeispiel
kann die Speichermodul-Steuereinheit 1202 auch eine Brücke zwischen
dem Systemspeicherbus 1242 und den SDRAMs 1204–1207 unter
Verwendung eines modifizierten Protokolls bereitstellen. Das modifizierte
Protokoll kann demultiplexiert werden mit einem Datenbus und mit
einem separaten Steuerbus, der Steuerinformationen und Adressen
zwischen der Systemspeicher-Steuereinheit (z.B. der Systemspeicher-Steuereinheit 304 aus 3)
und der Speichermodul-Steuereinheit 1202 überträgt.
-
In
dem vorliegenden Ausführungsbeispiel
kann eine Lesetransaktion von einem oder mehreren der SDRAMs 1204–1207 ausgeführt werden,
wie dies in der Abbildung aus 17 dargestellt
ist, wobei ein Zeilenbus 1234 und ein Spaltenbus 1236 als
ein Steuerbus 1235 mit acht Signalleitungen verwendet werden.
In anderen Ausführungsbeispielen
kann eine andere Anzahl von Signalleitungen verwendet werden.
-
Von
dem Zeitpunkt t0 bis zu dem Zeitpunkt t1 wird ein Aktivierungsbefehl
auf dem Steuerbus 1235 mit Baustein-, Bank- und Zeilenadresse
ausgewählter
Speicherplätze
in den SDRAMs 1204–1207 gesendet.
Bei dem vorliegenden Ausführungsbeispiel
kann der Aktivierungsbefehl über
zwei Zyklen (z.B. Zyklus 0 und Zyklus 1 in der nachstehenden Tabelle
1) von CLK 1228 verteilt werden, wobei die Daten auf jeder
Taktflanke von CLK 1228 (d.h. doppelt gepumpt) übertragen
werden. In einem Ausführungsbeispiel
entspricht das Paketformat der Darstellung in Tabelle 1, wobei RQ[7:0]
den Signalleitungen des Steuerbusses 1235 entspricht.
-
-
Der
Aktivierungsbefehl weist verschiedene Felder auf:
- B[2:0]
Bandauswahl: Wählt
eine von acht Bänken
in den SDRAMs 1204–1207 aus;
- D[4:0] Bausteinauswahl: Wählt
eine von 25 oder 32 Speichermodul-Steuereinheiten
aus;
- R[13:0] Zeilenadresse: Stellt eine Zeilenadresse für eine oder
mehrere ausgewählte
Positionen in den SDRAMs 1204–1207 bereit; und
- ST, SF Codierter Frame/Schneller Befehl: Verwendete Bits, um
anzuzeigen, ob ein Befehl gemäß der Darstellung
aus Tabelle 2 eingerahmt ist. Die erweiterten Befehle können Snoop,
Vorladen, Auffrischen und andere Befehle umfassen.
-
-
Von
dem Zeitpunkt t2 bis zu dem Zeitpunkt t3 deserialisiert die Datenanforderungslogik 1004 die
Befehls- und Adressinformationen und stellt diese Informationen
an die Steuerlogik 1002 bereit. Die Steuerlogik 1002 stellt
danach die Zeilenadresse über
den Adressbus 1214 und/oder 1222 an die ausgewählten SDRAMs bereit
sowie den entsprechenden Bankaktivierungsbefehl über den Steuerbus 1238 und/oder 1240 an
die ausgewählten
SDRAMs (z.B. gemäß der vorstehenden
Beschreibung in Bezug auf die Abbildungen der 13 und 14).
-
Von
dem Zeitpunkt t4 bis zu dem Zeitpunkt t5 wird ein Lesebefehl auf
dem Steuerbus 1235 gesendet. Der Lesebefehl umfasst Baustein-,
Bank- und Spaltenadressinformationen für die gewünschten Lesepositionen in den
SDRAMs. In dem vorliegenden Ausführungsbeispiel
kann der Lesebefehl über
zwei Zyklen (z.B. Zyklus 0 und Zyklus 1 in der nachstehenden Tabelle
1) von CLK 1228 ausgebreitet werden und ein Paketformat gemäß der Darstellung
aus Tabelle 3 aufweisen.
-
-
Der
Lesebefehl weist verschiedene Felder auf, die in dem Aktivierungsbefehl
nicht enthalten sind:
- C[11:0] Zeilenadresse: Stellt die
Spaltenadresse für
eine oder mehrere in den SDRAMs 1204–1207 ausgewählten Positionen
bereit;
- R/W Lesen Schreiben: Zeigt an, ob es sich bei dem Befehl um
eine Lesetransaktion oder um eine Schreibtransaktion handelt. Wenn
sich das Signal in einem Logikzustand befindet, zeigt es eine Lesetransaktion
an, und wenn es sich in dem komplementären Logikzsutand befindet,
zeigt es eine Schreibtransaktion an; und
- AP Autovorladung: Zeigt an, ob die ausgewählte Spalte (oder Zeile) ausgewählter Speicherzellen
nach dem Lesen vorgeladen werden sollte.
-
Von
dem Zeitpunkt t6 bis zu dem Zeitpunkt t8 deserialisiert die Anforderungsbehandlungslogik 1004 den
Lesebefehl und stellt diese Informationen an die Steuerlogik 1002 bereit.
Die Steuerlogik 1002 stellt danach die Spaltenadresse und
den Lesebefehl über
den Adressbus 1214 und/oder 1222 und entsprechend über den
Steuerbus 1238 und/oder 1240 an die ausgewählten SDRAMs
bereit (z.B. wie dies vorstehend im text in Bezug auf die Abbildungen
der 13 und 14 beschrieben
worden ist). Wenn der erste Lesebefehl READ1 auf dem Steuerbus 1235 weniger
Datenbytes adressiert als der an die SDRAMs 1204–1207 ausgegebene
Lesebefehl, so kann von dem Zeitpunkt t7 bis zu dem Zeitpunkt t9
ein zweiter Lesebefehl READ2 ausgegeben werden.
-
Von
dem Zeitpunkt t10 bis dem Zeitpunkt t16 kann die Daten-E/A-Schaltkreisanordnung 1022 aus
den ausgewählten
SDRAMs gelesene Daten empfangen. Zum Beispiel können 32 Datenbytes auf die
folgende Art und Weise aus den vier SDRAMs 1204–1207 gelesen
werden: von dem Zeitpunkt t10 bis zu dem Zeitpunkt t11 kann die
Daten-E/A-Schaltkreisanordnung 1022 das
Datenpaket D0 empfangen, das die ersten acht Bytes aufweist, zwei
Bytes von jedem der vier SDRAMs 1204–1207; von dem Zeitpunkt
t11 bis zu dem Zeitpunkt t12 das Datenpakt D1, das die zweiten acht
Bytes aufweist, zwei Bytes von jedem der vier SDRAMs; von dem Zeitpunkt
t13 bis zu dem Zeitpunkt t14 das Datenpaket D2, das die dritten
acht Bytes aufweist, zwei Bytes von jedem der vier SDRAMs; und von
dem Zeitpunkt t14 bis zu dem Zeitpunkt t16 das Datenpaket D3, das
die letzten acht Bytes aufweist, zwei Bytes von jedem der vier SDRAMs.
Hiermit wird festgestellt, dass für weitere Ausführungsbeispiele
eine andere Anzahl von Bytes und eine andere Anzahl von Zyklen erforderlich
sein können, um
die ausgewählten
Daten aus den ausgewählten
SDRAMs zu lesen.
-
Wenn
die Lesedaten empfangen werden, können sie in dem Lesepuffer 1038 gespeichert
werden, bevor die Daten an die Datenbehandlungslogik 1046 bereitgestellt
werden. Alternativ können
sie direkt an die Datenbehandlungslogik 1046 bereitgestellt
werden. In dem Schritt 1314 kann die Datenbehandlungslogik
die Daten in dem von der Systemspeicher-Steuereinheit auf dem Datenbus 1232 erwarteten
Form serialisieren oder packen. In einem Ausführungsbeispiel können die
Datenpakete D0 und D1, welche insgesamt 16 Datenbytes von den SDRAMs 1204–1207 aufweisen,
in eine unterbrechungsfreie Übermittlung
DATA1 gepackt werden, die auf dem Datenbus 1232 von dem
Zeitpunkt t12 bis zu dem Zeitpunkt t15 bereitgestellt werden kann. In ähnlicher
Weise können
die Datenpakete D2 und D3, welche zweite 16 Datenbytes von den SDRAMs 1204–1207 enthalten,
in eine unterbrechungsfreie Übermittlung
DATA2 gepackt werden, die auf dem Datenbus 1232 von dem
Zeitpunkt t15 bis zu dem Zeitpunkt t17 bereitgestellt werden kann.
-
In
Bezug auf das vorliegende Ausführungsbeispiel
kann eine Schreibtransaktion an einen oder mehrere SDRAMs 1204–1207 gemäß der Abbildung
aus 18 ausgeführt
werden. Von dem Zeitpunkt t0 bis zu dem Zeitpunkt t1 wird ein Aktivierungsbefehl
gemäß der Abbildung
aus 1 auf dem Steuerbus 1235 gesendet, mit
einer Baustein-, Bank- und Zeilenadresse der Speicherplätze in einem
oder mehreren der SDRAMs 1204–1207. Die Datenanforderungslogik 1004 deserialisiert
die Befehls- und Adressinformationen und stellt diese Informationen
an die Steuerlogik 1002 bereit.
-
Von
dem Zeitpunkt t2 bis zu dem Zeitpunkt t3 wird ein Schreibbefehl
auf dem Steuerbus 1235 gesendet, der Baustein-, Bank- und
Spaltenadressinformationen für
die gewünschten
Schreibpositionen in den SDRAMs 1204–1207 aufweist. Der
Schreibbefehl verwendet das in der Tabelle 3 abgebildete Paketformat,
wobei das R/W-Bit entsprechend gesetzt ist, um eine Schreibtransaktion
anzuzeigen. Die Anforderungsbehandlungslogik 1004 deserialisiert
den Schreibbefehl und stellt diese Informationen an die Steuerlogik 1002 bereit. Wenn
eine Differenz zwischen der Anzahl der ausgewählten Bytes zum Schreiben in
die SDRAMs 1204–1207 (z.B.
32 Bytes) und der Anzahl der durch die einzelne Schreibtransaktion
ausgewählten
Bytes existiert, die von der Systemspeicher-Steuereinheit ausgegeben
worden ist (z.B. 16 Bytes), so kann ein erster Schreibbefehl WRITE1
auf dem Steuerbus 1235 eine erste Datenmenge (z.B. 16 Bytes)
schreiben, und ein zweiter Schreibbefehl WRITE2 kann von dem Zeitpunkt
t4 bis zu dem Zeitpunkt t5 ausgegeben werden, um eine zweite Datenmenge
(z.B. weitere 16 Bytes) zu schreiben.
-
Von
dem Zeitpunkt t6 bis zu dem Zeitpunkt t9 kann die Datenbehandlungslogik 1046 Schreibdaten DATA1
von dem Datenbus 1232 empfangen und die Schreibdaten entpacken
oder deserialisieren. Die Datenbehandlungslogik 1046 kann
die Schreibdaten DATA1 in dem Schreibpuffer 1012 speichern,
und der Adressspeicher 1014 kann die Schreibadressausgabe
der Anforderungsbehandlungslogik 1004 speichern. Wenn ein späterer Schreib-
oder Lesebefehl empfangen wird, kann die Steuerlogik 1002 den
Schreibpuffer 1012 und den Adressspeicher 1014 in
Bezug auf die angeforderte Adresse prüfen. Wenn sich die Adresse
in dem Adressspeicher 1014 befindet, so können die
entsprechenden Daten in dem Schreibpuffer 1012 gelesen
oder überschrieben
werden. Wenn ein folgender Schreibbefehl WRITE2 ausgegeben wird,
so können
die von dem Zeitpunkt t9 bis zu dem Zeitpunkt t11 empfangenen DATA2,
die diesem Befehl zugeordnet sind, entpackt oder deserialisiert
und auch in dem Schreibpuffer 1012 gespeichert werden.
-
Von
dem Zeitpunkt t7 bis zu dem Zeitpunkt t8 stellt die Steuerlogik 1002 danach
die Zeilenadresse an die ausgewählten
SDRAMs über
den Adressbus 1214 und/oder 1222 bereit sowie
den entsprechenden Bankaktivierungsbefehl an die SDRAMs 1204–1207 über den
Steuerbus 1238 und/oder 1240 (wie dies zum Beispiel vorstehend
in Bezug auf die Abbildungen de 15 und 16 beschrieben
worden ist). Von dem Zeitpunkt t11 bis zu dem Zeitpunkt t12 stellt
die Steuerlogik 1002 danach die Spaltenadresse und den
Schreibbefehl an die ausgewählten
SDRAMs über
den Adressbus 1214 und/oder 1222 und entsprechend über den
Steuerbus 1238 und/oder 1240 bereit (wie dies
zum Beispiel vorstehend im Text in Bezug auf die Abbildungen der 15 und 16 beschrieben
worden ist).
-
Von
dem Zeitpunkt t10 bis zu dem Zeitpunkt t15 kann die Steuerlogik
bewirken, dass die Schreibdaten an die ausgewählten SDRAMs auf den Datenleitungen 1224, 1225, 1226 und/oder 1227 von
der Daten-E/A-Schaltkreisanordnung 1022 bereitgestellt
werden. Zum Beispiel können
32 Datenbytes auf die folgende Art und Weise in die vier SDRAMs 1204–1207 geschrieben
werden: von dem Zeitpunkt t10 bis zu dem Zeitpunkt t12 kann die
Daten-E/A-Schaltkreisanordnung 1022 das
Datenpaket D0 bereitstellen, das die ersten acht Bytes aufweist,
zwei Bytes an jedes der vier SDRAMs; und von dem Zeitpunkt t12 bis
zu dem Zeitpunkt t13 das Datenpaket D1, das die zweiten acht Bytes
aufweist, zwei Bytes an jedes der SDRAMs 1204–1207.
D0 und D1 können
DATA1 entsprechen. Ferner kann die Daten-E/A-Schaltkreisanordnung 1022 von
dem Zeitpunkt t13 bis zu dem Zeitpunkt t14 das Datenpaket D2 bereitstellen,
das die dritten acht Bytes aufweist, zwei Bytes an jedes der SDRAMs 1204–1207,
und von dem Zeitpunkt t14 bis zu dem Zeitpunkt t15 das Datenpaket D3,
das die letzten acht Bytes aufweist, zwei Bytes an jedes der SDRAMs 1204–1207.
D2 und D3 können DATA2
entsprechen. Hiermit wird festgestellt, dass für andere Ausführungsbeispiele
eine andere Anzahl von Bytes und eine andere Anzahl von Zyklen erforderlich
sein können,
um die ausgewählten
Daten in die ausgewählten
SDRAMs zu schreiben. In dem vorliegenden Beispiel werden zwar alle
SDRAMs beschrieben, wobei in alternativen Ausführungsbeispielen auch ein (oder
weniger als alle) der SDRAMs beschrieben werden können.
-
Die
vorliegende Erfindung wurde vorstehend zwar in Bezug auf bestimmte
Ausführungsbeispiele
beschrieben, wobei hiermit jedoch festgestellt wird, dass für den Fachmann
auf dem Gebiet verschiedene Modifikationen und Abänderungen
möglich
sind, ohne dabei von dem Umfang der vorliegenden Erfindung abzuweichen.
Die Erfindung ist somit in Bezug auf die folgenden Ansprüche zu bewerten.