DE69937808T2 - Verfahren und vorrichtung zur konfiguration und initialisierung einer speichervorrichtung und eines speicherkanals - Google Patents

Verfahren und vorrichtung zur konfiguration und initialisierung einer speichervorrichtung und eines speicherkanals Download PDF

Info

Publication number
DE69937808T2
DE69937808T2 DE69937808T DE69937808T DE69937808T2 DE 69937808 T2 DE69937808 T2 DE 69937808T2 DE 69937808 T DE69937808 T DE 69937808T DE 69937808 T DE69937808 T DE 69937808T DE 69937808 T2 DE69937808 T2 DE 69937808T2
Authority
DE
Germany
Prior art keywords
memory
devices
rdram
register
mch
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.)
Expired - Lifetime
Application number
DE69937808T
Other languages
English (en)
Other versions
DE69937808D1 (de
Inventor
William A. Folsom Stevens
Puthiya K. El Dorado Hills NIZAR
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE69937808D1 publication Critical patent/DE69937808D1/de
Application granted granted Critical
Publication of DE69937808T2 publication Critical patent/DE69937808T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Dram (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Logic Circuits (AREA)

Description

  • STAND DER TECHNIK
  • 1. Gebiet der Erfindung
  • Die vorliegende Offenbarung betrifft das Gebiet der Datenverarbeitungssysteme. Im Besonderen betrifft die vorliegende Offenbarung die Initialisierung oder Konfiguration von Speichervorrichtungen in einem Speicherkanal.
  • 2. Beschreibung des Stands der Technik
  • Speichervorrichtungen und Speicherteilsysteme bzw. Speicher-Subsysteme weisen für gewöhnlich bestimmte Initialisierungsschritte und/oder Registerwerte auf, die vor dem normalen Betrieb programmiert werden müssen. Empfohlene Schritte und Werte sind häufig in einer Speicherspezifikation ausgeführt, die den Systementwicklern bereitgestellt wird, die andere Systemhardware entwickeln, die Schnittstellenverbindungen mit den Speichervorrichtungen bzw. Speicherbausteinen herstellen. Wenn Initialisierungsroutinen weiter optimiert werden, so kann die Initialisierung schneller abgeschlossen werden, was es in vorteilhafter Weise ermöglicht, dass die Systemverarbeitung schneller beginnen kann.
  • Ein Kanal (d. h. eine Buskonfiguration), der vor einem ordnungsgemäßen Betrieb eine Initialisierung in erheblichem Umfang erfordert, ist ein RambusTM Direct Rambus Dynamic Random Access Memory Kanal (ein Direct RDRAMTM Kanal). Dieser Kanal ist im Detail beschrieben in Dokumentationen, die von der Rambus Corporation, Mountain View, Kalifornien, USA, erhältlich sind. RDRAM-Speicher und Speichersteuereinheiten, die eine Schnittstellenverbindung mit einem Rambus-Kanal herstellen, weisen verschiedene Register auf, die während dem Initialisierungsvorgang gesetzt werden müssen.
  • Aus der Dokumentation von Rambus ist es ersichtlich, dass eine Reihe von Initialisierungsoperationen ausgeführt werden muss, bevor ein Rambus-Kanal eingesetzt werden kann. Im Allgemeinen liest die Speichersteuereinheit alle Nur-Leseregister in allen RDRAMs, verarbeitet diese Informationen und schreibt danach alle Schreib-Lese-Register in dem entsprechenden Betriebsmodus an die entsprechende Stelle in den RDRAMs. Die Register DeviceID und TRDLY sind wichtige Schreib-Lese-Register, die entsprechend die Speicheradresse für Speichertransaktionen und den Verzögerungswert für Speicherlesedaten festlegen.
  • Ein eindeutiger bzw. einzigartiger Vorrichtungsserienidentifikationswert kann für jeden RDRAM in dem Kanal festgelegt werden, indem die ganze serielle Kette in einer Schleife durchlaufen wird, und wobei sequentielle Serienidentifikationsnummern zugewiesen werden (siehe z. B. S. 28 des Datenblatts Direct RDRAMTM 64/72 Mbit). Ein zweiter ID-Wert, der einfach als Vorrichtungs-ID bezeichnet wird, ermöglicht Speicherzugriffe über den Rambus-Kanal bei normalem Betrieb. Eine eindeutige Vorrichtungs-ID muss auch für aktive Vorrichtungen in dem Kanal festgelegt werden, wobei in der Literatur jedoch keine spezielle Technik für die Zuweisung bzw. Zuordnung von Vorrichtungs-IDs beschrieben wird.
  • Darüber hinaus können RDRAMs die Funktionen Auffrischen (Refresh), Vorladen (Precharge), Stromkalibrierung, Stromabtastung und verschiedene andere Funktionen ausführen (siehe z. B. Seiten 8–9 des Datenblatts Direct RDRAMTM 64/72 Mbit). Diese Befehle werden zwar allgemein in dem Datenblatt Direct RDRAMTM 64/72 Mbit beschrieben, wobei jedoch keine vollständige Initialisierungssequenz bereitgestellt werden kann. Ferner ist es möglich, dass Einzelheiten der Initialisierung und/oder der Konfiguration der jeweiligen Speichersteuereinheiten nicht zur Verfügung stehen. Somit kann gemäß dem Stand der Technik kein geeignetes oder vollständiges Verfahren oder eine entsprechende Vorrichtung zum Konfigurieren einer Reihe von Speichervorrichtungen bzw. Speicherbausteinen in einem Speicherkanal bereitgestellt werden.
  • Das U.S. Patent US-A-5.040.153 offenbart ein Speicheradressierungssystem, das DRAMs verschiedener Größen behandeln kann. Die logische Anordnung der Bänke muss nicht mit der physikalischen Anordnung der Bänke entsprechen. Ein Hardwareregister ist jedem Paar von Bänken von DRAMs zugeordnet, das so programmierbar ist, dass ein Typ von DRAM angezeigt wird, der in bestimmten Speicherbänken eingesetzt ist, sowie die Anfangsadresse der speziellen Anordnung von Speicherbänken. Es ist nicht erforderlich, die größten Speicherchips in die erste Speicherbank einzufügen. Speicherchips jeder Größe können in jede Anordnung von Speicherbänken eingeführt werden, und Informationen in dem programmierbaren Register werden dazu eingesetzt, die Schaltkreisanordnung zu steuern, wodurch der Zugriff auf an das Speichersystem gesendeter Signale entsprechend modifiziert wird.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Vorgesehen ist gemäß einem ersten Aspekt der vorliegenden Erfindung ein Verfahren zum Konfigurieren und/oder Initialisieren von Speichervorrichtungen gemäß dem gegenständlichen Anspruch 1.
  • Weitere Ausführungsbeispiele sind in den Unteransprüchen enthalten.
  • Vorgesehen ist gemäß einem zweiten Aspekt der vorliegenden Erfindung ein System gemäß dem gegenständlichen Anspruch 19.
  • Vorgesehen ist gemäß einem dritten Aspekt der vorliegenden Erfindung ein Computerprogramm gemäß dem gegenständlichen Anspruch 20.
  • Ein offenbartes Ausführungsbeispiel des Verfahrens initialisiert eine Speichersteuereinheit und eine Mehrzahl von Konfigurationsregistern der Speichersteuereinheit. Serielle Identifikationsnummern werden den Speichervorrichtungen zugewiesen, die mit der Speichersteuereinheit gekoppelt sind. Zusätzlich werden Gruppen von Vorrichtungsidentifikationsnummern, die zumindest teilweise auf den Größen der Speichervorrichtungen basieren, den Speichervorrichtungen zugewiesen, und die Speichervorrichtungen werden freigegeben.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung ist in den Abbildungen der beigefügten Zeichnungen beispielhaft und ohne einzuschränken veranschaulicht. Es zeigen:
  • 1 ein Ausführungsbeispiel eines Systems, das Konfigurationsregister in einer Speichersteuereinheit verwendet, um Initialisierungsoperationen für die Speicherinitialisierung zu bezeichnen;
  • 2 ein Flussdiagramm der Programmierung und Ausführung von Initialisierungsoperationen in einem Ausführungsbeispiel des Systems aus 1;
  • 3 ein Ausführungsbeispiel eines Speichersteuerungs-Hubs, der eine Speicherinitialisierung gemäß den Werten veranschaulicht, die in die Steuerungs- und Datenregister geladen werden;
  • 4 ein Flussdiagramm einer Speichervorrichtungskerninitialisierungsoperation;
  • 5 ein Ausführungsbeispiel eines Systems, das einen Initialisierungsablauf gemäß den Abbildungen der 6 bis 9 implementiert;
  • 6 ein Flussdiagramm eines Ausführungsbeispiels einer gesamten Initialisierungssequenz für das Speicherteilsystem des Systems aus 5;
  • 7 ein Ausführungsbeispiel eines seriellen Vorrichtungsidentifikationsprozesses;
  • 8A ein Ausführungsbeispiel eines ersten Abschnitts eines Gruppenvorrichtungsidentifikationsprozesses;
  • 8B ein Ausführungsbeispiel eines Gruppenvorrichtungszuweisungsprozesses (z. B. Block 820 aus 8A);
  • 8C ein Ausführungsbeispiel eines zweiten Abschnitts des Gruppenidentifikationsprozesses aus 8A;
  • 9 ein Ausführungsbeispiel eines Speichervorrichtungskerninitialisierungsprozesses; und
  • 10 ein Ausführungsbeispiel eines Prozesses der Rückkehr aus einem Suspend-to-RAM-Power-Management-Zustands.
  • GENAUE BESCHREIBUNG DER ERFINDUNG
  • Die folgende Beschreibung sieht ein Verfahren und eine Vorrichtung zum Initialisieren einer Speichervorrichtung und eines Speicherkanals vor. In der folgenden Beschreibung sind zahlreiche besondere Einzelheiten ausgeführt, wie etwa Registernamen, Speichertypen, Busprotokolle, bestimmte Arten von Komponenten und ausgewählte logische Partitionierungen und Integrationen, um ein umfassenderes Verständnis der vorliegenden Erfindung zu vermitteln. Hiermit wir jedoch festgestellt, dass der Fachmann auf dem Gebiet die Erfindung auch ohne diese besonderen Einzelheiten ausführen kann. In anderen Fällen wurde auf die nähere Darstellung von Steuerstrukturen und Gate-Level-Schaltungen verzichtet, um die vorliegende Erfindung nicht unnötig zu verschleiern. Der Durchschnittsfachmann auf dem Gebiet ist anhand der enthaltenen Beschreibungen in der Lage, die erforderlichen Logikschaltungen ohne unangemessene Versuche zu implementieren.
  • Unter Verwendung der vorliegenden offenbarten Techniken kann eine effiziente und flexible Speicherinitialisierung vorgenommen werden. Steuer- und Datenregister können programmiert werden, wodurch bewirkt wird, dass ein Speichersteuerungs-Hub (MCH) Initialisierungsoperationen (IOs) gemäß den in den Registern geladenen Werten ausführt. Da die Register durch Software programmiert werden können, wie etwa durch ein BIOS (Basic Input/Output System), kann die Initialisierung verhältnismäßig leicht verändert werden.
  • Die Abbildung aus 1 zeigt ein Ausführungsbeispiel eines Systems, das Register zur Durchführung der Speicherinitialisierung einsetzt. Das System weist einen Prozessor 195 und ein Speicherteilsystem 104 auf, die mit einem Speichersteuerungs-Hub (MCH) 100 gekoppelt sind. Ebenfalls mit dem MCH 100 gekoppelt ist ein sekundärer Bus 180, mit dem eine Eingabevorrichtung 190 und ein nichtflüchtiger Speicher 185, der BIOS-Routinen aufweist, gekoppelt sind. In bestimmten Ausführungsbeispielen können der nichtflüchtige Speicher 185 und/oder die Eingabevorrichtung 190 über einen zweiten Steuer-Hub (nicht abgebildet) mit dem MCH 100 gekoppelt sein.
  • In dem veranschaulichten Ausführungsbeispiel weist das Speicherteilsystem 104 drei Speichermodule 160, 170 und 175 auf, die über einen seriellen Bus 142 und einen Speicherbus 132 (auch als Kanal bezeichnet) mit dem MCH 100 gekoppelt sind. Jedes Speichermodul kann eine Reihe einzelner Speichervorrichtungen aufweisen. Zum Beispiel weist das Speichermodul 160 mindestens die Speichervorrichtungen 160, 161 und 168 auf. In einem Ausführungsbeispiel handelt es sich bei den Speichervorrichtungen 160, 161 und 168 um Rambus DRAMs (RDRAMs), wobei es sich bei den Speichermodulen um Rambus In-Line Speichermodule (RIMMs) handelt, und wobei der Kanal gemäß den Protokollen arbeitet, die für RIMMs und RDRAMs definiert sind.
  • Der MCH 100 weist ein Steuerregister 112 und ein Datenregister 114 auf, die für Initialisierungszwecke eingesetzt werden können. Eine Initialisierungssteuerschaltung 120 führt Initialisierungsoperanden (IOPs) aus, die in dem Steuerregister 112 programmiert sind. Das Steuerregister 112 weist für gewöhnlich andere Felder auf, um Informationen über Initialisierungsoperationen zu spezifizieren, und wobei einige der durch IOPs spezifizierten Operationen den Datenaustausch mit Vorrichtungen in dem Speicherteilsystem umfassen bzw. beinhalten (z. B. Schreiben und Lesen von Speichervorrichtungs-Steuerregistern oder die anderweitige Erzeugung von Steuersignalen).
  • Eine serielle Schnittstellenschaltung 140 erzeugt serielle Befehls- und Datenfolgen an dem seriellen Bus 142. Einige der durch die Initialisierungssteuerschaltung 120 ausgeführten Befehle senden Befehle und/oder Daten über den seriellen Bus 142 an das Speicherteilsystem. Steuerregister, die Vorrichtungsregister für Identifikationsnummern aufweisen, können über die seriellen Schnittstellenschaltung 140 gelesen und beschrieben werden.
  • Eine Speicherschnittstellenschaltung 130 übersetzt Speicherdaten in und aus Datenpaketen, die mit dem Speicherteilsystem ausgetauscht werden. In einem Ausführungsbeispiel handelt es sich bei der Speicherschnittstellenschaltung um eine Rambus ASIC Cell (RAC), die im Wesentlichen so arbeitet, wie dies in dem Datenblatt "Direct RAC Data Sheet" beschrieben ist, das von der Rambus Corporation, Mountain View, Kalifornien, USA, erhältlich ist. Kurz gesagt wandelt RAC RSL-Signale (RSL als englische Abkürzung von Rambus Signal Level) auf dem Kanal (Bus 132) in Signale um, die durch andere Abschnitte des MCH 100 verarbeitet werden können. In ähnlicher Weise wandelt die RAC die Signale der Speichersteuereinheit in ein RSL-Signal um, das von Speichervorrichtungen an dem Rambus-Kanal verarbeitet werden kann.
  • Eine Folge von Initialisierungsereignissen für das System aus 1 ist in der Abbildung aus 2 dargestellt. Wenn das System einem Reset bzw. Neustart unterzogen oder eingeschaltet wird, führt das BIOS für gewöhnlich verschiedene Initialisierungsoperationen aus. In dem Block 200 erreicht das BIOS den Speicherkonfigurationsabschnitt. Abhängig von dem Speichertyp und dem beabsichtigten Nutzungsmodus werden Initialisierungsoperationen durch das BIOS in einer bestimmten Folge bzw. Sequenz ausgewählt (Block 205). Weitere Einzelheiten eines Ausführungsbeispiels einer Initialisierungssequenz für ein System, das RDRAMs einsetzt, werden nachstehend im Text in Bezug auf die Abbildungen der 5 bis 9 beschrieben.
  • Wie dies in dem Block 210 dargestellt ist, werden Daten (sofern vorhanden) für die jeweilige Initialisierungsoperation in dem Datenregister 114 gespeichert, und der Initialisierungsoperand selbst mit weiteren Steuerinformationen wird in dem Steuerregister 112 gespeichert. In bestimmten Ausführungsbeispielen kann das BIOS diese Funktion ausführen, indem PCI-Konfigurationsregister (PCI als englische Abkürzung von Peripheral Component Interconnect) beschrieben werden. Alternativ können auch andere Register eingesetzt werden, wobei aber auch universelle Speicherplätze entweder in dem oder ohne den MCH können das Steuerregister darstellen. Das Steuerregister kann somit jeden Speicherplatz darstellen, auf den der MCH vor der Speicherinitialisierung zugreifen kann, der ausreichend Bits für die IOPs und etwaige sonstige erforderliche Steuerinformationen speichern kann.
  • Die Initialisierungsoperation kann automatisch beginnen, wenn die entsprechende Initialisierungsoperation und/oder Steuerinformationen in das Steuerregister 112 programmiert werden. Zum Beispiel kann die Ausführung der in Block 215 angezeigten Initialisierungsoperation erreicht werden, indem ein Bit zum Einleiten der Initialisierungsoperation (IIO) gesetzt wird, wenn der Initialisierungsoperand in das Steuerregister 112 geladen wird. Das IIO-Bit kann ein Feld des Steuerregisters 112 darstellen, so dass die gleiche Register-Schreibtransaktion das IIO-Bit setzen und den IOP bereitstellen kann.
  • Die vollständige Ausführung der Initialisierungsoperation kann auf jede geeignete bzw. ausreichende Weise signalisiert werden, um das BIOS darauf hinzuweisen bzw. darüber zu informieren, dass die Initialisierungsoperation abgeschlossen ist. Zum Beispiel kann der MCH das IIO-Bit automatisch löschen, wenn die Initialisierungsoperation abgeschlossen ist. Wenn das BIOS das IIO-Bit abruft, kann es bestimmen, wann die Initialisierungsoperation abgeschlossen ist, wie dies in dem Block 220 angezeigt wird. Wenn die Initialisierungsoperation nicht abgeschlossen ist, kann das BIOS weiter das IIO-Bit abrufen. Wenn die Initialisierungsoperation abgeschlossen ist, kann das BIOS die nächste Initialisierungsoperation in der Initialisierungssequenz in dem Block 205 auswählen.
  • Die Eingabevorrichtung 190 kann Programmanweisungen von einer Computerspeichervorrichtung 192 annehmen (z. B. einer optischen oder magnetischen Disk oder anderen Speichervorrichtung) oder von einem Netzwerk oder einer Kommunikationsschnittstelle 194. BIOS-Code (d. h. Computerbefehle), der es bewirkt, dass das System die offenbarten Techniken ausführt, kann auf verschiedene Art und Weise in den nichtflüchtigen Speicher 185 programmiert werden. Das BIOS kann programmiert werden, wenn das System hergestellt wird, wobei es aber auch später über ein computerlesbares Medium über die Eingabevorrichtung 190 hinzugefügt werden kann.
  • In Situationen, in denen das BIOS später hinzugefügt wird, können die Befehle bzw. Anweisungen über ein computerlesbares Medium zugeführt werden. In Verbindung mit einer entsprechenden Schnittstellenvorrichtung 190 ist ein elektronisches Signal oder ein physikalischer Träger ein computerlesbares Medium. Zum Beispiel handelt es sich bei der Computerspeichervorrichtung 192 in einem Ausführungsbeispiel um ein computerlesbares Medium. Eine Trägerwelle 196, welche den Computerbefehl trägt bzw. führt, ist in einem anderen Ausführungsbeispiel ein computerlesbares Medium. Die Trägerwelle 196 kann moduliert oder anderweitig manipuliert werden, um Befehle aufzuweisen, die durch die Eingabevorrichtung 190 unter Verwendung bekannter oder anderweitig verfügbarer Kommunikationstechniken decodiert werden können. In jedem Fall können die Computerbefehle über ein computerlesbares Medium zugeführt werden.
  • Die Abbildung aus 3 veranschaulicht weitere Einzelheiten eines Speicher-Steuer-Hubs (MCH) 300. Nachstehend sind in Bezug auf ein Ausführungsbeispiel Einzelheiten zu spezifischen Registernamen, Positionen, Größen, Felddefinitionen und Initialisierungsoperationen ausgeführt. Für den Fachmann auf dem Gebiet sind weitere Ausführungsbeispiele ersichtlich. Verschiedene der nachstehend aufgeführten Operationen rufen bestimmte Befehle auf, die von Rambus definiert sind in den Datenblättern 64/72-Mbit Data Sheet und Direct RAC Data Sheet. Diese definierten Operationen sind Operationen, die die Rambus RAC selbst an die RDRAMs sendet, wenn entsprechende Steuersignale an die RAC gesendet werden. Wie dies nachstehend ausgeführt ist, ruft das vorliegende Ausführungsbeispiel des MCH 300 bekannte RAC-Befehle von vorher nicht verfügbarer Hardware und in neuen Verfahren oder Sequenzen auf.
  • In dem vorliegenden Ausführungsbeispiel weist der MCH 300 eine RAC 330 und eine serielle Schnittstelle 340 auf. Die serielle Schnittstelle 340 verwendet die Pins Takt (SCK), serieller Frame (CMD) und bidirektionale serielle E/A-Pins (SIO0 und SIO1), um aus RDRAM-Konfigurationsregistern zu lesen und diese zu beschreiben sowie zur Ausführung anderer IOPs. Der MCH weist ferner ein Register Vorrichtungsregisterdaten (DRD) 314 auf. Das DRD-Register 314 befindet sich an einer versetzten Adresse 90–91h in dem PCI-Konfigurationsraum, wobei der Standardwert 0000h (16 Bits) lautet, und wobei es sich bei dem Register um ein Schreib-Lese-Register handelt. Die Felder des DRD-Registers sind in Tabelle 1 dargestellt. Tabelle 1: Ein Ausführungsbeispiel des DRD-Registers
    Bit Beschreibung
    15:0 Daten registrieren (RD): Die Bits 15:0 enthalten 16-Bit-Daten, die in ein RDRAM-Register geschrieben oder aus einem RDRAM-Register gelesen werden sollen als Folge der IOP-Ausführung. Daten sind gültig, wenn das IIO-Bit des RICM-Registers von 1 auf 0 wechselt bzw. übergeht.
  • Der MCH 300 weist ferner ein Register RDRAM Initialisierungssteuermanagement (RICM als englische Abkürzung von RDRAM Initialization Control Management) 312 auf. Das RICM-Register befindet sich an einer Versatzadresse 94–96h in dem PCI-Konfigurationsraum, wobei der Standardwert 000000h (24 Bits) lautet, und wobei es sich bei dem Register um ein Schreib-Lese-Register handelt. Die Felder des RICM-Registers für dieses Ausführungsbeispiel sind in Tabelle 2 ausgeführt. Tabelle 2: Ein Ausführungsbeispiel des RICM-Registers
    Bit Beschreibung
    23 Initiate Initialization Operation (IIO) (Operation Initialisierung einleiten): Wenn auf 1 gesetzt, beginnt die Ausführung der durch das IOP-Feld (unten) spezifizierten Initialisierungsoperation. Nach Abschluss der Ausführung löscht der MCH das IIO-Bit auf 0. Ein Softwareprogramm sollte prüfen, um festzustellen, ob das Bit gleich 0 ist, bevor es beschrieben wird. Daten von Operationen, welche einen Registerdatenlesevorgang aus dem RDRAM spezifizieren, sind in dem DRD-Register gültig, wenn das IIO-Bit auf 0 gelöscht wird.
    22:21 RESERVIERT: Diese Bits werden für normale Initialisierungsoperationen nicht verwendet.
    20 Initialization Complete (IC) (Initialisierung abgeschlossen): Das BIOS setzt dieses Bit auf 1, wenn die Initialisierung der RDRAM-Speicheranordnung abgeschlossen ist.
    19 Broadcast Address (BA) (Adresse übermitteln): Wenn BA auf 1 gesetzt ist, wird die Initialisierungsoperation (IOP) an alle Vorrichtungen in dem Kanal übermittelt. Wenn BA auf 1 gesetzt ist, wird das SDA-Feld (unten) nicht verwendet.
    17:9 Device Register Address (DRA) (Vorrichtungsregisteradresse): Dieses Feld spezifiziert die Registeradresse für die Registerlese- und Schreibtransaktionen.
    8:4 Serial Device/Channel Address (SDA) (Serielle Vorrichtungs-/Kanaladresse): Das 5-Bit-Feld spezifiziert folgendes: • die serielle Vorrichtungs-ID der RDRAM-Vorrichtung für die Befehle IOP RDRAM Register Read, RDRAM Register Write, RDRAM Set Reset, RDRAM Clear Reset und RDRAM Set Fast Clock Mode; • die Vorrichtungs-ID für die Befehle IOP Powerdown Entry, Powerdown Exit, Nap Entry, Nap Exit, Current Calibrate und Current Calibrate & Sample; • die Bankadresse für die Befehle IOP Refresh und Precharge
    18, 3:0 Initialization Opcode (IOP) (Initialisierungs-Operationscode): Dieses Feld spezifiziert die an einer RDRAM-Vorrichtung oder der MCH RAC auszuführende Initialisierungsoperation.
    Bits [18,3:0] 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 bis 0 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 1 Spezifizierte Operation RDRAM Register Read RDRAM Register Write RDRAM Set Reset RDRAM Clear Reset RDRAM Set Fast Clock Mode Reserviert RDRAM Temperature Calibrate Enable und danach Temperature Calibrate Reserviert RDRAM Core Initialization (RCI) RDRAM SIO Reset RDRAM Powerdown Exit RDRAM Powerdown Entry RDRAM "Current Cal" und "Current Cal + Sample" Manual Current Calibration of MCH RAC Load MCH RAC control register with data from DRD register Initialize MCH RAC RDRAM Nap Entry RDRAM Nap Exit RDRAM Refresh RDRAM Precharge
    Alle anderen Kombinationen sind reserviert. Weitere Einzelheiten zu den durch das IOP-Feld spezifizierten Operationen sind in der folgenden Tabelle 3 dargestellt.
  • Die Abbildung aus 3 veranschaulicht ferner eine Initialisierungssteuerschaltung 320, die eine RDRAM IOP Ausführungsschaltung 325 aufweist. Einzelheiten der verschieden durch die Steuerschaltung 320 ausgeführten IOPs sind in Tabelle 3 dargestellt. In Tabelle 3 sind das Feld Übermittlungsadresse (Broadcast Address (BA)) (Bit 19) und das Feld SDA (Bits 8:4) durch eine der folgenden Darstellungen aufgeführt:
  • NE:
    Das Feld wirkt sich nicht auf die Initialisierungsoperation aus;
    0:
    Das Feld muss für diese Initialisierungsoperation auf 0 gesetzt werden;
    1:
    Das Feld muss für die Initialisierungsoperation auf 1 gesetzt werden;
    x:
    Das Feld sollte entsprechend für die jeweilige Initialisierungsoperation programmiert werden.
    Tabelle 3: Details zur IOP-Operation
    Bits [18, 3:0] Operationsbezeichnung BA SDA Einzelheiten
    0 0 0 0 0 RDRAM Register Read 0 x Dieser IOP führt das serielle Lesen aus dem durch die Felder SDA und DRA spezifizierten RDRAM-Register aus.
    0 0 0 0 1 RDRAM Register Write x x Dieser IOP führt das serielle Schreiben in das durch die Felder SDA und DRA spezifizierte RDRAM-Register aus. Die Schreibdaten werden in dem DRD-Register bereitgestellt. Eine Schreiboperation an alle RDRAM-Vorrichtungen auf dem Kanal kann ausgeführt werden, indem das Feld BA auf 1 gesetzt wird.
    0 0 0 1 0 RDRAM Set Reset x x Dieser IOP führt das serielle Setzen eines Reset-Bits in einer durch das Feld SDA spezifizierten RDRAM-Vorrichtung aus.
    0 0 0 1 1 RDRAM Clear Reset x x Dieser IOP führt das serielle Löschen des Reset-Bits bzw. Rücksetz-Bits in einer durch das SDA-Feld spezifizierten RDRAM-Vorrichtung aus. Die Operation Clear Reset versetzt die Vorrichtung in einen Powerdown- bzw. Ausschaltzustand. Mindestens vier SCK-Zyklen müssen nach der SIO Paket anfordern vergehen, bevor die RDRAM-Vorrichtung diesen Ausschaltzustand verlassen kann. Die Operation Clear Reset kann nicht ausgegeben werden, bevor nicht 16 SCK-Zyklen nach der Operation Set Reset aufgetreten sind.
    0 0 1 0 0 RDRAM Set Fast Clock Mode x x Die Operation Set Fast Clock Mode bereit die RDRAM-Vorrichtung vor für die Übermittlung und den Empfang von Daten auf RSL-Signalen unter Verwendung des RDRAM-Takts (RCLK).
    0 0 1 1 0 RDRAM Temperature Calibrate Enable und danach Temperature Calibrate 1 x Nach dem Empfang dieses IOP gibt der MCH ein SIO-Anforderungspaket "Temperature Calibrate Enable" aus, unmittelbar gefolgt von einem SIO-Anforderungspaket "Temperature Calibrate" an alle RDRAMs.
    1 0 0 0 0 RDRAM Core Initialization (siehe Figur 4) NE NE Nach dem Empfang dieses IOP-Befehls führt der MCH folgendes aus: 1. Das Verlassen des Powerdown übermitteln. 2. Alle RDRAM-Kerne aller RDRAM-Vorrichtungen auf dem Kanal initialisieren. 3. Temp Cal Enable und Temp Cal übermitteln. 4. NAP Entry (wenn Bit 6 (PBS) des DRAMC-Registers gleich 1 ist) übermitteln. 5. Wenn das IC-Bit (Bit 20) des RICM-Registers in Verbindung mit diesem Befehl auf 1 gesetzt ist, so gibt der MCH RDRAM Refresh, RDRAM Current Cal, RDRAM Temp Cal und die RDRAM DLL Refresh Logik frei, nachdem dieser Befehl vollständig ausgeführt worden ist.
    1 0 0 0 1 RDRAM SIO Reset NE NE Dieser IOP sendet eine SIO-Pin-Initialisierungssequenz an alle RDRAMs. Wenn diese Operation eintritt, wird der SIO0-Pin an dem RDRAM als Eingang konfiguriert und der SIO1-Pin wird als Ausgang konfiguriert. Zusätzlich wird das SIO-Repeater-Bit auf 1 gesetzt.
    1 0 0 1 0 RDRAM Powerdown Exit x x Nach dem Empfang dieses IOP leitet der MCH eine Sequenz zum Verlassen eines Powerdown-Zustands für die durch die SDA- und BA-Felder spezifizierte RDRAM-Vorrichtung ein. Das SDA-Feld sollte die Vorrichtungs-ID, nicht die serielle Vorrichtungs-ID aufweisen.
    1 0 0 1 1 RDRAM Powerdown Entry x x Nach dem Empfang dieser IOP sendet der MCH ein Paket Powerdown Entry PCP an die durch die SDA- und BA-Felder spezifizierte RDRAM-Vorrichtung. Das SDA-Feld sollte die Vorrichtungs-ID aufweisen, nicht die serielle Vorrichtungs-ID.
    1 0 1 0 0 RDRAM "Current Cal" und "Current Cal + Sample" x x Nach dem Empfang dieses IOP sendet der MCH drei Pakete Current Calibrate SCP, gefolgt von einem Paket Current Calibrate and Sample SCP an die durch das Feld SDA spezifizierte RDRAM-Vorrichtung.
    1 0 1 0 1 Manual Current Calibration of MCH RAC NE NE Nach dem Empfang dieses IOP leitet der MCH eine Operation Manual Current Calibration of MCH RAC ein.
    1 0 1 1 0 Load MCH RAC control register with data from DRD register NE NE Nach dem Empfang dieser IOP lädt der MCH das MCH RAC-Steuerregister mit den Daten aus dem DRD-Register.
    1 0 1 1 1 Initialize MCH RAC NE NE Nach dem Empfang dieses IOP initialisiert der MCH die MCH RAC. Die MCH RAC-Initialisierung enthält die Einschaltsequenz (Power Up), die Current Calibration und Temperature Calibration der RAC MCH. Nach der Ausführung dieses Befehls gibt der MCH die periodische Strom- und Temperaturkalibrierung der MCH RAC frei, selbst wenn das IC-Bit nicht auf 1 gesetzt ist.
    1 1 0 0 0 RDRAM Nap Entry x x Nach dem Empfang dieses IOP sendet der MCH ein Paket Nap Entry PCP an die durch die Felder SDA und BA spezifizierte RDRAM-Vorrichtung. Das Feld SDA sollte die Vorrichtungs-ID und nicht die serielle Vorrichtungs-ID enthalten.
    1 1 0 0 1 RDRAM Nap Exit x x Nach dem Empfang dieses IOP leitet der MCH eine Sequenz Nap Exit ein für die durch die Felder SDA und BA spezifizierte RDRAM-Vorrichtung. Das SDA-Feld sollte die Vorrichtungs-ID und nicht die serielle Vorrichtungs-ID enthalten.
    1 1 0 1 0 RDRAM Refresh 1 x Nach dem Empfang dieses IOP sendet der MCH ein Paket Refresh PCP an die spezifizierte Bank aller RDRAM-Vorrichtungen. Die Bankadresse wird durch das SDA-Feld spezifiziert.
    1 1 0 1 1 RDRAM Precharge 1 x Nach dem Empfang dieser IOP sendet der MC ein Paket Precharge PCP an die spezifizierte Bank aller RDRAM-Vorrichtungen. Die Bankadresse ist durch das SDA-Feld spezifiziert.
  • Die Einzelheiten der durch ein Ausführungsbeispiel der Initialisierungssteuerschaltung 320 ausgeführten Operationen als Reaktion auf dem Empfang des IOP RDRAM Core Initialization (10000b) sind in der Abbildung aus 4 dargestellt. In dem Block 400 wird ein Befehl zur Übermittlung des Verlassens des Powerdown-Zustands auf dem Bus ausgegeben. Als nächstes wird gemäß dem Block 405 die durch die Blöcke 410 bis 470 dargestellte Sequenz sechzehn Mal für die Bankadressen Null bis einunddreißig wiederholt. Diese Zahlen können für ein Speicherteilsystem geeignet sein, das einhundertachtundzwanzig Stromkalibrierungswerte und bis zu zweiunddreißig Bänke aufweist. In anderen Ausführungsbeispielen kann eine andere Anzahl von Wiederholungen eingesetzt werden, wenn zum Beispiel eine größere oder kleinere Anzahl von Stromkalibrierungswerten zur Verfügung steht. In ähnlicher Weise kann eine andere Anzahl von Bänken in verschiedenen Systemen zur Verfügung stehen.
  • In dem Block 410 wird keine Operation ausgeführt, um sicherzustellen, dass das Verlassen des Powerdown-Zustands abgeschlossen ist, und dass die Refresh-Operation (REFA-Befehl) in dem Block 415 richtig ausgeführt wird. In dem Block 420 wird ein weiterer Befehl für keine Operation ausgeführt, gefolgt von zwei weiteren Refresh-Operationen (REFA) in den Blöcken 425 und 430. Drei weitere Befehle "keine Operation" werden in dem Block 435 ausgeführt, wodurch ausreichend Zeit verstreichen kann, bevor ein Befehl Refresh Precharge (REFP) eintritt. Nach einem weiteren Befehl für keine Operation in dem Block 445 wird in dem Block 450 ein weiterer Befehl Refresh Precharge (REFP) ausgeführt.
  • Ein Kalibrierungsbefehl (CAL) wird als nächstes in dem Block 455 ausgeführt. Dieser Befehl kalibriert (steuert) IOL-Strom für die gerade angezeigte Vorrichtung. Wie dies in den Blöcken 460 und 465 dargestellt ist, kann diese Operation zweimal wiederholt werden. Danach wird gemäß der Darstellung in dem Block 470 ein Befehl Abtasten (SAMR) ausgeführt. Der Abtastbefehl aktualisiert den IOL-Strom für die gerade angezeigte Vorrichtung. Bis alle sechzehn Wiederholungen für die zweiunddreißig Bänke ausgeführt worden sind, wird dieser Prozess wiederholt.
  • Initialisierungssequenz
  • Durch die vorstehend ausgeführten Initialisierungsoperationen kann ein System initialisiert werden. Zum Beispiel kann das in der Abbildung aus 5 dargestellte System initialisiert werden, das einen Rambus Direct RDRAM Kanal implementiert. Bei dem System manipuliert eine Speichersteuereinheit 500 (auch als Speicher-Steuer-Hub oder MCH bezeichnet) die Initialisierungsaktivitäten. Die Speichersteuereinheit leitet auch spezifische Zeilen-/Spaltenpakete (ROW/COLUMN) auf den Kanal ein. Eine serielle Schnittstelle 540 kann eingesetzt werden, um mit Vorrichtungen auf dem Kanal zu kommunizieren. Zum Beispiel können die Pins Takt (SCK), serieller Frame (CMD) und bidirektionale serielle E/A (SIO0 und SIO1) eingesetzt werden, um aus RDRAM-Konfigurationsregistern zu lesen und diese zu beschreiben sowie um andere IOPs auszuführen.
  • Die Speichersteuereinheit weist eine Rambus ASIC Cell (RAC) 530, eine Steuerschaltung 520 und eine Vielzahl von Registern auf. Die Register weisen Initialisierungsregister 515 auf, die zum Initialisieren des Systemspeichers verwendet werden, und Powerdown-Wiederherstellungsregister 510. Die Powerdown-Wiederherstellungsregister weisen Taktungs- und andere entscheidende Informationen für den Betrieb des Speicherkanals auf. Anders ausgedrückt handelt es sich bei den Powerdown-Wiederherstellungsregistern einfach um Register, die nach dem Ausschalten bzw. einem Ruhezustand der Speichersteuereinheit 500 wiederhergestellt werden müssen, um den Zugriff auf den Speicherkanal fortzusetzen bzw. wieder aufzunehmen. Bei den Registern kann es sich um PCI-Konfigurationsregister handeln.
  • Der Speicherkanal weist die RIMM-Module 560, 565 und 570 auf, die über einen Steuer- und Datenbus 532 und einen seriellen Bus 542 mit dem MCH 500 verbunden sind. Der Steuer- und Datenbus 532 kann durch einen ohmschen Abschluss 533 abgeschlossen werden, und ein Direct Rambus Taktgenerator bzw. Clock Generator (DRCG) 580 kann an dem entfernten Ende des Kanals von dem MCH 500 bereitgestellt werden, um Taktsignale über Signalleitungen 582 bereitzustellen.
  • Das System weist ferner einen Eingabe/Ausgabe-Steuer-Hub (ICH als englische Abkürzung von Input/Output Control Hub) 505 auf, der den MCH mit einem sekundären Bus 506 koppelt und eine zweite serielle Schnittstellenschaltung 544 für eine Schnittsellenverbindung mit einem zweiten seriellen Bus 546 aufweisen kann. Ein serieller Präsenzdetektionsspeicher (SPD als englische Abkürzung von Serial Presence Detect) 572 (ein nichtflüchtiger Speicher, wie etwa ein elektrisch löschbarer und programmierbarer Nur-Lesespeicher) für jedes Modul kann über die serielle Schnittstelle 544 gelesen werden gemäß dem Serial-Presence-Detect-Protokoll. Der SPD-Speicher 572 kann Informationen bereitstellen in Bezug auf jedes entsprechende Speichermodul, wie zum Beispiel Taktungsinformationen, die Vorrichtungsorganisation und die Vorrichtungstechnologie. Weitere Einzelheiten des SPD-Protokolls sind beschrieben in "Serial Presence Detect Application Brief" und in den Datenblättern Direct RambusTM RIMMTM Module und 64/72 Mbit Direct RDRAMTM, die von Rambus erhältlich sind.
  • In einem Ausführungsbeispiel handelt es sich bei dem seriellen Bus 546 um einen I2C-Bus, wie etwa einen Systemmanagementbus (SMBus). Das vorliegende Ausführungsbeispiel weist Takt-(SMBCLK) und Datensignale (SMBDATA) auf, die dem definierten Industrieprotokoll System Management Bus (SMBus) folgen, das in der System Management Bus Spezifikation, Revision 1.0, erhältlich von dem Smart Battery Implementer's Forum im Internet unter http://www.sbs-forum.org erhältlich ist.
  • Der ICH weist General Purpose Outputs (GPOs) auf, die zu Steuerung verschiedener Systemfunktionen verwendet werden, wie zum Beispiel das Festlegen bzw. Einstellen der Frequenz von DRCG 580. Ein nichtflüchtiger Speicher 585, der das BIOS enthält, kann mit dem sekundären Bus 506 sowie einem Direktzugriffsspeicher 590 mit Batteriesicherung gekoppelt werden. Der Speicher 590 mit Batteriesicherung kann Powerdown-Wiederherstellungs-Konfigurationswerte 592 für die MCH Powerdown-Register 510 speichern, so dass der MCH den Zugriff auf den RDRAM-Kanal wieder aufnehmen kann, ohne die nachstehend aufgeführte vollständige Initialisierungssequenz auszuführen.
  • Der Initialisierungsprozess kann kurz wie folgt zusammengefasst werden. Nach dem Zurücksetzen bzw. Neustart werden die Konfigurationsinformationen aus Serial-Presence-Detection-Daten (SPD-Daten) in RIMMs in einem Kanal gelesen. Zum Beispiel speichert eine Speichervorrichtung, der SPD-Speicher 572, Konfigurationsinformationen für die RDRAMs 573, 574, 576 und 577 in dem RIMM 570. Die Speichersteuereinheits-Konfigurationsregister werden mit den entsprechenden Werten aus den SPD-Daten programmiert, und danach werden die RDRAM-Vorrichtungs-IDs so programmiert, dass jede RDRAM-Vorrichtung eindeutig identifiziert und auf sie durch die Speichersteuereinheit zugegriffen werden kann. Nachdem eine Vorrichtung initialisiert worden ist, kann sie eingesetzt werden.
  • Jede RDRAM-Vorrichtung weist zwei Identifikationsnummern auf, die zur eindeutigen Auswahl einer Vorrichtung auf dem Kanal verwendet werden, die serielle Vorrichtungs-ID (Serial Device ID) und die Gruppenvorrichtungs-ID (Group Device ID). Diese beiden IDs werden für verschiedene Operationen auf dem RDRAM-Kanal eingesetzt. Die serielle Vorrichtungs-ID wird für ausgesuchte Vorrichtungen eingesetzt, wenn die Speichersteuereinheit Initialisierungsoperationen auf den Signalen SCK, SIO und CMD des RDRAM-Kanals sendet. Die Gruppenvorrichtungs-ID wird von der Speichersteuereinheit eingesetzt, um eine Vorrichtung auszuwählen, wenn ROW-Pakete (Zeilenpakete) und COLUMN-Pakete (Spaltenpakete) auf RQ[7:0]-Signalen des RDRAM-Kanals gesendet werden. Sowohl die serielle Vorrichtungs-ID als auch die Gruppenvorrichtungs-ID werden nach dem Reset bzw. Zurücksetzen programmiert und bevor Vorrichtungen einzeln entsprechend adressiert werden können durch Initialisierungsoperationen (IOPs) und ROW/COLUMN-Pakete.
  • Bei einer näheren Betrachtung des Initialisierungsprozesses des Rambus-Kanals kann einer speziellen Sequenz gefolgt werden, um einen ordnungsgemäßen Betrieb der RDRAM-Vorrichtungen auf dem Kanal zu erreichen. Die Abbildung aus 6 veranschaulicht ein Flussdiagramm für die ordnungsgemäße Kanalinitialisierung in einem Ausführungsbeispiel, und die Tabelle 4 bezeichnet einige der in diesem Initialisierungsablauf verwendeten Variablen. Tabelle 4: Bei der Initialisierung verwendete Variabeln
    Bezeichnung Breite (Bits) Beschreibung
    RIMMMax 2 Maximal vorhandene Anzahl von RIMMs.
    0 Keine RIMMs vorhanden
    1–3 1 bis 3 RIMMs vorhandens
    RIMMCount 2 Verwendeter Zähler während der Initialisierung zur Auswahl eines RIMM.
    RIMMDeviceCount 5 Anzahl der RDRAM-Vorrichtungen in einem bestimmten RIMM.
    MemberMax 5 Maximale Anzahl, der in einem Kanal vorhandenen Vorrichtungen
    0–31 1 bis 32 RDRAM-Vorrichtungen auf dem Kanal vorhanden
    MemberCount 5 Verwendeter Zähler während der Gruppenvorrichtungs-ID-Aufzählung, um die Anzahl der Vorrichtungen anzuzeigen, denen Gruppen-IDs zugewiesen worden sind.
    SerialIDCount 5 Verwendeter serieller Vorrichtungs-ID-Index auf einem Kanal.
    0–31 Bildet ab auf serielle Vorrichtungs-ID 0–31
    GroupDeviceIDCount 5 Verwendeter Gruppenvorrichtungs-ID-Index während der Gruppenvorrichtungs-ID-Aufzählung, um der nächsten RDRAM-Vorrichtung eine Gruppenvorrichtungs-ID zuzuweisen.
    0–31 Bildet ab auf Gruppenvorrichtungs-ID 0–31
    RIMMDeviceConfigNo 8 Byte, das die Definition der RDRAM-Technologie anzeigt. Bit-Definition passt mit GAR-Register zusammen.
    DRAMConfigIndex 3 Index in Tabelle von DRAM-Technologien, die durch den MCH unterstützt werden. Eingesetzt während der Gruppenvorrichtungs-ID-Aufzählung; Zuweisung von Gruppen-IDs an RDRAMs in einer Technologe in abnehmender Reihenfolge.
    MchTrdly 3 Temporärer Speicher von maximalem Wert Mch Trdls während dem Vorgang der Kanal-Levelisierung. Die Bit-Definition stimmt mit dem tRDLY-Feld des MCH in dem Register MCH RDT überein.
    DeviceTestAddress 32 Verwendete 32-Bit-CPU-Adresse zum Testen einer RDRAM-Vorrichtung während der Kanallevelisierung.
    Tempindex 8 Während Algorithmus eingesetzter temporärer Index.
  • In dem Block 602 erfolgt ein Zurücksetzen des Systems. Der MCH alle seine Zustandsmaschinen zurück und bereitet auf die Initialisierung vor. In dem Block 604 wird die Speichermodulkonfiguration des Systems verifiziert. Das BIOS liest SPD-Daten, um die Speicherkonfiguration zu bestimmen. Wenn nur RIMMs vorhanden sind, kann die RDRAM-Initialisierungssequenz mit dem Block 608 fortfahren. Wenn gemischte bzw. verschiedenartige Speichermodule vorhanden sind, wird ein Fehler an den Benutzer übermittelt und das System wird angehalten, wie dies in 606 angezeigt wird.
  • Der Taktgenerator startet in dem Block 608. Diese Operation kann durch Software erreicht werden, die die SPD-Daten jedes auf dem Motherboard vorhandenen RIMM-Moduls abfragt und eine Kanalfrequenz bestimmt, bei der die RIMMs arbeiten können. Der DRCG 580 kann durch einen General Purpose Output (d. h. GPOx gemäß der Abbildung aus 5) über den ICH 505 auf die entsprechende Frequenz gesetzt werden. In einem Ausführungsbeispiel wartet das BIOS mindestens 8 ms zwischen diesem Schritt und der MCH RAC-Initialisierung.
  • Wie dies in dem Block 610 angezeigt wird, wird die MCH RAC als nächstes initialisiert. Der Kanaltakt von dem DRCG sollte vor der MCH RAC-Initialisierung stabil sein. Die MCH RAC-Initialisierung wird erreicht durch die Ausführung des MCH RAC Initialisierungs-IOP. Der RAC Initialisierungs-IOP führt die grundlegende Initialisierung aus, um die interne RAC der Speichersteuereinheit für den normalen Betrieb vorzubereiten.
  • In einem Ausführungsbeispiel stellt das BIOS ein Timeout von 5 ms für das Löschen des IIO-Bits nach dem MCH RAC Initialisierungs-IOP bereit. Wenn das IIO-Bit nach 5 ms nicht durch den MCH gelöscht worden ist, sollte das BIOS den Fehler melden, und der Kanal ist nicht nutzbar. Eine zusätzliche Verzögerung von 5 ms kann hinzugefügt werden, nachdem der MCH das IIO-Bit gelöscht hat aufgrund der vollständigen Ausführung des MCH RAC Initialisierungs-IOP. Dies sieht ausreichend Zeit vor für die Stabilisierung und Verriegelung der MCH-Takte. In bestimmten Ausführungsbeispielen kann es ferner erforderlich sein, einen Bus in der RAC zu löschen, bevor weitere Operationen beginnen. Dies kann erreicht werden durch Ausführung des MCH RAC Control Register Load IOP (DRD = 00000h). Es kann ferner möglich sein, in bestimmten Ausführungsbeispielen die RAC-Initialisierung zu einem späteren Zeitpunkt in der Initialisierungssequenz auszuführen.
  • Wie dies in dem Block 612 dargestellt ist, können als nächstes eine Reihe von MCH Konfigurationsregistern initialisiert werden. In einem Ausführungsbeispiel wird das Feld Paging Policy Register RMC Idle Timer (PGPOL RIT) (MCH 052h [2:0] auf 001b gesetzt, um sicherzustellen, dass keine Seiten während der Kanallevelisierung geschlossen werden (wie dies nachstehend im Text beschrieben wird). Das Feld PGPOL RIT legt die Anzahl der Host-Bus-Takte fest, über welche die Speichersteuereinheit in dem Ruhezustand bleibt, bis alle offenen Seiten geschlossen werden, und ein Wert von Null zeigt an, dass eine unendliche Latenz gegeben ist, bevor die Speichersteuereinheit damit beginnt, Seiten zu schließen.
  • Des Weiteren können in bestimmten Ausführungsbeispielen Pools eingesetzt werden, um RDRAMs auf der Basis der definierten RDRAM-Zustände zu gruppieren. Um die Betriebsleistung zu reduzieren, können die RDRAM-Vorrichtungen in zwei operative Pools gruppiert werden, die mit "Pool A" und "Pool B" bezeichnet werden. In einem Ausführungsbeispiel können sich bis zu acht Vorrichtungen gleichzeitig in Pool A befinden. In dem vorliegenden Ausführungsbeispiel können sich bis zu vier von acht Vorrichtungen in Pool A gleichzeitig in den Zuständen aktiv Lesen/Schreiben oder Aktiv (Active Read/Write oder Active) befinden, und die Vorrichtungen in dem Pool A befinden sich in einem der Zustände Active Read/Write, Active oder Standby.
  • Die maximale Anzahl von Vorrichtungen in Pool A ist programmierbar und durch ein Feld PAC in dem RDRAM Power Management Register (RPMR) Register (MCH 053h) spezifiziert. Alle Vorrichtungen, die sich nicht in Pool A befinden, sind Elemente von Pool B. Alle Vorrichtungen in Pool B befinden sich entweder in dem Zustand Standby oder Nap (Schlafmodus). Der Zustand der Vorrichtungen in Pool B wird durch ein PBS-Feld eines DRAM-Steuerungs-(DRAMC)Registers (MCH 051h) spezifiziert. In einem Ausführungsbeispiel wird das RPMR-Register auf 00h gesetzt, wobei ein Pool A mit nur einer Vorrichtung ausgewählt wird, und wobei der Betrieb von Pool B auf einen Standby-Betrieb (MCH 051h [6] = 0) gesetzt wird.
  • Als nächstes kann gemäß Block 614 eine zusätzliche Kanalinitialisierung vorgenommen werden. Diese kann die Ausführung eines SIO-Zurücksetzens (Zurücksetzen der seriellen Schnittstelle) unter Verwendung des SIO-Reset-IOP umfassen sowie die Einräumung einer ausreichenden vollständigen Ausführung der SIO-Reset-Sequenz. Ferner können an dieser Stelle andere Register gesetzt bzw. festgelegt werden, die für einen ordnungsgemäßen Betrieb initialisiert werden müssen. In bestimmten Ausführungsbeispielen kann es zum Beispiel erforderlich sein, dass ein Register Test77 mit einem Wert von Null beschrieben wird nach dem SIO-Reset gemäß der Spezifikation auf Seite 37 des Datenblatts Direct RDRAM 64/72 mbit (Ausführung eines Broadcast SIO Register Write IOP: TEST77, DRA = 4Dh, DRD = 0000h).
  • Zuweisung der seriellen Vorrichtungs-ID
  • Wie dies in dem Block 620 dargestellt ist, können als nächstes serielle Vorrichtungsidentifikationswerte (IDs) zugewiesen werden. Im Allgemeinen identifiziert die Software eindeutig jede Vorrichtung auf dem Kanal, um Initialisierungsoperationen zu ermöglichen, die an einzelne Vorrichtungen gerichtet sind. Die serielle Vorrichtungs-ID für jeden RDRAM wird in dem Register RDRAM INIT (Index 21h) in den Bits 4-0 gespeichert. Nach dem SIO-Reset lautet der Standardwert der seriellen Vorrichtungs-ID 1Fh in allen RDRAMs auf dem Kanal. Ferner wird nach dem Reset der Serial Repeater (serieller Repeater) (SRP Bit (RDRAM 021 [7]) auf 1 gesetzt, so dass jeder RDRAM freigegeben wird, um die SIO-Daten auszubreiten, die an SIO0 empfangen worden sind, und zwar an den SIO1 Pin des RDRAM, wobei das SIO-Paket an die nächste RDRAM-Vorrichtung weitergeleitet wird. Da alle Vorrichtungen nach dem Reset die gleiche serielle Vorrichtungs-ID aufweisen, muss nicht unbedingt auf eine einzelne Vorrichtung zugegriffen werden, bevor eindeutige serielle IDs zugewiesen werden.
  • Weitere Einzelheiten der Aufzählung der seriellen Vorrichtungen, die durch ein Ausführungsbeispiel ausgeführt werden, sind in der Abbildung aus 7 dargestellt. In dem Block wird der variable SerialIDCount auf Null initialisiert. Als nächstes werden gemäß dem Block 705 die SIO-Repeater aller Vorrichtungen auf dem Kanal deaktiviert (Broadcast SIO Register Write IOP. INIT, DRA = 21h, DRD = 001Fh). Diese Operation bewirkt, dass alle seriellen Vorrichtungs-IDs auf 01fh gesetzt werden. Das SIO Repeater-Bit wird auf Null gesetzt, so dass nur auf die erste Vorrichtung auf dem SIO-Kanal zugegriffen werden kann.
  • Beginnend mit dem Block 710 läuft der Ablauf in einer Schleife durch alle Vorrichtungen auf dem Kanal und weist jeder eine eindeutige ID zu. Die serielle ID der aktuellen Vorrichtung wird auf SerialIDCount gesetzt, und das SIO Repeater-Bit wird freigegeben (SIO Register Write IOP: INIT, SDCA = 1Fh, DRA = 21h, DRD = 0080h + SerialIDCount). Als nächstes wird gemäß der Darstellung in Block 715 geprüft, ob die Vorrichtung tatsächlich in dem System vorhanden und funktionsfähig ist. Das Register RDRAM INIT wird gelesen, um zu bestimmen, ob der gleiche Wert, der gerade geschrieben worden ist, ordnungsgemäß ausgelesen wird (SIO Register Read IOP. INIT, SDCA = SerialIDCount, DRA = 21h).
  • Wenn die Daten übereinstimmen (gemäß der Prüfung in Block 720), so wird der SerialIDCount heraufgesetzt (Block 725), und SerialIDCount wird geprüft, um festzustellen, ob einer maximalen Anzahl von Vorrichtungen (z. B. zweiunddreißig) IDs zugewiesen worden sind (Block 730). Wenn der SerialIDCount weiterhin eine gültige serielle ID anzeigt, wird in dem Block 705 die nächste Vorrichtung identifiziert.
  • Wenn der SerialIDCount den maximal zulässigen Wert übersteigt, oder wenn die Daten in dem Block 720 nicht übereingestimmt haben, so ist der letzten Vorrichtung eine ID zugewiesen worden, und eine variable Verfolgung (Tracking) der Anzahl der Vorrichtungen insgesamt auf den SerialIDCount gesetzt werden, wie dies in dem Block 735 dargestellt ist.
  • Um schließlich alle etwaigen weiteren Vorrichtungen über die letzte zulässige Vorrichtung hinaus zu deaktivieren, wird der SIO Repeater des RDRAM mit der höchsten seriellen ID deaktiviert, wie dies in Block 740 dargestellt ist. Folglich empfangen etwaige zusätzliche Vorrichtungen (d. h. nicht ordnungsgemäß arbeitende Vorrichtungen oder Vorrichtungen jenseits des Maximums, wie z. B. von zweiunddreißig) keine Befehle und sollten somit nicht ansprechen. Als zusätzliche Prüfung können die SPD-Informationen an den RIMMs untersucht werden, um zu bestimmen, ob der letzte Vorrichtungszählwert richtig ist.
  • Zuweisung einer Gruppenvorrichtungs-ID
  • In Bezug auf die Abbildung aus 6 werden nach der Zuweisung der eindeutigen seriellen IDs und der Deaktivierung des SIO-Ausgangs der letzten Vorrichtung Gruppen-IDs auf der Basis der Größe der Speichervorrichtung zugewiesen, wie dies in Block 630 dargestellt ist. In einem Ausführungsbeispiel unterstützt der MCH bis zu zweiunddreißig RDRAM-Vorrichtungen und acht Gruppen. Jede Gruppe weist bis zu vier Vorrichtungen und ein Gruppenbegrenzungszugriffsregister (GBA als englische Abkürzung von Group Boundary Access Register) auf, um die Gruppen-ID und die oberen und unteren Adressen für jede Gruppe zu definieren. Somit kann jedes GBA-Register mit einer Gruppen-ID und einem oberen Adressbegrenzungswert von neun Bit programmiert werden. Nicht belegte Gruppen können einen Wert aufweisen, der der vorherigen Gruppe und einer Gruppengröße von Null entspricht.
  • Darüber hinaus veranschaulicht das Flussdiagramm aus den Abbildungen der 8A8C ein Ausführungsbeispiel des Verfahrens zur Aufzählung von Gruppenvorrichtungs-IDs gemäß der Darstellung in Block 630. Wie dies in dem Block 800 aus 8A dargestellt ist, werden mehrere Variablen initialisiert. Die Variablen SerialIDCount, GroupDeviceIDCount, RIMMCount, RIMMDeviceCount und RIMMDeviceConfigNo werden auf Null initialisiert. Eine Variable DRAMConfigIndex wird auf einen Wert initialisiert, der die größte von dem MCH unterstützte Kerntechnologie anzeigt.
  • Wie dies in dem Block 805 dargestellt ist, werden Daten aus dem SPD-Speicher eines Moduls (Modulnummer RIMMCount) ausgelesen, welche die Kerntechnologie dieses Moduls identifizieren. Diese Informationen können die Anzahl der Zeilen je Vorrichtung, die Anzahl der Spalten je Vorrichtung, die Anzahl der Bänke je Vorrichtung und ob die Bänke abhängig oder unabhängig sind, umfassen. Als nächstes wird gemäß der Darstellung in dem Block 810 RIMMDeviceConfigNo gesetzt, indem der aus dem SPD ausgelesene Kerntechnologiewert in einen äquivalenten Wert in einem Register Gruppenarchitektur (GAR) umgesetzt wird.
  • Als nächstes wird gemäß der Darstellung in dem Block 815 die Variable RIMMDeviceCount auf die Anzahl der Vorrichtungen gesetzt, die durch den SPD-Speicher für das RIMM angezeigt wird. Danach können die Vorrichtungs-IDs zugewiesen und die zugeordneten Registerwerte gemäß der Darstellung in dem Block 820 zugewiesen werden. Weitere Einzelheiten des Verfahrens gemäß der Darstellung in dem Block 820 sind für ein Ausführungsbeispiel in der Abbildung aus 8B abgebildet.
  • Im Allgemeinen fügt der Enumerationsprozess bzw. der Aufzählungsprozess die Anzahl der RDRAM-Vorrichtung an einem RIMM der ersten seriellen ID hinzu und zählt nach unten, bis das RIMM abgeschlossen ist. Gemäß der Darstellung in dem Block 822 wird somit geprüft, ob RIMMDeviceConfigNo gleich DRAMConfigIndex ist, um zu bestimmen, ob die Gruppenvorrichtungs-IDs für alle Vorrichtungen in einer bestimmten Kerntechnologie zugewiesen worden sind. Wenn sie nicht übereinstimmen, weisen alle Vorrichtungen für diese Kerntechnologie Gruppen-IDs auf, so dass die Variable SerialIDCount auf SerialIDCount plus RIMMDeviceCount gesetzt wird (wie dies in Block 830 angezeigt wird), und das Verfahren kehrt gemäß der Darstellung in dem Block 832 zu 8A zurück. Wenn ferner RIMMDeviceCount gleich Null ist (gemäß der Prüfung in Block 824) oder wenn MemberCount gleich Null ist (gemäß der Prüfung in Block 826, so existieren keine Vorrichtungen mehr für die Vergabe von Gruppen-IDs und das Verfahren kehrt zur Abbildung aus 8A zurück, wie dies in Block 832 angezeigt wird.
  • Wenn RIMMDeviceCount und MemberCount ungleich Null sind, wird ein Wert GroupDeviceIDCount der Gruppenvorrichtungs-ID des RDRAM zugewiesen, wobei die serielle ID dem aktuellen Wert von SerialIDCount entspricht, wie dies in Block 828 dargestellt ist. Als nächstes wird das aktuelle Gruppenbegrenzungsadressregister (GBA) aktualisiert, so dass es das Hinzufügen der neuen Vorrichtung zu dieser Gruppe reflektiert, wie dies in Block 830 angezeigt wird. Dies kann erreicht werden, in dem ein Wert dem vorher in dem GBA-Register gespeicherten Wert hinzugefügt wird, der die Vorrichtungsgröße anzeigt.
  • Als nächstes wird der Wert GroupDeviceIDCount mit vier (der maximalen Anzahl von Vorrichtungen je Gruppe in einem Ausführungsbeispiel) in Block 832 verglichen. Wenn die Gruppe voll ist, wird das MCH Gruppenarchitekturregister (GAR) für diese Gruppe gemäß der Darstellung in Block 834 aktualisiert. Das GAR wird so aktualisiert, dass es die Gruppenkonfiguration ordnungsgemäß anzeigt (d. h. die Anzahl der Bänke und die DRAM-Technologie (Größe)). In dem Block 836 wird SerialDeviceIDCount heraufgesetzt, MemberCount wird herabgesetzt, GroupDeviceIDCount wird heraufgesetzt und RIMMDeviceCount wird herabgesetzt. Das Verfahren kehrt danach zu Block 824 zurück.
  • Wenn in erneutem Bezug auf die Abbildung aus 8A entweder RIMMDeviceCount oder MemberCount gleich Null ist, wird RIMMCount heraufgesetzt, wie dies in Block 850 dargestellt ist. Wenn RIMMCount kleiner ist als ein Höchstwert von RIMMCount, gemäß der Prüfung in Block 855, so kehrt das Verfahren zu Block 805 zurück. Wenn der RIMMCount das letzte RIMM erreicht hat, wird das Verfahren in 8C gemäß der Darstellung in Block 860 fortgesetzt.
  • Wenn in Bezug auf die Abbildung aus 8C MemberCount gleich Null ist (gemäß der Prüfung in Block 865), endet der Vorgang der Vorrichtungs-ID-Aufzählung. Wenn MemberCount jedoch ungleich Null ist, wird die nächste MCH-Gruppe für den Beginn der Aufzählung der Vorrichtungen in der nächsten DRAM-Technologie ausgewählt, wie dies in Block 870 dargestellt ist. GroupDeviceIDCount kann aktualisiert werden, indem drei hinzugefügt wird, und indem eine logische UND-Operation des resultierenden Wertes und 0FFFCh ausgeführt wird.
  • Wenn der Wert von GroupDeviceIDCount einer maximalen Anzahl zulässiger Vorrichtungen in dem Kanal entspricht (z. B. zweiunddreißig gemäß der Prüfung in dem Block 872), so endet das Verfahren der Gruppen-ID-Aufzählung. Wenn jedoch an weniger Vorrichtungen Gruppen-ID-Nummern vergeben worden sind, wird der DRAMConfigIndex auf die nächst kleinere Kerntechnologie gesetzt, die durch den MCH unterstützt wird, wie dies in Block 874 dargestellt ist. Wenn der DRAMConfigIndex anzeigt, dass keine kleineren unterstützten Kerntechnologien vorhanden sind (z. B. ist der DRAMConfigIndex gemäß der Prüfung in Block 876 gleich Null), so endet das Verfahren der ID-Aufzählung. Wenn mehr Kerntechnologien vorhanden sind, werden SerialIDCount und RIMMCount auf Null zurückgesetzt, wie dies in Block 878 angezeigt wird, und danach kehrt das Verfahren bzw. der Ablauf zu Block 805 in 8A zurück.
  • Der unten aufgeführte Pseudocode zeigt Operationen an, die eingesetzt werden können, um in einem Ausführungsbeispiel die durch Block 630 aus 6 angezeigte Gruppen-ID-Aufzählung auszuführen.
  • 630. Aufzählen der MCH Vorrichtungsgruppen.
    • 630.1. Schleifenverlauf durch den RIMM SPD-Speicher und Gruppieren der Vorrichtungen an den RIMMs. Die Vorrichtungen der größten Technologie müssen in den niedrigsten Gruppen gruppiert werden, wobei die Technologiegröße mit zunehmenden Gruppennummern abnehmen.
    • 630.1.1. MemberCount auf = MemberMax setzen
    • 630.1.2. SerialIDCount auf = 0 setzen. Das ist der Zähler für die serielle Vorrichtungs-ID
    • 630.1.3. GroupDeviceIDCount auf = 0 setzen. Das ist der Zähler für die Gruppenvorrichtungs-ID
    • 630.1.4. RIMMCount auf = 0 setzen. Das ist der RIMM-Zähler
    • 630.1.5. RIMMDeviceCount auf = 0 setzen. Das ist der Zähler für die # der Vorrichtungen an einem RIMM.
    • 630.1.6. DRAMConfigIndex = größte von dem MCH unterstützte Technologie
    • 630.1.7. Kerntechnologie von RIMM #RIMMCount berechnen
    • 630.1.7.1. RIMMDeviceConfigNo = aus RIMMs SPD ausgelesene Kerntechnologie
    • 630.1.8. RIMMDeviceCount = # der RDRAM-Vorrichtungen in RIMM #RIMMCount, ausgelesen aus dem SPD EEPROM des RIMM.
    • 630.1.9. Zuweisen von Gruppenvorrichtungs-IDs und Programmieren von MCH GAR und GBA Registern für RIMM.
    • 630.1.9.1. Wenn RIMMDeviceConfigNo ! = DRAMConfigIndex, Wechsel zu 630.1.10
    • 630.1.9.2. Wenn RIMMDeviceCount = 0, Wechsel zu 630.1.10
    • 630.1.9.3. Wenn MemberCount = 0, Wechsel zu 630.1.10
    • 630.1.9.4. SIO Register Write IOP. DEVID, SDCA = SerialIDCount, DRA = 40h, DRD = GroupDeviceIDCount.
    • 630.1.9.5. Programmieren MCH GBA[GroupDeviceIDCount SHR 2] = MCH GBA[GroupDeviceIDCount SHR 2 – 1] + RIMM #RIMMCount Vorrichtungsgröße
    • 630.1.9.6. Wenn GroupDeviceIDCount UND 011b = 0
    • 630.1.9.6.1. Programmieren von MCH GAR[GroupDeviceIDCount SHR 2] = RIMMDeviceConfigNo
    • 630.1.9.7. GroupDeviceIDCount heraufsetzen
    • 630.1.9.8. SerialIDCount heraufsetzen
    • 630.1.9.9. MemberCount herabsetzen
    • 630.1.9.10. RIMMDeviceCount herabsetzen
    • 630.1.9.11. Gehe zu Schritt 630.1.9.2
    • 630.1.10. RIMMCount heraufsetzen
    • 630.1.11. Wenn RIMMCount < RIMMMax, gehe zu Schritt 630.1.7
    • 630.1.12. Wenn MemberCount = 0 gehe zu Schritt 10
    • 630.1.13. Nächste Gruppe für nächste RDRAM-Technologie auswählen.
    • 630.1.13.1. GroupDeviceIDCount = (GroupDeviceIDCount + 011b) UND 011b
    • 630.1.14. Wenn GroupDeviceIDCount = 32 gehe zu Schritt 10
    • 630.1.15. DRAMConfigIndex = nächst kleinere DRAM-Technologie
    • 630.1.16. Wenn DRAMConfigIndex = 0, gehe zu Schritt 10
    • 630.1.17. SerialIDCount = 0
    • 630.1.18. RIMMCount = 0
    • 630.1.19. Gehe zu Schritt 630.1.7. Dies startet das Suchen nach RIMMs für die nächst kleinere RDRAM-Technologie.
  • In erneutem Bezug auf die Abbildung aus 6 können die einzelnen RDRAM-Vorrichtungen nach der Zuweisung der Gruppen-IDs aus dem Powerdown-Modus entfernt und in den schnellen Taktmodus für einen normalen Betrieb umgeschaltet werden, wie dies in dem Schritt 640 angezeigt wird. Die einzelnen RDRAM Taktregister in dem MCH und den RDRAMs können programmiert werden. Die Steuerregister REFB und REFR RDRAM können ebenfalls initialisiert werden (IOP Broadcast SIO Register Write. REFB, DRA = 41h, DRD = 0000h; IOP Broadcast SIO Register Write. REFR, DRA = 42h, DRD = 0000h).
  • Die RDRAM-Vorrichtungen können zurückgesetzt werden durch Ausführung eines Broadcast Set Reset IOP, gefolgt von einer entsprechenden Verzögerung (z. B. 32 μs), gefolgt von der Ausführung eines Clear Reset IOP, ferner gefolgt von einer entsprechenden Verzögerung (z. B. 4 μs), um die vollständige Ausführung der Reset-Operation zu ermöglichen. Die RDRAMs werden aus dem Powerdown-Zustand entfernt, indem ein RDRAM Power Down Exit IOP ausgeführt wird, und wobei in den schnellen Taktmodus eingetreten wird, in dem ein Broadcast RDRAM Set Fast Clock Mode Initialization IOP ausgeführt wird.
  • Danach können die RDRAM-Kerne gemäß der Darstellung in dem Block 642 initialisiert werden. Weitere Einzelheiten eines Ausführungsbeispiels der RDRAM-Kerninitialisierung sind in der Abbildung aus 9 dargestellt. Wie dies in Block 900 dargestellt ist, werden die RDRAM-Vorrichtungen für eine Stromkalibrierung vorbereitet, indem ein intermediärer Wert in die entsprechenden RDRAM-Register geschrieben wird (IOP Broadcast SIO Register Write. CCA, DRA = 43h, DRD = 0040h; IOP Broadcast SIO Register Write. CCB, DRA = 44h, DRD = 0040h). Vierzig hexadezimal kann ein einem Ausführungsbeispiel ein geeigneter. intermediärer Wert sein, der einhundertsiebenundzwanzig mögliche Stromkalibrierungswerte aufweist. Der Start bei diesem intermediären Wert begrenzt die Anzahl der erforderlichen Kalibrierungszyklen insgesamt, da der Kalibrierungswert nur um ungefähr die Hälfte des ganzen Bereichs der Kalibrierungswerte versetzt sein kann.
  • Als nächstes werden die Precharge- bzw. Vorlade-Operationen an jeder Bank jeder RDRAM-Vorrichtung ausgeführt. Für die Ausführung der Precharge-Operationen zählt der MCh durch die Bänke um zwei nach oben, wobei zuerst ungerade Bänke vorgeladen werden und danach die geraden Bänke. Ein Bankindex wird in dem Block 905 auf Null gesetzt. Danach wird eine Broadcast Precharge IOP gemäß der Darstellung in dem Block 910 ausgeführt. Der Bankindexwert wird um zwei heraufgesetzt, wie dies in Block 915 dargestellt ist, und Broadcast Precharge wird für ungerade Bänke wiederholt, bis festgestellt wird, dass der Bankindex gleich der maximalen Anzahl von Bänken (z. B. zweiunddreißig) in Block 920 ist.
  • Wenn die maximale Anzahl von Bänken erreicht ist, wird der Bankindex auf Eins gesetzt (gemäß der Darstellung in Block 930), und alle ungeraden Bänke werden vorgeladen. Wenn der Bankindex die maximale Anzahl von Bänken überschreitet, wird der RDRAM Core Initialization IOP sechsmal ausgeführt, wie dies in Block 940 dargestellt ist.
  • Kanallevelisierung
  • In erneutem Bezug auf die Abbildung aus 6 kann der Kanal nach der Initialisierung der RDRAM-Kerne in Block 642 gemäß der Darstellung in Block 644 levelisiert werden. Dieses Verfahren umfasst das Ausgleichen der Summe der RDRAM-Leseantwortzeit und einer Ausbreitungsverzögerung von dem RDRAM zu dem MCH für alle RDRAMs. Anders ausgedrückt, stellen alle RDRAMs nach erfolgter Levelisierung des Kanals Daten an der Speichersteuereinheit in der gleichen Anzahl von Buszyklen bereit.
  • Der folgende Pseudocode zeigt eine Folge von Schritten an, die in einem Ausführungsbeispiel ausgeführt werden können, um das in dem Block 644 angezeigte Levelisierungsverfahren zu implementieren.
  • 644. Levelisieren des Rambus-Kanals
    • 644.1. Phase 1: Bestimmen des Werts des Felds MCH tRDLY
    • 644.1.1. SerialIDCount = MemberMax
    • 644.1.2. MchTrdly = 0
    • 644.1.3. Programmieren MCH RDT : TRDLY Feld = MchTrdly.
    • 644.1.4. Berechnen der 32-Bit-Adresse zum Prüfen der RDRAM-Vorrichtung für die Levelisierung.
    • 644.1.4.1. SIO Register Read IOP. DEVID, SDCA = SerialIDCount, DRA = 40h
    • 644.1.4.2. DRD (MCH 090h[15:0]) weist jetzt die RDRAM-Vorrichtungs-ID auf
    • 644.1.4.3. DeviceTestAddress = MCH GBA[(DRD SHR 2) – 1]SHL 23 + ((DRD UND 011b)·Vorrichtungsgröße in Byte (von GAR[DRD SHR 2])
    • 644.1.5. QWORD-Schreiboperation an Adresse DeviceTestAddress mit TestPattern ausführen.
    • 644.1.6. QWORD-Leseoperation an Adresse DeviceTestAddress ausführen
    • 644.1.7. Wenn gelesene Daten ! = Testpattern
    • 644.1.7.1. Feld MCH RDT: TRDLY heraufsetzen
    • 644.1.7.2. Wenn Feld MCH RDT: TRDLY <= 4 gehe zu Schritt 644.1.5.
    • 644.1.8. Sonst (wenn gelesene Daten = Testpattern)
    • 644.1.8.1. MchTrdly = gelesene Daten aus Feld MCH RDT: TRDLY
    • 644.1.8.2. Wenn MchTrdly = 4 gehe zu Schritt 644.2
    • 644.1.9. SerialIDCount herabsetzen
    • 644.1.10. Wenn SerialIDCount >= 0 gehe zu Schritt 644.1.3
    • 644.2. Phase 2: Bestimmen der RDRAM-Levelisierungs-Taktungswerte
    • 644.2.1. SerialIDCount = MemberMax
    • 644.2.2. Die 32-Bit-Adresse zum Prüfen der RDRAM-Vorrichtung für Levelisierung berechnen.
    • 644.2.2.1. SIO Register Read IOP. DEVID, SDCA = SerialIDCount, DRA = 40h
    • 644.2.2.2. DRD (MCH 090h [15:0]) enthält jetzt die Vorrichtungs-ID des RDRAM
    • 644.2.2.3. DeviceTestAddress = MCH GBA[(DRD SHR 2) – 1]SHL 23 + ((DRD UND 011b)·Vorrichtungsgröße in Byte (von GAR [DRD SHR 2])
    • 644.2.3. QWORD-Schreiboperation an Adresse DeviceTestAddress mit Testpattern ausführen.
    • 644.2.4. QWORD-Leseoperation an Adresse DeviceTestAddress ausführen
    • 644.2.5. Wenn gelesene Daten = Testpattern gehe zu Schritt 644.2.8
    • 644.2.6. Wenn Feld TCDLY von RDRAMs < Max TCDLY (von SPD)
    • 644.2.6.1. die TCDLY-Register des RDRAM (TDAC & TRDLY) gemäß der TCDLY-Unterstützungstabelle heraufsetzen.
    • 644.2.6.2. Gehe zu Schritt 644.2.3
    • 644.2.7. RDRAM-Vorrichtung für Deaktivierung markieren.
    • 644.2.8. SerialIDCount herabsetzen
    • 644.2.9. Wenn SerialIDCount > = 0 gehe zu Schritt 644.2.2
  • Nach Abschluss der Levelisierung speichert ein Ausführungsbeispiel eine Mehrzahl der Powerdown-Wiederherstellungs-Speicherinitialisierungswerte in dem Speicher 590 mit Batteriesicherung aus 5, wie dies in Block 646 dargestellt ist. Hiermit wird festgestellt, dass diese Operation in jeder anderen Phase ausgeführt werden kann, nachdem die entsprechenden Werte durch die Initialisierungsroutine bestimmt worden sind. Die Werte werden danach gespeichert, um die bis zu diesem Punkt durch den Initialisierungsprozess bestimmten Initialisierungsinformationen zu erhalten.
  • Wenn das System in einen niedrigen Leistungszustand (z. B. Suspend-to-RAM) eintritt, kann die Leistung an den MCH entfernt werden. Wenn die Initialisierungsdaten somit nicht erhalten bzw. gespeichert werden, so kann es sein, dass das gesamte Initialisierungsverfahren wiederholt werden muss. Das Speichern von wichtigen bzw. Initialisierungs-Schlüsselinformationen in einem nichtflüchtigen Speicher kann das Aufwecken (Wake-Up) aus einem derartigen niedrigen Leistungszustand in vorteilhafter Weise beschleunigen. Die Schwierigkeit des Speicherns derartiger Informationen erhöht sich durch die Tatsache, dass das Speicherteilsystem nur dann funktionsfähig ist, wenn diese Werte wiederhergestellt werden.
  • Ein nichtflüchtiger Speicher, der beschrieben werden kann, kann zum Speichern entsprechender Initialisierungsinformationen verwendet werden, wobei in vielen Computersystemen jedoch ein Speicher mit Batteriesicherung vorhanden ist, der somit eine praktische Wahl darstellen kann. In einem Ausführungsbeispiel werden die nachstehend aufgeführten Register in dem Speicher 590 gespeichert.
    • • MCH Gruppenarchitekturregister (Group Architecture Register – GAR) (040-047h): Diese Register zeigen die Vorrichtungskonfiguration für jede Gruppe an, wie etwa die Anzahl der Bänke und die DRAM-Technologie (Größe).
    • • MCH RDRAM-Taktregister (RDRAM Timing Register – RDT) (050h): Das Register definiert die Taktungsparameter für alle Vorrichtungen in dem Kanal.
    • • MCH DRAM Steuerregister (DRAM Control – DRAMC) (051h): Das Register weist das Bit Pool B Operation Select (PBS), ein Memory Transfer Hub Presence Bit (MTHP) und ein Bit Aperture Access Global Enable auf, das den Zugriff auf eine Apertur von einem beliebigen Port verhindert, bevor der Aperturbereich und und die Umsetzungstabelle erzeugt werden.
    • • MCH Page Policy (PGPOL) Register (052h): Das Register spezifiert die Attribute der Paging Policy, einschließlich der DRR (englische Abkürzung von DRAM Refresh Rate) und eines RMC Idle Timers (RIT). Das Feld DRR passt die DRAM Refresh Rate an, und das Feld RIT bestimmt die Anzahl der Host-Buszyklen, während denen die Speichersteuereinheit in dem Ruhezustand verbleibt, bevor alle offenen Seiten geschlossen werden.
    • • MCH RPMR (053h): Das Register weist ein Feld Device Napdown Timer (DNT), ein Feld Active Devices in Pool A (ADPA), ein Feld Device Napdown Enable (DNE) und ein Feld Pool A Capacity (PAC) auf. Das DNT-Feld spezifiziert die Anzahl der Host-Takte, in denen sich die Speichersteuereinheit im Ruhezustand befindet, bevor die zuletzt verwendete Vorrichtung in Pool A in Pool B verschoben wird. Das Feld ADPA definiert die maximale Anzahl von RDRAM-Vorrichtungen in Pool A, die sich zu einem bestimmten Zeitpunkt in dem Zustand Active Read/Write oder Active befinden können. Die Vorrichtungen in Pool A, die sich nicht in dem Zustand Active Read/Write oder Active befinden, befinden sich in dem Standby-Zustand. Das DNE-Bit (wenn es auf 1 gesetzt ist), ermöglicht es, dass der Kanalinaktivitätszähler eine ununterbrochene Zeit der Inaktivität zählt. Wenn der Zählerwert einen durch DNT spezifizierten Schwellenwert überschreitet, wird die zuletzt verwendete Vorrichtung aus Pool A in Pool B verschoben. Das Feld PAC definiert die maximale Anzahl von RDRAM-Vorrichtungen, die sich zu einem bestimmten Zeitpunkt in Pool A befinden kann. Vorrichtungen, die nicht Pool A angehören, gehören dem Pool B an.
    • • MCH Group Boundary Access (GBA) Register (060-6Fh): du MCH (060-6Fh): Die GBA-Register weisen eine Gruppen-ID und einen Wert auf, der eine obere Adressenbegrenzung für die Gruppe anzeigt.
    • • MCH Configuration Register (MCHCFG) (0BE-BFh): Diese Register weisen die Felder Rambus Frequency (Rambus-Frequenz) und DRAM Data Integrity Mode (DRAM-Datenintegritätsmodus) auf.
  • Ferner können an dieser Stelle die Powerdown-Konfigurationsoptionen programmiert werden. In einem Ausführungsbeispiel werden die Optionen für ein selbständiges Auffrischen (Self Refresh) und ein selbständiges Auffrischen bei niedriger Leistung (Low Power Self Refresh) festgelegt (für jeden SerialIDCount: IOP SIO Register Write. INIT, SDCA = SerialIDCount, DRA = 21h, DRD = 400h (LSR, bei Unterstützung durch SPD) + 200h (PSR) + 80h (SRP)).
  • Der normale Betrieb kann gemäß der Darstellung in dem Block 650 beginnen, nachdem einige weitere Register für den normalen Betrieb programmiert worden sind. Das Page Policy-Register wird so gesetzt, dass es normal arbeitet (Feld PGPOL RIT (MCH 052h [2:0] bis 001b), da der Timer zum Schließen der Seiten für die Levelisierung effektiv deaktiviert worden ist und die Power Management-Funktionen an dieser Stelle über das RPMR-Register (MCH 053h) aktiviert werden. Wenn das Bit Pool B Select (MCH 051h [6]) für eine NAP-Operation konfiguriert ist, kann ein Broadcast NAP Eintritts-IOP ausgeführt werden, um alle Vorrichtungen in den NAP-Zustand zu versetzen. In dem gleichen E/A-Befehl, der das IIO-Bit festlegt bzw. setzt, wird das IC-Bit in dem RICM ebenfalls auf Eins gesetzt, so dass der normale Betrieb des MCH beginnen kann.
  • Wiederherstellung des Kanals beim Verlassen eines niedrigen Leistungszustands
  • Nachdem der normale Betrieb ununterbrochen über eine gewisse Zeit angedauert hat, kann das System in einen niedrigen Leistungszustand eintreten, und zwar aufgrund von Inaktivität des Systems oder aus einem anderen Grund, wie dies in Block 1000 aus 10 dargestellt ist. Ein Zustand, in den das System eintreten kann, ist ein Zustand Suspend-to-RAM (STR), in dem der MCH Werte verliert, die in dessen Registern gespeichert sind. Nach dem Eintritt in den Zustand STR kann ein Ereignis festgestellt werden, das es bewirkt, dass das System den Zustand STR verlässt, wie dies in Block 1010 dargestellt ist. Das BIOS startet entsprechend den MCH und andere Systemkomponenten. Die Konfigurationsregister des MCH können in diesem Verfahren automatisch auf einen Standardwert zurückgesetzt werden.
  • Um somit Zugriff auf die Speichervorrichtungen in dem Speicherkanal zu erlangen, sind zumindest einige der Konfigurationsregisterwerte erforderlich. Das BIOS kann es bewirken, dass der ICH 505 auf den Speicher 590 mit Batteriesicherung zugreift und die nachstehend aufgeführten Register (gespeichert in Block 646 aus 6) wiederherstellt.
    • • MCH GAR-Register (040–047h)
    • • MCH RDT (050h)
    • • MCH DRAMC (051h)
    • • MCH PGPOL (052h)
    • • MCH RPMR (053h)
    • • MCH GBA-Register (060-6Fh)
    • • MCH-Konfigurationsregister (MCHCFG) (OBE-BFh)
  • Nach der Wiederherstellung der Werte in diese Register kann der MCH erneut auf in dem Speicher gespeicherte Objekte zugreifen, wenn in den Zustand STR eingetreten wird, einschließlich der Objekte wie des Prozessorkontexts, wenn dieser gespeichert wird. Die Speichervorrichtungen führen eine automatische Refresh-Operation in dem Zustand STR aus, so dass keine weiteren Daten verloren gehen.
  • Als nächstes wird der Taktgenerator gemäß der Darstellung in Block 1040 gestartet. Die entsprechende Frequenz des Rambus-Kanals wird aus dem MCH MCHCFG Register (MCH 0BEh [11], das in Block 1030 wiederhergestellt worden ist) ausgelesen. Nachdem sich der Takt stabilisieren konnte, wird die MCH RAC initialisiert, wie dies in dem Block 1050 angezeigt wird. Dies kann erreicht werden durch Ausführen des MCH RAC Initialisierungs-IOP. Ferner können das DRD-Register mit 0000h geladen und der MCH RAC Steuerregister-Lade-IOP ausgeführt werden, um einen Bus in der RAC zu initialisieren (wie dies in Bezug auf den Block 610 beschrieben wird).
  • Als nächstes wird die Stromkalibrierung gemäß der Darstellung in dem Block 1060 vorgenommen. Dies kann so erfolgen, wie dies in Bezug auf Block 642 und 9 beschrieben bzw. dargestellt ist. In der letzten Iteration gemäß der Darstellung in Block 940 kann jedoch das IC-Bit in dem RICM-Register gesetzt werden, was es ermöglicht, dass der normale Betrieb unverzüglich beginnen kann, wenn die Stromkalibrierung abgeschlossen ist. Somit kann die Wiederaufnahme aus der STR-Sequenz deutlich schneller sein als die ganze erforderliche Initialisierungssequenz, wenn das System zum erstem Mal hochgefahren wird, da die Kanallevelisierung, die SPD-Abfrage, die ID-Zuweisung und eine Reihe anderer Initialisierungsoperationen weggelassen werden können.
  • Offenbart werden zusammengefasst ein Verfahren und eine Vorrichtung zur Initialisierung einer Speichervorrichtung und eines Speicherkanals.

Claims (20)

  1. Verfahren, das folgendes umfasst: das Zuweisen von Vorrichtungsidentifikationsnummern, die für die Auswahl von Speichervorrichtungen bei normalem Betrieb verwendet werden, an Gruppen einer Mehrzahl von Speichervorrichtungen auf der Basis (560, 565, 570) zumindest teilweise anhand von Speichervorrichtungsgrößen durch: das Zuweisen einer Reihe der niedrigsten Identifikationsnummern an Speichervorrichtung mit einer größten unterstützten Größe; das Zuweisen folgender Identifikationsnummern an die verleibenden Speichervorrichtungen mit kleineren Größen; und das Programmieren von Registern in jeder der Mehrzahl von Speichervorrichtungen, um eine Summe einer Vorrichtungsantwortzeit und einer Ausbreitungsverzögerung von jeder Speichervorrichtung an eine Speichersteuereinheit (500) für alle Vorrichtungen der Mehrzahl von Speichervorrichtungen auszugleichen.
  2. Verfahren nach Anspruch 1, wobei dieses ferner folgendes umfasst: das Initialisieren der Speichersteuereinheit; und das Zurücksetzen der Speichersteuereinheit und einer Speicherschnittstellenschaltung.
  3. Verfahren nach Anspruch 1, wobei dieses ferner folgendes umfasst: das Zuweisen serieller Identifikationsnummern, die für die Auswahl von Speichervorrichtungen während der Initialisierung verwendet werden; und das Zurücksetzen einer seriellen Schnittstelle (540).
  4. Verfahren nach Anspruch 1, wobei dieses ferner folgendes umfasst: das Initialisieren der Speichersteuereinheit; und das Initialisieren einer Mehrzahl von Konfigurationsregistern der Speichersteuereinheit.
  5. Verfahren nach Anspruch 1, wobei dieses ferner folgendes umfasst: das Prüfen, ob es sich bei der Mehrzahl von Speichervorrichtungen um einen ersten Typ von Speichervorrichtung handelt; und das Signalisieren eines Fehlers, wenn in ein Speichermodul, das Speichervorrichtungen des ersten Typs aufweist, auch Speicher aufweist, der nicht dem ersten Typ entspricht.
  6. Verfahren nach Anspruch 1, wobei dieses ferner folgendes umfasst: das Zuweisen von Vorrichtungsidentifikationsnummern, die für die Auswahl von Speichervorrichtungen bei normalem Betrieb verwendet werden, an eine Mehrzahl von Speichervorrichtungen, die mit der Speichersteuereinheit gekoppelt sind.
  7. Verfahren nach Anspruch 1, wobei das Zuweisen von Vorrichtungsidentifikationsnummern an die Mehrzahl von Speichervorrichtungen ferner folgendes umfasst: das Lesen eines Wertes, der eine Kerntechnologiegröße anzeigt, aus einem ausgewählten Speichermodul; das Wiederholen für jede Vorrichtung an dem ausgewählten Speichermodul: das Zuweisen einer Vorrichtungsidentifikationsnummer, die eine Funktion eines Gruppenzählers und eines die Kerntechnologiegröße anzeigenden Wertes ist; und das Heraufsetzen des Gruppenzählers.
  8. Verfahren nach Anspruch 7, wobei dieses ferner folgendes umfasst: das Aktualisieren eines Gruppenattributregisters für jede Vorrichtung in dem ausgewählten Speichermodul.
  9. Verfahren nach Anspruch 1, wobei das Zuweisen von Vorrichtungsidentifikationsnummern an die Mehrzahl von Speichervorrichtungen ferner folgendes umfasst: das Bestimmen von Vorrichtungsgrößeninformationen für jedes Modul einer Mehrzahl von Speichermodulen; das Auswählen eines ausgewählten Speichermoduls auf der Basis dessen Vorrichtungsgröße; das Zuweisen von Vorrichtungsidentifikationsnummern an mindestens eine Gruppe von Vorrichtungen an dem ausgewählten Speichermodul; und das Wiederholen der Auswahl eines als nächstes ausgewählten Speichermoduls und des Zuweisens von Vorrichtungsidentifikationsnummern, bis alle Vorrichtungen Vorrichtungsidentifikationsnummern aufweisen.
  10. Verfahren nach Anspruch 1, wobei das Initialisieren der Mehrzahl von Konfigurationsregistern der Speichersteuereinheit folgendes umfasst: das Initialisieren eines Gruppenbegrenzungsadressregisters; das Initialisieren eines Gruppenarchitekturregisters; das Initialisieren eines RDRAM-Taktregisters; das Initialisieren eines RDRAM-Steuerregisters; das Initialisieren eines RDRAM-Power-Management-Registers; und das Initialisieren eines RDRAM-Initialisierungssteuerregisters.
  11. Verfahren nach Anspruch 6, wobei das Zuweisen serieller Identifikationsnummern an die Mehrzahl von Speichervorrichtungen ferner folgendes umfasst: das Zuweisen sequentieller und eindeutiger serieller Identifikationsnummern an die Mehrzahl von Speichervorrichtungen gemäß der seriellen Sequenz der Mehrzahl von Speichervorrichtungen entlang eines seriellen Busses.
  12. Verfahren nach Anspruch 6, wobei das Zuweisen serieller Identifikationsnummern ferner folgendes umfasst: das Deaktivieren eines seriellen Ausgangs einer letzten Speichervorrichtung mit einer seriellen Identifikationsnummer, die einem maximalen Vorrichtungszählwert entspricht.
  13. Verfahren nach Anspruch 1, wobei dieses ferner folgendes umfasst: das Zurücksetzen der Mehrzahl von Speichervorrichtungen; das Übermitteln einer Initialisierungsoperation zum Abschalten und Verlassen; das Übermitteln einer Initialisierungsoperation zum Setzen eines schnellen Taktmodus; und das Initialisieren eines Kerns jeder der Mehrzahl von Speichervorrichtungen.
  14. Verfahren nach Anspruch 13, wobei das Initialisieren des Kerns jeder der Mehrzahl von Speichervorrichtungen folgendes umfasst: das Vorbereiten der Mehrzahl von Speichervorrichtungen für die Stromkalibrierung; das Senden von Vorladungsoperationen an jede Bank jeder Speichervorrichtung; und das Ausführen einer Kerninitialisierungsoperation.
  15. Verfahren nach Anspruch 14, wobei dieses ferner folgendes umfasst: das Ausführen der Kerninitialisierungsoperation fünf weitere Mal.
  16. Verfahren nach Anspruch 15, wobei das Ausführen der Kerninitialisierungsoperation folgendes umfasst: das Wiederholen für N Iterationen an jeder Bank einer Mehrzahl von Banken: das Ausführungen eines Befehls keine Operation; das Ausführen eines Auffrischungsbefehls; das Ausführen eines zweiten Befehls keine Operation; das Ausführen eines dritten und eines vierten Auffrischungsbefehls; das Ausführen eines dritten, eines vierten und eines fünften Befehls keine Operation; das Ausführen eines Auffrischungs-Vorladungsbefehls; das Ausführen eines sechsten Befehls keine Operation; das Ausführen eines zweiten Auffrischungs-Vorladungsbefehls; das Ausführen eines ersten, eines zweiten und eines dritten Kalibrierungsbefehls; und das Ausführen eines Abtastbefehls.
  17. Verfahren nach Anspruch 1, wobei das Initialisieren der Speichersteuerschaltung das Initialisieren einer Rambus Application Specific Integrated Circuit (ASIC) Zelle (RAC) (530) umfasst.
  18. Verfahren nach Anspruch 5, wobei das Prüfen, ob es sich bei der Mehrzahl von Speichervorrichtungen um den ersten Typ von Speichervorrichtung handelt, folgendes umfasst: das Prüfen, ob es sich bei der Mehrzahl von Speichervorrichtungen um Rambus RDRAMs handelt; und das Deaktivieren jeder der Mehrzahl von Speichervorrichtungen, bei der es sich um einen anderen Typ von Speichervorrichtung handelt.
  19. System, das folgendes umfasst: einen Prozessor; eine Speichersteuereinheit, die mit dem Prozessor gekoppelt ist, wobei die Speichersteuereinheit eine Mehrzahl von Steuerregistern und eine serielle Schnittstellenschaltung aufweist; einen Speicherbus mit einer Mehrzahl von mit dem Bus gekoppelten Speichervorrichtungen, wobei der Speicherbus mit der Speichersteuereinheit gekoppelt ist; eine zusätzliche Speichervorrichtung, die mit der Speichersteuereinheit gekoppelt ist, wobei die Speichersteuereinheit auf die zusätzliche Speichervorrichtung vor der Initialisierung der Mehrzahl von Speichervorrichtungen zugreifen kann, wobei die zusätzliche Speichervorrichtung eine Mehrzahl von Befehlen aufweist, die, wenn sie durch das System ausgeführt werden, bewirken, dass das System folgendes ausführt: das Zuweisen von Vorrichtungsidentifikationsnummern an die Mehrzahl von Speichervorrichtungen zumindest teilweise auf der Basis der Speichervorrichtungsgrößen durch: das Zuweisen einer Gruppe der niedrigsten Identifikationsnummern an Speichervorrichtungen mit einer größten unterstützten Größe; das Zuweisen folgender Identifikationsnummern an verbliebene Speichervorrichtungen mit geringeren Größen; und das Programmieren von Registern in jeder der Mehrzahl von Speichervorrichtungen, um eine Summe einer Vorrichtungsantwortzeit und einer Ausbreitungsverzögerung von jeder Speichervorrichtung an eine Speichersteuereinheit für alle Vorrichtungen der Mehrzahl von Speichervorrichtungen auszugleichen.
  20. Computerprogramm, das eine Computerprogrammcodeeinrichtung umfasst, die in de Lage ist, alle Schritte jedes der Ansprüche 1 bis 18 auszuführen, wenn das Programm auf einem Computer ausgeführt wird.
DE69937808T 1998-11-03 1999-10-22 Verfahren und vorrichtung zur konfiguration und initialisierung einer speichervorrichtung und eines speicherkanals Expired - Lifetime DE69937808T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US186051 1998-11-03
US09/186,051 US6226729B1 (en) 1998-11-03 1998-11-03 Method and apparatus for configuring and initializing a memory device and a memory channel
PCT/US1999/024752 WO2000026788A1 (en) 1998-11-03 1999-10-22 A method and apparatus for configuring and initializing a memory device and memory channel

Publications (2)

Publication Number Publication Date
DE69937808D1 DE69937808D1 (de) 2008-01-31
DE69937808T2 true DE69937808T2 (de) 2008-12-04

Family

ID=22683465

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69937808T Expired - Lifetime DE69937808T2 (de) 1998-11-03 1999-10-22 Verfahren und vorrichtung zur konfiguration und initialisierung einer speichervorrichtung und eines speicherkanals

Country Status (9)

Country Link
US (2) US6226729B1 (de)
EP (1) EP1135728B1 (de)
CN (2) CN100492318C (de)
AU (1) AU1221100A (de)
BR (1) BR9915823B1 (de)
DE (1) DE69937808T2 (de)
HK (1) HK1036858A1 (de)
TW (1) TW460782B (de)
WO (1) WO2000026788A1 (de)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6128749A (en) * 1998-11-03 2000-10-03 Intel Corporation Cross-clock domain data transfer method and apparatus
US6226729B1 (en) * 1998-11-03 2001-05-01 Intel Corporation Method and apparatus for configuring and initializing a memory device and a memory channel
US6357018B1 (en) * 1999-01-26 2002-03-12 Dell Usa, L.P. Method and apparatus for determining continuity and integrity of a RAMBUS channel in a computer system
US6367007B1 (en) * 1999-02-22 2002-04-02 Intel Corporation Using system configuration data to customize bios during the boot-up process
US6674993B1 (en) * 1999-04-30 2004-01-06 Microvision, Inc. Method and system for identifying data locations associated with real world observations
US6408398B1 (en) * 1999-12-29 2002-06-18 Intel Corporation Method and apparatus for detecting time domains on a communication channel
JP4265850B2 (ja) * 2000-01-17 2009-05-20 富士通株式会社 移動体交換機、ホームメモリ・ノード装置および関門交換機
US6886105B2 (en) * 2000-02-14 2005-04-26 Intel Corporation Method and apparatus for resuming memory operations from a low latency wake-up low power state
US7565541B1 (en) * 2000-06-21 2009-07-21 Microvision, Inc. Digital fingerprint identification system
TW526417B (en) * 2000-08-03 2003-04-01 Asustek Comp Inc Control circuit for providing applications of unbuffered dual in-line memory modules (DIMM) on system supporting only registered DIMM chipset
US6691237B1 (en) * 2000-08-08 2004-02-10 Dell Products, L.P. Active memory pool management policies
US6785747B2 (en) * 2000-11-30 2004-08-31 International Business Machines Corporation Method and system for flexible channel path identifier assignment
US20020078026A1 (en) * 2000-12-14 2002-06-20 Fergus Joseph E. Method and apparatus for bulk data remover
US6535411B2 (en) * 2000-12-27 2003-03-18 Intel Corporation Memory module and computer system comprising a memory module
US6940816B2 (en) * 2000-12-29 2005-09-06 Intel Corporation Method and apparatus for a slot-based memory controller
US6772360B2 (en) * 2001-02-07 2004-08-03 Emulex Design & Manufacturing Corporation Extension signal generator coupled to an extension timer and an extension register to generate an initialization extension signal
US20020144173A1 (en) * 2001-03-30 2002-10-03 Micron Technology, Inc. Serial presence detect driven memory clock control
US6820169B2 (en) * 2001-09-25 2004-11-16 Intel Corporation Memory control with lookahead power management
US6948007B2 (en) * 2001-12-20 2005-09-20 Hewlett-Packard Development Company, L.P. Method and apparatus for configuring integrated circuit devices
US7921359B2 (en) * 2002-04-19 2011-04-05 Sas Institute Inc. Computer-implemented system and method for tagged and rectangular data processing
US20040024941A1 (en) * 2002-07-31 2004-02-05 Compaq Information Technologies Group, L.P. Method and apparatus for supporting hot-plug cache memory
US7200024B2 (en) * 2002-08-02 2007-04-03 Micron Technology, Inc. System and method for optically interconnecting memory devices
US7254331B2 (en) * 2002-08-09 2007-08-07 Micron Technology, Inc. System and method for multiple bit optical data transmission in memory systems
US7836252B2 (en) 2002-08-29 2010-11-16 Micron Technology, Inc. System and method for optimizing interconnections of memory devices in a multichip module
KR100929143B1 (ko) * 2002-12-13 2009-12-01 삼성전자주식회사 컴퓨터 및 그 제어방법
US7127622B2 (en) * 2003-03-04 2006-10-24 Micron Technology, Inc. Memory subsystem voltage control and method
US7117405B2 (en) * 2003-04-28 2006-10-03 Kingston Technology Corp. Extender card with intercepting EEPROM for testing and programming un-programmed memory modules on a PC motherboard
US7245145B2 (en) * 2003-06-11 2007-07-17 Micron Technology, Inc. Memory module and method having improved signal routing topology
WO2005015564A1 (en) * 2003-08-06 2005-02-17 Netlist, Inc. Non-standard dual in-line memory modules with more than two ranks of memory per module and multiple serial-presence-detect devices to simulate multiple modules
US6961281B2 (en) * 2003-09-12 2005-11-01 Sun Microsystems, Inc. Single rank memory module for use in a two-rank memory module system
US20050086456A1 (en) * 2003-09-29 2005-04-21 Yaron Elboim Addressing scheme to load configuration registers
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7181584B2 (en) * 2004-02-05 2007-02-20 Micron Technology, Inc. Dynamic command and/or address mirroring system and method for memory modules
CN100485644C (zh) * 2004-02-10 2009-05-06 上海新时达电气股份有限公司 自动分配串行总线设备地址分配器及其控制方法
US7366864B2 (en) 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths
US7120723B2 (en) * 2004-03-25 2006-10-10 Micron Technology, Inc. System and method for memory hub-based expansion bus
US7590797B2 (en) * 2004-04-08 2009-09-15 Micron Technology, Inc. System and method for optimizing interconnections of components in a multichip memory module
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
US7339837B2 (en) * 2004-05-18 2008-03-04 Infineon Technologies Ag Configurable embedded processor
US20050289316A1 (en) * 2004-06-24 2005-12-29 David Durham Mechanism for sequestering memory for a bus device
JP4616586B2 (ja) * 2004-06-30 2011-01-19 富士通株式会社 メモリ初期化制御装置
DE102004033387B4 (de) * 2004-07-09 2008-06-05 Infineon Technologies Ag Digitale RAM-Speicherschaltung mit erweiterter Befehlsstruktur
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
US7519877B2 (en) * 2004-08-10 2009-04-14 Micron Technology, Inc. Memory with test mode output
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
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
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
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
US7555670B2 (en) * 2005-10-26 2009-06-30 Intel Corporation Clocking architecture using a bidirectional clock port
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
US7663939B2 (en) * 2006-05-30 2010-02-16 Kingston Technology Corporation Voltage stabilizer memory module
US7669086B2 (en) 2006-08-02 2010-02-23 International Business Machines Corporation Systems and methods for providing collision detection in a memory 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
US7721140B2 (en) 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
US7606988B2 (en) * 2007-01-29 2009-10-20 International Business Machines Corporation Systems and methods for providing a dynamic memory bank page policy
US7877590B2 (en) * 2007-08-13 2011-01-25 International Business Machines Corporation Consistent data storage subsystem configuration replication
EP2513743B1 (de) 2009-12-17 2017-11-15 Toshiba Memory Corporation Halbleitersystem, halbleitervorrichtung und verfahren zur initialisierung einer elektronischen vorrichtung
WO2012095892A1 (en) * 2011-01-14 2012-07-19 Hitachi, Ltd. Storage apparatus and response time control method
US8856482B2 (en) * 2011-03-11 2014-10-07 Micron Technology, Inc. Systems, devices, memory controllers, and methods for memory initialization
US8463948B1 (en) 2011-07-01 2013-06-11 Intel Corporation Method, apparatus and system for determining an identifier of a volume of memory
WO2017028296A1 (en) 2015-08-20 2017-02-23 Micron Technology, Inc. Solid state storage device with quick boot from nand media
CN109597654B (zh) * 2018-12-07 2022-01-11 湖南国科微电子股份有限公司 寄存器初始化方法、基础配置表的生成方法及嵌入式系统
CN113867803A (zh) * 2020-06-30 2021-12-31 华为技术有限公司 一种内存初始化装置、方法及计算机系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4224506A (en) 1978-03-24 1980-09-23 Pitney Bowes Inc. Electronic counter with non-volatile memory
US4236207A (en) * 1978-10-25 1980-11-25 Digital Equipment Corporation Memory initialization circuit
US4654787A (en) * 1983-07-29 1987-03-31 Hewlett-Packard Company Apparatus for locating memory modules having different sizes within a memory space
US4980850A (en) * 1987-05-14 1990-12-25 Digital Equipment Corporation Automatic sizing memory system with multiplexed configuration signals at memory modules
US5040153A (en) * 1987-10-23 1991-08-13 Chips And Technologies, Incorporated Addressing multiple types of memory devices
US4994934A (en) 1989-12-01 1991-02-19 Abb Power T & D Company Inc. Microcomputer based reclosing relay
EP0613088A1 (de) * 1993-02-24 1994-08-31 Digital Equipment Corporation Verfahren zur Speicherverschachtelung und dadurch verschachtelte Speichersysteme
US5560023A (en) 1994-09-07 1996-09-24 International Business Machines Corporation Automatic backup system for advanced power management
US5737748A (en) 1995-03-15 1998-04-07 Texas Instruments Incorporated Microprocessor unit having a first level write-through cache memory and a smaller second-level write-back cache memory
US5757365A (en) 1995-06-07 1998-05-26 Seiko Epson Corporation Power down mode for computer system
US5701438A (en) * 1995-09-29 1997-12-23 Intel Corporation Logical relocation of memory based on memory device type
US6003121A (en) * 1998-05-18 1999-12-14 Intel Corporation Single and multiple channel memory detection and sizing
US6226729B1 (en) * 1998-11-03 2001-05-01 Intel Corporation Method and apparatus for configuring and initializing a memory device and a memory channel

Also Published As

Publication number Publication date
CN101520766B (zh) 2012-09-19
AU1221100A (en) 2000-05-22
EP1135728A1 (de) 2001-09-26
HK1036858A1 (en) 2002-01-18
CN101520766A (zh) 2009-09-02
DE69937808D1 (de) 2008-01-31
EP1135728B1 (de) 2007-12-19
US6636957B2 (en) 2003-10-21
TW460782B (en) 2001-10-21
CN100492318C (zh) 2009-05-27
BR9915823A (pt) 2001-08-14
BR9915823B1 (pt) 2011-06-28
CN1342282A (zh) 2002-03-27
US6226729B1 (en) 2001-05-01
WO2000026788A1 (en) 2000-05-11
US20010008005A1 (en) 2001-07-12
EP1135728A4 (de) 2004-08-18

Similar Documents

Publication Publication Date Title
DE69937808T2 (de) Verfahren und vorrichtung zur konfiguration und initialisierung einer speichervorrichtung und eines speicherkanals
DE69931653T2 (de) Verfahren und gerät zur wiederherstellung eines speichergerätekanals wenn ein niederspannungszustand verlassen wird
US6532526B2 (en) Method and apparatus for configuring a memory device and a memory channel using configuration space registers
DE69817696T2 (de) Warmaustausch von gespiegeltem Nachschreib-Cachespeicher
DE19882696B4 (de) Speichertransaktionen auf einem Bus geringer Leitungsanzahl
DE69922835T2 (de) Ausgleich von übertragungsverzögerungen für einen speicherkanal in einem speichersubsystem
DE10059596A1 (de) Verfahren zur Zeiteinstellung eines Systemspeichers
DE4244266C2 (de) Verfahren und Schaltungseinrichtung zum dynamischen Konfigurieren von Gerätetreibern für Computersystem-Betriebsmittel
DE60319125T2 (de) Integrierte schaltung mit mehreren betriebsarten
DE602004003275T2 (de) Nichtflüchtiger Speicher mit Seiten-Kopierfunktion und entsprechendes Verfahren
DE69825915T2 (de) Verfahren und vorrichtung zur umschaltung zwischen quellen-synchron-takt/- und gemeinsam-takt-datenübertragungs-modi in einem mehragent-übertragungs-system
DE4018505C2 (de)
DE2619159A1 (de) Fehlererkennungs- und korrektureinrichtung
DE102013103293A1 (de) Serverschrank und Verfahren für gleichzeitiges Aktualisieren der Basisdatenaustauschsysteme
DE3620858C2 (de)
DE10159247A1 (de) Strommanagementfehlerstrategie für Kraftfahrzeugmultimediasysteme
DE102004039178B4 (de) Speichersteuerschaltung, Smartcard und Lesesteuerverfahren
DE102007039462A1 (de) Verfahren und Vorrichtung zur Aufzählung
DE112004001887T5 (de) Optimierung der SMI-Handhabung und -Initialisierung
DE102007009300A1 (de) Rechnersystem und Verfahren zum Betreiben eines Rechnersystems
DE10344626A1 (de) Systeme und Verfahren zum Zugreifen auf busmastergesteuerte Systembetriebsmittel
EP1225590A2 (de) Stossbetriebzugriffspeichersystem
EP1197854B1 (de) Verfahren zum Starten einer Datenverarbeitungsanlage sowie zugehörige Komponenten
DE69729598T2 (de) Verfahren und Vorrichtung zur Adressenparitätsprüfung für mehrfache überlappende Addressbereiche auf einem gemeinsamen Bus
WO2004023299A2 (de) Verfahren zur initialisierung von programmierbaren systemen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: HEYER, V., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 806