Connect public, paid and private patent data with Google Patents Public Datasets

Speichersystem mit speichermodul mit einem speichermodul-steuerbaustein

Info

Publication number
DE69836437T2
DE69836437T2 DE1998636437 DE69836437T DE69836437T2 DE 69836437 T2 DE69836437 T2 DE 69836437T2 DE 1998636437 DE1998636437 DE 1998636437 DE 69836437 T DE69836437 T DE 69836437T DE 69836437 T2 DE69836437 T2 DE 69836437T2
Authority
DE
Grant status
Grant
Patent type
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE1998636437
Other languages
English (en)
Other versions
DE69836437D1 (de )
Inventor
J. Thomas Portland HOLMAN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Grant date

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by G11C11/00
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/025Geometric lay-out considerations of storage- and peripheral-blocks in a semiconductor storage device

Description

  • VERWANDTE ANMELDUNGEN
  • [0001]
    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.
  • [0002]
    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
  • [0003]
    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
  • [0004]
    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 110117 (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.
  • [0005]
    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 110117 (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.).
  • [0006]
    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 210217 (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 210217 weist eine entsprechende Schnittstellenlogik 218225 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).
  • [0007]
    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.
  • [0008]
    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.
  • [0009]
    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.
  • [0010]
    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.
  • [0011]
    Weitere Merkmale und Vorteile der vorliegenden Erfindung werden aus den beigefügten Zeichnungen und aus der folgenden genauen Beschreibung deutlich.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • [0012]
    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:
  • [0013]
    1 ein Blockdiagramm eines Ausführungsbeispiels eines herkömmlichen Speichersystems;
  • [0014]
    2 ein Blockdiagramm eines weiteren Ausführungsbeispiels eines herkömmlichen Speichersystems;
  • [0015]
    3 ein Blockdiagramm eines Ausführungsbeispiels eines Speichersystems gemäß der vorliegenden Erfindung;
  • [0016]
    4 ein Blockdiagramm eines weiteren Ausführungsbeispiels eines Speichersystems gemäß der vorliegenden Erfindung;
  • [0017]
    5 ein Blockdiagramm eines Ausführungsbeispiels eines DRAM-Moduls (dynamischer Direktzugriffsspeicher) mit einer DRAM-Speichermodul-Steuereinheit;
  • [0018]
    6 ein Blockdiagramm eines SRAM-Moduls (statischer Direktzugriffsspeicher) mit einer SRAM-Speichermodul-Steuereinheit;
  • [0019]
    7 ein Blockdiagramm eines Ausführungsbeispiels eines nichtflüchtigen Speichermoduls mit einer nichtflüchtigen Speichermodul-Steuereinheit;
  • [0020]
    8 ein Blockdiagramm eines Ausführungsbeispiels der Speichermodul-Steuereinheit aus 3, die mit einem zeitmultiplexierten Systemspeicherbus gekoppelt ist;
  • [0021]
    9 ein Flussdiagramm eines Ausführungsbeispiels des Verfahrens, das durch die Speichermodul-Steuereinheit aus 8 implementiert wird;
  • [0022]
    10 ein Blockdiagramm eines Ausführungsbeispiels der Speichermodul-Steuereinheit aus 3, die mit einem demultiplexierten Systemspeicherbus gekoppelt ist;
  • [0023]
    11 ein Flussdiagramm eines Ausführungsbeispiels des Verfahrens, das durch die Speichermodul-Steuereinheit aus 10 implementiert wird;
  • [0024]
    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;
  • [0025]
    13 ein Flussdiagramm eines Ausführungsbeispiels einer durch die Speichermodul-Steuereinheit aus 12 implementierten Lesetransaktion;
  • [0026]
    14 ein beispielhaftes Zeitsteuerungsdiagramm der durch die Speichermodul-Steuereinheit aus 12 implementierten Lesetransaktion;
  • [0027]
    15 ein Flussdiagramm eines Ausführungsbeispiels einer durch die Speichermodul-Steuereinheit aus 12 implementierten Schreibtransaktion;
  • [0028]
    16 ein beispielhaftes Zeitsteuerungsdiagramm der durch die Speichermodul-Steuereinheit aus 12 implementierten Schreibtransaktion;
  • [0029]
    17 ein beispielhaftes Zeitsteuerungsdiagramm der durch die Speichermodul-Steuereinheit aus 12 implementierten Lesetransaktion unter Verwendung eines modifizierten Protokolls; und
  • [0030]
    18 ein beispielhaftes Zeitsteuerungsdiagramm der durch die Speichermodul-Steuereinheit aus 12 implementierten Schreibtransaktion unter Verwendung eines modifizierten Protokolls.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • [0031]
    Ein Ausführungsbeispiel der vorliegenden Erfindung weist ein Verfahren gemäß dem gegenständlichen Anspruch 1 auf.
  • [0032]
    Weitere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden aus den beigefügten Zeichnungen und aus der folgenden genauen Beschreibung deutlich.
  • GENAUE BESCHREIBUNG
  • [0033]
    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.
  • [0034]
    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.
  • [0035]
    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.
  • [0036]
    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.
  • [0037]
    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 317320 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.
  • [0038]
    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.
  • [0039]
    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.
  • [0040]
    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.
  • [0041]
    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.
  • [0042]
    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 334337), 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.
  • [0043]
    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).
  • [0044]
    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 312315 ü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 334337. Jede der Signalleitungen 330, 332 und 334337 kann eine oder mehrere Signalleitungen darstellen. Die Signalleitungen 330 und 332 können Busse darstellen, welche alle vier Speicherbausteine 312315 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 317320 übertragen, Steuerinformationen über die Signalleitungen 340 und Daten über die Punkt-zu-Punkt-Verbindungen 341344. Jede der Signalleitungen 338, 340 und 341344 kann eine oder mehrere Signalleitungen darstellen.
  • [0045]
    In einem Ausführungsbeispiel kann die Anzahl der Signalleitungen 334337 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 334337 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 312315 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 312315 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.
  • [0046]
    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.
  • [0047]
    Durch die Entkopplung der Speicherbausteine von dem Systemspeicherbus 323 und der Systemspeicher-Steuereinheit 304 können die Speicherbausteine 312315 und 317320 ferner mit reduzierten oder unterschiedlichen Versorgungsspannungen arbeiten als den Spannungen, die bereitgestellt werden, um das System 300 auszugleichen. Zum Beispiel können die Speicherbausteine 312315 und 317320 (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 334337 in vorteilhafter klein ausgewählt werden (z.B. ungefähr 1,0 bis 2,0 Volt), um die von den Speicherbausteinen 312315 aufgenommene Leistung weiter zu reduzieren.
  • [0048]
    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 312315, wie dies bei herkömmlichen Systemen der Fall sein kann.
  • [0049]
    In Bezug auf ein weiteres Ausführungsbeispiel können die Adressleitungen 330, die Steuerleitungen 332 und/oder die Datenleitungen 334337 in einem zeitmultiplexierten Bus kombiniert werden, der zwischen die Speicherbausteine 312315 und die Speichermodul-Steuereinheit 310 gekoppelt ist.
  • [0050]
    Bei den Speicherbausteinen 312315 und 317320 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.
  • [0051]
    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 512515 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 523526 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 512515 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 512515.
  • [0052]
    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 612615 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 623626 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 612615 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.
  • [0053]
    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 712715 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 723726 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 712715 bereitstellen, einschließlich Taktsignale für einen synchronen Betrieb, Burst-Steuersignale, Rücksetzsignale, Power-Management-Signale oder andere Signale oder Befehle.
  • [0054]
    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.
  • [0055]
    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.
  • [0056]
    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.
  • [0057]
    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.
  • [0058]
    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.
  • [0059]
    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.
  • [0060]
    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.
  • [0061]
    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.
  • [0062]
    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.
  • [0063]
    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.
  • [0064]
    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.
  • [0065]
    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.
  • [0066]
    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.
  • [0067]
    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.
  • [0068]
    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.
  • [0069]
    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.
  • [0070]
    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.
  • [0071]
    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.
  • [0072]
    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.
  • [0073]
    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.
  • [0074]
    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.
  • [0075]
    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.
  • [0076]
    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.
  • [0077]
    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.
  • [0078]
    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 12041207 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 12041207. 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.
  • [0079]
    Die Speichermodul-Steuereinheit 1202 stellt von dem Systemspeicherbus 1242 empfangene Speichertransaktionen an die SDRAMs 12041207 bereit. In einem Ausführungsbeispiel kann es sich bei den SDRAMs 12041207 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.
  • [0080]
    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.
  • [0081]
    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 12041207 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.
  • [0082]
    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.
  • [0083]
    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 12041207 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.
  • [0084]
    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.
  • [0085]
    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.
  • [0086]
    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.
  • [0087]
    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.
  • [0088]
    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 12041207; 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.
  • [0089]
    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 12041207 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 12041207 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.
  • [0090]
    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 12041207 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.
  • [0091]
    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.
  • [0092]
    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 12041207. In dem Schritt 1506 deserialisiert die Datenanforderungslogik 1004 die Befehls- und Adressinformationen und stellt diese Informationen an die Steuerlogik 1002 bereit.
  • [0093]
    Da sich das von den Direct RDRAMTM Bausteinen verwendete Speicheradressierungsprotokoll von dem Protokoll unterscheiden kann, welches die SDRAMs 12041207 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.
  • [0094]
    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.
  • [0095]
    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.
  • [0096]
    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.
  • [0097]
    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 12041207 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 12041207. 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 12041207, 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 12041207. 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.
  • [0098]
    In einem alternativen Ausführungsbeispiel kann die Speichermodul-Steuereinheit 1202 auch eine Brücke zwischen dem Systemspeicherbus 1242 und den SDRAMs 12041207 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.
  • [0099]
    In dem vorliegenden Ausführungsbeispiel kann eine Lesetransaktion von einem oder mehreren der SDRAMs 12041207 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.
  • [0100]
    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 12041207 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.
  • TABELLE 1
  • [0101]
    Der Aktivierungsbefehl weist verschiedene Felder auf:
    • B[2:0] Bandauswahl: Wählt eine von acht Bänken in den SDRAMs 12041207 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 12041207 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.
  • TABELLE 2
  • [0102]
    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).
  • [0103]
    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.
  • TABELLE 3
  • [0104]
    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 12041207 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.
  • [0105]
    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 12041207 ausgegebene Lesebefehl, so kann von dem Zeitpunkt t7 bis zu dem Zeitpunkt t9 ein zweiter Lesebefehl READ2 ausgegeben werden.
  • [0106]
    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 12041207 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 12041207; 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.
  • [0107]
    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 12041207 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 12041207 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.
  • [0108]
    In Bezug auf das vorliegende Ausführungsbeispiel kann eine Schreibtransaktion an einen oder mehrere SDRAMs 12041207 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 12041207. Die Datenanforderungslogik 1004 deserialisiert die Befehls- und Adressinformationen und stellt diese Informationen an die Steuerlogik 1002 bereit.
  • [0109]
    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 12041207 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 12041207 (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.
  • [0110]
    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.
  • [0111]
    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 12041207 ü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).
  • [0112]
    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 12041207 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 12041207. 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 12041207, 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 12041207. 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.
  • [0113]
    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.

