DE69931653T2 - Verfahren und gerät zur wiederherstellung eines speichergerätekanals wenn ein niederspannungszustand verlassen wird - Google Patents

Verfahren und gerät zur wiederherstellung eines speichergerätekanals wenn ein niederspannungszustand verlassen wird Download PDF

Info

Publication number
DE69931653T2
DE69931653T2 DE69931653T DE69931653T DE69931653T2 DE 69931653 T2 DE69931653 T2 DE 69931653T2 DE 69931653 T DE69931653 T DE 69931653T DE 69931653 T DE69931653 T DE 69931653T DE 69931653 T2 DE69931653 T2 DE 69931653T2
Authority
DE
Germany
Prior art keywords
memory
initialization
mch
values
state
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
DE69931653T
Other languages
English (en)
Other versions
DE69931653D1 (de
Inventor
A. William Folsom STEVENS
K. Puthiya 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
Application granted granted Critical
Publication of DE69931653D1 publication Critical patent/DE69931653D1/de
Publication of DE69931653T2 publication Critical patent/DE69931653T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering

Description

  • STAND DER TECHNIK
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft das Gebiet der Datenverarbeitungssysteme. Im Besonderen betrifft die vorliegende Offenbarung die Initialisierung oder Konfiguration von Speichervorrichtungen in einem Speicherkanal und das Wiederherstellen von Speichervorrichtungen beim Verlassen eines Niederleistungszustands.
  • 2. Beschreibung des Stands der Technik
  • Das Versetzen eines Computersystems in einen Niederleistungszustand ist eine allgemein bekannte Technik, um Strom zu sparen. Zum Beispiel schlägt die Anwendung Advanced Configuration and Power Management Interface (ACPI) den Einsatz mehrerer Niederleistungszustände vor und definiert Schnittstellen zwischen der Betriebssystemsoftware und der Systemhardware.
  • Ein Zustand Suspend-to-RAM (STR) ist ein üblicher Zustand, der in Power Management-Anwendungen zum Einsatz kommt. Beim Eintreten in diesen Niederleistungszustand endet für gewöhnlich die Verarbeitungstätigkeit und bestimmte Werte werden im Speicher gespeichert, wobei sie gesichert werden für die Wiederaufnahme der Verarbeitung zu einem späteren Zeitpunkt. Zum Beispiel handelt es sich bei dem Ruhezustand ACPI S3 um einen Zustand, in dem der gesamte Systemkontext mit Ausnahme des Systemspeichers verloren geht. Der Prozessor- und Speichersteuereinheit-Kontext (d.h. Registerwerte und Werte des internen Speichers) gehen in diesem Zustand verloren.
  • Darüber hinaus können andere Power Management-Techniken ähnliche Zustände aufweisen, in denen Register- und/oder Speicherwerte in einem Chipsatz oder einer Speichersteuereinheit verloren gehen.
  • Der Verlust von Werten der Speichersteuereinheit kann in einem System besonders problematisch sein, das eine Initialisierung der Speicherkonfigurationsregister voraussetzt, damit eine ordnungsgemäße Kommunikation mit dem Speicher möglich ist. Bis diese Werte wiederhergestellt sind, kann nicht auf den Hauptspeicher zugegriffen werden. Zudem kann der Hauptspeicher nicht eingesetzt werden, um die Konfigurationswerte zu speichern oder um ein Programm zur Wiederherstellung bzw. zum Zurückschreiben dieser Werte zu speichern.
  • Zur Wiederherstellung von Werten in derartigen Speicherkonfigurationsregistern ist es ein Ansatz, die gesamte Speicherinitialisierungssequenz auszuführen, um die verloren gegangenen Initialisierungswerte wiederherzustellen. Dieser Ansatz kann jedoch aus zwei Gründen nachteilig sein. Erstens kann die Initialisierungssequenz sehr lang sein, wodurch das Auftreten einer signifikanten Latenzzeit verursacht wird, wenn das System versucht, aus dem STR-Zustand wieder aufzuwachen. Zweitens kann die Initialisierungssequenz bestimmte Operationen ausführen, welche den Inhalt des Speichers gefährden. Wenn der Speicher tatsächlich bei der neuerlichen Initialisierung des Systems verloren gehen würde, so wäre ein solcher Ansatz für bestimmte Implementierungen praktisch nicht geeignet. Wenn beim Verlassen des Zustands ACP S3 zum Beispiel Speicher korrumpiert wird, so würde die Implementierung nicht der ACPI-Spezifikation entsprechen.
  • Ein Bus, der vor dem ordnungsgemäßen Betrieb ein signifikantes Maß der Initialisierung erfordert, ist ein RambusTM Direct Rambus Dynamic Random Access Memory Kanal (ein Direct RDRAMTTM Kanal). Dieser Bus wird im Detail in einer Dokumentation beschrieben, die von der Rambus Corporation, Mountain View, Kalifornien, USA, erhältlich ist. Zahlreiche Speichersteuereinheitwerte können verloren gehen, wenn eine Speichersteuereinheit für eine Busarchitektur wie etwa die Direct RambusTM Kanalarchitektur in einen Niederleistungszustand versetzt wird, und wobei gemäß dem Stand der Technik kein angemessener Mechanismus zur Wiederherstellung dieser Werte bereitgestellt wird.
  • Das U.S. Patent US-A-5.713.006 offenbart einen Laptopcomputer mit einer Speichersteuereinheitschaltung. Der Computer weist einen Wartezustand auf, in dem wenig Leistung bzw. Strom verbraucht wird, der eingeleitet werden kann, wenn zum Beispiel ein Anzeigeschirm geschlossen wird. Ein Bereitschaftsmodus, in den durch eine durch Hardware oder Software eingeleitete Aktion eingetreten wird, ermöglicht eine Modulation des CPU-Takts. Der Stromverbrauch des Mikroprozessors kann weiter durch das Erzeugen eines Wartemodus reduziert werden, wobei der externe Takteingang angehalten wird. Der Mikroprozessor ist in geeigneter Art und Weise eine statische Vorrichtung, bei der keine internen Daten verloren gehen, wenn ein Takteingang bzw. eine Takteingabe angehalten oder eine Taktmodulation durchgeführt wird, indem der Takt wiederholt ein- und ausgeschaltet wird. Das heißt, der Mikroprozessor ist in dem Wartemodus vollständig statisch, mit Ausnahme der Schaltkreisanordnung in der Speichersteuereinheit, welche die DRAMs auffrischt. Nach dem Empfang einer Systemmanagementunterbrechung (System Management Interrupt) werden Teile der CPU automatisch gespeichert. Der Computer nimmt praktisch unverzüglich die aktuelle Anwendung wieder auf, ohne neu zu starten, wenn das Anzeigefeld bzw. der Anzeigeschirm wieder geöffnet wird.
  • Das U.S. Patent US-A-5.204.954 offenbart das Zurücksetzen eines Speichersystems, wenn Strom bzw. Leistung angelegt wird, im Besonderen nach einer Leistungsunterbrechung bzw. einer Unterbrechung der Stromzufuhr, während der der Speicher aufgefrischt bzw. aktualisiert wird, wobei jedoch der Schaltkreisanordnung der Speichersteuereinheit keine Leistung zugeführt wird. Die Schaltkreisanordnung der Speichersteuereinheit wird zurückgesetzt oder neu initialisiert, um die Operationen der Speicherauffrischung nicht zu beeinträchtigen oder Konflikte zu erzeugen. Dies erfolgt durch Behandlung aller Einschaltoperationen auf die gleiche Art und weise, d.h. für das anfängliche Einschalten des Systems und bei der Leistungswiederherstellung, wobei Daten gespeichert werden oder verloren gehen, indem das Zurücksetzen der Speichersteuereinheit mit der Schaltkreisanordnung für die Auffrischung synchronisiert wird; wenn die Schaltkreisanordnung für die Auffrischung arbeitet, und wobei ein Zurücksetzen der Speichersteuereinheit nur dann erzwungen wird, wenn die Schaltkreisanordnung für die Auffrischung nicht normal arbeitet bzw. funktioniert.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Vorgesehen ist gemäß einem ersten Aspekt der vorliegenden Erfindung ein Verfahren zur Wiederherstellung eines Speichervorrichtungskanals beim Verlassen eines Niederleistungszustands gemäß dem gegenständlichen Anspruch 1.
  • Vorgesehen ist gemäß einem zweiten Aspekt der vorliegenden Erfindung eine Vorrichtung, die so angeordnet ist, dass ein Speichervorrichtungskanal wiederhergestellt wird, wenn ein Niederleistungszustand verlassen wird, wie dies in dem gegenständlichen Anspruch 7 ausgeführt ist.
  • Weitere Ausführungsbeispiele der vorliegenden Erfindung sind in den Unteransprüchen definiert.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung ist beispielhaft und ohne einzuschränken in den Abbildungen der beigefügten Zeichnungen beschrieben. Es zeigen:
  • 1 ein Ausführungsbeispiel eines Systems unter Verwendung von Konfigurationsregistern in einer Speichersteuereinheit zur Bezeichnung von Initialisierungsoperationen zur Speicherinitialisierung;
  • 2 ein Flussdiagramm zur Programmierung und Ausführung von Initialisierungsoperationen eines Ausführungsbeispiels des Systems aus 1;
  • 3 ein Ausführungsbeispiel eines Speicher-Steuer-Hubs, der die Speicherinitialisierung gemäß den Werten ausführt, die in die Steuer- und Datenregister geladen werden;
  • 4 ein Flussdiagramm für eine Speichervorrichtungskern-Initialisierungsoperation;
  • 5 ein Ausführungsbeispiel eines Systems, das einen Initialisierungsfluss gemäß den Abbildungen der 6 bis 9 implementiert;
  • 6 ein Flussdiagramm eines Ausführungsbeispiels einer Initialisierungssequenz insgesamt für das Speicherteilsystem des in der Abbildung aus 5 dargestellten Systems;
  • 7 ein Ausführungsbeispiel eines Identifikationsverfahrens für eine serielle Vorrichtung; die 8A bis 8C ein Ausführungsbeispiel eines Identifikationsverfahrens für eine Gruppenvorrichtung;
  • 9 ein Ausführungsbeispiel eines Initialisierungsverfahrens für einen Speichervorrichtungskern; und
  • 10 ein Ausführungsbeispiel des Verfahrens zur Rückkehr aus einem Suspend-to-RAM Power Management-Zustands.
  • GENAUE BESCHREIBUNG DER ERFINDUNG
  • Die folgende Beschreibung beschreibt ein Verfahren und eine Vorrichtung zur Wiederherstellung eines Speichervorrichtungskanals beim Verlassen eines Niederleistungszustands. In der folgenden Beschreibung sind zahlreiche spezifische Einzelheiten ausgeführt, um ein umfassenderes Verständnis der vorliegenden Erfindung zu vermitteln, wie etwa Registerbezeichnungen, Speicherarten, Busprotokolle, spezifische Arten von Komponenten und ausgewählte Logikpartitionierungen und Integrationsmöglichkeiten. Hiermit wird jedoch festgestellt, dass der Fachmann auf dem Gebiet erkennt, dass die vorliegende Erfindung auch ohne diese spezifischen Einzelheiten ausgeführt werden kann. In anderen Fällen wurde auf die detaillierte Darstellung von Steuerstrukturen und Schaltungen auf Gate- bzw. Gatterebene verzichtet, um die Erfindung nicht unnötig zu verschleiern. Der Durchschnittsfachmann auf dem Gebiet ist anhand der vorgesehenen Beschreibungen in der Lage, die erforderlichen Logikschaltungen ohne übermäßige Versuche zu implementieren.
  • Unter Verwendung der hierin offenbarten Techniken kann eine effiziente und flexible Speicherinitialisierung ausgeführt werden. Steuer- bzw. Befehlsregister und Datenregister können programmiert werden, so dass bewirkt wird, dass ein Memory-Control-Hub (MCH) Initialisierungsoperationen (IOPs) gemäß den in die Register geladenen werten ausführt. Da die Register durch Software programmiert werden können, wie etwa durch ein BIOS (englische Abkürzung für Basic Input/Output System), kann die Initialisierung verhältnismäßig einfach geändert werden.
  • Die Abbildung aus 1 veranschaulicht ein Ausführungsbeispiel eines Systems, das Register zur Durchführung der Speicherinitialisierung verwendet. Das System weist einen Prozessor 195 und ein Speicherteilsystem 104 auf, die mit einem Memory-Control-Hub (MCH) 100 gekoppelt sind. Ferner mit dem MCH 100 gekoppelt ist ein sekundärer Bus 180, mit dem eine Eingabevorrichtung 190 und ein nichtflüchtiger Speicher 185 gekoppelt sind, welcher BIOS-Routinen enthält. In bestimmten Ausführungsbeispielen können entweder der nichtflüchtige Speicher 185 oder die Eingabevorrichtung 190 oder beide über einen zweiten Control-Hub bzw. Steuerungs-Hub (nicht abgebildet) mit dem MCH 100 gekoppelt werden.
  • 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 ein 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 bzw. die Speicherbausteine 160, 161 und 168 auf. In einem Ausführungsbeispiel handelt es sich bei dem Speichervorrichtungen 160, 161 und 168 um Rambus DRAMs (RDRAMs), wobei es sich bei den Speichermodulen um Rambus Inline Speichermodule (RIMMs) handelt, und wobei der Kanal gemäß den für RIMMs und RDRAMMs definierten Protokollen arbeitet.
  • Der MCH 100 weist ein Steuerregister bzw. Befehlsregister 112 und ein Datenregister 114 auf, die für Initialisierungszwecke eingesetzt werden können. Eine Initialisierungs-Steuerschaltung 120 führt Initialisierungsoperanden (IOPs) aus, die in das Steuerregister 112 programmiert sind. Das Steuerregister 112 weist für gewöhnlich auch andere Felder auf, um Informationen in Bezug auf Initialisierungsoperationen zu spezifizieren, und einige der durch die IOPs spezifizierten Operationen umfassen den Datenaustausch mit Bausteinen bzw. Vorrichtungen in dem Speicherteilsystem (z.B. das Beschreiben und Lesen von Steuerregistern der Speichervorrichtung oder eine anderweitige Erzeugung von Steuersignalen).
  • Eine serielle Schnittstellenschaltung 140 erzeugt serielle Befehls- und Datenfolgen an dem seriellen Bus 142. Einige der durch die Initialisierungs-Steuerschaltung 120 ausgeführten Befehle senden Befehle und/oder Daten über den seriellen Bus 142 an das Speicherteilsystme. In einem Ausführungsbeispiel implementiert die serielle Schnittstellenschaltung ein SPD-Protokoll (SPD als englische Abkürzung von Serial Presence Detect) zur Kommunikation mit dem Speicherteilsystem 104. Das SPD-Protokoll verwendet einen Pin für den SPD-Takt (SCK), einen Befehls-Pin (CMD) und bidirektionale serielle E/A-Pins (SIO0 und SI01) zum Lesen aus den Speicherteilsystem-Steuerregistern und zum schreiben in diese.
  • Die Steuerregister, welche Vorrichtungs- bzw. Bausteinregister für Identifikationszahlen aufweisen, können über die SPD-Schnittstelle gelesen und beschrieben werden. Zusätzlich kann ein nichtflüchtiger Speicher für jedes Modul über die SPD-Schnittstelle gelesen werden, um Informationen zu bestimmen, wie zum Beispiel Zeitsteuerungs- bzw. Taktungsinformationen, den Aufbau eines Bausteins und die Technologie eines Bausteins zu jedem bestimmten Speichermodul. Nähere Einzelheiten zu dem SPD-Protokoll werden erörtert in „Serial Presence Detect Application Brief" sowie in den von Rambus erhältlichen Datenblättern zu dem Direct RambusTM RIMMTM Modul und 64/72 Mbit Direct RDRATM.
  • Eine Speicherschnittstellenschaltung 130 übersetzt Speicherdaten in Datenpakete 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 der Funktionsweise entspricht, die in dem Datenblatt „Direct RAC Data Sheet" beschrieben ist, das von der Rambus Corporation, Mountain View, Kalifornien, USA, erhältlich ist. Kurz gesagt, wandelt die RAC Rambus Signal Level (RSL) Signale auf dem Kanal (Bus 132) in Signale um, die von anderen Abschnitten bzw. Bereichen des MCH 100 verarbeitet werden können. In ähnlicher Weise wandelt der RAC die Signale der Speichersteuereinheit in ein RSL Signal um, das von den Speicherbausteinen an dem Rambus-Kanal verarbeitet werden kann.
  • Die Abbildung aus 2 veranschaulicht eine Folge von Initialisierungsereignissen für das System aus 1. Wenn das System zurückgesetzt 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 der Art des Speichers und dem beabsichtigten Einsatzmodus werden die Initialisierungsoperationen durch das BIOS in einer bestimmten Folge ausgewählt (Block 205). Nähere Einzelheiten zu einem Ausführungsbeispiel einer Initialisierungssequenz für ein System, das RDRAMs verwendet, werden in Bezug auf die Abbildungen der 5 bis 9 erörtert.
  • 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 wird mit sonstigen Steuerungsinformationen in dem Steuerregister 112 gespeichert. In einigen Ausführungsbeispielen kann das BIOS diese Funktion ausführen, indem in PCI-Konfigurationsregister (PCI als englische Abkürzung von Peripheral Component Interconnect) geschrieben wird. Alternativ können auch andere Register verwendet werden, oder es können auch Allzweck-Speicherplätze innerhalb oder außerhalb des MCH das Steuerregister darstellen. Tatsächlich kann es sich bei dem Steuerregister um jeden Speicherplatz handeln, der für den MCH vor der Speicherinitialisierung zugänglich ist und ausreichend Bits für IOPs und alle etwaigen zusätzlich erforderlichen Steuerungsinformationen speichern kann.
  • Die Initialisierungsoperation kann automatisch beginnen, wenn die richtige Initialisierungsoperation und/oder Steuerungsinformationen in das Steuerregister 112 programmiert werden. Zum Beispiel kann die in dem Block 215 angezeigte Ausführung der Initialisierungsoperation erreicht werden, indem ein Bit zum Einleiten der Initialisierungsoperation (IIO) gesetzt wird, bei dem es sich um ein Feld des Steuerregisters 112 handeln kann, wenn der Initialisierungsoperand in das Steuerregister 112 geladen wird.
  • Die Fertigstellung der Initialisierungsoperation kann auf jede ausreichende Art und Weise signalisiert werden, so dass das BIOS darüber informiert bzw. darauf hingewiesen wird, dass die Initialisierungsoperation abgeschlossen ist. Zum Beispiel kann der MCH automatisch das IIO Bit löschen, wenn die Initialisierungsoperation abgeschlossen ist. Wenn das BIOS das IIO Bit abruft, kann es unter Umständen bestimmen, wann die Initialisierungsoperation abgeschlossen ist, wie dies in Block 220 dargestellt ist. 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 entweder Programmbefehle von einer Computerspeichervorrichtung 192 annehmen (z.B. einem optischen oder magnetischen Plattenspeicher oder einer anderen Speichervorrichtung) oder von einem Netzwerk oder einer Kommunikationsschnittstelle 194. Der BIOS-Code (d.h. Computerbefehle), die bewirken, dass das System die offenbarten Techniken implementiert, kann auf verschiedene Art und Weise in den nichtflüchtigen Speicher 185 programmiert werden. Das BIOS kann bei Herstellung des Systems programmiert werden oder es kann zu einem späteren Zeitpunkt über ein computerlesbares Medium über die Eingabevorrichtung 190 bereitgestellt werden.
  • In Fällen, in denen das BIOS zu einem späteren Zeitpunkt bereitgestellt wird, können die Befehle über ein computerlesbares Medium bereitgestellt bzw. geliefert werden. In Verbindung mit einer geeigneten Schnittstellenvorrichtung 190 stellt entweder ein elektronisches Signal oder ein physikalischer Träger ein computerlesbares Medium dar. In einem Ausführungsbeispiel handelt es sich zum Beispiel bei der Computerspeichervorrichtung 192 um ein computerlesbares Medium. Eine Trägerwelle 196, die den Computerbefehl führt, stellt in einem anderen Ausführungsbeispiel ein computerlesbares Medium dar. Die Trägerwelle 196 kann moduliert oder anderweitig manipuliert werden, so dass sie Befehle enthält, 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 zu einem Memory-Controller-Hub (MCH) 300. Nachstehend sind für ein Ausführungsbeispiel Einzelheiten hinsichtlich spezifischer Registerbezeichnungen, Positionen, Größen, Felddefinitionen und Initialisierungsoperationen ausgeführt. Weitere Ausführungsbeispiele sind für den Fachmann auf dem Gebiet erdenklich. Verschiedene der nachstehenden Operationen rufen spezifische Befehle auf, die von Rambus in dem Datenblatt 64/72-Mbit und dem Datenblatt Direct RAC definiert sind. Deise definierten Operationen sind Operationen, die Rambus RAC selbst an RDRAMMs sendet, wenn entsprechende Steuersignale an den RAC gesendet werden. Wie dies nachstehend im Text ausgeführt ist, ruft das vorliegende Ausführungsbeispiel des MCH 300 bekannte RAC-Befehle durch früher nicht erhältliche Hardware und in neuen Verfahren oder Methoden auf.
  • In dem vorliegenden Ausführungsbeispiel weist der MCH 300 ein Register Vorrichtungsregisterdaten (DRD als englische Abkürzung von Device Register Data) 314 auf. Das DRD Register 314 befindet sich an dem Adressversatz 90-91h in dem PCI-Konfigurationsraum; wobei der Standardwert 0000h (16 Bits) lautet, und wobei es sich bei dem Register um ein Lese-Schreib-Register handelt. Die Felder des DRD-Registers sind in Tabelle 1 dargestellt.
  • Tabelle 1: Ein Ausführungsbeispiel eines DRD Registers
    Figure 00120001
  • Figure 00130001
  • Der MCH 300 weist ferner ein RDRAM RICM (RCIM als englische Abkürzung von RDRAM Initialization Control Management) Register 312 auf. Das RICM Register befindet sich an dem Adressversatz 94-96h in dem PCI-Konfigurationsraum, wobei der Standardwert 000000h (24 Bits) lautet, und wobei es sich bei dem Register um ein Lese-Schreib-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
    Figure 00130002
  • Figure 00140001
  • Figure 00150001
  • Ebenfalls veranschaulicht in der Abbildung aus 3 ist eine Initialisierungssteuerschaltung 320, die eine RDRAM IOP Ausführungsschaltung 325 aufweist. Einzelheiten der verschiedenen IOPs, die durch die Steuerschaltung 320 ausgeführt werden, sind in Tabelle 3 veranschaulicht. In Tabelle 3 sind das Feld Broadcast Address (BA) (Bit 19) und das Feld SDA (Bits 8:4) als eine der folgenden Optionen aufgeführt:
    • NE: Das Feld besitzt keine Auswirkungen auf die Initialisierungsoperation.
    • 0: Das Feld wird für diese Initialisierungsoperation auf 0 gesetzt.
    • 1: Das Feld wird für diese Initialisierungsoperation auf 1 gesetzt.
    • x: Das Feld sollte so programmiert werden, wie dies für die jeweilige Initialisierungsoperation angemessen ist.
  • Tabelle 3: Einzelheiten zur IOP Operation
    Figure 00160001
  • Figure 00170001
  • Figure 00180001
  • Figure 00190001
  • Figure 00200001
  • Figure 00210001
  • Die Einzelheiten der durch ein Ausführungsbeispiel der Initialisierungssteuerschaltung 320 als Reaktion auf den Empfang der RDRAM Kerninitialisierungs-IOP (10000b) ausgeführten Operationen sind in der Abbildung aus 4 dargestellt. In dem Block 400 wird auf dem Bus ein Befehl zum Übertragen des Verlassens des Abschaltzustands ausgegeben. Als nächstes wird gemäß Block 405 die durch die Blöcke 410 bis 470 angezeigte Sequenz sechzehn Mal für die Bankadressen null bis einunddreißig wiederholt. Diese Zahlen können sich für ein Speicherteilsystem mit einhundertachtundzwanzig Kalibrierungswerten und bis zu zweiunddreißig Bänken eignen. In anderen Ausführungsbeispielen kann eine andere Anzahl von Wiederholungen verwendet werden, wenn zum Beispiel eine höhere oder niedrigere Anzahl von Stromkalibrierungswerten verfügbar ist. Ebenso 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 der Austritt aus dem Abschaltzustand abgeschlossen ist, und dass die Auffrischoperation (Befehl REFA) in dem Block 415 ordnungsgemäß ausgeführt wird. In dem Block 420 wird ein weiterer Befehl für keine Operation ausgeführt, gefolgt von zwei weiteren Auffrischoperationen (REFA) in den Blöcken 425 und 430. Drei oder mehr Befehle für keine Operation werden in dem Block 435 ausgeführt, wobei ausreichend Zeit gegeben wird, bevor ein Auffrischungsvorladebefehl (REFP) auftritt. Nach einem weiteren Befehl für keine Operation in dem Block 445 wird ein weiterer Auffrischungsvorladebefehl (REFP) in dem Block 450 ausgeführt.
  • Ein Kalibrierungsbefehl (CAL) wird als nächstes in dem Block 455 ausgeführt. Dieser Befehl kalibriert (steuert) den Strom IOL für die gerade angezeigte Vorrichtung. Wie dies in den Blöcken 460 und 465 angezeigt wird, kann diese Operation zweimal wiederholt werden. Danach wird gemäß der Darstellung in dem Block 470 ein Abtastbefehl (SAMR) ausgeführt. Der Abtastbefehl aktualisiert den Strom IOL für die gerade angezeigte Vorrichtung. Dieser Ablauf wird so lange wiederholt, bis alle sechzehn Wiederholungen für die zweiunddreißig doppelten Banken ausgeführt worden sind.
  • Initialisierungssequenz
  • In Verbindung mit den vorstehend genannten Initialisierungsoperationen, Registern und verwandten Hardware, kann ein System initialisiert werden. Zum Beispiel kann das in der Abbildung aus 5 dargestellte System, das einen Rambus Direct RDRRM Kanal implementiert, initialisiert werden. In diesem System verwendet eine Speichersteuereinheit 500 (auch bezeichnet als Memory-Control-Hub oder MCH) serielle Schnittstellensignale SCK, CMD und SIO, um die Konfigurationsregister der Speichervorrichtung zu lesen oder zu beschreiben und um andere Initialisierungsoperationen auf dem Kanal auszuführen. Die Speichersteuereinheit leitet zudem spezifische ZEILEN/SPALTEN-Pakete auf dem Kanal ein.
  • Die Speichersteuereinheit umfasst eine Rambus ASIC Cell (RAC) 530, eine Steuerschaltung 520, eine SPD-Schnittstellenschaltung 540 und eine Vielzahl von Registern. Die Register umfassen Initialisierungsregister 515, die zum Initialisieren des Systemspeichers verwendet werden, und Abschaltzustand-Wiederherstellungsregister 510. Die Abschaltzustand-Wiederherstellungsregister enthalten Zeitsteuerungs- und andere für die Funktionsweise des Speicherkanals entscheidende Informationen. Anders ausgedrückt handelt es sich bei den Abschaltzustand-Wiederherstellungsregistern einfach um Register, die nach dem Abschalten der Speichersteuereinheit 500 wiederhergestellt werden müssen, um Zugriffe auf den Speicherkanal wiederaufzunehmen. Bei den Registern kann es sich um PCI-Konfigurationsregister handeln.
  • Der Speicherkanal weist RIMM-Module 560, 565 und 570 auf, die über einen Steuer- und Datenbus 532 und einen seriellen Bus 5452 mit dem MCH 500 verbunden sind. Der Steuer- und Datenbus 532 kann durch einen Widerstandsabschluss 533 abgeschlossen werden, und ein Taktgenerator Direct Rambus Clock Generator (DRCG) 580 kann an dem entfernten Ende des Kanals von dem JMCH 500 bereitgestellt werden, um Taktsignale über Signalleitungen 582 bereitzustellen.
  • Zusätzlich weist das System einen Ein-/Ausgabe-Steuer-Hub (ICH) 505 auf, der den MCH mit einem sekundären Bus 506 koppelt. Der ICH weist Allzweckausgänge (GPOs) auf, die dazu verwendet werden, verschiedene Systemfunktionen zu steuern bzw. zu regeln, wie zum Beispiel das Einstellen der Frequenz des DRCG 580. Ein nichtflüchtiger Speicher 585, der das BIOS aufweist, kann mit dem sekundären Bus 506 gekoppelt werden, sowie ein Direktzugriffsspeicher 590 mit Batteriesicherung. Der Speicher 590 mit Batteriesicherung kann Abschaltzustands-Wiederherstellungskonfigurationswerte 592 für die MCH-Abschaltregister 510 speichern, so dass der MCH den Zugriff auf den RDRAM-Kanal wiederaufnehmen kann, ohne dass die ganze nachstehend aufgeführte Initialisierungssequenz ausgeführt wird.
  • Kur ausgedrückt kann der Initialisierungsprozess wie folgt zusammengefasst werden. Nach dem Zurücksetzen des Einschaltzustands werden die Konfigurationsinformationen aus den Serial Presence Detection (SPD) Daten in den RIMMs in einem Kanal gelesen. Zum Beispiel speichert eine Speichervorrichtung, der SPD-Speicher 572, Konfigurationsinformationen für die RDRAMMs 573, 574, 576 und 577 auf dem RIMM 570. Die Konfigurationsregister der Speichersteuereinheit werden mit den entsprechenden Werten der SPD-Informationen programmiert, und danach werden die IDs des RDRAM-Bausteins so programmiert, dass jeder RDRAM-Baustein schnell identifiziert und auf ihn durch die Speichersteuereinheit zugegriffen werden kann. Sobald ein Baustein initialisiert worden ist, kann der Baustein verwendet werden.
  • Jeder RDRAM-Baustein weist zwei Identifikationsnummern auf, die zur eindeutigen Auswahl eines Bausteins in dem Kanal verwendet werden, die serielle Vorrichtungs-ID (Serial Device ID) und die Gruppenvorrichtungs-ID (Group Device ID). Diese beiden IDs werden zur Unterscheidung der Operationen in dem RDRAM-Kanal verwendet. Die serielle Vorrichtungs-ID wird für die Auswahl von Vorrichtungen bzw. Bausteinen verwendet, wenn die Speichersteuereinheit Initialisierungsoperationen auf den Signalen SCK, SIO und CMD des RDRAM-Kanals übermittelt. Die Gruppenvorrichtungs-ID wird von der Speichersteuereinheit eingesetzt, um eine Vorrichtung auszuwählen, wenn ZEILEN-Pakete (ROW-Pakete) und SPALTEN-Pakete (COLUMN-Pakete) auf RQ[7:0] Signalen des RDRAM-Kanals übermittelt bzw. gesendet werden. Sowohl die serielle Vorrichtungs-ID als auch die Gurppenvorrichtungs-ID werden nach dem Zurücksetzen programmiert und bevor Vorrichtungen einzeln entsprechend durch Initialisierungsoperationen (IOPs) und ZEILEN/SPALTEN-Pakete adressiert werden.
  • In näherem Bezug auf den Initialisierungsablauf des Rambus-Kanals kann eine bestimmte Sequenz befolgt werden, um die ordnungsgemäße Funktion der RDRAM-Bausteine in dem Kanal zu erreichen. Die Abbildung aus 6 veranschaulicht ein Flussdiagramm für eine ordnungsgemäße Kanalinitialisierung in einem Ausführungsbeispiel, und Tabelle 4 bezeichnet einige der in diesem Initialisierungsablauf verwendeten Variablen.
  • Tabelle 4: Bei der Initialisierung verwendete Variablen
    Figure 00250001
  • Figure 00260001
  • In Block 602 erfolgt ein Zurücksetzen des Systems. Der MCH setzt alle Zustandsmaschinen zurück und trifft Vorbereitungen für die Initialisierung. In dem Block 604 wird die Speichermodulkonfiguration des Systems verifiziert. Das BIOS liest die SPD-Daten, um die Speicherkonfiguration zu bestimmen. Wenn nur RIMMs vorhanden sind, kann die Sequenz der RDRAM-Initialisierung mit dem Block 608 fortfahren. Wenn gemischte Speichermodule vorhanden sind, wird ein Fehler an den Benutzer gemeldet, und das System wird angehalten, wie dies unter 606 dargestellt ist.
  • Der Taktgenerator wird in dem Block 608 gestartet. Diese Operation kann durch Abrufen der SPD-Daten jedes RIMM-Moduls auf der Grundplatine mittels Software und das Bestimmen einer Kanalfrequenz erreicht werden, auf der alle RIMMs arbeiten. Der DRCG 580 kann durch einen Allzweckausgang (d.h. GPOx gemäß der Abbildung aus 5) aus dem ICH 505 auf die entsprechende Frequenz eingestellt 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 dargestellt ist, wird als nächstes der MCH RAC initialisiert. Der Kanaltakt des DRCG sollte vor der MCH RAC Initialisierung stabil sein. Die MCH RAC Initialisierung wird durch Ausführen der MCH RAC Initialisierungs-IOP erreicht. Die RAC-Initialisierungs-IOP führt die grundlegende Initialisierung aus, um den internen RAC der Speichersteuereinheit auf den normalen Betrieb vorzubereiten.
  • In einem Ausführungsbeispiel sieht das BIOS für das Löschen des IIO Bis nach der MCH RAC Initialisierungs-IOP ein Timeout von 5 ms vor. Wenn das IIO Bit nach 5 ms noch nicht durch den MCH gelöscht worden ist, sollte das BIOS den Fehler melden, und der Kanal ist nicht mehr nutzbar. Eine weitere Verzögerung von 5 ms kann hinzugefügt werden, nachdem der MCH das IIO Bit durch den Abschluss der MCH RAC Initialisierungs-IOP löscht. Dies sieht ausreichend Zeit für die Stabilisierung und Verriegelung der MCH-Takte vor. In einigen Ausführungsbeispielen kann es ferner erforderlich sein, dass ein Bus in dem RAC gelöscht wird, bevor die weiteren Operationen beginnen. Dies kann durch die Ausführung der MCH RAC Steuerregister-Lade-IOP (DRD = 00000h) erreicht werden. Eine Ausführung der RAC-Initialisierung zu einem späteren Zeitpunkt in der Initialisierungssequenz kann in einigen Ausführungsbeispielen ebenfalls möglich sein.
  • Wie dies in dem Block 612 dargestellt ist, können als nächstes mehrere MCH-Konfigurationsregister initialisiert werden. In einem Ausführungsbeispiel wird ein Feld Paging Policy Register RMC Idle Timer (PGPOL RIT) (MCH 052h [2:0]) auf 001b gesetzt, um sicherzustellen, dass keine Seiten während der Kanal-Levelization geschlossen werden (wie dies nachstehend im Text näher beschrieben wird). Das Feld PGPOL RIT legt die Anzahl der Host-Bus-Takte fest, über welche die Speichersteuereinheit in dem Ruhezustand verbleibt, bevor alle offenen Seiten geschlossen werden, und ein Wert von Null zeigt an, dass eine infinite Latenz gegeben ist, bis die Speichersteuereinheit damit beginnt, Seiten zu schließen.
  • Darüber hinaus können in einigen Ausführungsbeispielen operative Pools eingesetzt werden, um die RDRAMs auf der Basis der definierten RDRAM-Zustände zu gruppieren. Zur Reduzierung der Betriebsleistung können die RDRAM-Bausteine in zwei operative Pools mit den Bezeichnungen „Pool A" und „Pool B" gruppiert werden. In einem Ausführungsbeispiel können sich gleichzeitig bis zu acht Bausteine bzw. Vorrichtungen in Pool A befinden. In dem vorliegenden Ausführungsbeispiel können sich gleichzeitig vier von acht aus Pool A in Zuständen des aktiven Lesens/Schreibens oder aktiven Zuständen befinden, und wobei die Bausteine in Pool A sich in einem der Zustände Aktiv Lesen/Schreiben, Aktiv oder Standby befinden können.
  • Die maximale Anzahl von Bausteinen in Pool A ist programmierbar und durch ein PAC-Feld des RDRAM Power Management Registers (RPMR) Register (MCH 053h) spezifiziert. Alle Bausteine, die sich nicht in Pool A befinden, gehören zu Pool B. Alle Bausteine in Pool B befinden sich entweder im Standby- bzw. Bereitschaftszustand oder im Ruhezustand. Der Zustand der Bausteine in Pool B ist durch ein Feld PBS eines DRAM-Steuerregisters (DRAMC) (MCH 051h) spezifiziert. In einem Ausführungsbeispiel wird das RPMR-Register auf 00h gesetzt, wobei nur ein Pool A mit einem Baustein ausgewählt wird, und wobei die Operation von Pool B auf den Bereitschaftsbetrieb eingestellt ist (MCH 051h [6] = 0).
  • Wie dies in Block 614 dargestellt ist, kann als nächstes eine weitere Kanalinitialisierung ausgeführt werden. Diese kann das Ausführen eines SIO-Zurücksetzens (serielle Schnittstelle) unter Verwendung einer SIO-Rücksetz-IOP umfassen sowie das ermöglichen einer ausreichenden Verzögerung für die vollständige Ausführung der SIO-Rücksetzsequenz. Darüber hinaus können zu diesem Zeitpunkt weitere Register festgelegt werden, die für einen ordnungsgemäßen Betrieb initialisiert werden müssen. Zum Beispiel kann es in bestimmten Ausführungsbeispielen erforderlich sein, dass ein Register Test77 mit einem Wert von null nach dem SIO-Zurücksetzen gemäß den Ausführungen auf Seite 37 des Direct RDRAM 64/72 Mbit Data Sheet beschrieben wird (ausführen einer Broadcast SIO Register Write IOP: TEST77, DRA = 4Dh, DRD = 0000h).
  • Zuordnung der seriellen Vorrichtungs-ID
  • Wie dies in Block 620 dargestellt ist, können als nächstes Identifikationswerte für die serielle Vorrichtung (IDs) zugeordnet werden. Im Allgemeinen identifiziert die Software eindeutig jeden Baustein bzw, jede Vorrichtung in dem Kanal, um eine Ausrichtung der Initialisierungsoperationen auf einzelne Bausteine zu ermöglichen. 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-Zurücksetzen lautet der Standardwert der seriellen Vorrichtungs-ID in allen RDRAMs in dem Kanal 1Fh. Nach dem Zurücksetzen wird ferner der Serial Repeater (SRP Bit (RDRAM 021h [7]) auf 1 gesetzt, wodurch es ermöglicht wird, dass jedes RDRAM SIO-Daten, die an dem Pin SIO0 empfangen werden, an den Pin SIO1 des RDRAM leitet, wobei das SIO-Paket zu dem nächsten RDRAM-Baustein geleitet wird. Da alle Bausteine nach dem Zurücksetzen die gleiche serielle Vorrichtungs-ID aufweisen, kann der vor Zuweisung eindeutiger serieller IDs nicht auf eine einzelne Vorrichtung zugegriffen werden.
  • Die Abbildung aus 7 zeigt weitere Einzelheiten der gemäß einem Ausführungsbeispiel ausgeführten seriellen Vorrichtungsbezeichnung. In dem Block 700 wird die Variable SerialIDCount auf null initialisiert. Als nächstes werden die SIO-Repeater aller Vorrichtungen bzw. Bausteine in dem Kanal deaktiviert (Broadcast SIO Register Write IOP, INIT, DRA = 21h, DRD = 001Fh), wie dies in dem Block 710 dargestellt ist. Diese Operation bewirkt, dass alle seriellen Vorrichtungs-IDs auf 01fh gesetzt werden. Das SIO-Repeater-Bit wird auf Null gesetzt, so dass nur auf den ersten Baustein des SIO-Kanals zugegriffen werden kann.
  • Beginnend mit dem Block 710 verläuft der Prozess in einer Schleife durch alle Vorrichtungen in dem Kanal, und wobei jeder eine eindeutige ID zugeordnet wird. 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 in dem Block 715 angezeigt, ob die Vorrichtung tatsächlich vorhanden und in dem System funktionsfähig ist. Das Register RDRAM INIT wird gelesen, um zu bestimmen, ob der gleiche Wert, der gerade geschrieben worden ist, richtig ausgelesen wird (SIO Register Read IOP: INIT, SDCA = SerialIDCount, DRA = 21h).
  • Wenn die Daten übereinstimmen (gemäß dem Test in Block 720), wird SerialIDCount erhöht (Block 725), und der 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 die nächste Vorrichtung in dem Block 705 angezeigt.
  • Wenn der SerialIDCount einen maximal zulässigen Wert überschreitet, oder wenn die Daten in dem Block 720 nicht übereingestimmt haben, so ist der letzten Vorrichtung eine ID zugeordnet worden, und eine variable Verfolgung der Gesamtanzahl an Vorrichtungen auf den SerialIDCount gesetzt werden kann, wie dies in dem Block 735 dargestellt ist. Um schließlich alle weiteren Dienste, die der letzten zulässigen Vorrichtung nachgeschaltet sind, zu deaktivieren, wird der SIO-Repeater des RDRAM mit der höchsten seriellen ID deaktiviert. Folglich empfangen keine weiteren Vorrichtungen (d.h. nicht ordnungsgemäß funktionstüchtige Vorrichtungen oder Vorrichtungen jenseits des zulässigen Maximums von z.B. zweiunddreißig) Befehle und sollten somit nicht ansprechen bzw, antworten. Als weitere Prüfung können die SPD-Informationen an den RIMMs überprüft werden, um zu bestimmen, ob der letztendliche Zählwert der Vorrichtung richtig ist.
  • Zuordnung der Gruppenvorrichtungs-ID
  • In erneutem Bezug auf die Abbildung aus 6 werden nach der Zuordnung der eindeutigen seriellen IDs und der Deaktivierung des SIO-Ausgangs der letzten Vorrichtung Gruppen-IDs zugeordnet, und zwar auf der Basis der Größe der Speichervorrichtung, wie dies in dem Block 630 angezeigt wird.
  • 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 Gruppenbegrenzungs-Zugangsregister (GBA) auf, um die Gruppen-ID zu definieren sowie die oberen und unteren Adressen für jede Gruppe. Somit kann jedes GBA-Register mit einer Gruppen-ID und einem oberen Adressbegrenzungswert von neun Bit programmiert werden. Nicht populierte Gruppen weisen einen Wert auf, der dem der vorangehenden Gruppe entspricht, sowie eine Gruppengröße von Null.
  • Darüber hinaus veranschaulicht das Flussdiagramm in den Abbildungen der 8A bis 8C ein Ausführungsbeispiel des Verfahrens der Bezeichnung bzw. der Vergabe der Gruppenvorrichtungs-IDs, wie dies in dem Block 630 angezeigt wird. Gemäß der Darstellung in dem Block 800 aus 8A wird eine Mehrzahl von 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 durch den MCH unterstützte Kerntechnologie unterstützt.
  • Wie dies in dem Block 805 dargestellt ist, werden Daten aus dem SPD-Speicher eines Moduls (Modulnummer RIMMCount) gelesen, das die Kerntechnologie des Moduls identifiziert. Diese Informationen können die Anzahl der Zeilen bzw. Reihen je Vorrichtung, die Anzahl der Spalten je Vorrichtung, die Anzahl der Bänke je Vorrichtung und ob die Bänke unabhängig oder abhängig sind, umfassen. Als nächstes wird RIMMDeviceConfigNo gesetzt, wie dies in dem Block 810 dargestellt ist, indem der aus dem SPD gelesene Kerntechnologiewert in einen Wert in einem Gruppenarchitekturregister (GAR) mit äquivalentem Wert umgesetzt wird.
  • Wie dies in dem Block 815 angezeigt wird, wird die Variable RIMMDeviceCount auf die durch den SPD-Speicher für den RIMM angezeigte Anzahl von Vorrichtungen gesetzt. Danach können die Vorrichtungs-IDs zugeordnet bzw. zugewiesen und Registerwerte festgelegt werden, wie dies in Block 820 dargestellt ist. Weitere Einzelheiten des Prozesses, der in Block 820 für ein Ausführungsbeispiel dargestellt ist, sind in der Abbildung aus 8B dargestellt.
  • Im Allgemeinen fügt der Bezeichnungsprozess die Anzahl der RDRAMM Vorrichtungen an dem RIMM der ersten seriellen ID hinzu und zählt danach nach unten, bis das RIMM aufgebraucht ist. Gemäß der Abbildung in 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 Gruppen-IDs auf, und SerialIDCount wird auf SerialIDCount plus RIMMDeviceCount gesetzt (wie dies in Block 830 dargestellt ist), und das Verfahren kehrt zur Abbildung aus 8A zurück, wie dies in Block 832 angezeigt wird. Wenn RIMMDeviceCount ferner 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 weiteren Vorrichtungen für die Vergabe von Gruppen-IDs, und das Verfahren kehrt zur Abbildung aus 8A zurück, wie dies in Block 832 dargestellt ist.
  • Wenn RIMMDeviceCount und MemberCount ungleich Null sind, wird ein GroupDeviceIDCount der Gruppenvorrichtungs-ID des RDRAM zugeordneet, wobei die serielle ID gleich dem aktuellen Wert von SerialIDCount ist, wie dies in Block 828 dargestellt ist. Als nächstes wird das aktuelle Gruppenbegrenzungs-Adressregister (GBA) aktualisiert, so dass es das Hinzufügen der neuen Vorrichtung zu der Gruppe reflektiert, wie dies in dem Block 830 dargestellt ist. Dies kann durch das Hinzufügen eines Wertes erreicht werden, der die Vorrichtungsgröße des vorherigen in diesem GBA-Register gespeicherten Wertes anzeigt.
  • Als nächstes wird der GroupDeviceIDCount mit vier (der maximalen Anzahl von Vorrichtungen je Gruppe) in dem Block 832 verglichen. Wenn die Gruppe voll ist, wird das MCH Gruppenarchitekturregister (GAR) für diese Gruppe aktualisiert, wie dies in Block 834 dargestellt ist. Das GAR wird so aktualisiert, dass es die Gruppenkonfiguration (d.h. die Anzahl der Bänke und die DRAM-Technologie (Größe)) richtig anzeigt. In demBlock 836 werden SerialDeviceIDCount erhöht, MemberCount herabgesetzt, GroupDeviceIDCount erhöht und RIMMDeviceCount herabgesetzt. Das Verfahren kehrt danach zu dem Block 824 zurück.
  • Wenn in erneutem Bezug auf die Abbildung aus 8A entweder RIMMDeviceCount oder MemberCount gleich Null ist, wird RIMMCount erhöht, wie dies in dem Block 850 dargestellt ist. Wenn RIMMCount kleiner ist als ein maximaler RIMMCount, gemäß dem Test in Block 855, so kehrt der Ablauf zu dem Block 805 zurück. Wenn RIMMCount das letzte RIMM erreicht hat, fährt der Ablauf in 8C fort, wie dies durch Block 860 dargestellt ist.
  • Wenn in Bezug auf 8C MemberCount gleich Null ist (gemäß dem Test in Block 865), so endet der Prozess der Vorrichtungs-ID-Bezeichnung. Wenn MemberCount hingegen ungleich Null ist, wird die nächste MCH-Gruppe ausgewählt, um die Bezeichnung der Vorrichtungen in der nächsten DRAM-Technologie zu beginnen, wie dies in Block 870 dargestellt ist. Der GroupDeviceIDCount kann durch Addition von drei aktualisiert werden, und durch das Ausführen einer logischen UND-Operation des resultierenden Werts und 0FFFCh.
  • Wenn GroupDeviceIDCount einer maximal zulässigen Anzahl von Vorrichtungen in dem Kanal entspricht (z.B. zweiunddreißig gemäß dem Test in Block 872), so endet der Gruppen-ID-Bezeichnungsprozess. Wenn jedoch weniger Vorrichtungen Gruppen-ID-Nummern zugewiesen worden sind, so wird DRAMConfigIndex auf die nächst kleinere Kerntechnologie gesetzt, die durch den MCH unterstützt wird, wie dies in Block 874 dargestellt ist. Wenn DRAMConfigIndex anzeigt, dass keine kleineren Kerntechnologien unterstützt werden (z.B. DRAMConfigIndex ist gemäß dem Test in Block 876 Null), so endet der Prozess der ID-Bezeichnung. Wenn mehr Kerntechnologien vorhanden sind, so werden SerialIDCount und RIMMCount auf Null gesetzt, wie dies in dem Block 878 dargestellt ist, und das Verfahren kehrt zu dem Block 805 aus 8A zurück.
  • Der nachstehende Pseudocode zeigt Operationen an, die verwendet werden können, um die durch den Block 630 aus 6 in einem Ausführungsbeispiel angezeigte Gruppen-ID-Bezeichnung auszuführen.
    • 630. Bezeichnung von MCH-Vorrichtungsgruppen. 630.1. Schleife durch den RIMM SPD-Speicher und Gruppierung der Vorrichtung an den RIMMs. Die Vorrichtungen der größten Technologie müssen in den niedrigsten Gruppen gruppiert werden, wobei die Technologiegröße mit zunehmenden Gruppen abnimmt. 630.1.1. MemberCount = MemberMax setzen 630.1.2. SerialIDCount = 0 setzen: Dies ist der Zähler für die serielle Vorrichtungs-ID. 630.1.3. GroupDeviceCount = 0 setzen. Dies ist der Zähler für die Gruppen-Vorrichtungs-ID. 630.1.4. RIMMCount = 0 setzen. Dies ist der RIMM-Zähler. 630.1.5. RIMMDeviceCount = 0 setzen. Dies ist der Zähler für die Anzahl der Vorrichtungen an einem RIMM. 630.1.6. DRAMConfigIndex = Größte durch den MCH unterstützte Technologie. 630.1.7. Kerntechnologie des RIMM #RIMMCount berechnen. 630.1.7.1. RIMMDeviceConfigNo = aus SPD des RIMM gelesene Kerntechnologie. 630.1.8. RIMMDeviceCount = # an RDRAM Vorrichtungen in RIMM #RIMMCount, gelesen aus dem SPD EEPROM des RIMM. 630.1.9. Gruppenvorrichtungs-IDs zuordnen und MCH GAR und GBA Register für RIMM programmieren. 630.1.630.1. Wenn RIMMDeviceConfigNo = DRAMConfigIndex, Bruch zu 630.1.10. 630.1.9.2. Wenn RIMMDeviceCount = 0, Bruch zu 630.1.10. 630.1.9.3. Wenn MemberCount = 0, Bruch 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 0011b = 0 630.1.9.6.1. Programmieren MCH GAR[GroupDeviceIDCount SHR 2] = RIMMDeviceConfigNo 630.1.9.7. GroupDeviceIDCount erhöhen 630.1.9.8. SerialIDCount erhöhen 630.1.9.10. RIMMDeviceCount herabsetzen 630.1.9.11. Gehe zu Schritt 630.1.9.2. 630.1.10. RIMMCount erhöhen 630.1.11. Wenn RIMMCount < RIMMMax, gehe zu Schritt 630.1.7. 630.1.12. Wenn MemberCount = 0, dann Bruch zu Schritt 10 630.1.13. Nächste Gruppe für nächste RDRAM Technologie auswählen. 630.1.13.1. GroupDeviceIDCount = (GroupDeviceIDCount + 011b) AND 011b 630.1.14. Wenn GroupDeviceIDCount = 32, dann Bruch zu Schritt 10 630.1.15. DRAMConfigIndex = nächst kleinere DRAM Technologie 630.1.16. Wenn DRAMConfigIndex = 0, dann Bruch zu Schritt 10 630.1.17. SerialIDCount = 0 630.1.18. RIMMCount = 0 630.1.19. Gehe zu Schritt 630.1.7. Dies startet die Suche der RIMMs für die nächst kleinere RDRAM Technologie.
  • Nachdem in erneutem Bezug auf die Abbildung aus 6 die Gruppen-IDs zugewiesen worden sind, können die einzelnen RDRAM-Vorrichtungen aus dem Abschaltmodus gebracht und in den schnellen Taktmodus für einen normalen Betrieb gebracht werden, wie dies in Schritt 640 dargestellt ist. Die einzelnen RDRAM-Zeitsteuerungsregister in dem MCH und RDRAMs können programmiert werden. Die Steuerregister REFB und REFR RDRAM können auch initialisiert werden (Broadcast SIO Register Write IOP. REFB, DRA = 41h, DRD = 0000h; Broadcast SIO Register Write IOP. REFR, DRA = 42h, DRD = 0000h).
  • Die RDRAM-Vorrichtungen können durch Ausführen einer Broadcast Set Reset IOP zurückgesetzt werden, und in einigen Ausführungsbeispielen kann dies zweimal ausgeführt werden, mit Verzögerungen nach jedem Zurücksetzen. Die RDRAMs werden aus dem Abschaltzustand gebracht, indem ein Broadcast RDRAM Verlassen des Abschaltzustands IOP ausgeführt wird, und der Eintritt in den schnellen Taktmodus erfolgt durch Ausführen einer Broadcast RDRAM Set Fast Clock Mode Initialization IOP.
  • Danach können die RDRAM-Kerne gemäß der Abbildung in 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 zur Stromkalibrierung vorbereitet, indem ein Zwischenwert in die entsprechenden RDRAM-Register geschrieben wird (Broadcast SIO Register Write IOP. CCA, DRA = 43h, DRD = 0040h; Broadcast SIO Register Write IOP. CCB, DRA = 44h, DRD = 0040h). Vierzig hexadezimal kann in einem Ausführungsbeispiel einen angemessenen Zwischenwert darstellen, mit einhundertsiebenundzwanzig möglichen Stromkalibrierungswerten. Der Anfang auf diesem Zwischenwert beschränkt die Gesamtanzahl der benötigten Kalibrierungszyklen, da der Kalibrierungswert nur um ungefähr die Hälfte des ganzen Bereichs der Kalibrierungswerte versetzt sein kann.
  • Als nächstes werden Vorladungsoperationen an jeder Bank der RDRAM-Vorrichtung ausgeführt. Zur Ausführung der Vorladungsoperationen zählt der MCH durch die Bänke um zwei nach oben bzw. hoch, wobei zuerst die ungeraden Bänke vorgeladen werden und danach die geraden Bänke. Ein Bankindex wird in dem Block 905 auf Null gesetzt. Ein Übertragungsvorladewert IOP wird danach ausgeführt, wie dies in dem Block 910 dargestellt ist. Gemäß der Darstellung in Block 915 wird der Bankindexwert um zwei erhöht, und die Übertragungsvorladung wird für ungerade Bänke wiederholt, bis der Bankindex in dem Block 920 als gleich einer maximalen Anzahl von Bänken ermittelt worden ist (z.B. zweiunddreißig).
  • Wenn die maximale Anzahl der Bänke erreicht ist, wird der Bankindex auf Eins gesetzt, und alle ungeraden Bänke werden vorgeladen. Wenn de Bankindex die maximale Anzahl der Bänke überschreitet, so wird die RDRAM Kerninitialisierungs-IOP sechsmal ausgeführt, wie dies in dem Block 940 dargestellt ist.
  • Kanal-Levelization
  • In erneutem Bezug auf die Abbildung aus 6 kann nach der Initialisierung der RDRAM-Kerne in dem Block 642 der Kanal gemäß der Darstellung in dem Block 644 einer Levelization unterzogen werden. Dieses Verfahren umfasst das Ausgleichen der Summe der RDRAM Leseansprechzeit und einer Ausbreitungsverzögerung von dem RDRAM zu dem MCH für alle RDRAMs. Anders ausgedrückt, nachdem der Kanal der Levelization ausgesetzt worden ist, stellen alle RDRAMs Daten an der Speichersteuereinheit in der gleichen Anzahl von Buszyklen bereit.
  • Der folgende Pseudocode zeigt eine Schrittfolge an, die in einem Ausführungsbeispiel ausgeführt werden kann, um den Levelization-Ablauf aus Block 644 zu implementieren.
    • 644. Levelization des Rambus-Kanals 644.1. Phase 1: Bestimmen des MCH tRDLY Feldwerts. 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 in Bezug auf die Levelization. 644.1.4.1. SIO Register Lese IOP. DEVID, SDCA = SerialIDCount, DRA = 40h 644.1.4.2. Das DRD (MCH 090h [15:0]) enthält jetzt die Vorrichtungs ID des RDRAM 644.1.4.3. DeviceTestAddress = MCH GBA[(DRD SHR 2) – 1] SHL 23 + ((DRD AND 011b)·Vorrichtungsgröße in Byte (von GAR[DRD SHR2]) 644.1.5. QWORD Schreiboperation zur Adressierung von DeviceTestAddress mit TestPattern. 644.1.6. QWORD Schreiboperation zur Adressierung von DeviceTestAddress 644.1.7. Wenn Daten lesen != TestPattern 644.1.7.1. Feld MCH RDT:TRDLY erhöhen 644.1.7.2. Wenn Feld MCH RDT:TRDLY <= 4, dann Bruch zu Schritt 644.1.5. 644.1.8. Sonst (wenn Daten lesen = TestPattern) 644.1.8.1. MchTrdly = Daten lesen aus MCH RDT:TRDLY Feld 644.1.8.2. Wenn Mch Trdly = 4, dann Bruch zu Schritt 644.2 644.1.9. SerialIDCount herabsetzen 644.1.10. Wenn SerialIDCount >= 0, dann gehe zu Schritt 644.1.3. 644.2. Phase 2: Zeitsteuerungswerte für die Levelization von RDRAM bestimmen 644.2.1. SerialIDCount = MemberMax 644.2.2. 32-Bit-Adresse zum Prüfen der RDRAM-Vorrichtung für Levelization berechnen. 644.2.2.1. SIO Register Lesen IOP. DEVID, SDCA = SerialIDCount, DRA = 40h 644.2.2.2. DRD (MCH 090h [15:0]) enthält jetzt die Vorrichtungs-ID von RDRAM 644.2.2.3. DeviceTestAddress = MCH GBA[(DRD SHR 2)– 1] SHL 23 + ((DRD AND 011b)·Vorrichtungsgröße in Byte (von GAR[DRD SHR 2]) 644.2.3. QWORD Schreiboperation zur Adressierung von DeviceTestAddress mit TestPattern. 644.2.4. QWORD Leseoperation zur Adressierung von DeviceTestAddress 644.2.5. Wenn Daten lesen = TestPattern, dann Bruch zu Schritt 644.2.8. 644.2.6. Wenn Feld TCDLY von RDRAMs < Max TCDLY (von SPD) 644.2.6.1. TCDLY-Register von RDRAMs (TDAC und TRDLY) gemäß TCDLY-Unterstützungstabelle erhöhen. 644.2.6.2. Bruch zu Schritt 644.2.3. 644.2.7. RDRAM-Vorrichtung als deaktiviert kennzeichnen. 644.2.8. SerialIDCount herabsetzen 644.2.9. Wenn SerialIDCount >= 0, dann gehe zu Schritt 644.2.2.
  • Nach Abschluss der Levelization speichert ein Ausführungsbeispiel eine Reihe von Abschaltzustandswiederherstellungs-Speicherinitialisierungswerten in dem Speicher 590 mit Batteriesicherung, wie dies in Block 646 dargestellt ist. Hiermit wird festgestellt, dass diese Operation auf jeder Stufe ausgeführt werden kann, nachdem die entsprechenden Werte durch die Initialisierungsroutine bestimmt worden sind. Die Werte werden gespeichert, um die durch das Initialisierungsverfahren bis zu diesem Punkt bestimmten Initialisierungsinformationen zu erhalten.
  • Wenn das System in einen Niederleistungszustand (z.B. Suspend-to-RAM) eintritt, so wird die Stromzufuhr an den MCH entfernt. Wenn somit die Initialisierungsinformationen nicht erhalten werden, so kann es sein, dass der ganze Initialisierungsvorgang wiederholt werden muss. Das Speichern von wichtigen Initialisierungsinformationen in einem nichtflüchtigen Speicher kann in vorteilhafter Weise das Aufwachen aus einem derartigen Niederleistungszustand beschleunigen. Die Schwierigkeit des Speicherns dieser Informationen nimmt durch die Tatsache zu, dass das Speicherteilsystem nicht funktionsfähig ist, bis diese Werte wiederhergestellt worden sind.
  • Jeder nichtflüchtige Speicher, der beschrieben werden kann, kann zum Speichern der entsprechenden Initialisierungsinformationen verwendet werden; wobei jedoch in vielen Computersystemen ein Speicher mit Batteriesicherung vorhanden ist, der somit eine praktische Wahl darstellen kann. In einem Ausführungsbeispiel sind die nachstehend aufgeführten Register in dem Speicher 590 gespeichert.
    • • MCH Group Architecture (GAR) Register (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 Timing Register RDT (050h): Dieses Register definiert die Zeitsteuerungsparameter für alle Vorrichtungen in dem Kanal.
    • • MCH DRAM Control (DRAMC) Register (051h): Dieses Register weist das Bit Pool B Operation Select (PBS) auf, ein Bit Memory Transfer Hub Presence (MTHP), das einen Operationsmodus des MCH spezifiziert, und ein Bit Aperture Access Global Enable, das einen Zugriff auf eine Apertur von einem beliebigen Port verhindert, bevor der Aperturbereich und die Umsetzungstabelle festgelegt worden sind.
    • • MCH Page Policy (PGPOL) Register (052h): Dieses Register spezifiziert Seitenwechselrichtlinienattribute, einschließlich einer DRAM Refresh Rate (DRR) und eines RMC Idle Timer (RIT). Das Feld DRR passt die DRAM Auffrischrate an, und das RIT-Feld bestimmt die Anzahl der Host-Bus-Taktzyklen, über welche die Speichersteuereinheit im Ruhezustand verbleibt, bis alle offenen Seiten geschlossen sind.
    • • MCH RPMR (053h): Dieses Register enthält 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). Das Feld DNT spezifiziert die Anzahl der Host-Takte, über welche sich die Speichersteuereinheit im Ruhezustand befindet, bis die zuletzt verwendete Vorrichtung in Pool A nach außen in Pool B gedrückt wird. Das Feld ADPA definiert die maximale Anzahl der RDRAM Vorrichtungen in Pool A, die sich zu einem bestimmten gleichzeitig in dem Zustand Aktiv Lesen/Schreiben oder Aktiv befinden. Die Vorrichtungen in Pool A, die sich nicht in dem Zustand Aktiv Lesen/Schreiben oder Aktiv befinden, befinden sich in dem Standby-Zustand. Das Bit DNE (wenn auf 1 gesetzt) gibt den Kanalinaktivitätszähler frei, um die durchgängige Zeit der Inaktivität zu messen. Wenn der Zählerwert den durch DNT spezifizierten Schwellenwert überschreitet, so wird die zuletzt verwendete Vorrichtung aus Pool A in Pool B gedrückt. Das Feld PAC definiert die maximale Anzahl an RDRAM-Vorrichtungen, die sich gleichzeitig in Pool A befinden können. Vorrichtungen, die nicht Teil von Pool A sind, gehören zu Pool B.
    • • MCH Group Boundary Access (GBA) Register (060-06Fh): Die GBA Register weisen eine Gruppen-ID und einen Wert auf, der die obere Adressgrenze für die Gruppe anzeigt.
    • • MCH Configuration Register MCHCFG (0BE-fh): Diese Register weisen die Felder Rambus Frequency & DRAM Data Integrity Mode auf.
  • An diesem Punkt können auch die Abschaltkonfigurationsoptionen programmiert werden. In einem Ausführungsbeispiel werden die Optionen der Selbstauffrischung und der Niederleistungs-Selbstauffrischung festgelegt (für jeden SerialIDCount: SIO Register Write IOP. INIT, SDCA = SerialIDCount, DRA = 21h, DRD = 400h (LSR, wenn SPD unterstützt) + 200h (PSR) + 80h (SRP)).
  • Der normale Betrieb kann gemäß der Darstellung in Block 650 beginnen, nachdem einige wenige Register mehr für einen normalen Betrieb programmiert worden sind. Das Seitenrichtlinienregister wird so festgelegt, dass es normal arbeitet (PGPOL RIT Feld (MCH 052h [2:0]) bis 001b), da der Timer zum Schließen der Seite effektiv für die Levelization deaktiviert worden ist, und die Power Management-Merkmale werden an diesem Punkt über das RPMR Register (MCH 053h) freigegeben. Wenn das Bit Pool B Select (MCH 051h [6]) für eine NAP Operation konfiguriert ist, so kann eine Broadcast NAP Entry IOP ausgeführt werden, um alle Vorrichtungen in den NAP Zustand (Ruhezustand) zu versetzen. In dem gleichen E/A-Befehl, der das IIO-Bit setzt, setzt auch das IS-Bit in RICM auf Eins, so dass normale Operationen des MCH beginnen können.
  • Wiederherstellung des Kanals beim Verlassen eines Niederleistungszustands
  • Nachdem die normale Funktion eine gewisse Zeit angedauert hat, kann das System aufgrund der Systeminaktivität oder aus einem anderen Grund in einen Niederleistungszustand eintreten, wie dies in dem Block 1000 aus 10 dargestellt ist. Ein Zustand, in den das System eintreten kann, ist der Zustand Suspend-to-RAM (STR), in dem der MCH in dessen Registern gespeicherte Werte verliert. Nach dem Eintritt in den Zustand STR kann ein Ereignis erfasst werden, das bewirkt, dass das System den STR verlässt, wie dies in dem Block 1010 dargestellt ist. Folglich startet das BIOS den MCH und andere Systemkomponenten. Die Konfigurationsregister des MCH können in diesem Vorgang automatisch auf einen Standardwert zurückgesetzt werden.
  • Um folglich erneut auf Speichervorrichtungen in dem Speicherkanal zuzugreifen, sind zumindest einige Konfigurationsregisterwerte erforderlich. Das BIOS kann bewirken, dass der ICH 505 auf den Speicher 590 mit Batteriesicherung zugreift und die nachstehend aufgeführten Register wiederherstellt (gespeichert in Block 646 aus 6).
    • • 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 (0BE-BFh)
  • Nach dem Zurückschreiben der Werte in diese Register kann der MCH erneut auf Objekte zugreifen, die in dem Speicher gespeichert sind, wenn in den Zustand STR eingetreten wird, einschließlich der Objekte wie etwa des Prozessorkontexts, wenn dieser gespeichert ist. Die Speichervorrichtungen führen in dem Zustand STR eine Selbstauffrischung durch, so dass keine weiteren Daten verloren gehen.
  • Als nächstes wird in dem Block 1040 der Taktgenerator gestartet. Die richtige Rambus Kanalfrequenz wird aus dem Register MCH MCHCFG (MCH 0BEh [11], in Block 1030 wiederhergestellt) gelesen. Nachdem sich der Takt stabilisieren konnte wird das MCH RAC initialisiert, wie dies in dem Block 1050 dargestellt ist. Dies kann erreicht werden, indem die MCH RAC Initialisierungs IOP ausgeführt wird. Zusätzlich kann das DRD Register mit 0000h geladen werden, und die MCH RAC Steuerregisterlade-IOP kann ausgeführt werden, um einen Bus in dem RAC zu initialisieren (wie dies in Bezug auf den Block 610 beschrieben ist).
  • Als nächstes wird eine Stromkalibrierung vorgenommen, wie dies in dem Block 1060 dargestellt ist. Dies kann so ausgeführt werden, wie dies in Block 642 und in Bezug auf 9 beschrieben worden ist. In der letzten Iteration, die durch den Block 940 angezeigt wird, kann hingegen das IS-Bit in dem RICM Register gesetzt werden, wobei der Beginn normaler Operationen unmittelbar nach Abschluss der Stromkalibrierung ermöglicht wird. Somit kann die Wiederaufnahme aus der STR-Sequenz deutlich schneller sein als die gesamte erforderliche Initialisierungssequenz, wenn das System zuerst eingeschaltet bzw. hochgefahren wird, da die Kanal-Levelization, die SPD-Abfrage, die ID-Zuweisung und eine Reihe anderer Initialisierungsoperationen weggelassen werden können.
  • Offenbart werden somit ein Verfahren und eine Vorrichtung zur Wiederherstellung eines Speichervorrichtungskanals beim Verlassen eines Niederleistungszustands. Vorstehend wurden bestimmte Ausführungsbeispiele beschrieben und in den beigefügten Zeichnungen dargestellt, wobei hiermit festgestellt wird, dass diese Ausführungsbeispiele ausschließlich Veranschaulichungszwecken dienen und den Umfang der Erfindung nicht einschränken, und wobei die vorliegende Erfindung nicht auf die spezifischen dargestellten und beschriebenen Konstruktionen und Anordnungen beschränkt ist, da dem Durchschnittsfachmann auf dem Gebiet beim Lesen dieser Offenbarung verschiedene weitere Modifikationen ersichtlich werden.

Claims (15)

  1. Verfahren, das folgendes umfasst: das Speichern (646) einer Mehrzahl von Speicherinitialisierungswerten aus einer Mehrzahl von Speicherplätzen (510) in einer Speichersteuereinheit (500) in einem Speicher (590), der Werte in einem Ausschaltzustand erhält, wobei die Mehrzahl von Speicherinitialisierungswerten für einen Zugriff auf einen Systemspeicher (560, 565, 570) erforderlich ist; das Eintreten (1000) in den Ausschaltzustand; das Zurückschreiben (1030) der Mehrzahl von Speicherinitialisierungswerten an die Mehrzahl von Speicherplätzen (510) in der Speichersteuereinheit (500), wenn der Ausschaltzustand verlassen wird; das Ausführen (1060) einer Routine zur Ableitung von einem oder mehreren zusätzlichen Speicherinitialisierungswerten als Reaktion auf das Verlassen des Ausschaltzustands.
  2. Verfahren nach Anspruch 1, wobei das Eintreten (1000) in den Ausschaltzustand das Eintreten in einen Wartezustand in einem Direktzugriffsspeicher.
  3. Verfahren nach Anspruch 1, wobei das Speichern (646) der Mehrzahl von Initialisierungswerten das Speichern der Mehrzahl von Initialisierungswerten in einem Speicher (590) mit Batteriesicherung umfasst.
  4. Verfahren nach Anspruch 1, wobei das Speichern (646) der Mehrzahl von Initialisierungswerten folgendes umfasst: das Speichern eines Zeitsteuerungs-Registerwertes in dem Speicher (590), der Werte während dem Ausschaltzustand aufrechterhält, wobei der Zeitsteuerungs-Registerwert Zeitsteuerungswerte für eine Mehrzahl von Speicherbausteinen (560, 565, 570) anzeigt, die mit der Speichersteuereinheit (500) gekoppelt sind.
  5. Verfahren nach Anspruch 1, wobei das Speichern (646) der Mehrzahl von Initialisierungswerten folgendes umfasst: das Speichern des Speicherbaustein-Steuerregisterwertes in dem Speicher (590), der Werte während dem Ausschaltzustand aufrechterhält, wobei der Speicherbaustein-Steuerregisterwert ein Pool-Operations-Auswahlfeld, ein Speicherübertragungs-Hub-Präsenzfeld und ein Aperturzugangs-Freigabefeld aufweist.
  6. Verfahren nach Anspruch 1, wobei das Speichern (646) der Mehrzahl von Initialisierungswerten folgendes umfasst: das Speichern eines Seitenrichtlinienwertes in dem Speicher (590), der Werte während dem Ausschaltzustand aufrechterhält.
  7. Vorrichtung, die eine Hauptspeicher-Steuerlogik (500) umfasst, gekennzeichnet durch: eine Logik zum Speichern einer Mehrzahl von Speicherinitialisierungswerten aus einer Mehrzahl von Speicherplätzen (510) in der genannten Hauptspeicher-Steuerlogik in einem Speicher (590), der die Werte während einem Ausschaltzustand aufrechterhält, wobei die Mehrzahl von Speicherinitialisierungswerten für einen Zugriff auf einen Systemspeicher (560, 565, 570) erforderlich ist eine Logik zum Zurückschreiben der genannten Mehrzahl von Speicherinitialisierungswerten an die Mehrzahl von Speicherplätzen (510) in der Hauptspeicher-Steuerlogik (500), wenn der Ausschaltzustand verlassen wird; eine Logik zum Ableiten eines oder mehrerer zusätzlicher Speicherinitialisierungswerte als Reaktion auf das Verlassen des Ausschaltzustands.
  8. Vorrichtung nach Anspruch 7, wobei die genannte Logik zum Ableiten eines oder mehrerer zusätzlicher Speicherinitialisierungswerte eine Logik umfasst, um eine aktuelle Kalibrierungsoperation auszuführen.
  9. Vorrichtung nach Anspruch 8, wobei diese ferner eine Logik zum Ausführen von Kerninitialisierungsoperationen für eine Mehrzahl von Speicherbausteinen umfasst.
  10. Vorrichtung nach Anspruch 9, wobei die genannten Operationen ferner folgendes umfassen: das Starten (1040) eines Taktgenerators; das Ausführen einer Speicherschnittstellen-Initialisierungsoperation; und das Ausführen einer Kerninitialisierung für eine Mehrzahl von Speicherbausteinen.
  11. Vorrichtung nach Anspruch 7, wobei diese ferner folgendes umfasst: einen Systemhauptspeicher (560, 565, 570), der mit der Hauptspeicher-Steuerlogik (500) gekoppelt ist; einen Prozessor (595), der mit der Hauptspeicher-Steuerlogik gekoppelt ist.
  12. Vorrichtung nach Anspruch 11, wobei diese ferner folgendes umfasst: eine Eingabevorrichtung, die mit dem Prozessor und der Hauptspeicher-Steuerlogik gekoppelt ist.
  13. Vorrichtung nach Anspruch 11 oder 12, wobei diese ferner BIOS-Speicherinitialisierungsroutinen umfasst, die in einem nichtflüchtigen Speicher (585) gespeichert sind.
  14. Computerprogramm, das eine Computerprogrammcodeeinrichtung umfasst, die alle Schritte aus Anspruch 1 ausführen kann, wenn das Programm auf einem Computer ausgeführt wird.
  15. Computerprogramm nach Anspruch 14, wobei das Programm auf einem Medium ausgeführt wird.
DE69931653T 1998-11-03 1999-10-22 Verfahren und gerät zur wiederherstellung eines speichergerätekanals wenn ein niederspannungszustand verlassen wird Expired - Lifetime DE69931653T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US186049 1998-11-03
US09/186,049 US6230274B1 (en) 1998-11-03 1998-11-03 Method and apparatus for restoring a memory device channel when exiting a low power state
PCT/US1999/024755 WO2000026753A1 (en) 1998-11-03 1999-10-22 A method and apparatus for restoring a memory device channel when exiting a low power state

Publications (2)

Publication Number Publication Date
DE69931653D1 DE69931653D1 (de) 2006-07-06
DE69931653T2 true DE69931653T2 (de) 2007-06-14

Family

ID=22683455

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69931653T Expired - Lifetime DE69931653T2 (de) 1998-11-03 1999-10-22 Verfahren und gerät zur wiederherstellung eines speichergerätekanals wenn ein niederspannungszustand verlassen wird

Country Status (9)

Country Link
US (1) US6230274B1 (de)
EP (1) EP1127307B1 (de)
CN (1) CN1288530C (de)
AU (1) AU1221400A (de)
BR (1) BR9915827A (de)
DE (1) DE69931653T2 (de)
HK (1) HK1036862A1 (de)
TW (1) TW538342B (de)
WO (1) WO2000026753A1 (de)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6389505B1 (en) * 1998-11-19 2002-05-14 International Business Machines Corporation Restore tracking system for DRAM
TW425506B (en) * 1999-06-11 2001-03-11 Via Tech Inc Voltage switching device for suspending to RAM mode
US6636943B1 (en) * 1999-07-30 2003-10-21 Hewlett-Packard Development Company, L.P. Method for detecting continuity modules in a direct Rambus DRAM subsystem
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
US6633987B2 (en) * 2000-03-24 2003-10-14 Intel Corporation Method and apparatus to implement the ACPI(advanced configuration and power interface) C3 state in a RDRAM based system
US6691237B1 (en) * 2000-08-08 2004-02-10 Dell Products, L.P. Active memory pool management policies
US6535411B2 (en) 2000-12-27 2003-03-18 Intel Corporation Memory module and computer system comprising a memory module
US7058732B1 (en) * 2001-02-06 2006-06-06 Cypress Semiconductor Corporation Method and apparatus for automatic detection of a serial peripheral interface (SPI) device memory size
US7017052B2 (en) * 2001-11-16 2006-03-21 Lenovo Pte. Ltd. Method and system for reducing boot time for a computer
US7000133B2 (en) * 2002-03-22 2006-02-14 Intel Corporation Method and apparatus for controlling power states in a memory device utilizing state information
US7284136B2 (en) * 2003-01-23 2007-10-16 Intel Corporation Methods and apparatus for implementing a secure resume
DE102004032237A1 (de) * 2004-07-02 2006-01-26 Infineon Technologies Ag Konfiguration von Bauelementen bei einem Übergang von einem Niedrigleistungs-Betriebsmodus in einen Normalleistungs-Betriebsmodus
US7966511B2 (en) 2004-07-27 2011-06-21 Intel Corporation Power management coordination in multi-core processors
US7664970B2 (en) 2005-12-30 2010-02-16 Intel Corporation Method and apparatus for a zero voltage processor sleep state
WO2006057049A1 (ja) 2004-11-26 2006-06-01 Kabushiki Kaisha Toshiba カードおよびホスト機器
CN100371858C (zh) * 2005-02-24 2008-02-27 英业达股份有限公司 一种存储器电源备援系统
CN101539771B (zh) * 2008-03-21 2012-09-19 鸿富锦精密工业(深圳)有限公司 主设备对从设备的自动定址系统
CN102272734B (zh) * 2009-01-05 2014-09-10 马维尔国际贸易有限公司 使用非易失性存储器设备用于休眠或挂起的方法和系统
US8117428B2 (en) * 2009-06-04 2012-02-14 Texas Instruments Incorporated Apparatus and method for automatically saving and restoring pad configuration registers implemented in a core power domain
JP5150591B2 (ja) 2009-09-24 2013-02-20 株式会社東芝 半導体装置及びホスト機器
JP5674919B2 (ja) * 2011-03-04 2015-02-25 ルネサスエレクトロニクス株式会社 電源瞬停による不揮発性メモリの誤動作を防止する半導体装置
WO2012126345A1 (zh) * 2011-03-23 2012-09-27 联想(北京)有限公司 计算机的启动方法、启动装置、状态转换方法和状态转换装置
IN2012DE00977A (de) * 2012-03-30 2015-09-11 Intel Corp
TWI459400B (zh) * 2012-04-17 2014-11-01 Phison Electronics Corp 記憶體儲存裝置、及其記憶體控制器與電源控制方法
US9424896B2 (en) * 2012-06-22 2016-08-23 Nxp B.V. Method and system for fast initialization of a memory unit
US9535483B2 (en) * 2012-12-19 2017-01-03 Intel Corporation Adaptively disabling and enabling sleep states for power and performance
JP6524618B2 (ja) * 2013-09-09 2019-06-05 株式会社リコー 電子機器、制御方法およびプログラム
TWI512623B (zh) * 2013-12-26 2015-12-11 Phison Electronics Corp 休眠模式啓動方法、記憶體控制電路單元及儲存裝置
US9785223B2 (en) * 2014-12-25 2017-10-10 Intel Corporation Power management in an uncore fabric
TWI569144B (zh) * 2015-02-02 2017-02-01 慧榮科技股份有限公司 資料儲存裝置及其斷電事件判斷方法
DE102015226837A1 (de) * 2015-12-30 2017-07-06 Dialog Semiconductor B.V. Initialisierung von Speicher in einem Computersystem
EP3206208B1 (de) * 2016-02-15 2021-01-20 Wipro Limited System und verfahren zur speicherinitialisierung einer integrierten schaltung
US10452561B2 (en) 2016-08-08 2019-10-22 Raytheon Company Central processing unit architecture and methods for high availability systems
CN106951026B (zh) * 2017-03-06 2019-06-28 南京国电南自电网自动化有限公司 一种基于单时钟系统的夏令时实现方法
US11664062B2 (en) * 2020-07-24 2023-05-30 Advanced Micro Devices, Inc. Memory calibration system and method
US11417370B2 (en) 2020-08-12 2022-08-16 Taiwan Semiconductor Manufacturing Company, Ltd. Memory device

Family Cites Families (8)

* 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
US4994934A (en) * 1989-12-01 1991-02-19 Abb Power T & D Company Inc. Microcomputer based reclosing relay
US5204964A (en) * 1990-10-05 1993-04-20 Bull Hn Information Systems Inc. Method and apparatus for resetting a memory upon power recovery
US5355490A (en) * 1991-06-14 1994-10-11 Toshiba America Information Systems, Inc. System and method for saving the state for advanced microprocessor operating modes
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

Also Published As

Publication number Publication date
AU1221400A (en) 2000-05-22
CN1332863A (zh) 2002-01-23
EP1127307A1 (de) 2001-08-29
HK1036862A1 (en) 2002-01-18
TW538342B (en) 2003-06-21
WO2000026753A1 (en) 2000-05-11
US6230274B1 (en) 2001-05-08
EP1127307B1 (de) 2006-05-31
CN1288530C (zh) 2006-12-06
BR9915827A (pt) 2001-08-14
EP1127307A4 (de) 2003-02-26
DE69931653D1 (de) 2006-07-06

Similar Documents

Publication Publication Date Title
DE69931653T2 (de) Verfahren und gerät zur wiederherstellung eines speichergerätekanals wenn ein niederspannungszustand verlassen wird
DE69937808T2 (de) Verfahren und vorrichtung zur konfiguration und initialisierung einer speichervorrichtung und eines speicherkanals
US6532526B2 (en) Method and apparatus for configuring a memory device and a memory channel using configuration space registers
DE60031404T2 (de) Verfahren und vorrichtung zur dynamischen änderung der grössen von pools, die die leistungsaufnahme von speichern steuern
DE69817696T2 (de) Warmaustausch von gespiegeltem Nachschreib-Cachespeicher
DE102011014587B4 (de) Schneller Austritt aus Selbstauffrischungszustand eines Speichergeräts
DE69233465T2 (de) Gerät und Verfahren zum Unterbrechen und Wiederaufnehmen von Software auf einem Rechner
DE69836437T2 (de) Speichersystem mit speichermodul mit einem speichermodul-steuerbaustein
DE102004034760B4 (de) Auffrischsteuerverfahren, Speichersteuerschaltung und Chipprodukt
CN102906717B (zh) 对管理控制器的存储器子系统进行初始化
EP1744236B1 (de) Konfiguration von Bauelementen bei einem Übergang von einem Niedrigleistungs-Betriebsmodus in einen Normalleistungs-Betriebsmodus
DE4026912A1 (de) Computersystem
DE102007003179A1 (de) Verfahren zum Systembooten mit Direktspeicherzugriff bei einer neuen Speicherarchitektur
WO2016003559A1 (en) Techniques to communicate with a controller for a non-volatile dual in-line memory module
DE112009004900T5 (de) Vertagen von Speicheroperationen zum Reduzieren von Leselatenz in Speicherfeldern
DE10159247A1 (de) Strommanagementfehlerstrategie für Kraftfahrzeugmultimediasysteme
DE3620858C2 (de)
DE102008028327A1 (de) Speicherauffrischsystem und -Verfahren
DE112004001887T5 (de) Optimierung der SMI-Handhabung und -Initialisierung
DE102017124188A1 (de) Verfahren und Vorrichtung zum Steuern eines Speichersystems zum Zwecke eines sicheren Herunterfahrens eines flüchtigen Speichers eines Hosts
DE102007031271A1 (de) Steuerprotokoll und Signalisierung in einer neuen Speicherarchitektur
DE10315028B4 (de) Backupspeichersteuereinheit mit reduziertem Stromverbrauch
DE112004002181T5 (de) Verfahren und Schaltungskonfiguration zum Auffrischen von Daten in einem Halbleiterspeicher
EP1225590A2 (de) Stossbetriebzugriffspeichersystem
EP1197854A2 (de) Verfahren zum Starten einer Datenverarbeitungsanlage sowie zugehörige Komponenten

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