-
Hintergrund
-
Die vorliegende Offenbarung betrifft Halbleiterspeicher und insbesondere Speichervorrichtungen und Verfahren zum Betreiben von Speichervorrichtungen.
-
Halbleiterspeicher können als flüchtige Speichereinrichtung, wie statische Direktzugriffsspeicher (SRAM) oder dynamische Direktzugriffsspeicher (DRAM), bei denen gespeicherte Daten verloren gehen, wenn eine Leistung unterbrochen wird, und als nichtflüchtige Speichereinrichtungen, wie ein Flashspeicher, ein Phasenänderungs-RAM (PRAM), ein magnetischer RAM (MRAM), ein resistiver RAM (RRAM) oder ein ferroelektrischer RAM (FRAM) klassifiziert werden, bei denen gespeicherte Daten behalten werden, selbst wenn die Leistung unterbrochen wird.
-
Die Nutzung von auf Flashspeichern basierenden Festkörperlaufwerken (SSD) als Speichermedien mit hoher Kapazität für Computervorrichtungen ist weit verbreitet. SSDs sind üblicherweise eingerichtet, Daten auf einem Flashspeicher zu speichern und eine dynamische Direktzugriffsspeicher(DRAM)-Vorrichtung als Pufferspeicher zu verwenden, um verschiedene Informationen zur Verwaltung des Flashspeichers zu speichern. In dem Fall, in dem während des Herstellungsprozesses der DRAM-Vorrichtung ein Fehler in einer DRAM-Vorrichtung erfasst wird, kann eine Fehlerzelle durch verschiedene Reparaturverfahren repariert werden. In dem Fall allerdings, in dem ein Fehler in einer DRAM-Vorrichtung auftritt, nachdem die DRAM-Vorrichtung vollständig hergestellt und in einer SSD-Vorrichtung eingebaut wurde (d. h., in dem Fall, in dem die SSD-Vorrichtung einem Endnutzer bereitgestellt und von diesem genutzt wird), funktioniert der normale Betrieb der SSD-Vorrichtung zusätzlich zu der DRAM-Vorrichtung nicht.
-
Aus der Veröffentlichung KIM, D. u.a.: ECC-ASPIRIN: An ECC-assisted post-package repair scheme for aging errors in DRAMs. 2016 IEEE 34th VLSI Test Symposium (VTS), Las Vegas, NV, 2016, S. 1 - 6 ist ein Verfahren zum Reparieren Alterungs-bedingter Schäden an Speicherzellen bekannt.
-
Kurzfassung
-
Ausführungsformen des erfinderischen Konzepts schaffen eine Speichervorrichtung mit verbesserter Zuverlässigkeit und verbesserter Lebensdauer und ein Betriebsverfahren für dieselbe.
-
Die vorliegende Erfindung ist definiert in den unabhängigen Ansprüchen. Spezifische Ausführungsformen sind definiert in den abhängigen Ansprüchen.
-
Figurenliste
-
Die obigen und andere Aufgaben und Merkmale der erfinderischen Konzepte werden angesichts der nachfolgenden detaillierten Beschreibung von beispielhaften Ausführungsformen in Zusammenhang mit den beigefügten Zeichnungen ersichtlich.
- 1 stellt ein Blockdiagramm eines Computersystems gemäß einer Ausführungsform der erfinderischen Konzepte dar.
- 2 stellt ein Blockdiagramm eines Speicher-Controllers aus 1 dar.
- 3 stellt ein Flussdiagramm eines Betriebs eines Speicher-Controllers aus 2 dar.
- 4 stellt ein Diagramm dar, das Vorgang S13 und Vorgang S14 aus 3 veranschaulicht.
- 5 stellt ein Flussdiagramm von Vorgang S15 aus 3 dar.
- 6A stellt ein Diagramm dar, das Vorgang S112 aus 5 veranschaulicht.
- 6B stellt ein Diagramm dar, das Vorgang S113 aus 5 veranschaulicht.
- 6C stellt ein Diagramm dar, das Vorgang S114 aus 5 veranschaulicht.
- 7 stellt ein Blockdiagramm einer DRAM-Vorrichtung dar, die Vorgang S113 aus 5 durchführt.
- 8 stellt ein Zeitablaufdiagramm von Eingabe-/Ausgabe-Signalen dar, die mit einem direkten Reparaturvorgang aus 6B assoziiert sind.
- 9 stellt ein Flussdiagramm von Vorgang S15 aus 3 dar.
- 10 stellt ein Flussdiagramm eines Betriebs eines Speicher-Controllers aus 2 dar.
- 11 stellt ein Blockdiagramm eines Speicher-Controllers gemäß einer anderen Ausführungsform der erfinderischen Konzepte dar.
- 12 stellt ein Flussdiagramm eines indirekten Reparaturvorgangs eines Speicher-Controllers aus 11 dar.
- 13A stellt ein Diagramm dar, das einen Vorgang gemäß des Flussdiagramms aus 12 veranschaulicht.
- 13B stellt ein anderes Diagramm dar, das einen Vorgang gemäß des Flussdiagramms aus 12 veranschaulicht.
- 14 stellt ein Flussdiagramm eines Zugriffsvorgangs dar, der mit einer DRAM-Vorrichtung eines Speicher-Controllers aus 11 assoziiert ist.
- 15 stellt ein Flussdiagramm eines Laufzeit-Reparaturvorgangs gemäß einer Ausführungsform der erfinderischen Konzepte dar.
- 16 stellt ein Flussdiagramm eines Betriebs eines Speicher-Controllers gemäß einer Ausführungsform der erfinderischen Konzepte dar.
- 17 stellt ein Blockdiagramm dar, das ein Nutzersystem darstellt, bei dem eine Speichervorrichtung gemäß einer Ausführungsform der erfinderischen Konzepte verwendet wird.
-
Detaillierte Beschreibung
-
Nachfolgend werden Ausführungsformen der erfinderischen Konzepte im Detail und deutlich in einem solchen Umfang beschrieben, dass ein Fachmann die erfinderischen Konzepte leicht implementieren kann.
-
Wie es auf dem Gebiet der erfinderischen Konzepte üblich ist, können Ausführungsformen in Form von Blöcken beschrieben und dargestellt sein, die eine beschriebene Funktion oder Funktionen ausführen. Diese Blöcke, die hier als Einheiten oder Module oder dergleichen bezeichnet werden, werden durch analoge und/oder digitale Schaltungen physisch implementiert, wie beispielsweise Logikgatter, integrierte Schaltungen, integrierte Schaltkerne, Mikroprozessoren, Mikrocontroller, Computer, Speicherschaltungen, passive elektronische Komponenten, aktive elektronische Komponenten, optische Komponenten, festverdrahtete elektrische Schaltkreise, festverdrahtete elektronische Schaltkreise, Drucksensoren, Mikrosysteme (MEMS) und dergleichen oder eine Kombination aus denselben, und können wahlweise durch Firmware und/oder Software betrieben werden. Zum Beispiel kann eine Software Maschinensprache, Firmware, ein eingebetteter Code oder eine Anwendungssoftware sein. Diese Schaltungen können zum Beispiel in einem oder in mehreren Halbleiter-Chips oder auf Substratträgern wie Leiterplatten und dergleichen ausgebildet sein. Die Schaltungen bilden einen Block, der durch dedizierte Hardware oder durch einen Prozessor (z. B. einen oder mehrere programmierte Mikroprozessoren und assoziierte Schaltungen) implementiert werden kann, oder durch eine Kombination aus dedizierter Hardware, um einige Funktionen des Block durchzuführen, und aus einem Prozessor, um andere Funktionen des Blocks durchzuführen. Jeder Block der Ausführungsformen kann physisch in zwei oder mehr zusammenwirkende und diskrete Blöcke unterteilt werden, ohne von dem Umfang der erfinderischen Konzepte abzuweichen. Ebenso können die Blöcke der Ausführungsformen physisch zu komplexeren Blöcken kombiniert werden, ohne von dem Umfang der erfinderischen Konzepte abzuweichen.
-
1 stellt ein Blockdiagramm eines Computersystems gemäß einer Ausführungsform der erfinderischen Konzepte dar. In 1 umfasst das Computersystem 10 einen Host 11 und eine Speichervorrichtung 100. In einer beispielhaften Ausführungsform kann das Computersystem 10 zum Beispiel einen Computer umfassen, einen tragbaren Computer, einen Ultra-Mobile-Personal-Computer (UMPC), eine Workstation, einen Servercomputer, ein Netbook, einen Personal Digital Assistant (PDA), einen tragbaren Computer, ein Webtablet, ein schnurloses Telefon, ein Mobiltelefon, ein Smartphone, eine Digitalkamera, einen Digitalaudiorekorder, einen Digitalaudioplayer, ein digitales Bildaufzeichnungsgerät, einen Digitalvideorekorder, einen Digitalvideoplayer, eine Vorrichtung, die fähig ist, Informationen in einer drahtlosen Umgebung zu übermitteln oder zu empfangen, oder eine aus verschiedenen elektronischen Vorrichtungen, die ein Heimnetzwerk umfassen, oder dergleichen.
-
Der Host 11 kann eingerichtet sein, die Speichervorrichtung 100 zu steuern. Zum Beispiel kann der Host 11 eingerichtet sein, Daten auf (z. B. in) der Speichervorrichtung 100 zu speichern oder Daten, die in der Speichervorrichtung 100 gespeichert sind, auszulesen.
-
Die Speichervorrichtung 100 umfasst einen Speicher-Controller 110, eine flüchtige Speichereinrichtung 120 und eine nichtflüchtige Speichereinrichtung 130. In einer beispielhaften Ausführungsform kann die Speichervorrichtung 100 ein Speichermedium mit hoher Kapazität sein, wie beispielsweise eine Solid State Drive (SSD) oder eine Speicherkarte. Gesteuert durch den Host 11 kann der Speicher-Controller 110 Daten in die nichtflüchtige Speichereinrichtung 130 speichern oder Daten auslesen, die in der nichtflüchtigen Speichereinrichtung 130 gespeichert sind.
-
Die flüchtige Speichereinrichtung 120 kann als Arbeitsspeicher der Speichervorrichtung 100 verwendet werden. Zum Beispiel kann der Speicher-Controller 110 verschiedene Informationen (z. B. Metadateninformationen und eine Zuordnungs-Tabelle), die für einen Betrieb der Speichervorrichtung 100 erforderlich ist, in der flüchtigen Speichereinrichtung 120 speichern, und kann auf die nichtflüchtige Speichereinrichtung 130 basierend auf den in der flüchtigen Speichereinrichtung 120 gespeicherten Informationen zugreifen. Alternativ kann die flüchtige Speichereinrichtung 120 als Pufferspeicher der Speichervorrichtung 100 verwendet werden. Zum Beispiel können Schreibdaten, die von dem Host 11 empfangen wurden, oder Daten, die von der nichtflüchtigen Speichereinrichtung 130 ausgelesen wurden, vorrübergehend in der flüchtigen Speichereinrichtung 120 gespeichert werden.
-
Nachfolgend wird in der folgenden Beschreibung angenommen, dass die flüchtige Speichereinrichtung 120, die in der Speichervorrichtung 100 umfasst ist, eine dynamische Direktzugriffsspeicher(DRAM)-Vorrichtung ist. Allerdings sind die erfinderischen Konzepte nicht so beschränkt und die flüchtige Speichereinrichtung 120 kann zum Beispiel eine von verschiedenen Speichereinrichtungen sein, die einen Hochgeschwindigkeitsbetrieb unterstützen. Nachfolgend kann die flüchtige Speichereinrichtung 120 als DRAM-Vorrichtung 120 bezeichnet werden.
-
Der Speicher-Controller 110 umfasst eine DRAM-Steuereinheit 111. Die DRAM-Steuereinheit 111 kann eingerichtet sein, die DRAM-Vorrichtung 120 zu steuern. Zum Beispiel kann die DRAM-Steuereinheit 111 eingerichtet sein, gesteuert von dem Speicher-Controller 110 auf die DRAM-Vorrichtung 120 zuzugreifen.
-
In einer beispielhaften Ausführungsform kann die DRAM-Steuereinheit 111 einen Laufzeit-Reparaturvorgang auf der DRAM-Vorrichtung 120 durchführen. Der Laufzeit-Reparaturvorgang kann einen Reparaturvorgang bezeichnen, der an einer Fehlerzeile (d. h. einer fehlerhaften Zeile), die in der DRAM-Vorrichtung 120 auftritt, während die Speichervorrichtung 100 betrieben wird oder während einer Laufzeit durchgeführt wird. Das heißt, obwohl die Speichervorrichtung 100 betrieben wird (z. B. angetrieben wird oder während der Laufzeit, wie in dem Fall, in dem sie von einem Endnutzer nach der Herstellung verwendet wird), kann die DRAM-Steuereinheit 111 den Reparaturvorgang an der Fehlerzeile, die in der DRAM-Vorrichtung 120 auftritt, durchführen. Dementsprechend kann die DRAM-Vorrichtung 120 und/oder die Speichervorrichtung 100 normal betrieben werden, obwohl eine Fehlerzeile in der DRAM-Vorrichtung 120 auftritt.
-
In einer beispielhaften Ausführungsform kann die DRAM-Steuereinheit 111 angesammelte Fehlerinformationen über jede einer Mehrzahl an Zeilen der DRAM-Vorrichtung 120 verwalten und kann eine Fehlerzeile basierend auf der angesammelten Fehlerinformation erfassen. Die DRAM-Steuereinheit 111 kann den Laufzeit-Reparaturvorgang an der erfassten Fehlerzeile durchführen. In einer beispielhaften Ausführungsform kann der Laufzeit-Reparaturvorgang gemäß einer Ausführungsform der erfinderischen Konzepte basierend auf verschiedenen Verfahren durchgeführt werden. Verschiedene Verfahren, die mit dem Laufzeit-Reparaturvorgang gemäß Ausführungsformen der erfinderischen Konzepte assoziiert sind, werden nachfolgend ausführlicher unter Bezugnahme auf die nachfolgenden Zeichnungen beschrieben.
-
Wie oben beschrieben, kann gemäß Ausführungsformen der erfinderischen Konzepte die DRAM-Vorrichtung 120 oder die Speichervorrichtung 100 normal betrieben werden, während die Speichervorrichtung 100 betrieben wird, obwohl eine Fehlerzeile in der DRAM-Vorrichtung 120 auftritt, indem der Laufzeit-Reparaturvorgang an der Fehlerzeile durchgeführt wird. Dementsprechend kann die Zuverlässigkeit der DRAM-Vorrichtung 120 oder der Speichervorrichtung 100 verbessert werden und die Lebensdauer derselben kann verbessert werden.
-
2 stellt ein Blockdiagramm eines Speicher-Controllers aus 1 dar. In 2 umfasst der Speicher-Controller 110 die DRAM-Steuereinheit 111, einen Prozessor 112, einen SRAM 113, eine Fehlerkorrekturcode(ECC)-Einheit 114 eines nichtflüchtigen Speichers, eine Host-Schnittstelle 115 und eine Flash-Schnittstelle 116.
-
Die DRAM-Steuereinheit 111 kann eingerichtet sein, gesteuert von dem Speicher-Controller 110 einen Zugriffsvorgang an der DRAM-Vorrichtung 120 durchzuführen. Zum Beispiel kann der Prozessor 112 auf die DRAM-Vorrichtung 120 mit dem Zweck zugreifen, den Gesamtbetrieb des Speicher-Controllers 110 zu steuern. Der Prozessor 112 kann eine DRAM-Adresse zum Zugreifen auf die DRAM-Vorrichtung 120 erzeugen. Die DRAM-Steuereinheit 111 kann einen Zugriffsvorgang auf einen Bereich durchführen, welcher der DRAM-Adresse entspricht, die von dem Prozessor 112 zur Verfügung gestellt wird.
-
In einer beispielhaften Ausführungsform kann die DRAM-Steuereinheit 111 mit der DRAM-Vorrichtung 120 basierend auf einer Hochgeschwindigkeitsschnittstelle wie beispielsweise einer Schnittstelle mit doppelter Datenrate (DDR), einer Niedrigenergie-DDR(LPDDR)-Schnittstelle, oder einer Graphik-DDR(GDDR)-Schnittstelle oder dergleichen kommunizieren.
-
Die DRAM-Steuereinheit 111 kann eine DRAM-ECC-Einheit 111a und einen Reparaturmanager 111b umfassen. Die DRAM-ECC-Einheit 111a kann eine Fehlererfassung und eine Korrektur an Daten durchführen, die aus der DRAM-Vorrichtung 120 ausgelesen wurden. In einer beispielhaften Ausführungsform kann dem Reparaturmanager 111b ein Ergebnis der Fehlererfassung bereitgestellt werden.
-
Der Reparaturmanager 111b kann angesammelte Fehlerinformationen über die DRAM-Vorrichtung 120 basierend auf dem Fehlererfassungsergebnis der DRAM-ECC-Einheit lila verwalten. Zum Beispiel kann der Reparaturmanager 111b angesammelte Fehlerinformationen über jede einer Mehrzahl an Zeilen in der DRAM-Vorrichtung 120 basierend auf dem Fehlererfassungsergebnis der DRAM-ECC-Einheit lila verwalten. Die angesammelten Fehlerinformationen können ein Wert sein, der bezogen wird, indem die Anzahl an Fehler-Bits, die in jeder Zeile der DRAM-Vorrichtung 120 auftreten, gesammelt wird.
-
Im Detail kann in dem Fall, in dem „k“ Fehler-Bits erfasst werden, während die DRAM-Steuereinheit 111 einen Zugriffsvorgang an einer ersten Zeile der DRAM-Vorrichtung 120 bis zu „n“ Mal durchführt (hier können die „k“ Fehler-Bits in einem bestimmten Zugriffsvorgang der „n“ Zugriffsvorgänge auftreten oder sie können in einer Mehrzahl an Zugriffsvorgängen der „n“ Zugriffsvorgänge auftreten), die gesammelte Fehlerinformation der ersten Zeile der DRAM-Steuereinheit 111 „k“ sein. Das heißt, die angesammelte Fehlerinformation kann ein Wert sein, der erhalten wird, indem die Anzahl an Fehler-Bits, die während einer Mehrzahl an Zugriffsvorgängen erfasst werden, die mit jeder der Mehrzahl an Zeilen assoziiert sind, angesammelt werden.
-
Der Reparaturmanager 111b kann basierend auf den angesammelten Fehlerinformationen eine Fehlerzeile in der DRAM-Vorrichtung 120 bestimmen. Zum Beispiel in dem Fall, in dem die angesammelten Fehlerinformationen einen Referenzwert überschreiten, kann der Reparaturmanager 111b bestimmen, dass eine entsprechende Zeile eine Fehlerzeile ist. Zum Beispiel in dem Fall, in dem die angesammelten Fehlerinformationen über die erste Zeile der DRAM-Vorrichtung 120 „k“ beträgt und „k“ größer ist als ein vorgegebener Referenzwert, kann der Reparaturmanager 111b bestimmen, dass die erste Zeile eine Fehlerzeile ist.
-
In einer beispielhaften Ausführungsform ist es möglich, dass die erste Zeile, die von dem Reparaturmanager 111b als Fehlerzeile bestimmt wird, nicht tatsächlich eine Fehlerzeile ist (d. h., eine tatsächlich fehlerhafte Zeile). Das heißt, während ein Zugriffsvorgang, der mit der ersten Zeile assoziiert ist, die von dem Reparaturmanager 111b als Fehlerzeile bestimmt wird, zu einem aktuellen Zeitpunkt normal durchgeführt werden kann (z. B. wird ein Fehler-Bit, der in der ersten Zeile umfasst ist, normal korrigiert), kann die erste Zeile aufgrund von zusätzlichen Zugriffsvorgängen im Laufe der Zeit eine tatsächliche Fehlerzeile werden. Die tatsächliche Fehlerzeile kann eine Zeile bezeichnen, in der gespeicherte Daten aufgrund eines Speicherzellenfehlers verloren gehen (z. B. Reduzierung einer Auffrischungsperformance einer Speicherzelle oder Reduzierung einer Datenhaltungseigenschaft (Retention) einer Speicherzelle). Ein Fehler in Daten, die aus der tatsächlichen Fehlerzeile ausgelesen wurden, kann nicht durch die DRAM-ECC-Einheit lila korrigiert werden.
-
Das heißt, eine „Fehlerzeile“, wie sie in dieser Offenbarung bezeichnet bzw. verwendet wird, insbesondere eine Fehlerzeile, wie sie von dem Reparaturmanager 111b bestimmt wird, kann eine Zeile bezeichnen, die mit hoher Wahrscheinlichkeit im Laufe der Zeit oder aufgrund eines zusätzlichen Zugriffsvorgangs zu einer tatsächlichen Fehlerzeile wird. Allerdings sind die erfinderischen Konzepte nicht darauf beschränkt und eine von dem Reparaturmanager 111b bestimmte Fehlerzeile kann eine tatsächliche Fehlerzeile bezeichnen.
-
In einer beispielhaften Ausführungsform kann der Referenzwert abhängig von einer physischen Eigenschaft oder einer Betriebsumgebung der DRAM-Vorrichtung 120 oder einer Performance der DRAM-ECC-Einheit 111a variieren. Zum Beispiel in dem Fall, in dem die physischen Eigenschaften oder die Betriebsumgebung der DRAM-Vorrichtung 120 gut sind (mit anderen Worten, in dem Fall, in dem die Prozess-, Spannungs- und Temperaturvariation (PVT-Variation) relativ gering ist, oder in dem Fall, in dem die Performance der DRAM-ECC-Einheit 111a relativ hoch ist), kann der Referenzwert auf einen ersten Wert eingestellt werden; in dem Fall, in dem die physischen Eigenschaften oder die Betriebsumgebung der DRAM-Vorrichtung 120 nicht gut ist (mit anderen Worten, in dem Fall, in dem die PVT-Variation relativ groß ist, oder in dem Fall, in dem die Performance der DRAM-ECC-Einheit 111a relativ niedrig ist) kann der Referenzwert auf einen zweiten Wert eingestellt werden, der niedriger ist als der erste Wert.
-
In dem Fall, in dem die Fehlerzeile erfasst wird, kann der Reparaturmanager 111b den Laufzeit-Reparaturvorgang an der DRAM-Vorrichtung 120 durchführen. In einer Ausführungsform kann der Reparaturmanager 111b den Laufzeit-Reparaturvorgang basierend auf verschiedenen Verfahren durchführen. Laufzeit-Reparaturvorgänge gemäß Ausführungsformen der erfinderischen Konzepte werden nachfolgend unter Bezugnahme auf die nachfolgenden Zeichnungen genauer beschrieben.
-
Der SRAM 113 kann als Pufferspeicher, Cache-Speicher oder Arbeitsspeicher des Speicher-Controllers 110 verwendet werden. In einer beispielhaften Ausführungsform können verschiedene Informations- oder Softwarekomponenten, die in dem SRAM 113 gespeichert sind, von dem Prozessor 112 verwaltet oder betrieben werden.
-
Die ECC-Einheit 114 des nichtflüchtigen Speichers kann einen Fehlererfassungs- und Korrekturvorgang an Daten, die aus der nichtflüchtigen Speichereinrichtung 130 ausgelesen werden, durchführen. Zum Beispiel kann die ECC-Einheit 114 des nichtflüchtigen Speichers einen Fehlerkorrekturcode für erste Daten, die von dem Host 11 empfangen werden, erzeugen. Der erzeugte Fehlerkorrekturcode kann zusammen mit den ersten Daten auf der nichtflüchtigen Speichereinrichtung 130 gespeichert werden. Danach kann die ECC-Einheit 114 des nichtflüchtigen Speichers die ersten Daten und den Fehlerkorrekturcode aus der nichtflüchtige Speichereinrichtung 130 auslesen und kann einen Fehler der ersten Daten basierend auf dem Fehlerkorrekturcode erfassen und korrigieren.
-
In einer beispielhaften Ausführungsform kann die ECC-Einheit 114 des nichtflüchtigen Speichers und die DRAM-ECC-Einheit 111a durch unterschiedliche Funktionsblöcke implementiert werden. Alternativ kann die ECC-Einheit 114 des nichtflüchtigen Speichers und die DRAM-ECC-Einheit 111a mit dem gleichen Funktionsblock implementiert werden.
-
Der Speicher-Controller 110 kann mit dem Host 11 über die Host-Schnittstelle 115 kommunizieren. In einer beispielhaften Ausführungsform kann die Host-Schnittstelle 115 mindestens eine von verschiedenen Schnittstellen umfassen, wie beispielsweise eine Universal-Serial-Bus(USB)-Schnittstelle, eine Multimedia-Card(MMC)-Schnittstelle, eine Peripheral-Component-Interconnect(PCI)-Schnittstelle, eine PCI-Express(PCI-e)-Schnittstelle, eine Advanced-Technology-Attachment(ATA)-Schnittstelle, eine Serial-ATA(SATA)-Schnittstelle, eine Parallel-ATA(PATA)-Schnittstelle, eine Small-Computer-System-Interface(SCSI)-Schnittstelle, eine Enhanced-Small-Disk-Interface (ESDI), eine Integrated-Drive-Electronics(IDE)-Schnittstelle, eine Mobile Industry Processor Interface (MIPI®), eine Nonvolatile-Memory-Express(NVM-e)-Schnittstelle und ein Universal Flash Storage (UFS) oder dergleichen.
-
Der Speicher-Controller 110 kann über die Flash-Schnittstelle 116 mit der nichtflüchtigen Speichereinrichtung 130 kommunizieren. In einer beispielhaften Ausführungsform kann die Flash-Schnittstelle 116 zum Beispiel eine NAND-Schnittstelle umfassen.
-
3 stellt ein Flussdiagramm eines Betriebs eines Speicher-Controllers aus 2 dar. In 2 und 3 lädt der Speicher-Controller 110 in Vorgang S11 Reparaturinformationen. Die Reparaturinformationen können Informationen umfassen, die erforderlich sind, um einen Fehlerzeilen-Erfassungsvorgang oder einen Laufzeit-Reparaturvorgang durchzuführen. Zum Beispiel können die Reparaturinformationen angesammelte Fehlerinformationen über jede der Mehrzahl an Zeilen in der DRAM-Vorrichtung 120 umfassen. Die Reparaturinformationen können in einem bestimmten Bereich (z. B. einem Meta-Bereich) der nichtflüchtigen Speichereinrichtung 130 gespeichert sein. Der Speicher-Controller 110 kann die Reparaturinformationen laden, die in einem bestimmten Bereich der nichtflüchtigen Speichereinrichtung 130 gespeichert sind. In einer beispielhaften Ausführungsform können die Reparaturinformationen in dem SRAM 113 gespeichert werden und können von dem Prozessor 112 oder der DRAM-Steuereinheit 111 verwaltet werden.
-
In Vorgang S12 führt der Speicher-Controller 110 einen Zugriffsvorgang auf die DRAM-Vorrichtung 120 durch. Zum Beispiel kann der Speicher-Controller 110 verschiedene Informationen oder Daten auf der DRAM-Vorrichtung 120 schreiben. Alternativ kann der Speicher-Controller 110 Informationen oder Daten, die auf der DRAM-Vorrichtung 120 gespeichert sind, auslesen und kann einen Fehlererfassungs- und Korrekturvorgang an den ausgelesenen Daten durchführen.
-
In Vorgang S13 sammelt der Speicher-Controller 110 die angesammelten Fehlerinformationen basierend auf dem Zugriffsvorgang. Zum Beispiel kann der Speicher-Controller 110 die angesammelten Fehlerinformationen über jede der Mehrzahl an Zeilen in der DRAM-Vorrichtung 120 basierend auf einem Ergebnis des oben beschriebenen Fehlererfassungsvorgangs verwalten. Wie oben beschrieben können die angesammelten Fehlerinformationen die Anzahl an Fehler-Bits bezeichnen, die bezüglich jeder Zeile in der DRAM-Vorrichtung 120 angesammelt wurden.
-
In Vorgang S14 bestimmt der Speicher-Controller 110 eine Fehlerzeile in der DRAM-Vorrichtung 120 basierend auf den angesammelten Fehlerinformationen. Zum Beispiel kann der Speicher-Controller 110 bestimmen, dass eine Zeile, die angesammelte Fehlerinformationen aufweist, die den Referenzwert übersteigen, aus der Mehrzahl an Zeilen der DRAM-Vorrichtung 120 eine Fehlerzeile ist.
-
In Vorgang S15 führt der Speicher-Controller 110 den Laufzeit-Reparaturvorgang an der bestimmten Fehlerzeile durch. Zum Beispiel kann der Speicher-Controller 110 einen direkten Reparaturvorgang an der Fehlerzeile durchführen. Der direkte Reparaturvorgang bezeichnet einen Vorgang, bei dem eine Fehlerzeile durch eine elektrische Sicherungseinstellung in der DRAM-Vorrichtung 120 direkt wiederhergestellt oder repariert wird.
-
Alternativ kann der Speicher-Controller 110 einen indirekten Reparaturvorgang an der Fehlerzeile durchführen. Der indirekte Reparaturvorgang bezeichnet einen Vorgang, bei dem eine Fehlerzeile in einer Speicher-Controller-Schicht indirekt wiederhergestellt oder repariert wird, indem die Fehlerzeile einer reservierten Zeile eines reservierten Bereichs in der DRAM-Steuereinheit 111 neu zugeordnet wird. Alternativ kann der Speicher-Controller 110 den direkten Reparaturvorgang unter einer bestimmten Bedingung durchführen, nachdem der indirekte Reparaturvorgang an der Fehlerzeile durchgeführt wurde. Der direkte Reparaturvorgang und der indirekte Reparaturvorgang gemäß Ausführungsformen der erfinderischen Konzepte werden nachfolgend unter Bezugnahme auf die nachfolgenden Zeichnungen genauer beschrieben.
-
Wie oben beschrieben kann die Speichervorrichtung 100 in dem Fall, in dem eine Fehlerzeile in der DRAM-Vorrichtung 120 erfasst wird, während die Speichervorrichtung 100, welche die DRAM-Vorrichtung 120 umfasst, betrieben wird, den Laufzeit-Reparaturvorgang an der Fehlerzeile durchführen. Da daher eine Fehlerzeile, die in einer DRAM-Vorrichtung 120 erfasst wird, während die Speichervorrichtung 100 betrieben wird, im Voraus wiederhergestellt wird, werden die Zuverlässigkeit und Lebensdauer der DRAM-Vorrichtung 120 oder der Speichervorrichtung 100, die die DRAM-Vorrichtung 120 umfasst, verbessert.
-
4 stellt ein Diagramm dar, das Vorgang S13 und Vorgang S14 aus 3 veranschaulicht. Vorgang S13 und Vorgang S14 aus 3 bilden einen Vorgang, bei dem die angesammelten Fehlerinformationen gesammelt werden. Zum Zwecke einer kurzen Darstellung und einer einfacheren Beschreibung wurde auf Komponenten, die für die Beschreibung von Vorgang S13 und Vorgang S14 aus 3 unnötig sind, verzichtet. Es wird auch angenommen, dass die DRAM-Vorrichtung 120 die ersten bis vierten Zeilen ROW1 bis ROW4 umfasst. Allerdings sind die erfinderischen Konzepte nicht darauf beschränkt und die DRAM-Vorrichtung 120 kann eine beliebige, größere Anzahl an Zeilen als 4 umfassen.
-
In 2 bis 4 kann die DRAM-Steuereinheit 111 einen Zugriffsvorgang an der ersten Zeile ROW1 der DRAM-Vorrichtung 120 durchführen. Zum Beispiel kann die DRAM-Steuereinheit 111 die ersten Daten DATA1 aus der ersten Zeile ROW1 der DRAM-Vorrichtung 120 auslesen. Die DRAM-ECC-Einheit 111a kann einen Fehlererfassungs- und Korrekturvorgang an den ersten Daten DATA1 durchführen und die auf Fehler korrigierten ersten Daten DATA1' können dem ersten Host 11 oder der nichtflüchtigen Speichereinrichtung 130 zur Verfügung gestellt werden.
-
Fehlererfassungsinformation „E“ über den von der DRAM-ECC-Einheit lila erfassten Fehler kann dem Reparaturmanager 111b zur Verfügung gestellt werden. In einer Ausführungsform kann die Fehlererfassungsinformation „E“ die Anzahl an erfassten Fehler-Bits angeben.
-
Der Reparaturmanager 111b kann angesammelte Fehlerinformation AEI basierend auf der Fehlererfassungsinformation „E“ aktualisieren. Zum Beispiel kann der Reparaturmanager 111b die angesammelte Fehlerinformation AEI verwalten. Die angesammelte Fehlerinformation AEI kann Informationen über die Anzahl der Fehler-Bits umfassen, die angesammelt wurden (d. h. die angesammelte Zahl an Fehler-Bits) bezüglich jeder der Zeilen ROW1 bis ROW4 der DRAM-Vorrichtung 120. Zum Beispiel kann die bezüglich der ersten Zeile ROW1 angesammelte Anzahl an Fehler-Bits „a“ sein, die bezüglich der zweiten Zeile ROW2 angesammelte Anzahl an Fehler-Bits kann „b“ sein, die bezüglich der dritten Zeile ROW3 angesammelte Anzahl an Fehler-Bits kann „c“ sein, und die bezüglich der vierten Zeile ROW4 angesammelte Anzahl an Fehler-Bits kann „d“ sein.
-
Der Reparaturmanager 111b kann einen Wert einer relevanten Zeile basierend auf der Fehlererfassungsinformation „E“, die er von der DRAM-ECC-Einheit 111a erhalten hat, aktualisieren. Zum Beispiel in dem Fall, in dem die erhaltene Fehlererfassungsinformation „E“ Informationen über die Anzahl an Fehler-Bits angibt, die mit den ersten Daten DATA1 aus der ersten Zeile ROW1 assoziiert sind, kann der Reparaturmanager 111b einen Wert, der von der angesammelten Fehlerinformation AEI der ersten Zeile ROW1 entspricht, von „a“ auf „a+E“ aktualisieren. Das heißt, der Reparaturmanager 111b kann die Information „E“ über den erfassten Fehler in einem Wert sammeln, der von der angesammelten Fehlerinformation AEI der ersten Zeile ROW1 entspricht. Die DRAM-Steuereinheit 111 kann die angesammelte Fehlerinformation AEI über jede Zeile der DRAM-Vorrichtung 120 verwalten, indem sie den oben beschriebenen Vorgang mehrmals durchführt.
-
In einer Ausführungsform kann der Reparaturmanager 111b in dem Fall, in dem ein Wert (d. h. a+E), der bezüglich der ersten Zeile ROW1 aktualisiert wurde, größer ist als ein Referenzwert REF, bestimmen, dass die erste Ziele ROW1 eine Fehlerzeile ist.
-
5 stellt ein Flussdiagramm von Vorgang S15 aus 3 dar. Es wird nun der direkte Reparaturvorgang (oder ein harter Reparaturvorgang (Hard Repair)) der Laufzeit-Reparaturvorgänge gemäß der erfinderischen Konzepte unter Bezugnahme auf 5 als Ausführungsform beschrieben. In einer beispielhaften Ausführungsform kann ein Vorgang gemäß dem Flussdiagramm aus 5 durchgeführt werden, nachdem eine Fehlerzeile durch Vorgang S14 aus 3 erfasst wurde.
-
In 2, 3 und 5 bestimmt der Speicher-Controller 110 in Vorgang S110, ob die Speichervorrichtung 100 inaktiv ist. Zum Beispiel kann ein inaktiver Zustand der Speichervorrichtung 100 einen Zustand bezeichnen, in dem ein Befehl oder eine Anfrage von dem Host 11 nicht empfangen wird. In einer beispielhaften Ausführungsform kehrt der Vorgang in dem Fall, in dem die Speichervorrichtung 100 nicht inaktiv ist (Nein in S110) zu Vorgang S110 zurück, während die Speichervorrichtung 100 ansprechend auf die Anfrage des Hosts 11 einen normalen Vorgang durchführen kann.
-
In dem Fall, in dem die Speichervorrichtung 100 inaktiv ist (Ja in S110), blockiert der Speicher-Controller 110 in Vorgang S111 einen Zugriff auf die DRAM-Vorrichtung 120. Zum Beispiel kann die DRAM-Vorrichtung 120 eine Mehrzahl an Bänken umfassen. Der Speicher-Controller 110 kann einen Zugriff auf alle Bänke der DRAM-Vorrichtung 120 blockieren oder anhalten.
-
In Vorgang S112 verschiebt der Speicher-Controller 110 Daten, die in der DRAM-Vorrichtung 120 gespeichert sind, zu der nichtflüchtigen Speichereinrichtung 130. Zum Beispiel kann ein Aktualisierungsvorgang der DRAM-Vorrichtung 120 nicht durchgeführt werden, während der Speicher-Controller 110 den direkten Reparaturvorgang an der DRAM-Vorrichtung 120 durchführt. Aus diesem Grund können Daten, die auf der DRAM-Vorrichtung 120 gespeichert sind, verloren gehen. Um zu verhindern, dass Daten, die in der DRAM-Vorrichtung 120 gespeichert sind, verloren gehen, kann der Speicher-Controller 110 Daten, die in der DRAM-Vorrichtung 120 gespeichert sind, auf die nichtflüchtige Speichereinrichtung 130 verschieben.
-
In einer beispielhaften Ausführungsform kann der Speicher-Controller 110 Daten, die in allen Bänken der DRAM-Vorrichtung 120 gespeichert sind, zu der nichtflüchtigen Speichereinrichtung 130 verschieben. Alternativ kann der Speicher-Controller 110 Daten, die in einigen Bänken der Bänke der DRAM-Vorrichtung 120 gespeichert sind, zu der nichtflüchtigen Speichereinrichtung 130 verschieben. In einer beispielhaften Ausführungsform können einige Bänke mindestens zwei oder mehr Bänke umfassen, die eine Fehlerzeile umfassen. Das heißt, der Speicher-Controller 110 kann einige der Daten (d. h., partielle Daten) von den Daten, die in der DRAM-Vorrichtung 120 gespeichert sind, verschieben, oder kann die gesamten Daten (d. h. vollständige Daten) in der DRAM-Vorrichtung 120 verschieben.
-
In Vorgang S113 führt der Speicher-Controller 110 den direkten Reparaturvorgang durch. Zum Beispiel kann der Speicher-Controller 110 einen Vorgang durchführen, um eine Fehlerzeile durch elektrische Sicherungseinstellung in der DRAM-Vorrichtung 120 wiederherzustellen. In einer beispielhaften Ausführungsform kann der direkte Reparaturvorgang basierend auf einem Post-Package-Repair(PPR)-Vorgang durchgeführt werden.
-
In Vorgang S114 stellt der Speicher-Controller 110 die Daten, die zu der nichtflüchtigen Speichereinrichtung 130 verschoben wurden, in der DRAM-Vorrichtung 120 wieder her. Danach kann die Speichervorrichtung 100 normal betrieben werden.
-
6A, 6B und 6C stellen Diagramme dar, die jeweils Vorgang S112, Vorgang S113 und Vorgang S114 aus 5 veranschaulichen. Zum Zwecke einer kurzen Darstellung und einfacheren Beschreibung wird auf Komponenten, die für die Beschreibung von Vorgang S112 bis Vorgang S114 aus 5 unnötig sind, verzichtet. Zum Zwecke der Beschreibung wird angenommen, dass die DRAM-Vorrichtung 120 die ersten bis vierten Bänke BANK1 bis BANK4 umfasst und dass eine Fehlerzeile in der ersten Bank BANK1 umfasst ist. Allerdings sind die erfinderischen Konzepte nicht darauf beschränkt und die DRAM-Vorrichtung 120 kann eine beliebige Anzahl an Bänken umfassen.
-
In 2, 5 und 6A bis 6C kann der Speicher-Controller 110 in Vorgang S112 Daten DATA1, die in der ersten Bank BANK1 gespeichert sind, in der eine Fehlerzeile umfasst ist, von den Bänken BANK1 bis BANK4 der DRAM-Vorrichtung 120, und auch Daten DATA2, die in der zweiten Bank BANK2 benachbart zu der ersten Bank BANK1 gespeichert sind, zu der nichtflüchtigen Speichereinrichtung 130 übertragen. Zum Beispiel kann die DRAM-Steuereinheit 111 die ersten und zweiten Daten DATA1 und DATA2 aus der ersten und zweiten Bank BANK1 und BANK2 auslesen. In einer beispielhaften Ausführungsform kann die DRAM-ECC-Einheit 111a einen Fehler der ersten und zweiten Daten DATA1 und DATA2, die aus der ersten und der zweiten Bank BANK1 und BANK2 ausgelesen werden, korrigieren. Danach können die ersten und zweiten Daten DATA1 und DATA2 (oder auf Fehler korrigierte erste und zweite Daten) der nichtflüchtigen Speichereinrichtung 130 über die Flash-Schnittstelle 116 bereitgestellt werden. Die nichtflüchtige Speichereinrichtung 130 kann erste und zweite Daten DATA1 und DATA2 speichern.
-
Als nächstes kann, wie in 6B beschrieben, in Vorgang S113 die DRAM-Steuereinheit 111 den direkten Reparaturvorgang in der ersten Bank BANK1 durchführen, in der die Fehlerzeile umfasst ist. Zum Beispiel kann die DRAM-Vorrichtung 120 die Fehlerzeile durch einen Vorgang wie beispielsweise eine Sicherungseinstellung ansprechend auf verschiedene Signale von der DRAM-Steuereinheit 111 reparieren.
-
Danach kann der Speicher-Controller 110 in Vorgang S114, wie in 6C dargestellt, die ersten und zweiten Daten DATA1 und DATA2, die in der nichtflüchtigen Speichereinrichtung 130 gespeichert sind, in der ersten und zweiten Bank BANK1 und BANK2 speichern. Zum Beispiel kann die DRAM-Steuereinheit 111 die ersten und zweiten Daten DATA1 und DATA2 von der nichtflüchtigen Speichereinrichtung 130 durch die Flash-Schnittstelle 116 empfangen und kann die ersten und zweiten Daten DATA1 und DATA2 jeweils in der ersten und zweiten BANK1 und BANK2 speichern.
-
7 stellt ein Blockdiagramm einer DRAM-Vorrichtung dar, die Vorgang S113 (d. h. einen direkten Reparaturvorgang) aus 5 durchführt. Zum Zwecke einer kurzen Darstellung und einfacheren Beschreibung wurde auf Komponenten, die für die Beschreibung von Vorgang S113 aus 5 unnötig sind, verzichtet.
-
In 2 und 7 umfasst die DRAM-Vorrichtung 120 eine Speicherzellenanordnung 121, einen Zeilen-Decoder 122, einen Spalten-Decoder 123, eine Steuerlogikschaltung 124 und eine Sicherungsschaltung 125.
-
Die Speicherzellenanordnung 121 kann eine Mehrzahl an DRAM-Zellen umfassen. Die Mehrzahl an DRAM-Zellen kann mit Wortleitungen und Bit-Leitungen verbunden sein. Ein Teil der Mehrzahl an DRAM-Zellen können normale Zellen sein und die verbleibenden DRAM-Zellen können Redundanz-Zellen 121a sein. Die Redundanz-Zellen 121a können DRAM-Zellen zum Ersetzen von Fehlerzellen von den normalen Zellen sein. Die normalen Zellen können als Nutzerzellen charakterisiert sein, auf die der Host (d. h. ein Nutzer) zugreifen kann.
-
Der Zeilen-Decoder 122 kann mit der Speicherzellenanordnung 121 durch Wortleitungen NWL und RWL verbunden sein. Der Zeilen-Decoder 122 kann eine der Wortleitungen NWL und RWL basierend auf einer Adresse ADDR auswählen und kann eine Spannung der gewählten Wortleitung steuern.
-
Der Spalten-Decoder 123 kann durch Bit-Leitungen BL mit der Speicherzellenanordnung 131 verbunden sein. Der Spalten-Decoder 123 kann einen Teil der Bit-Leitungen BL basierend auf der Adresse ADDR auswählen und kann Spannungen der ausgewählten Bit-Leitungen steuern oder fühlen. In einer beispielhaften Ausführungsform kann der Spalten-Decoder 123 Daten DATA mit der DRAM-Steuereinheit 111 austauschen.
-
Die Steuerlogikschaltung 124 kann einen Vorgang der DRAM-Vorrichtung 120 steuern. Die Sicherungsschaltung 125 kann eine Sicherungseinstellung gesteuert von der Steuerlogikschaltung 124 durchführen. Das heißt, die Steuerlogikschaltung 124 kann eingerichtet sein, eine Sicherungseinstellung der Sicherungsschaltung 125 durch den Laufzeit-Reparaturvorgang (z. B. den direkten Reparaturvorgang) des Speicher-Controllers 110 zu machen (z. B. durchzuführen). Eine Fehlerzelle bzw. mehrere Fehlerzellen von den normalen Zellen der Speicherzellenanordnung 121 kann bzw. können mit einer relevanten Zelle bzw. relevanten Zellen der Redundanz-Zellen 121a durch die Sicherungseinstellung der Sicherungsschaltung 125 ersetzt werden. Zum Beispiel kann die Sicherungsschaltung 125 die Adresse ADDR von der DRAM-Steuereinheit 111 empfangen. Die Adresse ADDR kann eine Adresse sein (d. h. eine Fehleradresse), die mit einer normalen Wortleitung NWL assoziiert ist, die einer Fehlerzeile entspricht. In diesem Fall kann die Sicherungsschaltung 125 eine Reparatur-Adresse ausgeben, um zu gestatten, dass der Zeilen-Decoder 122 eine Redundanz-Wortleitung RWL anstelle der normalen Wortleitung NWL auswählt.
-
Das heißt, die Sicherungseinstellung kann auch an der Sicherungsschaltung 125 durchgeführt werden, um eine Fehler-Adresse, die einer Fehlerzeile entspricht, in eine Reparatur-Adresse umzuwandeln und diese ausgeben. Der Zeilen-Decoder 122 kann Redundanz-Wortleitungen RWL basierend auf der Reparatur-Adresse von der Sicherungsschaltung 125 auswählen. In einer beispielhaften Ausführungsform kann die Sicherungsschaltung 125 eine empfangene Adresse ADDR, die nicht einer Fehlerzeile entspricht, an den Zeilen-Decoder 122 ohne getrennte bzw. zusätzliche Umwandlung bzw. Konvertierung übertragen.
-
Wie oben beschrieben kann die DRAM-Vorrichtung 120 einen Wiederherstellungsvorgang an einer Fehlerzeile durchführen, indem sie eine Sicherungseinstellung der Sicherungsschaltung 135 durchführt.
-
8 stellt ein Zeitablaufdiagramm von Eingabe-/Ausgabe-Signalen dar, die mit einem direkten Reparaturvorgang aus 6B assoziiert sind. In einer beispielhaften Ausführungsform kann die DRAM-Vorrichtung 120 den direkten Reparaturvorgang basierend auf einem Hard Post Package Repair hPPR durchführen. In einer beispielhaften Ausführungsform kann eine elektrische Sicherungseinstellung der Sicherungsschaltung 125, die unter Bezugnahme auf 7 beschrieben wurde, ansprechend auf Signale des Zeitablaufdiagramms aus 8 durchgeführt werden.
-
In 2 und 8 kann von einem ersten Zeitpunkt t1 bis zu einem zweiten Zeitpunkt t2 (d. h., hPPR-Eintritt), die DRAM-Vorrichtung 120 ansprechend auf Modus-Register-Set-Befehle MRS4 und MRS0 und Adresssignale BG, BA und ADDR von dem Speicher-Controller 110 in einen Hard Post Package Repair Mode hPPR eintreten. In einer beispielhaften Ausführungsform kann an dem ersten Zeitpunkt t1 ein Wert einer dreizehnten Adresse A13 auf „1“ eingestellt werden, was eine Aktivierung eines Hard Post-Package-Repair-Vorgangs angibt. In einer beispielhaften Ausführungsform können Daten, die in einer Bank gespeichert sind, in der eine Fehlerzeile umfasst ist, oder Daten, die in einer Bank benachbart zu der Bank, in der die Fehlerzeile umfasst ist, gespeichert sind, vor dem Eintritt in den Hard Post Package Repair Mode hPPR zu der nichtflüchtigen Speichereinrichtung 130 verschoben werden. Auch können vor Eintritt in den Hard Post Package Repair Mode hPPR alle Bänke der DRAM-Vorrichtung 120 vorgeladen werden.
-
Danach kann die DRAM-Vorrichtung 120 von dem zweiten Zeitpunkt t2 bis zu einem dritten Zeitpunkt t3 (d. h., hPPR-Reparatur) ansprechend auf einen Aktivierungs-Befehl ACT, einen Auto-Vorlade-Schreib-Befehl WRA und Adresssignale BGf und BAf einen hPPR Reparaturvorgang durchführen. In einer beispielhaften Ausführungsform können die Adresssignale BGf, BAf und ADDR Adresssignale sein, die einer Fehlerzeile entsprechen. Der hPPR-Reparaturvorgang kann durch elektrische Sicherungseinstellung der Sicherungsschaltung 135 wie unter Bezugnahme auf 7 beschrieben, durchgeführt werden.
-
Danach kann die DRAM-Vorrichtung 120 von dem dritten Zeitpunkt t3 bis zu einem vierten Zeitpunkt t4 (d. h. hPPR-Erkennung) ansprechend auf einen Vorlade-Befehl PRE eine hPPR-Erkennung durchführen. Von dem vierten Zeitpunkt t4 bis zu einem fünften Zeitpunkt t5 (d. h. hPPR-Exit) kann die DRAM-Vorrichtung 120 den hPPR-Modus ansprechend auf einen Modus-Register-Set-Befehl MRS4 und ein Adresssignal (insbesondere A13=0) verlassen. Danach kann die DRAM-Vorrichtung 120 die verschobenen Daten gesteuert durch die DRAM-Steuereinheit 111 wiederherstellen.
-
In einer beispielhaften Ausführungsform ist das Zeitablaufdiagramm aus 8 mit einer beispielhaften Ausführungsform des direkten Reparaturvorgangs assoziiert und die erfinderischen Konzepte sind nicht darauf beschränkt. Zum Beispiel kann der oben beschriebene hPPR-Vorgang durchgeführt werden, indem ein normaler Schreibbefehl WR anstelle des Auto-Vorlade-Schreib-Befehls WRA verwendet wird. In diesem Fall können Daten, die in allen Bänken der DRAM-Vorrichtung 120 gespeichert sind, vor Eintritt in den hPPR-Modus gesichert (d. h. verschoben) werden. Alternativ kann der direkte Reparaturvorgang basierend auf einer Soft Post Package Repair sPPR durchgeführt werden.
-
9 stellt ein Flussdiagramm von Vorgang S15 aus 3 dar. In 2, 3 und 9 führt der Speicher-Controller 110 einen Vorgang S120 und Vorgang S121 durch. Vorgang S120 und Vorgang S121 können mit Vorgang S110 und Vorgang S111 aus 5 identisch sein und daher wird eine detaillierte Beschreibung derselben hier nicht wiederholt.
-
In Vorgang S122 bestimmt der Speicher-Controller 110, ob ein Backup- bzw. Sicherungsvorgang für Daten, die in der DRAM-Vorrichtung 120 gespeichert sind, erforderlich ist. Zum Beispiel kann in dem Fall, in dem wichtige Daten (z. B. Kennfeld-Informationen und Meta-Informationen) in Bänken gespeichert sind, in denen eine Fehlerzeile umfasst ist, aus einer Mehrzahl an Bänken der DRAM-Vorrichtung 120, der Speicher-Controller 110 bestimmen, dass der Sicherungsvorgang erforderlich ist (Ja in S122). In diesem Fall führt die Speichervorrichtung 100 einen Vorgang S123 bis Vorgang S125 durch. Vorgang S123 bis Vorgang S125 können mit Vorgang S112 bis Vorgang S114 aus 5 identisch sein und daher wird eine detaillierte Beschreibung derselben hier nicht wiederholt.
-
In dem Fall, in dem wichtige Daten nicht in Bänken von einer Mehrzahl an Bänken gespeichert sind, in denen eine Fehlerzeile umfasst ist (z. B. nur einfach gepufferte Nutzerdaten in den Bänken gespeichert sind, in denen die Fehlerzeile umfasst ist), kann der Speicher-Controller 110 bestimmen, dass der Sicherungsvorgang nicht erforderlich ist (Nein in S122). In diesem Fall führt der Speicher-Controller 110 in Vorgang S126 den direkten Reparaturvorgang ohne getrennten Sicherungsvorgang durch. Zum Beispiel in dem Fall, in dem nur einfache Nutzerdaten, die bereits in der nichtflüchtigen Speichereinrichtung 130 gespeichert wurden, in den Bänken gespeichert sind, an denen der direkte Reparaturvorgang durchgeführt wird, können, obwohl Daten der DRAM-Vorrichtung 120 während des direkten Reparaturvorgangs verloren gehen, die verlorenen Daten (d. h. einfache Nutzerdaten) von der nichtflüchtigen Speichereinrichtung 130 wiederhergestellt werden. Das heißt, obwohl der Speicher-Controller 110 den direkten Reparaturvorgang ohne getrennten Backupvorgang durchführt, kann die Speichervorrichtung 100 normal betrieben werden. Nachdem der direkte Reparaturvorgang abgeschlossen ist, wird der Speicher-Controller 110 oder die Speichervorrichtung 100 in Vorgang S127 zurückgesetzt.
-
Wie oben beschrieben kann in dem Fall, in dem keine wichtige Daten in Bänken gespeichert sind, an denen der direkte Reparaturvorgang durchgeführt werden wird, der direkte Reparaturvorgang ohne getrennten bzw. zusätzlichen Backup-Vorgang durchgeführt werden.
-
10 stellt ein Flussdiagramm eines Betriebs eines Speicher-Controllers aus 2 dar. Ein Verfahren, bei dem der Speicher-Controller 110 eine Anfrage des Hosts 11 verarbeitet, während er den direkten Reparaturvorgang durchführt, wird nun unter Bezugnahme auf 10 beschrieben.
-
In 2 und 10 erhält der Speicher-Controller 110 in Vorgang S130 eine Anfrage von dem Host 11. Zum Beispiel kann der Host 11 eine Anfrage an die Speichervorrichtung 100 übermitteln, mit dem Zweck, verschiedene Vorgänge durchzuführen (z. B. einen Lesevorgang, einen Schreibvorgang und einen Löschvorgang).
-
In Vorgang S131 bestimmt der Speicher-Controller 110, ob der direkte Reparaturvorgang durchgeführt wird. Zum Beispiel kann der Speicher-Controller 110 eine Anfrage von dem Host 11 erhalten, während er den direkten Reparaturvorgang durchführt, der unter Bezugnahme auf 1 bis 9 beschrieben wurde.
-
In dem Fall, in dem der direkte Reparaturvorgang durchgeführt wird (Ja in S131), bestimmt der Speicher-Controller 110 in Vorgang S132, ob die erhaltene Anfrage mit einem Vorgang assoziiert ist, der nicht die DRAM-Vorrichtung 120 erfordert.
-
In dem Fall, in dem die erhaltene Anfrage einen Vorgang der DRAM-Vorrichtung 120 begleitet (Nein in S132), liefert der Speicher-Controller 110 in Vorgang S133 ein Unterbrechungssignal an den Host 11. Zum Beispiel kann in dem Fall, in dem wie oben beschrieben der direkte Reparaturvorgang durchgeführt wird, jeglicher Zugriff auf die DRAM-Vorrichtung 120 blockiert oder angehalten werden. Das heißt, in dem Fall, in dem die Anfrage von dem Host 11 einen Vorgang begleitet (z. B. einen Lesevorgang oder einen Schreibvorgang), bei dem die DRAM-Vorrichtung 120 verwendet wird, versäumt es der Speicher-Controller 110 möglicherweise, die Anfrage von dem Host 11 sofort oder innerhalb einer gegebenen Zeit zu verarbeiten. In diesem Fall liefert der Speicher-Controller 110 ein Unterbrechungssignal an den Host 11 und der Host 11 erkennt, dass der Speicher-Controller 110 den Laufzeit-Reparaturvorgang (oder den direkten Reparaturvorgang) ansprechend auf das Unterbrechungssignal durchführt.
-
In dem Fall, in dem der Speicher-Controller 110 bestimmt, dass ein direkter Reparaturvorgang derzeit nicht durchgeführt wird (Nein in S131), führt der Speicher-Controller 110 in Vorgang S134 einen Vorgang durch, der der empfangenen Anfrage entspricht. Alternativ führt der Speicher-Controller 110 den Vorgang S134 in dem Fall durch, in dem die erhaltene Anfrage mit einem Vorgang assoziiert ist (z. B. einem physischen Löschvorgang der nichtflüchtigen Speichereinrichtung 130), der ohne die DRAM-Vorrichtung 120 möglich ist, obwohl der direkte Reparaturvorgang durchgeführt wird. Auch in dem Fall in dem die erhaltene Anfrage keinen Vorgang der DRAM-Vorrichtung 120 umfasst (Ja in S132), führt der Speicher-Controller 110 in Vorgang S134 einen Vorgang durch, der der erhaltenen Anfrage entspricht.
-
11 stellt ein Blockdiagramm eines Speicher-Controllers gemäß einer anderen Ausführungsform der erfinderischen Konzepte dar. In 11 umfasst der Speicher-Controller 210 die DRAM-Steuereinheit 211, einen Prozessor 212, einen SRAM 213, eine NVM-ECC-Einheit 214, eine Host-Schnittstelle 215 und eine Flash-Schnittstelle 216. Der Prozessor 212, der SRAM 213, die NVM-ECC-Einheit 214, die Host-Schnittstelle 215 und die Flash-Schnittstelle 216 sind jeweils ähnlich eingerichtet und arbeiten ähnlich wie der Prozessor 112, der SRAM 113, die NVM-ECC-Einheit 114, die Host-Schnittstelle 115 und die Flash-Schnittstelle 116 wie zuvor unter Bezugnahme auf 2 beschrieben und daher wird auf eine zusätzliche Beschreibung verzichtet, um Redundanz zu vermeiden. Die DRAM-Steuereinheit 211 in dieser Ausführungsform ist mit einer DRAM-Vorrichtung wie beispielsweise einer DRAM-Vorrichtung 120, die in 1 gezeigt ist, verbunden und wird nachfolgend unter Bezugnahme auf die DRAM-Vorrichtung 120 beschrieben. Ebenso ist die Flash-Schnittstelle 216 in dieser Ausführungsform mit einer nichtflüchtigen Speichereinrichtung wie beispielsweise einer nichtflüchtigen Speichereinrichtung 130 in 1 verbunden und wird nachfolgend unter Bezugnahme auf die nichtflüchtige Speichereinrichtung 130 beschrieben.
-
Die DRAM-Steuereinheit 211 umfasst eine DRAM-ECC-Einheit 211a, einen Reparaturmanager 211b und einen DRAM-Zugriffsmanager 211c. Die DRAM-ECC-Einheit 211a und der Reparaturmanager 211b sind jeweils ähnlich eingerichtet und arbeiten ähnlich wie die DRAM-ECC-Einheit 111a und der Reparaturmanager 111b, die oben unter Bezugnahme auf 2 beschrieben wurden, und daher wird eine detaillierte Beschreibung derselben hier nicht wiederholt.
-
Der DRAM-Zugriffsmanager 211c kann eine Adresse für einen Zugriff auf eine DRAM-Vorrichtung 120 verwalten (siehe z. B. 1). Der DRAM-Zugriffsmanager 211c kann mit einer Cache-Schichtstruktur implementiert werden. Zum Beispiel in dem Fall, in dem der Prozessor 212 eine erste Adresse erzeugt, mit dem Zweck, auf die DRAM-Vorrichtung 120 zuzugreifen, kann der DRAM-Zugriffsmanager 211c bestimmen, ob eine Zeile, die einer ersten Adresse entspricht, eine Fehlerzeile ist, und kann eine reservierte Adresse anstelle der ersten Adresse ausgeben, wenn die Zeile, die der ersten Adresse entspricht, eine Fehlerzeile ist. Ein Zugriff auf die DRAM-Vorrichtung 120 kann basierend auf der reservierten Adresse durchgeführt werden, die von dem DRAM-Zugriffsmanager 211c ausgegeben wird.
-
In einer beispielhaften Ausführungsform kann der DRAM-Zugriffsmanager 211c verschiedene Informationen für den oben beschriebenen Fehlerzeilen-Bestimmungsvorgang und einen Adressen-Neuzuordnungsvorgang umfassen. Zum Beispiel kann der DRAM-Zugriffsmanager 211c Adressfeldinformationen umfassen, die eine Adresse und ein Neuzuordnungs-Flag umfassen, das mit jeder der Mehrzahl an Zeilen der DRAM-Vorrichtung 120 assoziiert ist. Der DRAM-Zugriffsmanager 211c kann eine Neuzuordnungs-Tabelle umfassen, die Neuzuordnungs-Informationen zwischen einer Adresse einer Fehlerzeile und einer reservierten Adresse eines reservierten Bereichs umfasst.
-
In einer beispielhaften Ausführungsform können verschiedene Informationen (d. h. die Adressfeldinformationen und die Neuzuordnungs-Tabelle), die von dem DRAM-Zugriffsmanager 211c verwaltet werden, in dem SRAM 213 gespeichert werden, und können durch einen indirekten Reparaturvorgang (oder einen Soft-Reparaturvorgang) des Reparaturmanagers 211b aktualisiert werden. Der indirekte Reparaturvorgang wird unter Bezugnahme auf die nachfolgenden Zeichnungen genauer beschrieben.
-
12 stellt ein Flussdiagramm einen indirekten Reparaturvorgangs eines Speicher-Controllers aus 11 dar. 13A und 13B sind Diagramme, die einen Vorgang gemäß des Flussdiagramms aus 12 veranschaulichen. In einer beispielhaften Ausführungsform kann das Flussdiagramm aus 12 eine Ausführungsform sein, die mit Vorgang S15 aus 3 assoziiert ist. Das heißt, ein Vorgang gemäß des Flussdiagramms aus 12 kann durchgeführt werden, wenn eine Fehlerzeile von der DRAM-Vorrichtung 120 erfasst wird.
-
In 11 und 12 ordnet der Speicher-Controller 110 in Vorgang S211 eine Fehleradresse, die der Fehlerzeile entspricht, einer reservierten Adresse neu zu (d. h. in einer reservierten Zeile). Zum Beispiel kann der Speicher-Controller 110, wie in 13A dargestellt, sowohl einen Nutzerbereich als auch einen reservierten Bereich der DRAM-Vorrichtung 120 erkennen. Das heißt, der Speicher-Controller 210 kann einen Bereich, der 0-ten bis n-ten Adressen ADDR_u0 bis ADDR_un der DRAM-Vorrichtung 120 entspricht, als Nutzerbereich erkennen, und kann einen Bereich, der 0-ten bis m-ten Adressen ADDR_r0 bis ADDR_rm der DRAM-Vorrichtung 120 entspricht, als reservierten Bereich erkennen.
-
Der Nutzerbereich kann einen Bereich angeben, auf den in einem normalen Vorgang des Speicher-Controllers 210 zugegriffen wird. Der reservierte Bereich kann einen Bereich angeben, der von dem Speicher-Controller 210 erkannt wird, oder einen Bereich, auf den bei einem normalen Zugriffsvorgang nicht zugegriffen werden soll. Mit anderen Worten, der Speicher-Controller 210 (insbesondere der Prozessor 212) kann eine Adresse erzeugen (d. h. ADDR_u0 bis ADDR_un), die in dem Nutzerbereich als Originaladresse umfasst ist, mit dem Zweck, auf die DRAM-Vorrichtung 120 zuzugreifen.
-
In dem Fall, in dem eine Fehlerzeile in dem Nutzerbereich auftritt, ordnet der Speicher-Controller 210 einen Bereich, der der Fehlerzeile entspricht, einer reservierten Zeile des reservierten Bereichs zu. Zum Beispiel in dem Fall, in dem, wie in 13A dargestellt, eine Zeile, die der Adresse ADDR_uk des Nutzerbereichs entspricht, als Fehlerzeile erfasst wird, ordnet der DRAM-Zugriffsmanager 211c die Nutzeradresse ADDR_uk des Nutzerbereichs der reservierten Adresse ADDR_rk des reservierten Bereichs neu zu (d. h. führt eine Umleitung durch).
-
In Vorgang S212 aktualisiert der Speicher-Controller 210 die Neuzuordnungs-Tabelle und ein Adressfeld. Zum Beispiel kann der DRAM-Zugriffsmanager 211c, wie in 13B dargestellt, ein Adressfeld AF und eine Neuzuordnungs-Tabelle RT umfassen. Wie oben beschrieben kann das Adressfeld Neuzuordnungs-Flag-Informationen über jede Zeile der DRAM-Vorrichtung 120 umfassen. Die Neuzuordnungs-Tabelle RT kann Informationen über eine Neuzuordnungs-Beziehung zwischen einer Fehleradresse, die einer Fehlerzeile entspricht, und einer reservierten Adresse, die einer reservierten Zeile entspricht, umfassen.
-
Wie unter Bezugnahme auf 13A beschrieben, kann in dem Fall, in dem die Zeile, die der Nutzeradresse ADDR_uk entspricht, eine Fehlerzeile ist, und die Nutzeradresse ADDR_uk der reservierten Adresse ADDR_rk neu zugeordnet wird, der Speicher-Controller 210 die k-te Adresse ADDR_uk des Nutzerbereichs auf die Fehlerzeile einstellen und kann die k-te Adresse ADDR rk des reservierten Bereichs auf die reservierte Zeile einstellen. Das heißt, der Speicher-Controller 210 kann die Neuzuordnungs-Tabelle RT basierend auf Informationen über die Fehlerzeile des Nutzerbereichs und der neu zugeordneten reservierten Zeile aktualisieren.
-
In einer beispielhaften Ausführungsform kann der Speicher-Controller 210 hinsichtlich des Adressfelds AF einen Wert des Neuzuordnungs-Flags, das mit der Nutzeradresse ADDR_uk assoziiert ist, von „0“ auf „1“ ändern. In einer beispielhaften Ausführungsform kann der Fall, in dem das Neuzuordnungs-Flag „1“ ist, bedeuten, dass eine relevante Adresse einem reservierten Bereich neu zugeordnet wurde; der Fall, in dem das Neuzuordnungs-Flag „0“ ist, kann bedeuten, dass eine relevante Adresse nicht einem reservierten Bereich neu zugeordnet wurde.
-
14 stellt ein Flussdiagramm eines Zugriffsvorgangs dar, der mit einer DRAM-Vorrichtung eines Speicher-Controllers aus 11 assoziiert ist. In 11 und 14 erzeugt der Speicher-Controller 210 in Vorgang S221 eine Originaladresse, die einer Zeile entspricht, auf die zugegriffen werden soll. Zum Beispiel kann der Prozessor 212 des Speicher-Controllers 210 eine Originaladresse zum Zugreifen auf die DRAM-Vorrichtung 120 erzeugen. In einer beispielhaften Ausführungsformen kann die Originaladresse eine Adresse sein, die in den Adressen ADDR u0 bis ADDR un des Nutzerbereichs, der unter Bezugnahme auf 13A beschrieben wird, umfasst ist. Das heißt, der Prozessor 212 kann eingerichtet sein, auf den Nutzerbereich der DRAM-Vorrichtung 120 zuzugreifen.
-
In Vorgang S222 bestimmt der Speicher-Controller 210, ob eine Zeile, die der Originaladresse entspricht, eine Fehlerzeile ist. Zum Beispiel kann der Speicher-Controller 210 das Neuzuordnungs-Flag des Adressfelds AF, das mit der Originaladresse assoziiert ist, überprüfen. In dem Fall, in dem das Neuzuordnungs-Flag „0“ ist, bestimmt der Speicher-Controller 210, dass die Zeile, die der Originalzeile entspricht, keine Fehlerzeile ist (Nein in S222). In diesem Fall führt der Speicher-Controller 210 in Vorgang S223 einen Zugriffsvorgang an der Zeile durch (d. h. einer Zeile des Nutzerbereichs), die der Originaladresse entspricht.
-
In dem Fall, in dem das Neuzuordnungs-Flag, das der Originaladresse entspricht, „1“ ist, bestimmt der Speicher-Controller 210, dass die Zeile, die der Originalzeile entspricht, eine Fehlerzeile ist (Ja in S222). In diesem Fall suchte der Speicher-Controller 210 in Vorgang S224 eine neu zugeordnete Adresse, die der Originaladresse entspricht, basierend auf der Neuzuordnungs-Tabelle RT. Zum Beispiel kann die Neuzuordnungs-Tabelle RT, wie unter Bezugnahme auf 13B beschrieben, Informationen über eine Beziehung zwischen der Originaladresse, die mit der Fehlerzeile assoziiert ist, und einer neu zugeordnete Adresse, die mit einer reservierten Zeile assoziiert ist, umfassen. Das heißt, der Speicher-Controller 210 kann die neu zugeordnete Adresse suchen, die der Originaladresse aus der Neuzuordnungs-Tabelle RT entspricht.
-
In Vorgang S225 führt der Speicher-Controller 210 einen Zugriffsvorgang auf die reservierte Zeile durch, die der neu zugeordneten Adresse entspricht.
-
Wie oben beschrieben kann gemäß Ausführungsformen der erfinderischen Konzepte eine Fehlerzeile der DRAM-Vorrichtung 120 einem reservierten Bereich der DRAM-Vorrichtung 120 neu zugeordnet werden, indem eine Cache-Schichtstruktur anstelle des direkten Reparaturvorgangs der DRAM-Vorrichtung 120 verwendet wird. Dementsprechend kann die DRAM-Vorrichtung 120 oder die Speichervorrichtung normal betrieben werden, während die Speichervorrichtung angetrieben wird, obwohl eine Fehlerzeile in der DRAM-Vorrichtung 120 erfasst wird.
-
15 stellt ein Flussdiagramm eines Laufzeit-Reparaturvorgangs gemäß einer Ausführungsform der erfinderischen Konzepte dar. In dieser Ausführungsform wird ein Laufzeit-Reparaturvorgang, in dem ein direkter Reparaturvorgang und ein indirekter Reparaturvorgang kombiniert werden, unter Bezugnahme auf 15 beschrieben.
-
In 11 und 15 lädt der Speicher-Controller 210 in Vorgang S301 angesammelte Fehlerinformationen, eine Neuzuordnungs-Tabelle und ein Adressfeld. Zum Beispiel kann die angesammelte Fehlerinformation die Anzahl an Fehler-Bits angeben, die bezüglich jeder Zeile der DRAM-Vorrichtung 120 angesammelt wurden, wie unter Bezugnahme auf 4 beschrieben, die Neuzuordnungs-Tabelle kann eine Zuordnungsbeziehung zwischen einer Adresse einer Fehlerzeile und einer neu zugeordneten Adresse wie unter Bezugnahme auf 13B beschrieben angeben, und das Adressfeld kann Informationen über eine Adresse und einen entsprechenden Neuzuordnungs-Flag wie unter Bezugnahme auf 13B beschrieben angeben.
-
In einer beispielhaften Ausführungsform können die Informationen in regelmäßigen Zeitabständen in einen bestimmten Bereich (z. B. einen Meta-Bereich) der nichtflüchtigen Speichereinrichtung 130 verschoben werden, um Daten zu pflegen. Der Speicher-Controller 210 kann die oben beschriebenen Informationen von der nichtflüchtigen Speichereinrichtung 130 in einem Initialisierungsvorgang des Speicher-Controllers 210 laden. In einer beispielhaften Ausführungsform können die geladenen Informationen in dem SRAM 213 gespeichert werden und können von dem Prozessor 212 oder der DRAM-Steuereinheit 211 verwaltet werden.
-
In Vorgang S302 bestimmt der Speicher-Controller 210, ob eine Vorrichtung inaktiv ist (d. h. in einem inaktiven Zustand). In dem Fall, in dem die Vorrichtung nicht inaktiv ist (Nein in S302), führt der Speicher-Controller 210 Vorgang S311 bis Vorgang S314 durch. Vorgang S311 bis Vorgang S313 können mit Vorgang S12 bis Vorgang S14 aus 3 identisch sein und daher wird eine detaillierte Beschreibung derselben hier nicht wiederholt. Vorgang S314 ist dem indirekten Reparaturvorgang, der unter Bezugnahme auf 12 beschrieben wurde, ähnlich und daher wird auf eine zusätzliche Beschreibung verzichtet, um Redundanz zu vermeiden.
-
In dem Fall, in dem die Vorrichtung inaktiv ist (Ja in S302), führt der Speicher-Controller 210 Vorgang S321 bis Vorgang S324 durch. Vorgang S321 bis Vorgang S324 können dem Vorgang S111 bis Vorgang S114 (d. h. dem direkten Reparaturvorgang) aus 5 ähnlich sein und daher wird eine detaillierte Beschreibung derselben hier nicht wiederholt.
-
Das heißt, in dem Fall, in dem eine Vorrichtung nicht inaktiv ist und eine Fehlerzeile in der DRAM-Vorrichtung 120 erfasst wird, kann der Speicher-Controller 210 den indirekten Reparaturvorgang durchführen. Wie oben beschrieben kann der indirekte Reparaturvorgang nicht Vorgänge wie einen Zugriffssperrvorgang auf die DRAM-Vorrichtung 120 und einen Datensicherungsvorgang begleiten, wodurch eine zusätzliche Reduzierung der Performance verhindert wird. Allerdings kann der Speicher-Controller 210 in dem Fall, in dem die Vorrichtung inaktiv ist, den direkten Reparaturvorgang durchführen. In diesem Fall kann der Speicher-Controller 210 einen direkten Reparaturvorgang an neu zugeordneten Adressen der Neuzuordnungs-Tabelle RT sowie der erfassten Fehlerzeile durchführen.
-
In einer beispielhaften Ausführungsform kann Vorgang S302, wie in 15 durch die Strichlinie angegeben, zwischen Vorgang S301 und Vorgang S311/S321 und während die Speichervorrichtung arbeitet durchgeführt werden. Das heißt, der Speicher-Controller 210 kann kontinuierlich bestimmen, ob eine Vorrichtung inaktiv ist, während die Speichervorrichtung arbeitet, wodurch der indirekte Reparaturvorgang oder der direkte Reparaturvorgang durchgeführt wird.
-
Obwohl nicht in 15 dargestellt, kann der Speicher-Controller 210 in einer beispielhaften Ausführungsform den direkten Reparaturvorgang in dem Fall durchführen, in dem die Anzahl an neu zugeordneten Adressen, die in der Neuzuordnungs-Tabelle RT umfasst sind, nicht kleiner ist als ein Referenzwert.
-
16 stellt ein Flussdiagramm eines Betriebs eines Speicher-Controllers gemäß einer Ausführungsform der erfinderischen Konzepte dar. In 11 und 16 führt der Speicher-Controller 210 in Vorgang S410 einen normalen Vorgang durch. In diesem Fall kann der normale Vorgang verschiedene Vorgänge, die mit der Speichervorrichtung assoziiert sind, oder die Laufzeit-Reparaturvorgänge umfassen, die unter Bezugnahme auf die 1 bis 13 beschrieben sind.
-
In Vorgang S420 bestimmt der Speicher-Controller 210, ob eine Leistung ausgeschaltet ist. Zum Beispiel kann eine Leistung, die der Speichervorrichtung zur Verfügung gestellt wird, gesteuert durch einen Host abgeschaltet werden, oder es kann aufgrund verschiedener Gründe zu einer plötzlichen Leistungsabschaltung (Sudden Power Off, SPO) kommen.
-
In dem Fall, in dem eine Leistung abgeschaltet wird (Ja in S420), verschiebt der Speicher-Controller 210 in Vorgang S430 angesammelte Fehlerinformationen, eine Neuzuordnungs-Tabelle und ein Adressfeld zu einem Meta-Bereich der nichtflüchtigen Speichereinrichtung 130. In einer beispielhaften Ausführungsform kann der Speicher-Controller 210 die oben beschriebenen Informationen zusammen mit wichtigen Daten (z. B. einer Zuordnungs-Tabelle und Meta-Informationen), die auf der DRAM-Vorrichtung 120 gespeichert sind, zu der nichtflüchtigen Speichereinrichtung 130 verschieben. In dem Fall, in dem die Leistung nicht ausgeschaltet wird (Nein in S420), kann der Vorgang zu Vorgang S420 zurückkehren.
-
In Vorgang S440 bestimmt der Speicher-Controller 210, ob eine Leistung eingeschaltet ist. Zum Beispiel kann, nachdem die Leistung ausgeschaltet wurde, die Leistung von einem Host wieder zur Verfügung gestellt werden (Ja in S440). In diesem Fall lädt der Speicher-Controller 210 in Vorgang S450 die verschobenen Informationen (z. B. angesammelte Fehlerinformationen, eine Neuzuordnungs-Tabelle und ein Adressfeld) aus dem Meta-Bereich der nichtflüchtigen Speichereinrichtung 130. Die geladenen Informationen können in dem SRAM 213 gespeichert werden und können von dem Prozessor 212 oder der DRAM-Steuereinheit 211 verwaltet werden. In einer beispielhaften Ausführungsform können die oben beschriebenen Ladevorgänge während eines Initialisierungsvorgangs des Speicher-Controllers 210 durchgeführt werden. In dem Fall, in dem die Leistung nicht eingeschaltet ist (Nein in S440), kann der Vorgang zu Vorgang S440 zurückkehren.
-
Danach führt der Speicher-Controller 210 in Vorgang S460 einen normalen Vorgang durch. Zum Beispiel kann der Speicher-Controller 210 den unter Bezugnahme auf 1 bis 15 beschriebenen Laufzeit-Reparaturvorgang basierend auf den geladenen Informationen durchführen.
-
Wie oben beschrieben kann ein Speicher-Controller gemäß Ausführungsformen der erfinderischen Konzepte angesammelte Fehlerinformationen über eine DRAM-Vorrichtung sammeln und kann eine Fehlerzeile der DRAM-Vorrichtung basierend auf der angesammelten Fehlerinformation erfassen. Der Speicher-Controller kann die Fehlerzeile reparieren, indem er einen Laufzeit-Reparaturvorgang an der erfassten Fehlerzeile durchführt. Da Informationen wie angesammelte Fehlerinformationen, eine Neuzuordnungs-Tabelle und ein Adressfeld gepflegt werden sollten, um eine Fehlerzeile zu erfassen oder einen Laufzeit-Reparaturvorgang durchzuführen, wie unter Bezugnahme auf 16 beschrieben, kann die Information in einer beispielhaften Ausführungsform bei Leistungsabschaltung auf eine nichtflüchtige Speichereinrichtung verschoben werden oder sie kann in regelmäßigen oder unregelmäßigen Zeitabständen zu der nichtflüchtigen Speichereinrichtung verschoben werden.
-
17 stellt ein Blockdiagramm eines Nutzersystems dar, bei dem eine Speichervorrichtung gemäß Ausführungsformen der erfinderischen Konzepte verwendet wird. In 17 umfasst ein Nutzersystem 1000 eine zentrale Verarbeitungseinheit (CPU) 1100, einen Systemspeicher 1200, eine Speichervorrichtung 1300, ein Ein-/Ausgabegerät 1400 und eine Grafikvorrichtung 1500.
-
Die CPU 1100 kann Vorgänge wie zum Beispiel Anweisungsvorgänge, Anweisungs-Decodierungen, oder Anweisungssteuerungen durchführen, die von dem Nutzersystem 1000 angefragt werden. Der Systemspeicher 1200 kann als Pufferspeicher, als Cache-Speicher oder Hauptspeicher der CPU 1100 verwendet werden. In einer beispielhaften Ausführungsform kann der Systemspeicher 1200 eine DRAM-Vorrichtung umfassen. Die CPU 1100 und der Systemspeicher 1200 können eingerichtet sein, den Laufzeit-Reparaturvorgang durchzuführen, der unter Bezugnahme auf 1 bis 16 beschrieben wird. Das heißt, während das Nutzersystem 1000 betrieben wird, kann eine Fehlerzeile von dem Systemspeicher 1200 erfasst werden, und es kann ein Laufzeit-Reparaturvorgang an der erfassten Fehlerzeile durchgeführt werden.
-
Die Speichervorrichtung 1300 kann Daten speichern, die in dem Nutzersystem 1000 verwendet werden. Die Speichereinrichtung 1300 kann als nichtflüchtige Halbleiter-Speichereinrichtung wie beispielsweise ein Phasenänderungs-RAM (PRAM), ein magnetischer RAM (MRAM), ein resistiver RAM (RRAM), ein NAND-Flashspeicher, ein NOR-Flashspeicher oder ein dreidimensionaler NAND-Flashspeicher oder dergleichen implementiert werden. Die Speichervorrichtung 1300 kann ein Speichermedium mit hoher Kapazität sein. In einer beispielhaften Ausführungsform kann die Speichervorrichtung 1300 eine Speichervorrichtung sein, die auf den Ausführungsformen basiert, die unter Bezugnahme auf 1 bis 16 beschrieben wurden.
-
Das Ein-/Ausgabegerät 1400 kann Vorrichtungen umfassen, die Daten oder eine Anweisung an das Nutzersystem 1000 eingeben oder Daten an eine externe Vorrichtung ausgeben. In einer beispielhaften Ausführungsform kann das Ein-/Ausgabegerät 1400 Nutzereingabeschnittstellen wie beispielsweise eine Tastatur, ein Tastenfeld, eine Taste, ein Touch-Panel, ein Touchscreen, ein Touchpad, einen Touchball, eine Kamera, ein Mikrofon, einen Gyroskopsensor, einen Vibrationssensor und ein piezoelektrisches Element oder dergleichen umfassen. Das Ein-/Ausgabegerät 1400 kann ferner Nutzerausgabeschnittstellen wie beispielsweise einen Flüssigkristallbildschirm (LCD), eine organische Leuchtdioden(OLED)-Anzeigevorrichtung, eine Aktivmatrix-OLED(AMOLED)-Anzeigevorrichtung, eine Leuchtdiode (LED), einen Lautsprecher und einen Motor oder dergleichen umfassen.
-
Die Grafikvorrichtung 1500 kann eine Vorrichtung zur Anzeige eines Vorgangsergebnisses der CPU 1100 sein. Die Grafikvorrichtung 1500 kann einen Grafikprozessor (GPU) 1510 und einen Grafikspeicher 1520 umfassen. Die GPU 1510 kann ein Datensignal, das von der CPU 1100 bereitgestellt wird, in ein Bildsignal umwandeln. Die GPU 1510 kann verschiedene Vorgänge zur Grafikverarbeitung durchführen.
-
Der Grafikspeicher 1520 kann ein Pufferspeicher oder ein Cachespeicher sein, der vorübergehend Informationen speichert, die erforderlich sind, damit die GPU 1510 arbeitet. In einer beispielhaften Ausführungsform kann der Grafikspeicher 1520 eine DRAM-Vorrichtung umfassen. Die GPU 1510 und der Grafikspeicher 1520 können eingerichtet sein, den unter Bezugnahme auf 1 bis 16 beschriebenen Laufzeit-Reparaturvorgang durchzuführen. Das heißt, während eine Grafikvorrichtung 1500 betrieben wird, kann eine Fehlerzeile von dem Systemspeicher 1200 erfasst werden, und es kann ein Laufzeit-Reparaturvorgang an der erfassten Fehlerzeile durchgeführt werden.
-
Gemäß der erfinderischen Konzepte kann ein Laufzeit-Reparaturvorgang an einer Fehlerzeile einer DRAM-Vorrichtung, welche auftritt, während eine Speichervorrichtung betrieben wird, durchgeführt wird. Das heißt, obwohl eine Fehlerzeile an der DRAM-Vorrichtung auftritt, während die Speichervorrichtung, die die DRAM-Vorrichtung umfasst, betrieben wird, kann die DRAM-Vorrichtung oder die Speichervorrichtung normal betrieben werden. Dementsprechend werden eine Speichervorrichtung mit verbesserter Zuverlässigkeit und verbesserter Lebensdauer und ein Betriebsverfahren für dieselbe bereitgestellt.