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