Claims (20)

  1. Verfahren, das folgendes umfasst: das Empfangen einer Speichertransaktion von einer Systemspeicher-Steuereinheit (304) über einen Systemspeicherbus (323) an einer Speichermodul-Steuereinheit (310) eines Speichermoduls (306), über einen Speichermodulbus gekoppelt mit einer Mehrzahl von Speicherbausteinen (312315); und dadurch gekennzeichnet, dass als Reaktion auf die Speichertransaktion bewirkt wird, dass die Speichermodul-Steuereinheit (310) ein separates Signal erzeugt, das adressiert ist an mindestens einen der Mehrzahl von Speicherbausteinen (312315) und von diesem behandelt wird, wobei die Leistungsbelastungen zwischen dem Speichermodulbus (312315) und dem Systemspeicherbus (323) aufgrund von Unterschieden der Betriebsfrequenz unterschiedlich sind.
  2. Verfahren nach Anspruch 1, wobei dieses ferner das Erzeugen eines separaten Taktsignals (830) über einen Taktgenerator (810) in der Speichermodul-Steuereinheit (310) umfasst, um das separate Signal zu steuern, wobei sich das separate Taktsignal (830) von einem Taktsignal (830) des Systemspeicherbusses (323) unterscheidet.
  3. Verfahren nach Anspruch 1, wobei dieses ferner folgendes umfasst: das Prüfen des Speicherbusses zum Bestimmen, ob die Speicherbustransaktion an mindestens einen der Speicherbausteine (312315) des entsprechenden Speichermoduls (306) adressiert ist; und das Umgehen des Speicheranforderungssignals, wenn die Speichertransaktion nicht an einen der Speicherbausteine (312315) des Speichermoduls (306) adressiert ist.
  4. Verfahren nach Anspruch 3, wobei dieses ferner das Reduzieren mindestens eines Teils der Leistung umfasst, die der Mehrzahl von Speicherbausteinen (312315) zugeordnet ist, wenn die Speichertransaktion nicht an einen der Speicherbausteine (312315) adressiert ist.
  5. Verfahren nach Anspruch 3, wobei dieses ferner das Reduzieren einer Frequenz des separaten Taktsignals (830) in Bezug auf die Mehrzahl von Speicherbausteinen (312315) umfasst, wenn die Speichertransaktion nicht an einen der Speicherbausteine (312315) adressiert ist.
  6. Verfahren nach Anspruch 3, wobei dieses ferner das Entkoppeln der Mehrzahl von Speicherbausteinen (312315) von dem Systemspeicherbus (323) umfasst, wenn die Speichertransaktion nicht an einen der Speicherbausteine (312315) adressiert ist, so dass die Mehrzahl von Speicherbausteinen (312315) aktiv bleibt.
  7. Verfahren nach Anspruch 3, wobei dieses ferner das Bereitstellen des separaten Taktsignals (830) und von Leistung an die Speicherbausteine (312315) des Speichermoduls (306) umfasst, nur wenn die Speichertransaktion an mindestens einen der Speicherbausteine (312315) adressiert ist.
  8. Verfahren nach Anspruch 1, wobei die Mehrzahl von Speicherbausteinen (312315) und die Systemspeicher-Steuereinheit (304) mit unterschiedlichen Leistungsspannungen betrieben werden.
  9. Verfahren nach Anspruch 1, wobei die Mehrzahl von Speicherbausteinen (312315) und die Speichersteuereinheit (306) mit unterschiedlichen Betriebsfrequenzsignalen mit unterschiedlichen Spannungshüben betrieben werden.
  10. System (300), das folgendes umfasst: einen Systemspeicherbus (323); eine Systemspeicher-Steuereinheit, die mit dem Systemspeicherbus (323) gekoppelt ist); und ein erstes Speichermodul (306), das mit dem Systemspeicherbus (323) gekoppelt ist, wobei das erste Speichermodul folgendes aufweist: eine erste Mehrzahl von Speicherbausteinen (312315); und eine erste Speichermodul-Steuereinheit (310), die über einen Speichermodulbus mit der ersten Mehrzahl von Speicherbausteinen und mit dem Systemspeicherbus (323) gekoppelt ist, um eine Speichertransaktion von der Systemspeicher-Steuereinheit über den Systemspeicherbus (323) zu empfangen, dadurch gekennzeichnet, dass als Reaktion auf die Speichertransaktion die erste Speichermodul-Steuereinheit (310) eine Einrichtung zum Erzeugen eines separaten Signals umfasst, das an die Mehrzahl von Speicherbausteinen (312315) adressiert ist und von diesen behandelt wird, wobei die Leitungsbelastungen zwischen dem Speichermodulbus (312315) und dem Systemspeicherbus (323) durch Unterschiede der Betriebsfrequenz unterschiedlich sind.
  11. System nach Anspruch 1, wobei die erste Speichermodul-Steuereinheit (310) ferner einen Taktgenerator (810) zum Erzeugen eines Taktsignals (830) zum Steuern des separaten Signals umfasst, wobei sich das Taktsignal (830) von einem Taktsignal (830) des Systemspeicherbusses (323) unterscheidet.
  12. System nach Anspruch 11, wobei die erste Speichermodul-Steuereinheit (310) ferner eine Anforderungsbehandlungslogik (804) umfasst, um die Speicheranforderung zu prüfen, um zu bestimmen, ob die Speichertransaktion an mindestens einen der Speicherbausteine (312315) adressiert ist, oder um die Speichertransaktion zu adressieren, wenn die Speichertransaktion nicht an einen der Speicherbausteine (312315) adressiert ist.
  13. System nach Anspruch 12, wobei die erste Speichermodul-Steuereinheit (310) ferner eine Power-Management-Einheit (808) umfasst, um eine Leistung zu regeln, die den Speicherbausteinen (312315) zugeführt wird.
  14. System nach Anspruch 13, wobei die erste Mehrzahl von Speicherbausteinen (312315) und der Systemspeicherbus (323) mit unterschiedlichen Leistungsspannungen arbeiten.
  15. System nach Anspruch 13, wobei die Power-Management-Einheit (808) mindestens einen Teil der Leistung an die Speicherbausteine (312315) reduziert, wenn die Speichertransaktion nicht an einen der Speicherbausteine (312315) adressiert ist.
  16. System nach Anspruch 13, wobei die erste Speichermodul-Steuereinheit (310) ferner eine Steuerlogik (802) umfasst, die mit der Anforderungsbehandlungslogik, dem Taktgenerator und der Power-Management-Einheit (808) gekoppelt ist, wobei die Steuerlogik (802) so konfiguriert ist, dass sie die Speicherbausteine (312315) von dem Systemspeicherbus (323) entkoppelt, wenn die Speichertransaktion nicht an einen der Speicherbausteine (312315) adressiert ist.
  17. System nach Anspruch 16, wobei als Reaktion auf ein Signal von der Anforderungsbehandlungslogik (804), das anzeigt, dass die Speichertransaktion nicht an einen der Speicherbausteine (312315) adressiert ist, die Steuerlogik (802) den Taktgenerator (810) anweist, eine Frequenz des Taktsignals (830) an die Speicherbausteine (312315) zu verändern.
  18. System nach Anspruch 17, wobei die Steuerlogik (802) ferner die Power-Management-Einheit (808) anweist, den Taktgenerator (810) zu deaktivieren, wenn die Speichertransaktion nicht an einen der Speicherbausteine (312315) adressiert ist, was wiederum die Leistungsverteilung der Speicherbausteine (812815) reduziert.
  19. System nach Anspruch 10, wobei dieses ferner ein zweites Speichermodul (308) umfasst, das mit dem Systemspeicherbus (323) gekoppelt ist, wobei das zweite Speichermodul (308) folgendes aufweist: eine zweite Mehrzahl von Speicherbausteinen (317320); und eine zweite Speichermodul-Steuereinheit (316), die mit der zweiten Mehrzahl von Speicherbausteinen über einen zweiten Speichermodulbus (317320) gekoppelt ist und mit dem Systemspeicherbus (323), wobei die zweite Speichermodul-Steuereinheit (316) die zweite Mehrzahl von Speicherbausteinen (317320) unabhängig von der ersten Speichermodul-Steuereinheit (310) des ersten Speichermoduls (306) verwaltet, und wobei die zweite Speichermodul-Steuereinheit (316) die zweite Mehrzahl von Speicherbausteinen (317320) des zweiten Speichermoduls (308) von der Systemspeicher-Steuereinheit (304) und dem Systemspeicherbus (323) trennt.
  20. System nach Anspruch 19, wobei die erste Mehrzahl von Speicherbausteinen (312315) und die zweite Mehrzahl von Speicherbausteinen (317320) unterschiedliche Signalisierungsprotokolle aufweisen, die entsprechend durch die erste (310) und die zweite (316) Speichermodul-Steuereinheit gesteuert werden, und wobei unterschiedliche Signalisierungsprotokolle der ersten (312315) und zweiten (317320) Mehrzahl von Speicherbausteinen nicht kompatibel sind mit den erforderlichen Signalisierungsprotokollen der Systemspeicher-Steuereinheit (304) und des Systemspeicherbusses (323).
