-
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 wärmer 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.
-
Die
US 6 809 914 B2 offenbart ein Verfahren, das Empfangen eines ersten Befehls an einer Speichereinrichtung auf einem Speicherbus, wobei der erste Befehl kein Lese- oder Schreibbefehl ist, und Empfangen eines zweiten Befehls eine definierte Zeit nach dem ersten Befehl umfasst, wobei der zweite Befehl unter Benutzung von Leitungen initiiert wird, die nicht vom ersten Befehl benutzt werden. Die Erfindungen sind in den Patentansprüchen 1, 10, 14 und 17 angegeben. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche.
-
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 I2C 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 empfängt 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 durchzufü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 (x4, x8, x16) 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 x8-Einrichtung doppelt so viele Daten in einem einzigen Zyklus bereit wie eine x4-Einrichtung, weshalb zwei separate 8-Bit-Datenfelder in derselben Zeit bereitgestellt werden könnten, mit der ein einziges 8-Bit-Feld von einer x4-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 Isolationstransistoren 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 Mikroprozessor 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. DIMMs (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 x4-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 Serienanschluß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, Scanner, 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.