-
ALLGEMEINER STAND DER TECHNIK
-
TECHNISCHES GEBIET
-
Die
vorliegende Offenbarung betrifft Buskommunikationen mit Speichereinrichtungen,
insbesondere eine Kommunikation von Speichersystemparametern und
Kennlinien über
einen Systemspeicherbus.
-
STAND DER TECHNIK
-
Die
Temperatur eines Halbleiterspeichers, wie z.B. eines RAM (Schreib-/Lesespeichers)
wird hauptsächlich
von seiner Aktivitätsstufe
(der Rate von Lese- und Schreibvorgängen in den Speicherzellen)
und seiner Umgebung bestimmt. Wenn die Temperatur zu hoch wird,
können
die im Speicher gespeicherten Daten beschädigt werden oder verloren gehen.
Bei hohen Temperaturen kann zudem der Energieverbrauch zunehmen.
-
Bei
zunehmender Temperatur verliert der Speicher außerdem schneller an Ladung.
Wenn der Speicher Ladung verliert, verliert er die Daten, die in seinen
Speicherzellen gespeichert waren. RAM-Chips weisen Selbstauffrischungsschaltungen auf,
die die verlorene Ladung in regelmäßigen Intervallen wiederherstellen.
Mit zunehmender Temperatur muß die
Selbstauffrischungsrate erhöht
werden, um einen Datenverlust zu verhindern.
-
Um
die Auffrischungsraten niedrig zu halten und eine Beschädigung des
Speichers oder einen Datenverlust zu vermeiden, müssen einige
Informationen zur Speichertemperatur bekannt sein. Je genauer die
Temperaturinformation, desto warmer darf der Speicher werden, und
desto niedriger kann die Auffrischungsrate ohne das Risiko eines
Datenverlustes sein. Wenn die Temperaturinformation unzuverlässig oder
ungenau ist, läuft
der Speicher mit einer geringeren Zugriffsrate oder einer höheren Auffrischungsrate
als notwendig, um eine Toleranz für Fehler bereitzustellen. Mit
anderen Worten, durch Erhöhen
der Genauigkeit kann der Schutzbereich zur Temperatursteuerung reduziert
werden. So läßt sich die
Speicherleistung steigern. Eine genaue Temperaturinformation kann
auch dazu benutzt werden, Gebläse
und andere Wärmesteuerungen
zu steuern.
-
Ein
Speicher ist häufig
in Modulen untergebracht, die mehrere ähnliche oder identische IC-(integrierte Schaltung)-Chips
enthalten, z.B. DRAM-(dynamische Schreib-/Lesespeicher)-Chips. Die
Temperatur jedes Chips kann unterschiedlich sein, abhängig von
seinem Ausnutzungsniveau, der verfügbaren Kühlung oder seinen eigenen besonderen
Eigenschaften. Andere Einrichtungen am Speichermodul können ebenfalls
unterschiedliche Temperaturen aufweisen. Um wirksam zu sein, sollte
die Temperaturinformation einem System zugeführt werden, das Parameter des
Speichers einstellt, z.B. Datenübertragungsraten,
Taktraten, Wärmesteuerungssysteme wie
z.B. Gebläse,
und die Selbstauffrischungsrate.
-
Um
alle Aspekte eines solchen Speichermoduls genau zu überwachen,
müssen
kostspielige Ressourcen verwendet werden, um die gesamte Temperaturinformation
an eine Einrichtung zu übertragen,
die die Information interpretieren kann und, bei Bedarf, das Durchführen einer
Maßnahme
veranlassen kann. Je größer die
Zahl der Temperaturmessungen ist, und je häufiger diese erfaßt werden,
desto mehr Ressourcen werden benötigt,
um die Nachfrage zu erfüllen.
Es liegen außerdem
zahlreiche andere Systemparameter und Kennlinien vor, die vom Speicher übermittelt
werden müssen,
z.B. zur Fehlerdetektion, Sicherheit, Ausnutzung usw. Die existierenden Übermittlungsressourcen,
die dazu benutzt werden, den Systemspeicher mit einer Speichersteuerung
zu verbinden, werden benutzt, um Daten zu senden, die aus den Speicherbanken
ausgelesen und in sie hineingeschrieben werden. Weitere zusätzliche
Schaltungen oder Übermittlungsschnittstellen
können
die Kosten des Speichermoduls erheblich steigern.
-
KURZE BESCHREIBUNG DER FIGUREN
-
Die
verschiedenen Vorteile der Ausführungsformen
der vorliegenden Erfindung werden Fachleuten durch die Lektüre der nachfolgenden
Beschreibung und der beiliegenden Ansprüche deutlich, sowie durch Bezugnahme
auf die folgenden Figuren, wobei:
-
1 ein
Blockdiagramm eines Abschnitts eines Computersystems mit einem Speichermodul und
einer Speichersteuerung gemäß einer
Ausführungsform
der Erfindung ist;
-
2 ein
Prozeßablaufdiagramm
zum Senden von Befehlen gemäß einer
Ausführungsform
der Erfindung ist;
-
3 ein
Prozeßablaufdiagramm
zum Senden von Temperaturwerten gemäß einer Ausführungsform
der Erfindung ist;
-
4 ein
Blockdiagramm einer Speichereinrichtung gemäß einer Ausführungsform
der Erfindung ist;
-
5 ein
Blockdiagramm einer alternativen Speichereinrichtung gemäß einer
Ausführungsform der
Erfindung ist; und
-
6 ein
Blockdiagramm eines Computersystems ist, das dazu geeignet ist,
Ausführungsformen
der vorliegenden Erfindung zu implementieren.
-
DETAILLIERTE BESCHREIBUNG
-
1 zeigt
eine Speichereinheit 10, die mehrere Speichereinrichtungen 12 (12a bis 12n)
und ein Temperaturmessungsmodul 14 aufweist, das an die
Speichereinrichtungen 12 gekoppelt ist. Die Speichereinheit 10 kann
ein SO-DIMM (Small Outline Dual In-Line Memory Module) des Typs
sein, der typischerweise in Notebook-PCs benutzt wird. Das SO-DIMM 10 kann
eine 240-Pin-, 144-Pin- oder 72-Pin-Konfigurierung aufweisen, die
64-Bit-Übertragungen
unterstützt,
oder eine andere von verschiedenen möglichen Pin-Konfigurierungen
für unterschiedliche Übertragungsraten,
die einer DIMM-(Dual In-Line Memory Module)-Struktur oder einer
anderen Struktur entsprechen. Die Speichereinheit 10 kann
alternativ ein Mikro-DIMM oder ein DIMM voller Größe sein,
das häufiger
in Desktop-PCs benutzt wird. Ferner können die Speichereinrichtungen 12 SDRAM
(synchrone dynamische Schreib-/Lesespeicher)-Einrichtungen sein,
die relativ hohe Stromspitzentransienten aufweisen, und deshalb äußerst empfindlich
für Überhitzung
sein können.
Ausführungsformen
der vorliegenden Erfindung können
jedoch auf jeden Typ von Speichereinrichtung angewandt werden, der
temperaturempfindlich ist.
-
Die
Speichereinheit weist mehrere SDRAM-Einrichtungen 12a, 12b, 12c, 12d auf.
Obwohl vier SDRAM-Einrichtungen gezeigt sind, kann auch eine größere oder
kleinere Anzahl von Speichereinrichtungen benutzt werden. Ein Temperaturmessungsmodul 14 mißt entweder
direkt oder indirekt eine interne Temperatur von einer oder mehreren
der Speichereinrichtungen 12. Das Temperaturmessungsmodul
kann an einer oder an mehreren verschiedenen Stellen Wärmesensoren
benutzen. In einer Ausführungsform
weist jeder DRAM seinen eigenen unabhängigen Temperatursensor auf,
so daß kein
gemeinsamer Temperatursensor für
alle DRAMs vorliegt. In einer anderen Ausführungsform sind auf jedem DRAM
einige Abschnitte des Temperatursensors angeordnet, und andere Abschnitte
in einer gemeinsamen Einheit. Obwohl die vorliegende Erfindung im
Zusammenhang eines DIMM beschrieben wird, der einen Satz von DRAMs
trägt,
kann sie auf eine breite Spanne anderer Konfigurierungen angewandt
werden. Beispielsweise können
ein oder mehrere DRAMs direkt an einen Bus gekoppelt sein, ohne
ein Modul zu benutzen, das sie trägt, oder die DRAMs können von
einer anderen Einrichtung als einem DIMM getragen werden.
-
Die
Speichereinheit 10 ist über
einen Speicherbus 24 an einen MCH (Memory Controller Hub – Speichersteuerungshub) 22 gekoppelt,
und eine SPD-(Serial Presence Detect)-Einrichtung 18 der
Speichereinheit ist über
einen SM-Bus 28 an einen ICH (Input/Output Controller Hub – Eingabe-/Ausgabesteuerungshub) 34 gekoppelt.
Die SPD speichert Konfigurierungsinformation (z.B. Modulgröße, Datenbreite,
Geschwindigkeit und Spannung), die beim Systemstart von dem Basis-Eingabe-/Ausgabesystem
(Basic Input/Output System – BIOS, nicht
dargestellt) benutzt wird. Es überträgt Daten über einen
Systemverwaltungsbus (SM-Bus) 28, der an die SPD-Einrichtung 18 gekoppelt
ist. Der Wärmesensor 14 kann
in die SPD integriert sein, oder als ein separates Bauteil implementiert
sein. In einem Beispiel ist der Systemverwaltungsbus 28 ein
I2C-(Inter Integrated Circuit)-Bus (z.B. I2C-Spezifikation Version
2.1, Philips Semiconductors, Januar 2000), der physikalisch aus
zwei aktiven Leitungen und einer Masseverbindung bestehen kann.
Die aktiven Leitungen, die als serielle Datenleitung (Serial Data
Line – SDA)
und serielle Taktleitung (Serial Clock Line – SCL) bezeichnet werden, sind
beide bidirektional.
-
Der
Systemverwaltungsbus 28 kann auch unter einem SM-Bus-System
arbeiten (z.B. SM-Bus-Spezifikation,
Version 2.0, SBS Implementers Forum, August 2000). Eine SM-Busschnittstelle benutzt 12C als
Hauptleitung, und ermöglicht
es den Bauteilen, Nachrichten hin- und herzuleiten, anstatt einzelne
Steuerungsleitungen zu aktivieren. Ein solcher Ansatz ist besonders
für einen
Systemspeicher in der Architektur eines persönlichen Computers nützlich.
-
Der
ICH ist an den MCH und außerdem
an eine CPU (Zentraleinheit) 36 gekoppelt, die Daten an den
Systemspeicher 10 sendet und von diesem abruft. In der
dargestellten Ausführungsform sendet
der Systemspeicher Speicherdaten von dem MCH und empfangt Daten
von diesem, und der MCH steuert die Lese- und Schreibzyklen des
Speichers, sowie seine Auffrischungsraten. Ein Systemspeicherbus 24,
der den MCH und den Systemspeicher verbindet, kann Befehle und Adressen
sowie Daten tragen, die aus dem Speicher abgelesen oder in diesen
geschrieben werden.
-
Der
ICH übermittelt
gespeicherte Daten vom Systemspeicher an andere Einrichtungen (nicht
dargestellt). Eine oder mehrere dieser drei Einrichtungen kann zu
einer einzigen Einheit zusammengefaßt werden. Der MCH kann in
die CPU integriert werden, oder der ICH und die Funktionen aller
drei Einrichtungen können
in einem einzelnen Chip kombiniert werden. Die gemessene Temperatur
vom ICH kann an den MCH oder die CPU gesendet werden, die dann die
Auffrischungsrate anpassen oder andere Maßnahmen treffen kann.
-
Es
liegen eine Reihe verschiedener Standards für Speichereinrichtungen und
für die
Verbindungen vor, die es ermöglichen,
die Speichereinrichtungen auszulesen und zu beschreiben. Ein solcher Standard
ist der Standard JEDEC Solid State Technology Association für DDR2 SDRAM
JESD79-2A (Januar 2004). Dieser Standard weist den verschiedenen
Pins des Kommunikationsbusses Funktionen zu, und legt Werte fest,
die bei Übermittlungen über den
Bus zu benutzen sind. Andere Standards können in ähnlicher Weise Funktionen und
Werte zuweisen. Der oben erwähnte
DDR2 SDRAM-Standard weist die Verbindungen eines DRAM-Chip wie folgt
zu:
CK Takteingang
CKE Taktaktivierung
CS Chipauswahl:
CS dient der externen Rangauswahl
ODT Terminierung auf dem
Chip
RAS, CAS, WE Befehlseingänge: Definiert den eingegebenen
Befehl.
DM (UDM), (LDM) Eingabedatenmaske
BA0 – BA2 Bankadreßeingänge
A0 – A15 Adreßeingänge: Stellt
die Reihen- und Spaltenadresse für
Befehle bereit.
DQ Dateneingabe/-ausgabe für den bidirektionalen DAtenbus.
DQS
Data Strobe
NC Keine Verbindung: Es liegt keine interne elektrische
Verbindung vor.
VDDQ DQ-Stromversorgung
VSSQ DQ-Masse
VDDL
DDL-Stromversorgung
VSSDL DLL-Masse
VDD Stromversorgung
VSS
Stromversorgung Masse
VREF Referenzspannung
-
Mit
Hilfe dieser Pins kann eine Reihe unterschiedlicher Befehle und
Funktionen bereitgestellt werden. Dazu können Bankaktivierung, Lese-
und Schreibzugriffsmoden, Vorladung, automatische Vorladung, Auffrischung,
Selbstauffrischung, Ausschalten, asynchrone CKE-niedrig-Ereignisse, Veränderungen
der Eingangstaktfrequenz während
eines Ausschaltens mit Vorladung, Nicht-Betriebsbefehle und Befehle
zur Deselektierung zählen.
Verschiedene Pins oder Steckverbindungen, die oben beschrieben wurden,
werden für
unterschiedliche Befehle benutzt. Bei Befehlen zur Auffrischung
(Refresh), Selbstauffrischung (Self-Refresh), Ausschaltung und Taktung
werden beispielsweise keine Adreßleitungen benutzt. Bei einigen
Befehlen, wie z.B. den Lese- und Schreibmoden, werden die Datenleitungen
benutzt, während
die Datenleitungen für
andere Befehle, wie z.B. die Bankaktivierung und die Wiederauffrischung, nicht
benutzt werden.
-
In
einer Ausführungsform
der Erfindung können
die DRAM-Datenbus-Adreßleitungen
dazu benutzt werden, während
eines Auffrischungszyklus Befehle zu initiieren, und die DRAM-Datenbusausgänge können dazu
benutzt werden, während
des Auffrischungszyklus Einrichtungsinformation zu liefern. Auffrischungszyklen
werden periodisch ausgeführt,
um den Inhalt des Speichers zu bewahren, wobei jedoch die Speicherzellen
während
des Zyklus keine Daten zum Datenbus liefern. Diese verfügbare, ungenutzte
Bandbreite kann dazu benutzt werden, andere Arten von Information
von jedem DRAM bereitzustellen.
-
Die
verfügbare
Datenbusbandbreite kann dazu benutzt werden, es jedem DRAM zu ermöglichen,
Temperaturinformation bereitzustellen, ohne neue Signale oder neue
DRAM-Befehle hinzuzufügen,
die Befehlsbandbreite verbrauchen. Andere Arten von DRAM-Einrichtungsinformation
können ebenfalls
auf Befehl versendet werden, z.B. Registerprogrammierung. Beispielsweise
wird bei aktuellen DRAM-Standards wie DDR, DDR2 und DDR3 ein automatischer
Auffrischungszyklus benutzt, um die DRAM-Speicherzellen anzuweisen,
eine Auffrischung durchzu führen.
Der Befehl sendet keine anderen Informationen oder Befehle an die
DRAMs, und die DRAMs liefern keine Information zurück an die
Speichersteuerung.
-
Indem
die DRAM-Adreßleitungen
mit zusätzlicher
Information versehen werden, können
weitere Befehle zusammen mit dem Befehl zur automatischen Auffrischung
an die DRAMs bereitgestellt werden. Dieser Befehl kann dazu benutzt
werden, anzuzeigen, daß eine
bestimmte Art von Einrichtungsinformation unter Benutzung eines
geeigneten Zeitschlitzes von der DRAM-Einrichtung am Datenbus ausgeführt werden
soll. Die Art der bereitzustellenden Information kann festgelegt
werden, indem einzelne Adreßsignale
auf eine logische Null gesetzt werden, oder während der Lieferung des Befehls
zur automatischen Auffrischung. Ein ähnlicher Ansatz kann neben
der automatischen Auffrischung für
andere Befehle benutzt werden, die bestimmte Leitungen nicht anderweitig
verwenden müssen.
-
Betrachtet
man das Beispiel des Befehls zur automatischen Auffrischung genauer,
stellt dieser Befehl keine Bedingungen hinsichtlich der Benutzung
der Leitungen BA00 bis 02 oder A0 bis A15. Mit anderen Worten, diese
Leitungen können
auf jeden beliebigen Wert gesetzt werden, ohne den Befehl zur automatischen
Auffrischung (Refresh) zu beeinflussen. In einem Beispiel sendet
die Speichersteuerung den Befehl zur automatischen Auffrischung,
und setzt dann die Adreßleitung
A10 auf einen bestimmten Wert. Die Adreßleitung A10 kann dazu definiert
sein, den DRAMs mitzuteilen, ob sie eine normale automatische Auffrischung
durchführen
sollten, oder Wärmedaten
an den Datenbus senden sollten, bevor sie die automatische Auffrischung
durchführen.
Wenn also A10 beispielsweise „0" ist, können die
DRAMs den Befehl zur automatischen Auffrischung als normal betrachten.
Wenn A10 „1" ist, senden die
DRAMs zunächst
Wärmedaten
an den Datenbus für
die Speichersteuerung, um Daten abzurufen, und führen dann die automatische
Auffrischung durch. Auf diese Weise kann ein Wärmedatenlesebefehl an der Adreßleitung
initiiert werden.
-
Durch
Benutzen von A10, um die DRAMs anzuweisen, Wärmedaten auszulesen, kann die
Speichersteuerung die Wärmedaten
abrufen, ohne die Lese- und Schreibzugriffszeiten für den Speicher
zu beeinflussen. Außerdem
wird ungenutzte Speicherbuskapazität ausgenutzt, was die Notwendigkeit
eines anderen oder weiteren Busses für Temperaturinformation ausräumt. Wie
oben erwähnt,
können,
obwohl der Befehl zur automatischen Auffrischung im Kontext von
DDR-Standards als Beispiel benutzt wird, für diesen und für andere
Typen von Speicherstandard andere Befehle zu diesem Zweck verwendet
werden. Die zusätzlichen
Befehle können
aktiviert werden, indem ein spezifisches Modusregisterbit in einem
DRAM mit Hilfe des Befehls Modus Register Set gesetzt wird. Der
Befehl Modus Register Set ist in den DDR-Speicherstandards vorgesehen, die
oben erwähnt
wurden.
-
Nachdem
ein Befehl zum Bereitstellen von Information von den Speichereinrichtungen
empfangen wurde, kann die angeforderte Information auf ganz unterschiedlichen
Wegen zurückgesendet
werden. Für
die angeforderte Information können
eine spezielle Steckverbindung oder ein Bus vorgesehen sein, oder
die Information kann entsprechend einem Protokoll oder Austausch,
der bereits Teil des Kommunikations- und Steuerungsstandards ist,
zusammen mit anderen Informationen bereitgestellt werden. In einer
Ausführungsform
wird die Information in direkter Reaktion auf den Empfang der Anfrage
an den Befehlsleitungen über
zugehörige
Datenleitungen bereitgestellt. Bei dem DDR-Standard-Speicherbus
ist ein bidirektionaler Datenbus (DQ) vorgesehen. Temperaturinformation
von jedem DRAM kann in derselben Weise oder in ähnlicher Weise, wie gespeicherte
Speicherdaten an die Speichersteuerung gesendet werden, über den
DQ-Bus direkt an die Speichersteuerung gesendet werden.
-
Speicherdatenbusse
neuerer technischer Bauart lassen es zu, eine große Menge
an Temperaturdaten für
jede Speichereinrichtung oder jeden DRAM-Chip zu versenden. Die
Temperaturdaten können
für eine
einzige Temperatur, mehrere Temperaturen, die zu verschiedenen Zeitpunkten
gemessen wurden, mehrere Temperaturen, die an unterschiedlichen
Stellen auf dem Chip gemessen wurden, oder für jede beliebige andere Temperatur
benutzt werden. Wenn der Standard-DQ-Bus für DDR3-Speicher benutzt wird,
sendet jeder DRAM 4 Bits pro Takt an jedem seiner 64 Pins. Während eines
Burst-Zyklus liegen 4 Takte vor, weshalb 64 8-Bit-Bytes an Daten von
jedem DRAM empfangen werden können.
64 Bytes können
benutzt werden, um mehrere Temperaturmessungen mit äußerst hoher
Genauigkeit darzustellen. Da DRAM-Einrichtungen mit unterschiedlichen
Datenbusbreiten (×4, ×8, ×16) angeboten
werden, kann es möglich
sein, mehr als ein Feld an Einrichtungsinformation zur Bereitstellungen
für Einrichtungen
mit größeren Datenbusbreiten
auszuwählen. Beispielsweise
stellt eine ×8-Einrichtung
doppelt so viele Daten in einem einzigen Zyklus bereit wie eine ×4-Einrichtung,
weshalb zwei separate 8-Bit-Datenfelder in derselben Zeit bereitgestellt
werden könnten,
mit der ein einziges 8-Bit-Feld von einer ×4-Einrichtung bereitgestellt
wird.
-
Bei
Single-Rank-Modulen wird die Information während jedes Taktes in einem
Halbbyteformat geliefert. Bei den Standards für DDR3 weist ein Burst für die meisten
mobilen und Desktop- Anwendungen 8
Takte auf, was bis zu 8 Halbbytes von Daten mit einem Halbbyte pro
Takt zum Darstellen der Temperatur des Wärmesensors an jedem DRAM zuläßt. Bei
4 Bits pro Halbbyte werden unter Benutzung standardisierter Bursts
und der zugeteilten Anzahl von Pins für verschiedene Speicherkonfigurierungen
32 Bits bereitgestellt, wodurch immer noch eine hohe Genauigkeit
möglich
ist. Bei Double-Rank-Modulen liegen doppelt so viele separate DRAM-Einrichtungen vor. Dabei
sind immer noch 16 Bits an Temperaturdaten für jeden DRAM möglich, was über 65.000
Temperaturabstufungen ergibt. Alternativ kann die 64-Bit-Genauigkeit
aufrechterhalten werden, indem zwei Lesezyklen benutzt werden, oder
halb so viele DRAMs nach der Temperatur abgefragt werden. Andere
Variationen mit ähnlichen
Modifikationen sind ebenfalls möglich.
-
2 zeigt
einen verallgemeinerten Ablauf der Vorgänge zum Abrufen von Temperaturdaten
mit Hilfe eines Speicherbusses. In Block 2 wird an einem Speichermodul
am Systemspeicherbus ein erster Befehl empfangen. Bei dem ersten
Befehl kann es sich um einen von mehreren verschiedenen Befehlen handeln,
die nicht die gesamte Adreßleitung
benutzen. Diese Leitungen sind oben als Leitungen A0 bis A15 definiert.
Typischerweise sind diese Befehle beliebige Befehle, aber keine
Lese- oder Schreibbefehle. Bei der DDR-Befehlsstruktur ist ein solcher
Befehl der Befehl zur automatischen Auffrischung. Bei anderen Befehlsstrukturen
können
andere Befehle benutzt werden.
-
In
Block 3 wird ein zweiter Befehl zusammen mit dem ersten
Befehl empfangen. Wie oben beschrieben, kann der zweite Befehl unter
Benutzung von Leitungen wie z.B. Adreßleitungen, die nicht von dem
ersten Befehl benutzt werden, initiiert werden. Bei dem speziellen
Beispiel oben ist eine solche Leitung für den Befehl zur automatischen
Auffrischung die Leitung A10, wobei jedoch stattdessen auch andere
Leitungen benutzt werden können.
-
In
Block 4 entspricht das Speichermodul dem ersten Befehl,
indem es beispielsweise eine automatische Auffrischung durchführt, und
in Block 5 entspricht das Speichermodul dem zweiten Befehl,
indem es beispielsweise Temperaturwerte sendet. Diese Operationen
können
in jeder beliebigen Abfolge durchgeführt werden, abhängig von
der Beschaffenheit der Befehle. In dem Beispiel einer automatischen Auffrischung
und ausgelesener Temperaturwerte können die Temperaturwerte zuerst
gelesen werden, um eine schnellere Reaktion zu erhalten.
-
3 zeigt
Operationen, die durchgeführt werden
können,
um über
einen Systemspeicherbus Temperaturdaten an eine externe Einrichtung
bereitzustellen. Die Temperaturinformation kann in Reaktion auf
einen Befehl oder auf Basis interner Vorgänge oder Zeitabläufe bereitgestellt
werden. In Block 6 werden die Temperaturwerte von einem
Wärmesensorsystem
eines Speichermoduls an einen Speicherdatenlesepuffer des Speichermoduls
bereitgestellt. Dieser Datenlesepuffer kann eine Schnittstelle zum Speicherbus
bereitstellen. In Block 7 werden die Temperaturwerte von
dem Speicherdatenlesepuffer im Datenformat des Speicherbusses an
den Systemspeicherbus bereitgestellt. Dieses Format kann Datenhalbbytes
umfassen, die im Zuge von Datenlesebursts gesendet werden.
-
4 zeigt
ein Beispiel einer Speichereinrichtung, z.B. einen der DRAM-Chips 12 aus 1, die
so ausgebildet ist, daß sie
an einem Datenbus Temperaturinformation bereitstellt, wie es oben
in Bezug auf 2 und 3 beschrieben
wurde. In 4 weist die Speichereinrichtung 40 einen
Satz Speicherblöcke 41 auf.
Jeder Block weist einen Satz von Speicherbankarrays 42 zum
Speichern von Daten auf, Meßverstärker 44,
die an die Speicherarrays gekoppelt sind, um die gespeicherten Daten
auf Leseleitungen zu schicken, und I/O-(Eingabe/Ausgabe)-Verknüpfungslogik 46 zum Übertragen
der Daten aus dem DRAM-Chip heraus.
-
Wenn
gespeicherte Speicherdaten auf den Speicherbus 24 gelesen
werden, um sie an die Speichersteuerung zu senden, werden die gespeicherten Daten
von der I/O-Verknüpfungslogik
einem Multiplexer zugeführt,
der die Daten zu Halbbytes kombiniert, und auf einen Lesepuffer 50.
Wenn ein Lesebefehl 52 zum Multiplexer gepulst wird, werden
die Daten dem Puffer 50 zugeführt, von dem aus sie in einem
Leitungsverstärker 54 verstärkt und über den
Bus versendet werden. Der Puffer 50 weist DLLs (Delay Locked
Loops) und FIFO-(First In First Out)-Puffer auf, um die Eingangstaktung
der Datenimpulssignale anzupassen, und um eine Feineinstellung der
Taktung aller Ausgangssignale vorzunehmen. Der Puffer kann einen
Satz Verzögerungselemente
aufweisen, die dazu kalibriert sein können, sich an den Referenztaktgeber
anzupassen.
-
Ebenso
werden Daten von der Speichersteuerung, die in eine DRAM-Adresse
geschrieben werden sollen, in der Speichereinrichtung von einem
Verstärker 56 verstärkt, der
an den Speicherbus gekoppelt ist, und einem Satz von Schreibspeichern 58 zugeführt. Aus
den Schreibspeichern werden die Daten der I/O-Verknüpfungslogik
des passenden Speicherblocks zugeführt.
-
Um
Temperaturmessungen anstelle gespeicherter Daten über den
Speicherbus zu versenden, kann ein Satz von Temperaturregistern 60 auf
denselben Multiplexer 48 an der Speichereinrichtung angewandt
werden, der die Daten von den DRAM-Speicherblöcken empfängt. Wenn ein Befehl zum Senden
von Temperaturdaten empfangen wird, werden die Temperaturregister
abgelesen und an den Multiplexer gekoppelt, der umschaltet, um gespeicherte
Temperaturmessungen anstelle gespeicherter Daten zu versenden. Die
Temperaturwerte können
dann dem Lesepuffer 50 zugeführt werden, und dann in derselben
Weise wie andere Daten auf den Speicherbus verstärkt werden. Indem die Temperaturdaten
dem Lesedatenpuffer zugeführt
werden, können
die existierende Taktung und Signallogik benutzt werden, die für Standarddatenvorgänge benutzt
werden. Dies vereinfacht die Speichereinrichtung und stellt sicher,
daß die
Temperaturmessungen zuverlässig übertragen
werden.
-
4 zeigt
auch eine vereinfachte Version eines Abschnitts des Temperaturmeßsystems
der Speichereinrichtung. In 4 erfaßt ein Temperatursensor-
und Steuerungsblock 62 Temperaturinformation von einer
oder mehreren Stellen der Einrichtung. In einer Ausführungsform
wird eine Temperatur von einem Sensor an jedem der DRAM-Blöcke gemessen.
Diese Temperaturen werden in Digitalwerte umgewandelt, die von dem
Temperatursensor- und Steuerungsblock 62 über den
Speicherbus 24 versendet werden können. Dieser Block kann außerdem die
Temperatur mit Schwellenwerten vergleichen, die in einem Schwellenwertregister 64 gespeichert
sind. Der Schwellenwertvergleich kann dazu benutzt werden, Flaggen
oder Alarme zu erzeugen, und für
andere Überwachungszwecke.
Die Schwellenwerte können
vorprogrammiert sein, von der Speichereinrichtung eingestellt werden,
von dem Speichermodul eingestellt werden, oder entfernt durch Befehle über den
Speicherbus eingestellt werden.
-
5 zeigt
ein anderes Beispiel für
eine Speichereinrichtung, z.B. einen DRAM-Chip, der dazu ausgebildet
ist, Temperaturinformation über
einen Datenbus bereitzustellen, wie oben unter Bezugnahme auf 4 beschrieben.
In 5 weist die Speichereinrichtung 70 einen
Satz Speicherblöcke 71 auf.
Jeder Block weist einen Satz von Speicherbankarrays 72 zum
Speichern von Daten auf, einen Satz von Meßverstärkern 74, die an die
Speicherarrays gekoppelt sind, um die gespeicherten Daten Leseleitungen
zuzuführen,
und I/O-(Eingabe/Ausgabe)-Verknüpfungslogik 76,
um die Daten aus dem DRAM-Chip heraus zu übertragen.
-
Gespeicherte
Speicherdaten werden aus einzelnen Speicherzellen 78 ausgelesen,
durchlaufen Isolationstransistoren 82, und gelangen zu
Verstärkern
der Meßverstärker-Arrays.
Die Isolati onstransistoren schützen
die Daten der einzelnen Speicherzellen davor, durch andere Aktivitäten in den
Verstärkern
oder andere Bauteilen beschädigt
zu werden. Sie werden von der I/O-Verknüpfungslogik aus den Meßverstärkern dem
Speicherbus 24 zugeführt, der
Daten an den Lesepuffer 90 sendet. Die Daten werden in
einem Leitungsverstärker 84 verstärkt und über den
Bus versendet. Daten, die in eine DRAM-Adresse geschrieben werden
sollen, werden von einem Verstärker 86,
der an den Speicherbus gekoppelt ist, in dem Speichermodul verstärkt, und
einem Satz Schreibpuffer 88 zugeführt. Von den Schreibpuffern
werden sie der I/O-Verknüpfungslogik des
passenden Speicherblocks zugeführt.
-
Die
Speichereinrichtung enthält
außerdem einen
Temperatursensor- und Steuerungsblock 92, der an Schwellenwertregister 94 und
Temperaturwertregister 90 gekoppelt ist. Wenn die Temperaturwertregister
ausgelesen werden sollen, werden sie auf einen Multiplexer 78 angewandt.
Dieser Multiplexer ist zwischen den einzelnen Speicherbitzellen
und der Meßverstärkerlogik
angeordnet, und kann umgeschaltet werden, um in ähnlicher Weise wie der Multiplexer 48 aus 4 entweder
gespeicherte Speicherdaten oder Temperaturwerte bereitzustellen.
Indem Temperaturdaten durch die Meßverstärker gesendet werden, und nicht
direkt an den Lesepuffer, wie in 4, können die
Vorteile der Meßverstärkerbauteile
und der I/O-Verknüpfungslogik
genutzt werden. Dies erhöht
die Zuverlässigkeit
der Temperaturübermittlungen
und reduziert die Duplizierung von Ausrüstung für die Temperaturdaten. In der
Konfigurierung aus 5 können Temperaturregister als
ein Teil der DRAM-Speicherarrays 72 ausgebildet sein. Die
Temperaturwerte können
in erweiterten Speicherzellen gespeichert werden, und es können spezielle
Adressen benutzt werden, um die Temperaturwerte an die I/O-Verknüpfungslogik 76 zu
senden. Die Beispiele aus 4 und 5 können für jede einzelne
Anwendung angepaßt
werden. Außerdem können Ausführungsformen
der vorliegenden Erfindung auf andere Typen von Speichereinrichtung
und Speichersystem angewandt werden.
-
6 zeigt
ein Beispiel eines Computersystems, das dazu geeignet ist, eine
Ausführungsform der
vorliegenden Erfindung zu implementieren. Ein MCH-Chip, eine Nordbrücke, oder
eine Host-Steuerung 663 bildet eine Schnittstelle zu einer
oder mehreren CPUs (Zentraleinheiten) 613, 615 mit
Speicher- und I/O-Einrichtungen, und kann eine breite Spanne an
Funktionen bereitstellen, z.B. erhöhte Leistung, Zuverlässigkeit,
Verfügbarkeit
und Bedienungsfreundlichkeit, Systemverwaltung und den Austausch
von CPUs im laufenden Betrieb. Der MCH kann I/O-Cluster, eine Speichersteuerung,
Snoop-Filter, und eine breite Spanne von Logik zum Bearbeiten von
Transaktionen aufweisen. Obwohl das Beispiel aus 6 einen
Mikropro zessor aufweist, der an einen MCH und einen ICH (Eingabe-/Ausgabe-Steuerungshub)
665 gekoppelt ist, können
der MCH oder der ICH oder beide oder jede Funktion dieser Chips
in den Mikroprozessoren enthalten sein. Der MCH und der ICH können auch
kombiniert werden, im Ganzen oder teilweise, innerhalb oder außerhalb
des Mikroprozessors.
-
In
dem Beispiel aus 6 weist der MCH 611 ein
Paar FSBs (Frontseitenbusse) auf, die jeweils an eine CPU oder einen
Prozessorkern 613, 615 gekoppelt sind. Es kann
jede beliebige Anzahl von CPUs und Chipsätzen benutzt werden. Die Nordbrücke empfängt über die
FSBs Lese-, Schreib- und Abrufbefehle von den Prozessorkernen, und
führt diese
aus. Die Nordbrücke
weist außerdem
einen Systemspeicherbus auf, z.B. Bus 24 aus 1,
zu Systemspeicher 667, z.B. DIMlMs (Dual Inline Memory
Modules), ähnlich
wie dem in 1 gezeigten, worin Befehle und
Daten gespeichert werden können,
und eine Schnittstelle zu einem ICH (Eingabe-/Ausgabe-Steuerungshub) 665.
-
Der
MCH weist außerdem
eine Schnittstelle auf, z.B. einen PCI-(Peripheral Component Interconnect)-Express,
oder AGP-(Accelerated Graphics Port)-Schnittstelle, um an eine Grafiksteuerung 641 anzukoppeln,
die wiederum Grafiken und möglicherweise
Audio an eine Anzeige 637 bereitstellt. Die PCI-Express-Schnittstelle
kann auch dazu benutzt werden, an andere Hochgeschwindigkeitseinrichtungen
anzukoppeln. In dem Beispiel aus 6 sind sechs ×4-PCI-Express-Spuren gezeigt.
Zwei Spuren sind mit einer TCP/IP-(Transmission Control Protocol/Internet
Protocol)-Offload-Maschine 617 verbunden, die mit Netz-
oder TCP/IP-Einrichtungen wie z.B. einer Gigabit-Ethernet-Steuerung 639 verbunden
sein kann. Zwei Spuren sind mit einem I/O-Prozessorknoten 619 verbunden,
der unter Benutzung von SCSI (Small Computer System Interface),
RAID (Redundant Array of Independent Disks) oder anderen Schnittstellen
Speichereinrichtungen 621 unterstützen kann. Zwei weitere Spuren
sind mit einem PCI-Übersetzerhub 623 verbunden,
der Schnittstellen zur Verbindung mit PCI-X-625 und PCI-Einrichtungen 627 unterstützen kann.
Die PCI-Express-Schnittstelle kann mehr oder weniger Einrichtungen
unterstützen
als hier gezeigt. Obwohl PCI-Express und AGP beschrieben sind, kann
der MCH zudem auch dazu ausgebildet sein, andere Protokolle und
Schnittstellen anstelle der beschriebenen zu unterstützen.
-
Der
ICH 665 bietet eine mögliche
Verbindung zu einer breiten Spanne unterschiedlicher Einrichtungen.
Für diese
Verbindungen können
allgemein etablierte Konventionen und Protokolle benutzt werden. Zu
den Verbindungen können
ein LAN-(Local Area Network)-Anschluß 669, ein USB-Hub 671,
und ein lokaler BIOS-(Basic Input/Output System)-Flash-Speicher 673 zählen. Ein
SIO-(Super Input/Output)-Anschluß 675 kann eine Verbindung
zu einer Frontplatte mit Knöpfen
und einem Bildschirm, einer Tastatur 679, einer Maus 681 und
Infraroteinrichtungen 685 wie z.B. IR-Lautsprechern oder
Fernbedienungssensoren bereitstellen. Der I/O-Anschluß kann auch Disketten-, Parallelanschluß- und Sertenanschlußverbindungen
unterstützen.
Alternativ können
eine oder mehrere dieser Einrichtungen von einem USB-, PCI- oder
anderen Typ von Bus oder Verbindung unterstützt werden.
-
Der
ICH kann auch einen IDE-(Integrated Device Electronics)-Bus oder
einen SATA-(Serial Advanced Technology Attachment)-Bus für Verbindungen
zu Laufwerken 687, 689 oder anderen großen Speichereinrichtungen
bereitstellen. Die Massenspeicherung kann Festplattenlaufwerke und
optische Laufwerke umfassen. So können beispielsweise Softwareprogramme,
Parameter oder Benutzerdaten auf einem Festplattenlaufwerk oder
anderen Laufwerk gespeichert sein. Ein PCI-(Peripheral Component
Interconnect)-Bus 691 ist an den ICH gekoppelt und ermöglicht es,
eine breite Spanne an Einrichtungen und Anschlüssen an den ICH zu koppeln.
Die Beispiele in 6 weisen einen WAN-(Wide Area Network)-Anschluß 693,
einen drahtlosen Anschluß 695,
eine Datenkartensteckverbindung 697, und eine Videoadapterkarte 699 auf.
Es sind viele weitere Einrichtungen für eine Verbindung mit einem
PCI-Anschluß verfügbar, und
viele weitere mögliche
Funktionen. Die PCI-Einrichtungen können Verbindungen mit lokaler
Ausrüstung
oder in der Nähe
angeordneten Computer ermöglichen.
Sie können
auch eine Verbindung mit verschiedenen Peripherieeinrichtungen wie
Druckern, Scannern, Aufzeichnungsgeräten, Anzeigen usw. ermöglichen.
Sie können
auch verdrahtete oder drahtlose Verbindungen mit entfernterer Ausrüstung oder
einer Anzahl unterschiedlicher Schnittstellen zulassen.
-
Die
jeweilige Beschaffenheit zugeordneter Einrichtungen kann an die
durch den Benutzer vorgesehene Nutzung angepaßt werden. Jede Einrichtung,
jeder Bus oder jede Verbindung kann aus diesem System entfernt werden,
und andere können hinzugefügt werden.
Beispielsweise kann am PCI-Bus, an einem AGP-Bus, über den
PCI-Express-Bus oder durch einen integrierten Grafikabschnitt der
Hoststeuerung Video bereitgestellt werden.
-
Man
wird verstehen, daß für bestimmte
Implementierungen eine Speichereinheit, ein Speichermodul, ein Wärmesensor,
eine Wärmeverwaltung, oder
ein Computersystem mit weniger oder mehr Ausstattung als im oben
beschriebenen Beispiel bevorzugt werden können. Die Konfigurierung der
dargestellten Beispiele kann deshalb von Implementierung zu Implementierung
in Abhängigkeit
von zahlreichen Faktoren unterschiedlich ausfallen, z.B. preislichen
Beschränkungen,
Leistungsanforderungen, technischen Verbesserungen oder anderen
Umständen.
Ausführungsformen
der vorliegenden Erfindung können
auch auf andere Typen von Speichersystem und auf andere Wärmeumgebungen
als die hier beschriebenen Beispiele angewandt werden. Obwohl die
vorliegende Erfindung im Zusammenhang des Anforderns und Sendens
von Speicherdaten über
einen Kommunikationsbus beschrieben wurde, können andere Datentypen angefordert
und gesendet werden. Beispiele einiger anderer Typen von Information sind
Fehler, Befehle zum Zulassen oder Beschränken von Zugriff auf bestimmte
Abschnitte des Speichers, Musterdetektionsdaten, und Zugriffs-Logs.
-
Ausführungsformen
der vorliegenden Erfindung können
als ein Computerprogrammprodukt bereitgestellt werden, das ein maschinenlesbares
Medium aufweisen kann, auf dem Befehle gespeichert sind, die dazu
benutzt werden können,
einen allgemein verwendbaren Computer, eine Modusverteilungslogik,
eine Speichersteuerung oder andere Einrichtungen zu programmieren,
um einen Prozeß auszuführen. Bei
dem maschinenlesbaren Medium kann es sich, ohne Beschränkung darauf,
um Disketten, optische Scheiben, CD-ROMS und magneto-optische Scheiben,
ROMs, RAMs, EPROMs, EEPROMs, magnetische oder optische Karten, Flash-Speicher oder andere
Typen von Medien oder maschinenlesbaren Medien handeln, die dazu
geeignet sind, elektronische Befehle zu speichern. Außerdem können Ausführungsformen
der vorliegenden Erfindung auch als ein Computerprogrammprodukt geladen
werden, wobei das Programm über
eine Kommunikationsverbindung (z.B. ein Modem oder eine Netzverbindung)
mit Hilfe von Datensignalen, die in einer Trägerwelle oder einem anderen
Ausbreitungsmedium verkörpert
sind, von einem entfernten Computer oder einer Steuerung an einen
anfordernden Computer oder eine Steuerung übertragen werden kann.
-
In
der obenstehenden Beschreibung wurden zahlreiche Details aufgeführt. Es
versteht sich jedoch, daß Ausführungsformen
der Erfindung ohne diese spezifischen Details umgesetzt werden können. Beispielsweise
können
allgemein bekannte äquivalente
Materialien anstelle der hier beschriebenen benutzt werden, und
ebenso können
allgemein bekannte äquivalente
Verfahren anstelle der einzelnen offenbarten Verarbeitungsverfahren
benutzt werden. In anderen Fällen
wurden allgemein bekannte Schaltungen, Strukturen und Verfahren
nicht im Detail gezeigt, um das Verständnis dieser Beschreibung nicht
zu erschweren.
-
Obwohl
die Ausführungsformen
der Erfindung in Bezug auf mehrere Beispiele beschrieben wurden,
werden Fachleute erkennen können,
daß die
Erfindung nicht auf die beschriebenen Ausführungsformen beschränkt ist,
sondern mit Modifikationen und Änderungen
innerhalb des Geistes und des Umfangs der beiliegenden Ansprüche ausgeübt werden
kann. Die Beschreibung ist deshalb veranschaulichend und nicht begrenzend
zu verstehen.
-
ZUSAMMENFASSUNG
-
Daten
zu physikalischen Parametern und Sicherheit, und die Befehle, derartige
Daten zu senden, können
mit Hilfe eines Speicherbusses (24), der zwischen einer
Speichereinrichtung (10) und einer Speichersteuerung (22)
angeschlossen ist, übermittelt werden.
Bei einer Ausführungsform
umfaßt
die Erfindung ein Empfangen eines ersten Befehls an einer Speichereinrichtung über einen
Speicherbus auf, wobei der erste Befehl kein Lese- oder Schreibbefehl
ist, und ein Empfangen eines zweiten Befehls zusammen mit dem ersten
Befehl, wobei der zweite Befehl unter Benutzung von Leitungen initiiert
wird, die nicht von dem ersten Befehl benutzt werden.