DE1998636437 1997-12-05 1998-11-23 Speichersystem mit speichermodul mit einem speichermodul-steuerbaustein Active DE69836437T2 (de)

Priority Applications (7)

Application Number Priority Date Filing Date Title
US6782497 true 1997-12-05 1997-12-05
US6758897 true 1997-12-05 1997-12-05
US67824P 1997-12-05
US67588P 1997-12-05
US23170 1998-02-13
US09023170 US7007130B1 (en) 1998-02-13 1998-02-13 Memory system including a memory module having a memory module controller interfacing between a system memory controller and memory devices of the memory module
PCT/US1998/025181 WO1999030240A1 (en) 1997-12-05 1998-11-23 Memory system including a memory module having a memory module controller

Publications (1)

Publication Number Publication Date
DE69836437T2 true DE69836437T2 (de) 2007-09-27

Family

ID=27362025

Family Applications (2)

Application Number Title Priority Date Filing Date
DE1998636437 Active DE69836437D1 (de) 1997-12-05 1998-11-23 Speichersystem mit speichermodul mit einem speichermodul-steuerbaustein
DE1998636437 Active DE69836437T2 (de) 1997-12-05 1998-11-23 Speichersystem mit speichermodul mit einem speichermodul-steuerbaustein

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE1998636437 Active DE69836437D1 (de) 1997-12-05 1998-11-23 Speichersystem mit speichermodul mit einem speichermodul-steuerbaustein

