DE102010030745B4 - Nicht-flüchtiger Speicher zum Speichern von Speicher-Umabbildungs-Informationen - Google Patents

Nicht-flüchtiger Speicher zum Speichern von Speicher-Umabbildungs-Informationen Download PDF

Info

Publication number
DE102010030745B4
DE102010030745B4 DE102010030745.9A DE102010030745A DE102010030745B4 DE 102010030745 B4 DE102010030745 B4 DE 102010030745B4 DE 102010030745 A DE102010030745 A DE 102010030745A DE 102010030745 B4 DE102010030745 B4 DE 102010030745B4
Authority
DE
Germany
Prior art keywords
memory
read
error
address
cam
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102010030745.9A
Other languages
English (en)
Other versions
DE102010030745A1 (de
Inventor
Gurkirat Billing
Stephen Bowers
Mark Leinwander
Samuel David Post
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of DE102010030745A1 publication Critical patent/DE102010030745A1/de
Application granted granted Critical
Publication of DE102010030745B4 publication Critical patent/DE102010030745B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Read Only Memory (AREA)

Abstract

Verfahren zum Ausführen eines Lese-/Schreibprozesses zum Lesen aus oder Schreiben in einen Teil einer Speichereinheit (100, 455, 825), wobei durch eine Lese-/Schreibadresse eine Speicherstelle identifiziert wird, aus der gespeicherte Daten zu lesen sind oder in die sie zu schreiben sind, wobei eine Anzahl von Fehlerbits, die bei dem Lese-/schreibprozess an der Speicherstelle auftreten, als eine Bitfehlerrate ausgedrückt wird, die ein Verhältnis der Anzahl der Fehlerbits zu der Gesamtzahl gelesener Bits umfasst, wobei die Anzahl der Fehlerbits durch eine Fehlerdetektionskomponente (440, 840), die aus dem Speicher gelesene Daten auf Fehler prüfen kann, bestimmt wird, wobei, wenn die Anzahl der Fehlerbits über einem Fehlerschwellenwert liegt, ein Zurückziehen des Teils des Speichers (100, 455, 825), der zu zu vielen Fehlern führt, begonnen wird, und wobei anfänglich in dem Teil des Speichers (100, 455, 825), wo ein Fehler aufgetreten ist, gespeicherte Daten zu einem anderen Teil des Speichers (100, 455, 825) verlagert werden, von dem bekannt ist, dass er funktionsfähig ist, wobei ein Speichercontroller (435, 810) Umabbildungsinformationen, die in einem inhaltsadressierbaren Speicher (CAM) (815) gespeichert sind, bezüglich einer Adresse des Teils des Speichers (100, 455, 825), wo Fehler aufgetreten sind, aktualisiert, wodurch ein Aufruf der Adresse zu einer neuen Adresse umgelenkt wird, die eine Speicherstelle verlagerter Daten des fehleranfälligen Teils des Speichers (100, 455, 825) spezifiziert, wobei der Speichercontroller (435, 819) bei jeder Aktualisierung des inhaltsadressierbaren Speichers (CAM) (815) die in dem CAM (815) gespeicherte aktualisierte Umabbildungsinformation in einen nichtflüchtigen diskret adressierbaren Speicher (818) kopiert, sodass der nichtflüchtige diskret adressierbare Speicher (818) und der inhaltsadressierbare Speicher synchron (815) sind.

Description

  • STAND DER TECHNIK
  • Technisches Gebiet:
  • Das hier Offenbarte betrifft das Umabbilden von Speichereinheiten.
  • Informationen:
  • Speichereinheiten werden in vielen Arten von elektronischen Geräten verwendet, wie zum Beispiel in Computern, Mobiltelefonen, PDA, Datenprotokollierern und Navigationsgeräten, um nur einige wenige Beispiele zu nennen. Bei solchen elektronischen Geräten können verschiedene Arten von nichtflüchtigen Speichereinheiten verwendet werden, wie zum Beispiel NAND- oder NOR-Flash-Speicher, SRAM-, DRAM- und Phasenänderungsspeicher, um nur einige wenige Beispiele zu nennen. Im allgemeinen können Schreib- oder Programmierprozesse verwendet werden, um Informationen in solchen Speichereinheiten zu speichern, während ein Leseprozeß verwendet werden kann, um gespeicherte Informationen abzurufen.
  • Solche nichtflüchtigen Speichereinheiten können Speicherzellen umfassen, die sich mit der Zeit langsam verschlechtern, so daß eine zunehmende Wahrscheinlichkeit entsteht, daß beim Zugreifen auf eine solche Speicherzelle ein Lese- und/oder Schreibfehler auftreten kann. Fehler können sich auch aus Herstellungsdefekten und/oder Randwertkonstruktionen einer Speichereinheit ergeben, um nur einige wenige Beispiele zu nennen. Obwohl solche Fehler später zum Beispiel in einer Speichereinheit korrigiert werden können, kann eine solche Fehlerkorrektur mit zunehmender Anzahl von Fehlern schwierig oder unmöglich werden.
  • In der US 6,236,602 B1 ist ein rekonfigurierbarer Speicher, der einen Controller 40, einen Spalten-CAM 42, einen Reihen-CAM 43 und einen Bit-CAM 60 beinhaltet, beschrieben. Der Controller verwendet ein Fehlerkorrekturschema, um Fehler in dem Spalten-CAM und Reihen-CAM zu detektieren und schreibt die in den fehlerhaften Spalten und Reihen abgespeicherten Daten in freigehaltene und ungenutzte Reihen und Spalten um. Allerdings wird die neue Adresse der gespeicherten Daten nicht zusätzlich abgespeichert, so dass sie möglicherweise verloren gehen kann und dann die Daten nicht mehr auffindbar sind.
  • Der Erfindung liegt daher die Aufgabe zugrunde, eine Lösung zu schaffen, die ein fehlerfreies Abspeichern von Daten in nichtflüchtigen Speichermedien, die aufgrund ihrer physikalischen Beschaffenheiten einem natürlichen Alterungsprozess ausgesetzt sind, zu ermöglichen. Es soll vermieden werden, dass beim Zugreifen auf Speicherzellen von nichtflüchtigen Speichermedien Lese- und/oder Schreibfehler auftreten.
  • Bei einem Verfahren zum Ausführen eines Lese-/Schreibprozesses zum Lesen aus oder Schreiben in einen Teil einer Speicherzelle wird diese Aufgabe erfindungsgemäß dadurch gelöst, dass durch eine Lese-/Schreibadresse eine Speicherstelle identifiziert wird, aus der gespeicherte Daten zu lesen sind oder in die sie zu schreiben sind, wobei eine Anzahl von Fehlerbits, die bei dem Lese-/schreibprozess an der Speicherstelle auftreten, als eine Bitfehlerrate ausgedrückt wird, die ein Verhältnis der Anzahl der Fehlerbits zu der Gesamtzahl gelesener Bits umfasst, wobei die Anzahl der Fehlerbits durch eine Fehlerdetektionskomponente, die aus dem Speicher gelesene Daten auf Fehler prüfen kann, bestimmt wird, wobei, wenn die Anzahl der Fehlerbits über einem Fehlerschwellenwert liegt, ein Zurückziehen des Teils des Speichers, der zu zu vielen Fehlern führt, begonnen wird, und wobei anfänglich in dem Teil des Speichers, wo ein Fehler aufgetreten ist, gespeicherte Daten zu einem anderen Teil des Speichers verlagert werden, von dem bekannt ist, dass er funktionsfähig ist, wobei ein Speichercontroller Umabbildungs-informationen, die in einem inhaltsadressierbaren Speicher (CAM) gespeichert sind, bezüglich einer Adresse des Teils des Speichers, wo Fehler aufgetreten sind, aktualisiert, wodurch ein Aufruf der Adresse zu einer neuen Adresse umgelenkt wird, die eine Speicherstelle verlagerter Daten des fehleranfälligen Teils des Speichers spezifiziert, wobei der Speichercontroller bei jeder Aktualisierung des inhaltsadressierbaren Speichers (CAM) die in dem CAM gespeicherte aktualisierte Umabbildungsinformation in einen nichtflüchtigen diskret adressierbaren Speicher kopiert, sodass der nichtflüchtige diskret adressierbare Speicher und der inhaltsadressierbare Speicher synchron sind.
  • Des Weiteren wird die Aufgabe gelöst durch ein System zur Durchführung des erfindungsgemäßen Verfahrens, umfassend einen Host zum Lesen bzw. Schreiben aus einer Speichereinheit bzw. in diese und zum Ausführen einer oder mehrerer Anwendungen; eine Speichereinheit; einen inhaltsadressierbaren Speicher (CAM); einen nichtflüchtigen diskret adressierbaren Speicher; einen Decodierer für Fehlerkorrekturcodierung (ECC) zum Empfangen von Digitalsignalen, die aus der Speichereinheit gelesene Daten repräsentieren, und zum Bestimmen einer Bitfehlerrate und/oder einer Anzahl von Bitfehlern, die mit den die Daten repräsentierenden gelesenen Signalen assoziiert ist, einen Speichercontroller zum Speichern von Digitalsignalen, die umabgebildete Adressen der Speichereinheit repräsentieren, in dem inhaltsadressierbaren Speicher (CAM) mindestens teilweise abhängig davon, ob die Bitfehlerrate und/oder die Anzahl der Bitfehler eine Fehlerschwelle erreicht oder übersteigt, wobei der CAM einen Phasenänderungsspeicher (PCM) umfasst, wobei der Speichercontroller dafür ausgelegt ist, mindestens einen Teil der in dem inhaltsadressierbaren Speicher (CAM) gespeicherten Umabbildungsinformationen in dem nichtflüchtigen diskret adressierbaren Speicher abzuspeichern, wenn die in dem inhaltsadressierbaren Speicher (CAM) gespeicherten Umabbildungsinformationen aktualisiert werden, so dass der nichtflüchtige diskret adressierbare Speicher und der inhaltsadressierbare Speicher synchron sind.
  • Zweckmäßige Ausgestaltungen und vorteilhafte Weiterbildungen der Erfindung sind Gegenstand der jeweiligen Unteransprüche.
  • KURZE BESCHREIBUNG DER FIGUREN
  • Nichteinschränkende und nichterschöpfende Ausführungsformen werden mit Bezug auf die folgenden Figuren beschrieben, wobei gleiche Bezugszahlen in den verschiedenen Figuren durchweg gleiche Teile bezeichnen, sofern es nicht anders angegeben ist.
  • 1 ist eine schematische Ansicht einer Speicherkonfiguration gemäß einer Ausführungsform.
  • 2 ist ein Flußdiagramm eines Speicherleseprozesses gemäß einer Ausführungsform.
  • 3 ist ein Flußdiagramm eines Speicherleseprozesses gemäß einer anderen Ausführungsform.
  • 4 ist ein schematisches Blockdiagramm eines Datenverarbeitungssystems und einer Speichereinheit gemäß einer Ausführungsform.
  • 5 ist ein Flußdiagramm eines Speicherleseprozesses gemäß einer Ausführungsform.
  • 6 ist ein Flußdiagramm eines Speicherleseprozesses gemäß einer anderen Ausführungsform.
  • 7 ist eine schematische Ansicht einer Vektor-Umabbildungstabelle gemäß einer Ausführungsform.
  • 8 ist ein schematisches Blockdiagramm eines Speichersystems gemäß einer Ausführungsform.
  • 9 ist ein schematisches Blockdiagramm eines Datenverarbeitungssystems und einer Speichereinheit gemäß einer Ausführungsform.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der vorliegenden Beschreibung bedeutet ein Verweis auf „eine Ausführungsform”, daß ein bestimmtes Merkmal, eine bestimmte Struktur oder ein bestimmtes Charakteristikum, die in Verbindung mit der Ausführungsform beschrieben werden, in mindestens einer Ausführungsform des Beanspruchten enthalten ist. Das Erscheinen des Ausdrucks „bei einer Ausführungsform” oder „eine Ausführungsform” an verschiedenen Stellen in der vorliegenden Beschreibung bezieht sich somit nicht unbedingt immer auf dieselbe Ausführungsform. Ferner können die bestimmten Merkmale, Strukturen oder Charakteristiken in einer oder mehreren Ausführungsformen kombiniert werden.
  • Bei einer Ausführungsform können Umabbildungsinformationen bezüglich einer Speichereinheit in einem nichtflüchtigen diskret adressierbaren Speicher geführt werden. Solche Umabbildungsinformationen können Umabbildungsvektoren umfassen, die eine Umabbildungsadresse zum Ersatz einer durch einen Prozessor bereitgestellten Adresse zum Beispiel als Teil einer an die Speichereinheit gerichteten Lese-/Schreibanforderung bereitstellen. Hierbei kann ein diskret adressierbarer Speicher zum Beispiel Speicherzellen umfassen, die nicht in Blöcken und/oder Sektoren auf einmal beschrieben werden müssen, sondern individuell oder in relativ kleinen Gruppen adressiert werden können. Zum Beispiel kann beim Schreiben von Daten in einen Speicher des NOR-Flash-Typs in einen großen Block von Speicherzellen geschrieben werden, auch wenn die zu schreibenden Daten nur einen Speicherplatz von einer oder zwei Speicherzellen erfordern. Bei einem anderen Beispiel kann beim Schreiben von Daten, wie zum Beispiel Umabbildungsinformationen, in einen Phasenänderungsspeicher (PCM) lediglich in eine Anzahl von Speicherzellen geschrieben werden, die im wesentlichen mit der Speichergröße der zu schreibenden Daten übereinstimmt.
  • Das Führen von Umabbildungsinformationen in einem solchen nichtflüchtigen diskret adressierbaren Speicher kann eine feinstufigere Steuerung bestimmter umzuabbildender Bereiche des Speichers gewährleisten. Zum Beispiel kann ein solcher nichtflüchtiger diskret adressierbarer Speicher diskrete Adressierung erlauben, um Umabbildungsvektoren in relativ kleinen Teilen eines Speicherplatzes zu speichern. Im Gegensatz dazu kann ein nicht diskret adressierbarer Speicher Block- und/oder Sektoradressierung benutzen, so daß zum Beispiel das Speichern lediglich eines einzigen Umabbildungsvektors einen relativ großen Teil der Speichereinheit einnehmen kann. Zusätzlich kann ein Block- und/oder Sektoradressierung benutzender Speicher einen Löschprozeß verwenden, um einen Speicherblock und/oder -sektor für einen nachfolgenden Schreibprozeß vorzubereiten, was im Vergleich zu einem diskret adressierbaren Speicher zu einer vergrößerten Schreibzeit führt. Das Speichern und Führen der Umabbildungsinformationen in einem nichtflüchtigen diskret adressierbaren Speicher kann dementsprechend eine Möglichkeit bereitstellen, die Speicherplatzausnutzung der Speichereinheit zu verbessern sowie die bei einem Schreibprozeß benötigte Zeit zu verringern. Bei einer Implementierung kann das Führen von Umabbildungsinformationen in einem nichtflüchtigen diskret adressierbaren Speicher die Verwendung einer flüchtigen Speichereinheit erlauben, die solche Umabbildungsinformationen betreffen, da ein solcher nichtflüchtiger Speicher solche Umabbildungsinformationen sogar während eines Abschaltens speichern kann. Dementsprechend kann das Speichern und Führen von Umabbildungsinformationen in einem nichtflüchtigen diskret adressierbaren Speicher eine vergrößerte Flexibilität bei der Auswahl des Speichertyps, wie zum Beispiel NAND- oder NOR-Flash-Speicher, SRAM, DRAM und PCM, um nur einige wenige Beispiele zu nennen, erlauben.
  • Bei einer Implementierung kann eine Speichereinheit, die Umabbildungsinformationen betreffen, physisch einen nichtflüchtigen diskret adressierbaren Speicher umfassen, so daß ein einziger Chip oder integrierter Schaltungschip sowohl eine Speichereinheit als auch einen nichtflüchtigen diskret adressierbaren Speicher umfaßt. Bei einer solchen Implementierung kann eine Speichereinheit jedoch von einem nichtflüchtigen diskret adressierbaren Speicher verschieden sein, so daß separat durch einen Prozessor und/oder Speichercontroller auf eine solche Speichereinheit und einen nichtflüchtigen diskret adressierbaren Speicher zugegriffen werden kann. Zum Beispiel kann ein nichtflüchtiger diskret adressierbarer Speicher, der zum Speichern von Umabbildungsinformationen bezüglich einer Speichereinheit verwendet wird, sich auf der Speichereinheit befinden, aber immer noch von einer solchen Speichereinheit verschieden sein. Als Fortsetzung des Beispiels kann eine solche Speichereinheit ein Speichermodul umfassen, das mehrere Speicherchips enthält; während über einen einzigen Prozessor und/oder Speichercontroller auf den Speicherchip zugegriffen werden kann, kann durch einen separaten Prozessor und/oder Speichercontroller auf einen zum Speichern von Umabbildungsinformationen verwendeten nichtflüchtigen diskret adressierbaren Speicher zugegriffen werden. Solche Einzelheiten und Vorteile des Führens von Umabbildungsinformationen auf einem nichtflüchtigen diskret adressierbaren Speicher sind natürlich lediglich Beispiele, und das Beanspruchte ist nicht darauf beschränkt.
  • Das Speichern und Führen von Umabbildungsinformationen bezüglich einer Speichereinheit auf einem nichtflüchtigen diskret adressierbaren Speicher kann auch zu einer reduzierten Latenzzeit und/oder eine erhöhte Nutzung verfügbarer Speicherkapazität im Vergleich zu dem Führen von Umabbildungsinformationen zum Beispiel in der Speichereinheit führen. Bei einer Implementierung können solche Umabbildungsinformationen im Fluge erzeugt werden, zum Beispiel während Laufzeitprozessen, wie zum Beispiel durch einen Prozessor eingeleitete Lese-/Schreibprozesse, wobei aus einer Speichereinheit gelesene Daten, wie nachfolgend beschrieben, auf Fehler geprüft werden. Bei einer anderen Implementierung kann durch ein System ein Initialisierungsprozeß durchgeführt werden, um ein Scannen nach fehleranfälligen Teilen einer Speichereinheit zu beinhalten. Wiederum sind solche Einzelheiten und Vorteile des Führens von Umabbildungsinformationen in einem nichtflüchtigen diskret adressierbaren Speicher lediglich Beispiele, und das Beanspruchte ist nicht darauf beschränkt.
  • Bei einer Ausführungsform kann eine Speichereinheit Speicherzellen umfassen, die sich mit der Zeit langsam verschlechtern, so daß eine vergrößerte Wahrscheinlichkeit entstehen kann, daß während des Lesens einer solchen Speichereinheit ein oder mehrere Fehler auftreten können. Eine Speichereinheit kann auch als Folge ihrer Herstellung defekte und/oder marginal-funktionsfähige Speicherzellen umfassen.
  • Solche Fehler können zum Beispiel in mehreren Bereichen innerhalb eines Datenverarbeitungssystems unter Verwendung von Fehlerkorrekturcodes (ECC) oder anderen solchen Techniken korrigiert werden. Von einer Systemperspektive aus gesehen, kann eine Bestimmung erfolgen, ob solche fehleranfälligen Zellen weiter benutzt werden sollen oder nicht. Wie später ausführlicher erläutert werden wird, kann eine solche Bestimmung mindestens teilweise auf einem Vergleich der Anzahl solcher Fehler mit einer Fehlerschwelle basieren, die zum Beispiel während einer Entwurfsphase einer Speichereinheit definiert werden kann. Bei einer Implementierung kann die Benutzung bestimmter Speicherzellen ausgesetzt werden, bevor solche Zellen eine zu große Anzahl von Fehlern zeigen. Anders ausgedrückt, kann die Benutzung fehleranfälliger Speicherzellen ausgesetzt werden, wenn solche Speicherzellen eine Anzahl von Fehlern produzieren, die sich einer Fehlerschwelle nähert. Eine solche Schwelle muß zum Beispiel nicht erreicht werden, um zu bestimmen, daß die Benutzung von Speicherzellen ausgesetzt werden kann. Die Beobachtung, daß eine Anzahl von Fehlern sich einer Fehlerschwelle nähert, kann dementsprechend eine Möglichkeit darstellen, vorherzusagen, daß bestimmte Speicherzellen bald zu viele Fehler produzieren werden, so daß zum Beispiel die Benutzung solcher fehleranfälligen Speicherzellen gestoppt werden kann, bevor eine kritische Fehlfunktion der Speicherzellen tatsächlich beginnt. Wenn die Benutzung von bestimmten Speicherzellen ausgesetzt werden soll, können Ersatzspeicherzellen auf eine Weise ausgewählt werden, die eine Gesamtspeichereinheitskapazität aufrechterhält.
  • Bei einer Ausführungsform kann dementsprechend ein Prozeß zum Aufrechterhalten einer Größenkapazität einer Speichereinheit das Umabbilden einer fehleranfälligen Speicherstelle auf eine ordnungsgemäß funktionierende Speicherstelle ohne Verlust von Gesamtsystemspeicherplatz (z. B. Kapazität der Speichereinheit) umfassen. Eine solche Umabbildung kann mindestens teilweise auf Informationen bezüglich einer Quantität und/oder Häufigkeit von als Ergebnis des Lesens aus einer fehleranfälligen Speicherstelle auftretenden Fehlern basieren. Hierbei bedeutet Speicherstelle einen Teil einer Speichereinheit, auf den z. B. über einen Lese- und/oder Schreibprozeß zugegriffen werden kann, wobei eine Adresse oder Adressen verwendet werden, um eine solche Speicherstelle und/oder einen solchen Teil zu identifizieren. Wie später ausführlicher erläutert werden wird, kann zum Beispiel eine ECC-Maschine verwendet werden, um eine Bitfehlerrate und/oder die Anzahl von Bitfehlern zu bestimmen, die mit dem Lesen eines bestimmten Teils eines Speichers assoziiert ist. Danach können die Bitfehlerrate und/oder die Anzahl der Bitfehler mit einer Fehlerschwelle verglichen werden, die zum Beispiel eine wesentliche Grenze für eine annehmbare Anzahl von Fehlern umfassen kann. Abhängig von einem Ergebnis eines solchen Vergleichs kann eine Entscheidung erfolgen, ob der bestimmte Teil des Speichers, der die Fehler produziert, zurückgezogen, z. B. nicht weiter benutzt, werden soll.
  • Bei einer bestimmten Ausführungsform kann ein Prozeß zum Zurückziehen eines Teils einer Speichereinheit das Verlagern von Digitalsignalen, die in dem zurückzuziehenden Teil der Speichereinheit gespeicherte Daten repräsentieren, zu einem anderen Teil der Speichereinheit umfassen. Bei einer Implementierung können solche von einem zurückgezogenen Teil einer Speichereinheit umgeordnete Daten repräsentierenden Digitalsignale zu einem Ersatzteil der Speichereinheit verlagert werden. Zum Beispiel kann ein solcher Ersatzteil des Speichers eine physische Stelle der Speichereinheit umfassen, die anfänglich nicht als Teil der vollen Kapazität der Speichereinheit anerkannt oder betrachtet wird, wie später ausführlicher erläutert werden wird. Ein Prozeß des Zurückziehens eines Teils einer Speichereinheit kann auch eine Umabbildung einer Adresse eines zurückzuziehenden Teils der Speichereinheit umfassen, um eine Adresse eines neuen Ersatzteils der Speichereinheit zu entsprechen. Solche umabgebildeten Adressen können, wie oben angegeben, zum Beispiel in einem nichtflüchtigen diskret adressierbaren Speicher gespeichert werden. Natürlich sind solche Prozesse lediglich Beispiele, und das Beanspruchte ist nicht darauf beschränkt.
  • Bei einer Ausführungsform kann bei einem Prozeß, wie zum Beispiel dem oben beschriebenen, eine Speichereinheit beteiligt sein, die eine Einheit umfaßt. Wenn ein PCM altert, können dementsprechend eine Bitfehlerrate und/oder eine Anzahl von Bitfehlern, die durch Teile des PCM produziert wird, zunehmen. Solche Fehler können bis zu einem gewissen Grad zum Beispiel unter Verwendung einer ECC-Maschine und/oder anderer solcher Fehlerkorrekturtechniken korrigiert werden. Eine Anzahl von Fehlern kann jedoch bis über eine Fähigkeit solcher Fehlerkorrekturtechniken hinaus zunehmen. Deshalb kann es wünschenswert sein, solche Speicherteile zurückzuziehen, wenn ein Trend angezeigt wird, daß solche Speicherteile eine zu große Anzahl von Fehlern produziert haben oder anfangen, diese zu produzieren.
  • Ausführungsformen, wie zum Beispiel die oben beschriebenen, können eine erfolgreiche Verwendung von Speicherungseinheiten unter Verwendung relativ wenig zuverlässiger Technologien erlauben. Zum Beispiel kann unter Verwendung von hier beschriebenen Ausführungsformen ein Chip verwendet werden, der zuvor als unbenutzbar betrachtet wurde. Außerdem können solche Ausführungsformen eine Lebensdauer einer Speicherungseinheit auf die eines Großteils ihrer Speicherzellen, statt die Lebensdauer relativ weniger ihrer Speicherzellen, verlängern.
  • 1 ist eine schematische Ansicht einer Speicherkonfiguration gemäß einer Ausführungsform. Eine Speichereinheit 100 kann in einen Hauptspeicher 110 und einen Ersatzspeicher 120 aufgeteilt werden. Die Speichereinheit 100 kann NAND- oder NOR-Flash-Speicher, SRAM, DRAM oder PCM umfassen, um nur einige wenige Beispiele zu nennen. Die Speichereinheit 100 kann einen benutzeradressierbaren Speicherplatz umfassen, der solche Haupt- und Ersatzspeicherteile und/oder einen oder mehrere andere Speicherteile enthält, die miteinander zusammenhängend sein können oder auch nicht und auf einer einzigen Einheit angeordnet sein können oder auch nicht. Der Hauptspeicher 110 und der Ersatzspeicher 120 können unabhängige adressierbare Plätze umfassen, auf die zum Beispiel durch Lese-, Schreib- und/oder Löschprozesse zugegriffen werden kann.
  • Gemäß einer Ausführungsform können ein oder mehrere Teile der Speichereinheit 100 Signale speichern, die Daten und/oder Informationen repräsentieren, so wie sie durch einen bestimmten Zustand der Speichereinheit 100 ausgedrückt werden. Zum Beispiel kann ein Daten und/oder Informationen repräsentierendes elektronisches Signal in einem Teil der Speichereinheit „gespeichert” werden, indem der Zustand solcher Teile der Speichereinheit 100 beeinflußt oder geändert wird, um Daten und/oder Informationen als Binärinformationen (zum Beispiel Einsen und Nullen) darzustellen. Bei einer bestimmten Implementierung stellt dementsprechend eine solche Änderung des Zustands des Teils des Speichers zum Speichern eines Daten und/oder Informationen repräsentierenden Signals eine Transformation der Speichereinheit 100 in einen anderen Zustand oder eine andere Sache dar.
  • Die Speichereinheit 100 kann dafür konfiguriert werden, anfänglich Hauptspeicher 110 zu umfassen, der der voll benutzbaren Kapazität der Speichereinheit 100 entspricht. Eine solche anfängliche Konfiguration kann zusätzlich Ersatzspeicher 120 umfassen, der bei der Bestimmung der Kapazität der Speichereinheit nicht eingeschlossen werden muß. Wenn Teile des Hauptspeichers unbenutzbar werden oder zum Beispiel während Lese-/Schreibprozessen zu einer zu großen Anzahl von Fehlern führen, kann der Ersatzspeicher 120 jedoch verwendet werden, um Teile des Hauptspeichers 110 zu ersetzen. Natürlich sind Einzelheiten einer solchen Speicherkonfiguration lediglich Beispiele, und das Beanspruchte ist nicht darauf beschränkt.
  • 2 ist ein Flußdiagramm eines Speicherlese-/-schreibprozesses 200 gemäß einer Ausführungsform. Im Block 220 kann ein Lese-/Schreibprozeß zum Lesen oder Schreiben in einem Teil einer Speichereinheit, zum Beispiel durch eine Systemanwendung, eingeleitet werden, die durch einen hier nicht gezeigten Prozessor ausgeführt wird, der eine oder mehrere Lese-/Schreibadressen bereitstellt, um jeweils eine oder mehrere Speicherstellen zu identifizieren, auf denen gespeicherte Daten zu lesen sind oder in die zu schreiben ist. Beginnend im Block 230 kann eine solche Lese-/Schreibadresse einen Datenlese-/-schreibprozeß entlang eines Datenpfads lenken, der zuvor mindestens teilweise abhängig davon ausgewählt wurde, ob die Lese-/Schreibadresse einer Speicherstelle entspricht, die zurückgezogen wurde. In dem vorliegenden Beispiel kann eine Speichereinheit einen Hauptspeicherteil und einen Ersatzspeicherteil umfassen, wie zum Beispiel die in 1 gezeigte Speichereinheit 100. Bei einer bestimmten Implementierung kann ein Ersatzspeicherteil anstelle eines Hauptspeicherteils verwendet werden, der zurückgezogen wird. Falls eine solche Speicherstelle nicht zurückgezogen wurde, kann im Block 240 der Datenpfad einen Datenlese-/-schreibprozeß zu einer Stelle in einem Hauptspeicherteil lenken, der einer durch einen Prozessor gesendeten Adresse entspricht. Ein solches Lenken kann durch eine geeignet geschaltete Hardware-Schaltkomponente, wie zum Beispiel einen Multiplexer, durchgeführt werden. Zum Beispiel kann ein Signal an eine Hardware-Schaltkomponente angelegt werden, um einen Datenpfad auszuwählen, der zu einem Hauptspeicherteil führt, der einer durch den Prozessor gesendeten Adresse entspricht. Andere durch die Hardware-Schaltkomponente ausgewählte Datenpfade können individuelle Datenpfade umfassen, die zu verschiedenen Teilen einer Speichereinheit, wie zum Beispiel einem Ersatzspeicherteil, führen.
  • Als Ergebnis kann im Block 250 die durch den Prozessor gesendete Lese-/Schreibadresse verwendet werden, um aus dem Hauptspeicherteil der Speichereinheit zu lesen oder in diesen zu schreiben. Danach können im Block 260 aus der gelesenen Adresse der Speichereinheit gelesene Daten Fehlerprüfhardware und/oder -software, wie zum Beispiel einem ECC-Decodierer und/oder anderen solchen Fehlerkorrekturtechniken, zugeführt werden. Im Fall des Schreibens von Daten in die Speichereinheit kann ein nachfolgender Leseprozeß zum Verifizieren einer erfolgreichen Schreiboperation durchgeführt werden: solche gelesenen Daten können dann Fehlerprüfhardware und/oder -software, wie zum Beispiel einem ECC-Decodierer und/oder anderen solchen Fehlerkorrekturtechniken, zugeführt werden.
  • Falls eine Speicherstelle zurückgezogen wurde, kann im Block 245 ein Datenpfad einen Datenlese-/-schreibprozeß zu einer Stelle in einem Ersatzspeicherteil anstelle einer Speicherstelle, die einer durch einen Prozessor gesendeten Adresse entspricht, lenken. Eine solche Pfadlenkung kann durch eine geeignete geschaltete Hardware-Schaltkomponente, wie zum Beispiel einen Multiplexer, durchgeführt werden. Insbesondere kann ein Signal an eine solche Hardware-Schaltkomponente angelegt werden, um einen Datenpfad auszuwählen, der zu einem Ersatzspeicherteil führt, der einer durch einen Prozessor gesendeten Adresse entspricht. Andere durch die Hardware-Schaltkomponente ausgewählte Datenpfade können individuelle Datenpfade umfassen, die zu verschiedenen Teilen einer Speichereinheit führen, wie zum Beispiel einem Hauptspeicherteil und/oder anderen Ersatzspeicherteilen.
  • Als Ergebnis kann im Block 255 die durch den Prozessor gesendete Lese-/Schreibadresse, obwohl sie ursprünglich an eine Adresse eines Hauptspeicherteils gerichtet war, zu einem Ersatzspeicherteil der Speichereinheit umgelenkt werden. Danach können im Block 260 aus dem Ersatzspeicherteil gelesene oder in diesen geschriebene Daten Fehlerprüfhardware und/oder -software, wie zum Beispiel einem ECC-Decodierer und/oder anderen solchen Fehlerkorrekturtechniken, zugeführt werden. Im Fall des Schreibens von Daten in die Speichereinheit kann ein nachfolgender Leseprozeß zum Verifizieren einer erfolgreichen Schreiboperation durchgeführt werden: solche gelesenen Daten können dann Fehlerprüfhardware und/oder -software, wie zum Beispiel einem ECC-Decodierer und/oder anderen solchen Fehlerkorrekturtechniken, zugeführt werden. Natürlich sind Einzelheiten eines solchen Speicherleseprozesses lediglich Beispiele, und das Beanspruchte ist nicht darauf beschränkt.
  • 3 ist ein Flußdiagramm eines Speicherlese-/Schreibprozesses 300 gemäß einer Ausführungsform. Im Block 310 kann ein Lese-/Schreibprozeß zum Lesen oder Schreiben in einem Teil einer Speichereinheit zum Beispiel durch eine Systemanwendung eingeleitet werden, die eine oder mehrere Lese-/Schreibadressen bereitstellt, um jeweils eine oder mehrere Speicherstellen zu identifizieren, aus denen gespeicherte Daten zu lesen sind oder in die zu schreiben ist. ECC-Hardware und/oder -Software kann zum Beispiel durch Paritätsprüfung gelesener Daten verwendet werden, um Fehler in gelesenen Daten zu prüfen und/oder zu korrigieren. Danach können anfänglich gelesene Daten mit korrigierten gelesenen Daten verglichen werden, um die Anzahl der Fehler zu bestimmen, die bei dem Speicherlese-/-schreibprozeß aufgetreten sind, wie im Block 320. Eine solche Anzahl von Fehlern kann als Bitfehlerrate (BER) ausgedrückt werden, die zum Beispiel ein Verhältnis der Anzahl der Fehlerbit zu der Gesamtzahl gelesener Bit umfassen kann. Eine BER oder Anzahl von Fehlern, die sich aus dem Lesen aus einem Teil einer Speichereinheit ergibt, kann mit einem Fehlerschwellenwert verglichen werden, der einen Wert umfassen kann, der eine maximal annehmbare BER oder eine maximal annehmbare Anzahl von Fehlern repräsentiert, über die hinaus zum Beispiel zusätzliche Fehler nicht erfolgreich korrigiert werden können: ein solcher Fehlerschwellenwert kann zum Beispiel eine Zahl umfassen, die eine wesentliche Obergrenze einer BER oder einer Anzahl von Fehlern darstellt, die für eine bestimmte Speichereinheit, wie zum Beispiel die in 1 gezeigte Speichereinheit 100, korrigierbar sind. Bei oder unter einem solchen Fehlerschwellenwert kann ECC-Hardware und/oder -Software in der Lage sein, Lesefehler zu korrigieren. Aber über einer solchen Fehlerschwelle kann eine relativ hohe Wahrscheinlichkeit bestehen, daß nicht alle Lesefehler korrigierbar sind.
  • Im Block 330 erfolgt eine Entscheidung, ob ein Teil des Speichers zurückzuziehen ist, mindestens teilweise abhängig davon, ob das Lesen aus einem solchen Teil des Speichers zu zu vielen Fehlern führt. Wenn eine solche Anzahl von Fehlern bei oder unter einer Fehlerschwelle liegt, kann eine Entscheidung erfolgen, einen solchen Teil des Speichers nicht zurückzuziehen, und der Lese-/Schreibprozeß 300 kann zum Block 335 voranschreiten. Hier kann einer Hardware-Schaltkomponente ein Signal zugeführt werden, so daß eine Route oder ein Pfad, worauf Daten für den Lese-/Schreibprozeß gesendet werden, zu einem ursprünglichen Hauptspeicherteil gelenkt werden kann. Als nächstes können im Block 340 zum Beispiel gelesene Daten einer Anwendung zugeführt werden, die die gelesenen Daten angefordert hat, oder Schreibdaten können in einen ursprünglichen Hauptspeicherteil geschrieben werden.
  • Wenn dagegen eine solche Anzahl von Fehlern über einer Fehlerschwelle liegt, kann eine Entscheidung erfolgen, einen Teil des Speichers zurückzuziehen, und der Lese-/Schreibprozeß 300 kann zu dem Block 350 voranschreiten, in dem zum Beispiel ein Prozeß zum Zurückziehen eines solchen Teils des Speichers, der zu zu vielen Fehlern führt, beginnen kann. Bei einer bestimmten Implementierung können in einem solchen zurückzuziehenden Speicherteil gespeicherte Daten ein weiteres Mal gelesen werden, indem einer Hardware-Schaltkomponente ein Signal zugeführt wird, so daß eine für den Lese-/Schreibprozeß verwendete Datenroute zu einem ursprünglichen Hauptspeicherteil gelenkt werden kann. Als nächstes kann im Block 360 der Hardware-Schaltkomponente ein Signal zugeführt werden, so daß eine für nachfolgende Lese- und/oder Schreibprozesse verwendete Datenroute zu einem Ersatzspeicherteil gelenkt werden kann, der verwendet wird, um den ursprünglichen Hauptspeicherteil zu ersetzen. Als nächstes können in Block 340 zum Beispiel gelesene Daten einer Anwendung zugeführt werden, die die gelesenen Daten angefordert hat, oder Schreibdaten können in einen Ersatzspeicherteil geschrieben werden. Einzelheiten eines solchen Speicherleseprozesses sind natürlich lediglich Beispiele, und das Beanspruchte ist nicht darauf beschränkt.
  • 4 ist ein schematisches Diagramm einer Ausführungsform eines Datenverarbeitungssystems 400 mit einer Speichereinheit 455, die wie oben zum Beispiel mit Bezug auf 1 besprochen in einen Hauptteil 450 und einen Ersatzteil 460 aufgeteilt werden kann. Ein Datenverarbeitungssystem 400 kann eine beliebige Einheit, Vorrichtung und/oder Maschine repräsentieren, die dafür konfigurierbar sein kann, die Speichereinheit 455 zu verwalten. Als Beispiel, aber nicht als Einschränkung, kann das Datenverarbeitungssystem 400 folgendes umfassen: eine oder mehrere Datenverarbeitungseinheiten und/oder -plattformen, wie zum Beispiel einen Desktop-Computer, einen Laptop-Computer, eine Workstation, eine Servereinheit oder dergleichen; eine oder mehrere persönliche Datenverarbeitungs- oder Kommunikationseinheiten oder -vorrichtungen, wie zum Beispiel einen Personal Digital Assistant, ein Mobilkommunikationsgerät oder dergleichen; ein Datenverarbeitungssystem und/oder assoziierte Dienstanbieterfähigkeit, wie zum Beispiel einen Datenbank- oder Datenspeicherungsdienstanbieter bzw. ein System; und/oder beliebige Kombinationen davon.
  • Es wird anerkannt, daß alle oder Teile der verschiedenen in dem Datenverarbeitungssystem 400 gezeigten Anordnungen und die hier weiter beschriebenen Prozesse und Verfahren unter Verwendung von oder anderweitigem Einbezug von Hardware, Firmware, Software oder einer beliebigen Kombination davon implementiert werden können. Als Beispiel, aber nicht als Beschränkung, kann das Datenverarbeitungssystem 400 somit folgendes umfassen: mindestens eine Verarbeitungseinheit 410, die wirksam durch eine Hardware-Schaltkomponente 470 mit dem Speicher 455 gekoppelt ist, einen Speichercontroller 435 und eine Fehlerdetektions- und Speicherzurückzieh-Bestimmungskomponente 440 (die im folgenden der Einfachheit halber als „Fehlerdetektionskomponente” bezeichnet wird). Die Verarbeitungseinheit 410 kann eine oder mehrere Schaltungen repräsentieren, die dafür konfigurierbar sind, mindestens einen Teil einer Datenverarbeitungsprozedur oder eines Prozesses auszuführen. Als Beispiel, aber nicht als Beschränkung, kann die Verarbeitungseinheit 410 folgendes umfassen: einen oder mehrere Prozessoren, Controller, Mikroprozessoren, Mikrocontroller, anwendungsspezifische integrierte Schaltungen, digitale Signalprozessoren, programmierbare Logikanordnungen, am Einsatzort programmierbare Gate-Arrays und dergleichen oder eine beliebige Kombination davon. Die Verarbeitungseinheit 410 kann mit dem Speichercontroller 435 kommunizieren, um speicherbezogene Operationen zu verarbeiten, wie zum Beispiel Lesen, Schreiben und/oder Löschen. Die Verarbeitungseinheit 410 kann ein Betriebssystem umfassen, das dafür ausgelegt ist, mit dem Speichercontroller 435 zu kommunizieren. Ein solches Betriebssystem kann zum Beispiel Befehle erzeugen, die über den Adressenausgabeport 415 und/oder den Datenlese-/-schreibport 420 zu dem Speichercontroller 435 zu senden sind. Solche Befehle können zum Beispiel eine dem Speicher 455 entsprechende Speicheradresse umfassen.
  • Das Datenverarbeitungssystem 400 kann zum Beispiel einen Eingangs-/Ausgangsteil 480 umfassen, der ein/eine oder mehrere Anordnungen oder Merkmale repräsentieren kann, die dafür konfigurierbar sind, menschliche Eingaben und/oder Maschineneingaben anzunehmen oder anderweitig einzuführen, und/oder ein/eine oder mehrere Anordnungen oder Merkmale, die dafür konfigurierbar sind, menschliche Ausgaben und/oder Maschinenausgaben abzuliefern oder anderweitig bereitzustellen. Als Beispiel, aber nicht als Beschränkung, kann der Eingangs-/Ausgangsteil 480 ein Display, einen Lautsprecher, eine Tastatur, eine Maus, einen Trackball, einen Berührungsschirm, einen Datenport usw. in wirksamer Konfiguration umfassen.
  • Der Speichercontroller 435 kann einen nichtflüchtigen diskret adressierbaren Speicher 430 umfassen, um Informationen zu führen, die dazu zu verwenden sind, über die Hardware-Schaltkomponente 470 zwischen mehreren zu verschiedenen Teilen des Speichers 455 führenden Datenpfaden 475 auszuwählen. Bei einer Ausführungsform kann ein diskret adressierbarer Speicher PCM umfassen. Zum Beispiel können solche Informationen eine Tabelle von mit bestimmten Speicherauswahlwerten assoziierten Speicheradressen zur Auswahl bestimmter Datenpfade 475 umfassen; wenn die Verarbeitungseinheit 410 als Teil einer Lese-/Schreiboperation eine Adresse präsentiert, kann der nichtflüchtige diskret adressierbare Speicher 430 verwendet werden, um die Adresse zur Auswahl eines bestimmten Datenpfads zu dem Speicher mit einem bestimmten Speicherauswahlwert zu assoziieren. Hierbei kann zum Beispiel eine Auswahl erfolgen, um einen Datenpfad entweder zum Hauptspeicher 450 oder zum Ersatzspeicher 460 zu wählen. Eine solche Auswahl kann, wie oben angegeben, mindestens teilweise abhängig davon erfolgen, ob eine Stelle des Speichers 455, die mit einer in einem Lese-/Schreibprozeß präsentierten Adresse assoziiert ist, zurückgezogen wurde. Um die durch ein konkretes Beispiel zu veranschaulichen, kann die Verarbeitungseinheit 410 als Teil einer Leseoperation eine Adresse präsentieren. Die durch den Speichercontroller 435 empfangene Adresse kann dann mit einem in dem nichtflüchtigen diskret adressierbaren Speicher 430 geführten bestimmten Speicherauswahlwert assoziiert werden. Wie nachfolgend erläutert wird, kann ein solcher Speicherauswahlwert mindestens teilweise auf der Basis von durch die Fehlerdetektionskomponente 440 bereitgestellten Informationen eingerichtet worden sein. Ein solcher Speicherauswahlwert kann dann der Hardware-Schaltkomponente 470 zugeführt werden, um aus mehreren Datenpfaden 475 einen Datenpfad zum Speicher auszuwählen. In dem vorliegenden konkreten Beispiel entspricht die Adresse einer zuvor zurückgezogenen Stelle des Speichers 455. Dementsprechend kann das Register 430 die Adresse mit einem Speicherauswahlwert assoziieren, der, wenn er der Hardware-Schaltkomponente 470 vorgelegt wird, einen Datenpfad auswählen kann, der zu einer Stelle in dem Ersatzspeicher 460 führt. Obwohl zwei Datenpfade gezeigt sind, um die mehreren Datenpfade 475 in 4 zu repräsentieren, ist zu beachten, daß eine beliebige Anzahl von Datenpfaden möglich sein kann. Außerdem muß die Hardware-Schaltkomponente 470 nicht auf die Auswahl von nur einem Datenpfad auf einmal begrenzt sein. Ähnlich sind Kombinationen einschließlich einer beliebigen Anzahl von Datenpfaden zu einem beliebigen Teil des Speichers 455 möglich, wobei der Speicher 455 zum Beispiel eine oder mehrere zusammen oder individuell gekapselte Speichereinheiten umfassen kann. Der Speicher 455 kann einen beliebigen Datenspeicherungsmechanismus repräsentieren. Der Speicher 455 kann zum Beispiel ein Festplattenlaufwerk, ein optisches Laufwerk, ein Bandlaufwerk, ein Halbleiter-Speicherlaufwerk usw. umfassen. Dementsprechend sind die hier beschriebenen Konfigurationen lediglich Beispiele, und das Beanspruchte ist nicht darauf beschränkt.
  • Wie oben angegeben, kann nichtflüchtiger diskret adressierbarer Speicher 430, wie zum Beispiel PCM, Informationen einrichten und führen, die mindestens teilweise auf durch die Fehlerdetektionskomponente 440 bereitgestellten Informationen basieren. Bei einer Ausführungsform können aus dem Speicher 455 gelesene Daten der Fehlerdetektionskomponente 440 zugeführt werden, die auf Fehler prüfen kann, um eine Bitfehlerrate und/oder die Anzahl der Bitfehler, die mit dem Lesen eines bestimmten Teils des Speichers 455 assoziiert ist, zu bestimmen. Solche Fehlerinformationen können dann dem Speichercontroller 435 zugeführt werden, der die Bitfehlerrate und/oder Anzahl der Bitfehler zum Beispiel mit einer Fehlerschwelle vergleichen kann. Abhängig von einem Ergebnis eines solchen Vergleichs kann eine Entscheidung darüber erfolgen, ob der bestimmte Teil des Speichers zurückgezogen wird. Dementsprechend kann die Adresse des bestimmten Teils des Speichers mit einem Speicherauswahlwert assoziiert werden, der, wenn er der Hardware-Schaltkomponente 470 vorgelegt wird, verwendet werden kann, um einen Datenpfad zu einem geeigneten Teil des Speichers auszuwählen. Wie oben beschrieben, kann nichtflüchtiger diskret adressierbarer Speicher 430 solche mit bestimmten Speicheradressen assoziierten Speicherauswahlwerte führen.
  • Wie in 4 gezeigt, kann das Datenverarbeitungssystem 400 einen Hardwareteil 490 umfassen, der zum Beispiel den Speichercontroller 435, den nichtflüchtigen diskret adressierbaren Speicher 430, die Hardware-Schaltkomponente 470 und/oder den Speicher 455 umfaßt. Bei einer bestimmten Ausführungsform kann das Zurückziehen eines Teils einer Speichereinheit und/oder das Bestimmen, ob aus Haupt- oder Ersatzspeicher zu lesen oder darin zu schreiben ist, einen Prozeß umfassen, der mit Bezug auf die Verarbeitungseinheit 410, die Lese-/Schreibanweisungen ausgeben kann, transparent ist. Dementsprechend muß die Prozessoreinheit 410 aus einem bestimmten Teil des Speichers, der Fehler produziert, gelesene Daten weder empfangen noch verarbeiten. Statt dessen können solche Fehler abgefangen und durch die Fehlerdetektionskomponente 440 detektiert werden, die dann, wie oben beschrieben, dem Speichercontroller 435 Fehlerinformationen zuführen kann. Danach kann der Speichercontroller 435 bestimmen, ob ein bestimmter Teil des Speichers 455 zurückgezogen werden sollte, wobei eine solche Bestimmung in dem Hardwareteil 490 und ohne Teilnahme zum Beispiel der Verarbeitungseinheit 410 erfolgen kann. Zusätzlich kann der Speichercontroller 435 mindestens teilweise abhängig von Signalen, die in dem nichtflüchtigen diskret adressierbaren Speicher 430 gespeicherte Informationen repräsentieren, bestimmen, ob aus Haupt- oder Ersatzspeicher zu lesen oder darin zu schreiben ist. Wieder kann eine solche Bestimmung in dem Hardwareteil 490 und ohne Beteiligung der Verarbeitungseinheit 410 erfolgen. Wie oben angegeben, muß ein Prozessor dementsprechend zum Beispiel während des Verarbeitens von Lese-/Schreibanweisungen nicht mit Softwareprozessen zum Umorganisieren von und/oder Arbeiten mit Speicherabbildungen belastet werden. Natürlich sind solche Prozesse lediglich Beispiele, und das Beanspruchte ist nicht darauf beschränkt.
  • 5 ist ein Flußdiagramm eines Speicherlese-/-schreibprozesses 500 gemäß einer Ausführungsform. Im Block 505 kann ein Lese-/Schreibprozeß zum Lesen aus einem Teil einer Speichereinheit oder zum Schreiben darin, zum Beispiel durch eine Systemanwendung, eingeleitet werden, die eine oder mehrere Lese-/Schreibadressen bereitstellt, um jeweils eine oder mehrere Speicherstellen zu identifizieren, aus denen gespeicherte Daten zu lesen sind oder in die zu schreiben ist. Im Block 510 können eine oder mehrere solche Lese-/Schreibadressen zum Beispiel einem inhaltsadressierbaren Speicher (CAM) zugeführt werden, wobei eine Suche nach möglichen umabgebildeten Adressen, die den bereitgestellten Lese-/Schreibadressen entsprechen, durchgeführt werden kann. Bei einer Implementierung kann ein CAM einen nichtflüchtigen diskret adressierbaren Speicher, wie zum Beispiel einen PCM, umfassen. Ein solcher CAM kann Digitalsignale speichern, die eine Datenbank und/oder Tabelle repräsentieren, die ursprüngliche Adressen mit entsprechenden umabgebildeten Adressen assoziiert. Durch Durchsuchen eines solchen CAM kann dementsprechend im Block 530 eine Bestimmung erfolgen, ob eine ankommende ursprüngliche Lese-/Schreibadresse mit einer in dem CAM gespeicherten entsprechenden umabgebildeten Adresse assoziiert ist. Wenn nicht, wobei eine Suche nach einer mit einer bestimmten ursprünglichen Lese-/Schreibadresse assoziierten umabgebildeten Adresse ein Nullergebnis zurückgibt, kann der Lese-/Schreibprozeß 500 zum Block 540 voranschreiten, in dem die ursprüngliche Lese-/Schreibadresse ausgegeben werden kann. Als Ergebnis kann im Block 550 die ursprüngliche Lese-/Schreibadresse verwendet werden, um aus einer Speichereinheit zu lesen oder in diese zu schreiben. Nachfolgend können im Block 560 aus der ursprünglichen Lese-/Schreibadresse der Speichereinheit zu lesende oder in diese zu schreibende Daten einer Fehlerprüfhardware und/oder -software zugeführt werden, wie zum Beispiel einem ECC-Decodierer und/oder anderen solchen Fehlerkorrekturtechniken.
  • Wenn dagegen im Block 530 bestimmt wird, daß eine ankommende ursprüngliche Lese-/Schreibadresse eine entsprechende umabgebildete Adresse aufweist, kann der Lese-/Schreibprozeß 500 zum Block 545 voranschreiten, in dem eine umabgebildete Adresse, die einer bestimmten ursprünglichen Lese-/Schreibadresse entspricht, gesendet werden kann. Als Ergebnis kann im Block 555 die umabgebildete Lese-/Schreibadresse verwendet werden, um aus einer Speichereinheit zu lesen oder in diese zu schreiben. Bei einer Implementierung kann ein Ersatzteil der Speichereinheit gelesen oder geschrieben werden, wenn eine umabgebildete Adresse benutzt wird, eine solche Beschränkung ist jedoch lediglich ein Beispiel. Danach können im Block 560 aus der umabgebildeten Lese-/Schreibadresse der Speichereinheit gelesene oder in diese geschriebene Daten einer Fehlerprüfhardware und/oder -software zugeführt werden, wie zum Beispiel einem ECC-Decodierer und/oder anderen solchen Fehlerkorrekturtechniken. Natürlich sind Einzelheiten eines solchen Speicherlese-/-schreibprozesses lediglich Beispiele, und das Beanspruchte ist nicht darauf beschränkt.
  • 6 ist ein Flußdiagramm eines Speicherleseprozesses 600 gemäß einer Ausführungsform. Im Block 605 kann ein Leseprozeß zum Lesen von in einem Teil einer Speichereinheit gespeicherte Informationen repräsentierenden Lesesignalen, zum Beispiel durch eine Systemanwendung, eingeleitet werden, die eine oder mehrere Leseadressen bereitstellt, um jeweils eine oder mehrere Speicherstellen zu identifizieren, aus denen Daten repräsentierende gespeicherte Signale zu lesen sind. ECC-Hardware und/oder -Software kann durch Paritätsprüfung gelesener Daten verwendet werden, um Fehler in gelesenen Daten zu prüfen und/oder zu korrigieren. Danach können anfänglich gelesene Daten mit korrigierten gelesenen Daten verglichen werden und somit die Anzahl der Fehler bestimmt werden, die in dem Speicherleseprozeß aufgetreten sind, wie im Block 610. Eine solche Anzahl von Fehlern kann als eine Bitfehlerrate (BER) ausgedrückt werden, die zum Beispiel ein Verhältnis der Anzahl der Fehlerbit zu der Gesamtzahl gelesener Bit umfassen kann. Im Block 620 kann eine BER oder Anzahl von Fehlern, die sich aus dem Lesen aus einem Teil einer Speichereinheit ergibt, mit einem Fehlerschwellenwert verglichen werden, der einen Wert umfassen kann, der eine maximal annehmbare BER oder maximale annehmbare Anzahl von Fehlern repräsentiert, über den hinaus zum Beispiel zusätzliche Fehler nicht erfolgreich korrigiert werden können: ein solcher Fehlerschwellenwert kann eine Zahl umfassen, die eine wesentliche Obergrenze einer BER oder Anzahl von Fehlern repräsentiert, die für eine bestimmte Speichereinheit, wie zum Beispiel die in 1 gezeigte Speichereinheit 100, annehmbar ist. Bei oder unter einem solchen Fehlerschwellenwert kann ECC-Hardware und/oder -Software in der Lage sein, Lesefehler zu korrigieren. Aber über einer solchen Fehlerschwelle kann eine relativ hohe Wahrscheinlichkeit bestehen, daß mindestens bestimmte Lesefehler nicht korrigierbar sein können.
  • Im Block 630 wird mindestens teilweise abhängig davon, ob das Lesen aus einem solchen Teil des Speichers zu zu vielen Fehlern führt, eine Entscheidung getroffen, ob ein Teil einer Speichereinheit zurückgezogen wird. Wenn eine solche Anzahl von Fehlern bei oder unter einer Fehlerschwelle liegt, kann der Leseprozeß 600 zum Block 640 voranschreiten, in dem zum Beispiel gelesene Daten einer Anwendung zugeführt werden können, die die gelesenen Daten angefordert hat. Wenn dagegen eine solche Anzahl von Fehlern über einer Fehlerschwelle liegt, kann der Leseprozeß 600 zum Block 650 voranschreiten, in dem zum Beispiel ein Prozeß, einen Teil des Speichers, der zu zu vielen Fehlern führt, zurückzuziehen, beginnen kann. Bei einer bestimmten Implementierung können anfänglich in einem solchen fehleranfälligen Speicherteil gespeicherte Daten zu einem anderen Speicherteil verlagert werden, von dem bekannt ist, daß er funktionsfähig und/oder gesund ist. Ein solcher neuer Speicherteil kann einen Teil von Ersatzspeicher, wie zum Beispiel den in 1 gezeigten Ersatzspeicher 120, umfassen. Im Block 660 kann eine Speicheradresse oder können mehrere Speicheradressen zum Identifizieren der ursprünglichen Speicherstelle(n) der Daten umabgebildet werden, um den neuen Speicherteil zu identifizieren, zu dem Daten verlagert werden. Bei einer Implementierung kann die Umabbildung umfassen, eine neue Adresse so zuzuweisen, daß sie zum Beispiel über einen Vektor einer ursprünglichen Adresse entspricht, so daß ein Aufruf der ursprünglichen Adresse zu einer neuen Adresse umgelenkt werden kann, die die Stelle verlagerter Daten spezifiziert. Im Block 670 können dann Informationen bezüglich solcher umabgebildeter Adressen einem CAM zugeführt werden, um in dem CAM gespeicherte Umabbildungsinformationen zu aktualisieren, wobei solche Informationen als eine Vektor-Umabbildungstabelle gespeichert werden können, wie später ausführlicher beschrieben wird. Im Block 680 können als Reaktion darauf, daß dem CAM eine oder mehrere umabgebildete Adressen zugeführt werden, aktualisierte Informationen auch einem nichtflüchtigen diskret adressierbaren Speicher, wie zum Beispiel einem PCM, zugeführt werden. Zum Beispiel kann ein Speichercontroller Digitalsignale, die Umabbildungsinformationen bezüglich einer Speichereinheit repräsentieren, einem CAM zuführen, wobei ein solcher Speichercontroller mindestens einen Teil der in dem CAM gespeicherten Umabbildungsinformationen in einen nichtflüchtigen diskret adressierbaren Speicher kopieren kann, wenn die in dem CAM gespeicherten Umabbildungsinformationen aktualisiert werden. Bei einer Implementierung können solche aktualisierten Informationen einem nichtflüchtigen diskret adressierbaren Speicher im Fluge zum Beispiel während Laufzeitprozessen, wie zum Beispiel durch einen Prozessor eingeleiteten Lese-/Schreibprozessen, zugeführt werden. Bei einer anderen Implementierung kann ein Initialisierungsprozeß durch ein System durchgeführt werden, um Scannen nach fehleranfälligen Teilen einer Speichereinheit einzuschließen.
  • Bei einer bestimmten Implementierung kann ein PCM oder ein anderer nichtflüchtiger diskret adressierbarer Speicher periodisch mit Umabbildungsinformationen und/oder anderen in einem CAM gespeicherten Inhalten aktualisiert werden, wie nachfolgend ausführlicher besprochen werden wird. Nach der Umabbildung eines fehleranfälligen Teils des Speichers kann der Leseprozeß 600 zum Block 640 voranschreiten, in dem gelesene Daten zum Beispiel einer Anwendung zugeführt werden können, die die gelesenen Daten angefordert hat. Natürlich sind Einzelheiten eines solchen Speicherleseprozesses lediglich Beispiele, und das Beanspruchte ist nicht darauf beschränkt.
  • 7 ist eine schematische Ansicht einer Vektor-Umabbildungstabelle 700 gemäß einer Ausführungsform. In der Tabelle 700 enthaltene Informationen müssen bei anderen Implementierungen nicht in einer Tabelle formatiert sein; solche Informationen können zum Beispiel ein Array oder ein anderes Mittel zum Organisieren solcher Informationen umfassen. Solche Informationen und die Organisation bezüglich dieser können als solche Informationen repräsentierende Digitalsignale in einem nichtflüchtigen diskret adressierbaren Speicher, wie zum Beispiel einem PCM, gespeichert werden. Die Spalte 710 kann eine Liste von ursprünglichen Adressen 740 umfassen, wie zum Beispiel addr1, addr2, addr3 und so weiter; die Statusspalte 720 kann Informationen darüber, ob eine entsprechende ursprüngliche Adresse, die in der Spalte 710 aufgelistet ist, umabgebildet wurde, umfassen; und Spalte 730 kann eine Liste umabgebildeter Adressen umfassen, wie zum Beispiel addr1', addr2', addr3' und so weiter, die den in der Spalte 710 aufgelisteten ursprünglichen Adressen 740 entsprechen.
  • Bei einer Implementierung können die ursprünglichen Adressen 740 eine oder mehrere Adressen umfassen, die in einer Lese-/Schreibanforderung durch eine Anwendung und/oder ein System enthalten sind, die bzw. das über in der Speichereinheit 100 an der Stelle der einen oder mehreren Adressen gespeicherte Informationen anfragt. Die Statusspalte 720 kann Metadaten umfassen, um zu beschreiben, ob eine ursprüngliche Adresse 740 umabgebildet wurde. Wenn eine solche Umabbildung aufgetreten ist, kann Spalte 730 dann eine umabgebildete Adresse 750 umfassen, die einer ursprünglichen Adresse 740 entspricht. Zur Veranschaulichung durch ein Beispiel gemäß 1 wurden addr1, addr5, addr7 und addr8 auf addr1', addr5', addr7' bzw. addr8' umabgebildet, während addr2, addr3, addr4 und addr6 nicht umabgebildet wurden.
  • Hierbei weisen ursprüngliche Adressen, die nicht umabgebildet wurden, keine entsprechende umabgebildete Adresse in der Spalte 730 auf. Bei einer anderen Implementierung muß die Statusspalte 720 nicht in der Tabelle 700 enthalten sein, da eine Anwesenheit einer umabgebildeten Adresse 750 ausreichen kann, um anzuzeigen, daß Umabbildung zum Beispiel für eine bestimmte ursprüngliche Adresse 740 stattgefunden hat. Natürlich sind Einzelheiten einer solchen Vektor-Umabbildungstabelle und anderer Formate des Speicherns von Umabbildungsinformationen lediglich Beispiele, und das Beanspruchte ist nicht darauf beschränkt.
  • 8 ist ein Blockdiagramm eines Speichersystems 800 gemäß einer Ausführungsform. Ein Controller 810 kann dafür konfiguriert werden, ein oder mehrere Signale zu empfangen, die eine Leseanforderung 805 anzeigen, die eine Adresse umfaßt, die eine Stelle einer Speicheranordnung 825 spezifiziert, aus der Daten zu lesen sind. Die Speichereinheit 825 kann zum Beispiel, wie oben beschrieben, Hauptspeicher 820 und Ersatzspeicher 830 umfassen. Ankommende Adressen, die Leseanforderungen begleiten, können durch einen CAM 815 geleitet werden, in dem solche Adressen mit in dem CAM 815 gespeicherten Inhalten verglichen werden können, die mit ursprünglichen Adressen assoziierte umabgebildete Adressen umfassen können. Bei einer bestimmten Implementierung erfolgen Umabbildungsprozesse ohne bestimmte Anweisungen und/oder Signale, die durch einen Benutzer auf einer Systemebene erzeugt werden, so daß ankommende Adressen, die Leseanforderungen begleiten, immer ursprüngliche Adressen umfassen können; solche Adressen können nur einer CAM-Suche nachfolgend mit ihren assoziierten umabgebildeten Adressen assoziiert werden. Anders ausgedrückt, kann der CAM 815 eine Übersetzung aus einem ursprünglichen Adressenraum in einen umabgebildeten Adressenraum gewährleisten. Auf solche Weise kann der Controller 810 bestimmen, ob die Leseanforderung 805 eine Adresse umfaßt, die umabgebildet wurde. Abhängig von einer solchen Bestimmung kann der Controller 810 die Leseanforderung 805 entweder zu dem Hauptspeicher 820 oder zu dem Ersatzspeicher 830 lenken, um Daten zu lesen. Wenn zum Beispiel die Adresse der Leseanforderung 805 nicht umabgebildet wurde, kann der Controller 810 die Leseanforderung zu dem Hauptspeicher 820 weiterleiten, während, wenn eine solche Adresse umabgebildet wurde, der Controller 810 die Leseanforderung 805 dann so modifizieren kann, daß sie eine umabgebildete Adresse umfaßt, die zu dem Ersatzspeicher 820 gelenkt werden kann. Danach kann entweder der Hauptspeicher 820 oder der Ersatzspeicher 830 gelesene Daten 835 einem Fehlerdetektionsblock 840 zuführen, der zum Beispiel einen Fehlerzähler und/oder einen ECC-Decodierer umfassen kann. Bei einer Ausführungsform kann der einen ECC-Decodierer umfassende Fehlerdetektionsblock 840 in einem Chipelement der Speichereinheit 825 angeordnet sein. Bei einer anderen Ausführungsform kann der einen ECC-Decodierer umfassende Fehlerdetektionsblock 840 auf einer Systemebene, wie zum Beispiel in einer Anwendung, bereitgestellt werden. Der Fehlerdetektionsblock 840 kann etwaige in den gelesenen Daten 835 anwesende Fehler detektieren und/oder korrigieren und kann solche detektierten Fehler als eine BER und/oder eine Anzahl von Bitfehlern ausdrücken. Dementsprechend kann der Fehlerdetektionsblock 840 korrigierte gelesene Daten 845 einer Entität zuführen, die die Leseanforderung 805 eingeführt hat, wie zum Beispiel einer Anwendung und/oder einem Hostsystem. Der Fehlerdetektionsblock 840 kann auch Informationen bezüglich der Anzahl von in den gelesenen Daten 835 anwesenden Fehlern einer Vergleichsmaschine 850 zuführen. Falls der Fehlerdetektionsblock 840 einen in einem Chipelement der Speichereinheit 825 angeordneten ECC-Decodierer umfaßt, können solche Fehlerinformationen durch eine Vergleichsmaschinen-Anwendung auf einer Systemebene zugänglich sein. Bei einer Implementierung kann ein ECC-Decodierer zum Beispiel ein für Zugang durch die Vergleichsmaschine 850 verfügbares Fehlerinformationsregister umfassen, das die Anzahl detektierter Fehler mit einer Fehlerschwelle vergleichen kann.
  • Wie oben erläutert, kann eine solche Fehlerschwelle eine Grenze für eine annehmbare BER oder Anzahl von Fehlern umfassen. Die Vergleichsmaschine 850 kann Ergebnisse 860 eines solchen Vergleichs dem Controller 810 zuführen. Mindestens teilweise auf der Basis solcher Vergleichsergebnisse kann der Controller 810 bestimmen, ob ein bestimmter Teil der Speichereinheit 825 zurückzuziehen ist. Wenn ein solcher Vergleich anzeigt, daß ein bestimmter Teil der Speichereinheit 825 während eines Leseprozesses zum Beispiel zu einer zu großen Anzahl von Bitfehlern geführt hat, kann der Controller 810 dann einen Prozeß zum Zurückziehen des fehleranfälligen Teils des Speichers einleiten. Ein solcher Zurückziehprozeß kann umfassen, in dem sich zurückziehenden Teil des Speichers gespeicherte Daten zu einem anderen Teil des Speichers zu verschieben. Zum Beispiel können Digitalsignale, die Daten repräsentieren, aus einem bestimmten Teil des Hauptspeichers 820 bewegt werden, um in dem Ersatzspeicher 830 gespeichert zu werden. Dementsprechend kann der Controller 810 eine Adresse, die den sich zurückziehenden Teil des Speichers identifiziert, in eine Adresse modifizieren, die den neuen Teil des Speichers, der die verschobenen Daten enthalten soll, identifiziert. Eine solche modifizierte umabgebildete Adresse kann dann in den CAM 815 geschrieben werden, in dem sie, wie oben beschrieben, mit der ursprünglichen Adresse assoziiert werden kann. Ein solcher Speicherzurückziehprozeß kann mit Bezug auf eine Anwendung und/oder ein Hostsystem, die bzw. das zum Beispiel die Leseanforderung 805 eingeführt hat, nahtlos erfolgen. Bei einer Implementierung kann ein nichtflüchtiger diskret adressierbarer Speicher 818, wie zum Beispiel ein PCM, benutzt werden, um in dem CAM 815 gespeicherte Umabbildungsinformationen zu sichern. Zum Beispiel kann der nichtflüchtige diskret adressierbare Speicher 818 von Zeit zu Zeit, gelegentlich, periodisch und/oder jedesmal, wenn der CAM 815 mit neuen Umabbildungsinformationen aktualisiert wird, aktualisiert werden. Bei einer Ausführungsform kann der nichtflüchtige diskret adressierbare Speicher 818 im Fluge zum Beispiel während Laufzeitprozessen, wie zum Beispiel einem durch die Leseanforderung 805 eingeleiteten Leseprozeß, aktualisiert werden. Falls eine solche Aktualisierung des nichtflüchtigen diskret adressierbaren Speichers 818 im wesentlichen für jede Aktualisierung des CAM 815 erfolgt, können der nichtflüchtige diskret adressierbare Speicher und der CAM beide im wesentlichen synchron miteinander sein. Das heißt, jeder der Speicher kann im wesentlichen ähnliche Umabbildungsinformationen enthalten. Eine solche Synchronizität kann während einer Unterbrechung der Stromversorgung des Speichersystems 800 nützlich sein, wobei ein flüchtiger CAM 815 Umabbildungsinformationen verlieren kann, während der nichtflüchtige diskret adressierbare Speicher 818 solche Informationen behalten kann. Natürlich ist eine solche Implementierung eines Speichersystems lediglich ein Beispiel, und das Beanspruchte ist nicht darauf beschränkt.
  • 9 ist ein schematisches Diagramm einer beispielhaften Ausführungsform eines Datenverarbeitungssystems 900, das eine Speichereinheit 910 enthält, die zum Beispiel, wie oben besprochen, in einen Haupt- und einen Ersatzteil aufgeteilt werden kann. Eine Datenverarbeitungseinheit 904 kann eine beliebige Einheit, Vorrichtung und/oder Maschine repräsentieren, die dafür konfigurierbar sein kann, die Speichereinheit 910 zu verwalten. Die Speichereinheit 910 kann einen Speichercontroller 915 und einen Speicher 992 umfassen. Als Beispiel, aber nicht als Beschränkung, kann die Datenverarbeitungseinheit 904 folgendes umfassen: eine oder mehrere Datenverarbeitungseinheiten und/oder -plattformen, wie zum Beispiel einen Desktop-Computer, einen Laptop-Computer, eine Workstation, eine Servereinheit oder dergleichen; eine oder mehrere persönliche Datenverarbeitungs- oder Kommunikationseinheiten oder -vorrichtungen, wie zum Beispiel einen Personal Digital Assistant, ein Mobilkommunikationsgerät oder dergleichen; ein Datenverarbeitungssystem und/oder assoziierte Dienstanbieterfähigkeit, wie zum Beispiel eine Datenbank oder ein Datenspeicherungsdienstanbieter bzw. -system; und/oder eine beliebige Kombination davon.
  • Es wird anerkannt, daß alle oder Teile der verschiedenen in dem System 900 gezeigten Anordnungen bzw. Einheiten und die hier weiter beschriebenen Prozesse und Verfahren unter Verwendung oder anderweitigem Einbezug von Hardware, Firmware, Software oder einer beliebigen Kombination davon implementiert werden können. Als Beispiel, aber nicht als Beschränkung, kann die Datenverarbeitungseinheit 904 mindestens eine Verarbeitungseinheit 920 umfassen, die durch einen Bus 940 und einen Host- oder Speichercontroller 915 wirksam mit dem Speicher 922 gekoppelt ist. Die Verarbeitungseinheit 920 repräsentiert eine oder mehrere Schaltungen, die dafür konfigurierbar sind, mindestens einen Teil einer Datenverarbeitungsprozedur oder eines Datenverarbeitungsprozesses auszuführen. Als Beispiel, aber nicht als Beschränkung, kann die Verarbeitungseinheit 920 folgendes umfassen: einen oder mehrere Prozessoren, Controller, Mikroprozessoren, Mikrocontroller, anwendungsspezifische integrierte Schaltungen, digitale Signalprozessoren, programmierbare Logikanordnungen, am Einsatzort programmierbare Gate-Arrays und dergleichen oder eine beliebige Kombination davon. Die Verarbeitungseinheit 920 kann mit dem Speichercontroller 915 kommunizieren, um speicherbezogene Operationen zu verarbeiten, wie zum Beispiel Lesen, Schreiben und/oder Löschen sowie oben besprochene Speicheraufteilungsprozesse. Die Verarbeitungseinheit 920 kann ein Betriebssystem umfassen, das dafür ausgelegt ist, mit dem Speichercontroller 915 zu kommunizieren. Ein solches Betriebssystem kann zum Beispiel Befehle erzeugen, die über den Bus 940 zu dem Speichercontroller 915 zu senden sind. Solche Befehle können zum Beispiel Anweisungen zum Aufteilen mindestens eines Teils des Speichers 922, zum Assoziieren eines oder mehrerer Attribute mit bestimmten Aufteilungen und zum Programmieren einer bestimmten Aufteilung mindestens teilweise auf der Basis des Typs der zu programmierenden und zu speichernden Daten enthalten.
  • Der Speicher 922 stellt einen beliebigen Datenspeicherungsmechanismus dar. Der Speicher 922 kann zum Beispiel einen primären Speicher 924 und/oder einen sekundären Speicher 926 umfassen. Bei einer bestimmten Ausführungsform kann der Speicher 922 Speicher umfassen, der mindestens teilweise auf der Basis eines oder mehrerer Attribute des Speichers und/oder eines Speicherverwaltungsprozesses, wie oben beschrieben, aufgeteilt werden kann. Der primäre Speicher 924 kann zum Beispiel Direktzugriffsspeicher, Nurlesespeicher usw. umfassen. Obwohl er in diesem Beispiel als von der Verarbeitungseinheit 920 getrennt dargestellt ist, versteht sich, daß der primäre Speicher 924 vollständig oder teilweise in der Verarbeitungseinheit 920 bereitgestellt oder anderweitig mit dieser zusammen angeordnet bzw. gekoppelt werden kann.
  • Der sekundäre Speicher 926 kann zum Beispiel denselben oder einen ähnlichen Typ von Speicher wie der primäre Speicher umfassen und/oder ein/eine oder mehrere Datenspeicherungseinheiten oder -systeme, wie zum Beispiel ein Plattenlaufwerk, ein optisches Laufwerk, ein Bandlaufwerk, ein Halbleiter-Speicherlaufwerk usw. Bei bestimmten Implementierungen kann der sekundäre Speicher 926 wirksam ein computerlesbares Medium 928 aufnehmen oder anderweitig dafür konfigurierbar sein, mit diesem gekoppelt zu werden. Das computerlesbare Medium 928 kann zum Beispiel ein beliebiges Medium umfassen, das Daten, Code und/oder Anweisungen für eine oder mehrere der Einheiten in dem System 900 tragen und/oder zugänglich machen kann.
  • Die Datenverarbeitungseinheit 904 kann zum Beispiel einen Eingang/Ausgang 932 umfassen. Der Eingang/Ausgang 932 repräsentiert ein/eine oder mehrere Anordnungen oder Merkmale, die dafür konfigurierbar sein können, menschliche Eingaben und/oder Maschineneingaben anzunehmen oder anderweitig einzuführen, und/oder ein/eine oder mehrere Anordnungen oder Merkmale, die konfigurierbar sein können, um menschliche Ausgaben und/oder Maschinenausgaben abzuliefern oder anderweitig bereitzustellen. Als Beispiel, aber nicht als Beschränkung, kann die Eingangs-/Ausgangsanordnung 932 ein Display, einen Lautsprecher, eine Tastatur, eine Maus, einen Trackball, einen Berührungsschirm, einen Datenport usw. mit wirksamer Konfiguration umfassen.
  • In der obigen ausführlichen Beschreibung werden zahlreiche spezifische Einzelheiten dargelegt, um ein umfassendes Verständnis des Beanspruchten zu gewährleisten. Für Fachleute ist jedoch erkennbar, daß das Beanspruchte ohne diese spezifischen Einzelheiten ausgeübt werden kann. In anderen Fällen wurden Verfahren, Vorrichtungen oder Systeme, die Durchschnittsfachleuten bekannt wären, nicht ausführlich beschrieben, um so das Beanspruchte nicht zu verdecken.
  • Bestimmte Teile der obigen ausführlichen Beschreibung werden in Form von Algorithmen oder symbolischen Darstellungen von Operationen an binären Digitalsignalen dargestellt, die in einem Speicher einer spezifischen Vorrichtung oder Spezial-Datenverarbeitungseinheit oder -plattform gespeichert sind. Im Kontext der vorliegenden konkreten Beschreibung umfaßt der Ausdruck spezifische Vorrichtung oder dergleichen einen Vielzweckcomputer, sobald er dafür programmiert ist, bestimmte Operationen gemäß Anweisungen aus Programmsoftware auszuführen. Algorithmische Beschreibungen oder symbolische Darstellungen sind Beispiele für Techniken, die von Durchschnittsfachleuten auf dem Gebiet der Signalverarbeitung oder verwandten Gebieten verwendet werden, um anderen Fachleuten das Wesentliche ihrer Arbeit zu vermitteln. Ein Algorithmus wird hier und allgemein als eine in sich stimmige Sequenz von Operationen oder ähnliche Signalverarbeitung betrachtet, die zu einem gewünschten Ergebnis führt. In diesem Kontext umfassen Operationen oder Verarbeitung physische Manipulation physischer Größen. Typischerweise, aber nicht unbedingt, können solche Größen die Form von elektrischen oder magnetischen Signalen annehmen, die gespeichert, transferiert, kombiniert, verglichen oder anderweitig manipuliert werden können. Es hat sich manchmal als zweckmäßig erwiesen, hauptsächlich aus Gründen der üblichen Verwendung solche Signale als Bit, Daten, Werte, Elemente, Symbole, Zeichen, Terme, Zahlen, Ziffern oder dergleichen zu bezeichnen. Es versteht sich jedoch, daß alle diese oder ähnliche Ausdrücke mit geeigneten physikalischen Größen zu assoziieren sind und lediglich zweckmäßige Kennzeichnungen sind. Sofern es nicht spezifisch anders erwähnt wird, so wie es aus der folgenden Besprechung hervorgeht, versteht sich, daß in der gesamten vorliegenden Beschreibung Besprechungen, die Ausdrücke wie „Verarbeitung”, „Datenverarbeitung”, „Berechnung”, „Bestimmung” oder dergleichen benutzen, auf Aktionen oder Prozesse einer spezifischen Vorrichtung, wie zum Beispiel eines Spezial-Computers oder einer ähnlichen elektronischen Spezial-Datenverarbeitungseinheit, verweisen. In einem Beispiel kann ein solcher Spezial-Computer oder eine solche elektronische Spezial-Datenverarbeitungseinheit einen Vielzweckcomputer umfassen, der mit Anweisungen zum Ausführen einer oder mehrerer spezifischer Funktionen programmiert wird. Im Kontext der vorliegenden Beschreibung ist ein Spezial-Computer oder eine ähnliche elektronische Spezial-Datenverarbeitungseinheit deshalb in der Lage, Signale zu manipulieren oder zu transformieren, die typischerweise als physikalische elektronische oder magnetische Größen in Speichern, Registern oder anderen Informationsspeichereinheiten, Übertragungseinheiten oder Anzeigeeinheiten des Spezial-Computers oder der ähnlichen elektronischen Spezial-Datenverarbeitungseinheit repräsentiert werden.
  • Die hier verwendeten Ausdrücke „und”, „und/oder” und „oder” können vielfältige Bedeutungen umfassen, die mindestens teilweise von dem Kontext abhängen werden, in dem sie verwendet werden. Typischerweise soll „und/oder” sowie „oder” bei Verwendung zum Assoziieren einer Liste, wie zum Beispiel A, B oder C, A, B und C, hier im einschließenden Sinne verwendet, sowie A, B oder C, hier im ausschließenden Sinne verwendet, bedeuten. Der Verweis in der gesamten vorliegenden Beschreibung auf „eine Ausführungsform” bedeutet, daß ein bestimmtes Merkmal, eine bestimmte Struktur oder ein bestimmtes Charakteristikum, die in Verbindung mit der Ausführungsform beschrieben werden, in mindestens einer Ausführungsform des Beanspruchten enthalten ist. Das Erscheinen des Ausdrucks „bei einer Ausführungsform” oder „eine Ausführungsform” an verschiedenen Stellen in der gesamten vorliegenden Beschreibung bezieht sich somit nicht immer unbedingt auf dieselbe Ausführungsform. Ferner können die bestimmten Merkmale, Strukturen oder Charakteristika in einer oder mehreren Ausführungsformen kombiniert werden. Die hier beschriebenen Ausführungsformen können Einheiten, Anordnungen, Maschinen oder Vorrichtungen umfassen, die unter Verwendung von Digitalsignalen operieren. Solche Signale können elektronische Signale, optische Signale, elektromagnetische Signale oder eine beliebige Form von Energie umfassen, die Informationen zwischen Orten bereitstellt.
  • Obwohl das Dargestellte und Beschriebene zur Zeit als beispielhafte Ausführungsformen betrachtet wird, ist für Fachleute erkennbar, daß verschiedene andere Modifikationen vorgenommen und Äquivalente substituiert werden können, ohne von dem Beanspruchten abzuweichen. Zusätzlich können viele Modifikationen vorgenommen werden, um eine bestimmte Situation an die Lehren des Beanspruchten anzupassen, ohne von dem hier beschriebenen zentralen Konzept abzuweichen. Deshalb ist es beabsichtigt, daß das Beanspruchte nicht auf die bestimmten offenbarten Ausführungsformen beschränkt wird, sondern daß das derart Beanspruchte auch alle Ausführungsformen einschließt, die in den Schutzumfang der angefügten Ansprüche und ihrer Äquivalente fallen.

Claims (16)

  1. Verfahren zum Ausführen eines Lese-/Schreibprozesses zum Lesen aus oder Schreiben in einen Teil einer Speichereinheit (100, 455, 825), wobei durch eine Lese-/Schreibadresse eine Speicherstelle identifiziert wird, aus der gespeicherte Daten zu lesen sind oder in die sie zu schreiben sind, wobei eine Anzahl von Fehlerbits, die bei dem Lese-/schreibprozess an der Speicherstelle auftreten, als eine Bitfehlerrate ausgedrückt wird, die ein Verhältnis der Anzahl der Fehlerbits zu der Gesamtzahl gelesener Bits umfasst, wobei die Anzahl der Fehlerbits durch eine Fehlerdetektionskomponente (440, 840), die aus dem Speicher gelesene Daten auf Fehler prüfen kann, bestimmt wird, wobei, wenn die Anzahl der Fehlerbits über einem Fehlerschwellenwert liegt, ein Zurückziehen des Teils des Speichers (100, 455, 825), der zu zu vielen Fehlern führt, begonnen wird, und wobei anfänglich in dem Teil des Speichers (100, 455, 825), wo ein Fehler aufgetreten ist, gespeicherte Daten zu einem anderen Teil des Speichers (100, 455, 825) verlagert werden, von dem bekannt ist, dass er funktionsfähig ist, wobei ein Speichercontroller (435, 810) Umabbildungsinformationen, die in einem inhaltsadressierbaren Speicher (CAM) (815) gespeichert sind, bezüglich einer Adresse des Teils des Speichers (100, 455, 825), wo Fehler aufgetreten sind, aktualisiert, wodurch ein Aufruf der Adresse zu einer neuen Adresse umgelenkt wird, die eine Speicherstelle verlagerter Daten des fehleranfälligen Teils des Speichers (100, 455, 825) spezifiziert, wobei der Speichercontroller (435, 819) bei jeder Aktualisierung des inhaltsadressierbaren Speichers (CAM) (815) die in dem CAM (815) gespeicherte aktualisierte Umabbildungsinformation in einen nichtflüchtigen diskret adressierbaren Speicher (818) kopiert, sodass der nichtflüchtige diskret adressierbare Speicher (818) und der inhaltsadressierbare Speicher synchron (815) sind.
  2. Verfahren nach Anspruch 1, wobei der nichtflüchtige diskret adressierbare Speicher (818) einen Phasenänderungsspeicher (PCM) umfaßt.
  3. Verfahren nach Anspruch 1, wobei die Umabbildungsinformationen eine oder mehrere Tabellen von Umabbildungsadressen umfassen.
  4. Verfahren nach Anspruch 1, wobei der nichtflüchtige diskret adressierbare Speicher (818) mit neuen Umabbildungsinformationen im Fluge während eines an die Speichereinheit (100, 455, 825) gerichteten Lese-/Schreibprozesses aktualisiert werden kann.
  5. Verfahren nach Anspruch 1, wobei der nichtflüchtige diskret adressierbare Speicher (818) einen inhaltsadressierbaren Speicher (CAM) umfaßt.
  6. Verfahren nach Anspruch 3, wobei die Speichereinheit (100, 455, 825) einen Hauptspeicherteil (110) und einen Ersatzspeicherteil (120) umfaßt und wobei die Umabbildungsadressen einer Speicherstelle in dem Ersatzspeicherteil entsprechen.
  7. Verfahren nach Anspruch 1, wobei das Speichern ferner das Schreiben der Umabbildungsinformationen in einen Teil des nichtflüchtigen diskret adressierbaren Speichers (818) umfaßt, wobei der Teil im Wesentlichen dieselbe Größe wie die Umabbildungsinformationen aufweist.
  8. System, ausgebildet zur Durchführung des Verfahrens nach Anspruch 1, umfassend: einen Host zum Lesen bzw. Schreiben aus einer Speichereinheit bzw. in diese und zum Ausführen einer oder mehrerer Anwendungen; eine Speichereinheit (100, 455, 825); einen inhaltsadressierbaren Speicher (CAM) (815); einen nichtflüchtigen diskret adressierbaren Speicher (818); einen Decodierer für Fehlerkorrekturcodierung (ECC) zum Empfangen von Digitalsignalen, die aus der Speichereinheit (100, 455, 825) gelesene Daten repräsentieren, und zum Bestimmen einer Bitfehlerrate und/oder einer Anzahl von Bitfehlern, die mit den die Daten repräsentierenden gelesenen Signalen assoziiert ist, einen Speichercontroller (435, 810) zum Speichern von Digitalsignalen, die umabgebildete Adressen der Speichereinheit (100, 455, 825) repräsentieren, in dem inhaltsadressierbaren Speicher (CAM) (815) mindestens teilweise abhängig davon, ob die Bitfehlerrate und/oder die Anzahl der Bitfehler eine Fehlerschwelle erreicht oder übersteigt, wobei der CAM (815) einen Phasenänderungsspeicher (PCM) umfasst, wobei der Speichercontroller (435, 810) dafür ausgelegt ist, mindestens einen Teil der in dem inhaltsadressierbaren Speicher (CAM) (815) gespeicherten Umabbildungsinformationen in dem nichtflüchtigen diskret adressierbaren Speicher (818) abzuspeichern, wenn die in dem inhaltsadressierbaren Speicher (CAM) (815) gespeicherten Umabbildungsinformationen aktualisiert werden, so dass der nichtflüchtige diskret adressierbare Speicher (818) und der inhaltsadressierbare Speicher (815) synchron sind.
  9. System nach Anspruch 8, wobei der inhaltsadressierbare Speicher (CAM) (815) dafür ausgelegt ist, Digitalsignale zu empfangen, die eine Leseadresse repräsentieren, und Digitalsignale zu senden, die ein Signal repräsentieren, das mindestens teilweise darauf reagiert, ob die Leseadresse der in dem inhaltsadressierbaren Speicher (CAM) (815) gespeicherten umabgebildeten Adresse entspricht.
  10. System nach Anspruch 9, ferner umfassend: einen Auswahlteil zum Auswählen entweder der Leseadresse oder der umabgebildeten Adresse zur Verwendung als eine Adresse zum Lesen aus der Speichereinheit (100, 455, 825), wobei die Auswahl mindestens teilweise auf dem Signal basiert.
  11. System nach Anspruch 8, wobei die Speichereinheit (100, 455, 825) einen Hauptspeicherteil (110) und einen Ersatzspeicherteil (120) umfaßt und wobei die umabgebildete Adresse einer Speicherstelle in dem Ersatzspeicherteil (120) entspricht.
  12. System nach Anspruch 11, wobei die Speichereinheit (100, 455, 825) ferner den ECC-Decodierer und einen Phasenänderungsspeicherteil umfaßt.
  13. System nach Anspruch 8, wobei die Bitfehlerrate und/oder die Anzahl der Bitfehler mindestens teilweise auf eine physische Verschlechterung des Speichers (100, 455, 825) reagieren.
  14. System nach Anspruch 8, wobei die Umabbildungsinformationen eine oder mehrere Tabellen von Umabbildungsadressen umfassen.
  15. System nach Anspruch 8, wobei der nichtflüchtige diskret adressierbare Speicher (818) mit neuen Umabbildungsinformationen im Fluge während eines an die Speichereinheit (100, 455, 825) gerichteten Lese-/Schreibprozesses aktualisiert werden kann.
  16. System nach Anspruch 8, wobei der nichtflüchtige diskret adressierbare Speicher (818) einen zweiten inhaltsadressierbaren Speicher (CAM) umfaßt.
DE102010030745.9A 2009-06-30 2010-06-30 Nicht-flüchtiger Speicher zum Speichern von Speicher-Umabbildungs-Informationen Active DE102010030745B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/494,994 US8412987B2 (en) 2009-06-30 2009-06-30 Non-volatile memory to store memory remap information
US12/494,994 2009-06-30

Publications (2)

Publication Number Publication Date
DE102010030745A1 DE102010030745A1 (de) 2011-01-05
DE102010030745B4 true DE102010030745B4 (de) 2015-02-19

Family

ID=43299312

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010030745.9A Active DE102010030745B4 (de) 2009-06-30 2010-06-30 Nicht-flüchtiger Speicher zum Speichern von Speicher-Umabbildungs-Informationen

Country Status (6)

Country Link
US (1) US8412987B2 (de)
JP (1) JP5996838B2 (de)
KR (1) KR101647845B1 (de)
CN (1) CN101937374B (de)
DE (1) DE102010030745B4 (de)
TW (1) TWI484330B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020202632A1 (de) 2020-03-02 2021-09-02 Robert Bosch Gesellschaft mit beschränkter Haftung Inferenzberechnung für neuronale Netzwerke mit Schutz gegen Speicherfehler

Families Citing this family (216)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8370712B2 (en) * 2009-07-23 2013-02-05 International Business Machines Corporation Memory management in a non-volatile solid state memory device
US20110307758A1 (en) * 2010-06-15 2011-12-15 Fusion-Io, Inc. Apparatus, system, and method for providing error correction
US8533538B2 (en) * 2010-06-28 2013-09-10 Intel Corporation Method and apparatus for training a memory signal via an error signal of a memory
US9003247B2 (en) * 2011-04-28 2015-04-07 Hewlett-Packard Development Company, L.P. Remapping data with pointer
US20120311262A1 (en) * 2011-06-01 2012-12-06 International Business Machines Corporation Memory cell presetting for improved memory performance
US8996955B2 (en) 2011-11-16 2015-03-31 HGST Netherlands B.V. Techniques for storing data in stuck and unstable memory cells
CN102567213B (zh) * 2011-11-30 2014-09-24 华中科技大学 相变存储器的写均衡方法
US9070483B2 (en) 2012-10-10 2015-06-30 HGST Netherlands B.V. Encoding and decoding redundant bits to accommodate memory cells having stuck-at faults
US9274884B2 (en) 2012-10-10 2016-03-01 HGST Netherlands B.V. Encoding and decoding data to accommodate memory cells having stuck-at faults
US9257203B2 (en) * 2012-12-06 2016-02-09 Micron Technology, Inc. Setting a default read signal based on error correction
US8943388B2 (en) 2012-12-12 2015-01-27 HGST Netherlands B.V. Techniques for encoding and decoding using a combinatorial number system
US8812934B2 (en) 2012-12-12 2014-08-19 HGST Netherlands B.V. Techniques for storing bits in memory cells having stuck-at faults
KR101545512B1 (ko) * 2012-12-26 2015-08-24 성균관대학교산학협력단 반도체 메모리 장치, 검증 독출 방법 및 시스템
CN103076996B (zh) * 2013-01-08 2016-08-03 深圳市硅格半导体有限公司 Pcram控制方法及系统
KR102025193B1 (ko) * 2013-02-19 2019-09-25 삼성전자주식회사 메모리 컨트롤러 및 그것의 동작 방법, 메모리 컨트롤러를 포함하는 메모리 시스템
US9349476B2 (en) * 2013-02-21 2016-05-24 Sandisk Technologies Inc. Methods, systems, and computer readable media for early detection of potential flash failures using an adaptive system level algorithm based on flash program verify
US9158667B2 (en) 2013-03-04 2015-10-13 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US20140282478A1 (en) * 2013-03-15 2014-09-18 Silicon Graphics International Corp. Tcp server bootloader
US10198314B2 (en) * 2013-05-23 2019-02-05 Rambus Inc. Memory device with in-system repair capability
JP6102515B2 (ja) * 2013-05-24 2017-03-29 富士通株式会社 情報処理装置、制御回路、制御プログラム、および制御方法
US9678689B2 (en) * 2013-05-29 2017-06-13 Microsoft Technology Licensing, Llc Storage systems and aliased memory
US8964496B2 (en) 2013-07-26 2015-02-24 Micron Technology, Inc. Apparatuses and methods for performing compare operations using sensing circuitry
US9274715B2 (en) * 2013-08-02 2016-03-01 Qualcomm Incorporated Methods and apparatuses for in-system field repair and recovery from memory failures
US8971124B1 (en) 2013-08-08 2015-03-03 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9153305B2 (en) 2013-08-30 2015-10-06 Micron Technology, Inc. Independently addressable memory array address spaces
US9442670B2 (en) 2013-09-03 2016-09-13 Sandisk Technologies Llc Method and system for rebalancing data stored in flash memory devices
US9519577B2 (en) 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
US9019785B2 (en) 2013-09-19 2015-04-28 Micron Technology, Inc. Data shifting via a number of isolation devices
US9449675B2 (en) 2013-10-31 2016-09-20 Micron Technology, Inc. Apparatuses and methods for identifying an extremum value stored in an array of memory cells
US9430191B2 (en) 2013-11-08 2016-08-30 Micron Technology, Inc. Division operations for memory
US9378081B2 (en) * 2014-01-02 2016-06-28 Qualcomm Incorporated Bit remapping system
KR20150084244A (ko) * 2014-01-13 2015-07-22 삼성전자주식회사 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법
US9299457B2 (en) * 2014-02-23 2016-03-29 Qualcomm Incorporated Kernel masking of DRAM defects
US20150270015A1 (en) * 2014-03-19 2015-09-24 Micron Technology, Inc. Memory mapping
US9934856B2 (en) 2014-03-31 2018-04-03 Micron Technology, Inc. Apparatuses and methods for comparing data patterns in memory
US9292380B2 (en) 2014-04-06 2016-03-22 Freescale Semiconductor,Inc. Memory access scheme for system on chip
US20150286529A1 (en) * 2014-04-08 2015-10-08 Micron Technology, Inc. Memory device having controller with local memory
KR102321501B1 (ko) * 2014-05-14 2021-11-05 삼성전자주식회사 불휘발성 메모리 장치 및 그것을 포함하는 스토리지 장치의 동작 방법
KR20150130888A (ko) * 2014-05-14 2015-11-24 에스케이하이닉스 주식회사 셀프 리페어 동작을 수행하는 반도체 메모리 장치
US8891303B1 (en) 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device
US9645749B2 (en) 2014-05-30 2017-05-09 Sandisk Technologies Llc Method and system for recharacterizing the storage density of a memory device or a portion thereof
US10074407B2 (en) 2014-06-05 2018-09-11 Micron Technology, Inc. Apparatuses and methods for performing invert operations using sensing circuitry
US9910787B2 (en) 2014-06-05 2018-03-06 Micron Technology, Inc. Virtual address table
US9711207B2 (en) 2014-06-05 2017-07-18 Micron Technology, Inc. Performing logical operations using sensing circuitry
US9455020B2 (en) 2014-06-05 2016-09-27 Micron Technology, Inc. Apparatuses and methods for performing an exclusive or operation using sensing circuitry
US9704540B2 (en) 2014-06-05 2017-07-11 Micron Technology, Inc. Apparatuses and methods for parity determination using sensing circuitry
US9449674B2 (en) 2014-06-05 2016-09-20 Micron Technology, Inc. Performing logical operations using sensing circuitry
US9496023B2 (en) 2014-06-05 2016-11-15 Micron Technology, Inc. Comparison operations on logical representations of values in memory
US9711206B2 (en) 2014-06-05 2017-07-18 Micron Technology, Inc. Performing logical operations using sensing circuitry
US9830999B2 (en) 2014-06-05 2017-11-28 Micron Technology, Inc. Comparison operations in memory
US9786335B2 (en) 2014-06-05 2017-10-10 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9779019B2 (en) 2014-06-05 2017-10-03 Micron Technology, Inc. Data storage layout
US9524112B2 (en) 2014-09-02 2016-12-20 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by trimming
US9582212B2 (en) 2014-09-02 2017-02-28 Sandisk Technologies Llc Notification of trigger condition to reduce declared capacity of a storage device
US9582203B2 (en) 2014-09-02 2017-02-28 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by reducing a range of logical addresses
US9665311B2 (en) 2014-09-02 2017-05-30 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by making specific logical addresses unavailable
US9519427B2 (en) 2014-09-02 2016-12-13 Sandisk Technologies Llc Triggering, at a host system, a process to reduce declared capacity of a storage device
US9563370B2 (en) 2014-09-02 2017-02-07 Sandisk Technologies Llc Triggering a process to reduce declared capacity of a storage device
US9524105B2 (en) 2014-09-02 2016-12-20 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by altering an encoding format
US9582202B2 (en) 2014-09-02 2017-02-28 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by moving data
US9563362B2 (en) 2014-09-02 2017-02-07 Sandisk Technologies Llc Host system and process to reduce declared capacity of a storage device by trimming
US9652153B2 (en) 2014-09-02 2017-05-16 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by reducing a count of logical addresses
US9582193B2 (en) 2014-09-02 2017-02-28 Sandisk Technologies Llc Triggering a process to reduce declared capacity of a storage device in a multi-storage-device storage system
US9582220B2 (en) 2014-09-02 2017-02-28 Sandisk Technologies Llc Notification of trigger condition to reduce declared capacity of a storage device in a multi-storage-device storage system
US9158681B1 (en) 2014-09-02 2015-10-13 Sandisk Technologies Inc. Process and apparatus to reduce declared capacity of a storage device by conditionally trimming
US9552166B2 (en) 2014-09-02 2017-01-24 Sandisk Technologies Llc. Process and apparatus to reduce declared capacity of a storage device by deleting data
US9740607B2 (en) 2014-09-03 2017-08-22 Micron Technology, Inc. Swap operations in memory
US10068652B2 (en) 2014-09-03 2018-09-04 Micron Technology, Inc. Apparatuses and methods for determining population count
US9898252B2 (en) 2014-09-03 2018-02-20 Micron Technology, Inc. Multiplication operations in memory
US9904515B2 (en) 2014-09-03 2018-02-27 Micron Technology, Inc. Multiplication operations in memory
US9589602B2 (en) 2014-09-03 2017-03-07 Micron Technology, Inc. Comparison operations in memory
US9847110B2 (en) 2014-09-03 2017-12-19 Micron Technology, Inc. Apparatuses and methods for storing a data value in multiple columns of an array corresponding to digits of a vector
US9747961B2 (en) 2014-09-03 2017-08-29 Micron Technology, Inc. Division operations in memory
US9940026B2 (en) 2014-10-03 2018-04-10 Micron Technology, Inc. Multidimensional contiguous memory allocation
US9836218B2 (en) 2014-10-03 2017-12-05 Micron Technology, Inc. Computing reduction and prefix sum operations in memory
US10163467B2 (en) 2014-10-16 2018-12-25 Micron Technology, Inc. Multiple endianness compatibility
US10147480B2 (en) 2014-10-24 2018-12-04 Micron Technology, Inc. Sort operation in memory
US9779784B2 (en) 2014-10-29 2017-10-03 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9747960B2 (en) 2014-12-01 2017-08-29 Micron Technology, Inc. Apparatuses and methods for converting a mask to an index
US10073635B2 (en) 2014-12-01 2018-09-11 Micron Technology, Inc. Multiple endianness compatibility
US10061590B2 (en) 2015-01-07 2018-08-28 Micron Technology, Inc. Generating and executing a control flow
US10032493B2 (en) 2015-01-07 2018-07-24 Micron Technology, Inc. Longest element length determination in memory
US9558064B2 (en) 2015-01-28 2017-01-31 Micron Technology, Inc. Estimating an error rate associated with memory
US9583163B2 (en) 2015-02-03 2017-02-28 Micron Technology, Inc. Loop structure for operations in memory
WO2016126478A1 (en) 2015-02-06 2016-08-11 Micron Technology, Inc. Apparatuses and methods for memory device as a store for program instructions
WO2016126472A1 (en) 2015-02-06 2016-08-11 Micron Technology, Inc. Apparatuses and methods for scatter and gather
EP3254286B1 (de) 2015-02-06 2019-09-11 Micron Technology, INC. Vorrichtungen und verfahren zum parallelen schreiben an mehrere speichervorrichtungsstandorte
WO2016144724A1 (en) 2015-03-10 2016-09-15 Micron Technology, Inc. Apparatuses and methods for shift decisions
US9741399B2 (en) 2015-03-11 2017-08-22 Micron Technology, Inc. Data shift by elements of a vector in memory
US9898253B2 (en) 2015-03-11 2018-02-20 Micron Technology, Inc. Division operations on variable length elements in memory
EP3268965A4 (de) 2015-03-12 2018-10-03 Micron Technology, INC. Vorrichtungen und verfahren zur datenverschiebung
US10146537B2 (en) 2015-03-13 2018-12-04 Micron Technology, Inc. Vector population count determination in memory
US10049054B2 (en) 2015-04-01 2018-08-14 Micron Technology, Inc. Virtual register file
US10140104B2 (en) 2015-04-14 2018-11-27 Micron Technology, Inc. Target architecture determination
US9959923B2 (en) 2015-04-16 2018-05-01 Micron Technology, Inc. Apparatuses and methods to reverse data stored in memory
US9606737B2 (en) 2015-05-20 2017-03-28 Sandisk Technologies Llc Variable bit encoding per NAND flash cell to extend life of flash-based storage devices and preserve over-provisioning
US9639282B2 (en) 2015-05-20 2017-05-02 Sandisk Technologies Llc Variable bit encoding per NAND flash cell to improve device endurance and extend life of flash-based storage devices
US10073786B2 (en) 2015-05-28 2018-09-11 Micron Technology, Inc. Apparatuses and methods for compute enabled cache
US9704541B2 (en) 2015-06-12 2017-07-11 Micron Technology, Inc. Simulating access lines
US9921777B2 (en) 2015-06-22 2018-03-20 Micron Technology, Inc. Apparatuses and methods for data transfer from sensing circuitry to a controller
US9996479B2 (en) 2015-08-17 2018-06-12 Micron Technology, Inc. Encryption of executables in computational memory
US10228990B2 (en) * 2015-11-12 2019-03-12 Sandisk Technologies Llc Variable-term error metrics adjustment
US9946483B2 (en) 2015-12-03 2018-04-17 Sandisk Technologies Llc Efficiently managing unmapped blocks to extend life of solid state drive with low over-provisioning
US9946473B2 (en) 2015-12-03 2018-04-17 Sandisk Technologies Llc Efficiently managing unmapped blocks to extend life of solid state drive
US9905276B2 (en) 2015-12-21 2018-02-27 Micron Technology, Inc. Control of sensing components in association with performing operations
US9952925B2 (en) 2016-01-06 2018-04-24 Micron Technology, Inc. Error code calculation on sensing circuitry
US10048888B2 (en) 2016-02-10 2018-08-14 Micron Technology, Inc. Apparatuses and methods for partitioned parallel data movement
US9892767B2 (en) 2016-02-12 2018-02-13 Micron Technology, Inc. Data gathering in memory
US9971541B2 (en) 2016-02-17 2018-05-15 Micron Technology, Inc. Apparatuses and methods for data movement
US10956439B2 (en) 2016-02-19 2021-03-23 Micron Technology, Inc. Data transfer with a bit vector operation device
US9899070B2 (en) 2016-02-19 2018-02-20 Micron Technology, Inc. Modified decode for corner turn
US9697876B1 (en) 2016-03-01 2017-07-04 Micron Technology, Inc. Vertical bit vector shift in memory
US10732856B2 (en) 2016-03-03 2020-08-04 Sandisk Technologies Llc Erase health metric to rank memory portions
US10432232B2 (en) * 2016-03-04 2019-10-01 Sandisk Technologies Llc Multi-type parity bit generation for encoding and decoding
US9997232B2 (en) 2016-03-10 2018-06-12 Micron Technology, Inc. Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations
US10262721B2 (en) 2016-03-10 2019-04-16 Micron Technology, Inc. Apparatuses and methods for cache invalidate
US10379772B2 (en) 2016-03-16 2019-08-13 Micron Technology, Inc. Apparatuses and methods for operations using compressed and decompressed data
US9910637B2 (en) 2016-03-17 2018-03-06 Micron Technology, Inc. Signed division in memory
US11074988B2 (en) 2016-03-22 2021-07-27 Micron Technology, Inc. Apparatus and methods for debugging on a host and memory device
US10120740B2 (en) 2016-03-22 2018-11-06 Micron Technology, Inc. Apparatus and methods for debugging on a memory device
US10388393B2 (en) 2016-03-22 2019-08-20 Micron Technology, Inc. Apparatus and methods for debugging on a host and memory device
US10977033B2 (en) 2016-03-25 2021-04-13 Micron Technology, Inc. Mask patterns generated in memory from seed vectors
US10474581B2 (en) 2016-03-25 2019-11-12 Micron Technology, Inc. Apparatuses and methods for cache operations
US10074416B2 (en) 2016-03-28 2018-09-11 Micron Technology, Inc. Apparatuses and methods for data movement
US10430244B2 (en) 2016-03-28 2019-10-01 Micron Technology, Inc. Apparatuses and methods to determine timing of operations
US10453502B2 (en) 2016-04-04 2019-10-22 Micron Technology, Inc. Memory bank power coordination including concurrently performing a memory operation in a selected number of memory regions
US10607665B2 (en) 2016-04-07 2020-03-31 Micron Technology, Inc. Span mask generation
US9818459B2 (en) 2016-04-19 2017-11-14 Micron Technology, Inc. Invert operations using sensing circuitry
US10153008B2 (en) 2016-04-20 2018-12-11 Micron Technology, Inc. Apparatuses and methods for performing corner turn operations using sensing circuitry
US9659605B1 (en) 2016-04-20 2017-05-23 Micron Technology, Inc. Apparatuses and methods for performing corner turn operations using sensing circuitry
US10042608B2 (en) 2016-05-11 2018-08-07 Micron Technology, Inc. Signed division in memory
US9659610B1 (en) 2016-05-18 2017-05-23 Micron Technology, Inc. Apparatuses and methods for shifting data
US10049707B2 (en) 2016-06-03 2018-08-14 Micron Technology, Inc. Shifting data
US10387046B2 (en) 2016-06-22 2019-08-20 Micron Technology, Inc. Bank to bank data transfer
US9679661B1 (en) * 2016-06-28 2017-06-13 Sandisk Technologies Llc Non-volatile storage system with self-test for read performance enhancement feature setup
US10037785B2 (en) 2016-07-08 2018-07-31 Micron Technology, Inc. Scan chain operation in sensing circuitry
US10388360B2 (en) 2016-07-19 2019-08-20 Micron Technology, Inc. Utilization of data stored in an edge section of an array
US10387299B2 (en) 2016-07-20 2019-08-20 Micron Technology, Inc. Apparatuses and methods for transferring data
US10733089B2 (en) 2016-07-20 2020-08-04 Micron Technology, Inc. Apparatuses and methods for write address tracking
US9767864B1 (en) 2016-07-21 2017-09-19 Micron Technology, Inc. Apparatuses and methods for storing a data value in a sensing circuitry element
US9972367B2 (en) 2016-07-21 2018-05-15 Micron Technology, Inc. Shifting data in sensing circuitry
US10303632B2 (en) 2016-07-26 2019-05-28 Micron Technology, Inc. Accessing status information
US10468087B2 (en) 2016-07-28 2019-11-05 Micron Technology, Inc. Apparatuses and methods for operations in a self-refresh state
US9990181B2 (en) 2016-08-03 2018-06-05 Micron Technology, Inc. Apparatuses and methods for random number generation
US11029951B2 (en) 2016-08-15 2021-06-08 Micron Technology, Inc. Smallest or largest value element determination
US9672940B1 (en) 2016-08-18 2017-06-06 Sandisk Technologies Llc Non-volatile memory with fast read process
US10606587B2 (en) 2016-08-24 2020-03-31 Micron Technology, Inc. Apparatus and methods related to microcode instructions indicating instruction types
US10466928B2 (en) 2016-09-15 2019-11-05 Micron Technology, Inc. Updating a register in memory
US10387058B2 (en) 2016-09-29 2019-08-20 Micron Technology, Inc. Apparatuses and methods to change data category values
US10014034B2 (en) 2016-10-06 2018-07-03 Micron Technology, Inc. Shifting data in sensing circuitry
US10529409B2 (en) 2016-10-13 2020-01-07 Micron Technology, Inc. Apparatuses and methods to perform logical operations using sensing circuitry
US9805772B1 (en) 2016-10-20 2017-10-31 Micron Technology, Inc. Apparatuses and methods to selectively perform logical operations
US10373666B2 (en) 2016-11-08 2019-08-06 Micron Technology, Inc. Apparatuses and methods for compute components formed over an array of memory cells
US10423353B2 (en) 2016-11-11 2019-09-24 Micron Technology, Inc. Apparatuses and methods for memory alignment
US9761300B1 (en) 2016-11-22 2017-09-12 Micron Technology, Inc. Data shift apparatuses and methods
US10402340B2 (en) 2017-02-21 2019-09-03 Micron Technology, Inc. Memory array page table walk
US10268389B2 (en) 2017-02-22 2019-04-23 Micron Technology, Inc. Apparatuses and methods for in-memory operations
US10403352B2 (en) 2017-02-22 2019-09-03 Micron Technology, Inc. Apparatuses and methods for compute in data path
US10838899B2 (en) 2017-03-21 2020-11-17 Micron Technology, Inc. Apparatuses and methods for in-memory data switching networks
US11222260B2 (en) 2017-03-22 2022-01-11 Micron Technology, Inc. Apparatuses and methods for operating neural networks
US10185674B2 (en) 2017-03-22 2019-01-22 Micron Technology, Inc. Apparatus and methods for in data path compute operations
US10049721B1 (en) 2017-03-27 2018-08-14 Micron Technology, Inc. Apparatuses and methods for in-memory operations
US10318381B2 (en) * 2017-03-29 2019-06-11 Micron Technology, Inc. Selective error rate information for multidimensional memory
US10043570B1 (en) 2017-04-17 2018-08-07 Micron Technology, Inc. Signed element compare in memory
US10147467B2 (en) 2017-04-17 2018-12-04 Micron Technology, Inc. Element value comparison in memory
US9997212B1 (en) 2017-04-24 2018-06-12 Micron Technology, Inc. Accessing data in memory
US10942843B2 (en) 2017-04-25 2021-03-09 Micron Technology, Inc. Storing data elements of different lengths in respective adjacent rows or columns according to memory shapes
US10236038B2 (en) 2017-05-15 2019-03-19 Micron Technology, Inc. Bank to bank data transfer
US10068664B1 (en) 2017-05-19 2018-09-04 Micron Technology, Inc. Column repair in memory
US10013197B1 (en) 2017-06-01 2018-07-03 Micron Technology, Inc. Shift skip
US10152271B1 (en) 2017-06-07 2018-12-11 Micron Technology, Inc. Data replication
US10262701B2 (en) 2017-06-07 2019-04-16 Micron Technology, Inc. Data transfer between subarrays in memory
US10318168B2 (en) 2017-06-19 2019-06-11 Micron Technology, Inc. Apparatuses and methods for simultaneous in data path compute operations
KR20190001417A (ko) * 2017-06-27 2019-01-04 에스케이하이닉스 주식회사 컨트롤러 및 그 동작 방법
KR102326659B1 (ko) * 2017-07-19 2021-11-16 삼성전자주식회사 비휘발성 메모리의 ecc 제어 방법 및 이를 수행하는 메모리 시스템
US10162005B1 (en) 2017-08-09 2018-12-25 Micron Technology, Inc. Scan chain operations
US10534553B2 (en) 2017-08-30 2020-01-14 Micron Technology, Inc. Memory array accessibility
US10346092B2 (en) 2017-08-31 2019-07-09 Micron Technology, Inc. Apparatuses and methods for in-memory operations using timing circuitry
US10416927B2 (en) 2017-08-31 2019-09-17 Micron Technology, Inc. Processing in memory
US10741239B2 (en) 2017-08-31 2020-08-11 Micron Technology, Inc. Processing in memory device including a row address strobe manager
US10409739B2 (en) 2017-10-24 2019-09-10 Micron Technology, Inc. Command selection policy
KR20190053646A (ko) * 2017-11-10 2019-05-20 에스케이하이닉스 주식회사 메모리 콘트롤러, 이를 포함하는 반도체 메모리 시스템 및 그 구동 방법
KR102406868B1 (ko) * 2017-11-23 2022-06-10 삼성전자주식회사 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법
US10522210B2 (en) 2017-12-14 2019-12-31 Micron Technology, Inc. Apparatuses and methods for subarray addressing
US10332586B1 (en) 2017-12-19 2019-06-25 Micron Technology, Inc. Apparatuses and methods for subrow addressing
US10614875B2 (en) 2018-01-30 2020-04-07 Micron Technology, Inc. Logical operations using memory cells
US10437557B2 (en) 2018-01-31 2019-10-08 Micron Technology, Inc. Determination of a match between data values stored by several arrays
US11194477B2 (en) 2018-01-31 2021-12-07 Micron Technology, Inc. Determination of a match between data values stored by three or more arrays
US10725696B2 (en) 2018-04-12 2020-07-28 Micron Technology, Inc. Command selection policy with read priority
US10440341B1 (en) 2018-06-07 2019-10-08 Micron Technology, Inc. Image processor formed in an array of memory cells
US10795810B2 (en) * 2018-09-10 2020-10-06 Micron Technology, Inc. Wear-leveling scheme for memory subsystems
US10978028B2 (en) * 2018-09-17 2021-04-13 Apple Inc. Correction for defective memory of a memory-in-pixel display
US10769071B2 (en) 2018-10-10 2020-09-08 Micron Technology, Inc. Coherent memory access
US11175915B2 (en) 2018-10-10 2021-11-16 Micron Technology, Inc. Vector registers implemented in memory
US10483978B1 (en) 2018-10-16 2019-11-19 Micron Technology, Inc. Memory device processing
US11184446B2 (en) 2018-12-05 2021-11-23 Micron Technology, Inc. Methods and apparatus for incentivizing participation in fog networks
US11237902B2 (en) * 2019-03-15 2022-02-01 Innogrit Technologies Co., Ltd. Systems and methods for an ECC architecture with memory mapping
US10867655B1 (en) 2019-07-08 2020-12-15 Micron Technology, Inc. Methods and apparatus for dynamically adjusting performance of partitioned memory
US11360768B2 (en) 2019-08-14 2022-06-14 Micron Technolgy, Inc. Bit string operations in memory
US11436071B2 (en) 2019-08-28 2022-09-06 Micron Technology, Inc. Error control for content-addressable memory
KR20210051803A (ko) 2019-10-31 2021-05-10 에스케이하이닉스 주식회사 메모리 시스템 및 컨트롤러
US11449577B2 (en) 2019-11-20 2022-09-20 Micron Technology, Inc. Methods and apparatus for performing video processing matrix operations within a memory array
US11853385B2 (en) 2019-12-05 2023-12-26 Micron Technology, Inc. Methods and apparatus for performing diversity matrix operations within a memory array
CN113297014B (zh) * 2020-02-22 2024-03-08 广州希姆半导体科技有限公司 待测内存容量的识别方法及装置、电子设备及存储介质
CN113495672B (zh) 2020-04-01 2023-08-11 长鑫存储技术有限公司 读写方法及存储器装置
CN113495671B (zh) 2020-04-01 2023-10-17 长鑫存储技术有限公司 读写方法及存储器装置
EP3964941B1 (de) 2020-04-01 2024-02-28 Changxin Memory Technologies, Inc. Lese-schreib-verfahren und speichervorrichtung
CN113495675B (zh) 2020-04-01 2023-08-11 长鑫存储技术有限公司 读写方法及存储器装置
EP3964940A4 (de) 2020-04-01 2022-08-17 Changxin Memory Technologies, Inc. Lese-/schreib-verfahren und speichervorrichtung
EP3985494B1 (de) 2020-04-01 2024-01-17 Changxin Memory Technologies, Inc. Lese-schreib-verfahren und speichervorrichtung
EP3936996A4 (de) 2020-04-01 2022-07-06 Changxin Memory Technologies, Inc. Lese-schreib-verfahren und speichervorrichtung
CN113495674B (zh) 2020-04-01 2023-10-10 长鑫存储技术有限公司 读写方法及存储器装置
CN113495677B (zh) * 2020-04-01 2023-10-10 长鑫存储技术有限公司 读写方法及存储器装置
US11227641B1 (en) 2020-07-21 2022-01-18 Micron Technology, Inc. Arithmetic operations in memory
US11656938B2 (en) * 2020-09-28 2023-05-23 Micron Technology, Inc. Preemptive read verification after hardware write back
US11989417B1 (en) * 2022-10-31 2024-05-21 Nxp Usa, Inc. Column repair in a memory system using a repair cache

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6236602B1 (en) * 2000-05-25 2001-05-22 Robert Patti Dynamic configuration of storage arrays
US7233054B1 (en) * 2005-11-29 2007-06-19 Korea Institute Of Science And Technology Phase change material and non-volatile memory device using the same

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4335459A (en) 1980-05-20 1982-06-15 Miller Richard L Single chip random access memory with increased yield and reliability
JP2617026B2 (ja) 1989-12-22 1997-06-04 インターナショナル・ビジネス・マシーンズ・コーポレーション 障害余裕性メモリ・システム
JP2575557B2 (ja) 1990-11-13 1997-01-29 インターナショナル・ビジネス・マシーンズ・コーポレイション スーパーコンピユータシステム
US5418796A (en) 1991-03-26 1995-05-23 International Business Machines Corporation Synergistic multiple bit error correction for memory of array chips
KR970008188B1 (ko) 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
US5465262A (en) 1994-01-28 1995-11-07 International Business Machines Corporation Method and structure for providing error correction code and automatic parity sensing
JPH0916479A (ja) * 1995-06-29 1997-01-17 Fuji Electric Co Ltd 多機能保護リレー
US5838614A (en) * 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
US5867642A (en) 1995-08-10 1999-02-02 Dell Usa, L.P. System and method to coherently and dynamically remap an at-risk memory area by simultaneously writing two memory areas
JPH09128302A (ja) * 1995-11-01 1997-05-16 Fujitsu Ltd 不揮発性メモリへのデータアクセス方法
US5764878A (en) 1996-02-07 1998-06-09 Lsi Logic Corporation Built-in self repair system for embedded memories
US5706292A (en) 1996-04-25 1998-01-06 Micron Technology, Inc. Layout for a semiconductor memory device having redundant elements
US6006306A (en) * 1997-07-02 1999-12-21 Xylan Corporation Integrated circuit with stage-implemented content-addressable memory cell
US5974564A (en) * 1997-07-31 1999-10-26 Micron Electronics, Inc. Method for remapping defective memory bit sets to non-defective memory bit sets
TW446955B (en) 1998-10-30 2001-07-21 Siemens Ag The read/write memory with self-testing device and its associated test method
US6067262A (en) 1998-12-11 2000-05-23 Lsi Logic Corporation Redundancy analysis for embedded memories with built-in self test and built-in self repair
US6651202B1 (en) 1999-01-26 2003-11-18 Lsi Logic Corporation Built-in self repair circuitry utilizing permanent record of defects
JP3937214B2 (ja) 1999-09-17 2007-06-27 株式会社ルネサステクノロジ エラー訂正回数を記録する記憶装置
US6467048B1 (en) 1999-10-07 2002-10-15 Compaq Information Technologies Group, L.P. Apparatus, method and system for using cache memory as fail-over memory
US6848070B1 (en) 1999-11-24 2005-01-25 Intel Corporation Error correcting code scheme
JP4165990B2 (ja) * 1999-12-20 2008-10-15 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリへのデータの書き込み方法
US6941505B2 (en) 2000-09-12 2005-09-06 Hitachi, Ltd. Data processing system and data processing method
US6525966B1 (en) * 2000-12-06 2003-02-25 Advanced Micro Devices, Inc. Method and apparatus for adjusting on-chip current reference for EEPROM sensing
JP4059472B2 (ja) * 2001-08-09 2008-03-12 株式会社ルネサステクノロジ メモリカード及びメモリコントローラ
US7120068B2 (en) 2002-07-29 2006-10-10 Micron Technology, Inc. Column/row redundancy architecture using latches programmed from a look up table
US6907505B2 (en) * 2002-07-31 2005-06-14 Hewlett-Packard Development Company, L.P. Immediately available, statically allocated, full-logical-unit copy with a transient, snapshot-copy-like intermediate stage
EP1394810B1 (de) * 2002-08-13 2007-10-10 STMicroelectronics S.r.l. Nichtflüchtige Speicheranordnung und Selbstreparatur-Verfahren
US7174440B2 (en) * 2002-10-28 2007-02-06 Sandisk Corporation Method and apparatus for performing block caching in a non-volatile memory system
US20050120265A1 (en) 2003-12-02 2005-06-02 Pline Steven L. Data storage system with error correction code and replaceable defective memory
DE102004027423A1 (de) 2004-06-04 2006-07-20 Infineon Technologies Ag Speicherschaltung mit redundanten Speicherbereichen
KR100622349B1 (ko) 2004-08-04 2006-09-14 삼성전자주식회사 불량 블록 관리 기능을 가지는 플레시 메모리 장치 및플레시 메모리 장치의 불량 블록 관리 방법.
US7519875B2 (en) 2004-08-20 2009-04-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and apparatus for enabling a user to determine whether a defective location in a memory device has been remapped to a redundant memory portion
US7644323B2 (en) 2004-11-30 2010-01-05 Industrial Technology Research Institute Method and apparatus of build-in self-diagnosis and repair in a memory with syndrome identification
JP2006179101A (ja) 2004-12-22 2006-07-06 Fujitsu Ltd 半導体記憶装置
KR100725390B1 (ko) * 2005-01-06 2007-06-07 삼성전자주식회사 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법
US7346815B2 (en) 2005-03-31 2008-03-18 Intel Corporation Mechanism for implementing redundancy to mask failing SRAM
US8060774B2 (en) 2005-06-24 2011-11-15 Google Inc. Memory systems and memory modules
US20070006048A1 (en) 2005-06-29 2007-01-04 Intel Corporation Method and apparatus for predicting memory failure in a memory system
EP1881505A1 (de) * 2006-07-20 2008-01-23 STMicroelectronics S.r.l. Speicher mit eingebauter Microprozessor zur selbstständigen Fehlersuche und Behebung
US7757135B2 (en) 2006-09-11 2010-07-13 Mentor Graphics Corporation Method and apparatus for storing and distributing memory repair information
US7661004B2 (en) 2006-10-30 2010-02-09 Research In Motion Limited Automatic power-up portable electronic device based on time-dependent event
EP2095234B1 (de) * 2006-11-21 2014-04-09 Freescale Semiconductor, Inc. Speichersystem mit ecc-einheit und weitere verarbeitungsanordnung
JP4301301B2 (ja) * 2007-02-05 2009-07-22 ソニー株式会社 不揮発性半導体記憶装置およびその管理方法
US8028125B2 (en) * 2007-08-27 2011-09-27 Comtech Ef Data Corp. Content-addressable memories and state machines for performing three-byte matches and for providing error protection
US7515469B1 (en) * 2007-09-27 2009-04-07 Atmel Corporation Column redundancy RAM for dynamic bit replacement in FLASH memory
US20090132876A1 (en) 2007-11-19 2009-05-21 Ronald Ernest Freking Maintaining Error Statistics Concurrently Across Multiple Memory Ranks
WO2009140700A1 (en) 2008-05-16 2009-11-19 Fusion Multisystems, Inc. Apparatus, system, and method for detecting and replacing failed data storage
KR20100016987A (ko) * 2008-08-05 2010-02-16 삼성전자주식회사 상 변화 메모리를 포함하는 컴퓨팅 시스템
KR101019986B1 (ko) 2008-10-10 2011-03-09 주식회사 하이닉스반도체 성장 방식에 의해 형성되는 콘택 구조를 절연시키는 절연막을 포함하는 상변화 메모리 소자, 이를 포함하는 반도체 소자, 및 그들의 제조방법
US7996736B2 (en) 2008-10-26 2011-08-09 Sandisk 3D Llc Bad page marking strategy for fast readout in memory
US7908530B2 (en) 2009-03-16 2011-03-15 Faraday Technology Corp. Memory module and on-line build-in self-test method thereof for enhancing memory system reliability

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6236602B1 (en) * 2000-05-25 2001-05-22 Robert Patti Dynamic configuration of storage arrays
US7233054B1 (en) * 2005-11-29 2007-06-19 Korea Institute Of Science And Technology Phase change material and non-volatile memory device using the same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020202632A1 (de) 2020-03-02 2021-09-02 Robert Bosch Gesellschaft mit beschränkter Haftung Inferenzberechnung für neuronale Netzwerke mit Schutz gegen Speicherfehler

Also Published As

Publication number Publication date
CN101937374B (zh) 2015-07-01
TWI484330B (zh) 2015-05-11
KR101647845B1 (ko) 2016-08-11
JP2011040051A (ja) 2011-02-24
JP5996838B2 (ja) 2016-09-21
TW201126329A (en) 2011-08-01
KR20110001882A (ko) 2011-01-06
CN101937374A (zh) 2011-01-05
DE102010030745A1 (de) 2011-01-05
US8412987B2 (en) 2013-04-02
US20100332895A1 (en) 2010-12-30

Similar Documents

Publication Publication Date Title
DE102010030745B4 (de) Nicht-flüchtiger Speicher zum Speichern von Speicher-Umabbildungs-Informationen
DE102010030750A1 (de) Bitfehlerschwelle und inhaltsadressierbarer Speicher zur Adressierung einer umabgebildeten Speichereinheit
DE102010030748A1 (de) Bitfehlerschwelle und Umabbildung einer Speicheranordnung
DE112018004256T5 (de) Redundanzcodierstreifen basierend auf internen adressen von speichervorrichtungen
DE102018123891A1 (de) Handhabung nichtabgestimmter Schreibvorgänge
DE112019005369T5 (de) Verfahren zum umschalten zwischen herkömmlicher ssd und open-channel-ssd ohne datenverlust
DE112020000178T5 (de) Verwaltung von in zonen unterteilten namensräumen nichtflüchtiger speicherungsvorrichtungen
DE112013003255B4 (de) Managementmechanismus für fehlerhafte Blöcke
DE112020000184T5 (de) In zonen unterteilte namensräume in festkörperlaufwerken
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE102019117787B4 (de) Speichervorrichtung und Betriebsverfahren derselben
DE112018004251T5 (de) Adaptive vorrichtungsdienstqualität durch host-speicherpufferbereich
DE102011075814B4 (de) Speicherpuffer mit zugänglicher Information nach einem Schreibfehler
DE112015004863T5 (de) Verfolgen der Vermischung von Schreibvorgängen und Entabbildungsbefehlen über Stromversorgungszyklen
DE112015000378T5 (de) Selektives Rückkopieren für einen auf einem Chipplättchen gepufferten nichtflüchtigen Speicher
DE112008000180T5 (de) Verfahren und System für die Umsetzung eines Fast-Wakeup eines Flashspeichersystems
DE112010003887T5 (de) Datenverwaltung in Halbleiter-Speichereinheiten
DE112018006329T5 (de) Speichervorrichtungen, systeme und verfahren zum aktualisieren von firmware mit einer einzelnen speichervorrichtung
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
DE112019000161T5 (de) Speicher-cache-verwaltung
DE112020005350T5 (de) Aktualisieren von korrigierenden lesespannung-offsetwerten in nichtflüchtigen direktzugriffsspeichern
DE102018123670A1 (de) Speicherungssystem, Rechensystem und Verfahren dafür
DE102021107475A1 (de) Kalibrieren von leseschwellenwerten eines nichtflüchtigen speichers
DE112017004916T5 (de) Verwendung von Kompression zur Kapazitätserhöhung eines speicherseitigen Caches mit grosser Blockgrösse
DE112020005395T5 (de) Kapazitätserweiterung für speicher-untersysteme

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: VIERING, JENTSCHURA & PARTNER, DE

Representative=s name: VIERING, JENTSCHURA & PARTNER, 40476 DUESSELDORF,

R081 Change of applicant/patentee

Owner name: MICRON TECHNOLOGY, INC., BOISE, US

Free format text: FORMER OWNER: NUMONYX B.V., ROLLE, CH

Effective date: 20120521

Owner name: MICRON TECHNOLOGY, INC., US

Free format text: FORMER OWNER: NUMONYX B.V., ROLLE, CH

Effective date: 20120521

R082 Change of representative

Representative=s name: VIERING, JENTSCHURA & PARTNER MBB PATENT- UND , DE

Effective date: 20120521

Representative=s name: VIERING, JENTSCHURA & PARTNER PATENT- UND RECH, DE

Effective date: 20120521

Representative=s name: VIERING, JENTSCHURA & PARTNER, DE

Effective date: 20120521

R012 Request for examination validly filed

Effective date: 20130314

R082 Change of representative

Representative=s name: VIERING, JENTSCHURA & PARTNER MBB PATENT- UND , DE

Representative=s name: VIERING, JENTSCHURA & PARTNER PATENT- UND RECH, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final