DE112004000821B4 - System mit einem Hauptrechner, der mit mehreren Speichermodulen über eine serielle Speicherverbindung verbunden ist - Google Patents

System mit einem Hauptrechner, der mit mehreren Speichermodulen über eine serielle Speicherverbindung verbunden ist Download PDF

Info

Publication number
DE112004000821B4
DE112004000821B4 DE112004000821.2T DE112004000821T DE112004000821B4 DE 112004000821 B4 DE112004000821 B4 DE 112004000821B4 DE 112004000821 T DE112004000821 T DE 112004000821T DE 112004000821 B4 DE112004000821 B4 DE 112004000821B4
Authority
DE
Germany
Prior art keywords
memory
unidirectional
uplink
connection
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112004000821.2T
Other languages
English (en)
Other versions
DE112004000821T5 (de
Inventor
Stephen R. Polzin
Frederick D. Weber
Gerald R. Talbot
Larry D. Hewitt
Richard W. Reeves
Shwetal A. Patel
Ross V. La Fetra
Dale E. Gulick
Mark D. Hummel
Paul C. Miranda
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of DE112004000821T5 publication Critical patent/DE112004000821T5/de
Application granted granted Critical
Publication of DE112004000821B4 publication Critical patent/DE112004000821B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC 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/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • G06F13/4256Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache

Abstract

Speichersystem (50) zur Verbindung mit einem Hauptrechner (100), wobei das Speichersystem umfasst: mehrere Speicherverbindungen (110a, b, c); und mehrere Speichermodule (150a, 150b), die seriell in einer Kette mit dem Hauptrechner über die mehreren Speicherverbindungen (110a, b, c) verbunden sind, wobei jede der mehreren Speicherverbindungen (110a, b, c) enthält: eine unidirektionale Aufwärtsverbindung (211) zum Übertragen von Transaktionen zu dem Hauptrechner; und eine unidirektionale Abwärtsverbindung (212), die von der unidirektionalen Aufwärtsverbindung (211) getrennt ist, zum Übertragen von Transaktionen von dem Hauptrechner an ein nächstes Speichermodul in der Kette; und wobei jedes der mehreren Speichermodule (150a, 150b) enthält: mehrere darauf montierte Speicherchips (261A bis N) und einen Speichersteuerungsknoten (160a, 160b), der angeschlossen ist, um einen Zugriff auf die mehreren Speicherchips zu steuern, und der mit dem Hauptrechner sowohl über die unidirektionale Aufwärtsverbindung (211) als auch die unidirektionale Abwärtsverbindung (212) verbunden ist, wobei jeder Speichersteuerungsknoten (160a, 160b) umfasst: eine DRAM-Steuerung (250), die mit den mehreren Speicherchips (261a bis n) verbunden ist; ...

Description

  • TECHNISCHES GEBIET
  • Diese Erfindung betrifft Computersystemspeicher und betrifft insbesondere Speichermodulkonfigurationen und den Speicherteilsystemaufbau.
  • HINTERGRUND DER ERFINDUNG
  • In vielen Computersystemen wird ein Hauptsystemspeicher verwendet, der entsprechend den Bedürfnissen eines Endanwenders ausgebildet sein kann. In derartigen Systemen kann eine Mutterplatine oder eine Systemplatine eine Reihe von Speichererweiterungssockeln aufweisen. Eine oder mehrere kleine Schaltungsplatinen, die im Weiteren als Speichermodule bezeichnet sind, können in die Sockel nach Bedarf eingesetzt werden, um damit die Speicherkapazität des Computersystems zu vergrößern. Jedes der Speichermodule umfasst typischerweise mehrere Speicherbauelemente, die eine vorgegebene Größe an Speicherkapazität bieten. Die Speicherbauelemente sind typischerweise mittels einer gewissen Art an dynamischen Speicher mit wahlfreiem Zugriff (DRAM) eingerichtet. Zu einigen Beispielen von DRAM-Speichertypen gehören synchrone DRAM (SDRAM) sowie diverse Typen von SDRAM mit doppelter Geschwindigkeitsdatenrate (DDR SDRAM).
  • In konventionellen Computersystemen sind die Speichermodule mit einer Speicher/DRAM-Steuerung mittels eines Speicherbusses verbunden, der Adressen-, Steuer- und Datensignale enthält. In einigen Computersystemen können die Adressen-, Steuer- und Datensignale durch Multiplexung eingesetzt werden, so dass diese Signale den gleichen Satz an Zuleitungen gemeinsam verwenden. In anderen Computersystemen können die Adressen-, Steuer- und Datensignale durch separate Leitungen geführt werden. In jedem Falle werden alle Adressen- und Steuersignale zu jedem Erweiterungssockel so geführt, dass die Speichermodule, wenn sie eingesetzt sind, parallel zu der Speicher/DRAM-Steuerung angeschlossen sind. In einigen Systemen kann die Speicher/DRAM-Steuerung in dem gleichen integrierten Schaltungs-(IC)Chip wie der Systemprozessor vorgesehen sein, während in anderen Systemen die Speicher/DRAM-Steuerung in einem IC (z. B. einer Nordbrücke) eines Chipsatzes vorgesehen sein kann.
  • In der US 2002/0 038 405 A1 wird ein Speichermodul mit einem ersten Speicherbus, einer Speicherwiederholeinrichtung, die mit dem ersten Speicherbus verbunden ist, und einem zweiten Speicherbus, der in Reihe mit der Speicherwiederholeinrichtung verbunden ist, beschrieben. Die Speicherwiederholeinrichtung dekodiert Adresseninformationen und gibt entsprechende Daten an den zweiten Speicherbus weiter, wenn die dekodierte Adressinformation einem Speicherbereich entspricht, der über den zweiten Speicherbus angesprochen wird.
  • In der Hauptseminarschrift von Maik Franke, „HyperTransport – ein neues On-Board Kommunikationssystem”, TU Chemnitz, 16. April 2003, wird ein platineninternes Kommunikationssystem (Hypertransport-Kommunikationssystem) beschrieben, das dafür ausgelegt ist, systeminterne Engstellen im Hinblick auf die Verarbeitungsgeschwindigkeit zu verbessern, sodass die Leistungssteigerung von modernen CPUs auch im Hinblick auf die I/O-Anbindung genutzt werden kann. Hierzu wird ein modularer Aufbau einer Punkt-zu-Punkt-Verbindung zwischen zwei Bausteinen beschrieben, aus der sich unterschiedliche Topologien herstellen lassen.
  • In der DE 691 32 721 T2 wird eine integrierte Schaltung beschrieben, die einen Sender/Empfänger auf einem Speichermodul aufweist, der ein Anforderungspaket vom übergeordneten Rechner empfängt und dieses decodiert. Ein Sender/Empfängerbus 65 transportiert die Anforderungspakete zu den jeweiligen Sendern/Empfängern 19. In der DE 101 21 902 A1 wird ein Speichermodul mit Speicherbauelementen beschrieben, wobei Kontaktstreifen zum Anschließen einer Systemplatine vorgesehen sind. In der DE 101 46 491 A1 wird beschrieben, dass eine elektronische Schaltung mit einer Treiberschaltung versehen wird, um die Signalqualität auf einem Sender/Empfängerbus zu verbessern.
  • In dem Dokument „HyperTransport Technology Consortium: HyperTransport I/O Link Specification, Revision 1.04”, 30.05. 2002, siehe insbesondere die Seiten 21–27, 36–38, 50–67 und 114–122, wird eine HyperTransport-Technologie beschrieben, gemäß der Steuerungs-, Adressen- und Dateninformationen auf den gleichen Leitungen einer unidirektionalen Aufwärts- und Abwärtsverbindung übertragen werden, und wobei eine Speicherleseanforderungstransaktion vor dem Empfangen einer Antwort auf eine vorherige Transaktion ausgegeben werden kann. Weiterhin wird in diesem Dokument beschrieben, wie ein letztes Modul einer Kette mittels lediglich einer Verbindung verbunden ist und dass jedes von dem letzten Modul empfangene Paket verworfen wird, das keine diesem zugeordnete Adresse aufweist.
  • Obwohl die Arbeitsgeschwindigkeit von Computersystemprozessoren ständig zunimmt, ist jedoch die Leistungsfähigkeit des Hauptsystemspeichers nicht in der gleichen Weise angestiegen. Dies kann zumindest teilweise in der nur geringfügigen Verbesserung der Bandbreite der Speicherbusarchitekturen, wie sie zuvor beschrieben sind, begründet sein.
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • Es wird Speichersystem zur Verbindung mit einem Hauptrechner bereitgestellt, wobei das Speichersystem umfasst:
    mehrere Speicherverbindungen; und
    mehrere Speichermodule, die seriell in einer Kette mit dem Hauptrechner über die mehreren Speicherverbindungen verbunden sind, wobei jede der mehreren Speicherverbindungen enthält: eine unidirektionale Aufwärtsverbindung zum Übertragen von Transaktionen zu dem Hauptrechner; und eine unidirektionale Abwärtsverbindung, die von der unidirektionalen Aufwärtsverbindung getrennt ist, zum Übertragen von Transaktionen von dem Hauptrechner an ein nächstes Speichermodul in der Kette; und wobei jedes der mehreren Speichermodule enthält:
    mehrere darauf montierte Speicherchips und
    einen Speichersteuerungsknoten, der angeschlossen ist, um einen Zugriff auf die mehreren Speicherchips zu steuern, und der mit dem Hauptrechner sowohl über die unidirektionale Aufwärtsverbindung als auch die unidirektionale Abwärtsverbindung verbunden ist, wobei jeder Speichersteuerungsknoten umfasst:
    eine DRAM-Steuerung, die mit den mehreren Speicherchips verbunden ist;
    eine Aufwärtsverbindungssteuerungseinheit, die mit einer ersten unidirektionale Aufwärtsverbindung einer ersten Speicherverbindung und einer zweiten unidirektionalen Aufwärtsverbindung einer zweiten Speicherverbindung verbunden ist,
    eine Abwärtsverbindungssteuerungseinheit, die mit einer ersten unidirektionale Abwärtsverbindung der ersten Speicherverbindung und einer zweiten unidirektionalen Abwärtsverbindung der zweiten Speicherverbindung verbunden ist; und wobei
    der Speichersteuerungsknoten ausgebildet ist, eine Transaktion auf der zweiten unidirektionalen Aufwärtsverbindung der zweiten Speicherverbindung zu empfangen und die Transaktion auf der ersten unidirektionalen Aufwärtsverbindung der ersten Speicherverbindung zu übertragen, und wobei die Aufwärtsverbindungssteuerungseinheit dazu ausgebildet ist, selektiv eine lokale
    Transaktion in eine Sequenz von Transaktionen, die auf der ersten unidirektionalen Aufwärtsverbindung übertragen werden, in Reaktion auf ein Inbetrieb-Signal einzufügen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist eine Blockansicht einer Ausführungsform eines Systems mit einer seriell verbundenen Kette aus Speichermodulen.
  • 2 ist eine Blockansicht einer Ausführungsform eines Speichermoduls, etwa eines Speichermoduls, wie es in 1 gezeigt ist.
  • 3 ist eine Blockansicht einer Ausführungsform einer Abwärtsverbindungssteuerungseinheit, etwa der Abwärtsverbindungssteuerungseinheit, die in 2 gezeigt ist.
  • 4 ist eine Blockansicht einer Ausführungsform einer Aufwärtsverbindungssteuerungseinheit, etwa der in 2 gezeigten Aufwärtsverbindungssteuerungseinheit.
  • 5a ist eine Ansicht einer Ausführungsform eines Konfigurationslesepakets.
  • 5b ist eine Ansicht einer Ausführungsform eines Konfigurationsschreibpakets.
  • 5c ist eine Ansicht einer Ausführungsform eines Speicherlesepakets.
  • 5d ist eine Ansicht einer Ausführungsform eines Speicherschreibpakets.
  • 6 ist eine Blockansicht einer Ausführungsform eines Computersystems.
  • Obwohl die Erfindung diversen Modifizierungen und alternativen Formen unterliegen kann, sind dennoch spezielle Ausführungsformen beispielhaft in den Zeichnungen gezeigt und sind hierin detailliert beschrieben. Es sollte jedoch selbstverständlich sein, dass die Zeichnungen und die detaillierte Beschreibung nicht beabsichtigen, die vorliegende Erfindung auf die speziellen offenbarten Formen einzuschränken, sondern die Erfindung soll alle Modifizierungen, Äquivalente und Alternativen abdecken, die innerhalb des Grundgedankens und Schutzbereichs der vorliegenden Erfindung liegen, wie sie durch die angefügten Patentanspräche definiert ist. Zu beachten ist, dass die Überschriften lediglich für formale Zwecke gedacht sind und nicht dazu dienen, die Beschreibung oder die Patentansprüche zu beschränken oder zu interpretieren. Des weiteren ist zu beachten, dass der Begriff „kann” durchwegs in dieser Anmeldung als im Sinne von möglich (d. h. mit der Fähigkeit zu, in der Lage sein zu) verwendet ist, und nicht in einem verpflichtenden Sinne (d. h. muss). Der Begriff „enthalten” und Ableitungen davon sind im Sinne von „enthaltend aber nicht eingeschränkt darauf” zu verstehen. Der Begriff „verbunden” bedeutet „direkt oder indirekt verbunden”, und der Begriff „gekoppelt bzw. verbunden” bedeutet „direkt oder indirekt gekoppelt oder verbunden”.
  • ART BZW. ARTEN ZUM AUSFÜHREN DER ERFINDUNG
  • In 1 ist eine Blockansicht einer Ausführungsform eines Systems mit einer seriell verbundenen Kette aus Speichermodulen gezeigt. Ein System 50 umfasst einen Hauptrechner bzw. einen Host 100, der mit einem Systemspeicher 125 über eine Speicherverbindung 110a verbunden ist. Das System 50 kann ausgebildet sein, um als ein Teil eines Computergeräts, etwa eines Computersystems für beispielsweise eines Server-(Dienstleister-)systems zu arbeiten. Der Systemspeicher 125 umfasst ein Speichermodul 150a, das mit einem Speichermodul 150b über eine Speicherverbindung 110b verbunden ist. Das Speichermodul 150b ist so gezeigt, dass es mit einer Speicherverbindung 110c gekoppelt ist, die ihrerseits mit einem weiteren Speichermodul (nicht gezeigt) nach Bedarf verbunden sein kann, um eine seriell verbundene Kette aus Speichermodulen zu bilden, die wiederum mit dem Host 100 verbunden ist. Anzumerken ist, dass obwohl zwei Speichermodule in der Kette gezeigt sind, es auch möglich ist, dass ein oder mehrere Speichermodule auf diese Weise verbunden sind. Ferner ist zu beachten, dass Komponenten, die ein Bezugszeichen aufweisen, an das sich ein Buchstabe anschließt, auch benannt werden können, indem allgemein auf das Bezugszeichen alleine verwiesen wird. Wenn beispielsweise im Allgemeinen auf alle Speichermodule Bezug genommen wird, können diese als Speichermodul 150 bezeichnet sein.
  • In der dargestellten Ausführungsform umfasst das Speichermodul 150a einen Speichersteuerungsknoten 160a, der mit mehreren Speicherbauelementen verbunden ist, die als Speicherchip 171a bis 171n bezeichnet sind, wobei n die Komponentenanzahl nach entsprechendem Bedarf sein kann. In einer Ausführungsform kann der Speichersteuerungsknoten 160a mit den Speicherchips über eine beliebige Art einer Speicherverbindung gekoppelt sein. Beispielsweise kann in einer Ausführungsform die Speicherverbindung eine typische Adressen-, Steuerungs- und Datenbuskonfiguration sein.
  • In ähnlicher Weise umfasst das Speichermodul 150b einen Speichersteuerungsknoten 160b, der mit mehreren Speicherbauelementen gekoppelt ist, die als Speicherchips 181a bis 181n bezeichnet sind, wobei n eine entsprechende Zahl nach Bedarf sein kann. In einer Ausführungsform kann der Speichersteuerungsknoten 160b mit den Speicherchips über eine beliebige Art einer Speicherverbindung verbunden sein, wie dies zuvor beschrieben ist. Zu beachten ist, dass jeder der Speicherchips 171a bis 171n und 181a bis 181 ein beliebiges Speicherbauelement, beispielsweise ein Speicherbauelement innerhalb der Gruppe der DRAM-Speicherbauelemente sein kann.
  • In der dargestellten Ausführungsform bilden die Speicherverbindungen 110a bis 110c eine Speicherverbindung. In einer Ausführungsform bildet jede der Speicherverbindungen 110a bis 110c eine Speicherverbindung von Punkt zu Punkt, die als zwei Sätze von unidirektionalen Leitungen eingerichtet ist. Ein Satz der uni-direktionalen Leitungen wird als eine Abwärtsverbindung bezeichnet und ist ausgebildet, Transaktionen weiterzuleiten, die von dem Host 100 in eine nachgeordnete Richtung bzw. „Stromabwärtsrichtung” wegführen. Der andere Satz aus uni-direktionalen Leitungen wird als eine Aufwärtsverbindung bezeichnet und ist ausgestaltet, Transaktionen weiterzuleiten, die in Richtung zu dem Host 100 aus der vorgeordneten Richtung bzw. „Stromaufwärtsrichtung” vorliegen. Ferner kann in einer Ausführungsform jeder Satz aus unidirektionalen Leitungen eingerichtet sein, indem mehrere differenzielle Signalpaare verwendet werden. In einer Ausführungsform umfasst jede Speicherverbindung 110 eine 18-Bit-Abwärtsverbindung und eine 16-Bit-Aufwärtsverbindung, wobei jedes Bit ein differenzielles Signalpaar ist. Wie nachfolgend im Zusammenhang mit der Beschreibung der 5a bis 5d detaillierter dargelegt ist, kann die Speicherverbindung, die aus den Speicherverbindungen 110 gebildet ist, so konfiguriert sein, um Pakete weiterzuleiten.
  • Allgemein gesagt, alle Transaktionen von dem Host 100 laufen stromabwärts bzw. in die nachgeordnete Richtung über alle Speichermodule 150 auf der Abwärtsverbindung und alle Antworttransaktionen laufen stromaufwärts von dem antwortenden Speichermodul 150 durch jedes stromaufwärtige Speichermodul 150 mit der Aufwärtsverbindung. Genauer gesagt, in einer Ausführungsform kann der Host 100 das Abrufen oder Speichern von Daten in dem Systemspeicher 125 anfordern. In Reaktion auf die Anforderung des Hosts 100 initiiert die Speichersteuerung 105 eine entsprechende Transaktion, etwa eine Speicherlesetransaktion oder eine Speicherschreibtransaktion. Die Speichersteuerung 105 übermittelt die Transaktion zu dem Systemspeicher 125 über die Speicherverbindung 110a. In der dargestellten Ausführungsform wird die Transaktion von dem Speichersteuerungsknoten 160a des Speichermoduls 150a empfangen.
  • In Reaktion auf den Empfang der Transaktion ist der Speichersteuerungsknoten 160a ausgebildet, die empfangene Transaktion zu dem Speichermodul 150b über die Speicherverbindung 110b ohne Decodierung der Transaktion weiterzuleiten. Dies wird als Weiterleiten der Transaktion in der Stromabwärtsrichtung bezeichnet. Somit wird jede auf einer Abwärtsverbindung von einem gegebenen Speichersteuerungsknoten 160 eines gegebenen Speichermoduls 150 empfangenen Transaktion zu dem nächsten Speichermodul 150 in der Kette weitergeleitet, die mit der Abwärtsverbindung gekoppelt ist, ohne dass die Transaktion decodiert wird. In einer Ausführungsform kann das Decodieren der Transaktion parallel zu dem Weiterleiten der Transaktion stattfinden. In anderen Ausführungsformen kann des Decodieren der Transaktion von statten gehen, nachdem die Transaktion weitergeleitet ist. Eine detailliertere Beschreibung der Funktion des Weiterleitens in der Stromabwärtsrichtung kann nachfolgend bei der Beschreibung der 3 erhalten werden.
  • Wenn in ähnlicher Weise die Speichersteuerung 105 beispielsweise eine Leseanforderungstransaktion initiiert, antwortet das Speichermodul 150 mit dem Speicherplatz, der der Adresse in der Anforderung entspricht, mit den angeforderten Daten. Die Antwort wird über die Aufwärtsverbindung des Speichermoduls in Richtung zum Host 100 übermittelt. Wenn es dazwischenliegende Speichermodule zwischen dem sendenden Speichermodul und dem Host 100 gibt, leitet das dazwischenliegende Speichermodul die Antworttransaktion auf ihrer Aufwärtsleitung zu dem Host 100 oder zu dem nächsten Speichermodul in der Kette, das in der Aufwärtsrichtung vorhanden ist. Wenn ferner das antwortende Speichermodul bereit ist, die Antwort zu senden, kann dieses die Antwort in eine Sequenz aus Transaktionen einfügen, die auf der Aufwärtsverbindung stromaufwärts weitergeleitet werden. Eine detaillierte Beschreibung dieser Funktion zur Weiterleitung in Stromaufwärtsrichtung kann nachfolgend im Zusammenhang mit 5 gefunden werden.
  • In einer Ausführungsform kann die Speichersteuerung 105 so ausgebildet sein, um Anforderungen an den Systemspeicher 125 zu stellen, ohne zu wissen, mit welchem Speichermodul 150a und 150b eine gewisse Adresse verknüpft ist. Beispielsweise kann jedem der Speichermodule 150 ein Bereich aus Speicheradressen während einer Systemkonfigurationssequenz zugewiesen werden. Jeder Speichersteuerungsknoten 160 kann eine Logik (in 1 nicht gezeigt) enthalten, die die Adresse einer ankommenden Anforderung decodieren kann. Somit kann ein Speichersteuerungsknoten 160 eines gegebenen Speichermoduls 150 einen Speicherlesezyklus oder einen Speicherschreibzyklus für die Speicherchips in dem gegebenen Speichermodul in 150 in Reaktion auf das Decodieren einer Speicheranforderung mit einer Adresse, die in den dem gegebenen Speichermodul 150 zugeordneten Adressenbereich liegt, initiieren. Wie nachfolgend detaillierter in Verbindung mit der Beschreibung der 2 gezeigt ist, kann in einer Ausführungsform jeder Speichersteuerungsknoten 160 eine DRAM-Steuerung (in 1 nicht gezeigt) zum Initiieren von Speicherzyklen in den Speicherchips aufweisen, mit der sie verbunden ist.
  • Ferner kann in einer Ausführungsform die Speichersteuerung 105 eine nachfolgende Speicherzugriffsanforderung vor dem Empfangen einer Antwort auf eine vorhergehende Speicherzugriffsanforderung initiieren. In einer derartigen Ausführungsform kann die Speichersteuerung 105 die anhängigen Anforderungen überwachen und damit die Antworten in einer unterschiedlichen Reihenfolge abarbeiten, in der sie ausgesendet wurden.
  • Es ist zu beachten, dass in einer alternativen Ausführungsform jede der Speicherverbindungen 110 eine Punkt-zu-Punkt-Speicherverbindung bilden kann, die als ein einzelner Satz aus bidirektionalen Leitungen eingerichtet sein kann. Somit können Transaktionen sowohl stromaufwärts als auch stromabwärts auf dem Satz aus bidirektionalen Leitungen wandern. In einer derartigen Ausführungsform können die bidirektionalen Leitungen als mehrere differenzielle Signalpaare eingerichtet sein.
  • In 2 ist eine Blockansicht einer Ausführungsform eines Speichermoduls, etwa das in 1 gezeigte Speichermodul, dargestellt. Komponenten, die jenen in 1 gezeigten Komponenten entsprechen, sind der Einfachheit und Deutlichkeit halber in gleicher Weise bezeichnet. Das Speichermodul 150 umfasst einen Speichersteuerungsknoten 160, der mit Speicherchips 261 bis 261n über einen Speicherbus 265 verbunden ist. Der Speichersteuerungsknoten 160 umfasst eine Steuerungseinheit 240, die mit einer DRAM-Steuerung 250 verbunden ist. Die DRAM-Steuerung 250 ist mit den Speicherchips 261a bis 261n verbunden. Die Steuerungseinheit 240 umfasst eine Aufwärtsverbindungssteuerung 241 und eine Abwärtsverbindungssteuerung 242. Wie zuvor dargestellt ist, kann der Speicherbus 265 eine beliebige Art einer Speicherverbindung sein. In der dargestellten Ausführungsform ist der Speichersteuerungsknoten 160 mit einer Speicherverbindung 110a in der Aufwärtsrichtung und mit einer Speicherverbindung 110b in der Abwärtsrichtung verbunden. Ferner ist zu beachten, dass die Arbeitsfrequenz des Speicherbusses 265 unabhängig von der Arbeitsfrequenz der Speicherverbindungen 110 ist.
  • In der dargestellten Ausführungsform kann die Aufwärtsverbindungssteuerungseinheit 241 ausgebildet sein, Pakete, die von einem weiter stromabwärts liegenden Speichermodul empfangen werden, zu empfangen und weiterzuleiten. Das Empfangen und Weiterleiten der vorgeordneten Pakete ergibt eine „stromaufwärtige” bzw. eine stromaufwärts gerichtete Transaktionssequenz. Des weiteren kann die Aufwärtsverbindungssteuerungseinheit 241 ausgebildet sein, Pakete in den Transaktionsstrom einzufügen, die aus dem Speichermodul 150 herrühren.
  • In der dargestellten Ausführungsform kann die Abwärtsverbindungssteuerungseinheit 242 ausgebildet sein, Pakete zu empfangen, die von dem Host stammen und, wenn ein Speichermodul in der Abwärtsrichtung angeschlossen ist, um diese Pakete zu dem stromabwärtigen Speichermodul weiterzuleiten. Des weiteren kann die Abwärtsverbindungssteuerungseinheit 242 ausgebildet sein, die Pakete zu kopieren und zu decodieren. In einer Ausführungsform kann, wenn die Pakete Adressen aufweisen, die innerhalb eines Adressenbereichs liegen, der dem Speichermodul 150 zugewiesen ist und das Paket eine Speicherzugriffsanforderung ist, die Abwärtsverbindungssteuerungseinheit 242 den mit dem Paket verknüpften Befehl an die DRAM-Steuerung 250 weiterleiten. In einer Ausführungsform ist die DRAM-Steuerung 250 ausgebildet, Speicherzyklen in den Speicherchips 261a bis 261n in Reaktion auf Speicherbefehle von dem Speichersteuerungsknoten 160 zu initiieren. Wenn jedoch das Paket keine Speicheranforderung ist, sondern stattdessen ein Konfigurationspaket repräsentiert, kann die Abwärtsverbindungssteuerungseinheit 242 den mit dem Paket verknüpften Konfigurationsbefehl zu der Kernlogik einer Steuereinheit 240 (nicht gezeigt) für die weitere Bearbeitung weiterleiten.
  • Zu beachten ist, dass in einer Ausführungsform der Speichersteuerungsknoten 160 das Paket fallen lassen bzw. verwerfen kann, wenn das Speichermodul 150 das letzte Speichermodul in der Kette ist und wenn das Paket keine Adresse enthält, die innerhalb des dem Speichermodul 150 zugeordneten Adressenbereichs liegt.
  • In einer Ausführungsform ist der Speichersteuerungsknoten 160 ausgebildet, ein Modul-vorhanden-Signal (nicht gezeigt) zu empfangen, dass, wenn es von einem stromabwärtsliegenden Speichermodul aktiviert ist, einem vorgeordneten Speichermodul anzeigt, dass ein stromabwärtsliegendes Speichermodul vorhanden ist. In einer derartigen Ausführungsform kann der Speichersteuerungsknoten 160 die Transaktion verwerfen, wenn der Speichersteuerungsknoten 160 eine Transaktion empfängt und kein stromabwärtsliegendes Speichermodul als anwesend erkannt ist. In einer speziellen Implementierung kann, wenn ein gegebenes Speichermodul 150 in einen Sockel eingefügt wird, das eingefügte Speichermodul eine Signalmasse an das Modul-vorhanden-Signal anlegen. Somit kann ein aktives Modul-vorhanden-Signal ein aktiv tiefpegeliges Signal sein.
  • Zu beachten ist, dass, obwohl das Modul-Vorhanden-Signal aktiv ist, wenn eine Signalmasse in der zuvor beschriebenen Ausführungsform angelegt wird, es möglich ist, dass in andern Ausführungsformen andere Spannungspegel an das Modul-vorhanden-Signal angelegt werden, um anzuzeigen, dass ein Speichermodul vorhanden ist.
  • In 3 ist eine Blockansicht einer Ausführungsform einer Abwärtsverbindungssteuerungseinheit gezeigt. In der in 3 gezeigten Ausführungsform kann eine Abwärtsverbindungssteuerungseinheit 342 repräsentativ für die Abwärtsverbindungssteuerungseinheit 242 aus 2 sein. Die Abwärtsverbindungssteuerungseinheit 232 ist angeschlossen, um stromabwärtsgerichtete Transaktionen auf einer Abwärtsverbindung 312a zu empfangen und diese stromabwärtsgerichteten Transaktionen auf der Abwartsverbindung 312b weiterzuleiten. In einer Ausführungsform können die Abwärtsverbindungen 312a und 312b die Abwärtsverbindungen 212a bzw. 212b aus 2 repräsentieren. Zu beachten ist, dass, wie zuvor beschrieben ist, die Abwärtsverbindung 312a und 312b mehrere Bits enthalten. Beispielsweise können in einer Ausführungsform die Abwärtsverbindungen 312a und 312b jeweils 18-Bit-Abwärtsverbindungen sein. Des weiteren kann die Abwärtsverbindungssteuerungseinheit 342 ausgebildet sein, ein Inbetrieb-Signal 371 von einem vorgeordneten Speichermodul oder dem Host 100 zu empfangen und ein Inbetrieb-Signal 372 zu einem nachgeordneten Speichermodul zu senden.
  • In der dargestellten Ausführungsform umfasst die Abwärtsverbindungssteuerungseinheit 342 eine Phasenjustiereinheit 310, die die ankommenden Transaktionen empfängt. Die Phasenjustiereinheit 310 ist mit einer Sendeeinheit 315 und eine Datenwiedergewinnungseinheit 320 verbunden. Die Datenwiedergewinnungseinheit 320 ist mit einem Synchronisations-zuerst-hinein-zuerst-heraus-Puffer (FIFO) 325 verbunden, der mit einer Adressierdecodierlogik 330 verbunden ist. In einer Ausführungsform ist der Sync-FIFO 325 mit einer DRAM-Steuerung, etwa der DRAM-Steuerung 250, und der Kernlogik in der Steuerungseinheit 240 aus 2 verbunden. Zu beachten ist, dass in der in 3 gezeigten Ausführungsform die Phasenjustiereinheit 310, die Sendeeinheit 315 und die Datenwiedergewinnungseinheit 320 an jedem Bit der Abwärtsverbindung unabhängig in einer Bit-weisen Art operieren können. In anderen Ausführungsform können die Phasenjustiereinheit 310, die Sendeeinheit 315 und die Datenwiedergewinnungseinheit 320 im Wesentlichen gleichzeitig an allen Bits der Abwärtsverbindung operieren.
  • Um die erforderliche Speicherbandbreite bereitzustellen, kann es für den Speichersteuerungsknoten 160 wichtig sein, in effizienter Weise empfangene Transaktionen zu den nachgeordneten Speichermodulen zu übertragen. Folglich werden von der Abwärtsverbindungssteuerungseinheit 342 empfangene Transaktionen blind stromabwärts weitergeleitet. In einer Ausführungsform wird jedes empfangene Bit in der Phase mittels der Phasenjustiereinheit 310 eingestellt und zu der Sendeeinheit 315 ohne Decodierung gesendet, um dieses dann auf der Abwärtsverbindung 312b zu senden. Des weiteren wird jedes empfangene Bit zur Bearbeitung zu der Datenwiedergewinnungseinheit 320 gesendet.
  • In einer Ausführungsform ist die Phasenjustiereinheit 310 ausgebildet, um für jedes Bit dynamisch die Phase des lokalen Abtasttaktsignals einzustellen, um es damit der Abwärtsverbindungssteuerungseinheit 342 zu ermöglichen, in der Mitte des empfangenen Datensignals eine Abtastung vorzunehmen. Beispielsweise wird in einer Ausführungsform ein Referenztaktsignal von dem Host zu einer Phasenverriegelungsschleife (PLL) (nicht gezeigt) in jedem Speichersteuerungsknoten 160 zugeleitet. Die PLL erzeugt das lokale Abtasttaktsignal sowie das Sendetaktsignal innerhalb der Abwärtsverbindungssteuerungseinheit 342. Die Phasenjustiereinheit 310 ist ausgebildet, die mittlere Phase des eintreffenden Datenstroms zu überwachen. Die Phasenjustiereinheit 310 kann ferner ausgebildet sein, einen statischen Bit-Versatz zu kompensieren, der durch Bearbeitungsschwankungen hervorgerufen wird, und um Schwankungen mit geringer Frequenz der Datenphase, die durch Spannungs- und Temperaturschwankungen hervorgerufen werden, zu überwachen und einen Phase-Jitter mit geringer Frequenz zu kompensieren, der auf dem Referenztaktsignal vorliegen kann und nicht von der PLL des Knotens erkannt wird. Die Phasenjustiereinheit 310 filtert den Hochfrequenzjitter, der durch Zwischensymbolstörungen, Übersprechen oder reflektiertes Rauschen hervorgerufen wird, und das Hochfrequenzphasenrauschen, das durch den Sender erzeugt werden kann.
  • Um die Phasenjustierung des lokalen Abtasttaktsignals zu ermöglichen, kann es erforderlich sein, eine ausreichend große Anzahl an Übergängen (oder eine Übertragungsdichte) auf jeden Bit der Abwärtsverbindung 312a vorzusehen. In einer Ausführungsform wird die Übergangsdichte bereitgestellt, indem die auf jedem Bit übertragenen Daten verschlüsselt und anschließend die empfangenen Daten während des Empfangs entschlüsselt werden. In einer Ausführungsform werden die Daten durch eine Exklusiv-Oder-(XOR)Funktion der Daten mit einer Pseudozufallsbinärsequenz (PRBS) verschlüsselt. Ein lineares Rückkopplungsschieberegister (LFSR) kann die PRBS unter Anwendung eines vorgegebenen Saat-Polynoms erzeugen. In einer weiteren Ausführungsform kann die Übergangsdichte bereitgestellt werden, indem Synchronisierungspakete gesendet werden, die vorbestimmte Nutzdatenmengen besitzen. In einer derartigen Ausführungsform können die vorbestimmten Nutzdatenmengen ein zufälliges oder pseudozufälliges Muster enthalten, das eine ausreichende Anzahl an Übergängen aufweist.
  • Unabhängig von der Art und Weise, in der die Übergangsdichte erreicht wird, ist die Datenwiedergewinnungseinheit 320 ausgebildet, die Datenbits zu regenerieren. In Ausführungsformen, in denen eine Verschlüsselung verwendet ist, kann die Datenwiedergewmnnungseinheit 320 ausgebildet sein, die empfangenen Daten unter Anwendung der gleichen PRBS zu entschlüsseln, wie sie für die Verschlüsselung der Daten verwendet wurde. Dem gegenüber können in Ausführungsformen, die Synchronisationspakete zum Erreichen der Übergangsdichte verwenden, die Datenwiedergewinnungseinheit 320 einfach die Synchronisationspaketdaten unberücksichtigt lassen oder verwerfen, sobald die Phasenjustiereinheit 310 das Einstellen des lokalen Abtasttaktsignals beendet hat.
  • In der dargestellten Ausführungsform ist der Sync-FIFO 325 ausgebildet, die eintreffenden Datenbits zur Verwendung durch die Kernlogik der Steuerungseinheit 240 zu speichern. Da beispielsweise die Transaktionen in Paketen gesendet werden, können die empfangenen Bits in dem Sync-FIFO 325 gespeichert und für die Decodierung neu formatiert werden. Die empfangenen Pakete werden dann durch die Adressendecodierlogik 330 decodiert. Wie zuvor dargestellt ist, kann jedem Speichermodul 150 ein Bereich aus Speicheradressen zugeordnet sein. Des weiteren kann jedem Speichersteuerungsknoten 160 eine Knotenadresse zur Verwendung in Konfigurationstransaktionen zugewiesen sein. Wenn eine Transaktionsadresse decodiert wird und eine Übereinstimmung erkannt wird, kann die Befehlsinformation herausgelöst und verarbeitet werden. In einer Ausführungsform kann der decodierte Befehl zu der DRAM-Steuerung 250 gesendet werden, wenn die Transaktion eine Speicherzugriffsanforderung ist, die eine Adresse besitzt, die mit einer dem Speichersteuerungsknoten 160 verknüpften Speicheradresse übereinstimmt. Wenn die Transaktion eine Konfigurationstransaktion ist, kann der decodierte Befehl zu der Kernlogik der Steuerungseinheit 240 gesendet werden. Wenn ferner die Adressendecodierlogik 330 keine Übereinstimmung erkennt, kann das Paket verworfen werden oder unberücksichtigt bleiben.
  • In der dargestellten Ausführungsform ist die Phasenjustiereinheit 335 angeschlossen, um das eintreffende Inbetrieb-Signal 371 zu empfangen. Die Phasenjustiereinheit 335 ist ferner mit der Datengewinnungseinheit 350 verbunden, die wiederum mit einer „In-Betrieb”-Pulsinjektionseinheit 355 gekoppelt ist. Die Inbetrieb-Puls-Injektionseinheit 355 ist mit der Sendeeinheit 360 verbunden.
  • In der dargestellten Ausführungsform funktionieren die Phasenjustiereinheit 335 und die Datenwiedergewinnungseinheit 350 in ähnlicher Weise wie die Phasenjustiereinheit 310 bzw. die Datenwiedergewinnungseinheit 320. Jedoch ist in einer Ausführungsform das Inbetrieb-Signal 371 ein Einzelbit-Differenzsignal und kein Mehrfach-Bit-Signal. Das Inbetrieb-Signal 371 und das Inbetrieb-Signal 372 werden verwendet, um sicherzustellen, dass Knoten in der Nähe der Unterseite der seriellen Kette ausreichend Zeit bereit stellen, um Pakete einzuführen. In einer Ausführungsform enthält das Inbetrieb-Signal 371 eine Anzeige hinsichtlich der Anzahl von Paketen, die in die Stromaufwärtstransaktionssequenz von allen Speichermodulen, die stromaufwärts liegen, eingefügt werden. Folglich enthält das Inbetrieb-Signal 372 eine Anzeige der Gesamtzahl an Paketen, die in die Stromaufwärtstransaktionssequenz von allen Speichermodulen eingefügt werden, die stromaufwärts liegen, und enthält eine Anzeige der Anzahl von Paketen, die lokal von dem liegen, und enthält eine Anzeige der Anzahl von Paketen, die lokal von dem Speichersteuerungsknoten 160 eingefügt werden.
  • In einer Ausführungsform ist die Inbetrieb-Puls-Injektionseinheit 355 ausgebildet, Daten entsprechend der Anzahl an Paketen zu empfangen, die in die Stromaufwärtstransaktionssequenz von allen Speichermodulen, die stromaufwärts angeordnet sind, eingefügt werden. Des weiteren ist die Inbetrieb-Puls-Injektionseinheit 355 ausgebildet, eine Indikation der Kernlogik der Steuerungseinheit 240 zu empfangen, wobei die Indikation der Anzahl an Paketen entspricht, die in die Stromaufwätstransaktionssequenz lokal von dem Speichersteuerungsknoten 160 eingefügt werden. Folglich ist die Inbetrieb-Puls-Injektionseinheit 355 ausgebildet, das Inbetrieb-Signal 372 zu erzeugen. In einer Ausführungsform können die Inbetrieb-Signale 371 und 372 einen Puls für jedes eingefügte Paket enthalten. Somit würde beispielsweise ein Signal, etwa ein Inbetrieb-Signal 372, das das Einfügen von 5 Paketen kennzeichnet, fünf Pulse enthalten. Es ist jedoch zu beachten, dass in anderen Ausführungsformen eine beliebige Anzahl an Pulsen für jedes eingefügte Paket enthalten sein kann. Wie nachfolgend detaillierter beschrieben ist, können Pakete als kurze Pakete oder lange Pakete gesendet werden. Folglich kann in einer Ausführungsform die Inbetneb-Puls-Injektionseinheit 355 zwei Pulse für jedes eingefügte lange Paket erzeugen.
  • Des weiteren ist die Inbetrieb-Puls-Injektionseinheit 355 ausgebildet, eine Indikation für die Aufwärtsverbindungssteuerungseinheit 241 aus 2 bereitzustellen, die der Anzahl an Inbetrieb-Pulsen entspricht, die von stromaufwärts empfangen werden. In einer Ausführungsform kann, wenn ein Speichermodul das letzte Modul in der seriell verbundenen Kette ist, die Aufwärtsverbindungssteuerungseinheit 241 veranlassen, dass ein oder mehrere NOP-Pakete in die Stromaufwärtstransaktionssequenz in Abhängigkeit von der Anzahl der Inbetrieb-Pulse, die in dem Inbetrieb-Signal 371 empfangen werden, eingefügt werden. Beispielsweise kann in einer Implementierung für alle zwei empfangenen Inbetrieb-Pulse die Aufwärtsverbindungssteuerungseinheit 241 das Einfügen eines NOP-Pakets in die Stromaufwärtstransaktionssequenz veranlassen. Jedoch sind andere Ausführungsformen möglich, in denen andere Verhältnisse im Hinblick auf NOP-Pakete und empfangene Inbetrieb-Pulse verwendet werden.
  • In der dargestellten Ausführungsform ist die Sendeeinheit 360 ausgebildet, das Inbetrieb-Signal von der Inbetrieb-Puls-Injektionseiriheit 355 zu empfangen. In einer Ausführungsform ist die Sendeeinheit 360 ferner ausgebildet, die Daten zu verschlüsseln, wie dies zuvor beschrieben ist, wobei ein LFSR vor dem Senden des Inbetrieb-Signals 372 verwendet wird. Alternativ kann die Sendeeinheit 360 Synchronisierungspakete einfügen, wie dies zuvor beschrieben ist.
  • In 4 ist eine Blockansicht einer Ausführungsform einer Aufwärtsverbindungssteuerungseinheit gezeigt. In der in 4 gezeigten Ausführungsform kann die Aufwärtsverbindungssteuerungseinheit 441 die Aufwärtsverbindungssteuerungseinheit 241, wie sie in 2 gezeigt ist, repräsentieren. Die Aufwärtsverbindungssteuerungseinheit 441 ist angeschlossen, um Stromaufwärtstransaktionen auf einer Aufwärtsverbindung 411b zu empfangen und um Stromaufwärtstransaktionen auf einer Aufwärtsverbindung 411a zu senden. Ferner ist die Aufwärtsverbindungssteuerungseinheit 241 ausgebildet, Pakete in die Stromaufwärtstransaktionssequenz, die in der Aufwärtsverbindung 411b empfangen wird, einzufügen. In einer Ausführungsform können die Aufwärtsverbindungen 411a und 411b die Aufwärtsverbindungen 211a bzw. 211b aus 2 repräsentieren. Zu beachten ist, dass, wie zuvor beschrieben ist, die Aufwärtsverbindungen 411a und 411b mehrere Bits bzw. Bitleitungen aufweisen. Beispielsweise können in einer Implementierung die Aufwärtsverbindungen 411a und 411b jeweils 16-Bit-Aufwärtsverbindungen sein.
  • In der dargestellten Ausführungsform umfasst die Aufwärtsverbindungssteuerungseinheit 441 eine Phasenjustiereinheit 410, die die eintreffenden Stromaufwärtstransaktionen empfängt. Die Phasenjustiereinheit 410 ist mit einer Datenwiedergewinnungseinheit 415 verbunden.
  • Um die erforderliche Speicherbandbreite bereitzustellen, kann es für den Speichersteuerungsknoten 160 wichtig sein, in effizienter Weise empfangene Stromaufwärtstransaktionen zu vorgeordneten Speichermodulen oder zu dem Host weiterzuleiten. Ähnlich zu der Abwärtsverbindungssteuerungseinheit 342 werden von der Aufwärtsverbindungssteuerungseinheit 441 empfangene Transaktionen stromaufwärts weitergeleitet. Im Gegensatz zu der Abwärtsverbindungssteuerungseinheit 342 kann die Aufwärtsverbindungssteuerungseinheit 441 lokal erzeugte Pakete in die Stromaufwärtstransaktionssequenz einfügen.
  • In der dargestellten Ausführungsform funktioniert die Phasenjustiereinheit 410 in ähnlicher Weise wie die Phasenjustiereinheit 310. Folglich ist die Phasenjustiereinheit 410 ausgebildet, für jedes Bit dynamisch die Phase des lokalen Abtasttaktsignals einzustellen, um es damit der Aufwärtsverbindungssteuerungseinheit 441 zu ermöglichen, in der Mitte des empfangenen Datensignals eine Abtastung vorzunehmen, wie dies zuvor beschrieben ist. In ähnlicher Weise ist die Datenwiedergewinnungseinheit 410 ausgebildet, Datenbits herzustellen, wie dies im Zusammenhang mit der Beschreibung der Datenwiedergewinnungseinheit 320 erläutert ist.
  • In der dargestellten Ausführungsform ist die Datenwiedergewinnungseinheit 415 mit einem Multiplexer 430 verbunden, der mit der Sendeeinheit 435 verbunden ist. Wenn die Aufwärtsverbindungssteuerungseinheit 441 keine Pakete aufweist, die in die Stromaufwärtstransaktionssequenz einzubinden sind, ist die Aufwärtsverbindungssteuerungseinheit 441 ausgebildet, empfangene Transaktionen in der Aufwärtsverbindung 411a weiterzuleiten. In einer Ausführungsform kann eine Paketbegrenzungsüberwachungseinheit 450 Steuerungssignale zu dem Multiplexer 430 zuleiten, die es ermöglichen, dass die empfangenen Transaktionen verschlüsselt und von der Sendeeinheit 435 gesendet werden. In einer Ausführungsform kann die Sendeeinheit 435 die zu sendenden Daten unter Anwendung eines LFSR, wie dies zuvor beschrieben ist, verschlüsseln, während in andern Ausführungsformen die Sendeeinheit 435 Synchronisationspakete in der zuvor beschriebenen Weise einfügen kann.
  • Jedoch werden in einer Ausführungsform die empfangenen Daten von der Datenwiedergewinnungseinheit 415 in den datenhaltenden FIFO 420 für eine spätere Sendung gespeichert, wenn einzufügende Pakete empfangen und innerhalb eines Einspeise-FIFO's 425 von der Knotenkernlogik empfangen und gespeichert werden. Wenn das Senden des aktuellen weitergeleiteten Pakets abgeschlossen ist, werden die in dem Einspeise-FIFO 425 gespeicherten Daten einem Eingang das Multiplexers 430 zugeleitet. Des Weiteren überwacht die Paketbegrenzungsüberwachungseinheit 450 die Paketgrenzen von aus der Aufwärtsverbindung 411b empfangenen Pakete. Die Paketbegrenzungsüberwachungseinheit 450 stellt sicher, dass die eingefügten Pakete nicht mit den weitergeleiteten Paketen kollidieren, indem Steuerungssignale zu einem geeigneten Zeitpunkt an den Mulitplexer 430 ausgegeben werden, wodurch es ermöglicht wird, dass das wartende, einzufügende Paket von der Sendeeinheit 435 verschlüsselt und gesendet wird. Unter der Annahme, dass einzufügende Pakete in dem Einspeise-FIFO 425 gespeichert sind und dass weiterzuleitende Pakete in dem Halter-FIFO 420 gespeichert sind, kann die Paketbegrenzungsüberwachungseinheit 450 den Multiplexer 430 selektiv so ansteuern, chungseinheit 450 den Multiplexer 430 selektiv so ansteuern, dass jede Paketart an die Sendeeinheit 435 in Abhängigkeit eines Fairness-Algorithmus weitergeleitet werden kann. Der Faimess-Algorithmus kann ein Algorithmus sein, der ausgestaltet ist, um ein Ausdünnen sowohl der einzufügenden Pakete als auch der weitergeleiteten Pakete für ein beliebiges Speichermodul zu verhindern. Zu beachten ist, dass auf der Aufwärtsverbindung 411b empfangene NOP-Pakete verworfen werden können, anstatt dass diese innerhalb des Halte-FIFO's gespeichert werden oder anstatt dass diese weitergeleitet werden.
  • Anzumerken ist, dass in einer alternativen Ausführungsform zur Ermöglichung einer verbesserten Latenzzeit für weitergeleiteten Transaktionsverkehr die Phasenjustiereinheit 410 mit dem Halte-FIFO 420 und dem Multiplexer 430 verbunden sein kann, wie dies durch die gestrichelten Linien angedeutet ist. Eine derartige Ausführungsform kann eine verbesserte Verarbeitungszeit liefern, wenn kein eingefügter Datenverkehr vorhanden ist.
  • Ferner ist zu beachten, dass in einer Ausführungsform vor einer Kommunikation zwischen dem Host 100 und jedem Speichersteuerungsknoten 160 jedes Speichermoduls 150 eine Initialisierungssequenz ausgeführt werden kann, um eine Verschlüsselungs/Entschlüsselungslogik, Sync-FIFO's und Phasenjustierlogik-Schaltungen zu synchronisieren, die in dem Host 100 und in jedem Speichersteuerungsknoten 160 vorhanden sein können. Beispielsweise kann in einer Ausführungsform während des Zurücksetzens die Initialisierungssequenz enthalten, dass der Host 100 ein oder mehrere Synchronisierungsmuster stromabwärts sendet. Die Synchronisierungsmuster können von jedem Speichersteuerungsknoten 160 zu dem Host 100 zurückgesendet werden. Die Synchronisierungsmuster können verwendet werden, um allen Empfängern mit einer Verschlüsselungs-/Entschlüsselungslogik ein „Einrasten” in die Synchronisierung zu ermöglichen.
  • Die Speicherverbindung
  • Es sei gemeinsam auf 1 und 2 verwiesen; die Speicherverbindung bzw. Zwischenspeicherverbindung umfasst eine oder mehrere Hochgeschwindigkeits-Punkt-Punkt-Speicherverbindungen, etwa die Speicherverbindungen 110a, 110c, wovon jede eine Aufwärtsverbindung, etwa die Aufwärtsverbindung 211a, und eine Abwärtsverbindung, etwa die Abwärtsverbindung 212a aufweist. Wie zuvor dargelegt ist, können in einer Ausführungsform die Abwärtsverbindungen 18-Bit-Verbindungen sein, während die Aufwärtsverbindungen 16-Bit-Verbindungens sein können. Somit kann eine 18-Bit-Abwärtsverbindung 16 Steuer-, Adressen- und Daten (CAD) Signale, ein Inbetrieb-Signal und ein Steuer-(CTL)Signal enthalten. Eine vorgegebene Aufwärtsverbindung kann 16 Steuer-, Adressen- und Daten-(CAD)Signale enthalten. Zu beachten ist, dass jedoch in einer alternativen Ausführungsform eine Aufwärtsverbindung, etwa die Aufwärtsverbindung 211a auch ein CTL-Signal enthalten kann.
  • Zusätzlich zu den Hochgeschwindigkeitsverbindungen können andere Signale zu jedem Speichermodul 150 zugeführt werden. Beispielsweise können in einer Ausführungsform ein Rücksetzsignal, ein Versorgung-OK-Signal und ein Referenztaktsignal von dem Host 100 zu jedem Speichermodul 150 zugeführt werden. Des weiteren können auch andere Signale zwischen den jeweiligen Speichermodulen vorgesehen sein. Beispielsweise kann, wie zuvor beschrieben ist, ein nächstes-Speichermodul-vorhanden-Signal zwischen Speichermodulen ausgetauscht werden.
  • Allgemein gesagt, können die in den Speicherverbindungen 110 übertragenen Transaktionen in Konfigurations- und Steuerungstransaktionen und Speichertransaktionen eingeordnet werden. In einer Ausführungsform können die Konfigurations- und Steuertransaktionen verwendet werden, um den Speichersteuerungsknoten 160 zu konfigurieren. Z. B. können die Konfigurations- und Steuerungstransaktionen verwendet werden, um auf Konfigurationsregister zuzugreifen, einen Speicheradressenbereich zu einem Speichermodul zuzuordnen oder eine Knotenadresse zu einem Speichersteuerungsknoten zuzuordnen. Speichertransaktionen können verwendet werden, um auf Speicherstellen innerhalb der Speicherchips 261 bis 261n zuzugreifen.
  • Folglich gibt es in einer Ausführungsform zwei Arten der Adressierung, die unterstützt werden: die Knotenadressierung und die Speicheradressierung. Unter Anwendung der Knotenadressierung kennzeichnen acht Knotenbits den speziellen Speichersteuerungsknoten, auf den zugegriffen wird. In einer Ausführungsform kann eine Knotenadresse „FFh” eine Rundumsendung an alle Speichersteuerungsknoten kennzeichnen. Durch Anwendung der Speicheradressierung decodiert jeder Knoten den oberen Bereich der Adressenbits, um zu bestimmen, welcher Knoten die Anforderung akzeptieren soll, und decodiert den unteren Bereich, um die Speicherstelle zu bestimmen, auf die zuzugreifen ist. In einer Ausführungsform gibt es 40 Adressenbits, obwohl form gibt es 40 Adressenbits, obwohl berücksichtigt werden soll, dass andere Anzahlen an Adressenbits auch verwendet werden können.
  • In einer Ausführungsform ist jede der Speicherverbindungen ausgebildet, Transaktionen unter Anwendung eines oder mehrerer Pakete zu übermitteln. Die Pakete schließen Steuerungs- und Konfigurationspakete und Speicherzugriffspakete mit ein, wovon jedes eine Datenutzlast aufweist, die von der Art des Befehls abhängt, der von dem Paket getragen wird. Die Leitungssätze, die die Speicherverbindungen 110 bilden, können verwendet werden, um Steuerungsbefehle, Adressen und Daten zu transportieren.
  • Die Pakete können allgemein wie folgt gekennzeichnet werden: Jedes Paket enthält eine Anzahl an Bit-Positionen, wovon jede ein einzelnes Bit an Information repräsentiert. Jedes Paket ist in mehrere Bitzeiten unterteilt und während einer gegebenen Bitzeit werden alle Bitpositionen des Pakets abgetastet. Die Steuerungsinformationen und Daten teilen sich die Leitungen einer vorgegebenen Verbindung (beispielsweise CAD-Leitungen). Wie nachfolgend detaillierter beschrieben ist, sind in einer Ausführungsform Pakete das Vielfache von Bitpaaren und die erste Bitzeit jedes Pakets wird bei einer geraden Bitzeit abgetastet. Pakete beginnen mit einem Steuerungskopfteil, der eine Länge von 1 oder 2 Bitpaaren aufweisen kann. In einer Ausführungsform sind die ersten fünf Bits des Steuerungskopfteils die Befehlscodierung. Die Tabelle zeigt nachfolgend diverse Arten von Paketen und ihre zugeordneten Befehlscodierungen. Es ist jedoch zu beachten, dass die tatsächlichen in der Spalte 1 gezeigten Codierungen lediglich anschaulicher Natur sind und das andere Codierungen für jeden vorgegebenen Befehl verwendet werden können. Tabelle 1. Paketarten und Befehlscodierungen
    Codierung Kopfteillänge (Bitzeiten) Befehl Beschreibung Richtung normale Antwort Adressenart
    00h - NOP keine Operation/Wartezustand beide - -
    004h 2 AddrSet Adressensatz abwärts AddrAck Knoten
    005h 2 Addrack Adressenbestätigung aufwärts - -
    006h 2 Ack Bestätigung aufwärts - -
    007h 2 Nak keine Bestätigung/Fehler aufwärts - -
    008h 2 SrdResp kurze Leseantwort aufwärts - -
    009h 2 LrdResp lange Leseantwort abwärts - -
    0Ah 2 ConfigRd Konfigurationslesevorgang abwärts RdResp Knoten
    0Ch 2 ConfigWr Konfigurationsschreibvorgang abwärts Ack Knoten
    Oeh 2 DIMMCtl DIMM-Steuerung abwärts Ack Knoten
    10h 4 SmemRD kurzes Speicherlesepaket abwärts RdResp/Ack Speicher
    11h 4 LMemRd langes Speicherlesepaket abwärts RdResp Speicher
    12h 4 BlkMemWr Blockspeicherschreibpaket abwärts Ack Speicher
    13h 4 SbytMemWr kurzes ByteSchreibpaket abwärts Ack Speicher
    14h 4 LbytMemWr langes Byteschreibpaket abwärts Ack Speicher
  • Ferner werden in einer Ausführungsform Pakete (mit Ausnahme von NOP-Paketen) mit einem Fehlererkennungscode (EDC) gesendet. Zu beachten ist, dass in einer Ausführungsform der EDC ein 32-Bit-zyklischer Redundanzcode (CRC) ist, obwohl in anderen Ausführungsformen nach Bedarf andere EDC's verwendet werden können. Des weiteren werden Adressen gesendet, indem die signifikantes Bitzeit zuerst gesendet wird, um damit die Decodierung innerhalb des Speichersteuerungsknotens 160 zu beschleunigen, während bei Daten das am wenigsten signifikante Byte zuerst gesendet wird. Es ist jedoch zu beachten, dass in anderen Ausführungsformen in den Adressen die am wenigsten signifikanteste Bit-Zeit zuerst gesendet werden kann und das bei Daten das signifikanteste Byte zuerst gesendet werden kann. Pakete können Nutzdaten aus Bytes und/oder Daten aufweisen. Pakete ohne Nutzdaten werden als Pakete mit nur Kopfteil bezeichnet. In einer Ausführungsform kann die Größe der kurzen Datenlesevorgänge bis zu der Hälfte einer programmierten Cache-Speicherzeilengröße betragen. Ferner kann die Größe von Daten für lange Lese- und Blockschreibvorgänge bis zu der programmierten Cache-Speicherzeilengröße betragen. Ferner kann die Größe der Daten für Byteschreibvorgänge bis zu einem Maximum von 64 Bytes betragen, unabhängig von der Einstellung der Cache-Speicherzeilengröße.
  • Zusätzlich zu der Information des Steuerungskopfteiles und des Befehlscodes, die in einem Paket enthalten sind, kann das CTL-Signal verwendet werden, um Informationen über das Paket zu transportieren. In der folgenden Tabelle 2 sind einigen beispielhafte CTL-Codierungen gezeigt. Tabelle 2. CTL-Codierungen für die Verwendung für Stromabwärtsdatenverkehr
    gerade ungerade Inhalt von CAD
    0 0 Daten oder Bytefreigabedaten
    1 1 Steuerungskopfteil
    0 1 CRC für ein Paket mit Nutzdaten
    1 0 CRC für ein Paket mit nur Kopfteil
  • Unterschiedliche Werte für die CTL für den Kopfteil und die Nutzdatenbereiche eines Paketes können ausreichend Information bereitstellen, so dass Pakete mit nur Kopfteil in Nutzdaten eines weiteren Pakets eingefügt werden können. Dies kann zur Reduzierung der Verarbeitungszeit von Lesebefehlen nützlich sein, so dass diese ausgegeben werden können, während ein Schreibpaket gerade auf der Verbindungsleitung gesendet wird.
  • Tabelle 3 zeigt ein beispielhaftes Paket mit einem Nutzdatenbereich in Tabellenform. Das Paket in Tabelle 3 zeigt ferner, dass ein Paket mit nur Kopfteil in den Nutzdatenbereich während der Bitzeiten 4 bis 7 eingefügt ist. Tabelle 3. Paket mit Nutzdaten und einem in die Nutzdaten eingefügten Paket mit nur Kopfteil
    Bitzeit CTL CAD
    0 1 Kopfteil 1 Bits [15:0]
    1 1 Kopfteil 1 Bits [31:16]
    2 0 Datenbits [15:0]
    3 0 Datenbits [31:16]
    4 1 Kopfteil 2 Bits [15:0]
    5 1 Kopfteil 2 Bits [31:16]
    6 1 CRC 2 Bits [15:0]
    7 0 CRC 2 Bits [31:16]
    8 0 Datenbits [47:32]
    9 0 Datenbits [64:48]
    10 0 CRC 1 Bits [15:0]
    11 1 CRC 1 Bits [31:16]
  • 5a bis 5d zeigen beispielhafte Pakete, die auf die Speicherverbindungen 110a bis 110c aus 1 übertragen werden können. In 5a ist eine Ansicht einer Ausführungsform für ein Konfigurationslesepaket gezeigt. In der dargestellten Ausführungsform ist das Konfigurationslesepaket 510 16 Bits breit und enthält 4 Bitzeiten oder 2 Bitpaare.
  • Während der Bitzeit 0 wird der Befehlscode mit 5 Bit (z. B. 0Ah) in den Bitpositionen 0 bis 4 übertragen. Die Bitpositionen 5 bis 7 sind reserviert. Eine 8-Bit-Marke wird in den Bitpositionen 8 bis 15 übertragen. In einer Ausführungsform kann der Wert der Markierung von dem Host 100 beispielsweise verwendet werden, um ein stromaufwärtiges Antwortpaket mit einer anhängigen Stromabwärtsanforderung zu verknüpfen. Bei Nichtgebrauch kann das Markierungsfeld auf einen Wert von 00h festgelegt werden. Während der Bitzeit 1 wird die 8-Bit-Knotenadresse in den Bitpositionen 0 bis 7 übertragen. Ferner wird eine 8-Bit-Konfigurationsregisterzahl in den Bitpositionen 8 bis 15 übertragen. Während der Bitzeiten 2 und 3 werden die Bits 0 bis 15 und 16 bis 31 eines CRC in den Bitpositionen 0 bis 15 übertragen.
  • In 5b ist eine Ansicht einer Ausführungsform eines Konfigurationsschreibpaketes gezeigt. In der dargestellten Ausführungsform ist das Konfigurationsschreibpaket 515 ein 16-Bit breites Paket mit 6 Bitzeiten oder drei Bitpaaren.
  • Während der Bitzeit 0 wird der Befehlscode mit 5 Bits (z. B. 0Ch) in den Bitpositionen 0 bis 4 übertragen. Die Bitpositionen 5 bis 7 sind reserviert. Eine 8-Bit-Marke wird in den Bitpositionen 8 bis 15 übertragen. Während der Bitzeit 1 wird die 8-Bit-Knotenadresse in den Bitpositionen 0 bis 7 übertragen. Ferner wird die 8-Bit-Konfigurationsregisterzahl in den Bitpositionen 8 bis 15 übertragen. Während der Bitzeiten 2 und 3 werden die Bits 0 bis 15 und 16 bis 31 als Nutzdaten in den Bitpositionen 0 bis 15 übertragen. Während der Bitzeiten 4 und 5 werden die Bits 0 bis 15 und 16 bis 31 eines CRC in den Bitpositionen 0 bis 15 übertragen.
  • In 5c ist eine Ansicht einer Ausführungsform eines Speicherlesepaketes gezeigt. In der dargestellten Ausführungsform ist das Speicherlesepaket 520 16 Bits breit und enthält 6 Bitzeiten oder drei Bitpaare. Während der Bitzeit wird der Befehlscode mit 5 Bits (beispielsweise 10h oder 11h) in den Bitpositionen 0 bis 4 übertragen. Die Bitpositionen 5 bis 7 sind reserviert. Eine 8-Bit-Marke wird in den Bitpositionen 8 bis 15 übertragen. Während der Bitzeit 1 wird die Länge der Daten, die zurückgegeben werden sollen, in den Bitpositionen 0 bis 5 übertragen. In einer Ausführungsform bezeichnet ein Wert von 00h keine Daten, ein Wert von 01h bezeichnet 2 Bitpaare aus Daten, ein Wert von 02h bezeichnet 4 Bitpaare aus Daten usw. Ein Lesevorgang mit der Länge 0 führt zu einem Bestätigungspaket (Ack), das an den Anforderer zurückgesendet wird. In einer Ausführungsform kann ein Lesevorgang für die Hälfte einer Cache-Zeile oder weniger zu einem kurzen RdResp (Leseantwortpaket), und ein Lesevorgang von mehr als der Hälfte einer Cache-Speicherzeile kann zu einem einzelnen langen RdResp (Leseantwortpaket) oder zu zwei kurzen RdResp (Leseantwortpaketen) führen. Die Cache-Zeilengröße kann durch Software in dem Konfigurationsregister des Host 100 von jedem Speichersteuerungsknoten 160 programmiert werden. Die Bits 6 bis 7 sind reserviert. Die Adressenbits 39 bis 32 der angeforderten Stelle in dem DRAM werden in den Bitpositionen 8 bis 15 übertragen.
  • Während der Bitzeit 2 werden die Adressenbits 31 bis 16 der angeforderten Stelle in dem DRAM in den Bitpositionen 0 bis 15 übertragen und während der Bitzeit 3 werden die Adressenbits 3 bis 15 der angeforderten Stelle in den DRAM in den Bitpositionen 3 bis 15 übertragen. Während der Bitzeit 3 wird auch die Paketpdorität in den Bitpositionen 0 bis 1 übertragen. In einer Ausführungsform kann die Priorität des Pakets die Priorität im Vergleich zu anderen Anforderungen kennzeichnen. Beispielsweise kann eine Priorität dann bestehen, alle Anforderungen mit geringerer Priorität zu verzögern, selbst wenn diese bereits in Beareitung sind, um diese spezielle Anforderung davor auszuführen. Die Bitposition 2 ist reserviert. Während der Bitzeiten 4 und 5 werden die Bit 0 bis 15 und 16 bis 31 eines CRC in den Bitpositionen 0 bis 15 übertragen.
  • 5d zeigt eine Ansicht einer Ausführungsform eines Blockspeicherschreibpakets. In der dargestellten Ausführungsform ist das Blockspeicherschreibpaket 525 16 Bits breit und enthält 8-Bitzeiten oder 4-Bitpaare. Während der Bitzeit 0 wird der Befehlscode mit 5 Bits (beispielsweise 12h) in den Bitpositionen 0 bis 4 übertragen. Die Bitpositionen 5 bis 7 sind reserviert. Eine 8-Bit-Marke wird in den Bitpositionen 8 bis 15 übertragen.
  • Während der Bitzeit 1 wird die Länge der in dem Nutzdatenbereich übertragenen Daten in den Bitpositionen 0 bis 5 übertragen. In einer Ausführungsform bezeichnet ein Wert von 00h keine Daten, ein Wert von 01h bezeichnet zwei Bitpaare aus Daten, ein Wert von 02h bezeichnet 4 Bitpaare aus Daten usw. Die Bits 6 bis 7 sind reserviert. Die Adressenbits 39 bis 32 der Speicherstelle in dem DRAM, in die geschrieben wird, werden in den Bitpositionen 8 bis 15 übertragen.
  • Während der Bitzeit 2 werden die Adressenbits 31 bis 16 der zu beschreibenden Stelle in dem DRAM in den Bitpositionen 0 bis 15 übertragen und während der Bitzeit 3 werden die Adressenbits 3 bis 15 der zu beschreibenden Speicherstelle in dem DRAM in den Bitpositionen 3 bis 15 übertragen. Auch wird während der Bitzeit 3 die Paketpriorität in den Bitpositionen 0 bis 1 übertragen. Die Bitposition 2 ist reserviert.
  • Während der Bitzeiten 4 und 5 werden die Bits 0 bis 15 und 16 bis 31 eines ersten Bitpaares der Nutzdaten in den Bitpositionen 0 bis 15 übertragen. Wenn mehr Daten geschrieben werden, werden nachfolgende Bitpaare in den Bits 0 bis 15 und 16 bis 31 nachfolgender Nutzdaten übertragen. Während der Bitzeiten 4 + 2N und 5 + 2N werden die Bits 0 bis 15 und 16 bis 31 eines CRC in den Bitpositionen 0 bis 15 übertragen. Zu beachten ist, dass obwohl 4 Paketarten gezeigt sind, andere Paketarten, die den in den Tabelle aufgeführten Befehlscodierungen entsprechen, verwendet werden können. Ferner ist zu beachten, dass obwohl diverse Felder der beispielhaften Pakete mit einer speziellen Anzahl an Bits gezeigt sind, es auch möglich ist, dass in anderen Ausführungsformen die diversen Felder jedes Pakets eine beliebige andere Anzahl an Bits nach Bedarf aufweisen kann.
  • 6 ist eine Blockansicht einer Ausführungsform eines Computersystems. Das Computersystem 600 umfasst Prozessknoten 612a bis 612d, von denen jeder mit kohärenten Paketschnittstellenverbindungen 651a bis d verbunden ist. Jede Verbindung der kohärenten Paketschnittstelle 615 kann eine Hochgeschwindigkeits-Punkt-Punkt-Verbindung bilden. Die Prozessknoten 612a bis d können jeweils einen oder mehrere Prozessoren aufweisen. Das Computersystem 600 umfasst ferner einen I/O-Knoten 620, der mit dem Prozessknoten 612a über eine nicht kohärente Paketschnittstelle 650a verbunden ist. Der I/O-Knoten 620 kann mit einem weiteren I/O-Knoten (nicht gezeigt) in einer Kettenanordnung beispielsweise durch eine nicht kohärente Paketschnittstelle 650b verbunden sein. Der Prozessknoten 612a ist als Host-Knoten dargestellt und kann eine Host-Brücke zur Kommunikation mit dem I/O-Knoten 620 über die nicht kohärente (NC) Paketschnittstelle 650a aufweisen. Die Prozessknoten 612b bis d können ebenso Host-Brücken zur Kommunikation mit anderen I/O-Knoten (nicht gezeigt) aufweisen. Die nicht kohärenten Paketschnittstellenverbindungen, die durch die NC-Paketschnittstelle 650a bis b gebildet sind, können auch als Punkt-zu-Punkt-Verbindungen bezeichnet werden. Der I/O-Knoten 620 ist mit einem Paar aus peripheren Bussen 625a–b verbunden.
  • 6 zeigt ferner entsprechende Systemspeicher (beispielsweise 617a und 617b), die mit den Prozessknoten 612a und 612b verbunden sind. In der dargestellten Ausführungsform repräsentieren der Prozessknoten 612a und 612b jeweils einen Host, wie er in 1 gezeigt ist, und jeder Systemspeicher 617 kann in einer Konfiguration eingerichtet sein, wie dies im Zusammenhang mit der Beschreibung der 1 und 2 zuvor dargelegt ist. Ferner können die Verbindungen zwischen jeweils dem Prozessknoten 612a und 612b und ihren entsprechenden Systemspeichern 617 eine Darstellung der Speicherverbindung sein, in der die Speicherverbindung 110c enthalten ist, wie sie zuvor in 1 und 2 beschrieben ist. Zu beachten ist, dass in anderen Ausführungsformen eine andere Anzahl an Prozessknoten verwendet werden kann. Des weiteren ist zu berücksichtigen, dass jeder Prozessknoten 612c und 612d in ähnlicher Weise mit einem entsprechenden Systemspeicher, etwa beispielsweise dem Systemspeicher 617 verbunden sein kann.
  • In der dargestellten Ausführungsform ist jede Verbindung der kohärenten Paketschnittstelle 615 als mehrere Sätze von unidirektionalen Leitungen (beispielsweise die Leitungen 615a werden zum Übertragen von Paketen von dem Prozessknoten 612a zu dem Prozessknoten 612b verwendet, und die Leitungen 615b werden zum Übertragen von Paketen von dem Prozessknoten 612b zu dem Prozessknoten 612c verwendet) eingerichtet. Andere Leitungssätze 615c bis d werden verwendet, um Pakete zwischen anderen Prozessknoten zu übertragen, wie dies in 1 gezeigt ist. Die kohärente Paketschnittstelle 615 kann in einer mit dem Cache-Speicher kohärenten Weise zur Kommunikation zwischen Prozessknoten („die kohärente Verbindung”) betrieben werden. Ferner kann die nicht kohärente Paketschnittstelle 650 in einer nicht kohärenten Weise für eine Kommunikation zwischen den I/O-Knoten und einer Host-Brücke, etwa der Host-Brücke des Prozessknotens 612a („die nicht kohärente Verbindung) betrieben werden. Die Verbindung zwischen zwei und mehreren Knoten über kohärente Verbindungen kann als „kohärente Vernetzung” bezeichnet werden. In ähnlicher Weise können die Verbindungen zwischen zwei und mehreren Knoten mittels nicht kohärenter Verbindungen als eine „nicht kohärente Vernetzung” bezeichnet werden. Zu beachten ist, dass ein von einem Prozessknoten zu einem weiteren zu übertragendes Paket durch einen oder mehrere dazwischenliegende Knoten laufen kann. Beispielsweise kann ein von dem Prozessknoten 612a zu dem Prozessknoten 612c ausgesandtes Paket durch den Prozessknoten 612b oder den Prozessknoten 612d laufen, wie dies in 6 gezeigt ist. Es kann ein beliebiger geeigneter Algorithmus der Signalführung verwendet werden. In anderen Ausführungsformen des Computersystems 600 können mehr oder weniger Prozessknoten als in der in 6 gezeigten Ausführungsform verwenden.
  • Ein Beispiel einer Paketschnittstelle, etwa die nicht kohärente Paketschnittstelle 650, kann mit der HyperTransport-Technologie kompatibel sein. Die peripheren Busse 625a und 625b sind anschaulich für übliche periphere Busse, etwa einen peripheren Komponentenverbindungs-(PCI)Bus. Selbstverständlich können jedoch auch andere Busarten eingesetzt werden.
  • Ferner ist zu beachten, dass andere Konfigurationen des Computersystems möglich sind und hierin mit eingeschlossen sind. Beispielsweise liegt es im Rahmen der Erfindung, dass die zuvor mit den 1 bis 5 beschriebene Systemspeicherkonfiguration auch in Verbindung mit einem Computersystem eingesetzt wenden kann, in welchem ein Prozessorchipsatz verwendet ist, der eine Nordbrücke enthält. In einer derartigen Ausführungsform kann eine Speichersteuerung in der Nordbrücke als der Host dienen.
  • Obwohl die vorhergehenden Ausführungsformen detailliert beschrieben sind, können zahlreiche Variationen und Modifizierungen für den Fachmann angesichts der zuvor offenbarten Lehre offenkundig werden. Es ist beabsichtigt, dass die folgenden Ansprüche alle derartigen Variationen und Modifizierungen umfassen.
  • Industrielle Anwendbarkeit
  • Diese Erfindung kann im Allgemeinen auf einen Computersystemspeicher angewendet werden.
  • Bezugszeichenliste
  • Fig. 1
  • 100
    Host bzw. Hauptrechner
    105
    Speichersteuerung
    110a, b, c
    Speicherverbindung
    125
    Systemspeicher
    160a, 160b
    Speichersteuerungsknoten
    150a, 150b
    Speichermodul
    171a, b, n, 181a, b, n
    Speicherchip
    Fig. 2
    211a, b
    Aufwärtsverbindung
    212a, b
    Abwärtsverbindung
    110a, b
    Speicherverbindung
    150
    Speichermodul
    261a, b, n
    Speicherchip
    250
    DRAM-Steuerung
    160
    Speichersteuerungsknoten
    241
    Aufwärtsverbindungssteuerungseinheit
    242
    Abwärtsverbindungssteuerungseinheit
    Fig. 3
    342
    Abwärtsverbindungssteuerungseinheit
    312a, b,
    Abwärtsverbindung
    371, 372
    „Inbetrieb”
    310
    Phasenjustiereinheit
    320
    Datenwiedergewinnungseinheit
    330
    Adressendecodierlogik
    315
    Sendeeinheit
    360
    Sendeeinheit
    355
    Inbetrieb-Puls-Injektionseinheit
    350
    Datenwiedergewinnungseinheit
    335
    Phasenjustiereinheit
    zur Aufwärtsverbindungssteuerungseinheit
    von Knotenkernlogik
    zu DRAM-Steuerung/Kernlogik
    Fig. 4
    441
    Aufwärtsverbindungssteuerungseinheit
    411b, a
    Aufwärtsverbindung
    410
    Phasenjustiereinheit
    415
    Datenwiedergewinnungseinheit
    450
    Paketbegrenzungsüberwachungseinheit
    435
    Sendeeinheit
    420
    Halte-FIFO
    425
    Einfügungs-FIFO
    Fig. 5a, Fig. 5b, Fig. 5c
    510
    Konfigurationslesepaket
    Bittime – Bitzeit
    Command Code – Befehlscode
    Tag – Marke
    Hub – Knoten
    515
    Konfigurationsschreibpaket
    Data – Daten
    520
    Speicherlesepaket
    Length – Länge
    Address – Adresse
    Priority – Priorität
    525
    Speicherschreibpaket
    Fig. 6
    612a, b
    Prozessknoten (Hauptrechner)
    612c, b
    Prozessknoten
    617a, b
    Systemspeicher
    620
    I/O-Knoten
    615a–d
    kohärente Paketschnittstelle
    625a, b
    peripherer Bus
    650a, b
    NC-Paketschnittstellenverbindung

Claims (6)

  1. Speichersystem (50) zur Verbindung mit einem Hauptrechner (100), wobei das Speichersystem umfasst: mehrere Speicherverbindungen (110a, b, c); und mehrere Speichermodule (150a, 150b), die seriell in einer Kette mit dem Hauptrechner über die mehreren Speicherverbindungen (110a, b, c) verbunden sind, wobei jede der mehreren Speicherverbindungen (110a, b, c) enthält: eine unidirektionale Aufwärtsverbindung (211) zum Übertragen von Transaktionen zu dem Hauptrechner; und eine unidirektionale Abwärtsverbindung (212), die von der unidirektionalen Aufwärtsverbindung (211) getrennt ist, zum Übertragen von Transaktionen von dem Hauptrechner an ein nächstes Speichermodul in der Kette; und wobei jedes der mehreren Speichermodule (150a, 150b) enthält: mehrere darauf montierte Speicherchips (261A bis N) und einen Speichersteuerungsknoten (160a, 160b), der angeschlossen ist, um einen Zugriff auf die mehreren Speicherchips zu steuern, und der mit dem Hauptrechner sowohl über die unidirektionale Aufwärtsverbindung (211) als auch die unidirektionale Abwärtsverbindung (212) verbunden ist, wobei jeder Speichersteuerungsknoten (160a, 160b) umfasst: eine DRAM-Steuerung (250), die mit den mehreren Speicherchips (261a bis n) verbunden ist; eine Aufwärtsverbindungssteuerungseinheit (241, 441), die mit einer ersten unidirektionale Aufwärtsverbindung (211A) einer ersten Speicherverbindung (110a) und einer zweiten unidirektionalen Aufwärtsverbindung (211B) einer zweiten Speicherverbindung (110B) verbunden ist, eine Abwärtsverbindungssteuerungseinheit (242), die mit einer ersten unidirektionale Abwärtsverbindung (212A) der ersten Speicherverbindung (110a) und einer zweiten unidirektionalen Abwärtsverbindung (212B) der zweiten Speicherverbindung (110B) verbunden ist; und wobei der Speichersteuerungsknoten (160a, 160b) ausgebildet ist, eine Transaktion auf der zweiten unidirektionalen Aufwärtsverbindung (211B) der zweiten Speicherverbindung (110B) zu empfangen und die Transaktion auf der ersten unidirektionalen Aufwärtsverbindung (211A) der ersten Speicherverbindung (110A) zu übertragen, und wobei die Aufwärtsverbindungssteuerungseinheit (241, 441) dazu ausgebildet ist, selektiv eine lokale Transaktion in eine Sequenz von Transaktionen, die auf der ersten unidirektionalen Aufwärtsverbindung (211A) übertragen werden, in Reaktion auf ein Inbetrieb-Signal (371) einzufügen.
  2. System nach Anspruch 1, wobei die unidirektionale Aufwärtsverbindung (211) und die unidirektionale Abwärtsverbindung (212) separate unidirektionale Verbindungen repräsentieren, in denen mehrere Signale enthalten sind, die ausgebildet sind, Transaktionen unter Anwendung von Paketen mit Steuer- und Konfigurationspaketen und Speicherzugriffspaketen zu übertragen, wobei zumindest ein Teil der Pakete Steuerungs-, Adressen- und Dateninformationen enthalten und wobei die Steuerungs-, Adressen- und Dateninformationen für eine gegebene Verbindung die gleichen Leitungen einer gegebenen unidirektionalen Aufwärtsverbindung oder unidirektionalen Abwärtsverbindung benutzen.
  3. System nach Anspruch 1, wobei die DRAM-Steuerung (250) ausgebildet ist, auf die mehreren Speicherchips (261A bis N) zuzugreifen in Reaktion auf das Decodieren der Transaktion in einen Speicherbefehl mit einer Speicheradresse, die mit einer mit dem Speichersteuerungsknoten verknüpften Speicheradresse übereinstimmt.
  4. System nach Anspruch 1, wobei der Hauptrechner eine Speichersteuerung (105) aufweist, die ausgebildet ist, Speicheranforderungstransaktionen ohne Kenntnis einer Speichergröße, die mit jedem der Speichermodule verknüpft ist, oder eines Adressenbereichs, der mit einem der Speichermodule verknüpft ist, auszugeben.
  5. System nach Anspruch 4, wobei die Speichersteuerung ferner ausgebildet ist, eine Speicherleseanforderungstransaktion vor dem Empfangen einer Antwort auf eine vorhergehende Speicherleseanforderungstransaktion auszugeben.
  6. System nach Anspruch 1, in dem die mehreren Speichermodule zumindest einschließen: ein erstes Speichermodul (150A) in der Kette, wobei das erste Speichermodul (150A) mit dem Hauptrechner über eine erste Speicherverbindung der mehreren Speicherverbindungen verbunden ist; und ein letztes Speichermodul in der Kette, wobei alle der mehreren Speichermodule mit zwei der mehreren Speicherverbindungen verbunden sind, mit der Ausnahme, dass das letzte Speichermodul nur mit einer der mehreren Speicherverbindungen verbunden ist, und wobei der Speichersteuerungsknoten des letzten Speichermoduls jedes empfangene Paket verwirft, das keine Adresse innerhalb eines Bereichs von Adressen aufweist, der dem letzten Speichermodul zugewiesen ist.
DE112004000821.2T 2003-05-13 2004-05-10 System mit einem Hauptrechner, der mit mehreren Speichermodulen über eine serielle Speicherverbindung verbunden ist Active DE112004000821B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US47007803P 2003-05-13 2003-05-13
US60/470,078 2003-05-13
PCT/US2004/014441 WO2004102403A2 (en) 2003-05-13 2004-05-10 A system including a host connected to a plurality of memory modules via a serial memory interconnect

Publications (2)

Publication Number Publication Date
DE112004000821T5 DE112004000821T5 (de) 2006-05-11
DE112004000821B4 true DE112004000821B4 (de) 2016-12-01

Family

ID=33452363

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112004000821.2T Active DE112004000821B4 (de) 2003-05-13 2004-05-10 System mit einem Hauptrechner, der mit mehreren Speichermodulen über eine serielle Speicherverbindung verbunden ist

Country Status (8)

Country Link
US (4) US7016213B2 (de)
JP (1) JP4836794B2 (de)
KR (1) KR101095025B1 (de)
CN (1) CN100444141C (de)
DE (1) DE112004000821B4 (de)
GB (1) GB2416056B (de)
TW (1) TWI351613B (de)
WO (1) WO2004102403A2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9792246B2 (en) 2014-12-27 2017-10-17 Intel Corporation Lower-power scrambling with improved signal integrity

Families Citing this family (220)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6464628B1 (en) 1999-08-12 2002-10-15 Obtech Medical Ag Mechanical anal incontinence
US6471635B1 (en) 2000-02-10 2002-10-29 Obtech Medical Ag Anal incontinence disease treatment with controlled wireless energy supply
AU759363B2 (en) 2000-02-10 2003-04-10 Implantica Patent Ltd. Controlled urinary incontinence treatment
EP1253877B1 (de) 2000-02-10 2005-05-11 Potencia Medical AG Mechanische vorrichtung zur impotenzbehandlung
AU778406B2 (en) 2000-02-11 2004-12-02 Potentica Ag Controlled impotence treatment
EP1255514B1 (de) 2000-02-14 2006-04-26 Potencia Medical AG Männliche impotentzprothesevorrichtung mit drahtloser energieversorgung
DE60111019T2 (de) 2000-02-14 2006-05-11 Potencia Medical Ag Penisprothese
US7565326B2 (en) * 2000-05-25 2009-07-21 Randle William M Dialect independent multi-dimensional integrator using a normalized language platform and secure controlled access
US6791555B1 (en) * 2000-06-23 2004-09-14 Micron Technology, Inc. Apparatus and method for distributed memory control in a graphics processing system
US20030101312A1 (en) * 2001-11-26 2003-05-29 Doan Trung T. Machine state storage apparatus and method
US7133972B2 (en) 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US7200024B2 (en) * 2002-08-02 2007-04-03 Micron Technology, Inc. System and method for optically interconnecting memory devices
US7117316B2 (en) * 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
US7254331B2 (en) * 2002-08-09 2007-08-07 Micron Technology, Inc. System and method for multiple bit optical data transmission in memory systems
US7149874B2 (en) * 2002-08-16 2006-12-12 Micron Technology, Inc. Memory hub bypass circuit and method
US7836252B2 (en) 2002-08-29 2010-11-16 Micron Technology, Inc. System and method for optimizing interconnections of memory devices in a multichip module
US6820181B2 (en) 2002-08-29 2004-11-16 Micron Technology, Inc. Method and system for controlling memory accesses to memory modules having a memory hub architecture
US7102907B2 (en) * 2002-09-09 2006-09-05 Micron Technology, Inc. Wavelength division multiplexed memory module, memory system and method
US7083420B2 (en) * 2003-02-10 2006-08-01 Leapfrog Enterprises, Inc. Interactive handheld apparatus with stylus
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
US7340537B2 (en) 2003-06-04 2008-03-04 Intel Corporation Memory channel with redundant presence detect
US7165153B2 (en) 2003-06-04 2007-01-16 Intel Corporation Memory channel with unidirectional links
US8171331B2 (en) * 2003-06-04 2012-05-01 Intel Corporation Memory channel having deskew separate from redrive
US7386768B2 (en) * 2003-06-05 2008-06-10 Intel Corporation Memory channel with bit lane fail-over
US7245145B2 (en) * 2003-06-11 2007-07-17 Micron Technology, Inc. Memory module and method having improved signal routing topology
US7120727B2 (en) * 2003-06-19 2006-10-10 Micron Technology, Inc. Reconfigurable memory module and method
US7428644B2 (en) * 2003-06-20 2008-09-23 Micron Technology, Inc. System and method for selective memory module power management
US7107415B2 (en) * 2003-06-20 2006-09-12 Micron Technology, Inc. Posted write buffers and methods of posting write requests in memory modules
US7260685B2 (en) * 2003-06-20 2007-08-21 Micron Technology, Inc. Memory hub and access method having internal prefetch buffers
US20040264256A1 (en) * 2003-06-26 2004-12-30 Mauritz Karl H Electrical solution to enable high-speed interfaces
US7389364B2 (en) 2003-07-22 2008-06-17 Micron Technology, Inc. Apparatus and method for direct memory access in a hub-based memory system
DE10335978B4 (de) * 2003-08-06 2006-02-16 Infineon Technologies Ag Hub-Baustein zum Anschließen von einem oder mehreren Speicherbausteinen
US7210059B2 (en) * 2003-08-19 2007-04-24 Micron Technology, Inc. System and method for on-board diagnostics of memory modules
US7133991B2 (en) * 2003-08-20 2006-11-07 Micron Technology, Inc. Method and system for capturing and bypassing memory transactions in a hub-based memory system
US7136958B2 (en) 2003-08-28 2006-11-14 Micron Technology, Inc. Multiple processor system and method including multiple memory hub modules
US20050050237A1 (en) * 2003-08-28 2005-03-03 Jeddeloh Joseph M. Memory module and method having on-board data search capabilities and processor-based system using such memory modules
US7194593B2 (en) * 2003-09-18 2007-03-20 Micron Technology, Inc. Memory hub with integrated non-volatile memory
US7120743B2 (en) * 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7234070B2 (en) * 2003-10-27 2007-06-19 Micron Technology, Inc. System and method for using a learning sequence to establish communications on a high-speed nonsynchronous interface in the absence of clock forwarding
US7721060B2 (en) * 2003-11-13 2010-05-18 Intel Corporation Method and apparatus for maintaining data density for derived clocking
US7533218B2 (en) * 2003-11-17 2009-05-12 Sun Microsystems, Inc. Memory system topology
US20050138267A1 (en) * 2003-12-23 2005-06-23 Bains Kuljit S. Integral memory buffer and serial presence detect capability for fully-buffered memory modules
US7330992B2 (en) * 2003-12-29 2008-02-12 Micron Technology, Inc. System and method for read synchronization of memory modules
US7188219B2 (en) * 2004-01-30 2007-03-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
US7181584B2 (en) * 2004-02-05 2007-02-20 Micron Technology, Inc. Dynamic command and/or address mirroring system and method for memory modules
US7412574B2 (en) * 2004-02-05 2008-08-12 Micron Technology, Inc. System and method for arbitration of memory responses in a hub-based memory system
US7788451B2 (en) * 2004-02-05 2010-08-31 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US7366864B2 (en) 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths
US20050210185A1 (en) * 2004-03-18 2005-09-22 Kirsten Renick System and method for organizing data transfers with memory hub memory modules
US7257683B2 (en) 2004-03-24 2007-08-14 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US7120723B2 (en) 2004-03-25 2006-10-10 Micron Technology, Inc. System and method for memory hub-based expansion bus
US7447240B2 (en) * 2004-03-29 2008-11-04 Micron Technology, Inc. Method and system for synchronizing communications links in a hub-based memory system
US7228442B2 (en) * 2004-03-30 2007-06-05 The Boeing Company Method and systems for a radiation tolerant bus interface circuit
US8050176B2 (en) * 2004-03-30 2011-11-01 The Boeing Company Methods and systems for a data processing system having radiation tolerant bus
US7337273B2 (en) 2004-03-31 2008-02-26 Microsoft Corporation Strategies for reading information from a mass storage medium using a cache memory
US6980042B2 (en) * 2004-04-05 2005-12-27 Micron Technology, Inc. Delay line synchronizer apparatus and method
US7590797B2 (en) * 2004-04-08 2009-09-15 Micron Technology, Inc. System and method for optimizing interconnections of components in a multichip memory module
US20050240574A1 (en) * 2004-04-27 2005-10-27 International Business Machines Corporation Pre-fetching resources based on a resource lookup query
US7162567B2 (en) * 2004-05-14 2007-01-09 Micron Technology, Inc. Memory hub and method for memory sequencing
US7222213B2 (en) * 2004-05-17 2007-05-22 Micron Technology, Inc. System and method for communicating the synchronization status of memory modules during initialization of the memory modules
US7363419B2 (en) * 2004-05-28 2008-04-22 Micron Technology, Inc. Method and system for terminating write commands in a hub-based memory system
US7212423B2 (en) 2004-05-31 2007-05-01 Intel Corporation Memory agent core clock aligned to lane
US7519788B2 (en) 2004-06-04 2009-04-14 Micron Technology, Inc. System and method for an asynchronous data buffer having buffer write and read pointers
US7310748B2 (en) * 2004-06-04 2007-12-18 Micron Technology, Inc. Memory hub tester interface and method for use thereof
US8122187B2 (en) * 2004-07-02 2012-02-21 Qualcomm Incorporated Refreshing dynamic volatile memory
US20060015450A1 (en) * 2004-07-13 2006-01-19 Wells Fargo Bank, N.A. Financial services network and associated processes
US7254663B2 (en) * 2004-07-22 2007-08-07 International Business Machines Corporation Multi-node architecture with daisy chain communication link configurable to operate in unidirectional and bidirectional modes
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
US7389375B2 (en) * 2004-07-30 2008-06-17 International Business Machines Corporation System, method and storage medium for a multi-mode memory buffer device
US20060036826A1 (en) * 2004-07-30 2006-02-16 International Business Machines Corporation System, method and storage medium for providing a bus speed multiplier
US7224595B2 (en) 2004-07-30 2007-05-29 International Business Machines Corporation 276-Pin buffered memory module with enhanced fault tolerance
US7392331B2 (en) * 2004-08-31 2008-06-24 Micron Technology, Inc. System and method for transmitting data packets in a computer system having a memory hub architecture
US7742438B1 (en) * 2004-10-21 2010-06-22 Owlink Technology, Inc. HDCP data transmission over a single communication channel
US20060095620A1 (en) * 2004-10-29 2006-05-04 International Business Machines Corporation System, method and storage medium for merging bus data in a memory subsystem
US7277988B2 (en) * 2004-10-29 2007-10-02 International Business Machines Corporation System, method and storage medium for providing data caching and data compression in a memory subsystem
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
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
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
US7356737B2 (en) * 2004-10-29 2008-04-08 International Business Machines Corporation System, method and storage medium for testing a memory module
US7299313B2 (en) * 2004-10-29 2007-11-20 International Business Machines Corporation System, method and storage medium for a memory subsystem command interface
US7305574B2 (en) * 2004-10-29 2007-12-04 International Business Machines Corporation System, method and storage medium for bus calibration in a memory subsystem
US7441060B2 (en) * 2004-10-29 2008-10-21 International Business Machines Corporation System, method and storage medium for providing a service interface to a memory system
US20070005902A1 (en) * 2004-12-07 2007-01-04 Ocz Technology Group, Inc. Integrated sram cache for a memory module and method therefor
US7752016B2 (en) * 2005-01-11 2010-07-06 Hewlett-Packard Development Company, L.P. System and method for data analysis
US7809991B2 (en) * 2005-01-11 2010-10-05 Hewlett-Packard Development Company, L.P. System and method to qualify data capture
US7228472B2 (en) * 2005-01-11 2007-06-05 Hewlett-Packard Development Company, L.P. System and method to control data capture
US20060168407A1 (en) * 2005-01-26 2006-07-27 Micron Technology, Inc. Memory hub system and method having large virtual page size
US20060195631A1 (en) 2005-01-31 2006-08-31 Ramasubramanian Rajamani Memory buffers for merging local data from memory modules
US7620783B2 (en) * 2005-02-14 2009-11-17 Qualcomm Incorporated Method and apparatus for obtaining memory status information cross-reference to related applications
US7640392B2 (en) * 2005-06-23 2009-12-29 Qualcomm Incorporated Non-DRAM indicator and method of accessing data not stored in DRAM array
JP2006259906A (ja) * 2005-03-15 2006-09-28 Ricoh Co Ltd 通信制御装置、通信制御システム、省電力制御方法、省電力制御プログラム、および該プログラムを記録した記録媒体
JP4274140B2 (ja) 2005-03-24 2009-06-03 日本電気株式会社 ホットスワップ機能付きメモリシステム及びその障害メモリモジュールの交換方法
US7827462B2 (en) 2005-03-31 2010-11-02 Intel Corporation Combined command and data code
US8112655B2 (en) 2005-04-21 2012-02-07 Violin Memory, Inc. Mesosynchronous data bus apparatus and method of data transmission
US9384818B2 (en) 2005-04-21 2016-07-05 Violin Memory Memory power management
US9286198B2 (en) 2005-04-21 2016-03-15 Violin Memory Method and system for storage of data in non-volatile media
US9582449B2 (en) 2005-04-21 2017-02-28 Violin Memory, Inc. Interconnection system
KR101331569B1 (ko) * 2005-04-21 2013-11-21 바이올린 메모리 인코포레이티드 상호접속 시스템
US8452929B2 (en) 2005-04-21 2013-05-28 Violin Memory Inc. Method and system for storage of data in non-volatile media
US20060288132A1 (en) * 2005-05-31 2006-12-21 Mccall James A Memory single-to-multi load repeater architecture
TWI285839B (en) * 2005-06-22 2007-08-21 Via Tech Inc Selectively prefetch method and bridge module
US20070016698A1 (en) * 2005-06-22 2007-01-18 Vogt Pete D Memory channel response scheduling
US7966446B2 (en) * 2005-09-12 2011-06-21 Samsung Electronics Co., Ltd. Memory system and method having point-to-point link
US7930492B2 (en) * 2005-09-12 2011-04-19 Samsung Electronics Co., Ltd. Memory system having low power consumption
US20070165457A1 (en) * 2005-09-30 2007-07-19 Jin-Ki Kim Nonvolatile memory system
US7652922B2 (en) 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
EP1932158A4 (de) 2005-09-30 2008-10-15 Mosaid Technologies Inc Speicher mit ausgangssteuerung
US20070076502A1 (en) 2005-09-30 2007-04-05 Pyeon Hong B Daisy chain cascading devices
US7747833B2 (en) * 2005-09-30 2010-06-29 Mosaid Technologies Incorporated Independent link and bank selection
US11948629B2 (en) 2005-09-30 2024-04-02 Mosaid Technologies Incorporated Non-volatile memory device with concurrent bank operations
US7496777B2 (en) 2005-10-12 2009-02-24 Sun Microsystems, Inc. Power throttling in a memory system
US7533212B1 (en) 2005-10-20 2009-05-12 Sun Microsystems, Inc. System memory board subsystem using DRAM with integrated high speed point to point links
US7523282B1 (en) 2005-10-27 2009-04-21 Sun Microsystems, Inc. Clock enable throttling for power savings in a memory subsystem
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
KR100818298B1 (ko) 2005-12-08 2008-03-31 한국전자통신연구원 가변 시리얼 정합 방식의 메모리 시스템 및 그 메모리액세스 방법
US7409491B2 (en) 2005-12-14 2008-08-05 Sun Microsystems, Inc. System memory board subsystem using DRAM with stacked dedicated high speed point to point links
US7516349B2 (en) 2005-12-29 2009-04-07 Intel Corporation Synchronized memory channels with unidirectional links
KR100656814B1 (ko) * 2006-01-17 2006-12-14 신잔토개발 주식회사 건설폐기물의 처리용 세골재 세척 분리 장치
DE602007010439D1 (de) * 2006-03-31 2010-12-23 Mosaid Technologies Inc Flash-speichersystem-steuerverfahren
KR100801709B1 (ko) * 2006-05-16 2008-02-11 삼성전자주식회사 메모리 모듈 및 이를 구비한 메모리 시스템
US8185711B2 (en) 2006-05-16 2012-05-22 Samsung Electronics Co., Ltd. Memory module, a memory system including a memory controller and a memory module and methods thereof
US7636813B2 (en) * 2006-05-22 2009-12-22 International Business Machines Corporation Systems and methods for providing remote pre-fetch buffers
US7640386B2 (en) * 2006-05-24 2009-12-29 International Business Machines Corporation Systems and methods for providing memory modules with multiple hub devices
US7584336B2 (en) * 2006-06-08 2009-09-01 International Business Machines Corporation Systems and methods for providing data modification operations in memory subsystems
US7430139B2 (en) * 2006-06-12 2008-09-30 Via Technologies, Inc. Shared memory synchronization systems and methods
US7669086B2 (en) 2006-08-02 2010-02-23 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
US9262326B2 (en) * 2006-08-14 2016-02-16 Qualcomm Incorporated Method and apparatus to enable the cooperative signaling of a shared bus interrupt in a multi-rank memory subsystem
US7539842B2 (en) * 2006-08-15 2009-05-26 International Business Machines Corporation Computer memory system for selecting memory buses according to physical memory organization information stored in virtual address translation tables
US7904639B2 (en) 2006-08-22 2011-03-08 Mosaid Technologies Incorporated Modular command structure for memory and memory system
US7757064B2 (en) * 2006-09-07 2010-07-13 Infineon Technologies Ag Method and apparatus for sending data from a memory
US8028186B2 (en) 2006-10-23 2011-09-27 Violin Memory, Inc. Skew management in an interconnection system
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
US20080104352A1 (en) * 2006-10-31 2008-05-01 Advanced Micro Devices, Inc. Memory system including a high-speed serial buffer
US7694031B2 (en) 2006-10-31 2010-04-06 Globalfoundries Inc. Memory controller including a dual-mode memory interconnect
US7861140B2 (en) * 2006-10-31 2010-12-28 Globalfoundries Inc. Memory system including asymmetric high-speed differential memory interconnect
US7949794B2 (en) * 2006-11-02 2011-05-24 Intel Corporation PCI express enhancements and extensions
US20080133864A1 (en) * 2006-12-01 2008-06-05 Jonathan Randall Hinkle Apparatus, system, and method for caching fully buffered memory
US7818464B2 (en) * 2006-12-06 2010-10-19 Mosaid Technologies Incorporated Apparatus and method for capturing serial input data
US7881303B2 (en) * 2006-12-13 2011-02-01 GlobalFoundries, Inc. Command packet packing to mitigate CRC overhead
US8032711B2 (en) * 2006-12-22 2011-10-04 Intel Corporation Prefetching from dynamic random access memory to a static random access memory
US7721140B2 (en) 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
US7603526B2 (en) * 2007-01-29 2009-10-13 International Business Machines Corporation Systems and methods for providing dynamic memory pre-fetch
US7606988B2 (en) * 2007-01-29 2009-10-20 International Business Machines Corporation Systems and methods for providing a dynamic memory bank page policy
US7783918B2 (en) * 2007-02-15 2010-08-24 Inventec Corporation Data protection method of storage device
EP2109862A4 (de) * 2007-02-16 2010-08-04 Mosaid Technologies Inc Halbleiterbauelement und verfahren zur veringerung des stromverbrauchs in einem system mit verbundenen bauelementen
US8122202B2 (en) * 2007-02-16 2012-02-21 Peter Gillingham Reduced pin count interface
WO2008101316A1 (en) 2007-02-22 2008-08-28 Mosaid Technologies Incorporated Apparatus and method for using a page buffer of a memory device as a temporary cache
US8086785B2 (en) 2007-02-22 2011-12-27 Mosaid Technologies Incorporated System and method of page buffer operation for memory devices
US7796462B2 (en) * 2007-02-22 2010-09-14 Mosaid Technologies Incorporated Data flow control in multiple independent port
JP5669338B2 (ja) * 2007-04-26 2015-02-12 株式会社日立製作所 半導体装置
TW200901042A (en) * 2007-06-23 2009-01-01 Jmicron Technology Corp Storage device and circuit element switching method thereof
US7890788B2 (en) * 2007-07-09 2011-02-15 John Yin Clock data recovery and synchronization in interconnected devices
WO2009027802A1 (en) * 2007-08-28 2009-03-05 Nokia Corporation Method for bus testing and addressing in mass memory components
US20090063786A1 (en) * 2007-08-29 2009-03-05 Hakjune Oh Daisy-chain memory configuration and usage
KR100934227B1 (ko) 2007-09-21 2009-12-29 한국전자통신연구원 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤장치, 그의 동작 방법 및 이에 적용되는 데이터 저장 장치
US8503678B2 (en) 2007-09-28 2013-08-06 Intel Corporation Suppressing power supply noise using data scrambling in double data rate memory systems
JP2011502293A (ja) * 2007-10-05 2011-01-20 ヴァイオリン メモリー インコーポレイテッド メソシンクロナス・データ・バス装置及びデータ伝送方法
US8594110B2 (en) 2008-01-11 2013-11-26 Mosaid Technologies Incorporated Ring-of-clusters network topologies
EP2244662B1 (de) 2008-01-28 2021-09-29 Implantica Patent Ltd. Vorrichtung und system zur entfernung eines blutgerinnsels
WO2009096861A1 (en) 2008-01-29 2009-08-06 Milux Holding Sa Methods and instruments for treating obesity and gastroesophageal reflux disease
US8131913B2 (en) * 2008-02-04 2012-03-06 Mosaid Technologies Incorporated Selective broadcasting of data in series connected devices
US8516185B2 (en) * 2009-07-16 2013-08-20 Netlist, Inc. System and method utilizing distributed byte-wise buffers on a memory module
US20100005206A1 (en) * 2008-07-01 2010-01-07 International Business Machines Corporation Automatic read data flow control in a cascade interconnect memory system
US8139390B2 (en) * 2008-07-08 2012-03-20 Mosaid Technologies Incorporated Mixed data rates in memory devices and systems
US8122421B2 (en) * 2008-08-14 2012-02-21 Omnivision Technologies, Inc. System, and method, and computer readable medium for designing a scalable clustered storage integrated circuit for multi-media processing
US8560735B2 (en) * 2008-08-15 2013-10-15 Micron Technology, Inc. Chained bus method and device
EP4282462A3 (de) 2008-10-10 2024-02-21 MedicalTree Patent Ltd. Herzunterstützungsgerät, system und verfahren
WO2010042019A1 (en) 2008-10-10 2010-04-15 Milux Holding Sa Heart help device, system, and method
ES2962384T3 (es) 2008-10-10 2024-03-18 Implantica Patent Ltd Aparato para el tratamiento de la disfunción sexual femenina
US8874215B2 (en) 2008-10-10 2014-10-28 Peter Forsell System, an apparatus, and a method for treating a sexual dysfunctional female patient
WO2010042058A1 (en) 2008-10-10 2010-04-15 Milux Holding S.A. An improved artificial valve
EP2349078A4 (de) 2008-10-10 2018-02-07 Kirk Promotion LTD. Befestigungsvorrichtung für eine implantierbare medizinische steuerungsanordnung
DE102009004565B4 (de) * 2009-01-14 2015-04-02 Texas Instruments Deutschland Gmbh Vorrichtung und Verfahren zum Zwischenspeichern von Daten zwischen Speichercontroller und DRAM
US8023345B2 (en) * 2009-02-24 2011-09-20 International Business Machines Corporation Iteratively writing contents to memory locations using a statistical model
CN101872308A (zh) * 2009-04-25 2010-10-27 鸿富锦精密工业(深圳)有限公司 内存条控制系统及其控制方法
US8046628B2 (en) * 2009-06-05 2011-10-25 Micron Technology, Inc. Failure recovery memory devices and methods
US8521980B2 (en) * 2009-07-16 2013-08-27 Mosaid Technologies Incorporated Simultaneous read and write data transfer
US10952836B2 (en) 2009-07-17 2021-03-23 Peter Forsell Vaginal operation method for the treatment of urinary incontinence in women
US9949812B2 (en) 2009-07-17 2018-04-24 Peter Forsell Vaginal operation method for the treatment of anal incontinence in women
US8230276B2 (en) * 2009-09-28 2012-07-24 International Business Machines Corporation Writing to memory using adaptive write techniques
US8386739B2 (en) * 2009-09-28 2013-02-26 International Business Machines Corporation Writing to memory using shared address buses
US8923405B1 (en) * 2010-01-25 2014-12-30 Ambarella, Inc. Memory access ordering for a transformation
US8463985B2 (en) 2010-03-31 2013-06-11 International Business Machines Corporation Constrained coding to reduce floating gate coupling in non-volatile memories
US20120079313A1 (en) * 2010-09-24 2012-03-29 Honeywell International Inc. Distributed memory array supporting random access and file storage operations
US11048410B2 (en) 2011-08-24 2021-06-29 Rambus Inc. Distributed procedure execution and file systems on a memory interface
WO2013028854A1 (en) 2011-08-24 2013-02-28 Rambus Inc. Methods and systems for mapping a peripheral function onto a legacy memory interface
US9098209B2 (en) 2011-08-24 2015-08-04 Rambus Inc. Communication via a memory interface
US8495440B2 (en) 2011-08-30 2013-07-23 Advanced Micro Devices, Inc. Fully programmable parallel PRBS generator
US8825967B2 (en) 2011-12-08 2014-09-02 Conversant Intellectual Property Management Inc. Independent write and read control in serially-connected devices
CN103959300A (zh) 2012-03-21 2014-07-30 三星Sds株式会社 反恶意程序系统及该系统中的数据处理方法
CN102693337B (zh) * 2012-05-11 2014-04-30 江苏中科梦兰电子科技有限公司 8位位宽和16位位宽内存芯片兼容的内存设备设计方法
US9285865B2 (en) 2012-06-29 2016-03-15 Oracle International Corporation Dynamic link scaling based on bandwidth utilization
US9390018B2 (en) * 2012-08-17 2016-07-12 Advanced Micro Devices, Inc. Data cache prefetch hints
US9348753B2 (en) 2012-10-10 2016-05-24 Advanced Micro Devices, Inc. Controlling prefetch aggressiveness based on thrash events
WO2014056178A1 (zh) * 2012-10-12 2014-04-17 华为技术有限公司 内存系统、内存模块、内存模块的访问方法以及计算机系统
JP5985403B2 (ja) 2013-01-10 2016-09-06 株式会社東芝 ストレージ装置
JP6005533B2 (ja) 2013-01-17 2016-10-12 株式会社東芝 記憶装置および記憶方法
KR20150010150A (ko) * 2013-07-18 2015-01-28 삼성전자주식회사 메모리 시스템 및 이의 동작 방법
JP5931816B2 (ja) 2013-08-22 2016-06-08 株式会社東芝 ストレージ装置
CN104461727A (zh) * 2013-09-16 2015-03-25 华为技术有限公司 内存模组访问方法及装置
US9141541B2 (en) 2013-09-20 2015-09-22 Advanced Micro Devices, Inc. Nested channel address interleaving
JP2015152949A (ja) 2014-02-10 2015-08-24 株式会社東芝 ストレージシステム
US9558143B2 (en) 2014-05-09 2017-01-31 Micron Technology, Inc. Interconnect systems and methods using hybrid memory cube links to send packetized data over different endpoints of a data handling device
US9396065B2 (en) * 2014-06-25 2016-07-19 Intel Corporation Extensible memory hub
US9336047B2 (en) 2014-06-30 2016-05-10 International Business Machines Corporation Prefetching of discontiguous storage locations in anticipation of transactional execution
US9448939B2 (en) 2014-06-30 2016-09-20 International Business Machines Corporation Collecting memory operand access characteristics during transactional execution
US9348643B2 (en) 2014-06-30 2016-05-24 International Business Machines Corporation Prefetching of discontiguous storage locations as part of transactional execution
US9710271B2 (en) 2014-06-30 2017-07-18 International Business Machines Corporation Collecting transactional execution characteristics during transactional execution
US9600286B2 (en) 2014-06-30 2017-03-21 International Business Machines Corporation Latent modification instruction for transactional execution
US10528284B2 (en) * 2016-03-29 2020-01-07 Samsung Electronics Co., Ltd. Method and apparatus for enabling larger memory capacity than physical memory size
US10496543B2 (en) 2016-03-31 2019-12-03 Samsung Electronics Co., Ltd. Virtual bucket multiple hash tables for efficient memory in-line deduplication application
US10678704B2 (en) 2016-03-29 2020-06-09 Samsung Electronics Co., Ltd. Method and apparatus for enabling larger memory capacity than physical memory size
US10573354B2 (en) * 2016-09-22 2020-02-25 Smart Modular Technologies, Inc. High density memory module system
US10095421B2 (en) 2016-10-21 2018-10-09 Advanced Micro Devices, Inc. Hybrid memory module bridge network and buffers
US11373691B2 (en) 2019-12-20 2022-06-28 Micron Technology Inc. Clock locking for packet based communications of memory devices
US11513976B2 (en) * 2020-03-31 2022-11-29 Western Digital Technologies, Inc. Advanced CE encoding for bus multiplexer grid for SSD
TWI756810B (zh) * 2020-09-02 2022-03-01 瑞昱半導體股份有限公司 晶片與相關的晶片系統
TWI802065B (zh) * 2021-10-29 2023-05-11 飛捷科技股份有限公司 可控制周邊裝置電源與訊號的通信介面轉接器、動態分配通信介面轉接器識別碼的方法及自動化診斷周邊裝置並修復問題的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10121902A1 (de) * 2000-06-09 2001-12-20 Samsung Electronics Co Ltd Speichermodul
US20020038405A1 (en) * 1998-09-30 2002-03-28 Michael W. Leddige Method and apparatus for implementing multiple memory buses on a memory module
DE69132721T2 (de) * 1990-04-18 2002-05-29 Rambus Inc Eingang/Ausgang einer integrierten Schaltung mit einer Hochleistungsbusschnittstelle
DE10146491A1 (de) * 2001-09-21 2003-04-24 Infineon Technologies Ag Elektronische Schaltung mit einer Treiberschaltung

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4604689A (en) * 1983-04-15 1986-08-05 Convergent Technologies, Inc. Bus repeater
JPH0740225B2 (ja) * 1985-12-25 1995-05-01 日本電気株式会社 プログラムスキツプ動作制御方式
US5434861A (en) * 1989-02-02 1995-07-18 Pritty; David Deterministic timed bus access method
GB2234372A (en) 1989-07-18 1991-01-30 Anamartic Ltd Mass memory device
FR2707778B1 (fr) * 1993-07-15 1995-08-18 Bull Sa NÓoeud de processeurs.
JP3548616B2 (ja) * 1995-01-20 2004-07-28 株式会社日立製作所 情報処理装置
US6226723B1 (en) * 1996-09-20 2001-05-01 Advanced Memory International, Inc. Bifurcated data and command/address communication bus architecture for random access memories employing synchronous communication protocols
US5822766A (en) * 1997-01-09 1998-10-13 Unisys Corporation Main memory interface for high speed data transfer
JP3189727B2 (ja) * 1997-04-15 2001-07-16 日本電気株式会社 コプロセッサ内蔵パケット型メモリlsi、それを用いたメモリシステム及びそれらの制御方法
US6442644B1 (en) * 1997-08-11 2002-08-27 Advanced Memory International, Inc. Memory system having synchronous-link DRAM (SLDRAM) devices and controller
US6970968B1 (en) * 1998-02-13 2005-11-29 Intel Corporation Memory module controller for providing an interface between a system memory controller and a plurality of memory devices on a memory module
US6154821A (en) * 1998-03-10 2000-11-28 Rambus Inc. Method and apparatus for initializing dynamic random access memory (DRAM) devices by levelizing a read domain
US6643745B1 (en) * 1998-03-31 2003-11-04 Intel Corporation Method and apparatus for prefetching data into cache
US6249840B1 (en) * 1998-10-23 2001-06-19 Enhanced Memory Systems, Inc. Multi-bank ESDRAM with cross-coupled SRAM cache registers
US6272601B1 (en) * 1999-05-20 2001-08-07 International Business Machines Corporation Critical word forwarding in a multiprocessor system
JP3892655B2 (ja) * 1999-09-17 2007-03-14 株式会社東芝 半導体集積回路装置
US6567023B1 (en) * 1999-09-17 2003-05-20 Kabushiki Kaisha Toshiba Analog to digital to analog converter for multi-valued current data using internal binary voltage
US6553446B1 (en) * 1999-09-29 2003-04-22 Silicon Graphics Inc. Modular input/output controller capable of routing packets over busses operating at different speeds
US6430648B1 (en) * 2000-01-05 2002-08-06 International Business Machines Corporation Arranging address space to access multiple memory banks
US6502161B1 (en) * 2000-01-05 2002-12-31 Rambus Inc. Memory system including a point-to-point linked memory subsystem
US6625687B1 (en) 2000-09-18 2003-09-23 Intel Corporation Memory module employing a junction circuit for point-to-point connection isolation, voltage translation, data synchronization, and multiplexing/demultiplexing
US6658509B1 (en) * 2000-10-03 2003-12-02 Intel Corporation Multi-tier point-to-point ring memory interface
US6493250B2 (en) * 2000-12-28 2002-12-10 Intel Corporation Multi-tier point-to-point buffered memory interface
US6665742B2 (en) * 2001-01-31 2003-12-16 Advanced Micro Devices, Inc. System for reconfiguring a first device and/or a second device to use a maximum compatible communication parameters based on transmitting a communication to the first and second devices of a point-to-point link
US6571318B1 (en) * 2001-03-02 2003-05-27 Advanced Micro Devices, Inc. Stride based prefetcher with confidence counter and dynamic prefetch-ahead mechanism
US6877079B2 (en) 2001-03-06 2005-04-05 Samsung Electronics Co., Ltd. Memory system having point-to-point bus configuration
JP2002278825A (ja) * 2001-03-19 2002-09-27 Ricoh Co Ltd メモリ制御装置
US6675272B2 (en) * 2001-04-24 2004-01-06 Rambus Inc. Method and apparatus for coordinating memory operations among diversely-located memory components
US6760817B2 (en) * 2001-06-21 2004-07-06 International Business Machines Corporation Method and system for prefetching utilizing memory initiated prefetch write operations
US7184408B2 (en) * 2001-07-31 2007-02-27 Denton I Claude Method and apparatus for programmable generation of traffic streams
US6781911B2 (en) * 2002-04-09 2004-08-24 Intel Corporation Early power-down digital memory device and method
US7117316B2 (en) * 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
TW569096B (en) * 2002-09-17 2004-01-01 Integrated Technology Express The cache/prefetch frame of serial data system and its method of operation
US6996639B2 (en) * 2002-12-10 2006-02-07 Intel Corporation Configurably prefetching head-of-queue from ring buffers
US7389364B2 (en) * 2003-07-22 2008-06-17 Micron Technology, Inc. Apparatus and method for direct memory access in a hub-based memory system
US7366864B2 (en) * 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69132721T2 (de) * 1990-04-18 2002-05-29 Rambus Inc Eingang/Ausgang einer integrierten Schaltung mit einer Hochleistungsbusschnittstelle
US20020038405A1 (en) * 1998-09-30 2002-03-28 Michael W. Leddige Method and apparatus for implementing multiple memory buses on a memory module
DE10121902A1 (de) * 2000-06-09 2001-12-20 Samsung Electronics Co Ltd Speichermodul
DE10146491A1 (de) * 2001-09-21 2003-04-24 Infineon Technologies Ag Elektronische Schaltung mit einer Treiberschaltung

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HyperTransport Technology Consortium: HyperTransport I/O Link Specification, Revision 1.04, 30.05.2002, Seiten 21-27, 36-38, 50-67 und 114-122 *
Maik, Franke, HyperTransport - ein neues On-Board kKommunikationssystem, TU Chemnitz, 16. April 2003 (15 Seiten) *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9792246B2 (en) 2014-12-27 2017-10-17 Intel Corporation Lower-power scrambling with improved signal integrity

Also Published As

Publication number Publication date
CN100444141C (zh) 2008-12-17
WO2004102403A3 (en) 2005-08-25
KR20060009345A (ko) 2006-01-31
JP4836794B2 (ja) 2011-12-14
DE112004000821T5 (de) 2006-05-11
US20050166006A1 (en) 2005-07-28
TW200508875A (en) 2005-03-01
US7016213B2 (en) 2006-03-21
GB2416056A (en) 2006-01-11
CN1788260A (zh) 2006-06-14
WO2004102403A2 (en) 2004-11-25
GB0521694D0 (en) 2005-11-30
US20040230718A1 (en) 2004-11-18
KR101095025B1 (ko) 2011-12-20
US20050162882A1 (en) 2005-07-28
US7421525B2 (en) 2008-09-02
JP2006528394A (ja) 2006-12-14
GB2416056B (en) 2006-08-23
TWI351613B (en) 2011-11-01
US20050071542A1 (en) 2005-03-31

Similar Documents

Publication Publication Date Title
DE112004000821B4 (de) System mit einem Hauptrechner, der mit mehreren Speichermodulen über eine serielle Speicherverbindung verbunden ist
DE102006035612B4 (de) Speicherpuffer, FB-DIMM und Verfahren zum Betrieb eines Speicherpuffers
DE112007002619B4 (de) Speichersteuerung mit einer Speicherverbindung mit zwei Betriebsmodi
DE102012204991B4 (de) Speichereinrichtungen, Systeme und Verfahren unter Verwendung einer Befehls/Adressenkalibrierung
DE69133565T3 (de) System mit einer Vielzahl von DRAMS und einem Bus
DE60205877T2 (de) Verfahren zur synchronisation der auslesezeit eines hochgeschwindigkeitsspeichers
DE10144247B4 (de) Halbleiterspeicherbauelement und zugehöriges Halbleiterspeichersystem
DE102005053625B4 (de) Speichermodul mit einer Mehrzahl von Speicherbausteinen
EP1940654B1 (de) Verfahren zur Anbindung eines FlexRay-Teilnehmers mit einem Mikrocontroller an eine FlexRay-Kommunikationsverbindung über eine FlexRay-Kommunikationssteuereinrichtung, und FlexRay-Kommunikationssystem zur Realisierung dieses Verfahrens
EP1787204B1 (de) Botschaftsverwalter und verfahren zur steuerung des zugriffs auf daten eines botschaftsspeichers eines kommunikationsbausteins
DE69831891T2 (de) Optischer Rechnerbus mit dynamischer Bandbreitenzuordnung
DE112006000298T5 (de) Zwischenspeicher zum Zusammenfassen lokaler Daten von Speichermodulen
DE102015010900B4 (de) Serieller Hochgeschwindigkeitsring
DE112007002605T5 (de) Speichersystem mit seriellem Hochgeschwindigkeitspuffer
DE102005004464A1 (de) Verfahren zur Speicherung von Botschaften in einem Botschaftsspeicher und Botschaftsspeicher
EP1776805A1 (de) Flexray-kommunikationsbaustein
DE102005048582A1 (de) Teilnehmerschnittstelle zwischen einem Mikrocontroller und einem FlexRay-Kommunikationsbaustein, FlexRay-Teilnehmer und Verfahren zur Übertragung von Botschaften über eine solche Schnittstelle
DE102005048581B4 (de) Teilnehmerschnittstelle zwischen einem FlexRay-Kommunikationsbaustein und einem FlexRay-Teilnehmer und Verfahren zur Übertragung von Botschaften über eine solche Schnittstelle
WO2006015908A1 (de) Verfahren zur speicherung von botschaften in einem botschaftsspeicher und botschaftsspeicher
DE60211673T2 (de) Verfahren und vorrichtung zur galvanisch getrennten übertragung von gigabitdaten mit einem schleifringübertrager
DE102005048584A1 (de) FlexRay-Kommunikationsbaustein, FlexRay-Kommunikationscontroller und Verfahren zur Botschaftsübertragung zwischen einer FlexRay-Kommunikationsverbindung und einem FlexRay-Teilnehmer
DE69927762T2 (de) Verfahren zur Übertragung von grossen Informationspaketen über Netze
DE10164917B4 (de) Halbleiterspeichersystem
DE102005062576B4 (de) Elektronische Steuereinrichtung mit einem parallelen Datenbus
DE10253696A1 (de) Speichersystem, welches einen nicht verteilten Befehls/Adress-Takt nutzt

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law

Ref document number: 112004000821

Country of ref document: DE

Date of ref document: 20060511

Kind code of ref document: P

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final