Country Status (4)

Country Link
US (1) US7240145B2 (de)
DE (2) DE69836437D1 (de)
EP (1) EP1036362B1 (de)
WO (1) WO1999030240A1 (de)

Families Citing this family (107)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6968419B1 (en) * 1998-02-13 2005-11-22 Intel Corporation Memory module having a memory module controller controlling memory transactions for a plurality of memory devices
US6643752B1 (en) 1999-12-09 2003-11-04 Rambus Inc. Transceiver with latency alignment circuitry
KR100396885B1 (ko) * 2000-09-05 2003-09-02 삼성전자주식회사 고주파 클럭 신호의 주파수를 낮추어 어드레스 및커맨드의 동작 주파수로 사용하고 서로 다른 주파수의클럭 신호들을 수신하는 반도체 메모리 장치, 이를포함하는 메모리 모듈 및 시스템 메모리 모듈
KR100554081B1 (ko) * 2000-09-14 2006-02-22 인텔 코오퍼레이션 스택된 메모리 디바이스를 격리하는 버퍼를 갖는 메모리모듈
US6553450B1 (en) * 2000-09-18 2003-04-22 Intel Corporation Buffer to multiply memory interface
US6487102B1 (en) 2000-09-18 2002-11-26 Intel Corporation Memory module having buffer for isolating stacked memory devices
US6820163B1 (en) 2000-09-18 2004-11-16 Intel Corporation Buffering data transfer between a chipset and memory modules
US6697888B1 (en) 2000-09-29 2004-02-24 Intel Corporation Buffering and interleaving data transfer between a chipset and memory modules
US6934785B2 (en) 2000-12-22 2005-08-23 Micron Technology, Inc. High speed interface with looped bus
US7107399B2 (en) * 2001-05-11 2006-09-12 International Business Machines Corporation Scalable memory
US6639820B1 (en) 2002-06-27 2003-10-28 Intel Corporation Memory buffer arrangement
US7362697B2 (en) 2003-01-09 2008-04-22 International Business Machines Corporation Self-healing chip-to-chip interface
US7234099B2 (en) * 2003-04-14 2007-06-19 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
JP4419049B2 (ja) * 2003-04-21 2010-02-24 エルピーダメモリ株式会社 メモリモジュール及びメモリシステム
US7127629B2 (en) 2003-06-03 2006-10-24 Intel Corporation Redriving a data signal responsive to either a sampling clock signal or stable clock signal dependent on a mode signal
US7194581B2 (en) 2003-06-03 2007-03-20 Intel Corporation Memory channel with hot add/remove
US7200787B2 (en) 2003-06-03 2007-04-03 Intel Corporation Memory channel utilizing permuting status patterns
US8171331B2 (en) 2003-06-04 2012-05-01 Intel Corporation Memory channel having deskew separate from redrive
US7165153B2 (en) 2003-06-04 2007-01-16 Intel Corporation Memory channel with unidirectional links
US7340537B2 (en) 2003-06-04 2008-03-04 Intel Corporation Memory channel with redundant presence detect
US7386768B2 (en) 2003-06-05 2008-06-10 Intel Corporation Memory channel with bit lane fail-over
US7353329B2 (en) * 2003-09-29 2008-04-01 Intel Corporation Memory buffer device integrating refresh logic
US7243205B2 (en) 2003-11-13 2007-07-10 Intel Corporation Buffered memory module with implicit to explicit memory command expansion
US7177211B2 (en) 2003-11-13 2007-02-13 Intel Corporation Memory channel test fixture and method
US7447953B2 (en) 2003-11-14 2008-11-04 Intel Corporation Lane testing with variable mapping
US7143207B2 (en) 2003-11-14 2006-11-28 Intel Corporation Data accumulation between data path having redrive circuit and memory device
US7219294B2 (en) 2003-11-14 2007-05-15 Intel Corporation Early CRC delivery for partial frame
US7916574B1 (en) 2004-03-05 2011-03-29 Netlist, Inc. Circuit providing load isolation and memory domain translation for memory module
US7212423B2 (en) 2004-05-31 2007-05-01 Intel Corporation Memory agent core clock aligned to lane
US7383399B2 (en) 2004-06-30 2008-06-03 Intel Corporation Method and apparatus for memory compression
US7389375B2 (en) * 2004-07-30 2008-06-17 International Business Machines Corporation System, method and storage medium for a multi-mode memory buffer device
US7296129B2 (en) 2004-07-30 2007-11-13 International Business Machines Corporation System, method and storage medium for providing a serialized memory interface with a bus repeater
US7331010B2 (en) 2004-10-29 2008-02-12 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
US7299313B2 (en) 2004-10-29 2007-11-20 International Business Machines Corporation System, method and storage medium for a memory subsystem command interface
US7512762B2 (en) 2004-10-29 2009-03-31 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
US7356737B2 (en) * 2004-10-29 2008-04-08 International Business Machines Corporation System, method and storage medium for testing a memory module
US7395476B2 (en) * 2004-10-29 2008-07-01 International Business Machines Corporation System, method and storage medium for providing a high speed test interface to a memory subsystem
DE102005016684A1 (de) * 2005-04-11 2006-10-12 Deutsche Thomson-Brandt Gmbh Speicheranordnung, insbesondere zur nichtflüchtigen Speicherung von unkomprmierten Video-und/oder Audiodaten
US9286198B2 (en) 2005-04-21 2016-03-15 Violin Memory Method and system for storage of data in non-volatile media
US9384818B2 (en) 2005-04-21 2016-07-05 Violin Memory Memory power management
US9582449B2 (en) 2005-04-21 2017-02-28 Violin Memory, Inc. Interconnection system
US8359187B2 (en) 2005-06-24 2013-01-22 Google Inc. Simulating a different number of memory circuit devices
US9507739B2 (en) 2005-06-24 2016-11-29 Google Inc. Configurable memory circuit system and method
US7609567B2 (en) 2005-06-24 2009-10-27 Metaram, Inc. System and method for simulating an aspect of a memory circuit
US8060774B2 (en) 2005-06-24 2011-11-15 Google Inc. Memory systems and memory modules
US8041881B2 (en) 2006-07-31 2011-10-18 Google Inc. Memory device with emulated characteristics
US9171585B2 (en) 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
KR101303518B1 (ko) 2005-09-02 2013-09-03 구글 인코포레이티드 Dram 적층 방법 및 장치
DE602006012703D1 (de) * 2005-09-21 2010-04-15 Nxp Bv Bus-schaltung
US7562271B2 (en) 2005-09-26 2009-07-14 Rambus Inc. Memory system topologies including a buffer device and an integrated circuit memory device
US7478259B2 (en) 2005-10-31 2009-01-13 International Business Machines Corporation System, method and storage medium for deriving clocks in a memory system
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
US9632929B2 (en) 2006-02-09 2017-04-25 Google Inc. Translating an address associated with a command communicated between a system and memory circuits
US8089795B2 (en) 2006-02-09 2012-01-03 Google Inc. Memory module with memory stack and interface with enhanced capabilities
US7404055B2 (en) 2006-03-28 2008-07-22 Intel Corporation Memory transfer with early access to critical portion
US7636813B2 (en) * 2006-05-22 2009-12-22 International Business Machines Corporation Systems and methods for providing remote pre-fetch buffers
US7584336B2 (en) * 2006-06-08 2009-09-01 International Business Machines Corporation Systems and methods for providing data modification operations in memory subsystems
US20080028136A1 (en) 2006-07-31 2008-01-31 Schakel Keith R Method and apparatus for refresh management of memory modules
US8244971B2 (en) 2006-07-31 2012-08-14 Google Inc. Memory circuit system and method
US8327104B2 (en) * 2006-07-31 2012-12-04 Google Inc. Adjusting the timing of signals associated with a memory system
US8077535B2 (en) 2006-07-31 2011-12-13 Google Inc. Memory refresh apparatus and method
US7386656B2 (en) 2006-07-31 2008-06-10 Metaram, Inc. Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit
US7669086B2 (en) 2006-08-02 2010-02-23 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
US8796830B1 (en) 2006-09-01 2014-08-05 Google Inc. Stackable low-profile lead frame package
US7761623B2 (en) * 2006-09-28 2010-07-20 Virident Systems, Inc. Main memory in a system with a memory controller configured to control access to non-volatile memory, and related technologies
US8074022B2 (en) * 2006-09-28 2011-12-06 Virident Systems, Inc. Programmable heterogeneous memory controllers for main memory with different memory modules
US8051253B2 (en) * 2006-09-28 2011-11-01 Virident Systems, Inc. Systems and apparatus with programmable memory control for heterogeneous main memory
US7761626B2 (en) * 2006-09-28 2010-07-20 Virident Systems, Inc. Methods for main memory in a system with a memory controller configured to control access to non-volatile memory, and related technologies
US20080082750A1 (en) * 2006-09-28 2008-04-03 Okin Kenneth A Methods of communicating to, memory modules in a memory channel
US7761624B2 (en) * 2006-09-28 2010-07-20 Virident Systems, Inc. Systems and apparatus for main memory with non-volatile type memory modules, and related technologies
US7761625B2 (en) * 2006-09-28 2010-07-20 Virident Systems, Inc. Methods for main memory with non-volatile type memory modules, and related technologies
US20080082763A1 (en) 2006-10-02 2008-04-03 Metaram, Inc. Apparatus and method for power management of memory circuits by a system or component thereof
US8397013B1 (en) 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US8055833B2 (en) 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
US8028186B2 (en) 2006-10-23 2011-09-27 Violin Memory, Inc. Skew management in an interconnection system
WO2008051940A3 (en) * 2006-10-23 2008-08-14 Virident Systems Inc Methods and apparatus of dual inline memory modules for flash memory
US7870459B2 (en) 2006-10-23 2011-01-11 International Business Machines Corporation High density high reliability memory module with power gating and a fault tolerant address and command bus
US7584335B2 (en) * 2006-11-02 2009-09-01 International Business Machines Corporation Methods and arrangements for hybrid data storage
WO2008055269A3 (en) * 2006-11-04 2008-06-26 Virident Systems Inc Asymmetric memory migration in hybrid main memory
WO2008057557A3 (en) 2006-11-06 2008-08-21 Rambus Inc Memory system supporting nonvolatile physical memory
US8130560B1 (en) 2006-11-13 2012-03-06 Google Inc. Multi-rank partial width memory modules
US7721140B2 (en) 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
US7564722B2 (en) 2007-01-22 2009-07-21 Micron Technology, Inc. Memory system and method having volatile and non-volatile memory devices at same hierarchical level
US9195602B2 (en) 2007-03-30 2015-11-24 Rambus Inc. System including hierarchical memory modules having different types of integrated circuit memory devices
WO2009052525A1 (en) * 2007-10-19 2009-04-23 Virident Systems, Inc. Managing memory systems containing components with asymmetric characteristics
JP2009116702A (ja) * 2007-11-07 2009-05-28 Toshiba Corp 半導体集積回路
US8111566B1 (en) 2007-11-16 2012-02-07 Google, Inc. Optimal channel design for memory devices for providing a high-speed memory interface
US8081474B1 (en) 2007-12-18 2011-12-20 Google Inc. Embossed heat spreader
US8806116B2 (en) * 2008-02-12 2014-08-12 Virident Systems, Inc. Memory modules for two-dimensional main memory
WO2009102821A3 (en) * 2008-02-12 2009-12-17 Virident Systems, Inc. Methods and apparatus for two-dimensional main memory
US8438328B2 (en) 2008-02-21 2013-05-07 Google Inc. Emulation of abstracted DIMMs using abstracted DRAMs
US8154901B1 (en) 2008-04-14 2012-04-10 Netlist, Inc. Circuit providing load isolation and noise reduction
US8386722B1 (en) 2008-06-23 2013-02-26 Google Inc. Stacked DIMM memory interface
US8745314B1 (en) 2008-06-24 2014-06-03 Virident Systems, Inc. Methods for a random read and read/write block accessible memory
US9513695B2 (en) 2008-06-24 2016-12-06 Virident Systems, Inc. Methods of managing power in network computer systems
US8335894B1 (en) 2008-07-25 2012-12-18 Google Inc. Configurable memory system with interface circuit
US20110258362A1 (en) * 2008-12-19 2011-10-20 Mclaren Moray Redundant data storage for uniform read latency
US20100162037A1 (en) * 2008-12-22 2010-06-24 International Business Machines Corporation Memory System having Spare Memory Devices Attached to a Local Interface Bus
US8139433B2 (en) * 2009-05-13 2012-03-20 Lsi Corporation Memory device control for self-refresh mode
WO2010144624A1 (en) 2009-06-09 2010-12-16 Google Inc. Programming of dimm termination resistance values
WO2012061633A3 (en) 2010-11-03 2013-03-21 Netlist, Inc. Method and apparatus for optimizing driver load in a memory package
KR20120059075A (ko) * 2010-11-30 2012-06-08 삼성전자주식회사 멀티 채널 반도체 메모리 장치 및 그를 구비하는 반도체 장치
US8595415B2 (en) * 2011-02-02 2013-11-26 Micron Technology, Inc. At least semi-autonomous modules in a memory system and methods
CN102609378B (zh) 2012-01-18 2016-03-30 中国科学院计算技术研究所 一种消息式内存访问装置及其访问方法
CN104981872A (zh) 2013-03-15 2015-10-14 英特尔公司 存储系统
US9190141B2 (en) * 2013-07-30 2015-11-17 Qualcomm Incorporated Circuits for voltage or current biasing static random access memory (SRAM) bitcells during SRAM reset operations, and related systems and methods
KR20150062764A (ko) 2013-11-29 2015-06-08 에스케이하이닉스 주식회사 메모리의 전원을 관리하는 메모리 컨트롤러를 포함하는 시스템

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4045781A (en) 1976-02-13 1977-08-30 Digital Equipment Corporation Memory module with selectable byte addressing for digital data processing system
FR2554260B1 (fr) 1983-10-27 1987-10-30 Flonic Sa Appareil de lecture de cartes a memoire electronique
US4905182A (en) 1987-03-13 1990-02-27 Apple Computer, Inc. Self-configuring memory management system with on card circuitry for non-contentious allocation of reserved memory space among expansion cards
GB2205186B (en) 1987-05-23 1991-02-13 Motorola Inc Memory cards
JP2776929B2 (ja) 1989-03-29 1998-07-16 株式会社日立製作所 カードデータ処理システム及びカードデータの処理方法
US5089993B1 (en) 1989-09-29 1998-12-01 Texas Instruments Inc Memory module arranged for data and parity bits
US5036493A (en) 1990-03-15 1991-07-30 Digital Equipment Corporation System and method for reducing power usage by multiple memory modules
US5357621A (en) * 1990-09-04 1994-10-18 Hewlett-Packard Company Serial architecture for memory module control
US5257233A (en) 1990-10-31 1993-10-26 Micron Technology, Inc. Low power memory module using restricted RAM activation
US5293491A (en) * 1990-12-28 1994-03-08 International Business Machines Corp. Data processing system and memory controller for lock semaphore operations
US5448710A (en) 1991-02-26 1995-09-05 Hewlett-Packard Company Dynamically configurable interface cards with variable memory size
US5815646A (en) 1993-04-13 1998-09-29 C-Cube Microsystems Decompression processor for video applications
US5663901A (en) 1991-04-11 1997-09-02 Sandisk Corporation Computer memory cards using flash EEPROM integrated circuit chips and memory-controller systems
US5319591A (en) 1991-12-26 1994-06-07 Oki Electric Industry Co., Ltd. Memory module
FR2696854A1 (fr) 1992-10-09 1994-04-15 Kudelski Sa Fabrique Enreg Nag Système de traitement d'information utilisant un ensemble de cartes à mémoire.
US6112287A (en) 1993-03-01 2000-08-29 Busless Computers Sarl Shared memory multiprocessor system using a set of serial links as processors-memory switch
US5655113A (en) 1994-07-05 1997-08-05 Monolithic System Technology, Inc. Resynchronization circuit for a memory system and method of operating same
EP1020864B1 (de) 1995-05-15 2002-04-10 Silicon Graphics, Inc. Hochkapazitätsdimmspeicher mit Daten- und Zustandsspeicher
US5835941A (en) 1995-11-17 1998-11-10 Micron Technology Inc. Internally cached static random access memory architecture
US5825424A (en) 1996-06-19 1998-10-20 Thomson Consumer Electronics, Inc. MPEG system which decompresses and recompresses image data before storing image data in a memory and in accordance with a resolution of a display device
JPH10187530A (ja) 1996-10-23 1998-07-21 Texas Instr Inc <Ti> プログラム可能なメモリ・アクセス
JPH10134563A (ja) 1996-10-31 1998-05-22 Fujitsu Ltd メモリ駆動回路
JP3455040B2 (ja) 1996-12-16 2003-10-06 株式会社日立製作所 ソースクロック同期式メモリシステムおよびメモリユニット
US5887198A (en) 1997-04-07 1999-03-23 The United States Of America As Represented By The Secretary Of The Navy Programmable stand-alone drive apparatus for interfacing a host computer with PCMCIA memory cards having multiple formats
JPH11194995A (ja) 1997-12-26 1999-07-21 Mitsubishi Electric Corp Dram内蔵マイクロプロセッサ及びdram内蔵マイクロプロセッサのデータ転送方法
JP3871813B2 (ja) 1998-08-10 2007-01-24 株式会社ルネサステクノロジ マルチポートメモリ、データプロセッサ及びデータ処理システム
US6530033B1 (en) 1999-10-28 2003-03-04 Hewlett-Packard Company Radial arm memory bus for a high availability computer system
US6742098B1 (en) 2000-10-03 2004-05-25 Intel Corporation Dual-port buffer-to-memory interface

