-
GEBIET DER ERFINDUNG
-
Diese Erfindung betrifft ein Speichergerät und ein Verfahren zur Fehlerbehandlung in einem Speichergerät, und spezieller, aber nicht ausschließlich, die Fehlerbehandlung von Fehlern, wie z. B. Befehls- und/oder Adress-Paritätsfehlern und Fehlern bei der zyklischen Redundanzprüfung bei dem Speichergerät.
-
HINTERGRUND DER BESCHREIBUNG
-
Bei einem typischen Computersystem erleichtert ein Memory-Controller den Zugriff auf ein oder mehr Speicher in dem Computersystem. Bei einem Szenario, bei dem die Kommunikation zwischen Memory-Controller und den Speichern fehlerhaft ist, können die Speicher einen falschen Befehl empfangen. Dies führt zur Korruption der Daten in den Speichern, da die Speicher über keinerlei Mechanismus verfügen, um falsche Befehle zu erkennen, und führen alle Schreiboperationen durch. Um den falschen Befehl zu beheben, muss das Computersystem neu gestartet werden. Dies beeinträchtigt die Leistung des Computersystems und kritische Daten können verloren gehen.
-
Das Dokument
US 2007/0033512 A1 offenbart ein Speichergerät mit einem Zustandsregister und einem Paritätsdetektor. In dem Zustandsregister werden über einen Kommunikationsbus empfangene Werte gespeichert. Der Paritätsdetektor bestimmt, ob Signale, die über die Kommunikationsbus empfangen werden, eine bestimmte Parität aufweisen. An einen externen Speicher-Controller werden Fehlerberichte übersandt, wenn bei der Übertragung der Signale Fehler auftreten. Mittels des Zustandsregisters kann der Speicher-Controller Muster in den korrekt und fehlerhaft empfangenen Werten bestimmen.
-
Das Dokument
WO 2004/107 175 A1 offenbart ein Speichergerät mit einer Fehlerbestimmungseinheit, um Fehler in Adresssignalen und in Steuersignalen zu ermitteln.
-
ZUSAMMENFASSUNG
-
Aufgabe ist es, verbesserte Technologien zur Fehlerbehandlung in einem Speichergerät anzugeben.
-
Die Aufgabe wird durch das Verfahren nach Anspruch 1, das Verfahren nach Anspruch 6, das Speichergerät nach Anspruch 12 und den Memory-Controller nach Anspruch 18 gelöst. Weitere Ausführungsformen sind Gegenstand von abhängigen Ansprüchen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die Merkmale und Vorteile von erfindungsgemäßen Ausführungsformen werden aus der folgenden ausführlichen Beschreibung des Gegenstandes ersichtlich, bei der:
-
1 ein Blockdiagramm eines Memory-Control-Hubs und eines Speichermoduls gemäß einer erfindungsgemäßen Ausführungsform veranschaulicht;
-
2 ein Format eines Modusregisters gemäß einer erfindungsgemäßen Ausführungsform veranschaulicht;
-
3 eine Sequenz zur Verarbeitung von Paritätsfehlern bei einem Speichermodul gemäß einer erfindungsgemäßen Ausführungsform veranschaulicht;
-
4 eine Sequenz zur Verarbeitung von Fehlern bei der zyklischen Redundanzprüfung bei einem Speichermodul gemäß einer erfindungsgemäßen Ausführungsform veranschaulicht;
-
5 ein Ablaufdiagramm der Schritte zum Durchführen einer Fehlerbehandlung bei einem Speichermodul gemäß einer erfindungsgemäßen Ausführungsform veranschaulicht;
-
6 ein Ablaufdiagramm der Schritte zum Durchführen einer Fehlerbehandlung bei einem Memory-Controller-Hub gemäß einer erfindungsgemäßen Ausführungsform veranschaulicht; und
-
7 ein System veranschaulicht, um die hierin offenbarten Verfahren gemäß einer erfindungsgemäßen Ausführungsform zu implementieren.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Hierin beschriebene erfindungsgemäße Ausführungsformen werden in den beigefügten Figuren in beispielhafter und nicht einschränkender Weise veranschaulicht. Der Einfachheit halber und zur besseren Veranschaulichung sind in den Figuren veranschaulichte Elements nicht notwendigerweise maßstabsgetreu. Beispielsweise können die Abmessungen einiger Elements im Verhältnis zu anderen Elementen zur Verdeutlichung übermäßig groß dargestellt sein. Wo es zweckmäßig erschien, wurden weiter Bezugszeichen in den Figuren wiederholt, um entsprechende oder analoge Elemente zu kennzeichnen. Verweise in der Beschreibung auf „eine erfindungsgemäße Ausführungsform” bedeuten, dass ein bestimmtes Merkmal, eine Struktur oder Charakteristikum, das in Verbindung mit der Ausführungsform beschrieben wird, in zumindest einer erfindungsgemäßen Ausführungsform enthalten ist Somit bezieht sich das Auftreten des Ausdrucks „bei einer Ausführungsform” an verschiedenen Stellen in der Beschreibung nicht immer zwingend auf dieselbe Ausführungsform.
-
Erfindungsgemäßen Ausführungsformen stellen ein Verfahren und System zur Fehlerbehandlung bei einem Speichergerät bereit. Bei einer erfindungsgemäßen Ausführungsform kann das Speichergerät Befehls- und Adress-Paritätsfehler und Fehler bei der zyklischen Redundanzprüfung verarbeiten. Bei einer erfindungsgemäßen Ausführungsform kann der Speicher erkennen, ob ein empfangener Befehl irgendwelche Paritätsfehler aufweist, indem bestimmt wird, ob die Befehlsbits oder die Adressbits des empfangenen Befehls irgendwelche Paritätsfehler aufweisen. Wird ein Paritätsfehler in dem empfangenen Befehl erkannt, wird ein Verarbeitungsmechanismus ausgelöst, um den falschen Befehl zu beheben.
-
Mit einer Befehls-/Adress-(command/address, C/A)-Paritätsunterstützung in dem Speichergerät kann die Leistung eines Systems, das das Speichergerät einsetzt, verbessert werden. Das System muss nicht neu gestartet werden, um einen falschen Befehl, der von dem Speichergerät empfangen wurde, zu beheben. Bei einer erfindungsgemäßen Ausführungsform beinhaltet das Speichergerät einen synchronen dynamischen Direktzugriffsspeicher (Synchronaus Dynamic Random Access Memory, SDRAM), dynamischen Direktzugriffsspeicher (Dynamic Random Access Memory, DRAM), RAMBUS DRAM (RDRAM), Doppel-Datenraten-Drei SDRAM (double-data-rate three SDRAM, DDR3), DDR Vier SDRAM (DDR4) und jede andere Art Speichergerät mit wahlfreiem Zugriff (random access), ist aber nicht darauf beschränkt.
-
1 veranschaulicht ein Blockdiagramm 100 eines Memory-Control-Hubs 110 und eines Speichermoduls 120 gemäß einer erfindungsgemäßen Ausführungsform. Bei einer erfindungsgemäßen Ausführungsform beinhaltet das Speichermodul 120 DRAMs, Registereinrichtungen, Puffereinheiten, ist aber nicht darauf beschränkt. Der Memory-Control-Hub 110 weist eine Fehlerverarbeitungslogik 112 auf, um Befehls- und Adress-Paritätsfehler zu verarbeiten, wenn das Speichermodul 120 einen falschen Befehl empfängt. Der Memory-Controll-Hub 110 kommuniziert mit dem Speichermodul 120 unter Verwendung eines Signals, einschließlich, aber nicht beschränkt auf, Adresssignale 130, Steuerungssignale 132, Taktsignale 136, Datensignale 138, Paritätssignale 140 und jeglicher anderer Signale, um eine Kommunikation zwischen dem Memory-Control-Hub 110 und dem Speichermodul 120 zu erleichtern.
-
Bei einer erfindungsgemäßen Ausführungsform, wenn der Memory-Control-Hub 110 einen Befehl an das Speichermodul 120 senden muss, berechnet die Fehlerverarbeitungslogik 112 in dem Memory-Control-Hub 110 die Parität der Adresssignalbits und der Befehlssignalbits des Befehls. Ein Paritätsbitsignal wird, basierend auf einer geradzahligen oder ungeradzahligen Parität einer Kombination der berechneten Parität und des Paritätsbitsignals ausgewählt oder bestimmt. Bei einer erfindungsgemäßen Ausführungsform deckt die Fehlerverarbeitungslogik 112 die Parität für die Signale ab, einschließlich, aber nicht beschränkt auf, Reihenadress-Strobe-Signal (row address strobe, RAS), Spaltenadress-Strobe-Signal (column address strobe, CAS), Schreibfreigabe-Signal (write enable, WE), Adressbus-Signale und Bankauswahl-Signale des Speichermoduls 120.
-
Der Memory-Control-Hub 110 stellt das Paritätsbitsignal als eines der Paritätssignale 140 bereit, wenn ein Befehl an das Speichermodul 120 gesendet wird. Bei einer erfindungsgemäßen Ausführungsform ist das Speichermodul 120 auf Empfang eines Befehls und seines zugehörigen Paritätssignals hin in der Lage, zu erkennen oder zu bestimmen, ob der empfangene Befehl irgendeinen C/A-Paritätsfehler aufweist. Bei einer weiteren erfindungsgemäßen Ausführungsform ist das Speichermodul 120 in der Lage zu erkennen oder zu bestimmen, ob der empfangene Befehl irgendeinen Fehler bei der zyklischen Redundanzprüfung (cyclic redundancy check, CRC) aufweist, Das Speichermodul 120 weist eine Fehlerverarbeitungslogik 124 auf, um die C/A-Paritäts- oder CRC-Fehlererkennung durchzuführen.
-
Wenn das Speichermodul 120 einen Paritätsfehler in dem empfangenen Befehl erkennt, ignoriert es den empfangenen Befehl und speichert bei einer erfindungsgemäßen Ausführungsform die Befehlsbits und Adressbits des empfangenen Befehls in einem Modusregister 122. Das Speichermodul 120 aktiviert für den Memory-Control-Hub 110 ein Anzeigesignal als eines der Paritätssignale 140, wenn der Paritätsfehler in dem empfangenen Befehl erkannt wird. Ebenso aktiviert das Speichermodul 120 für den Memory-Control-Hub 110 das Anzeigesignal als eines der Paritätssignale 140, wenn ein CRC-Fehler in dem empfangenen Befehl erkannt wird.
-
Der Memory-Controller-Hub 110 bestimmt auf Empfang des Anzeigesignals hin von dem Anzeigesignal, ob ein Paritäts- oder ein CRC-Fehler in dem empfangenen Befehl vorliegt. Der Memory-Controller-Hub 110 führt einen geeigneten Behebungsmechanismus durch, um den Paritäts- oder CRC-Fehler zu beheben. Mit der Fehlerverarbeitungslogik 112 in dem Memory-Control-Hub 110 gibt es bei der Behebung von Fehlern in dem Speichermodul 120 Haken.
-
Für einen Fachmann ist es sofort selbstverständlich, dass andere Formen von Fehlererkennungsmechanismen implementiert werden können, ohne die erfindungsgemäßen Arbeiten zu beeinträchtigen. Bei einer weiteren erfindungsgemäßen Ausführungsform liegt mehr als ein Speichermodul 120 oder Memory-Control-Hub 110 in einem System vor. Der Memory-Control-Hub 110 ist bei einer weiteren erfindungsgemäßen Ausführungsform in einen Prozessor des Systems integriert,
-
2 veranschaulicht ein Format 200 eines Modusregisters 122 gemäß einer erfindungsgemäßen Ausführungsform. Das Modusregister 122 weist ein C/A-Paritätsbit 210 und ein CRC-Fehlerbit 215 auf, die nur von dem Memory-Control-Hub 110 geschrieben oder eingestellt werden können. Des C/A-Paritätsbit 210 ermöglicht die Aktivierung oder Deaktivierung der Paritätsprüfungen des Speichermoduls 120. Das CRC-Fehlerbit 215 ermöglicht die Aktivierung oder Deaktivierung eines CRC-Anzeigeimpulses, wenn CRC-Fehler in dem Speichermodul 120 erkannt werden. Wenn das C/A-Paritätsbit 210 aktiviert oder auf Logik Eins eingestellt ist, wird die Fehlerverarbeitungslogik 124 des Speichermoduls 120 freigegeben. Wenn das C/A-Paritätsbit 210 deaktiviert oder auf Logik Null eingestellt ist, wird die Fehlerverarbeitungslogik 124 des Speichermoduls 120 gesperrt.
-
Das Modusregister 122 weist ein Fehlerstatusbit 220 und ein CRC-Fehlerstatusbit 225 auf, die gelesen und geschrieben werden können. Wenn ein Paritätsfehler durch des Speichermodul 120 erkannt wird, aktiviert das Speichermodul das Fehlerstatusbit 220 oder stellt es auf Logik Eins ein. Wenn ein CRC-Fehler durch das Speichermodul 120 erkannt wird, aktiviert das Speichermodul das CRC-Fehlerstatusbit 225 oder stellt es auf Logik Eins ein. Wenn der Memory-Control-Hub 110 den Behebungsmechanismus oder -prozess für den Paritäts- oder CRC-Fehler ausgeführt hat, deaktiviert er das Fehlerstatusbit 220 bzw. CRC-Fehlerstatusbit 225 oder stellt es auf Logik Null ein.
-
Wenn das Speichermodul 120 einen Paritätsfehler in einem empfangenen Befehl erkennt, speichert das Speichermodul 120 die Befehlsbits und Adressbits des empfangenen Befehls in den Fehlerprotokollbits 230 des Modusregisters 122. Der Memory-Control-Hub 110 kann die Fehlerprotokollbits 230 lesen, um zu bestimmen, welcher Befehl durch das Speichermodul 120 mit Paritätsfehlern empfangen wurde.
-
Das Format 200 des Modusregisters 122 veranschaulicht bei einer erfindungsgemäßen Ausführungsform eine Konfiguration und soll nicht einschränkend sein. Für einen Fachmann ist es sofort selbstverständlich, dass andere Varianten der Konfiguration des Modusregisters 122 verwendet werden können, ohne die erfindungsgemäßen Arbeiten zu beeinträchtigen. Bei einer erfindungsgemäßen Ausführungsform ist das Modusregister 122 Teil eines Modusregistereinstellungs-(mode register set, MRS)-Registers auf einer DRAM-Einheit.
-
3 veranschaulicht eine Sequenz 300 zur Verarbeitung von Paritätsfehlern bei einem Speichermodul 120 gemäß einer erfindungsgemäßen Ausführungsform. Die Ereignisse 310 zeigen eine mögliche Sequenz 300 an Ereignissen, wenn das Speichermodul 120 einen Befehl mit einem Paritätsfehler empfängt. Bei Ereignis 312 antwortet das Speichermodul 120 allen Befehlen mit einem gültigen oder korrekten Paritätsbitsignal. Das Fehlerstatusbit 220 und das ALERT-Signal 340 werden während des Ereignisses 312 nicht eingestellt oder aktiviert. Dies ist in dem nicht eingestellten Ereignisbit 332 veranschaulicht. Das ALERT-Signal 340 ist ein Anzeigesignal an den Memory-Control-Hub 110, dass das Speichermodul 120 einen Befehl mit einem Paritätsfehler empfangen hat. Bei einer erfindungsgemäßen Ausführungsform ist des ALERT-Signal ein ODER-Signal, das mit allen Speichermodulen in einem System verbunden ist.
-
Bei dem Ereignis 314 erkennt oder bestimmt das Speichermodul 120, dass es einen Befehl mit inkorrekter Parität empfangen hat. Bei dem Ereignis 316 ignoriert das Speichermodul 120 den Befehl mit inkorrekter Parität und alle anderen externen Befehle. Das Speichermodul 120 speichert den falschen Befehl und die Adresse in den Fehlerprotokollbits 230 und aktiviert das Fehlerstatusbit 220. Dies ist in dem eingestellten Ereignisbit 334 veranschaulicht. Das ALERT-Signal 340 wird aktiviert, wenn das Fehlerstatusbit 220 aktiviert ist. Bei dem Ereignis 316 leert das Speichermodul 120 die Schlange ausstehender gültiger Befehle, die vor dem empfangenen falschen Befehl empfangen wurden, d. h. das Speichermodul 120 wartet auf die Beendigung der Ausführung aller ausstehenden gültigen Befehle.
-
Bei dem Ereignis 318 wartet das Speichermodul 120 darauf, dass eine Active-to-Precharge Befehlsverzögerung (tRAS) abläuft. Die tRAS-Verzögerung ist die Anzahl an Taktzyklen, die zwischen einem Bankaktivierungsbefehl und der Ausgabe des Deaktivierungsbefehls erforderlich ist. Bei einer erfindungsgemäßen Ausführungsform wartet das Speichermodul 120 auf die minimale Verzögerungszeit, die für die tRAS erforderlich ist. Wenn die tRAS-Verzögerung abgelaufen ist, schließt das Speichermodul 120 alle offenen Seiten, sofern solche vorhanden sind.
-
Bei dem Ereignis 320 gibt das Speichermodul 120 einen internen Deaktivierungsbefehl an alle Banken des Speichermoduls 120 aus, Bei dem Ereignis 322 antwortet das Speichermodul 120, um Befehle und Lese- und Schreibbefehle zur Modusregistereinstellung (mode register set, MRS) von dem Memory-Controller-Hub 110 zu aktualisieren. Das Speichermodul 120 antwortet auf keinerlei andere Befehle bei Ereignis 322, wenn das Fehlerstatusbit 220 aktiviert ist. Die Aktualisierungsbefehle beinhalten, sind aber nicht beschränkt auf, Refresh-all-Befehle und Refresh-group-Befehle.
-
Bei Ereignis 324 hat der Memory-Controller-Hub 110 seinen Prozess Zur Fehlerverarbeitungsbehebung ausgeführt und deaktiviert das Fehlerstatusbit 220 unter Verwendung eines MRS-Schreibbefehls an das Modusregister 122. Das Speichermodul 120 nimmt seien normalen Betrieb wieder auf und antwortet auf alle Befehle mit gültiger Parität. Das ALERT-Signal 340 wird deaktiviert, wenn das Fehlerstatusbit 220 deaktiviert ist. Dies ist in dem nicht eingestellten Ereignisbit 336 veranschaulicht.
-
4 veranschaulicht eine Sequenz 400 zur Verarbeitung von CRC-Fehlern bei einem Speichermodul 120 gemäß einer erfindungsgemäßen Ausführungsform. Der CRC-Fehlermechanismus benutzt bei einer erfindungsgemäßen Ausführungsform dasselbe ALERT-Signal 340. Um zwischen CRC-Fehlern und Paritätsfehlern zu bestimmen, muss der Memory-Control-Hub 110 das Fehlerstatusbit 220 eines jeden Speichermoduls lesen. Dies ist zeitaufwändig und verringert die Effizienz des Systems.
-
Um dieses Problem zu lösen, zeigen die Ereignisse 410 eine mögliche Sequenz 400 an Ereignissen, wenn das Speichermodul 120 Daten mit einem CRC-Fehler schreibt. Bei den Ereignissen 412 bis 418 hat das Speichermodul 120 Daten in Antwort auf eine Schreiboperation geschrieben. Das Fehlerstatusbit 220 und das ALERT-Signal 440 werden während der Ereignisse 412 bis 418 nicht eingestellt oder aktiviert. Bei dem Ereignis 420 empfängt das Speichermodul die CRC für die geschriebenen Daten, und es prüft, ob die geschriebenen Daten basierend auf der CRC korrekt sind. Wenn ein CRC-Fehler erkannt oder bestimmt wird, stellt des Speichermodul 120 das Fehlerstatusbit 220 bei dem Ereignis 432 ein. Das Speichermodul 120 sendet einen Impuls auf dem ALERT-Signal 440, um dem Memory-Control-Hub 110 anzuzeigen, dass ein CRC-Fehler erkannt wurde.
-
Der Memory-Control-Hub 110 kann leicht zwischen einem CRC-Fehler oder einem Paritätsfehler von dem Speichermodul 120 unterscheiden, indem das ALERT-Signal 440 untersucht wird. Die Anzahl an Taktzyklen oder Impulsbreite kann auf jede geeignete Anzahl eingestellt werden, die der Memory-Control-Hub erkennen kann. Bei einer erfindungsgemäßen Ausführungsform ist die Impulsbreite des ALERT-Signals 440 auf zwei Taktzyklen eingestellt, wenn ein CRC-Fehler von dem Speichermodul 120 erkannt wird. Für einen Fachmann ist es sofort selbstverständlich, dass andere Varianten verwendet werden können, um den CRC-Fehler dem Memory-Control-Hub 110 anzuzeigen, ohne die erfindungsgemäßen Arbeiten zu beeinträchtigen.
-
5 veranschaulicht ein Ablaufdiagramm 500 der Schritte zum Durchführen einer Fehlerbehandlung bei einem Speichermodul 120 gemäß einer erfindungsgemäßen Ausführungsform. Der Deutlichkeit der Veranschaulichung halber wird 5 mit Bezug auf 1 erörtert. Bei Schritt 505 prüft das Speichermodul 120, ob irgendwelche C/A-Paritätsfehler in irgendeinem empfangenen Befehl vorliegen, wobei der empfangene Befehl von einem Chip-Auswahl-(chip select, CS)-signal qualifiziert wird. Liegt kein C/A-Paritätsfehler vor, prüft das Speichermodul 120, ob bei Schritt 508 irgendein CRC-Fehler vorliegt. Wenn kein CRC-Fehler vorliegt, geht das Speichermodul 120 zu Schritt 505 zurück. Liegt ein CRC-Fehler vor, aktiviert das Speichermodul 120 bei Schritt 522 ein Anzeigesignal für X Impulse.
-
Die Anzahl X kann jegliche geeignete Anzahl sein, die es dem Memory-Control-Hub 110 ermöglicht, zwischen einem Paritätsfehler und einem CRC-Fehler zu unterscheiden. Die Breite der X Impulse bei einer erfindungsgemäßen Ausführungsform ebenfalls variiert werden. Bei optionalem Schritt 542 prüft das Speichermodul, ob das Fehlerstatusbit 220 von dem Memory-Control-Hub 110 freigegeben oder deaktiviert ist. Der Memory-Control-Hub 110 gibt das Fehlerstatusbit 220 frei, nachdem er die Fehlerbehebung für den falschen Befehl beendet hat. Wenn das Fehlerstatusbit 220 freigegeben ist, endet der Ablauf. Wenn das Fehlerstatusbit 220 nicht freigegeben ist, geht das Speichermodul 120 zu Schritt 542 zurück.
-
Liegt ein C/A-Paritätsfehler vor, ignoriert das Speichermodul 120 den empfangenen Befehl mit dem C/A-Paritätsfehler bei Schritt 510. Das Speichermodul ignoriert alle anderen externen Befehle bei Schritt 510. Bei Schritt 515 stellt das Speichermodul 120 das Fehlerstatusbit 220 ein oder aktiviert es, und speichert den falschen Befehlsframe in den Fehlerprotokollbits 230. Bei Schritt 520 aktiviert das Speichermodul 120 kontinuierlich ein Anzeigesignal. Bei einer erfindungsgemäßen Ausführungsform ist das Anzeigesignal das ALERT-Signal 340. Bei Schritt 525 wartet das Speichermodul 120 auf die Ausführung aller derzeitiger Befehle. Die derzeitigen Befehle werden vor dem falschen Befehl empfangen.
-
Bei Schritt 530 wartet das Speichermodul 120 darauf, dass die minimale Active-to-Precharge Befehlsverzögerung (tRAS_min) abläuft. Bei Schritt 535 schließt das Speichermodul 120 alle offenen Speicherseiten und antwortet lediglich, um Befehle und MRS-Lese/Schreibbefehle von dem Memory-Control-Hub 110 zu aktualisieren. Bei Schritt 540 prüft das Speichermodul 120, ob das Fehlerstatusbit 220 von dem Memory-Control-Hub 110 freigegeben ist. Der Memory-Control-Hub 110 gibt das Fehlerstatusbit 220 frei, nachdem er die Fehlerbehebung für den falschen Befehl beendet hat. Wenn das Fehlerstatusbit 220 freigegeben oder deaktiviert ist, deaktiviert das Speichermodul 120 das Anzeigesignal bei Schritt 545 und der Ablauf endet. Wenn das Fehlerstatusbit 220 nicht freigegeben ist, geht das Speichermodul 120 zu Schritt 540 zurück.
-
6 veranschaulicht ein Ablaufdiagramm 600 der Schritte zum Durchführen einer Fehlerbehandlung bei einem Memory-Controller-Hub 110 gemäß einer erfindungsgemäßen Ausführungsform. Der Deutlichkeit der Veranschaulichung halber wird 6 mit Bezug auf 1 erörtert. Bei Schritt 610 prüft der Memory-Control-Hub 110, ob er irgendein Anzeigesignal empfangen hat Bei einer erfindungsgemäßen Ausführungsform ist des Anzeigesignal das ALERT-Signal 340. Wird kein Anzeigesignal empfangen, geht der Memory-Control-Hub 110 zu Schritt 610 zurück. Wird ein Anzeigesignal empfangen, prüft der Memory-Control-Hub 110, ob das Anzeigesignal einen Paritätsfehler bei Schritt 615 anzeigt. Hat das Anzeigesignal einen Paritätsfehler angezeigt, wartet der Memory-Control-Hub 110 darauf, dass die Schlange der derzeitigen Befehle bei Schritt 620 ausgeführt wird.
-
Bei Schritt 625 sendet der Memory-Control-Hub 110 einen Deaktivierungsbefehl an alle Speichermodule. Alle Speichermodule, mit Ausnahme des Speichermoduls, das einen Paritätsfehler aufweist, führen den Deaktivierungsbefehl von dem Memory-Control-Hub 110 aus oder durch. Bei Schritt 630 sendet der Memory-Cvntrol-Hub 110 einen Aktualisierungsbefehl an alle Speichermodule, um die Daten in jedem Speichermodul aufzubewahren. Alle Speichermodule, einschließlich des Speichermoduls, das einen Paritätsfehler aufweist, führen den Aktualisierungsbefehl von dem Memory-Control-Hub 110 aus oder durch.
-
Bei Schritt 635 liest der Memory-Control-Hub 110 das Fehlerstatusbit 220 aus jedem Speichermodul, um zu bestimmen, welches Speichermodul die Fehlerquelle ist. Bei einer erfindungsgemäßen Ausführungsform beispielsweise ist der Memory-Control-Hub 110 mit vier Speichermodulen verbunden. Der Memory-Control-Hub 110 liest des Fehlerstatusbit 220 aus jedem der vier Speichermodule aus, um zu bestimmen, welches der vier Speichermodule einen Befehl mit einem C/A-Paritätsfehler empfangen hat.
-
Bei Schritt 640 gibt der Memory-Control-Hub 110 das Fehlerstatusbit 220 von dem Speichermodul frei, des den Befehl mit einem C/A-Paritätsfehler empfangen hat. Bei Schritt 645 sendet der Memory-Control-Hub 110 den Schreibbefehl (falls notwendig) erneut an das Speichermodul, das den Befehl mit einem C/A-Paritätsfehler empfangen hat und der Ablauf endet.
-
Wenn bei Schritt 615 kein Paritätsfehler in dem Anzeigesignal erkannt wird, bedeutet dies, dass ein CRC-Fehler erkannt wurde und der Ablauf geht zu optionalem Schritt 622. Zum Zwecke der Veranschaulichung kann der Memory-Control-Hub 110 entweder einen Paritätsfehler oder einen CRC-Fehler erkennen. Bei optionalem Schritt 622 bestimmt das Speichermodul, welches der Speichermodule einen Schreibbefehl mit einem CRC-Fehler empfangen hat Bei einer erfindungsgemäßen Ausführungsform erkennt oder bestimmt der Memory-Control-Hub 110, welches der Speichermodule einen Schreibbefehl mit einem CRC-Fehler empfangen hat, indem die Taktung des Anzeigesignals und die Ausbreitungsverzögerung des Anzeigesignals untersucht werden. Bei einer weiteren erfindungsgemäßen Ausführungsform wird Schritt 622 nicht durchgeführt und der Memory-Control-Hub 110 verarbeitet einen CRC-Fehler, indem er Schreibbefehle zu einem bestimmten Punkt sichert, wobei davon ausgegangen wird, dass die am weitesten entfernte DRAM-Einheit den CRC-Fehler aufweist und dann alle Schreibbefehle von diesem Punkt an erneut sendet. Die Worst-Case-Latenzzeit für das ALERT-Signal kann als Teil des Traininigs bestimmt werden, bevor der Speicherkanal für Schreibbefehle verwendet wird.
-
7 veranschaulicht ein System 700, um die hierin offenbarten Verfahren gemäß einer erfindungsgemäßen Ausführungsform zu implementieren. Das System 700 beinhaltet, ist aber nicht beschränkt auf, einen Desktopcomputer, einen Laptop, ein Netbook, ein Notebook, einen Minicomputer (personal digital assistant, PDA), einen Server, eine Workstation, ein Mobiltelefon, ein mobiles EDV-Gerät, ein Internet-Gerät oder jede andere Art EDV-Gerät. Bei einer weiteren Ausführungsform kann das System 700, das verwendet wird, um die hierin offenbarten Verfahren zu implementieren, ein Ein-Chip-System (system an a chip, SOC) sein.
-
Der Prozessor 710 verfügt über einen Prozessorkern 712, um Befehle des Systems 700 auszuführen. Der Prozessorkern 712 beinhaltet, ist aber nicht beschränkt auf, Prefetch-Logik, um Befehle abzurufen, Decodierlogik, um die Befehle zu decodieren, Ausführlogik, um Befehle auszuführen und dergleichen. Der Prozessor 710 verfügt über einen Cache-Speicher 716, um Befehle und/oder Daten des Systems 700 in den Cache-Speicher aufzunehmen. Bei einer weiteren erfindungsgemäßen Ausführungsform beinhaltet der Cache-Speicher 716 Level-1, Level-2 und Level-3 Cache-Speicher oder jede andere Konfiguration des Cache-Speichers innerhalb des Prozessors 710, ist aber nicht darauf beschränkt.
-
Der Memory-Control-Hub (MCH) 714 führt Funktionen aus, die es dem Prozessor 710 ermöglichen, auf einen Speicher 730, der einen flüchtigen Speicher 732 und/oder einen Permanentspeicher 734 beinhaltet, zuzugreifen und damit zu kommunizieren, Der flüchtige Speicher 732 beinhaltet, ist aber nicht beschränkt auf, synchronen dynamischen Direktzugriffsspeicher (Synchronaus Dynamic Random Access Memory, SDRAM), dynamischen Direktzugriffsspeicher (Dynamic Random Access Memory, DRAM), RAMBUS DRAM (RAMBUS Dynamic Random Access Memory, RDRAM) und/oder jede andere Art Speichergerät mit wahlfreiem Zugriff (random access). Der Permanentspeicher 734 beinhaltet, ist aber nicht beschränkt auf, NAND-Flash-Memory, Phasenwechselspeicher (phase change memory, PCM), Festspeicher (read only memory, ROM), elektrisch löschbaren programmierbaren Festspeicher (electrically erasable programmable read only memory, EEPRCM) oder jede andere Art Permanentspeichergerät.
-
Der Speicher 730 speichert Informationen und Befehle, die von dem Prozessor 710 ausgeführt werden sollen. Der Speicher 730 kann ebenfalls temporäre Variablen oder andere Zwischeninformationen speichern, während der Prozessor 710 Befehle ausführt. Der Chipsatz 720 ist mit dem Prozessor 710 über Punkt-zu-Punkt-(Point-to-Point, PtP)-Schnittstellen 717 und 722 verbunden. Der Chipsatz 720 ermöglicht es dem Prozessor 710, sich mit anderen Modulen in dem System 700 zu verbinden. Bei einer erfindungsgemäßen Ausführungsform arbeiten die Schnittstellen 717 und 722 gemäß einem PtP-Kommunikationsprotokoll, wie z. B. dem Intel® QuickPath Interconnect (QPI) oder dergleichen.
-
Der Chipsatz 720 ist mit einem Display-Gerät 740 verbunden, das einen Flüssigkristallbildschirm (liquid crystal display, LCD), ein Röhrenmonitor-(cathode ray tube, CRT)-Display oder jede andere Art von visuellem Display-Gerät beinhaltet, ist aber nicht darauf beschränkt. Bei einer erfindungsgemäßen Ausführungsform sind der Prozessor 710 und der Chipsatz 720 zu einem SOC zusammengeschlossen. Der Chipsatz 720 verbindet außerdem ein oder mehr Busse 750 und 755, die die verschiedenen Module 774, 760, 762, 764 und 766 verbinden. Busse 760 und 755 können über eine Busbrücke 772 verbunden sein, wenn Busgeschwindigkeit oder Kommunikationsprotokoll nicht übereinstimmen. Der Chipsatz 720 koppelt mit, ist aber nicht beschränkt auf, einen Permanentspeicher 760, ein Massenspeichergerät/Massenspeichergeräte 762, eine Tastatur/Maus 764 und eine Netzwerkschnittstelle 766.
-
Das Massenspeichergerät 762 beinhaltet, ist aber nicht beschränkt auf, ein Festkörperlaufwerk, ein Festplattenlaufwerk, ein USB-(universal serial bus)-Flash-Memory-Laufwerk oder jede andere Art von Speichermedium für Computerdaten. Die Netzwerkschnittstelle 766 ist unter Verwendung jeder Art wohlbekannten Netzwerkschnittstellen-Standards implementiert, einschließlich, aber nicht beschränkt auf, eine Ethernet-Schnittstelle, eine universelle serielle Bus (universal serial bus, USB) Schnittstelle, eine Peripheral Component Interconnect-(PCI)-Express-Schnittstelle, eine Drahtlosschnittstelle und/oder jede andere geeignete Art Schnittstelle. Die Drahtlosschnittstelle arbeitet gemäß dem IEEE 802.11 Standard und seiner verwandten Familie, Home Plug AV (HPAV), Ultra-Breitband (Ultra Wide Band, UWB), Bluetooth, WiMax oder jeder Art Drahtlos-Kommunikationsprotokoll, ist aber nicht darauf beschränkt.
-
Obwohl die in 7 gezeigten Module als getrennte Blöcke innerhalb des Systems 700 dargestellt sind, können die von einigen dieser Blöcke ausgeführten Funktionen innerhalb einer einzigen Halbleiterschaltung integriert sein oder können unter Verwendung von zwei oder mehr getrennten integrierten Schaltungen implementiert sein. Obwohl beispielsweise der Cache-Speicher 716 als ein getrennter Block innerhalb des Prozessors 710 dargestellt ist, kann der Cache-Speicher 716 je in den Prozessorkern 712 eingebracht sein. Das System 700 kann mehr als einen Prozessor/Prozessorkern bei einer weiteren erfindungsgemäßen Ausführungsform beinhalten.
-
Die hierin offenbarten Verfahren können in Hardware, Software, Firmware oder jeder anderen Kombination davon implementiert sein. Obwohl Beispiele der Ausführungsformen des offenbarten Gegenstandes beschrieben sind, ist es für einen Fachmann sofort selbstverständlich, dass viele andere Verfahren zum Implementieren des offenbarten Gegenstandes alternativ verwendet werden können. Bei der vorstehenden Beschreibung sind verschiedene Ausführungsformen des offenbarten Gegenstandes beschrieben worden. Zum Zwecke der Erklärung wurden spezifische Anzahlen, Systeme und Konfigurationen dargelegt, um ein gründliches Verständnis des Gegenstandes bereitzustellen. Es ist jedoch für einen Fachmann, der den Vorteil dieser Offenbarung hat, selbstverständlich, dass der Gegenstand ohne die spezifischen Details umgesetzt werden kann. In anderen Fällen wurden wohl bekannte Merkmale, Komponenten oder Module weggelassen, vereinfacht, kombiniert oder aufgeteilt, um den offenbarten Gegenstand nicht in den Hintergrund rücken zu lassen.
-
Der hierin verwendete Begriff „arbeitet” bedeutet, dass das Gerät, System, Protokoll etc. in der Lage ist oder dazu ausgelegt ist, für seine gewünschte Funktionalität zu arbeiten, wenn sich das Gerät oder System in einem ausgeschalteten Zustand befindet. Verschiedene Ausführungsformen des offenbarten Gegenstandes können in Hardware, Firmware, Software oder Kombinationen davon implementiert sein, und können unter Bezugnahme auf oder in Verbindung mit Programmcode, wie z. B. Befehlen, Funktionen, Verfahrensweisen, Datenstrukturen, Logik, Anwendungsprogrammen, Designdarstellungen oder Formaten zur Simulation, Emulation und Herstellung eines Designs beschrieben werden, die, wenn von einer Maschine darauf zugegriffen wird, dazu führen, dass die Maschine Aufgaben ausführt, wobei abstrakte Datentypen oder hardwarenaher Zusammenhang definiert wird oder ein Ergebnis erzeugt wird.
-
Die in den Figuren gezeigten Techniken können unter Verwendung von Code und Daten implementiert werden, die auf ein oder mehr EDV-Geräten, wie z. B. Universalrechnern oder EDV-Geräten, gespeichert und ausgeführt werden. Solche EDV-Geräte speichern und kommunizieren (intern und mit anderen EDV-Geräten über ein Netzwerk) Code und Daten unter Verwendung maschinenlesbarer Medien, wie z. B. maschinenlesbare Speichermedien (z. B. Magnetplatten; optische Platten; Direktzugriffsspeicher; Festspeicher; Flash-Speicher-Geräte; Phasenwechselspeicher) und maschinenlesbarer Kommunikationsmedien (z. B. elektrische, optische, akustische oder andere Formen sich ausbreitender Signale – wie z. B. Trägersignale, Infrarotsignale, digitale Signale etc.).
-
Während der offenbarte Gegenstand unter Bezugnahme auf veranschaulichende Ausführungsformen beschrieben wurde, soll diese Beschreibung nicht einschränkend ausgelegt werden. Verschiedene Modifikationen der veranschaulichenden Ausführungsformen sowie anderer Ausführungsformen des Gegenstandes, der Fachleuten, die der offenbarte Gegenstand betrifft, offensichtlich ist, sollen als im Umfang des offenbarten Gegenstandes einbegriffen erachtet werden.