-
QUERVERWEIS AUF ZUGEHÖRIGE ANMELDUNG
-
Diese Anmeldung nimmt die Priorität gemäß 35 U.S.C. §119 der am 7. Januar 2020 eingereichten koreanischen Patentanmeldung Nr.
10-2020-0001998 in Anspruch, die in ihrer Gesamtheit durch Bezugnahme hierin enthalten ist.
-
HINTERGRUND
-
Gebiet
-
Verschiedene Ausführungsformen betreffen ein Datenverarbeitungssystem und insbesondere ein Speichersystem, das in der Lage ist, einen Gegenfehlerbetrieb bzw. eine Gegenfehleroperation auszuwählen, und ein Datenverarbeitungssystem mit demselben.
-
Erläuterung der Technik
-
Computervorrichtungen oder drahtgebundene/drahtlose elektronische Vorrichtungen, beispielsweise Computervorrichtungen wie ein Server, ein Desktop-Computer und ein Laptop-Computer oder elektronische Vorrichtungen wie beispielsweise ein Mobiltelefon, ein Spielgerät, ein TV und ein Projektor, können während eines Betriebsprozesses viele Daten erzeugen und verarbeiten. Um die während des Betriebsprozesses erzeugten und verarbeiteten Daten zu speichern, kann allgemein ein Speichersystem unter Verwendung einer Speichervorrichtung, d.h. eine Datenspeichervorrichtung verwendet werden. Die Datenspeichervorrichtung kann als eine Hauptspeichervorrichtung oder Hilfsspeichervorrichtung einer Computervorrichtung oder einer elektronischen Vorrichtung verwendet werden.
-
Das Speichersystem kann eine Vielzahl von Speichervorrichtungen umfassen, und ein Fehler kann auftreten, wenn einige Daten während eines Schreib-Lesevorgangs in/aus der Vielzahl von Speichervorrichtungen nicht auf normale Weise geschrieben/gelesen werden. Im Allgemeinen können die meisten Daten, bei denen Fehler aufgetreten sind, durch einen Algorithmus zum Wiederherstellen von Fehlern korrigiert werden. Es kann jedoch ein schwerwiegender Fehler auftreten, der durch einen solchen Algorithmus nicht korrigiert werden kann. Wenn solch ein schwerwiegender Fehler auftritt, kann die Zuverlässigkeit des gesamten Speichersystems erheblich beeinträchtigt werden.
-
Demzufolge ist es vorteilhaft, vorhersagen zu können, wann und wo ein schwerwiegender Fehler auftreten wird. Im Stand der Technik ist jedoch eine Fehlervorhersage gemäß einem statistischen Verfahren unter Verwendung einer Operation zum Zählen der Anzahl auftretender Fehler durchgeführt worden. Somit wird die Genauigkeit der Vorhersage signifikant verschlechtert.
-
ZUSAMMENFASSUNG
-
Verschiedene Ausführungsformen sind auf ein Datenverarbeitungssystem mit einer Vorrichtung und einem Verfahren gerichtet, die in der Lage sind, Gegenfehleroperationen an einer Vielzahl von Speichervorrichtungen durch Analysieren von Fehlern durchzuführen, die zuvor in einem Speichersystem mit einer Vielzahl von Speichervorrichtungen aufgetreten sind.
-
In einer Ausführungsform kann ein Datenverarbeitungssystem umfassen: Ein Speichersystem, aufweisend eine Vielzahl von Speichervorrichtungen, von denen jede eine erste Fehlerkorrektureinheit und eine Vielzahl von Zellenanordnungsbereichen bzw. Zellenarraybereichen aufweist, die jeweils eine Vielzahl von Speicherzellen aufweisen, die in einer Anordnung bzw. einem Array mit einer Vielzahl von Wortleitungen und eine Vielzahl von Bitleitungen gekoppelt sind; und einen Host, aufweisend eine zweite Fehlerkorrektureinheit zum Korrigieren eines Fehlers von Daten, die von dem Speichersystem übertragen werden, und geeignet zum Erzeugen von Fehlerkorrekturinformationen über die Fehlerkorrekturoperation der zweiten Fehlerkorrektureinheit, Einstellen von Fehlerkorrekturstärken für die jeweiligen Speichervorrichtungen unter Verwendung der Fehlerkorrekturinformationen und Protokollinformationen, die von den Speichervorrichtungen erzeugt werden, und Durchführen von Gegenfehleroperationen an den jeweiligen Speichervorrichtungen gemäß den Fehlerkorrekturstärken. Fehler, die in Daten auftreten, auf die durch Zugriffsoperationen auf die Vielzahl von Zellenanordnungsbereichen zugegriffen wird, können durch die erste Fehlerkorrektureinheit korrigiert werden. Jede der Speichervorrichtungen kann die Protokollinformationen über die Fehlerkorrekturoperation der ersten Fehlerkorrektureinheit erzeugen.
-
Jede der Speichervorrichtungen kann die Protokollinformationen erzeugen, indem Fehlerinformationen der von der ersten Fehlerkorrektureinheit korrigierten Daten in einem Informationsspeicherbereich darin akkumuliert und gespeichert werden. Jede der Speichervorrichtungen kann die Protokollinformationen gemäß einer Anforderung des Hosts über das Speichersystem an den Host ausgeben.
-
Der Host kann umfassen: Eine Fehlerinformations-Sammeleinheit, die zum Sammeln der Fehlerkorrekturinformationen in Echtzeit oder zu eingestellten Zeitpunkten und Sammeln der Protokollinformationen von dem Speichersystem zu den eingestellten Zeitpunkten geeignet ist; eine erste Fehleranalyseeinheit, die zum Analysieren der Protokollinformationen und der Fehlerkorrekturinformationen, Überprüfen einer Anzahl und von Arten von in den jeweiligen Speichervorrichtungen auftretenden Fehlern und Entscheiden bzw. Festlegen von Fehlerrängen der jeweiligen Speichervorrichtungen gemäß dem Prüfergebnis geeignet ist; eine zweite Fehleranalyseeinheit, die zum Entscheiden bzw. Festlegen von Fehlerkorrekturstärken für einige der Vielzahl von Speichervorrichtungen gemäß den Fehlerrängen geeignet ist, indem Formen und die Anzahl der Fehler durch eine zusätzliche Analyse der Protokollinformationen und der Fehlerkorrekturinformationen überprüft und die Fehlerkorrekturstärken für verbleibende Speichervorrichtungen entschieden werden, so dass die Fehlerkorrekturstärken für die verbleibenden Speichervorrichtungen den Fehlerrängen entsprechen; und eine gegen Fehleroperationseinheit, die zum Durchführen der Gegenfehleroperationen an den jeweiligen Speichervorrichtungen gemäß den Fehlerkorrekturstärken geeignet ist.
-
Die erste Fehleranalyseeinheit kann als eine erste Speichervorrichtung eine Speichervorrichtung, bei der die Anzahl von darin auftretenden Fehlern gleich oder größer als eine erste Referenzzahl ist, unter der Vielzahl von Speichervorrichtungen klassifizieren. Wenn die Art der in der ersten Speichervorrichtung auftretenden Fehler ein erster Fehler ist, der in Wortleitungen auftritt, die gleich oder größer als eine zweite Referenzzahl sind, kann die erste Fehleranalyseeinheit die erste Speichervorrichtung als eine zweite Speichervorrichtung mit einem ersten Fehlerrang klassifizieren. Wenn die Art der in der ersten Speichervorrichtung auftretenden Fehler eine andere Art von Fehler als der erste Fehler ist, kann die erste Fehleranalyseeinheit die entsprechende erste Speichervorrichtung als eine dritte Speichervorrichtung mit einem zweiten Fehlerrang klassifizieren.
-
Jede der ersten und der zweiten Fehlerkorrektureinheit kann eine Fehlerkorrekturoperation an Daten durchführen, die in Codeworteinheiten einschließlich eines Fehlerkorrekturcodes (Error Correction Code - ECC) von jeder der Speichervorrichtungen eingegeben/von diesen ausgegeben werden. Wenn die in der zweiten Speichervorrichtung auftretenden Fehler über die Codeworteinheiten verteilt sind, deren Anzahl gleich oder größer als eine dritte Referenzzahl ist und eine Gesamtanzahl von in den Fehlern enthaltenen Fehlerbits gleich oder größer als eine vierte Referenzzahl ist, kann die zweite Fehleranalyseeinheit die entsprechende zweite Speichervorrichtung als eine vierte Speichervorrichtung mit einer ersten Fehlerkorrekturstärke klassifizieren. Wenn die in der zweiten Speichervorrichtung auftretenden Fehler über die Codeworteinheiten verteilt sind, von denen die Anzahl gleich oder größer als die dritte Referenzzahl ist und die Gesamtanzahl der in den Fehlern enthaltenen Fehlerbits kleiner als die vierte Referenzzahl ist oder die Fehler über die Codeworteinheiten verteilt sind, von denen die Anzahl kleiner als die dritte Referenzzahl ist, kann die zweite Fehleranalyseeinheit die entsprechende zweite Speichervorrichtung als eine fünfte Speichervorrichtung mit einer zweiten Fehlerkorrekturstärke klassifizieren. Die zweite Fehleranalyseeinheit kann die dritte Speichervorrichtung als die fünfte Speichervorrichtung klassifizieren, indem sie der dritten Speichervorrichtung die zweite Fehlerkorrekturstärke zuweist.
-
Die Gegenfehleroperation kann als Gegenfehleroperation eine der folgenden auswählen: Eine Operation zum Auswählen und Blockieren eines Zugriffs auf einen Bereich, in dem die Fehler in der vierten Speichervorrichtung aufgetreten sind, eine Operation zum Auswählen und Reparieren des Bereichs, in dem die Fehler in der vierten Speichervorrichtung aufgetreten sind, und eine Operation zum Auswählen und Deaktivieren des Bereichs, in dem die Fehler in der vierten Speichervorrichtung aufgetreten sind, gemäß dem Zustand der vierten Speichervorrichtung. Die Gegenfehleroperation kann die ausgewählte Operation durchführen.
-
Der Host kann eine der folgenden auswählen und durchführen: Eine Operation zum Festlegen von Zeitpunkten, die durch ein bestimmtes Zeitintervall voneinander beanstandet sind, als die eingestellten Zeitpunkte, ab dem Zeitpunkt, zu dem das Speichersystem mit Strom versorgt wird, eine Operation zum Zählen der Anzahl der in den Daten auftretenden Fehler während der Zugriffsoperationen auf das Speichersystem, wobei als die eingestellten Zeitpunkte jeder Zeitpunkt festgelegt wird, zu dem die gezählte Anzahl eine fünfte Referenzzahl überschreitet, und eine Operation zum Festlegen jedes Zeitpunkts, zu dem die zum Korrigieren der Fehler in den Daten, auf die über die Zugriffsoperationen zugegriffen wird, erforderliche Zeit gleich oder länger als eine bestimmte Zeit ist, als die eingestellten Zeitpunkte.
-
In einer Ausführungsform kann ein Speichersystem umfassen: Eine Vielzahl von Speichervorrichtungen, die jeweils eine erste Fehlerkorrektureinheit und eine Vielzahl von Zellenanordnungsbereichen aufweisen, die jeweils eine Vielzahl von Speicherzellen aufweisen, die in einer Anordnung bzw. einem Array mit einer Vielzahl von Wortleitungen und einer Vielzahl von Bitleitungen gekoppelt sind, und zum Korrigieren von Fehlern, die in Daten auftreten, auf die durch Zugriffsoperationen auf die Vielzahl von Zellenanordnungsbereichen durch die erste Fehlerkorrektureinheit zugegriffen wird, und zum Erzeugen von Protokollinformationen über die Fehlerkorrekturoperation der ersten Fehlerkorrektureinheit geeignet ist; und eine Steuerung (Controller), die eine zweite Fehlerkorrektureinheit zum Korrigieren von Fehlern von Daten, die von der Vielzahl von Speichervorrichtungen übertragen werden, und zum Erzeugen von Fehlerkorrekturinformationen über die Fehlerkorrekturoperation der zweiten Fehlerkorrektureinheit, Einstellen von Fehlerkorrekturstärken an den jeweiligen Speichervorrichtungen unter Verwendung der Protokollinformationen und der Fehlerkorrekturinformationen und Durchführen von Gegenfehleroperationen an den jeweiligen Speichervorrichtungen gemäß der Fehlerkorrekturstärken geeignet ist.
-
Jede der Speichervorrichtungen kann die Protokollinformationen erzeugen, indem Fehlerinformationen der Daten, die von der ersten Fehlerkorrektureinheit korrigiert werden, in einen Informationsspeicherbereich darin akkumuliert und gespeichert werden. Jede der Speichervorrichtungen kann die Protokollinformationen an die Steuerung gemäß einer Anforderung der Steuerung ausgeben.
-
Die Steuerung kann umfassen: Eine Fehlerinformations-Sammeleinheit, die zum Sammeln der Fehlerkorrekturinformationen in Echtzeit oder zu eingestellten Zeitpunkten und Sammeln der Protokollinformationen von jeder der Speichervorrichtungen zu den eingestellten Zeitpunkten geeignet ist; eine erste Fehleranalyseeinheit, die zum Analysieren der Protokollinformationen und der Fehlerkorrekturinformationen, Überprüfen der Anzahl und von Typen von in den jeweiligen Speichervorrichtungen auftretenden Fehlern und Entscheiden von Fehlerrängen der jeweiligen Speichervorrichtungen gemäß dem Prüfergebnis geeignet ist; eine zweite Fehleranalyseeinheit, die zum Entscheiden von Fehlerkorrekturstärken für einige der Vielzahl von Speichervorrichtungen gemäß der Fehlerränge geeignet ist, indem Formen und die Anzahl der Fehler durch eine zusätzliche Analyse der Protokollinformationen und der Fehlerkorrekturinformationen überprüft und die Fehlerkorrekturstärken für verbleibende Speichervorrichtungen entschieden werden, so dass die Fehlerkorrekturstärken für die verbleibenden Speichervorrichtungen den Fehlerrängen entsprechen; und eine Gegenfehleroperationseinheit, die zum Durchführen der Gegenfehleroperationen an den jeweiligen Speichervorrichtungen gemäß den Fehlerkorrekturstärken geeignet ist.
-
Die erste Fehleranalyseeinheit kann als eine erste Speichervorrichtung eine Speichervorrichtung, bei der die Anzahl von darin auftretenden Fehlern gleich oder größer als eine erste Referenzzahl ist, unter der Vielzahl von Speichervorrichtungen klassifizieren. Wenn die Art der in der ersten Speichervorrichtung auftretenden Fehler ein erster Fehler ist, der in Wortleitungen auftritt, die gleich oder größer als eine zweite Referenzzahl sind, kann die erste Fehleranalyseeinheit die entsprechende erste Speichervorrichtung als eine zweite Speichervorrichtung mit einem ersten Fehlerrang klassifizieren. Wenn die Art der in der ersten Speichervorrichtung auftretenden Fehler eine andere Art vom Fehler als der erste Fehler ist, kann die erste Fehleranalyseeinheit die entsprechende erste Speichervorrichtung als eine dritte Speichervorrichtung mit einem zweiten Fehlerrang klassifizieren.
-
Jede der ersten und der zweiten Fehlerkorrektureinheit kann eine Fehlerkorrekturoperation an Daten durchführen, die in Codeworteinheiten einschließlich eines Fehlerkorrekturcodes (Error Correction Code - ECC) von jeder der Speichervorrichtungen eingegeben/von diesen ausgegeben werden. Wenn die in der zweiten Speichervorrichtung auftretenden Fehler über die Codeworteinheiten verteilt sind, von denen eine Anzahl gleich oder größer als eine dritte Referenzzahl ist und eine Gesamtanzahl von in den Fehlern enthaltenen Fehlerbits gleich oder größer als eine vierte Referenzzahl ist, kann die zweite Fehleranalyseeinheit die entsprechende zweite Speichervorrichtung als eine vierte Speichervorrichtung mit einer ersten Fehlerkorrekturstärke klassifizieren. Wenn die in der zweiten Speichervorrichtung auftretenden Fehler über die Codeworteinheiten verteilt sind, deren Anzahl gleich oder größer als die dritte Referenzzahl ist und die Gesamtanzahl der in den Fehlern enthaltenen Fehlerbits kleiner als die vierte Referenzzahl ist oder die Fehler über die Codeworteinheiten verteilt sind, deren Anzahl kleiner als die dritte Referenzzahl ist, kann die zweite Fehleranalyseeinheit die entsprechende zweite Speichervorrichtung als eine fünfte Speichervorrichtung mit einer zweiten Fehlerkorrekturstärke klassifizieren. Die zweite Fehleranalyseeinheit kann die dritte Speichervorrichtung als die fünfte Speichervorrichtung klassifizieren, indem sie der dritten Speichervorrichtung die zweite Fehlerkorrekturstärke zuweist.
-
Die Gegenfehleroperation kann als Gegenfehleroperation eine der folgenden auswählen: Eine Operation zum Auswählen und Blockieren eines Zugriffs auf einen Bereich, in dem die Fehler in der vierten Speichervorrichtung aufgetreten sind, eine Operation zum Auswählen und Reparieren des Bereichs, in dem die Fehler in der vierten Speichervorrichtung aufgetreten sind, und eine Operation zum Auswählen und Deaktivieren des Bereichs, in dem die Fehler in der vierten Speichervorrichtung aufgetreten sind, gemäß dem Zustand der vierten Speichervorrichtung. Die Gegenfehleroperation kann die ausgewählte Operation durchführen.
-
Die Steuerung kann eine der folgenden auswählen und durchführen: Eine Operation zum Festlegen von Zeitpunkten, die durch ein bestimmtes Zeitintervall voneinander beanstandet sind, als die eingestellten Zeitpunkte, ab dem Zeitpunkt, zu dem das Speichersystem mit Strom versorgt wird, eine Operation zum Zählen der Anzahl der in den Daten auftretenden Fehler während der Zugriffsoperationen auf das Speichersystem, wobei als die eingestellten Zeitpunkte jeder Zeitpunkt festgelegt wird, zu dem die gezählte Anzahl eine fünfte Referenzzahl überschreitet, und eine Operation zum Festlegen jedes Zeitpunkts, zu dem die zum Korrigieren der Fehler in den Daten, auf die über die Zugriffsoperationen zugegriffen wird, erforderliche Zeit gleich oder länger als eine bestimmte Zeit ist, als die eingestellten Zeitpunkte.
-
In einer Ausführungsform kann ein Betriebsverfahren eines Speichersystems, das eine Vielzahl von Speichervorrichtungen, die jeweils eine erste Fehlerkorrektureinheit und eine Vielzahl von Zellenanordnungsbereichen aufweisen, die jeweils eine Vielzahl von Speicherzellen aufweisen, die in einer Anordnung bzw. einem Array mit einer Vielzahl von Wortleitungen und einer Vielzahl von Bitleitungen gekoppelt sind, umfassen: Betreiben der Fehlerkorrektureinheit, um Fehler zu korrigieren, die in Daten auftreten, auf die durch die Zugriffsoperationen auf die Vielzahl von Zellenanordnungsbereichen zugegriffen wird, und Erzeugen von Protokollinformationen über die Fehlerkorrekturoperation der Fehlerkorrektureinheit; Einstellen von Fehlerrängen an den jeweiligen Speichervorrichtungen unter Verwendung der Protokollinformationen; und Durchführen von Gegenfehleroperationen an den jeweiligen Speichervorrichtungen gemäß den Fehlerrängen.
-
Das Betreiben kann umfassen: Betreiben der Fehlerkorrektureinheit, um die Fehler zu korrigieren, die in den Daten auftreten, auf die durch die Zugriffsoperationen auf die Vielzahl von Zellenanordnungsbereichen zugegriffen wird; und Erzeugen der Protokollinformationen durch Akkumulieren und Speichern von Fehlerinformationen für die Daten, die durch die Fehlerkorrektureinheit korrigiert werden, in Informationsspeicherbereichen in den jeweiligen Speichervorrichtungen.
-
Das Einstellen kann umfassen: Sammeln der Protokollinformationen, die in dem Informationsspeicherbereich gespeichert sind, zu jedem eingestellten Zeitpunkt und Analysieren der in dem Sammelschritt gesammelten Protokollinformationen, Überprüfen einer Anzahl und von Arten von in den jeweiligen Speichervorrichtungen auftretenden Fehlern und Entscheiden von Fehlerrängen der jeweiligen Speichervorrichtungen gemäß dem Prüfergebnis.
-
Das Analysieren kann umfassen: Klassifizieren einer Speichervorrichtung, bei der die Anzahl von darin auftretenden Fehlern gleich oder größer als eine erste Referenzzahl ist, als eine erste Speichervorrichtung unter der Vielzahl von Speichervorrichtungen; Klassifizieren der ersten Speichervorrichtung als eine zweite Speichervorrichtung mit einem ersten Fehlerrang, wenn die Art des in der ersten Speichervorrichtung auftretenden Fehlers ein erster Fehler ist, der in Wortleitungen auftritt, die gleich oder größer als eine zweite Referenzzahl sind und Klassifizieren der ersten Speichervorrichtung als eine dritte Speichervorrichtung mit einem zweiten Fehlerrang, wenn die Art des in der ersten Speichervorrichtung auftretenden Fehlers eine andere Fehlerart als der erste Fehler ist.
-
Das Durchführen kann ein Durchführen von folgendem umfassen: Auswählen und Blockieren eines Zugriffs auf einen Bereich, in dem die Fehler in der zweiten Speichervorrichtung aufgetreten sind, Auswählen und Reparieren des Bereichs, in dem die Fehler in der zweiten Speichervorrichtung aufgetreten sind, und Auswählen und Deaktivieren des Bereichs, in dem die Fehler in der zweiten Speichervorrichtung aufgetreten sind, gemäß dem Zustand der zweiten Speichervorrichtung.
-
Das Betriebsverfahren kann ferner zumindest eines von folgendem umfassen: Festlegen von Zeitpunkten, die ein bestimmtes Zeitintervall von dem Zeitpunkt beabstandet sind, zu dem das Speichersystem mit Strom versorgt wird, als die eingestellten Zeitpunkte; Zählen der Anzahl von in den Daten auftretenden Fehlern während der Zugriffsoperationen auf die Vielzahl von Speichervorrichtungen, Festlegen jedes Zeitpunkts, zu dem die gezählte Anzahl eine fünfte Referenzzahl überschreitet, als die eingestellten Zeitpunkte und Zurücksetzen der gezählten Anzahl; und Festlegen jedes Zeitpunkts, zu dem die Zeit, die zum Korrigieren der Fehler erforderlich ist, die in den Daten auftreten, auf die durch die Zugriffsoperationen zugegriffen wird, gleich oder länger als eine bestimmte Zeit ist, als die eingestellten Zeitpunkte.
-
In einer Ausführungsform kann ein Betriebsverfahren eines Datenverarbeitungssystems umfassen: Korrigieren von Fehlern in Daten, die aus Speicherbereichen in jeweiligen Speichervorrichtungen in jeweiligen Speichervorrichtungen gelesen werden, während eines Sammelns von Informationen über die Fehler; und Durchführen auf der Grundlage der Informationen: Eine Operation zum Reparieren eines ausgewählten Speicherbereichs in Bezug auf die Fehler innerhalb einer ausgewählten Vorrichtung der Speichervorrichtungen oder eine Operation zum Bewegen bzw. Verschieben der Daten von dem ausgewählten Speicherbereich zu einem normalen Speicherbereich und Blockieren eines Zugriffs auf den ausgewählten Speicherbereich.
-
Gemäß den vorliegenden Ausführungsformen kann das Speichersystem mit der Vielzahl von Speichervorrichtungen Protokollinformationen über Fehler erzeugen, die während Zugriffsoperationen auf den jeweiligen Speichervorrichtungen aufgetreten sind, die Protokollinformationen über die Fehler auf der Grundlage der Anzahl, Arten und Formen der Fehler analysieren und unterschiedliche Fehlerkorrekturstärken für die jeweiligen Speichervorrichtungen einstellen, wodurch Fehlerlösungsoperationen an den jeweiligen Speichervorrichtungen durchgeführt werden.
-
Somit kann das Speichersystem eine Speichervorrichtung oder einen bestimmten Bereich einer Speichervorrichtung vorhersagen, in dem höchstwahrscheinlich ein schwerwiegender Fehler unter der Vielzahl von Speichervorrichtungen auftritt, und eine geeignete Gegenfehlerlösungsoperationen durchführen.
-
Figurenliste
-
- 1A zeigt ein Diagramm, das eine Anordnung eines Datenverarbeitungssystems gemäß einer ersten Ausführungsform darstellt.
- 1B zeigt ein Diagramm, das eine Anordnung eines Datenverarbeitungssystems gemäß einer zweiten Ausführungsform darstellt.
- 1C zeigten Diagramm, das eine Anordnung eines Speichersystems gemäß einer dritten Ausführungsform darstellt.
- 2 bis 4 und 5A und 5B zeigen Flussdiagramme und Diagramme, die eine Protokollinformations-Analyseoperation gemäß Ausführungsformen darstellen.
-
AUSFÜHRLICHE BESCHREIBUNG
-
1A zeigt ein Diagramm, das eine Anordnung eines Datenverarbeitungssystems gemäß einer ersten Ausführungsform darstellt. In der gesamten Beschreibung bedeutet die Bezugnahme auf „eine erste Ausführungsform“, „eine zweite Ausführungsform“, „eine dritte Ausführungsform“, „eine Ausführungsform“ oder dergleichen nicht notwendigerweise nur diese Ausführungsform. Verschiedene Merkmale der Erfindung können, obwohl sie im Zusammenhang mit einer Ausführungsform beschrieben sind, in mehreren Ausführungsformen anwendbar sein.
-
Unter Bezugnahme auf 1A kann das Datenverarbeitungssystem gemäß der ersten Ausführungsform einen Host 102 und ein Speichersystem 110 umfassen. Das Speichersystem 110 kann eine Vielzahl von Speichervorrichtungen 1501 bis 1508 umfassen. Der Host 102 kann eine Fehlerinformations-Sammeleinheit 1021, eine erste Fehleranalyseeinheit 1023, eine zweite Fehleranalyseeinheit 1024, eine Gegenfehleroperationseinheit 1025 und eine Host-Fehlerkorrekturcode- (Error Correction Code - ECC) Einheit 1026 umfassen.
-
Jede der Speichervorrichtungen 1501 bis 1508 kann eine Vielzahl von Speicherbänken BK<1:4> umfassen. Die Speichervorrichtungen 1501 bis 1508 können Speicher-ECC-Einheiten ECC1 bis ECC8 bzw. Informationsspeicherbereiche PA1 bis PA8 umfassen.
-
Als Referenz basiert 1A auf der Annahme, dass jede der Speichervorrichtungen 1501 bis 1508 ein DRAM ist. Wenn die Speichervorrichtung eine andere Art von Speichervorrichtung ist, kann die detaillierte Anordnung bzw. Konfiguration der Speichervorrichtung geändert werden. Insbesondere kann jede der Speicherbänke BK<1:4> eine Vielzahl von Speicherzellen CELL (ZELLE) umfassen, die in einer Anordnung bzw. einem Array mit einer Vielzahl von Wortleitungen WL1, WL2 ... WLX und einer Vielzahl von Bitleitungen BL1, BL2, ... BLY gekoppelt sind, und jede der Speicherzellen kann ein oder mehrere Bitdaten darin speichern. Das heißt, jede der Speicherbänke BK<1:4> kann als „ein Zellenanordnungsbereich“ betrachtet werden, der eine Vielzahl von Speicherzellen in einer Anordnung umfasst. Demzufolge basiert der Ausdruck „die Vielzahl von Speicherbänken“ auf der Annahme, dass die Speichervorrichtung ein DRAM ist. Wenn die Speichervorrichtung eine andere Art von Speichervorrichtung ist, kann der Ausdruck „die Vielzahl von Speicherbänken“ durch den Ausdruck „eine Vielzahl von Zellenanordnungsbereichen“ ersetzt werden. Kurz gesagt kann die Auslegung der internen Konfigurationen der Vielzahl von Speichervorrichtungen 1501 bis 1508 gemäß den Eigenschaften der jeweiligen Speichervorrichtungen 1501 bis 1508, dem Verwendungszweck des Speichersystems 110 oder der Spezifikation des Speichersystems 110, angefordert von dem Host 102, geändert werden.
-
Wenn Fehler, die während Zugriffsoperationen auftreten, die von der Vielzahl von Speichervorrichtungen 1501 bis 1508 durchgeführt werden, die in dem Speichersystem 110 umfasst sind, beispielsweise Daten-Lese-/-Schreiboperationen, durch Operationen der Speicher-ECC-Einheiten ECC1 bis ECC8 korrigiert werden, die in der Vielzahl von Speichervorrichtungen 1501 bis 1508 umfasst sind, kann die Vielzahl von Speichervorrichtungen 1508 bis 1508 Protokollinformationen LOG_INFO über Daten erzeugen, deren Fehler durch die Speicher-ECC-Einheiten ECC1 bis ECC8 korrigiert werden. Das heißt, die Vielzahl von Speichervorrichtungen 1501 bis 1508 kann die Protokollinformationen LOG_INFO durch Akkumulieren und Speichern von Fehlerinformationen (z.B. Rohdaten) in den Informationsspeicherbereichen PA1 bis PA8 erzeugen, wobei die Fehlerinformationen den Fehlern zugeordnet sind, die durch die ECC-Speichereinheiten ECC1 bis ECC8 während der Zugriffsoperationen korrigiert werden. Die Fehlerinformationen, die den Fehlern zugeordnet sind und in den Protokollinformationen LOG_INFO umfasst sind, können alle Daten angeben, die von der Vielzahl von Speichervorrichtungen 1501 bis 1508 in Bezug auf das Auftreten der Fehler erzeugt werden. Das heißt, die Fehlerinformationen, die den Fehlern zugeordnet sind und in den Protokollinformationen LOG_INFO umfasst sind, können den Zeitpunkt eines Auftretens der Fehler, d.h. Zeiten bzw. Zeitpunkte, zu denen die Fehler aufgetreten sind, (Zeiten der Fehler), Orte der Fehler, Attribute der Fehler, Arten bzw. Typen und Anzahl der Fehler angeben. Zum Beispiel können die Fehlerinformationen die Anzahl von Bits in Daten, in denen die Fehler aufgetreten sind, die physikalischen Speicherorte der Daten, in denen die viele aufgetreten sind, die absoluten Zeiten der Fehler, den Bereich von physischen Bereichen, in denen die Fehler aufgetreten sind, und die Arten der aufgetretenen Fehler angeben. Die Informationsspeicherbereiche PA1 bis PA8 können als Speicherplätze ausgeführt sein, die in der Form von Registern in den jeweiligen Speichervorrichtungen 1501 bis 1508 umfasst sind. Jeder der Informationsspeicherbereiche PA1 bis PA8 kann zumindest einem Teil von zumindest einer der Vielzahl von Speicherbänken BK<1:4> entsprechen, die in der entsprechenden Speichervorrichtung umfasst sind.
-
Der Host 102 kann die Fehlerinformationen, die den Fehlern zugeordnet sind, die in der Vielzahl von Speichervorrichtungen 1501 bis 1508 auftreten, die in dem Speichersystem 110 umfasst sind, durch die folgenden Operationen sammeln.
-
Gemäß der ersten Operation können Fehlerinformationen, die den Fehlern zugeordnet sind, die durch die Speicher-ECC-EinheitenECC1 bis ECC8 während der Zugriffsoperationen für die jeweiligen Speichervorrichtungen 1501 bis 1508 korrigiert werden, als Protokollinformationen LOG_INFO in den Informationsspeicherbereichen PA1 bis PA8 akkumuliert und gespeichert werden. Demzufolge kann der Host 102 die Protokollinformationen LOG_INFO aus den Informationsspeicherbereichen PA1 bis PA8 der jeweiligen Speichervorrichtungen 1501 bis 1508 sammeln.
-
Gemäß der zweiten Operation kann der Host 102 Fehlerinformationen als Fehlerkorrekturinformationen ERR_CO_INFO erzeugen und sammeln, wobei die Fehlerinformationen Fehlern zugeordnet sind, die durch die darin umfasste Host-ECC-Einheit 1026 während der Zugriffsoperationen für die jeweiligen Speichervorrichtungen 1501 bis 1508, zum Beispiel Datenleseoperationen korrigiert werden. Der Fehler in Bezug auf die Fehlerkorrekturinformationen ERR_CO_INFO kann ein Fehler sein, der nicht durch die Speicher-ECC-Einheiten ECC1 bis ECC8 in den Speichervorrichtungen 1501 bis 1508, sondern von der Host-ECC-Einheit 1026 in dem Host 102 korrigiert wird. Die Fehlerinformationen, die den Fehlern zugeordnet sind und in den Fehlerkorrekturinformationen ERR_CO_INFO umfasst sind, können alle Daten angeben bzw. anzeigen, die von der Host-ECC-Einheit 1026 in Bezug auf das Auftreten der Fehler erzeugt werden können. Das heißt, die Fehlerinformationen, die den Fehlern zugeordnet sind und in den Fehlerkorrekturinformationen ERR_CO_INFO umfasst sind, können die Fehlerzeiten, Orte der Fehler, Attribute der Fehler, Arten/Typen und Anzahl der Fehler angeben. Beispielsweise können die Fehlerinformationen die Anzahl von Bits in Daten, in denen die Fehler aufgetreten sind, die physischen Speicherorte der Daten, in denen die viele aufgetreten sind, die absoluten Zeiten der Fehler, den Bereich von physischen Bereichen, in denen die viele aufgetreten sind, und die Arten/Typen der aufgetretenen Fehler angeben.
-
Der Host 102 kann die Protokollinformationen LOG_INFO und die Fehlerkorrekturinformationen ERR_CO_INFO analysieren und somit die Anzahl, Arten und Formen von Fehlern bestimmen, die in jeder der Speichervorrichtungen 1501 bis 1508 aufgetreten sind. Demzufolge kann der Host 102 die Protokollinformationen LOG_INFO und die Fehlerkorrekturinformationen ERR_CO_INFO auf der Grundlage der Anzahl, Arten und Formen der Fehler analysieren und unterschiedliche Fehlerkorrekturstärken für die jeweiligen in dem Speichersystem 110 umfassten Speichervorrichtungen 1501 bis 1508 einstellen. Der Host 102 kann gemäß den Fehlerkorrekturstärken verschiedene Gegenfehleroperationen an den jeweiligen Speichervorrichtungen 1501 bis 1508 durchführen.
-
Insbesondere kann die in dem Host 102 umfasste Fehlerinformations-Sammeleinheit 1021 einen Befehl (nicht dargestellt) zur Informationssammlung an das Speichersystem 110 zu eingestellten Zeitpunkten übertragen und die Protokollinformationen LOG_INFO, die von den Informationsspeicherbereichen PA1 bis PA8 der Vielzahl von in dem Speichersystem 110 umfassten Speichervorrichtungen 1501 bis 1508 ausgegeben werden, als Reaktion auf den Befehl zur Informationssammlung empfangen und sammeln. Die Fehlerinformations-Sammeleinheit 1021 kann die Fehlerkorrekturinformationen ERR_CO_INFO, die von der Host-ECC-Einheit 1026 erzeugt werden, in Echtzeit oder zu jedem eingestellten Zeitpunkt sammeln bzw. erfassen.
-
Der Host 102 kann die Zeitpunkte gemäß einem der folgenden Szenarien auswählen und festlegen.
-
Zunächst kann der Host 102 Zeitpunkte, die in einem bestimmten Zeitintervall ab dem Zeitpunkt einer Stromversorgung des Speichersystems 110 wieder auftreten, als die eingestellten Zeitpunkte festlegen. Somit treten in diesem Szenario die festgelegten Zeitpunkte bei einer bestimmten Frequenz bzw. Häufigkeit wieder auf, beginnend mit dem Zeitpunkt, wenn das Speichersystem 110 mit Strom versorgt wird.
-
Zweitens kann der Host 102 die Anzahl von Fehlern zählen, die während einer Zugriffsoperation auf das Speichersystem 110 auftreten, d.h. eine Zugriffsoperation auf die Vielzahl von Speichervorrichtungen 1501 bis 1508, und jeden Zeitpunkt, zu dem die gezählte Anzahl eine Referenzzahl überschreitet, als die eingestellten Zeitpunkte festlegen. Die Referenzzahl kann im Voraus eingestellt werden. Die gezählte Anzahl kann zu jedem eingestellten Zeitpunkt zurückgesetzt werden, nachdem die zu diesem eingestellten Zeitpunkt durchgeführte Fehlerzählung abgeschlossen ist. Die Anzahl von Fehlern kann beispielsweise von der Host-ECC-Einheit 1026 gezählt werden.
-
Drittens kann der Host 102 eine Fehlerkorrekturoperation zum Korrigieren eines Fehlers durchführen, der während einer Zugriffsoperation auf der Speichersystem 110 auftritt, d.h. eine Zugriffsoperation auf die Vielzahl von Speichervorrichtungen 1501 bis 1508, und jeden Zeitpunkt, zu dem die für die Fehlerkorrekturoperation erforderliche Zeit gleich oder länger als eine bestimmte Zeit wird, als die eingestellten Zeitpunkte festlegen. Wenn die für die Fehlerkorrekturoperation erforderliche Zeit gleich oder länger als die bestimmte Zeit ist, kann dies darauf hinweisen, dass eine relativ einfache Fehlerkorrekturoperation unter Verwendung des Hamming-Codes fehlgeschlagen ist und daher eine relativ komplexe Fehlerkorrekturoperation unter Verwendung des Reed-Solomon-Codes während des Prozesses zum Korrigieren des Fehlers verwendet wurde. Beispielsweise kann die Fehlerkorrekturoperation durch die Host-ECC-Einheit 1026 durchgeführt werden.
-
Die Fehlerinformations-Sammeleinheit 1021 kann die Protokollinformationen LOG_INFO und die Fehlerkorrekturinformationen ERR_CO_INFO in einem eingestellten Ort innerhalb des Hosts 102 speichern. Wie in 1 A dargestellt, kann der eingestellte Ort ein separater Speicherbereich innerhalb der Fehlerinformations-Sammeleinheit 1021 sein. Obwohl nicht direkt in 1 A dargestellt, kann der eingestellte Ort innerhalb des Hosts 102 ein spezifischer Speicherplatz eines Hostspeichers sein, der in dem Host 102 umfasst ist und als ein Arbeitsspeicher des Hosts 102 verwendet wird. Die erste Fehleranalyseeinheit 1023 kann die Protokollinformationen LOG_INFO und die Fehlerkorrekturinformationen ERR_CO_INFO analysieren, die von der Fehlerinformations-Sammeleinheit 1021 gesammelt werden, die Anzahl und Arten von Fehlern überprüfen, die in den jeweiligen Speichervorrichtungen 1501 bis 1508 aufgetreten sind, und Fehlerränge der jeweiligen Speichervorrichtungen 1501 bis 1508 gemäß der Anzahl und den Arten, die in der Prüfoperation bestimmt werden, entscheiden. Informationen über die Fehlerränge der jeweiligen Speichervorrichtungen 1501 bis 1508, die von der ersten Fehleranalyseeinheit 1023 entschieden worden sind, können in einem eingestellten Ort innerhalb des Hosts 102 gespeichert werden.
-
Die zweite Fehleranalyseeinheit 1024 kann einige der Vielzahl von Speichervorrichtungen 1501 bis 1508 gemäß den Fehlerrängen der jeweiligen Speichervorrichtungen 1501 bis 1508 auswählen, die von der ersten Fehleranalyseeinheit 1023 entschieden werden. Für die einigen Speichervorrichtungen, die unter der Vielzahl von Speichervorrichtungen 1501 bis 1508 ausgewählt sind, kann die zweite Fehleranalyseeinheit 1024 Fehlerkorrekturstärken durch Überprüfen der Formen und Anzahl von Fehlern durch eine zusätzliche Analyse der Protokollinformationen LOG_INFO und der Fehlerkorrekturinformationen ERR_CO_INFO entscheiden. Für die anderen Speichervorrichtungen mit Ausnahme der ausgewählten Speichervorrichtungen kann die zweite Fehleranalyseeinheit 1024 Fehlerkorrekturstärken entscheiden, die den von der ersten Fehleranalyseeinheit 1023 entschiedenen Fehlerrängen entsprechen. Die zweite Fehleranalyseeinheit 1024 kann die Fehlerkorrekturstärken für die jeweiligen Speichervorrichtungen 1501 bis 1508, die von der ersten Fehleranalyseeinheit 1023 entschieden werden, aus dem eingestellten Ort innerhalb des Hosts 102 lesen. Ferner können die Informationen über die Fehlerränge der jeweiligen Speichervorrichtungen 1501 bis 1508, die von der zweite Fehleranalyseeinheit 1024 entschieden werden, in dem eingestellten Ort innerhalb des Hosts 102 gespeichert werden.
-
Die Gegenfehleroperationseinheit 1025 kann verschiedene Gegenfehleroperationen an den jeweiligen Speichervorrichtungen 1501 bis 1508 gemäß den Fehlerkorrekturstärken für die Speichervorrichtungen 1501 bis 1508 durchführen, die von der zweiten Fehleranalyseeinheit 1024 entschieden werden. Die Gegenfehleroperationseinheit 1025 kann die Fehlerkorrekturstärken für die jeweiligen Speichervorrichtungen 1501 bis 1508, die von der zweiten Fehleranalyseeinheit 1024 entschieden werden, aus dem eingestellten Ort innerhalb des Hosts 102 lesen.
-
Die Host-ECC-Einheit 1026 kann einen ECC erzeugen, indem eine Fehlerkorrektur-Codierungsoperation an Daten durchführt wird, die erzeugt werden, um in dem Speichersystem 110 gespeichert zu werden. Der Host 102 kann Codewort-basierte Daten an das Speichersystem 110 übertragen, wobei die Codewort-basierten Daten konfiguriert werden, indem der ECC in die Daten aufgenommen wird, die in dem Speichersystem 110 gespeichert werden sollen. Das Speichersystem 110 kann die Codewort-basierten Daten, die von dem Host 102 eingegeben werden, in der Vielzahl von Speichervorrichtungen 1501 bis 1508 speichern. Die Host-ECC-Einheit 1026 kann eine Operation zum Überprüfen durchführen, ob ein Fehler in den von dem Speichersystem 110 eingegebenen Daten aufgetreten ist, und eine Fehlerkorrektur-Decodierungsoperation durchführen, d.h. die Fehlerkorrekturoperation, wenn ein Fehler in den Eingabedaten aufgetreten ist, wodurch normale Daten vor dem Auftreten des Fehlers wiederhergestellt werden. Da die an das Speichersystem 110 von dem Host 102 übertragenen Daten Codewort-basierte Daten sind, können die Daten, die von dem Speichersystem 110 an den Host 102 eingegeben werden, auch Codewort-basierte Daten sein.
-
Demzufolge kann die Host-ECC-Einheit 1206 die Fehlerkorrekturoperation unter Verwendung des ECC durchführen, der in den Codewort-basierten Daten umfasst ist, die in den Host 102 eingegeben werden. Wenn die Anzahl von in den Daten auftretenden Fehlerbits gleich oder größer als eine korrigierbare Fehlerbitgrenze ist, kann die Host-ECC-Einheit 1026 bei der Fehlerkorrekturoperation versagen und die Fehlerbits nicht korrigieren. Die Host-ECC-Einheit 1026 kann eine Fehlerkorrektur unter Verwendung einer codierten Modulation, wie beispielsweise eines Hamming-Codes, eines LDPC-Codes (Low Density Parity Check), eines BCH-Codes (Bose, Chaudhri, Hocquenghem), eines Turbocodes, eines Reed-Solomon-Codes, eines Convolutioncodes, eines RSC (Recursive Systematic Code), einer TCM (Trellis Coded Modulkation) oder einer BCM (Block Coded Modulation) durchführen, wobei die vorliegende Ausführungsform darauf nicht beschränkt ist. Die Host-ECC-Einheit 1026 kann einen Code, eine Schaltung, ein Modul, ein System oder eine Vorrichtung zur Fehlerkorrektur umfassen.
-
Als Referenz kann sich die Größe von Daten, die durch die in dem Host 102 umfasste Host-ECC-Einheit 1026 fehlerkorrigiert werden können, von der Größe von Daten unterscheiden, die von jeder der Speicher-ECC-Einheiten ECC1 bis ECC8 fehlerkorrigiert werden, die in den jeweiligen Speichervorrichtungen 1501 bis 1508 umfasst sind. Zum Beispiel kann die Größe von Daten, die von der Host-ECC-Einheit 1026 fehlerkorrigiert werden können, größer als die Grüße von Daten sein, die von jeder der Speicher-ECC-Einheiten ECC1 bis ECC8 fehlerkorrigiert werden kann. In der vorliegenden Ausführungsform ist beschrieben worden, dass alle der Host-ECC-Einheit 1026 und der Speicher-ECC-Einheiten ECC1 bis ECC8 Fehlerkorrekturoperation durchführen können. Dies stellt jedoch lediglich ein Beispiel dar, aber die vorliegende Ausführungsform ist darauf nicht beschränkt. In einer Ausführungsform können die Speicher-ECC-Einheiten ECC1 bis ECC8 nur die Fehlerprüfoperation durchführen, um zu überprüfen, ob ein Fehler aufgetreten ist, und die Host-ECC-Einheit 1026 kann sowohl die Fehlerprüfoperation als auch die Fehlerkorrekturoperation durchführen.
-
1B zeigt ein Diagramm, das eine Anordnung eines Datenverarbeitungssystems gemäß einer zweiten Ausführungsform darstellt.
-
Unter Bezugnahme auf 1B kann das Datenverarbeitungssystem gemäß der zweiten Ausführungsform einen Host 102 und ein Speichersystem 110 umfassen. Der Speichersystem 110 kann eine Steuerung (Controller) 130 und eine Vielzahl von Speichervorrichtungen 1501 bis 1508 umfassen. Die Steuerung 130 kann eine Fehlerinformations-Sammeleinheit 1301, eine erste Fehleranalyseeinheit 1303, eine zweite Fehleranalyseeinheit 1304, eine Gegenfehleroperationseinheit 1305 und eine System-ECC-Einheit 1306 umfassen.
-
Jeder der Speichervorrichtungen 1501 bis 1508 kann eine Vielzahl von Speicherbänken BK<1:4> umfassen. Ferner können die Speichervorrichtungen 1501 bis 1508 Speicher-ECC-Einheiten ECC1 bis ECC8 bzw. Informationsspeicherbereiche PA1 bis PA8 umfassen.
-
Als Referenz basiert 1B auf der Annahme, dass jede der Speichervorrichtungen 1501 bis 1508 ein DRAM ist. Wenn die Speichervorrichtung eine andere Art von Speichervorrichtung ist, kann die detaillierte Anordnung bzw. Konfiguration der Speichervorrichtung geändert werden. Insbesondere kann jede der Speicherbänke BK<1:4> eine Vielzahl von Speicherzellen CELL (ZELE) umfassen, die in einer Anordnung bzw. einem Array mit einer Vielzahl von Wortleitungen WL1, WL2 ... WLX und einer Vielzahl von Bitleitungen BL1, BL2, ... BLY gekoppelt sind, und jede der Speicherzellen kann ein oder mehrere Bitdaten darin speichern. Das heißt, jede der Speicherbänke BK<1:4> kann als „ein Zellenanordnungsbereich“ betrachtet werden, der eine Vielzahl von Speicherzellen in einer Anordnung umfasst. Demzufolge basiert der Ausdruck „die Vielzahl von Speicherbänken“ auf der Annahme, dass die Speichervorrichtung ein DRAM ist. Wenn die Speichervorrichtung eine andere Art von Speichervorrichtung ist, kann der Ausdruck „die Vielzahl von Speicherbänken“ durch den Ausdruck „eine Vielzahl von Zellenanordnungsbereichen“ ersetzt werden. Kurz gesagt kann die Auslegung der internen Konfigurationen der Vielzahl von Speichervorrichtungen 1501 bis 1508 gemäß den Eigenschaften der jeweiligen Speichervorrichtungen 1501 bis 1508, dem Verwendungszweck des Speichersystems 110 oder der Spezifikation des Speichersystems 110, angefordert von dem Host 102, geändert werden.
-
Wenn Fehler, die während Zugriffsoperationen auftreten, die von der Vielzahl von Speichervorrichtungen 1501 bis 1508 durchgeführt werden, die in dem Speichersystem 110 umfasst sind, beispielsweise Daten-Lese-/-Schreiboperationen, durch Operationen der Speicher-ECC-Einheiten ECC1 bis ECC8 korrigiert werden, die in der Vielzahl von Speichervorrichtungen 1501 bis 1508 umfasst sind, kann die Vielzahl von Speichervorrichtungen 1508 bis 1508 Protokollinformationen LOG_INFO über Daten erzeugen, deren Fehler durch die Speicher-ECC-Einheiten ECC1 bis ECC8 korrigiert werden. Das heißt, die Vielzahl von Speichervorrichtungen 1501 bis 1508 kann die Protokollinformationen LOG_INFO durch Akkumulieren und Speichern von Fehlerinformationen in den Informationsspeicherbereichen PA1 bis PA8 erzeugen, wobei die Fehlerinformationen den Fehlern zugeordnet sind, die durch die ECC-Speichereinheiten ECC1 bis ECC8 während der Zugriffsoperationen korrigiert werden. Die Fehlerinformationen, die den Fehlern zugeordnet sind und in den Protokollinformationen LOG_INFO umfasst sind, können alle Daten angeben, die von der Vielzahl von Speichervorrichtungen 1501 bis 1508 in Bezug auf das Auftreten der Fehler erzeugt werden. Das heißt, die Fehlerinformationen, die den Fehlern zugeordnet sind und in den Protokollinformationen LOG_INFO umfasst sind, können Zeiten bzw. Zeitpunkte der Fehler, Orte der Fehler, Attribute der Fehler, Arten bzw. Typen und Anzahl der Fehler angeben. Zum Beispiel können die Fehlerinformationen die Anzahl von Bits in Daten, in denen die Fehler aufgetreten sind, die physikalischen Speicherorte der Daten, in denen die Fehler aufgetreten sind, die absoluten Zeiten der Fehler, den Bereich von physischen Bereichen, in denen die viele aufgetreten sind, und die Arten der aufgetretenen Fehler angeben. Die Informationsspeicherbereiche PA1 bis PA8 können als Speicherplätze ausgeführt sein, die in der Form von Registern in den jeweiligen Speichervorrichtungen 1501 bis 1508 umfasst sind. Jeder der Informationsspeicherbereiche PA1 bis PA8 kann zumindest einem Teil von zumindest einer der Vielzahl von Speicherbänken BK<1:4> entsprechen, die in der entsprechenden Speichervorrichtung umfasst sind.
-
Die Steuerung 130 kann durch die folgenden Operationen Fehlerinformationen sammeln, die Fehlern zugeordnet sind, die in der Vielzahl von Speichervorrichtungen 1501 bis 1508 auftreten, die in dem Speichersystem 110 umfasst sind.
-
Gemäß der ersten Operation können Fehlerinformationen, die den Fehlern zugeordnet sind, die durch die Speicher-ECC-EinheitenECC1 bis ECC8 während der Zugriffsoperationen für die jeweiligen Speichervorrichtungen 1501 bis 1508 korrigiert werden, als Protokollinformationen LOG_INFO in den Informationsspeicherbereichen PA1 bis PA8 akkumuliert und gespeichert werden. Demzufolge kann die Steuerung 130 die Protokollinformationen LOG_INFO aus den Informationsspeicherbereichen PA1 bis PA8 der jeweiligen Speichervorrichtungen 1501 bis 1508 sammeln.
-
Gemäß der zweiten Operation kann die Steuerung 130 Fehlerinformationen als Fehlerkorrekturinformationen ERR_CO_INFO erzeugen und sammeln, wobei die Fehlerinformationen Fehlern zugeordnet sind, die durch die darin umfasste System-ECC-Einheit 1306 während der Zugriffsoperationen für die jeweiligen Speichervorrichtungen 1501 bis 1508, zum Beispiel Datenleseoperationen, korrigiert werden. Die Zugriffsoperation, bei der ein Fehler durch die in der Steuerung 130 umfasste System-ECC-Einheit 1306 korrigiert wird, kann als Zugriffsoperation vorausgesetzt werden, bei der ein Fehler nicht durch die entsprechende Speicher-ECC-Einheit unter den Speicher-ECC-Einheiten korrigiert wird, die in den jeweiligen Speichervorrichtungen 1501 bis 1508 umfasst sind. Die Fehlerinformationen, die den Fehlern zugeordnet sind und in den Fehlerkorrekturinformationen ERR_CO_INFO umfasst sind, können alle Daten angeben bzw. anzeigen, die von der System-ECC-Einheit 1305 in Bezug auf das Auftreten der Fehler erzeugt werden können. Das heißt, die Fehlerinformationen, die den Fehlern zugeordnet sind und in den Fehlerkorrekturinformationen ERR_CO_INFO umfasst sind, können die Fehlerzeiten bzw. Zeiten oder Zeitpunkte der Fehler, Orte der Fehler, Attribute der Fehler, Arten/Typen und Anzahl der Fehler angeben. Beispielsweise können die Fehlerinformationen die Anzahl von Bits in Daten, in denen die Fehler aufgetreten sind, die physischen Speicherorte der Daten, in denen die Fehler aufgetreten sind, die absoluten Zeiten der Fehler, den Bereich von physischen Bereichen, in denen die Fehler aufgetreten sind, und die Arten/Typen der aufgetretenen Fehler angeben.
-
Die Steuerung 130 kann die Protokollinformationen LOG_INFO und die Fehlerkorrekturinformationen ERR_CO_INFO analysieren und somit die Anzahl, Arten und Formen von Fehlern bestimmen, die in jeder der Speichervorrichtungen 1501 bis 1508 aufgetreten sind. Demzufolge kann die Steuerung 130 die Protokollinformationen LOG_INFO und die Fehlerkorrekturinformationen ERR_CO_INFO auf der Grundlage der Anzahl, Arten und Formen der Fehler analysieren und unterschiedliche Fehlerkorrekturstärken für die jeweiligen in dem Speichersystem 110 umfassten Speichervorrichtungen 1501 bis 1508 einstellen. Die Steuerung 130 kann gemäß den Fehlerkorrekturstärken verschiedene Gegenfehleroperationen an den jeweiligen Speichervorrichtungen 1501 bis 1508 durchführen.
-
Insbesondere kann die in der Steuerung 130 umfasste Fehlerinformations-Sammeleinheit 1301 einen Befehl (nicht dargestellt) zur Informationssammlung an das Speichersystem 110 zu eingestellten Zeitpunkten übertragen und die Protokollinformationen LOG_INFO, die von den Informationsspeicherbereichen PA1 bis PA8 der Vielzahl von in dem Speichersystem 110 umfassten Speichervorrichtungen 1501 bis 1508 ausgegeben werden, als Reaktion auf den Befehl zur Informationssammlung empfangen und sammeln. Die Fehlerinformations-Sammeleinheit 1301 kann die Fehlerkorrekturinformationen ERR_CO_INFO, die von der System-ECC-Einheit 1306 erzeugt werden, in Echtzeit oder zu jedem eingestellten Zeitpunkt sammeln bzw. erfassen.
-
Die Steuerung 130 kann die Zeitpunkte gemäß einem der folgenden Szenarien auswählen und festlegen.
-
Zunächst kann die Steuerung 130 Zeitpunkte, die in einem bestimmten Zeitintervall ab dem Zeitpunkt einer Stromversorgung des Speichersystem 110 wieder auftreten, als die eingestellten Zeitpunkte festlegen.
-
Zweitens kann die Steuerung 130 die Anzahl von Fehlern zählen, die während einer Zugriffsoperation auf das Speichersystem 110 auftreten, d.h. eine Zugriffsoperation auf die Vielzahl von Speichervorrichtungen 1501 bis 1508, und jeden Zeitpunkt, zu dem die gezählte Anzahl eine Referenzzahl überschreitet, als die eingestellten Zeitpunkte festlegen. Die Referenzzahl kann im Voraus eingestellt werden. Die gezählte Anzahl kann zu jedem eingestellten Zeitpunkt zurückgesetzt werden, nachdem die zu diesem eingestellten Zeitpunkt durchgeführte Fehlerzählung abgeschlossen ist. Die Anzahl von Fehlern kann beispielsweise von der System-ECC-Einheit 1306 gezählt werden.
-
Drittens kann die Steuerung 130 eine Fehlerkorrekturoperation zum Korrigieren eines Fehlers durchführen, der während einer Zugriffsoperation auf der Speichersystem 110 auftritt, d.h. eine Zugriffsoperation auf die Vielzahl von Speichervorrichtungen 1501 bis 1508, und jeden Zeitpunkt, zu dem die für die Fehlerkorrekturoperation erforderliche Zeit gleich oder länger als eine bestimmte Zeit wird, als die eingestellten Zeitpunkte festlegen. Wenn die für die Fehlerkorrekturoperation erforderliche Zeit gleich oder länger als die bestimmte Zeit ist, kann dies darauf hinweisen, dass eine relativ einfache Fehlerkorrekturoperation unter Verwendung des Hamming-Codes fehlgeschlagen ist und daher eine relativ komplexe Fehlerkorrekturoperation unter Verwendung des Reed-Solomon-Codes während des Prozesses zum Korrigieren des Fehlers verwendet wurde. Beispielsweise kann die Fehlerkorrekturoperation durch die System-ECC-Einheit 1306 durchgeführt werden.
-
Die Fehlerinformations-Sammeleinheit 1301 kann die Protokollinformationen LOG_INFO und die Fehlerkorrekturinformationen ERR_CO_INFO in einem eingestellten Ort innerhalb der Steuerung 130 speichern. Wie in 1B dargestellt, kann der eingestellte Ort ein separater Speicherbereich innerhalb der Fehlerinformations-Sammeleinheit 1301 sein. Obwohl nicht direkt in 1B dargestellt, kann der eingestellte Ort innerhalb der Steuerung 130 ein spezifischer Speicherplatz eines Systemspeichers sein, der in der Steuerung 130 umfasst ist und als ein Arbeitsspeicher des Speichersystems 110 verwendet wird.
-
Die erste Fehleranalyseeinheit 1303 kann die Protokollinformationen LOG_INFO und die Fehlerkorrekturinformationen ERR_CO_INFO analysieren, die von der Fehlerinformations-Sammeleinheit 1301 gesammelt werden, die Anzahl und Arten von Fehlern überprüfen, die in den jeweiligen Speichervorrichtungen 1501 bis 1508 aufgetreten sind, und Fehlerränge für die jeweiligen Speichervorrichtungen 1501 bis 1508 gemäß der Anzahl und den Arten, die in der Prüfoperation bestimmt werden, entscheiden. Informationen über die Fehlerränge der jeweiligen Speichervorrichtungen 1501 bis 1508, die von der ersten Fehleranalyseeinheit 1303 entschieden worden sind, können in einem eingestellten Ort innerhalb der Steuerung 130 gespeichert werden.
-
Die zweite Fehleranalyseeinheit 1304 kann einige der Vielzahl von Speichervorrichtungen 1501 bis 1508 gemäß den Fehlerrängen der jeweiligen Speichervorrichtungen 1501 bis 1508 auswählen, die von der ersten Fehleranalyseeinheit 1023 entschieden werden. Für die einigen Speichervorrichtungen, die unter der Vielzahl von Speichervorrichtungen 1501 bis 1508 ausgewählt sind, kann die zweite Fehleranalyseeinheit 1304 Fehlerkorrekturstärken durch Überprüfen der Formen und Anzahl von Fehlern durch eine zusätzliche Analyse der Protokollinformationen LOG_INFO und der Fehlerkorrekturinformationen ERR_CO_INFO entscheiden. Für die anderen Speichervorrichtungen mit Ausnahme der ausgewählten Speichervorrichtungen kann die zweite Fehleranalyseeinheit 1304 Fehlerkorrekturstärken entscheiden, die den von der ersten Fehleranalyseeinheit 1303 entschiedenen Fehlerrängen entsprechen. Die zweite Fehleranalyseeinheit 1304 kann die Fehlerkorrekturstärken für die jeweiligen Speichervorrichtungen 1501 bis 1508, die von der ersten Fehleranalyseeinheit 1303 entschieden werden, aus dem eingestellten Ort innerhalb der Steuerung 130 lesen. Ferner können die Informationen über die Fehlerränge der jeweiligen Speichervorrichtungen 1501 bis 1508, die von der zweiten Fehleranalyseeinheit 1304 entschieden werden, in dem eingestellten Ort innerhalb der Steuerung 130 gespeichert werden.
-
Die Gegenfehleroperationseinheit 1305 kann verschiedene Gegenfehleroperationen an den jeweiligen Speichervorrichtungen 1501 bis 1508 gemäß den Fehlerkorrekturstärken für die Speichervorrichtungen 1501 bis 1508 durchführen, die von der zweiten Fehleranalyseeinheit 1304 entschieden werden. Die Gegenfehleroperationseinheit 1305 kann die Fehlerkorrekturstärken für die jeweiligen Speichervorrichtungen 1501 bis 1508, die von der zweiten Fehleranalyseeinheit 1304 entschieden werden, aus dem eingestellten Ort innerhalb der Steuerung 130 lesen.
-
Die System-ECC-Einheit 1306 kann einen ECC erzeugen, indem eine Fehlerkorrektur-Codierungsoperation an Daten durchgeführt wird, die in den jeweiligen Speichervorrichtungen 1501 bis 1508 gespeichert werden sollen. Die Steuerung 130 kann Codewort-basierte Daten an die jeweiligen Speichervorrichtungen 1501 bis 1508 übertragen, wobei die Codewort-basierten Daten konfiguriert werden, indem der ECC in die Daten aufgenommen wird, die in den jeweiligen Speichervorrichtungen 1501 bis 1508 gespeichert werden sollen. Die von der Steuerung 130 eingegebenen Codewort-basierten Daten können in der Vielzahl von Speichervorrichtungen 1501 bis 1508 gespeichert werden. Die System-ECC-Einheit 1306 kann eine Operation zum Überprüfen durchführen, ob ein Fehler in den von dem Speichersystem 110 eingegebenen Daten aufgetreten ist, und eine Fehlerkorrektur-Decodierungsoperation durchführen, d.h. die Fehlerkorrekturoperation, wenn ein Fehler in den Eingabedaten aufgetreten ist, wodurch normale Daten vor dem Auftreten des Fehlers wiederhergestellt werden. Da die in der Vielzahl von Speichervorrichtungen 1501 bis 1508 gespeicherten Daten Codewort-basierte Daten sind, können die Daten, die aus den jeweiligen Speichervorrichtungen 1501 bis 1508 gelesen werden, auch Codewort-basierte Daten sein. Demzufolge kann die System-ECC-Einheit 1306 die Fehlerkorrekturoperation unter Verwendung des ECC durchführen, der in den Codewort-basierten Daten umfasst ist, die aus den jeweiligen Speichervorrichtungen 1501 bis 1508 gelesen werden. Wenn die Anzahl von in den Daten auftretenden Fehlerbits gleich oder größer als eine korrigierbare Fehlerbitgrenze ist, kann die System-ECC-Einheit 1306 bei der Fehlerkorrekturoperation versagen und die Fehlerbits nicht korrigieren. Die System-ECC-Einheit 1306 kann eine Fehlerkorrektur unter Verwendung einer codierten Modulation, wie beispielsweise eines Hamming-Codes, eines LDPC-Codes (Low Density Parity Check), eines BCH-Codes (Bose, Chaudhri, Hocquenghem), eines Turbocodes, eines Reed-Solomon-Codes, eines Convolutioncodes, eines RSC (Recursive Systematic Code), einer TCM (Trellis Coded Modulkation) oder einer BCM (Block Coded Modulation) durchführen, wobei die vorliegende Ausführungsform darauf nicht beschränkt ist. Die System-ECC-Einheit 1306 kann einen Code, eine Schaltung, ein Modul, ein System oder eine Vorrichtung zur Fehlerkorrektur umfassen.
-
Als Referenz kann sich die Größe von Daten, die durch die in der Steuerung 130 umfassten System-ECC-Einheit 1306 fehlerkorrigiert werden können, von der Größe von Daten unterscheiden, die von jeder der Speicher-ECC-Einheiten ECC1 bis ECC8 fehlerkorrigiert werden, die in den jeweiligen Speichervorrichtungen 1501 bis 1508 umfasst sind. Zum Beispiel kann die Größe von Daten, die von der System-ECC-Einheit 1306 fehlerkorrigiert werden können, größer als die Größe von Daten sein, die von jeder der Speicher-ECC-Einheiten ECC1 bis ECC8 fehlerkorrigiert werden kann. In der vorliegenden Ausführungsform ist beschrieben worden, dass alle der System-ECC-Einheit 1306 und der Speicher-ECC-Einheiten ECC1 bis ECC8 Fehlerkorrekturoperation durchführen können. Dies stellt jedoch lediglich ein Beispiel dar, aber die vorliegende Ausführungsform ist darauf nicht beschränkt. In einer Ausführungsform können die Speicher-ECC-Einheiten ECC1 bis ECC8 nur die Fehlerprüfoperation durchführen, um zu überprüfen, ob ein Fehler aufgetreten ist, und die System-ECC-Einheit 1306 kann sowohl die Fehlerprüfoperation als auch die Fehlerkorrekturoperation durchführen.
-
1C zeigt ein Diagramm, das eine Anordnung eines Speichersystems gemäß einer dritten Ausführungsform darstellt.
-
Unter Bezugnahme auf 1C kann das Speichersystem 110 gemäß der dritten Ausführungsform eine Vielzahl von Speichervorrichtungen 1501 bis 1508 umfassen. Jede der Speichervorrichtungen 1501 bis 1508 kann eine Vielzahl von Speicherbänken BK<1:4>, eine Fehlerinformations-Sammeleinheit 1511, eine Fehleranalyseeinheit 1513, eine Gegenfehleroperationseinheit 1515 und eine Speicher-ECC-Einheit 1516 umfassen. Ferner können die Speichervorrichtungen 1501 bis 1508 Informationsspeicherbereiche PA1 bis PA8 umfassen.
-
Als Referenz basiert 1C auf der Annahme, dass jede der Speichervorrichtungen 1501 bis 1508 ein DRAM ist. Wenn die Speichervorrichtung eine andere Art von Speichervorrichtung ist, kann die detaillierte Anordnung bzw. Konfiguration der Speichervorrichtung geändert werden. Insbesondere kann jede der Speicherbänke BK<1:4> eine Vielzahl von Speicherzellen CELL (ZELLE) umfassen, die in einer Anordnung bzw. einem Array mit einer Vielzahl von Wortleitungen WL1, WL2 ... WLX und einer Vielzahl von Bitleitungen BL1, BL2, ... BLY gekoppelt sind, und jede der Speicherzellen kann ein oder mehrere Bitdaten darin speichern. Das heißt, jede der Speicherbänke BK<1:4> kann als „ein Zellenanordnungsbereich“ betrachtet werden, der eine Vielzahl von Speicherzellen in einer Anordnung umfasst. Demzufolge basiert der Ausdruck „die Vielzahl von Speicherbänken“ auf der Annahme, dass die Speichervorrichtung ein DRAM ist. Wenn die Speichervorrichtung eine andere Art von Speichervorrichtung ist, kann der Ausdruck „die Vielzahl von Speicherbänken“ durch den Ausdruck „eine Vielzahl von Zellenanordnungsbereichen“ ersetzt werden. Kurz gesagt kann die Auslegung der internen Konfigurationen der Vielzahl von Speichervorrichtungen 1501 bis 1508 gemäß den Eigenschaften der jeweiligen Speichervorrichtungen 1501 bis 1508, dem Verwendungszweck des Speichersystems 110 oder der Spezifikation des Speichersystems 110, angefordert von dem Host 102, geändert werden.
-
Wenn Fehler, die während Zugriffsoperationen auftreten, die von der Vielzahl von Speichervorrichtungen 1501 bis 1508 durchgeführt werden, die in dem Speichersystem 110 umfasst sind, beispielsweise Daten-Lese-/-Schreiboperationen, durch Operationen der Speicher-ECC-Einheiten ECC1 bis ECC8 korrigiert werden, die in der Vielzahl von Speichervorrichtungen 1501 bis 1508 umfasst sind, kann die Vielzahl von Speichervorrichtungen 1508 bis 1508 Protokollinformationen LOG_INFO über Daten erzeugen, deren Fehler durch die Speicher-ECC-Einheiten ECC1 bis ECC8 korrigiert werden. Das heißt, die Vielzahl von Speichervorrichtungen 1501 bis 1508 kann die Protokollinformationen LOG_INFO durch Akkumulieren und Speichern von Fehlerinformationen in den Informationsspeicherbereichen PA1 bis PA8 erzeugen, wobei die Fehlerinformationen den Fehlern zugeordnet sind, die durch die ECC-Speichereinheiten ECC1 bis ECC8 während der Zugriffsoperationen korrigiert werden. Die Fehlerinformationen, die den Fehlern zugeordnet sind und in den Protokollinformationen LOG_INFO umfasst sind, können alle Daten angeben, die von der Vielzahl von Speichervorrichtungen 1501 bis 1508 in Bezug auf das Auftreten der Fehler erzeugt werden. Das heißt, die Fehlerinformationen, die den Fehlern zugeordnet sind und in den Protokollinformationen LOG_INFO umfasst sind, können Zeiten bzw. Zeitpunkte der Fehler, Orte der Fehler, Attribute der Fehler, Arten bzw. Typen und Anzahl der Fehler angeben. Zum Beispiel können die Fehlerinformationen die Anzahl von Bits in Daten, in denen die Fehler aufgetreten sind, die physikalischen Speicherorte der Daten, in denen die viele aufgetreten sind, die absoluten Zeiten der Fehler, den Bereich von physischen Bereichen, in denen die viele aufgetreten sind, und die Arten der aufgetretenen Fehler angeben. Die Informationsspeicherbereiche PA1 bis PA8 können als Speicherplätze ausgeführt sein, die in der Form von Registern in den jeweiligen Speichervorrichtungen 1501 bis 1508 umfasst sind. Jeder der Informationsspeicherbereiche PA1 bis PA8 kann zumindest einem Teil von zumindest einer der Vielzahl von Speicherbänken BK<1:4> entsprechen, die in der entsprechenden Speichervorrichtung umfasst sind.
-
Insbesondere kann die Fehlerinformations-Sammeleinheit 1511 die Protokollinformationen LOG_INFO, die von der Speicher-ECC-Einheit 1516 erzeugt und in den Informationsspeicherbereichen PA1 bis PA8 gespeichert werden, in Echtzeit oder zu jedem eingestellten Zeitpunkt sammeln bzw. erfassen.
-
Die Fehlerinformations-Sammeleinheit 1511 kann eingestellte Zeitpunkte gemäß einem der folgenden Szenarien auswählen und festlegen.
-
Zunächst kann die Fehlerinformations-Sammeleinheit 1511 Zeitpunkte, die in einem bestimmten Zeitintervall ab dem Zeitpunkt einer Stromversorgung des Speichersystems 110 wieder auftreten, als die eingestellten Zeitpunkte festlegen.
-
Zweitens kann die Fehlerinformations-Sammeleinheit 1511 die Anzahl von Fehlern zählen, die während einer Zugriffsoperation auf das Speichersystem 110 auftreten, d.h. eine Zugriffsoperation auf die Vielzahl von Speichervorrichtungen 1501 bis 1508, und jeden Zeitpunkt, zu dem die gezählte Anzahl eine Referenzzahl überschreitet, als die eingestellten Zeitpunkte festlegen. Die gezählte Anzahl kann zu jedem eingestellten Zeitpunkt zurückgesetzt werden, nachdem die zu diesem eingestellten Zeitpunkt durchgeführte Fehlerzählung abgeschlossen ist. Die Anzahl von Fehlern kann beispielsweise durch die Speicher-ECC-Einheit 1516 gezählt werden.
-
Drittens kann die Fehlerinformations-Sammeleinheit 1511 eine Fehlerkorrekturoperation zum Korrigieren eines Fehlers durchführen, der während einer Zugriffsoperation auf der Speichersystem 110 auftritt, und jeden Zeitpunkt, zu dem die für die Fehlerkorrekturoperation erforderliche Zeit gleich oder länger als eine bestimmte Zeit wird, als die eingestellten Zeitpunkte festlegen. Wenn die für die Fehlerkorrekturoperation erforderliche Zeit gleich oder länger als die bestimmte Zeit ist, kann dies darauf hinweisen, dass eine relativ einfache Fehlerkorrekturoperation unter Verwendung des Hamming-Codes fehlgeschlagen ist und daher eine relativ komplexe Fehlerkorrekturoperation unter Verwendung des Reed-Solomon-Codes während des Prozesses zum Korrigieren des Fehlers verwendet wurde. Beispielsweise kann die Fehlerkorrekturoperation durch die Speicher-ECC-Einheit 1516 durchgeführt werden.
-
Die Fehleranalyseeinheit 1513 kann die durch die Fehlerinformations-Sammeleinheit 1511 gesammelten Protokollinformationen LOG_INFO und die Fehlerkorrekturinformationen ERR_CO_INFO analysieren, und somit die Anzahl, Arten und Formen von Fehlern überprüfen, die in den jeweiligen Speichervorrichtungen 1501 bis 1508 aufgetreten sind. Insbesondere kann die Fehleranalyseeinheit 1513 die von der Information-Sammeleinheit 1511 gesammelten Protokollinformationen LOG_INFO analysieren, die Anzahl und Arten von Fehlern überprüfen, die in jeder der Speichervorrichtungen 1501 bis 1508 aufgetreten sind, und gemäß der Anzahl und den Arten der Fehler, die durch die Prüfoperation bestimmt werden, Fehlerränge der jeweiligen Speichervorrichtungen 1501 bis 1508 entscheiden bzw. festlegen. Informationen über die Fehlerränge der jeweiligen Speichervorrichtungen 1501 bis 1508, die von der Fehleranalyseeinheit 1513 entschieden werden, können in den Informationsspeicherbereichen PA1 bis PA8 gespeichert werden.
-
Die Gegenfehleroperationseinheit 1515 kann verschiedene Gegenfehleroperationen an den jeweiligen Speichervorrichtungen 1501 bis 1508 gemäß den Fehlerkorrekturstärken für die Speichervorrichtungen 1501 bis 1508 durchführen, die von der Fehleranalyseeinheit 1513 entschieden werden. Die Gegenfehleroperationseinheit 1515 kann die Fehlerkorrekturstärken für die jeweiligen Speichervorrichtungen 1501 bis 1508, die von der Fehleranalyseeinheit 1513 entschieden werden, aus den InformationsspeicherbereichenPA1 bis PA8 lesen.
-
Die Speicher-ECC-Einheit 1516 kann einen ECC erzeugen, indem eine Fehlerkorrektur-Codierungsoperation an Daten durchgeführt wird, die in den jeweiligen Speichervorrichtungen 1501 bis 1508 gespeichert werden sollen. Die Speicher-ECC-Einheit 1516 kann Codewort-basierte Daten in der Vielzahl von Speichervorrichtungen 1501 bis 1508 speichern, wobei die Codewort-basierten Daten konfiguriert werden, indem der ECC in die Daten aufgenommen wird, die in den jeweiligen Speichervorrichtungen 1501 bis 1508 gespeichert werden sollen. Die Speicher-ECC-Einheit 1516 kann eine Operation zum Überprüfen durchführen, ob ein Fehler in den aus den jeweiligen Speichervorrichtungen 1501 bis 1508 gelesenen Daten aufgetreten ist, und eine Fehlerkorrektur-Decodierungsoperation durchführen, d.h. die Fehlerkorrekturoperation, wenn ein Fehler in den Lesedaten aufgetreten ist, wodurch normale Daten vor dem Auftreten des Fehlers wiederhergestellt werden. Da die in der Vielzahl von Speichervorrichtungen 1501 bis 1508 gespeicherten Daten Codewort-basierte Daten sind, können die Daten, die aus den jeweiligen Speichervorrichtungen 1501 bis 1508 gelesen werden, auch Codewort-basierte Daten sein. Demzufolge kann die Speicher-ECC-Einheit 1516 die Fehlerkorrekturoperation unter Verwendung des ECC durchführen, der in den Codewort-basierten Daten umfasst ist, die aus den jeweiligen Speichervorrichtungen 1501 bis 1508 gelesen werden. Wenn die Anzahl von in den Daten auftretenden Fehlerbits gleich oder größer als eine korrigierbare Fehlerbitgrenze ist, kann die Speicher-ECC-Einheit 1516 bei der Fehlerkorrekturoperation versagen und die Fehlerbits nicht korrigieren. Die Speicher-ECC-Einheit 1516 kann eine Fehlerkorrektur unter Verwendung einer codierten Modulation, wie beispielsweise eines Paritätscodes, eines Hamming-Codes, eines LDPC-Codes (Low Density Parity Check), eines BCH-Codes (Bose, Chaudhri, Hocquenghem), eines Turbocodes, eines Reed-Solomon-Codes, eines Convolutioncodes, eines RSC (Recursive Systematic Code), einer TCM (Trellis Coded Modulkation) oder einer BCM (Block Coded Modulation) durchführen, wobei die vorliegende Ausführungsform darauf nicht beschränkt ist. Die Speicher-ECC-Einheit 1516 kann einen Code, eine Schaltung, ein Modul, ein System oder eine Vorrichtung zur Fehlerkorrektur umfassen.
-
2 bis 4 und 5A und 5B zeigen Flussdiagramme und Diagramme zum Beschreiben einer Protokollinformations-Analyseoperation des Datenverarbeitungssystems gemäß Ausführungsformen.
-
1A und 2 zeigen das Verfahren, bei dem das Datenverarbeitungssystem die Protokollinformationen LOG_INFO und die Fehlerkorrekturinformationen ERR_CO_INFO analysiert und die Fehlerränge der jeweiligen Speichervorrichtungen 1501 bis 1508 entscheidet.
-
Insbesondere wenn Fehler, die während Zugriffsoperationen auftreten, die von der Vielzahl von Speichervorrichtungen 1501 bis 1508 durchgeführt werden, beispielsweise Daten-Lese-/Schreiboperationen, durch Operationen der Speicher-ECC-Einheiten ECC1 bis ECC8 korrigiert werden, die in der Vielzahl von Speichervorrichtungen 1501 bis 1508 umfasst sind, kann die Vielzahl von Speichervorrichtungen 1501 bis 1508 die Protokollinformationen LOG_INFO über die Daten erzeugen, deren Fehler durch die Speicher-ECC-Einheiten ECC1 bis ECC8 korrigiert werden.
-
Wenn die Fehler durch die in dem Host 102 umfasste Host-ECC-Einheit 1026 während der Zugriffsoperationen für die jeweiligen Speichervorrichtungen 1501 bis 1508 korrigiert werden, beispielsweise Datenleseoperationen, kann der Host 102 die Fehlerkorrekturinformationen ERR_CO_INFO über die Daten erzeugen, deren Fehler durch die Host-ECC-Einheit 1026 korrigiert werden.
-
Der Host 102 kann die Protokollinformationen LOG_INFO und die Fehlerkorrekturinformationen ERR_CO_INFO sammeln und analysieren. Das heißt, der Host 102 kann Fehlerränge und Fehlerkorrekturstärken für die jeweiligen Speichervorrichtungen 1501 bis 1508 entscheiden.
-
Als Referenz kann der Speichersystem 110 ferner eine Hostschnittstelle (nicht dargestellt) zum Übertragen von Signalen zwischen dem Host 102 und der Vielzahl von Speichervorrichtungen 1501 bis 1508 umfassen, obwohl dies nicht konkret in den Zeichnungen dargestellt ist. Das heißt, jede der Speichervorrichtungen 1501 bis 1085 kann die darin erzeugten Protokollinformationen LOG_INFO an den Host 102 durch die Hostschnittstelle ausgeben.
-
Auch kann der Host 102 ferner eine Speicherschnittstelle (nicht dargestellt) zum Übertragen von Signalen zwischen dem Speichersystem 110 und den anderen Komponenten 1021 bis 1026 innerhalb des Hosts 102 umfassen, obwohl dies nicht konkret in den Zeichnungen dargestellt ist. Das heißt, der Host 102 kann die Protokollinformationen LOG_INFO, die durch die Vielzahl von Speichervorrichtungen 1501 bis 1508 durch das Speichersystem 110 ausgegeben werden, durch die Speicherschnittstelle empfangen.
-
Die in dem Host 102 umfasste erste Fehleranalyseeinheit 1023 kann die Protokollinformationen LOG_INFO und die Fehlerkorrekturinformationen ERR_CO_INFO analysieren, die durch die Fehlerinformations-Sammeleinheit 1021 gesammelt werden, eine Speichervorrichtung, bei der die Anzahl von darin auftretenden Fehlern gleich oder größer als eine erste Referenzzahl ist, unter der Vielzahl von Speichervorrichtungen 1501 bis 1508 überprüfen, und die entsprechende Speichervorrichtung als „eine erste Speichervorrichtung“ in Schritt S10 klassifizieren.
-
Es wird beispielsweise angenommen, die Anzahl von Fehlern, die von der Host-ECC-Einheit 1026 oder den Speicher-ECC-Einheiten ECC1 bis ECC8 während eines Zugriffsprozesses für die Speichervorrichtung 1501 unter der Vielzahl von Speichervorrichtungen 1501 bis 1508 korrigiert werden, beträgt 12, und die Anzahl von Fehlern, die durch die Host-ECC-Einheit 1026 oder die Speicher-ECC-Einheiten ECC1 bis ECC8 während Zugriffsoperationen für die anderen Speichervorrichtungen 1502 bis 1508 korrigiert werden, beträgt weniger als 10. Angenommen, die erste Referenznummer beträgt ferner 10. In diesem Fall kann die erste Fehleranalyseeinheit 1023 die Speichervorrichtung 1501 als „die erste Speichervorrichtung“ klassifizieren und Fehlerränge der anderen Speichervorrichtungen 1502 bis 1508 nicht bestimmen.
-
Insbesondere die erste Fehleranalyseeinheit 1023 kann die Protokollinformationen LOG_INFO und die Fehlerkorrekturinformationen ERR_CO_INFO analysieren und die Arten von Fehlern überprüfen, die in der Speichervorrichtung aufgetreten sind, die als „die erste Speichervorrichtung“ klassifiziert ist (JA in Schritt S10). Die erste Fehleranalyseeinheit 1023 kann die Fehler, die in der als „die erste Speichervorrichtung“ klassifizierten Speichervorrichtung aufgetreten sind, in Schritt S20 in einen in Wortleitungseinheiten auftretenden Fehler, in Schritt S30 in einen in Einzelbiteinheiten auftretenden Fehler, in Schritt S40 in einen in Bitleitungseinheiten auftretenden Fehler und in Schritt S50 in die anderen Fehler sortieren.
-
Der in Schritt S20 in Wortleitungseinheiten auftretende Fehler kann angeben, dass zwei oder mehr Fehler, die in der als „die erste Speichervorrichtung“ klassifizierten Speichervorrichtung auftreten, in derselben Wortleitung innerhalb derselben Bank auftreten. Der in Schritt S30 in Einzelbiteinheiten auftretende Fehler kann angeben, dass ein oder kein Fehler in derselben Wortleitung und derselben Bitleitungen auftritt. Der in Schritt S40 in Bitleitungseinheiten auftretende Fehler kann angeben, dass zwei oder mehr Fehler, die in der als „die erste Speichervorrichtung“ klassifizierten Speichervorrichtung auftreten, in derselben Bitleitung auftreten. Die anderen Fehler in Schritt S50 können angeben, dass zwei oder mehr Fehler, die in der als „die erste Speichervorrichtung“ klassifizierten Speichervorrichtung auftreten, keine spezifische Verteilung aufweisen. Zum Beispiel können die anderen Fehler in Schritt S50 andere Fehler als Fehler angeben, die in Wortleitungseinheiten, Einzelbiteinheiten und Bitleitungseinheiten aufgetreten sind.
-
Wenn das Ergebnis, das durch Überprüfen der Arten der Fehler erhalten wird, die in der als „die erste Speichervorrichtung“ klassifizierten Speichervorrichtung aufgetreten sind, angibt, dass die Fehler in Schritt S20 in Wortleitungseinheiten auftretende Fehler sind, kann die erste Fehleranalyseeinheit 1023 die Anzahl von Fehlern, die in derselben Wortleitung in der als „die erste Speichervorrichtung“ klassifizierten Speichervorrichtung aufgetreten sind, in Schritt S60 zählen. Wenn die Anzahl von gezählten Fehlern gleich oder größer als eine zweite Referenzzahl (JA in Schritt S70) ist, kann die erste Fehleranalyseeinheit 1023 die entsprechende Speichervorrichtung als „eine zweite Speichervorrichtung“ klassifizieren, indem der Fehlerrang der Speichervorrichtung als ein erster Fehlerrang in Schritt S90 entschieden wird. Wenn die Anzahl von gezählten Fehlern kleiner als die zweite Referenzzahl ist (NEIN in Schritt S70), kann die erste Fehleranalyseeinheit 1023 die entsprechende Vorrichtung als „eine dritte Speichervorrichtung“ klassifizieren, indem der Fehlerrang der Speichervorrichtung als ein zweiter Fehlerrang in Schritt S80 entschieden wird.
-
Wenn das Ergebnis, das durch Überprüfen der Arten der Fehler erhalten wird, die in der als „die erste Speichervorrichtung“ klassifizierten Speichervorrichtung aufgetreten sind, angibt, dass die Fehler in Schritt S30 in Einzelbiteinheiten auftretende Fehler, in Schritt S40 in Bitleitungseinheiten auftretende Fehler und die anderen Fehler in Schritt S50 sind, kann die erste Fehleranalyseeinheit 1023 die entsprechende Speichervorrichtung als „die dritte Speichervorrichtung“ klassifizieren, indem der Fehlerrang der Speichervorrichtung als der zweite Fehlerrang in Schritt S80 entschieden wird.
-
Beispielsweise angenommen, die Fehler, die in der Speichervorrichtung 1501 aufgetreten sind, die als „die erste Speichervorrichtung“ klassifiziert ist, sind in Wortleitungseinheiten auftretende Fehler und die Anzahl von Fehlern, die in derselben Wortleitung aufgetreten sind, ist gleich oder größer als die zweite Referenzzahl. In diesem Fall kann die erste Fehleranalyseeinheit 1023 die Speichervorrichtung 1501, die als „die erste Speichervorrichtung“ klassifiziert ist, als „die zweite Speichervorrichtung‟ klassifizieren, indem der Fehlerrang der Speichervorrichtung 1501 als der erste Fehlerrang entschieden wird.
-
Unter Bezugnahme auf 1A, 2 und 3 kann die in dem Host 102 umfasste zweite Fehleranalyseeinheit 1024 einige der Vielzahl von Speichervorrichtungen 1501 bis 1508 gemäß den Fehlerrängen für die jeweiligen Speichervorrichtungen 1501 bis 1508 auswählen, die durch die erste Fehleranalyseeinheit 1023 entschieden werden. Für die Speichervorrichtungen, die unter der Vielzahl von Speichervorrichtungen 1501 bis 1508 ausgewählt sind, kann die zweite Fehleranalyseeinheit 1024 Fehlerkorrekturstärken entscheiden, indem die Formen und Anzahl von Fehlern durch eine zusätzliche Analyse Der Protokollinformationen LOG_INFO und der Fehlerkorrekturinformationen ERR_CO_INFO überprüft werden. Für die anderen Speichervorrichtungen mit Ausnahme der ausgewählten Speichervorrichtungen kann die zweite Fehleranalyseeinheit 1024 Fehlerkorrekturstärken entscheiden, die den Fehlerrängen entsprechen, die durch die erste Fehleranalyseeinheit 1023 entschieden werden.
-
Insbesondere hat die erste Fehleranalyseeinheit 1023 die Vielzahl von Speichervorrichtungen 1501 bis 1508 in eine Speichervorrichtung, deren Fehlerrang nicht entschieden wird, „die zweite Speichervorrichtung“, deren Fehlerrang als der erste Fehlerrang entschieden wird, und „die Dritte Speichervorrichtung“, deren Fehlerrang als der zweite Fehlerrang entschieden wird, klassifiziert.
-
Die zweite Fehleranalyseeinheit 1024 kann in Operation K10 überprüfen, ob der von der ersten Fehleranalyseeinheit 1023 entschiedene bzw. festgelegte Fehlerrang der erste Fehlerrang ist.
-
Wenn das Prüfergebnis von Operation K10 angibt, dass der von der ersten Fehleranalyseeinheit 1023 entschiedene Fehlerrang nicht der erste Fehlerrang ist (NEIN in Operation K10) oder die entsprechende Speichervorrichtung eine Speichervorrichtung, deren Fehlerrang nicht entschieden wird, oder „die dritte Speichervorrichtung“ ist, deren Fehlerrang als der zweite Fehlerrang entschieden wird, kann die zweite Fehleranalyseeinheit 1024 die Speichervorrichtung als „eine fünfte Speichervorrichtung“ klassifizieren, indem in Operation K70 der Speichervorrichtung eine zweite Fehlerkorrekturstärke zugewiesen wird. Die Gegenfehleroperationseinheit 1025 kann in Operation K80 eine zweite Gegenfehleroperation an der Speichervorrichtung durchführen, der die zweite Fehlerkorrekturstärke zugewiesen ist und die als „die fünfte Speichervorrichtung“ klassifiziert ist.
-
Wenn das Prüfergebnis von Operation K10 angibt, dass der durch die erste Fehleranalyseeinheit 1023 entschiedene Fehlerrang der erste Fehlerrang ist (JA in Operation K10), oder die entsprechende Speichervorrichtung „die zweite Speichervorrichtung“ ist, deren Fehlerrang als der erste Fehlerrang entschieden wird, kann die zweite Fehleranalyseeinheit 1024 die Form und die Anzahl von Fehlern durch zusätzliches Analysieren der Protokollinformationen LOG_INFO und der Fehlerkorrekturinformationen ERR_CO_INFO überprüfen und dann eine Fehlerkorrekturstärke festlegen. Insbesondere kann die zweite Fehleranalyseeinheit 1024 zusätzlich die Protokollinformationen LOG_INFO und die Fehlerkorrekturinformationen ERR_CO_INFO auf „der zweiten Speichervorrichtung“ analysieren, deren Fehlerrang als der erste Fehlerrang festgelegt wird, und in Operation K30 überprüfen, ob die in „der zweiten Speichervorrichtung“ aufgetretenen Fehler über Codeworteinheiten verteilt sind, deren Anzahl gleich oder größer als eine dritte Referenzzahl ist.
-
Die Operation zum Überprüfen von Fehlern über Codeworteinheiten wird unter Bezugnahme auf 4, 5A und 5B beschrieben.
-
Unter Bezugnahme auf 4 kann die Grundbedeutung der Codeworteinheit die Datenmenge angeben, die auf einen Differenzbetrag für eine Operation zum Korrigieren eines Fehlers eingestellt wird, wenn die in dem Host 102 umfasste Host-ECC-Einheit 1026 die Operation zum Korrigieren eines Fehlers durchführt. Wenn zum Beispiel der Host 102 512-Bit-Daten zum Speichern in dem Speichersystem 110 (401) erzeugt, kann die Host-ECC-Einheit 1026 einen 64-Bit-ECC (403) durch Durchführen einer Fehlerkorrektur-Codierungsoperation (402) an den 512-Bit-Daten erzeugen. Der Host 102 kann insgesamt 572-Bit-Daten, die durch Summieren der darin erzeugten 512-Bit-Daten und des 64-Bit-ECC erhalten werden, in zwei Codeworteinheiten aufteilen und die Codeworteinheiten verwalten (404). Das heißt, eine Codeworteinheit kann 288-Bit-Daten umfassen, die durch Summieren der 256-Bit-Daten, die in dem Host 102 erzeugt werden, und des 32-Bit-ECC erhalten werden. Der Host 102 kann die 572-Bit-Daten an das Speichersystem 110 ausgeben (405). Als Referenz stellt 4 dar, dass die 572-Bit-Daten als zwei Codeworteinheiten verwaltet werden. In der Realität können die 572-Bit-Daten jedoch als eine kleinere oder größere Anzahl von Codeworteinheiten verwaltet werden.
-
4 basiert auf der Annahme, dass der Speichersystem 110 im Gegensatz zu der Ausführungsform von 1 insgesamt 18 Speichervorrichtungen umfasst. Das Speichersystem 110 kann die 572-Bit-Daten (405) verteilen und speichern, die von dem Host 102 in die 18 Speichervorrichtungen eingegeben werden. Demzufolge können 32-Bit-Daten in jeder der 18 Speichervorrichtungen gespeichert werden. Da ferner der Host 102 die 572-Bit-Daten in zwei Codeworteinheiten aufteilt und die Codeworteinheiten verwaltet, kann der Speichersystem 110 beiden Codeworteinheiten entsprechende Daten in jeder der 18 Speichervorrichtungen speichern. Demzufolge können 16-Bit-Daten, die dem ersten Codewort Codeword0 entsprechen, und 16-Bit-Daten, die dem zweiten Codewort Codeword1 entsprechen, in jeder der 18 Speichervorrichtungen gespeichert werden. Das heißt, dass Speichersystem 110 kann die 288-Bit-Daten, die einem ersten Codewort Codeword0 entsprechen, und die 288-Bit-Daten, die einem zweiten Codewort Codeword1 entsprechen, in den 18 Speichervorrichtungen verteilen und speichern.
-
Wenn von dem Host 102 eingegebenen 572-Bit-Daten in jeder der 18 Speichervorrichtungen gespeichert werden, kann der Speichersystem 110 erkennen, dass die 572-Bit-Daten kontinuierliche Daten sind, und eine Burst-Länge BL zum Speichern der Daten einstellen. Angenommen, jede der 18 Speichervorrichtungen weist vier Daten-I/O (Eingabe/Ausgabe) Anschlüsse (x4) auf. In diesem Fall kann das Speichersystem 110 eine obere Burst-Länge auf 4 (BL4) einstellen und 288-Bit-Daten, die dem ersten Codewort Codeword0 entsprechen, in den 18 Speichervorrichtungen durch 16 Bits verteilen und speichern. Ferner kann das Speichersystem 110 eine untere Burst-Länge auf 4 (BL4) einstellen und 288-Bit-Daten, die dem zweiten Codewort Codeword1 entsprechen, in den 18 Speichervorrichtungen durch 16 Bits verteilen und speichern.
-
Wie oben unter Bezugnahme auf 4 beschrieben, kann der Host 102 Daten, die als eine oder mehrere Codeworteinheiten verwaltet werden, an das Speichersystem 110 ausgeben. Das Speichersystem 110 kann die Daten, die von dem Host 102 eingegeben werden, in einer der Codeworteinheit entsprechenden Form in die Vielzahl von Speichervorrichtungen verteilen und speichern.
-
Unter Bezugnahme auf 5A werden 32-Bit-Daten für eine Speichervorrichtung in 16-Bit-Daten, die beiden Codeworteinheiten Codeword0 bzw. Codeword1 entsprechen, wie unter Bezugnahme auf 4 beschrieben aufgeteilt und dann durch vier Daten-I/O-Anschlüsse (x4) DQ<0:3> gelesen. 5A zeigt, dass Fehlerbits ERROR BIT in Daten aufgetreten sind, die durch bestimmte Daten-Eingabe/Ausgabe-Anschlüsse, zum Beispiel erste und dritte Daten-I/O-Anschlüsse DQ<1, 3> gelesen werden. Das heißt, die Ursache eines Auftretens der Fehlerbits ist nicht in 5A umfasst, aber die Fehlerbits sind in den Daten aufgetreten, die durch die bestimmten Daten-I/O-Anschlüsse gelesen werden. Somit sind die Fehlerbits ERROR BIT über die beiden Codeworteinheiten Codeword0 und Codeword1 verteilt.
-
Unter Bezugnahme auf 5B werden 32-Bit-Daten für eine Speichervorrichtung in 16-Bit-Daten aufgeteilt, die den beiden Codeworteinheiten Codeword0 bzw. Codeword1 entsprechen, und dann durch die vier Daten-Eingabe/Ausgabe-Anschlüsse (x4) DQ<0:3> wie in 5A gelesen. 5B zeigt, dass Fehlerbits ERROR BIT in den gelesenen Daten aufgetreten sind, die in der ersten Codeworteinheit Codeword0 umfasst sind, aber keine Fehlerbits in den gelesenen Daten aufgetreten sind, die in der zweiten Codeworteinheit Codeword1 umfasst sind. Das heißt, die Ursache eines Auftretens der Fehler ist nicht in 5B umfasst, aber die Fehlerbits sind in nur einer Codeworteinheit Codeword0 umfasst und sind nicht über den beiden Codeworteinheiten Codeword0 und Codewort1 verteilt.
-
Unter erneuter Bezugnahme auf 1A, 2 und 3 kann eine Operation K30 zum zusätzlichen Analysieren der Protokollinformationen LOG_INFO auf „der zweiten Speichervorrichtung“, die von der zweiten Fehleranalyseeinheit 1024 als der erste Fehlerrang festgelegt worden ist, und zum Überprüfen, ob in „der zweiten Speichervorrichtung“ auftretende Fehler über Codeworteinheiten verteilt sind, von denen die Anzahl gleich oder größer als die dritte Referenzzahl ist, eine Operation zum Überprüfen angeben, ob die Fehler, die in „der zweiten Speichervorrichtung“ aufgetreten sind, über beide Codeworteinheiten verteilt sind, wie in 5A dargestellt, oder in nur einer Codeworteinheit umfasst sind, wie in 5B dargestellt, unter der Annahme, dass die dritte Referenzzahl auf 2 eingestellt ist.
-
Wenn das Prüfergebnis von Operation K30 angibt, dass die Fehler, die in „der zweiten Speichervorrichtung“ aufgetreten sind, über Codeworteinheiten verteilt sind, deren Anzahl gleich oder größer als sie dritte Referenzzahl ist (JA in Operation K30), kann die zweite Fehleranalyseeinheit 1024 in Operation K40 überprüfen, ob eine Gesamtzahl von Fehlerbits, die über die Codeworteinheiten verteilt sind, deren Anzahl gleich oder größer als die dritte Referenzzahl ist, gleich oder größer als eine vierte Referenzzahl ist. Da beispielsweise die Gesamtzahl der über den beiden Codeworteinheiten Codeword0 und Codeword1 verteilten Fehlerbits wie in 5A 16 beträgt, unter der Annahme, dass die vierte Referenzzahl auf 8 eingestellt ist, kann die Gesamtzahl der Fehlerbits gleich oder mehr als die auf 8 eingestellte Referenzzahl sein.
-
Wenn das Prüfergebnis von Operation K40 angibt, dass die Gesamtanzahl von Fehlerbits, die über Codeworteinheiten verteilt sind, deren Anzahl gleich oder größer als sie dritte Referenzzahl ist, gleich oder größer als die vierte Referenzzahl ist (JA in Operation K40), während die Fehler, die in „der zweiten Speichervorrichtung“ aufgetreten sind, über Codeworteinheiten verteilt sind, deren Anzahl gleich oder größer als die dritte Referenzzahl ist (JA in Operation K30), kann die zweite Fehleranalyseeinheit 1024 „der zweiten Speichervorrichtung“ eine erste Fehlerkorrekturstärke zuordnen und die entsprechende Speichervorrichtung als „eine vierte Speichervorrichtung“ in Operation K50 klassifizieren. Die Gegenfehleroperationseinheit 1025 kann in Operation K60 eine erste Gegenfehleroperation auf der Speichervorrichtung durchführen, der die erste Fehlerkorrekturstärke zugewiesen ist und die als „die vierte Speichervorrichtung“ klassifiziert ist.
-
Wenn das Prüfergebnis von Operation K30 angibt, dass die Fehler, die in „der zweiten Speichervorrichtung“ aufgetreten sind, nur in einer Codeworteinheit kleiner als sie dritte Referenzzahl umfasst ist (NEIN in Operation K30), kann die zweite Fehleranalyseeinheit 1024 „der zweiten Speichervorrichtung“ eine zweite Fehlerkorrekturstärke zuweisen und die entsprechende Speichervorrichtung als „die fünfte Speichervorrichtung“ in Operation K70 klassifizieren. Die Gegenfehleroperationseinheit 1025 kann in Operation K80 die zweite Gegenfehleroperation auf der Speichervorrichtung durchführen, der die zweite Fehlerkorrekturstärke zugewiesen ist und die als „die fünfte Speichervorrichtung“ klassifiziert ist.
-
Die Operation der zweiten Fehleranalyseeinheit 1024 wird wie folgt beschrieben.
-
Zunächst, wie unter Bezugnahme auf 2 beschrieben, ist angenommen worden, dass die erste Fehleranalyseeinheit 1023 die Speichervorrichtung 1501 unter der Vielzahl von Speichervorrichtungen 1501 bis 1508 als „die zweite Speichervorrichtung“ klassifizierte, indem der Fehlerrang der Speichervorrichtung 1501 als der erste Fehlerrang entschieden worden ist, und nicht die Fehlerränge der anderen Speichervorrichtungen 1502 bis 1508 entschied und es keine Speichervorrichtung gab, deren Fehlerrang als der zweite Fehlerrang festgelegt worden ist und die als „die dritte Speichervorrichtung“ klassifiziert worden ist.
-
Die zweite Fehleranalyseeinheit 1024 kann die zweite Fehlerkorrekturstärke der Speichervorrichtung zuweisen, deren Fehlerrang nicht als der erste Fehlerrang von der ersten Fehleranalyseeinheit 1023 bestimmt wird (NEIN in Operation K10), d.h., die Speichervorrichtung, deren Fehlerrang nicht entschieden wird, und „die dritte Speichervorrichtung“, deren Fehlerrang als der zweite Fehlerrang entschieden wird, und die Speichervorrichtung als „die fünfte Speichervorrichtung“ in Operation K70 klassifizieren. Demzufolge kann die zweite Fehleranalyseeinheit 1024 die zweite Fehlerkorrekturstärke den anderen Speichervorrichtungen 1502 bis 1508 zuweisen, deren Fehlerränge nicht entschieden werden, und die anderen Speichervorrichtungen 1502 bis 1508 als „die fünften Speichervorrichtungen“ in Operation K70 klassifizieren.
-
In dem Fall der Speichervorrichtung, deren Fehlerrang als der erste Fehlerrang durch die erste Fehleranalyseeinheit 1023 entschieden wird (JA in Operation K10), d.h., „die zweite Speichervorrichtung“, deren Fehlerrang als der erste Fehlerrang entschieden wird, kann die zweite Fehleranalyseeinheit 1024 die Form und Anzahl der Fehler durch zusätzliches Analysieren der Protokollinformationen LOG_INFO und der Fehlerkorrekturinformationen ERR_CO_INFO prüfen und dann eine Fehlerkorrekturstärke festlegen. Demzufolge kann die zweite Fehleranalyseeinheit 1024 die Form und Anzahl von Fehlern durch zusätzliches Analysieren der Protokollinformationen LOG_INFO und der Fehlerkorrekturinformationen ERR_CO_INFO auf der Speichervorrichtung 1501 prüfen, deren Fehlerrang als der erste Fehlerrang entschieden wird und die als „die zweite Speichervorrichtung“ klassifiziert wird, und dann eine Fehlerkorrekturstärke festlegen.
-
Insbesondere kann die zweite Fehleranalyseeinheit 1024 zusätzlich die Protokollinformationen LOG_INFO und die Fehlerkorrekturinformationen ERR_CO_INFO auf der Speichervorrichtung 1501 in Operation K30 analysieren und prüfen, ob die Fehler über Codeworteinheiten verteilt sind, deren Anzahl gleich oder größer als sie dritte Referenzzahl ist. Das Prüfergebnis kann angeben, dass die Fehler, die in der Speichervorrichtung 1501 aufgetreten sind, über Codeworteinheiten verteilt sind, deren Anzahl gleich oder größer als sie dritte Referenzzahl ist (JA in Operation K30). Demzufolge kann die zweite Fehleranalyseeinheit 1024 in Operation K40 prüfen, ob die Gesamtanzahl von Fehlerbits, die in den Fehlern enthalten sind, die über Codeworteinheiten verteilt sind, deren Anzahl gleich oder größer als die dritte Referenzzahl in der Speichervorrichtung 1501 ist, gleich oder größer als die vierte Referenzzahl ist. Das Prüfergebnis kann angeben, dass die Gesamtzahl von Fehlerbits, die über die Codeworteinheiten verteilt sind, deren Anzahl gleich oder größer als sie dritte Referenzzahl in der Speichervorrichtung 1501 ist, gleich oder größer als die vierte Referenzzahl ist (JA in Operation K40). Demzufolge kann die zweite Fehleranalyseeinheit 1024 die Speichervorrichtung 1501 als „die vierte Speichervorrichtung“ klassifizieren, indem der Speichervorrichtung 1501 in Operation K60 die erste Fehlerkorrekturstärke zugewiesen wird.
-
Die in dem Host 102 umfasste Gegenfehleroperationseinheit 1025 kann Gegenfehleroperationen an den jeweiligen Speichervorrichtungen 1501 bis 1508 gemäß den Fehlerkorrekturstärken für die Speichervorrichtungen 1501 bis 1508 durchführen, die von der zweite Fehleranalyseeinheit 1024 entschieden werden.
-
Insbesondere kann die Gegenfehleroperationseinheit 1025 die erste Gegenfehleroperation an der Speichervorrichtung durchführen, die die zweite Fehleranalyseeinheit 1024 als „die vierte Speichervorrichtung“ durch Zuweisen der ersten Fehlerkorrekturstärke unter der Vielzahl von Speichervorrichtungen 1501 bis 1508 klassifiziert hat. Ferner kann die Gegenfehleroperationseinheit 1025 die zweite Gegenfehleroperation an der Speichervorrichtung durchführen, die die zweite Fehleranalyseeinheit 1024 als „die fünfte Speichervorrichtung“ durch Zuweisen der zweiten Fehlerkorrekturstärke unter der Vielzahl von Speichervorrichtungen 1501 bis 1508 klassifiziert hat.
-
Die erste Gegenfehleroperation kann eine oder mehrere Operationen unter den folgenden Operationen umfassen.
-
Die erste Operation ist eine Operation zum Auswählen eines Bereichs, in dem die Fehler in der als „die vierte Speichervorrichtung“ klassifizierten Speichervorrichtung aufgetreten sind, und zum Blockieren eines Zugriffs auf den ausgewählten Bereich. Zum Beispiel kann die Gegenfehleroperationseinheit 1025 einen bestimmten Block, eine bestimmte Wortleitung oder Bitleitung in der als „die vierte Speichervorrichtung“ klassifizierten Speichervorrichtung 1501 auswählen und einen Zugriff auf den ausgewählten Block, ausgewählte Wortleitung oder Bitleitung blockieren. Die Gegenfehleroperationseinheit 1025 kann in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung gespeicherte Daten kopieren, der/die das Ziel zum Blockieren des Zugriffs ist, die kopierten Daten in „einem anderen Bereich“ speichern und dann die Operation zum Blockieren des Zugriffs durchführen. Hierbei kann „ein anderer Bereich“ einen anderen normalen Block, eine normale Wortleitung oder normale Begleitung der Speichervorrichtung 1501 angeben. Ferner kann „ein anderer Bereich“ einen anderen normalen Block, eine normale Wortleitung oder normale Bitleitung angeben, die in den anderen Speichervorrichtungen 1502 bis 1508 anstelle der Speichervorrichtung 1501 umfasst ist. Als Referenz ist der Grund, warum die Operation zum Speichern der Daten, die in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung gespeichert werden, der/die das Ziel zum Blockieren des Zugriffs ist, in „einem anderen Bereich“ normalerweise durchgeführt werden kann, weil der bestimmte Block, die bestimmte Wortleitung oder Bitleitung nur als das Ziel zum Blockieren des Zugriffs ausgewählt wird, da es erwartet wird, dass ein nicht behebbarer Fehler höchstwahrscheinlich in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung zu dem Zeitpunkt in naher Zukunft auftritt und der bestimmte Block, die bestimmte Wortleitung oder Bitleitung normalerweise betrieben wird oder nur ein behebbarer Fehler in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung zu dem aktuellen Zeitpunkt auftritt.
-
Die zweite Operation ist eine Operation zum Auswählen eines Bereichs, in dem die Fehler in der als „die vierte Speichervorrichtung“ klassifizierten Speichervorrichtung aufgetreten sind, und zum Reparieren des ausgewählten Bereichs. Zum Beispiel kann die Gegenfehleroperationseinheit 1025 einen bestimmten Block, eine bestimmte Wortleitung oder Bitleitung in der als „die vierte Speichervorrichtung“ klassifizierten Speichervorrichtung 1501 mit einem anderen normalen Redundanzblock, einer normalen Redundanzwortleitung oder Redundanzbitleitung reparieren. Der Host 102 kann einen Zugriff auf die Speichervorrichtung 1501 stoppen, bis die Reparaturoperation für die Speichervorrichtung 1501, die dem Reparaturziel entspricht, abgeschlossen ist. Die Speichervorrichtung 1501, die das Reparaturziel darstellt, kann die Daten, die in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung gespeichert sind, der/die auf das Reparaturziel eingestellt ist, in den Informationsspeicherbereich PA1 darin kopieren und dann die Reparaturoperation durchführen. Nachdem die Reparaturoperation abgeschlossen ist, kann die Speichervorrichtung 1501 die in den Informationsspeicherbereich PA1 kopierten Daten in den Redundanzblock, die Redundanzwortleitung oder Redundanzbitleitung wiederherstellen. Als Referenz ist der Grund, warum die Operation zum Kopieren der Daten, die in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung gespeichert sind, der/die auf das Reparaturziel eingestellt ist, in den Informationsspeicherbereich PA1 normalerweise durchgeführt werden kann, weil der bestimmte Block, die bestimmte Wortleitung oder Bitleitung nur als das Reparaturziel ausgewählt wird, da es erwartet wird, dass ein nicht behebbarer Fehler höchstwahrscheinlich in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung zu dem Zeitpunkt in naher Zukunft auftritt und der bestimmte Block, die bestimmte Wortleitung oder Bitleitung normalerweise betrieben wird oder nur ein behebbarer Fehler in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung zu dem aktuellen Zeitpunkt auftritt.
-
Die dritte Operation ist eine Operation zum Auswählen eines Bereichs, in dem die Fehler in der als „die vierte Speichervorrichtung“ klassifizierten Speichervorrichtung aufgetreten sind, und zum Deaktivieren des ausgewählten Bereichs. Zum Beispiel kann die Gegenfehleroperationseinheit 1025 einen bestimmten Block, eine bestimmte Wortleitung oder Bitleitung in der als „die vierte Speichervorrichtung“ klassifizierten Speichervorrichtung 1501 deaktivieren. Die Speichervorrichtung 1501, die das Ziel zum Deaktivieren ist, kann Daten kopieren, die in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung gespeichert sind, der/die auf das Ziel zum Deaktivieren eingestellt ist, die kopierten Daten in „einem anderen Bereich“ speichern und den Host 102 informieren, dass die Daten zu „einem anderen Bereich“ verschoben worden sind. Hierbei kann „ein anderer Bereich“ einen anderen normalen Block, eine normale Wortleitung oder normale Bitleitung der Speichervorrichtung 1501 angeben. Ferner kann „ein anderer Bereich“ einen anderen normalen Block, eine normale Wortleitung oder normale Bitleitung angeben, die in den anderen Speichervorrichtungen 1502 bis 1508 anstelle der Speichervorrichtung 1501 umfasst ist. Als Referenz ist der Grund, warum die Operation zum Speichern der Daten, die in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung gespeichert werden, der/die auf das Ziel zum Deaktivieren eingestellt ist, in „einem anderen Bereich“ normalerweise durchgeführt werden kann, weil der bestimmte Block, die bestimmte Wortleitung oder Bitleitung nur als das Ziel zum Deaktivieren ausgewählt wird, da es erwartet wird, dass ein nicht behebbarer Fehler höchstwahrscheinlich in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung zu dem Zeitpunkt in naher Zukunft auftritt und der bestimmte Block, die bestimmte Wortleitung oder Bitleitung normalerweise betrieben wird oder nur ein behebbarer Fehler in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung zu dem aktuellen Zeitpunkt auftritt.
-
Die zweite Gegenfehleroperation kann eine Gegenfehleroperation umfassen, die einen ECC für Codewortbasierte Daten verwendet, in denen ein Fehler auftritt, und wird durch die Host-ECC-Einheit 1026 durchgeführt, wenn der Fehler während einer Zugriffsoperation für die als „die fünfte Speichervorrichtung“ klassifizierte Speichervorrichtung auftritt.
-
1B und 2 zeigen das Verfahren, bei dem das Datenverarbeitungssystem die Protokollinformationen LOG_INFO und die Fehlerkorrekturinformationen „die erste Speichervorrichtung“ analysiert und die Fehlerränge der jeweiligen Speichervorrichtungen 1501 bis 1508 festgelegt.
-
Insbesondere wenn Fehler, die während Zugriffsoperationen auftreten, die von der Vielzahl von Speichervorrichtungen 1501 bis 1508 durchgeführt werden, beispielsweise Daten-Lese/Schreib-Operationen, durch Operationen der Speicher-ECC-Einheiten ECC1 bis ECC8 korrigiert werden, die in der Vielzahl von Speichervorrichtungen 1501 bis 1508 umfasst sind, kann die Vielzahl von Speichervorrichtungen 1501 bis 1508 Protokollinformationen LOG_INFO über die Daten erzeugen, deren Fehler durch die Speicher-ECC-Einheiten ECC1 bis ECC8 korrigiert worden sind.
-
Wenn Fehler durch die in der Steuerung 130 umfasste System-ECC-Einheit 1306 während der Zugriffsoperationen für die jeweiligen Speichervorrichtungen 1501 bis 1508 korrigiert werden, zum Beispiel Daten-Lese-Operationen, kann die Steuerung 130 die Fehlerkorrekturinformationen ERR_CO_INFO über die Daten erzeugen, deren Fehler durch die System-ECC-Einheit 1306 korrigiert werden.
-
Die Steuerung 130 kann die Protokollinformationen LOG_INFO und die Fehlerkorrekturinformationen ERR_CO_INFO sammeln und analysieren. Das heißt, die Steuerung 130 kann Fehlerränge und Fehlerkorrekturstärken für die jeweiligen Speichervorrichtungen 1501 bis 1508 entscheiden bzw. festlegen.
-
Die in der Steuerung 130 umfasste erste Fehleranalyseeinheit 1303 kann die Protokollinformationen LOG_INFO und die Fehlerkorrekturinformationen ERR_CO_INFO analysieren, die von der Fehlerinformations-Sammeleinheit 1301 gesammelt werden, eine Speichervorrichtung, in der die Anzahl von darin auftretenden Fehlern gleich oder größer als eine erste Referenzzahl ist, unter der Vielzahl von Speichervorrichtungen 1501 bis 1508 prüfen und die entsprechende Speichervorrichtung als „eine erste Speichervorrichtung“ in Schritt S10 klassifizieren.
-
Angenommen beispielsweise, die Anzahl von Fehlern, die durch die System-ECC-Einheit 1306 oder die Speicher-ECC-Einheiten ECC1 bis ECC8 während eines Zugriffsprozesses für die Speichervorrichtung 1501 unter der Vielzahl von Speichervorrichtungen 1501 bis 1508 korrigiert werden, beträgt 12 und die Anzahl von Fehlern, die durch die System-ECC-Einheit 1306 oder die Speicher-ECC-Einheiten ECC1 bis ECC8 während Zugriffprozessen für die anderen Speichervorrichtungen 1502 bis 1508 korrigiert werden, beträgt weniger als 10. Angenommen, die erste Referenzzahl beträgt ferner 10. In diesem Fall kann die erste Fehleranalyseeinheit 1303 die Speichervorrichtung 1501 als „die erste Speichervorrichtung“ klassifizieren und Fehlerränge der anderen Speichervorrichtungen 1502 bis 1508 nicht festlegen.
-
Insbesondere kann die erste Fehleranalyseeinheit 1303 die Protokollinformationen LOG_INFO und die Fehlerkorrekturinformationen ERR_CO_INFO analysieren und die Arten der Fehler prüfen, die in der als „die erste Speichervorrichtung“ klassifizierten Speichervorrichtung aufgetreten sind (JA in Schritt S10). Die erste Fehleranalyseeinheit 1303 kann die Fehler, die in der als „die erste Speichervorrichtung“ klassifizierten Speichervorrichtung aufgetreten sind, in einen Fehler, der in Wortleitungseinheiten in Schritt S20 auftritt, einen Fehler, der in Einzelbiteinheiten in Schritt S30 auftritt, einen Fehler, der in Bitleitungseinheiten in Schritt S40 auftritt und die anderen Fehler in Schritt S50 sortieren.
-
Der Fehler, der in Wortleitungseinheiten in Schritt S20 auftritt, kann angeben, dass zwei oder mehr Fehler, die in der als „die erste Speichervorrichtung“ klassifizierten Speichervorrichtung aufgetreten sind, in derselben Wortleitung innerhalb derselben Bank auftreten. Der Fehler, der in Einzelbiteinheiten in Schritt S30 auftritt, kann angeben, dass ein oder keine Fehler in derselben Wortleitung und derselben Bitleitung auftritt. Der Fehler, der in Bitleitungseinheiten in Schritt S40 auftritt, kann angeben, dass zwei oder mehr Fehler, die in der als „die erste Speichervorrichtung“ klassifizierten Speichervorrichtung auftreten, in derselben Bitleitung auftreten. Die anderen Fehler in Schritt S50 können angeben, dass zwei oder mehr Fehler, die in der als „die erste Speichervorrichtung“ klassifizierten Speichervorrichtung auftreten, keine bestimmte Verteilung aufweisen. Beispielsweise können die anderen Fehler in Schritt S50 andere Fehler als jene angeben, die in Wortleitungseinheiten, Einzelbiteinheiten oder Bitleitungseinheiten aufgetreten sind.
-
Wenn das Ergebnis, das durch Überprüfung der Arten der Fehler erhalten wird, die in der als „die erste Speichervorrichtung“ klassifizierten Speichervorrichtung aufgetreten sind, angibt, dass die Fehler in Wortleitungseinheiten auftretende Fehler in Schritt S20 sind, kann die erste Fehleranalyseeinheit 1303 die Anzahl von Fehlern in Schritt S60 zählen, die in derselben Wortleitung in der als „die erste Speichervorrichtung“ klassifizierten Speichervorrichtung aufgetreten sind. Wenn die Anzahl von gezählten Fehlern gleich oder größer als eine zweite Referenzzahl ist (JA in Schritt S70), kann die erste Fehleranalyseeinheit 1303 die entsprechende Speichervorrichtung als „eine zweite Speichervorrichtung“ klassifizieren, indem der Fehlerrang der Speichervorrichtung als ein erster Fehlerrang in Schritt S90 festgelegt wird. Wenn die Anzahl von gezählten Fehlern kleiner als die zweite Referenzzahl ist (NEIN in Schritt S70), kann die erste Fehleranalyseeinheit 1303 die entsprechende Speichervorrichtung als „eine dritte Speichervorrichtung“ klassifizieren, indem der Fehlerrang der Speichervorrichtung als ein zweiter Fehlerrang in Schritt S80 festgelegt wird.
-
Wenn das Ergebnis, das durch Prüfen der Arten der Fehler erhalten wird, die in der als „die erste Speichervorrichtung“ klassifizierten Speichervorrichtung aufgetreten sind, angibt, dass die Fehler in Einzelbiteinheiten auftretende Fehler (JA in Schritt S30), in Bitleitungseinheiten auftretende Fehler (JA in Schritt S40) und die anderen Fehler (JA in Schritt S50) sind, kann die erste Fehleranalyseeinheit 1303 die entsprechende Speichervorrichtung als „die dritte Speichervorrichtung“ klassifizieren, indem der Fehlerrang der Speichervorrichtung als der zweite Fehlerrang in Schritt S80 festgelegt wird.
-
Angenommen beispielsweise, die Fehler, die in der als „die erste Speichervorrichtung“ klassifizierten Speichervorrichtung 1501 aufgetreten sind, sind in Wortleitungseinheiten auftretende Fehler, und die Anzahl von Fehlern, die in derselben Wortleitung aufgetreten sind, ist gleich oder größer als die zweite Referenzzahl. In diesem Fall kann die erste Fehleranalyseeinheit 1303 die Speichervorrichtung 1501, die als „die erste Speichervorrichtung“ klassifiziert ist, als „die zweite Speichervorrichtung“ klassifizieren, indem der Fehlerrang der Speichervorrichtung 1501 als der erste Fehlerrang festgelegt wird.
-
Unter Bezugnahme auf 1B, 2 und 3 kann die in der Steuerung 130 umfasste zweite Fehleranalyseeinheit 1304 einige der Vielzahl von Speichervorrichtungen 1501 bis 1508 gemäß den Federrängen der jeweiligen Speichervorrichtungen 1501 bis 1508 auswählen, die von der ersten Fehleranalyseeinheit 1303 festgelegt werden. Für die einigen Speichervorrichtungen, die unter der Vielzahl von Speichervorrichtungen 1501 bis 1508 ausgewählt werden, kann die zweite Fehleranalyseeinheit 1304 Fehlerkorrekturstärken durch Prüfen der Formen und der Anzahl der Fehler durch eine zusätzliche Analyse der Protokollinformationen LOG_INFO und der Fehlerkorrekturinformationen ERR_CO_INFO festlegen. Für die anderen Speichervorrichtungen mit Ausnahme der ausgewählten Speichervorrichtungen kann die zweite Fehleranalyseeinheit 1304 Fehlerkorrekturstärken festlegen, die den Fehlerränge entsprechen, die durch die erste Fehleranalyseeinheit 1303 festgelegt werden.
-
Insbesondere hat die erste Fehleranalyseeinheit 1303 die Vielzahl von Speichervorrichtungen 1501 bis 1508 in eine Speichervorrichtung, deren Fehlerrang nicht festgelegt wird, „die zweite Speichervorrichtung“, deren Fehlerrang als der erste Fehlerrang festgelegt wird, und „die Dritte Speichervorrichtung“, deren Fehlerrang als der zweite Fehlerrang festgelegt wird, klassifiziert.
-
Die zweite Fehleranalyseeinheit 1304 kann in Operation K10 prüfen, ob der von der ersten Fehleranalyseeinheit 1303 festgelegte Fehlerrang der erste Fehlerrang ist.
-
Wenn das Prüfergebnis von Operation K10 angibt, dass der von der ersten Fehleranalyseeinheit 1303 festgelegte Fehlerrang nicht der erste Fehlerrang ist (NEIN in Operation K10) oder die entsprechende Speichervorrichtung eine Speichervorrichtung, deren Fehlerrang nicht festgelegt wird, oder „die dritte Speichervorrichtung“ ist, deren Fehlerrang als der zweite Fehlerrang festgelegt wird, kann die zweite Fehleranalyseeinheit 1304 die entsprechende Speichervorrichtung als „eine fünfte Speichervorrichtung“ klassifizieren, indem der Speichervorrichtung in Operation K70 eine zweite Fehlerkorrekturstärke zugewiesen wird. Die Gegenfehleroperationseinheit 1305 kann in Operation K80 eine zweite Gegenfehleroperation an der Speichervorrichtung durchführen, der die zweite Fehlerkorrekturstärke zugewiesen ist und die als „die fünfte Speichervorrichtung“ klassifiziert ist.
-
Wenn das Prüfergebnis von Operation K10 angibt, dass der von der ersten Fehleranalyseeinheit 1303 festgelegte Fehlerrang der erste Fehlerrang ist (JA in Operation K10) oder die Speichervorrichtung „die zweite Speichervorrichtung“ ist, deren Fehlerrang als der erste Fehlerrang entschieden wird, kann die zweite Fehleranalyseeinheit 1304 die Form und die Anzahl von Fehlern durch zusätzliches Analysieren der Protokollinformationen LOG_INFO und der Fehlerkorrekturinformationen ERR_CO_INFO prüfen und dann eine Fehlerkorrekturstärke festlegen. Insbesondere kann die zweite Fehleranalyseeinheit 1304 zusätzlich die Protokollinformationen LOG_INFO und die Fehlerkorrekturinformationen ERR_CO_INFO an „der zweiten Speichervorrichtung“ analysieren, deren Fehlerrang als der erste Fehlerrang entschieden wird, und in Operation K30 prüfen, ob die Fehler, die in „der zweiten Speichervorrichtung“ aufgetreten sind, über Codeworteinheiten verteilt sind, deren Anzahl gleich oder größer als eine dritte Referenzzahl ist.
-
Die Bedeutung der Operation zum Prüfen von Fehlern, die über Codeworteinheiten verteilt sind, ist bereits unter Bezugnahme auf 1A, 4, 5A und 5B beschrieben worden. Demzufolge wird die ausführliche Beschreibung davon hier weggelassen.
-
Ferner kann die Operation K30 zum zusätzlichen Analysieren der Protokollinformationen LOG_INFO auf „der zweiten Speichervorrichtung“, die von der zweiten Fehleranalyseeinheit 1304 als der erste Fehlerrang festgelegt worden ist, und zum Überprüfen, ob in „der zweiten Speichervorrichtung“ auftretende Fehler über Codeworteinheiten verteilt sind, deren Anzahl gleich oder größer als die dritte Referenzzahl ist, eine Operation zum Überprüfen angeben, ob die Fehler, die in „der zweiten Speichervorrichtung“ aufgetreten sind, über beide Codeworteinheiten verteilt sind, wie in 5A dargestellt, oder in nur einer Codeworteinheit umfasst sind, wie in 5B dargestellt, unter der Annahme, dass die dritte Referenzzahl auf 2 eingestellt ist.
-
Wenn das Prüfergebnis von Operation K30 angibt, dass die Fehler, die in „der zweiten Speichervorrichtung“ aufgetreten sind, über Codeworteinheiten verteilt sind, deren Anzahl gleich oder größer als sie dritte Referenzzahl ist (JA in Operation K30), kann die zweite Fehleranalyseeinheit 1304 in Operation K40 überprüfen, ob die Gesamtzahl von Fehlerbits, die über die Codeworteinheiten verteilt sind, deren Anzahl gleich oder größer als die dritte Referenzzahl ist, gleich oder größer als eine vierte Referenzzahl ist. Da beispielsweise die Gesamtzahl der über den beiden Codeworteinheiten Codeword0 und Codeword1 verteilten Fehlerbits wie in 5A dargestellt 16 beträgt, unter der Annahme, dass die vierte Referenzzahl auf 8 eingestellt ist, kann die Gesamtzahl der Fehlerbits gleich oder größer als die auf 8 eingestellte Referenzzahl sein.
-
Wenn das Prüfergebnis von Operation K40 angibt, dass die Gesamtanzahl von Fehlerbits, die über Codeworteinheiten verteilt sind, deren Anzahl gleich oder größer als sie dritte Referenzzahl ist, gleich oder größer als die vierte Referenzzahl ist (JA in Operation K40), während die Fehler, die in „der zweiten Speichervorrichtung“ aufgetreten sind, über Codeworteinheiten verteilt sind, deren Anzahl gleich oder größer als die dritte Referenzzahl ist (JA in Operation K30), kann die zweite Fehleranalyseeinheit 1304 „der zweiten Speichervorrichtung“ eine erste Fehlerkorrekturstärke zuordnen und die entsprechende Speichervorrichtung als „eine vierte Speichervorrichtung“ in Operation K50 klassifizieren. Die Gegenfehleroperationseinheit 1305 kann in Operation K60 eine erste Gegenfehleroperation auf der Speichervorrichtung durchführen, der die erste Fehlerkorrekturstärke zugewiesen ist und die als „die vierte Speichervorrichtung“ klassifiziert ist.
-
Wenn das Prüfergebnis von Operation K30 angibt, dass die Fehler, die in „der zweiten Speichervorrichtung“ aufgetreten sind, nur in einer Codeworteinheit kleiner als sie dritte Referenzzahl umfasst sind (NEIN in Operation K30), kann die zweite Fehleranalyseeinheit 1304 „der zweiten Speichervorrichtung“ eine zweite Fehlerkorrekturstärke zuweisen und die entsprechende Speichervorrichtung als „die fünfte Speichervorrichtung“ in Operation K70 klassifizieren. Die Gegenfehleroperationseinheit 1305 kann in Operation K80 die zweite Gegenfehleroperation auf der Speichervorrichtung durchführen, der die zweite Fehlerkorrekturstärke zugewiesen ist und die als „die fünfte Speichervorrichtung“ klassifiziert ist.
-
Die Operation der zweiten Fehleranalyseeinheit 1304 wird wie folgt beschrieben.
-
Zunächst, wie unter Bezugnahme auf 2 beschrieben, ist angenommen worden, dass die erste Fehleranalyseeinheit 1303 die Speichervorrichtung 1501 unter der Vielzahl von Speichervorrichtungen 1501 bis 1508 als „die zweite Speichervorrichtung“ klassifizierte, indem der Fehlerrang der Speichervorrichtung 1501 als der erste Fehlerrang entschieden worden ist, und nicht die Fehlerränge der anderen Speichervorrichtungen 1502 bis 1508 entschied und es keine Speichervorrichtung gab, deren Fehlerrang als der zweite Fehlerrang festgelegt worden ist und die als „die dritte Speichervorrichtung“ klassifiziert worden ist.
-
Die zweite Fehleranalyseeinheit 1304 kann die zweite Fehlerkorrekturstärke der Speichervorrichtung zuweisen, deren Fehlerrang nicht als der erste Fehlerrang von der ersten Fehleranalyseeinheit 1303 bestimmt wird (NEIN in Operation K10), d.h., die Speichervorrichtung, deren Fehlerrang nicht entschieden wird, und „die dritte Speichervorrichtung“, deren Fehlerrang als der zweite Fehlerrang entschieden wird, und die Speichervorrichtung als „die fünfte Speichervorrichtung“ in Operation K70 klassifizieren. Demzufolge kann die zweite Fehleranalyseeinheit 1304 die zweite Fehlerkorrekturstärke den anderen Speichervorrichtungen 1502 bis 1508 zuweisen, deren Fehlerränge nicht entschieden werden, und die anderen Speichervorrichtungen 1502 bis 1508 als „die fünften Speichervorrichtungen“ in Operation K70 klassifizieren.
-
In dem Fall der Speichervorrichtung, deren Fehlerrang als der erste Fehlerrang durch die erste Fehleranalyseeinheit 1303 entschieden wird (JA in Operation K10), d.h., „die zweite Speichervorrichtung“, deren Fehlerrang als der erste Fehlerrang entschieden wird, kann die zweite Fehleranalyseeinheit 1304 die Form und Anzahl der Fehler durch zusätzliches Analysieren der Protokollinformationen LOG_INFO und der Fehlerkorrekturinformationen ERR_CO_INFO prüfen und dann eine Fehlerkorrekturstärke festlegen. Demzufolge kann die zweite Fehleranalyseeinheit 1304 die Form und Anzahl von Fehlern durch zusätzliches Analysieren der Protokollinformationen LOG_INFO und der Fehlerkorrekturinformationen ERR_CO_INFO auf der Speichervorrichtung 1501 prüfen, deren Fehlerrang als der erste Fehlerrang entschieden wird und die als „die zweite Speichervorrichtung“ klassifiziert wird, und dann eine Fehlerkorrekturstärke festlegen.
-
Insbesondere kann die zweite Fehleranalyseeinheit 1304 zusätzlich die Protokollinformationen LOG_INFO und die Fehlerkorrekturinformationen ERR_CO_INFO auf der Speichervorrichtung 1501 in Operation K30 analysieren und prüfen, ob die Fehler über Codeworteinheiten verteilt sind, deren Anzahl gleich oder größer als sie dritte Referenzzahl ist. Das Prüfergebnis kann angeben, dass die Fehler, die in der Speichervorrichtung 1501 aufgetreten sind, die über Codeworteinheiten verteilt sind, deren Anzahl gleich oder größer als sie dritte Referenzzahl ist (JA in Operation K30). Demzufolge kann die zweite Fehleranalyseeinheit 1304 in Operation K40 prüfen, ob die Gesamtanzahl von Fehlerbits, die in den Fehlern enthalten sind, die über Codeworteinheiten verteilt sind, deren Anzahl gleich oder größer als die dritte Referenzzahl in der Speichervorrichtung 1501 ist, gleich oder größer als die vierte Referenzzahl ist. Das Prüfergebnis kann angeben, dass die Gesamtzahl von Fehlerbits, die über die Codeworteinheiten verteilt sind, deren Anzahl gleich oder größer als sie dritte Referenzzahl in der Speichervorrichtung 1501 ist, gleich oder größer als die vierte Referenzzahl ist (JA in Operation K40). Demzufolge kann die zweite Fehleranalyseeinheit 1304 die Speichervorrichtung 1501 als „die vierte Speichervorrichtung“ klassifizieren, indem der Speichervorrichtung 1501 in Operation K60 die erste Fehlerkorrekturstärke zugewiesen wird.
-
Die in der Steuerung 130 umfasste Gegenfehleroperationseinheit 1305 kann unterschiedliche Gegenfehleroperationen an den jeweiligen Speichervorrichtungen 1501 bis 1508 gemäß den Fehlerkorrekturstärken für die Speichervorrichtungen 1501 bis 1508 durchführen, die von der zweite Fehleranalyseeinheit 1304 entschieden werden.
-
Insbesondere kann die Gegenfehleroperationseinheit 1305 die erste Gegenfehleroperation an der Speichervorrichtung durchführen, die die zweite Fehleranalyseeinheit 1304 als „die vierte Speichervorrichtung“ durch Zuweisen der ersten Fehlerkorrekturstärke unter der Vielzahl von Speichervorrichtungen 1501 bis 1508 klassifiziert hat. Ferner kann die Gegenfehleroperationseinheit 1305 die zweite Gegenfehleroperation an der Speichervorrichtung durchführen, die die zweite Fehleranalyseeinheit 1304 als „die fünfte Speichervorrichtung“ durch Zuweisen der zweiten Fehlerkorrekturstärke unter der Vielzahl von Speichervorrichtungen 1501 bis 1508 klassifiziert hat.
-
Die erste Gegenfehleroperation kann eine oder mehrere Operationen unter den folgenden Operationen umfassen.
-
Die erste Operation ist eine Operation zum Auswählen eines Bereichs, in dem die Fehler in der als „die vierte Speichervorrichtung“ klassifizierten Speichervorrichtung aufgetreten sind, und zum Blockieren eines Zugriffs auf den ausgewählten Bereich. Zum Beispiel kann die Gegenfehleroperationseinheit 1305 einen bestimmten Block, eine bestimmte Wortleitung oder Bitleitung in der als „die vierte Speichervorrichtung“ klassifizierten Speichervorrichtung 1501 auswählen und einen Zugriff auf den ausgewählten Block, die ausgewählte Wortleitung oder Bitleitung blockieren. Die Gegenfehleroperationseinheit 1305 kann in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung gespeicherte Daten kopieren, der/die das Ziel zum Blockieren des Zugriffs ist, die kopierten Daten in „einem anderen Bereich“ speichern und dann die Operation zum Blockieren des Zugriffs durchführen. Hierbei kann „ein anderer Bereich“ einen anderen normalen Block, eine normale Wortleitung oder normale Bitleitung der Speichervorrichtung 1501 angeben. Ferner kann „ein anderer Bereich“ einen anderen normalen Block, eine normale Wortleitung oder normale Bitleitung angeben, der/die in den anderen Speichervorrichtungen 1502 bis 1508 anstelle der Speichervorrichtung 1501 umfasst ist. Als Referenz ist der Grund, warum die Operation zum Speichern der Daten, die in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung gespeichert werden, der/die das Ziel zum Blockieren des Zugriffs ist, in „einem anderen Bereich“ normalerweise durchgeführt werden kann, weil der bestimmte Block, die bestimmte Wortleitung oder Bitleitung nur als das Ziel zum Blockieren des Zugriffs ausgewählt wird, da es erwartet wird, dass ein nicht behebbarer Fehler höchstwahrscheinlich in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung zu dem Zeitpunkt in naher Zukunft auftritt und der bestimmte Block, die bestimmte Wortleitung oder Bitleitung normalerweise betrieben wird oder nur ein behebbarer Fehler in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung zu dem aktuellen Zeitpunkt auftritt.
-
Die zweite Operation ist eine Operation zum Auswählen eines Bereichs, in dem die Fehler in der als „die vierte Speichervorrichtung“ klassifizierten Speichervorrichtung aufgetreten sind, und zum Reparieren des ausgewählten Bereichs. Zum Beispiel kann die Gegenfehleroperationseinheit 1305 einen bestimmten Block, eine bestimmte Wortleitung oder Bitleitung in der als „die vierte Speichervorrichtung“ klassifizierten Speichervorrichtung 1501 mit einem anderen normalen Redundanzblock, einer normalen Redundanzwortleitung oder Redundanzbitleitung reparieren. Die Steuerung 130 kann einen Zugriff auf die Speichervorrichtung 1501 stoppen, bis die Reparaturoperation für die Speichervorrichtung 1501, die dem Reparaturziel entspricht, abgeschlossen ist. Die Speichervorrichtung 1501, die das Reparaturziel darstellt, kann die Daten, die in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung gespeichert sind, der/die auf das Reparaturziel eingestellt ist, in den Informationsspeicherbereich PA1 darin kopieren und dann die Reparaturoperation durchführen. Nachdem die Reparaturoperation abgeschlossen ist, kann die Speichervorrichtung 1501 die in den Informationsspeicherbereich PA1 kopierten Daten in den Redundanzblock, die Redundanzwortleitung oder Redundanzbitleitung wiederherstellen. Als Referenz ist der Grund, warum die Operation zum Kopieren der Daten, die in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung gespeichert sind, der/die auf das Reparaturziel eingestellt ist, in den Informationsspeicherbereich PA1 normalerweise durchgeführt werden kann, weil der bestimmte Block, die bestimmte Wortleitung oder Bitleitung nur als das Reparaturziel ausgewählt wird, da es erwartet wird, dass ein nicht behebbarer Fehler höchstwahrscheinlich in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung zu dem Zeitpunkt in naher Zukunft auftritt und der bestimmte Block, die bestimmte Wortleitung oder Bitleitung normalerweise betrieben wird oder nur ein behebbarer Fehler in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung zu dem aktuellen Zeitpunkt auftritt.
-
Die dritte Operation ist eine Operation zum Auswählen eines Bereichs, in dem die Fehler in der als „die vierte Speichervorrichtung“ klassifizierten Speichervorrichtung aufgetreten sind, und zum Deaktivieren des ausgewählten Bereichs. Zum Beispiel kann die Gegenfehleroperationseinheit 1305 einen bestimmten Block, eine bestimmte Wortleitung oder Bitleitung in der als „die vierte Speichervorrichtung“ klassifizierten Speichervorrichtung 1501 deaktivieren. Die Speichervorrichtung 1501, die das Ziel zum Deaktivieren ist, kann Daten kopieren, die in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung gespeichert sind, der/die auf das Ziel zum Deaktivieren eingestellt ist, die kopierten Daten in „einem anderen Bereich“ speichern und die Steuerung 130 informieren, dass die Daten zu „einem anderen Bereich“ verschoben worden sind. Hierbei kann „ein anderer Bereich“ einen anderen normalen Block, eine normale Wortleitung oder normale Bitleitung der Speichervorrichtung 1501 angeben.
Ferner kann „ein anderer Bereich“ einen anderen normalen Block, eine normale Wortleitung oder normale Bitleitung angeben, der/die in den anderen Speichervorrichtungen 1502 bis 1508 anstelle der Speichervorrichtung 1501 umfasst ist. Als Referenz ist der Grund, warum die Operation zum Speichern der Daten, die in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung gespeichert werden, der/die auf das Ziel zum Deaktivieren eingestellt ist, in „einem anderen Bereich“ normalerweise durchgeführt werden kann, weil der bestimmte Block, die bestimmte Wortleitung oder Bitleitung nur als das Ziel zum Deaktivieren ausgewählt wird, da es erwartet wird, dass ein nicht behebbarer Fehler höchstwahrscheinlich in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung zu dem Zeitpunkt in naher Zukunft auftritt und der bestimmte Block, die bestimmte Wortleitung oder Bitleitung normalerweise betrieben wird oder nur ein behebbarer Fehler in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung zu dem aktuellen Zeitpunkt auftritt.
-
Die zweite Gegenfehleroperation kann eine Gegenfehleroperation umfassen, die einen ECC für Codewortbasierte Daten verwendet, in denen ein Fehler auftritt, und wird durch die System-ECC-Einheit 1306 durchgeführt, wenn der Fehler während einer Zugriffsoperation für die als „die fünfte Speichervorrichtung“ klassifizierte Speichervorrichtung auftritt.
-
1C und 2 zeigen das Verfahren, bei dem das Speichersystem die Protokollinformationen LOG_INFO analysiert und die Fehlerränge der jeweiligen Speichervorrichtungen 1501 bis 1508 festlegt.
-
Insbesondere wenn Fehler, die während Zugriffsoperationen auftreten, die von der Vielzahl von Speichervorrichtungen 1501 bis 1508 durchgeführt werden, beispielsweise Daten-Lese/Schreib-Operationen, durch Operationen der Speicher-ECC-Einheit 1506 korrigiert werden, die in der Vielzahl von Speichervorrichtungen 1501 bis 1508 umfasst ist, kann die Vielzahl von Speichervorrichtungen 1501 bis 1508 Protokollinformationen LOG_INFO über die Daten erzeugen, deren Fehler durch die Speicher-ECC-Einheit 1506 korrigiert worden sind.
-
Die Fehlerinformations-Sammeleinheit 1511 und die Fehleranalyseeinheit 1513 können die Protokollinformationen LOG_INFO und die Fehlerkorrekturinformationen ERR_CO_INFO sammeln und analysieren. Das heißt, die Fehlerinformations-Sammeleinheit 1511 und die Fehleranalyseeinheit 1513 können Fehlerränge für die jeweiligen Speichervorrichtungen 1501 bis 1508 entscheiden bzw. festlegen.
-
Insbesondere die Fehleranalyseeinheit 1513 kann die Protokollinformationen LOG_INFO analysieren, die von der Fehlerinformations-Sammeleinheit 1511 gesammelt werden, eine Speichervorrichtung, in der die Anzahl von darin auftretenden Fehlern gleich oder größer als eine erste Referenzzahl ist, unter der Vielzahl von Speichervorrichtungen 1501 bis 1508 prüfen und die entsprechende Speichervorrichtung als „eine erste Speichervorrichtung“ in Schritt S10 klassifizieren.
-
Angenommen beispielsweise, die Anzahl von Fehlern, die durch die Speicher-ECC-Einheit 1516 während eines Zugriffsprozesses für die Speichervorrichtung 1501 unter der Vielzahl von Speichervorrichtungen 1501 bis 1508 korrigiert werden, beträgt 12 und die Anzahl von Fehlern, die durch die Speicher-ECC-Einheit 1516 während Zugriffprozessen für die anderen Speichervorrichtungen 1502 bis 1508 korrigiert werden, beträgt weniger als 10. Angenommen, die erste Referenzzahl beträgt ferner 10. In diesem Fall kann die Fehleranalyseeinheit 1513 die Speichervorrichtung 1501 als „die erste Speichervorrichtung“ klassifizieren und Fehlerränge der anderen Speichervorrichtungen 1502 bis 1508 nicht festlegen.
-
Insbesondere kann die Fehleranalyseeinheit 1513 die Protokollinformationen LOG_INFO und die Fehlerkorrekturinformationen ERR_CO_INFO analysieren und die Arten der Fehler prüfen, die in der als „die erste Speichervorrichtung“ klassifizierten Speichervorrichtung aufgetreten sind (JA in Schritt S10). Die Fehleranalyseeinheit 1513 kann die Fehler, die in der als „die erste Speichervorrichtung“ klassifizierten Speichervorrichtung aufgetreten sind, in einen Fehler, der in Wortleitungseinheiten in Schritt S20 auftritt, einen Fehler, der in Einzelbiteinheiten in Schritt S30 auftritt, einen Fehler, der in Bitleitungseinheiten in Schritt S40 auftritt und die anderen Fehler in Schritt S50 sortieren.
-
Der Fehler, der in Wortleitungseinheiten in Schritt S20 auftritt, kann angeben, dass zwei oder mehr Fehler, die in der als „die erste Speichervorrichtung“ klassifizierten Speichervorrichtung aufgetreten sind, in derselben Wortleitung innerhalb derselben Bank auftreten. Der Fehler, der in Einzelbiteinheiten in Schritt S30 auftritt, kann angeben, dass ein oder kein Fehler in derselben Wortleitung und derselben Bitleitung auftritt. Der Fehler, der in Bitleitungseinheiten in Schritt S40 auftritt, kann angeben, dass zwei oder mehr Fehler, die in der als „die erste Speichervorrichtung“ klassifizierten Speichervorrichtung auftreten, in derselben Bitleitung auftreten. Die anderen Fehler in Schritt S50 können angeben, dass zwei oder mehr Fehler, die in der als „die erste Speichervorrichtung“ klassifizierten Speichervorrichtung auftreten, keine bestimmte Verteilung aufweisen. Beispielsweise können die anderen Fehler in Schritt S50 andere Fehler als jene angeben, die in Wortleitungseinheiten, Einzelbiteinheiten oder Bitleitungseinheiten aufgetreten sind.
-
Wenn das Ergebnis, das durch Überprüfung der Arten der Fehler erhalten wird, die in der als „die erste Speichervorrichtung“ klassifizierten Speichervorrichtung aufgetreten sind, angibt, dass die Fehler in Wortleitungseinheiten auftretende Fehler in Schritt S20 sind, kann die Fehleranalyseeinheit 1513 die Anzahl von Fehlern in Schritt S60 zählen, die in derselben Wortleitung in der als „die erste Speichervorrichtung“ klassifizierten Speichervorrichtung aufgetreten sind. Wenn die Anzahl von gezählten Fehlern gleich oder größer als eine zweite Referenzzahl ist (JA in Schritt S70), kann die Fehleranalyseeinheit 1513 die entsprechende Speichervorrichtung als „eine zweite Speichervorrichtung“ klassifizieren, indem der Fehlerrang der Speichervorrichtung als ein erster Fehlerrang in Schritt S90 festgelegt wird. Wenn die Anzahl von gezählten Fehlern kleiner als die zweite Referenzzahl ist (NEIN in Schritt S70), kann die Fehleranalyseeinheit 1513 die entsprechende Speichervorrichtung als „eine dritte Speichervorrichtung“ klassifizieren, indem der Fehlerrang der Speichervorrichtung als ein zweiter Fehlerrang in Schritt S80 festgelegt wird.
-
Wenn das Ergebnis, das durch Prüfen der Arten der Fehler erhalten wird, die in der als „die erste Speichervorrichtung“ klassifizierten Speichervorrichtung aufgetreten sind, angibt, dass die Fehler in Einzelbiteinheiten auftretende Fehler (JA in Schritt S30), in Bitleitungseinheiten auftretende Fehler (JA in Schritt S40) und die anderen Fehler (JA in Schritt S50) sind, kann die Fehleranalyseeinheit 1513 die entsprechende Speichervorrichtung als „die dritte Speichervorrichtung“ klassifizieren, indem der Fehlerrang der Speichervorrichtung als der zweite Fehlerrang in Schritt S80 festgelegt wird.
-
Angenommen beispielsweise, die Fehler, die in der als „die erste Speichervorrichtung“ klassifizierten Speichervorrichtung 1501 aufgetreten sind, sind in Wortleitungseinheiten auftretende Fehler, und die Anzahl von Fehlern, die in derselben Wortleitung aufgetreten sind, ist gleich oder größer als die zweite Referenzzahl. In diesem Fall kann die Fehleranalyseeinheit 1513 die Speichervorrichtung 1501, die als „die erste Speichervorrichtung“ klassifiziert ist, als „die zweite Speichervorrichtung“ klassifizieren, indem der Fehlerrang der Speichervorrichtung 1501 als der erste Fehlerrang festgelegt wird.
-
Die Gegenfehleroperationseinheit 1515 kann verschiedene Gegenfehleroperationen an den jeweiligen Speichervorrichtungen 1501 bis 1508 gemäß den Fehlerkorrekturstärken für die Speichervorrichtungen 1501 bis 1508 durchführen, die von der Fehleranalyseeinheit 1513 entschieden werden.
-
Insbesondere kann die Gegenfehleroperationseinheit 1515 die erste Gegenfehleroperation an der Speichervorrichtung durchführen, die die Fehleranalyseeinheit 1513 als „die zweite Speichervorrichtung“ durch Zuweisen der ersten Fehlerkorrekturstärke unter der Vielzahl von Speichervorrichtungen 1501 bis 1508 klassifiziert hat. Ferner kann die Gegenfehleroperationseinheit 1515 die zweite Gegenfehleroperation an der Speichervorrichtung durchführen, die die Fehleranalyseeinheit 1513 als „die dritte Speichervorrichtung“ durch Zuweisen der zweiten Fehlerkorrekturstärke unter der Vielzahl von Speichervorrichtungen 1501 bis 1508 klassifiziert hat.
-
Die erste Gegenfehleroperation kann eine oder mehrere Operationen unter den folgenden Operationen umfassen.
-
Die erste Operation ist eine Operation zum Auswählen eines Bereichs, in dem die Fehler in der als „die zweite Speichervorrichtung“ klassifizierten Speichervorrichtung aufgetreten sind, und zum Blockieren eines Zugriffs auf den ausgewählten Bereich. Zum Beispiel kann die Gegenfehleroperationseinheit 1515 einen bestimmten Block, eine bestimmte Wortleitung oder Bitleitung in der als „die zweite Speichervorrichtung“ klassifizierten Speichervorrichtung 1501 auswählen und einen Zugriff auf den ausgewählten Block, die ausgewählte Wortleitung oder Bitleitung blockieren. Die Gegenfehleroperationseinheit 1515 kann in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung gespeicherte Daten kopieren, der/die das Ziel zum Blockieren des Zugriffs ist, die kopierten Daten in „einem anderen Bereich“ speichern und dann die Operation zum Blockieren des Zugriffs durchführen. Hierbei kann „ein anderer Bereich“ einen anderen normalen Block, eine normale Wortleitung oder normale Bitleitung der Speichervorrichtung 1501 angeben. Ferner kann „ein anderer Bereich“ einen anderen normalen Block, eine normale Wortleitung oder normale Bitleitung angeben, die in den anderen Speichervorrichtungen 1502 bis 1508 anstelle der Speichervorrichtung 1501 umfasst ist. Als Referenz ist der Grund, warum die Operation zum Speichern der Daten, die in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung gespeichert werden, der/die das Ziel zum Blockieren des Zugriffs ist, in „einem anderen Bereich“ normalerweise durchgeführt werden kann, weil der bestimmte Block, die bestimmte Wortleitung oder Bitleitung nur als das Ziel zum Blockieren des Zugriffs ausgewählt wird, da es erwartet wird, dass ein nicht behebbarer Fehler höchstwahrscheinlich in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung zu dem Zeitpunkt in naher Zukunft auftritt und der bestimmte Block, die bestimmte Wortleitung oder Bitleitung normalerweise betrieben wird oder nur ein behebbarer Fehler in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung zu dem aktuellen Zeitpunkt auftritt.
-
Die zweite Operation ist eine Operation zum Auswählen eines Bereichs, in dem die Fehler in der als „die zweite Speichervorrichtung“ klassifizierten Speichervorrichtung aufgetreten sind, und zum Reparieren des ausgewählten Bereichs. Zum Beispiel kann die Gegenfehleroperationseinheit 1515 einen bestimmten Block, eine bestimmte Wortleitung oder Bitleitung in der als „die zweite Speichervorrichtung“ klassifizierten Speichervorrichtung 1501 mit einem anderen normalen Redundanzblock, einer normalen Redundanzwortleitung oder Redundanzbitleitung reparieren. Der Zugriff auf die Speichervorrichtung 1501 kann während einer Periode gestoppt werden, in der die Reparaturoperation durchgeführt wird. Die Speichervorrichtung 1501, die das Reparaturziel darstellt, kann die Daten, die in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung gespeichert sind, der/die auf das Reparaturziel eingestellt ist, in den Informationsspeicherbereich PA1 darin kopieren und dann die Reparaturoperation durchführen. Nachdem die Reparaturoperation abgeschlossen ist, kann die Speichervorrichtung 1501 die in den Informationsspeicherbereich PA1 kopierten Daten in den Redundanzblock, die Redundanzwortleitung oder Redundanzbitleitung, der/die vollständig repariert worden ist, wiederherstellen. Als Referenz ist der Grund, warum die Operation zum Kopieren der Daten, die in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung gespeichert sind, der/die auf das Reparaturziel eingestellt ist, in den Informationsspeicherbereich PA1 normalerweise durchgeführt werden kann, weil der bestimmte Block, die bestimmte Wortleitung oder Bitleitung nur als das Reparaturziel ausgewählt wird, da es erwartet wird, dass ein nicht behebbarer Fehler höchstwahrscheinlich in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung zu dem Zeitpunkt in naher Zukunft auftritt und der bestimmte Block, die bestimmte Wortleitung oder Bitleitung normalerweise betrieben wird oder nur ein behebbarer Fehler in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung zu dem aktuellen Zeitpunkt auftritt.
-
Die dritte Operation ist eine Operation zum Auswählen eines Bereichs, in dem die Fehler in der als „die zweite Speichervorrichtung“ klassifizierten Speichervorrichtung aufgetreten sind, und zum Deaktivieren des ausgewählten Bereichs. Zum Beispiel kann die Gegenfehleroperationseinheit 1515 einen bestimmten Block, eine bestimmte Wortleitung oder Bitleitung in der als „die zweite Speichervorrichtung“ klassifizierte Speichervorrichtung 1501 deaktivieren. Die Gegenfehleroperationseinheit 1515 kann Daten kopieren, die in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung gespeichert sind, der/die auf das Ziel zum Deaktivieren eingestellt ist, und die kopierten Daten in „einem anderen Bereich“ speichern. Hierbei kann „ein anderer Bereich“ einen anderen normalen Block, eine normale Wortleitung oder normale Bitleitung der Speichervorrichtung 1501 angeben. Ferner kann „ein anderer Bereich“ einen anderen normalen Block, eine normale Wortleitung oder normale Bitleitung angeben, der/die in den anderen Speichervorrichtungen 1502 bis 1508 anstelle der Speichervorrichtung 1501 umfasst ist. Als Referenz ist der Grund, warum die Operation zum Speichern der Daten, die in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung gespeichert werden, der/die auf das Ziel zum Deaktivieren eingestellt ist, in „einem anderen Bereich“ normalerweise durchgeführt werden kann, weil der bestimmte Block, die bestimmte Wortleitung oder Bitleitung nur als das Ziel zum Deaktivieren ausgewählt wird, da es erwartet wird, dass ein nicht behebbarer Fehler höchstwahrscheinlich in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung zu dem Zeitpunkt in naher Zukunft auftritt und der bestimmte Block, die bestimmte Wortleitung oder Bitleitung normalerweise betrieben wird oder nur ein behebbarer Fehler in dem bestimmten Block, der bestimmten Wortleitung oder Bitleitung zu dem aktuellen Zeitpunkt auftritt.
-
Die zweite Gegenfehleroperation kann eine Gegenfehleroperation umfassen, die einen ECC für Codewortbasierte Daten verwendet, in denen ein Fehler auftritt, und wird durch die Speicher-ECC-Einheit 1516 durchgeführt, wenn der Fehler während einer Zugriffsoperation für die als „die dritte Speichervorrichtung“ klassifizierte Speichervorrichtung auftritt.
-
Jedes Element, das hier als „Einheit“ bezeichnet wird, kann mit einer geeigneten Schaltung ausgeführt sein, d.h. Hardware oder einer Kombination von Hardware und Software und/oder Firmware.
-
Obwohl verschiedene Ausführungsformen dargestellt und beschrieben worden sind, ist es für einen Fachmann offensichtlich, dass verschiedene Änderungen und Modifikationen vorgenommen werden können, ohne von der Lehre und dem Umfang der Erfindung abzuweichen, wie sie in den folgenden Ansprüchen definiert ist.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-