Also Published As

Publication number Publication date Type
EP1036362B1 (de) 2006-11-15 grant
DE69836437D1 (de) 2006-12-28 grant
EP1036362A1 (de) 2000-09-20 application
EP1036362A4 (de) 2002-04-17 application
US20060149857A1 (en) 2006-07-06 application
WO1999030240A1 (en) 1999-06-17 application
US7240145B2 (en) 2007-07-03 grant

Similar Documents

Publication Publication Date Title
DE102004051345B4 (de) Halbleiter-Bauelement, Verfahren zum Ein- und/oder Ausgeben von Testdaten, sowie Speichermodul
US6049846A (en) Integrated circuit having memory which synchronously samples information with respect to external clock signals
US5768211A (en) Multi-port arbitration for high performance width expansion
US6553449B1 (en) System and method for providing concurrent row and column commands
US7414917B2 (en) Re-driving CAwD and rD signal lines
US7123497B2 (en) Memory module and memory system
US6708248B1 (en) Memory system with channel multiplexing of multiple memory devices
US5650967A (en) Method and apparatus for writing and erasing flash memory
US6982893B2 (en) Memory module having a plurality of integrated memory components
US6070217A (en) High density memory module with in-line bus switches being enabled in response to read/write selection state of connected RAM banks to improve data bus performance
US6834014B2 (en) Semiconductor memory systems, methods, and devices for controlling active termination
US5844858A (en) Semiconductor memory device and read and write methods thereof
US6298426B1 (en) Controller configurable for use with multiple memory organizations
US6449679B2 (en) RAM controller interface device for RAM compatibility (memory translator hub)
US5446691A (en) Interleave technique for accessing digital memory
US6292877B1 (en) Plural pipelined packet-oriented memory systems having a unidirectional command and address bus and a bidirectional data bus
US6456517B2 (en) System having memory devices operable in a common interface
US6209074B1 (en) Address re-mapping for memory module using presence detect data
US6771526B2 (en) Method and apparatus for data transfer
US5272664A (en) High memory capacity DRAM SIMM
US8051253B2 (en) Systems and apparatus with programmable memory control for heterogeneous main memory
US20080082751A1 (en) Memory modules and programmable heterogeneous memory controllers for main memory
US20010000822A1 (en) Dynamic configuration of memory module using presence detect data
US20080082750A1 (en) Methods of communicating to, memory modules in a memory channel
US6347367B1 (en) Data bus structure for use with multiple memory storage and driver receiver technologies and a method of operating such structures