DE102004008240A1 - Verfahren und Vorrichtungen zum Bestimmen des Zustands eines Speicherelements - Google Patents

Verfahren und Vorrichtungen zum Bestimmen des Zustands eines Speicherelements Download PDF

Info

Publication number
DE102004008240A1
DE102004008240A1 DE102004008240A DE102004008240A DE102004008240A1 DE 102004008240 A1 DE102004008240 A1 DE 102004008240A1 DE 102004008240 A DE102004008240 A DE 102004008240A DE 102004008240 A DE102004008240 A DE 102004008240A DE 102004008240 A1 DE102004008240 A1 DE 102004008240A1
Authority
DE
Germany
Prior art keywords
memory elements
memory
values
elements
storage
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.)
Withdrawn
Application number
DE102004008240A
Other languages
English (en)
Inventor
Richard L. Hilton
Anthony Holden
Steven C. Johnson
David H. Mcintyre
Kenneth K. Smith
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE102004008240A1 publication Critical patent/DE102004008240A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Error Detection And Correction (AREA)
  • Semiconductor Memories (AREA)

Abstract

Es werden Verfahren und Vorrichtungen zum Messen von Werten einer Mehrzahl von Speicherelementen offenbart, wobei die gemessenen Werte den digitalen Zustand eines Speicherelements anzeigen können. Es können Berechnungen bei einer Mehrzahl von Übergangstermen durchgeführt werden, die den möglichen Übergängen in den Werten zwischen nahen Speicherelementen zugeordnet sind. Der digitale Zustand von Speicherelementen kann unter Verwendung der Berechnungen, die bei der Mehrzahl von Übergangstermen durchgeführt werden, bestimmt werden.

Description

  • Speichergeräte sind in der Elektronikindustrie überall zu finden. Speichergeräte können unter Verwendung von Arrays aus magnetischen Elementen implementiert sein, die unter Nutzung von Halbleiterverarbeitungstechniken hergestellt sind. Die individuellen magnetischen Elemente des Arrays können Materialien mit variierenden magnetischen Eigenschaften umfassen, die durch eine isolierende Schicht getrennt sind. Auf diese Weise können die Magnetfelder der getrennten Materialien in der gleichen Richtung (bezeichnet als „parallel") oder in einer entgegengesetzten Ausrichtung (bezeichnet als „antiparallel") ausgerichtet sein. Der elektrische Widerstand der magnetischen Elemente kann je nach der parallelen oder antiparallelen Ausrichtung der Magnetfelder variieren. Digitale Informationen können durch Zuordnen von digitalen Werten (z. B. Einsen und Nullen) zu dem elektrischen Widerstand, der den parallelen und antiparallelen Zuständen zugeordnet ist, gespeichert und wiedergewonnen werden.
  • Um den Widerstandswert eines Speicherelements, der den in demselben enthaltenen digitalen Wert effektiv bestimmt, zu bestimmen, wird in der Regel eine Spannung über das Speicherelement entwickelt. Anhand dieser Spannung oder, alternativ, eines Stroms, der aus dieser Spannung abgeleitet ist, kann der Widerstandswert des Speicherelements geschätzt werden. Der in dem Speicherelement gespeicherte digitale Wert kann somit aus dem gemessenen Widerstandswert bestimmt werden.
  • Da Speicherelemente unter Verwendung von Halbleiterverarbeitungstechniken hergestellt werden, können sich aufgrund von Verarbeitungsineffizienzen, wie z. B. einer ungleichmä ßigen Aufbringung von Materialien während der Herstellung, über Speicherarrays Variationen entwickeln. Zum Beispiel können isolierende Schichten, die magnetische Materialien trennen, bezüglich der Dicke über einem Wafer variieren, was zu Speicherelementen innerhalb eines Arrays führt, die für die gleichen digitalen Werte unterschiedliche resistive Bereiche aufweisen. Spezifischer betrachtet, können Verarbeitungsineffizienzen, die Widerstandsschwankungen bewirken, eine ungenaue Interpretation der Werte bewirken, die in dem Speicherarray gespeichert sind, da es schwierig sein kann, einen Widerstandswert, der einem binären „1"-Wert entspricht und einen Widerstandswert, der einem binären „0"-Wert entspricht, zu bestimmen. Eine ungenaue Interpretation des Widerstands kann bewirken, daß ein binärer „1"-Wert als binäre „0"- interpretiert wird und umgekehrt.
  • Dementsprechend sind Verfahren und Vorrichtungen, die die Genauigkeit des Bestimmens von Speicherelementwerten verbessern, erwünscht.
  • Es ist die Aufgabe der vorliegenden Erfindung, ein Verfahren, einen Speicher und einen Computer zum genaueren Bestimmen des Wertes von Speicherelementen zu schaffen.
  • Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1, einen Speicher gemäß Anspruch 11, einen Computer gemäß Anspruch 23, ein Verfahren gemäß Anspruch 32, einen Speicher gemäß Anspruch 38, ein Verfahren gemäß Anspruch 44, einen Speicher gemäß Anspruch 48 sowie einen Speicher gemäß Anspruch 52 gelöst.
  • Es werden Verfahren und Vorrichtungen zum Messen von Werten einer Mehrzahl von Speicherelementen offenbart, wobei die gemessenen Werte den digitalen Zustand eines Speicherelements anzeigen können. Es können Berechnungen an einer Mehrzahl von Übergangstermen durchgeführt werden, die den möglichen Übergängen in den Werten zwischen nahen Speicherelementen zugeordnet sind. Der digitale Zustand von Spei cherelementen kann anhand der Berechnungen bestimmt werden, die an der Mehrzahl von Übergangstermen durchgeführt werden.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 einen Speicher, der gemäß verschiedenen Ausführungsbeispielen verwendbar ist;
  • 2 ein adaptives Schwellenbeispiel gemäß verschiedenen Ausführungsbeispielen;
  • 3 ein veranschaulichendes Beispiel gemäß verschiedenen Ausführungsbeispielen;
  • 4A einen Zwei-Zustand-Trellis gemäß verschiedenen Ausführungsbeispielen;
  • 4B verschiedene Übergänge in dem Trellis aus 4A gemäß verschiedenen Ausführungsbeispielen;
  • 4C fehlerquadrierte Terme, die den Übergängen aus 4B zugeordnet sind, gemäß unterschiedlichen Ausführungsbeispielen;
  • 5A ein veranschaulichendes Beispiel gemäß unterschiedlichen Ausführungsbeispielen;
  • 5B Berechnungen für das Beispiel aus 5A gemäß unterschiedlichen Ausführungsbeispielen; und
  • 6 ein Computersystem gemäß den unterschiedlichen Ausführungsbeispielen.
  • Im Verlauf der folgenden Beschreibung und der Ansprüche werden bestimmte Begriffe verwendet, um sich auf bestimmte Systemkomponenten zu beziehen. Fachleuten auf dem Gebiet ist klar, daß sich Computerunternehmen unter Umständen mit unterschiedlichen Namen auf eine Komponente beziehen. Dieses Dokument beabsichtigt nicht, zwischen Komponenten zu unterscheiden, die sich bezüglich des Namens, nicht aber der Funktion unterscheiden. Bei der folgenden Erörterung und in den Ansprüchen sind die Begriffe „umfassen" und „aufweisen" auf eine offene Weise verwendet und sollten daher so interpretiert werden, daß sie „umfassend, aber nicht auf ... beschränkt" bedeuten.
  • Der Begriff „koppeln" oder „koppelt" soll entweder eine indirekte oder direkte elektrische Verbindung bezeichnen. Wenn ein erstes Gerät mit einem zweiten Gerät koppelt, so kann die Verbindung somit durch eine direkte elektrische Verbindung oder durch eine indirekte elektrische Verbindung über andere Geräte und Verbindungen erfolgen. Ebenso soll der Begriff „koppeln" oder „koppelt" sich auf die Situation beziehen, in der ein Magnetfeld, das von einem ersten Material ausstrahlt, in einem zweiten Material induziert wird. Zum Beispiel wenn ein stromführender Leiter u. U. ein Magnetfeld ausstrahlt, das in ein magnetisches Material gekoppelt werden kann.
  • Zusätzlich soll sich der Begriff „nah" auf Speicherelemente beziehen, die innerhalb eines Bereichs voneinander liegen, wobei gemessene Werte der Speicherelemente innerhalb dieses Bereichs miteinander korrelieren. Auf diese Weise können nahe Speicherelemente derart interpretiert werden, daß sie mehr Speicherelemente umfassen als Speicherelemente, die lediglich benachbart sind, und würden Speicherelemente in der gleichen Region umfassen.
  • Die folgende Erörterung bezieht sich auf verschiedene Ausführungsbeispiele der Erfindung. Zwar sind unter Umständen eines oder mehr dieser Ausführungsbeispiele bevorzugt, doch sollten die offenbarten Ausführungsbeispiele nicht derart interpretiert oder ansonsten verwendet werden, daß sie den Schutzbereich der Offenbarung einschließlich der Ansprüche einschränken. Hinzu kommt, daß es Fachleuten auf dem Gebiet klar ist, daß die folgende Beschreibung eine breite Anwendung hat und die Erörterung jeglicher Ausführungsbeispiele lediglich als beispielhaft zu verstehen ist und nicht andeuten soll, daß der Schutzbereich der Offenbarung, einschließlich der Ansprüche, auf diese Ausführungsbeispiele beschränkt ist. Ferner sei darauf hingewiesen, daß die vorliegende Erfindung implementiert und praktiziert werden kann, ohne alle unten beschriebenen Komponenten und Schritte zu umfassen.
  • Bezug nehmend auf 1 kann ein Speichersystem 10 ein Array 12 aus Festkörperzustandsspeicherelementen umfassen. Das Array 12 kann die Speicherelemente 15A15I umfassen. Die Speicherelemente 15A15I können Widerstände aufweisen; es sei jedoch angemerkt, daß die Festkörperzustandsspeicherelemente andere meßbare elektrische Strukturen aufweisen können, die dem Durchschnittsfachmann auf dem Gebiet vertraut sind. Zum Beispiel können die Festkörperzustandsspeicherelemente 15A15I Kondensatoren, Induktoren, Spintunnelübergänge oder andere Typen von Elementen einer integrierten Schaltung umfassen, die die Speicherung von Daten ermöglichen. Eine zugehörige Schaltungsanordnung 20 kann dazu dienen, Daten in dem Array 12 zu schreiben, und kann ebenfalls dazu dienen, Daten von dem Array 12 zu lesen.
  • Der Speicher 10 kann unter Verwendung von Halbleiterverarbeitungsprinzipien hergestellt sein. Verarbeitungsineffizienzen, die eine Ungleichmäßigkeit über einem Array (z. B. resistiver Versatz, der durch eine ungleichmäßige Verteilung einer isolierenden Schicht bewirkt wird) bewirken, können nahe Speicherelemente auf ähnliche Weise beeinflussen. Dementsprechend können die Ausführungsbeispiele der vorliegenden Erfindung Ähnlichkeiten naher Speicherelemente ausnutzen, um die gespeicherten Werte in anderen lokalen Speicherelementen zu bestimmen. Die nahen Speicherelemente, die das zu lesende Speicherelement umgeben, können in einer beliebigen Reihenfolge genutzt werden. Die hierin offenbarten Techniken können auch verwendet werden, um die Genauigkeit von Speichertransaktionen sogar in Situationen, in denen Verarbeitungsineffizienzen nicht von Belang sind, zu verbessern.
  • Adaptive Schwellenausführungsbeispiele
  • Einige Ausführungsbeispiele können adaptive Schwellentechniken einsetzen, um resistive Werte nachzuverfolgen, die jedem Speicherelement zugeordnet sind, während aufeinanderfolgende Speicherelemente in dem Speicherarray interpretiert werden. Auf diese Weise können Messungen von nahen Speicherelementen genutzt werden, um die Genauigkeit nachfolgender Messungen zu verbessern. 2 zeigt ein veranschaulichendes Beispiel eines Speicherarrays 200, das die Speicherelemente 202A202F aufweist und adaptive Schwellenausführungsbeispiele einsetzen kann. Es sei angemerkt, daß das in 2 gezeigte Beispiel lediglich veranschaulichend sein soll und nicht als den Schutzbereich einschränkend aufgefaßt werden soll.
  • Jedes Speicherelement 202A202F kann einen digitalen Wert (DV) enthalten, der z. B. durch einen Widerstand R dargestellt sein kann. Da das Array 200 unter Verwendung von Halbleiterverarbeitungstechniken hergestellt sein kann, kann der Widerstand, der den digitalen Wert eines Speicherelements darstellt, von dem Widerstand abweichen, der den gleichen digitalen Wert in einem anderen Speicherelement darstellt. Diese Abweichung ist in 2 durch die unterschiedlichen resistiven Werte, die für jedes Speicherelement gezeigt sind, dargestellt. Beim Lesen des digitalen Wertes kann eine Vergleichsschaltung 204 den resistiven Wert des Speicherelements mit einem vorbestimmten Schwellenwert, der in einem Register 206 enthalten ist, verglei chen, der ein Ausgangssignal produzieren kann, das den digitalen Wert des Speicherelements anzeigt.
  • Dementsprechend kann eine adaptive Schwellentechnik eingesetzt werden, so daß nahe resistive Messungen verwendet werden können, um die beim Bestimmen von digitalen Werten verwendete Schwelle dynamisch zu aktualisieren. Zum Beispiel kann das Register 206 eine digitale Darstellung eines resistiven Schwellenwerts enthalten, der den Durchschnitt des Widerstands, der aus den letzten vier Speicherelementen gemessen wurde, die ein binärer „1"-Wert waren, darstellt. Diese Schwelle kann dann unter Verwendung der Vergleichsschaltung 204 mit nachfolgenden Speicherelementwiderständen verglichen werden, um den digitalen Wert zu bestimmen, der durch den Widerstand für einen binären „1"-Wert dargestellt ist. Es sei angemerkt, daß die einem Speicherelement zugeordneten digitalen Werte mehr als ein einzelnes Bit umfassen können. Zum Beispiel können die Magnetspeicherelemente 15A15I in 1 mehr als zwei unterschiedliche Widerstandswerte umfassen, und daher können die Speicherelemente in der Lage sein, mehr als ein einzelnes Bit darzustellen. Tatsächlich können diese Speicherelemente N unterschiedliche resistive Werte aufweisen, und jedem der N unterschiedlichen digitalen Werte kann eine adaptive Schwelle zugewiesen sein. Wenn z. B. ein Speicherelement vier unterschiedliche Widerstände von 1 MΩ, 1,33 MΩ, 1,66 MΩ und 2 MΩ aufweist, dann können durch dieses Speicherelement vier unterschiedliche digitale Werte dargestellt werden. Ebenso kann das Register 206 entweder ein analoges oder digitales Register sein und kann anhand eines Referenzelements ausgelöst werden. Auf diese Weise kann die Schwelle, durch die nachfolgende Speicherelemente verglichen werden, mit jedem nachfolgendem Lesevorgang aktualisiert werden, was es ermöglicht, nahe Widerstandsverschiebungen aufzuheben.
  • Übergangscodierte Ausführungsbeispiele
  • Einige Ausführungsbeispiele machen sich die Korrelation resistiver Werte von nahen Speicherelementen durch Codieren der Daten, die in dem Speicher gespeichert werden sollen (sog. „Datenwort"), in eine übersetzte Version des Datenworts (sog. „Codewort") zu Nutze. Das Codewort kann anstelle des Datenworts in die Speicherelemente geschrieben werden. Das Datenwort kann Übergänge zwischen benachbarten Bits des Datenworts codieren. Da jedes Bit in dem Codewort Übergänge zwischen benachbarten Bits eines Datenworts darstellt, können nahe Speicherelemente zum Zwecke einer Decodierung verglichen werden, was es ermöglicht, resistive Variationen aufzuheben. Das Decodieren des Codeworts aus den nahen Speicherelementen kann dann ein Vergleichen naher Speicherelemente beinhalten, um zu bestimmen, ob in dem ursprünglichen Datenwort ein Übergang existierte. Dementsprechend kann durch Vergleichen naher Speicherelemente als Teil des Decodierens eine Korrelation resistiver Werte von nahen Speicherelementen ausgenutzt werden.
  • Zum Beispiel läßt sich eine binäre „1" in dem Datenwort unter Umständen in Übergänge (z. B. eine binäre „0" gefolgt von einer binären „1" oder eine binäre „1" gefolgt von einer binären „0") in dem Codewort übersetzen, und Nullen in dem Datenwort lassen sich unter Umständen in den Mangel eines Übergangs (z. B. eine binäre „0" gefolgt von einer binären „0" oder eine binäre „1" gefolgt von einer binären „1") in dem Codewort übersetzen. Ein Übergangsdecodieren kann dann eingesetzt werden, um das gespeicherte Codewort durch Vergleichen naher Speicherelemente zu decodieren. Dieses Übergangsdecodieren kann auf verschiedenste Weise erreicht werden, darunter, ohne Einschränkung, die Verwendung eines Exklusiv-ODER-(XOR)-Logikgatters, um Unterschiede in benachbarten Bits des Codeworts zu erfassen. Somit können beim Decodieren der übergangsmäßig codierten Daten Variationen zwischen Speicherelementwiderständen erklärt werden, da nahe Speicherelemente verglichen werden können (wodurch resistive Variationen aufgehoben werden), um das ursprüngliche Datenwort zu bestimmen.
  • 3 zeigt eine beispielhafte Implementierung eines übergangscodierenden/-decodierenden Prozesses. Es sei angemerkt, daß das übergangscodierende System 300 aus 3 lediglich für erläuternde Zwecke mit eingeschlossen ist und als lediglich eines von vielen möglichen übergangscodierenden Ausführungsbeispielen betrachtet werden sollte, die durch diese Offenbarung umfaßt werden. Wie gezeigt, wandelt das System 300 anhand einer Codiereinrichtung 304 ein Datenwort 302 (das zum Zweck der Veranschaulichung die Bits D0 – D3 aufweist) in ein Codewort 306 (das die Bits C0 – C4 aufweist) um. Das Codewort 306 wird dann in einem Speicher 308 gespeichert. Bei diesem Beispiel ist das Datenwort 0101. Das Datenwort 302 kann durch die Codiereinrichtung 304 in ein Codewort 306 codiert werden. Zum Zweck einer Codierung kann das Bit C0 des Codewortes vordefiniert sein – z. B. C0 = 0 wie gezeigt – und als Bezugspunkt für nachfolgend codierte Bits verwendet werden. Dementsprechend kann das Bit D0 in dem Datenwort 302 mit dem Bit C0 des Codeworts 306 verglichen werden. Wenn die Bits die gleichen sind (was bei diesem Beispiel der Fall ist), dann kann dem Bit C1 ein binärer „0"-Wert zugewiesen werden; wenn die Bits unterschiedlich sind, dann kann dem Bit C1 ein binärer „1"-Wert zugewiesen werden. Auf ähnliche Weise kann das Bit C2 als binärer „1"-Wert bestimmt werden, da die Bits C1 – D1 sich im Wert unterscheiden. Nachfolgende Bits des Codeworts 306 (d. h. die Bits C3 – C4) können wie gezeigt auf ähnliche Weise codiert werden.
  • Das Codewort 306 stellt die Werte dar, die in den nahen Speicherelementen 309 des Speichers 308 gespeichert sind. Um das in den nahen Speicherelementen 309 gespeicherte Codewort 306 zu decodieren, kann ein Vergleich der Bits C0 – C9, die aus den nahen Speicherelementen 309 wiedergewonnen wurden, notwendig sein. Da unter Umständen eine Korrelation zwischen den resistiven Werten der nahen Speicher elemente 309 besteht, kann es ein Vergleichen derselben miteinander während eines Decodierens ermöglichen, daß resistive Variationen aufgehoben werden. 3 zeigt ein mögliches Verfahren zum Vergleichen von Werten, die aus nahen den Speicherelementen 309 wiedergewonnen wurden, anhand der XOR-Logik 310 mit einer wie in Tabelle 1 gezeigten Wahrheitstabelle.
  • Figure 00100001
    Tabelle 1
  • Unter Verwendung der XOR-Logik 310 kann für das Bit D0 ein binärer „0"-Wert bestimmt werden, da die Bits C0 und C1 die gleichen binären Werte sind. Auf ähnliche Weise kann das Bit D1 als binärer „1"-Wert bestimmt werden, da C1 und C2 nicht die gleichen binären Werte sind. Somit können durch Einsetzen eines Übergangscodierens/-decodierens der Daten nahe Speicherelemente (die eine Korrelation zwischen Widerstandswerten aufweisen können) verglichen werden, um resistive Variationen aufzuheben.
  • Voraussagende Ausführungsbeispiele
  • Wie im folgenden beschrieben wird, nutzen einige Ausführungsbeispiele beim Bestimmen der digitalen Zustände von Speicherelementen eine Korrelation aus, die zwischen resistiven Werten naher Speicherelemente existieren kann. Der digitale Zustand eines bestimmten Speicherelements kann anhand von Berechnungen, die die gemessenen Widerstände von nahen Speicherelementen zusammen mit dem gemessenen Widerstand des bestimmten Speicherelements einschließen, vorausgesagt werden. Unterschiede zwischen Widerständen des bestimmten Speicherelements und der nahen Speicherelemente können Fehlerterme darstellen, die in einem voraussagendem Algorithmus verwendet werden können, der den tatsächlichen digitalen Wert des bestimmten Speicherelements voraussagt. Der voraussagende Algorithmus kann die Fehlerterme verwenden, um die Wahrscheinlichkeit der verschiedenen digitalen Zustände, die in den bestimmten Speicherelementen dargestellt sind, anzuzeigen, wobei der tatsächliche digitale Wert dem digitalen Zustand mit dem höchsten wahrscheinlichen Wert zugeordnet sein kann. Dementsprechend können die den verschiedenen Zuständen zugeordneten Fehlerterme minimiert werden, um einen digitalen Zustand vorauszusagen, der wahrscheinlich in dem bestimmten Speicherelement existiert.
  • Voraussagende Schätzungsalgorithmen können die Verwendung eines Viterbi-Decodierungsalgorithmus umfassen, um Korrelationsinformationen zwischen nahen Speicherelementen bereitzustellen. Es sei angemerkt, daß zwar ein Viterbi-Algorithmus offenbart wird, doch zahlreiche andere voraussagende Schätzungsalgorithmen verwendet werden können. Ebenso soll die Implementierung des hierin erörterten Viterbi-Algorithmus der Veranschaulichung dienen und kann auf der Basis des Systems, in dem derselbe implementiert wird, variieren.
  • 4A zeigt einen Zwei-Zustand-Trellis 400, der die Verwendung eines Viterbi-Algorithmus beim Decodieren eines Speicherarrays darstellt. Die Speicherelemente können aufeinanderfolgend von E1 bis EN gelesen werden, wobei der Widerstand an jedem Speicherort als ein hoher Widerstand oder niedriger Widerstand geschätzt werden kann. Ein hoher Widerstand kann einen binären „1"-Wert darstellen, wohingegen ein niedriger Widerstand einen binären „0"-Wert darstellen kann oder umgekehrt. Zum Zweck dieser Offenbarung werden Speicherelemente erörtert, die zwei mögliche Werte darstellen, doch können Speicherelemente allgemein eine beliebige Mehrzahl von Bits – d. h. zwei oder mehr – darstellen. Zum Beispiel kann das Speicherelement E1 zwei Bits mit vier möglichen Widerstandswerten (z. B. entsprechend zu 00, 01, 10, 11) darstellen, und so wäre ein Vier-Zustand-Trellis in dieser Situation nützlich.
  • 4B stellt die Speicherelemente EN- 1 und EN des Trellis 400 aus 4A und die möglichen Übergänge, die bei einem Übergehen von EN-1 bis EN zugeordnet sind, dar. Wenn das Speicherelement EN-1 als ein hoher Widerstandswert geschätzt wird, kann das Speicherelement EN-1 zwei mögliche Übergänge zu EN aufweisen. Das heißt, daß EN entweder als ein hoher Widerstand oder niedriger Widerstand geschätzt werden kann, so daß beim Gehen von EN-1 zu EN ein Hoch-zu-Hoch-(HH)-Übergang oder ein Hoch-zu-Niedrig-(HL)-Übergang vorliegen kann, der durch die gestrichelten Linien in 4B als HH bzw. HL bezeichnet ist. Wenn das Speicherelement EN-1 als ein niedriger Widerstand geschätzt wird, kann das Speicherelement EN-1 alternativ auch zwei Übergänge aufweisen, die zu EN gehen. Auch hier kann EN entweder als ein hoher Widerstand oder als niedriger Widerstand geschätzt werden, so daß beim Gehen von EN-1 zu EN ein Niedrig-zu-Hoch-(LH)-Übergang oder ein Niedrig-zu-Niedrig-(LL)-Übergang vorliegen kann, der durch die gestrichelten Linien in 4B als LH bzw. LL bezeichnet ist.
  • Beim Übergehen zwischen Speicherelementen kann für jeden Übergang ein erwarteter Wert μx berechnet werden (wobei x HH, HL, LH oder LL ist). Ein Fehlerterm ∈x stellt die Differenz zwischen der resistiven Messung des Speicherelements und dem erwarteten Wert μx dar. Es können für jeden möglichen Übergang Fehlerterme entwickelt werden. Durch Quadrieren des Fehlerterms und Zuordnen desselben zu jedem möglichen Übergang kann eine kumulative Historie von fehlerquadrierten Termen entwickelt werden. Durch Auswählen des Wegs durch den Trellis mit dem minimalen gesamten fehlerquadrierten können voraussagende Werte bestimmt werden, die mit einer Widerstandsmessung korrelieren.
  • Hoch-zu-Hoch (HH). Der erwartete Wert μHH ist unten in Gleichung (1) als der Durchschnitt des für das Speicherelement EN gemessenen Wertes und des für EN- 1 gemessenen Wertes gegeben – wobei die gemessenen Werte Widerstände, Induktivitäten, Kapazitäten darstellen können:
    Figure 00130001
  • Der Fehlerterm ist der gemessene Wert des Widerstands an einem Knoten N minus dem erwarteten Wert μHH, wie in Gleichung (2) gezeigt ist.
  • Figure 00130002
  • Der fehlerquadrierte Term ist in Gleichung (3) gezeigt.
  • Figure 00130003
  • Niedrig-zu-Niedrig. Der fehlerquadrierte Term für den Fall LL kann als symmetrisch bezüglich des Falls HH gezeigt werden.
  • Figure 00130004
  • Niedrig-zu-Hoch. Eine Näherung für den erwarteten Wert μLH für einen LH-Übergang kann in Gleichung (5) als der Durchschnittswert zwischen dem Widerstand des Speicherelements N und dem Widerstand des Speicherelements N-1 gegeben sein, der durch eine globale Variation Δ modifiziert ist. Die globale Variation kann wie in Gleichung (6) gezeigt berechnet werden.
  • Figure 00130005
  • Figure 00140001
  • Es sei bemerkt, daß die Terme EH und EL in Gleichung (6) globale Durchschnitte der hohen bzw. niedrigen Widerstände darstellen. Der LH-Fehlerterm kann der Wert des Widerstands bei dem Knoten N minus dem erwarteten Wert μLH sein, wie in Gleichung (7) gezeigt ist.
  • Figure 00140002
  • Der fehlerquadrierte Term für den LH-Übergang ist in Gleichung (8) gezeigt.
  • Figure 00140003
  • Hoch-zu-Niedrig. Auf ähnliche Weise kann der Fall des LH-Übergangs verwendet werden, um den fehlerquadrierten Term für den Fall Hoch-zu-Niedrig (HL) zu entwickeln, wie in Gleichung (9) gezeigt ist.
  • Figure 00140004
  • 4C stellt fehlerquadrierte Terme dar, die dem in 4B gezeigten Zwei-Zustand-Trellis zugeordnet sind. Der maximale wahrscheinliche Weg gemäß dem Viterbi-Decodierungsalgorithmus ist der Weg durch den Trellis, der die Gesamtsumme der jedem Wegübergang zugeordneten fehlerquadrierten Terme minimiert. Somit können beim Lesen jedes Speicherelements vorhergehende Bitzustandsinformationen verwendet werden, um den nächsten möglichen Bitzustand bei dem nächsten Speicherelementlesevorgang vorauszusagen. In der Regel weisen Speicherelemente, die gelesen werden, ein Speicherwort auf und sind meistens einander sequentiell nahe – z. B. kann ein Speicherlesevorgang ein Lesen von Speicherelementen einer einzelnen Reihe in dem Array mit sich bringen. Jedoch erfordert das Lesen der Speicherelemente gemäß einigen der Ausführungsbeispiele nicht, daß die Speicherelemente Teil der gleichen Reihe oder Säule in dem Speicher sind, um die erwünschte Wirkung zu erreichen. Zum Beispiel können beim Bestimmen eines Werts für das Speicherelement 15E in 1 die nahen Speicherelemente 15A15D und 15F15I verwendet werden, um einen maximalen Wahrscheinlichkeitswert zu liefern. Es folgt nun ein Beispiel, um die Anwendung eines Viterbi-Algorithmus auf einen Zwei-Zustand-Trellis zu zeigen, wobei darauf hingewiesen sei, daß dieses Beispiel lediglich der Veranschaulichung dient und nicht als den Schutzbereich der Ansprüche in irgendeiner Weise einschränkend aufgefaßt werden sollte.
  • Veranschaulichendes Beispiel. Ausschließlich als nichteinschränkendes Beispiel zeigt 5A einen Zwei-Zustand-Trellis 500 mit Speicherelementen, die zwei mögliche Bitzustände aufweisen, d. h. einen binären „1"-Wert oder einen binären „0"-Wert. Die Speicherelemente können Magnetspeicherelemente aufweisen, derart daß der gemessene Widerstand jedes Elements in einem binären „1"-Bitzustand idealerweise 2 Ω beträgt und der gemessene Widerstand jedes Elements in einem binären „0"-Bitzustand idealerweise 1 Ω beträgt. Aufgrund von Ineffizienzen können die tatsächlichen Werte der Widerstände willkürlich von den idealen Werten variieren. So sei z. B. angenommen, daß vier Speicherelemente 1 – 4 vorliegen, die binäre Werte von 1, 0, 0 bzw. 0 aufweisen, und gemessene Widerstände, die die binären Werte darstellen, 1, 7, 0, 9, 1, 2 bzw. 1, 4 Ω sind.
  • Durch Anwenden der Gleichungen (3), (4), (8) und (9) können die fehlerquadrierten Terme wie in 5B gezeigt, berechnet werden. Da es vier Speicherelemente gibt, gibt es 24 mögliche Wege durch den Trellis 500. Während der Berechnungen können unter Verwendung der fehlerquadrierten Terme Herleitungen erstellt werden, um die mögliche Anzahl von in Betrachtung zu ziehenden Wegen zu reduzieren. Die Reduzierung aller möglichen Wege auf einen einzelnen Weg wird als „Schließen" bezeichnet. Wenn die fehlerquadrierten Terme für jeden möglichen Weg berechnet werden, wäre bei dem in 5B gezeigten Beispiel der Weg mit der niedrigsten Summe von fehlerquadrierten Termen (angezeigt durch die durchgehenden Linien) der Weg, der die Speicherelemente 1 – 4 als binäre Werte von 1, 0, 0 bzw. 0 aufweisend schätzt.
  • Initialisierungstechniken
  • In manchen Situationen können die Datenmuster, die von aufeinanderfolgenden Speicherelementen gelesen werden, den gleichen digitalen Wert enthalten (z. B. 1111....). Folglich erreichen einige voraussagende Schätzungsausführungsbeispiele (z. B. Viterbi) ein Schließen unter Umständen erst am Ende des Speicherworts. Da unter Umständen 2N (wobei N die Anzahl von Bits in dem Datenwort ist) mögliche Wege existieren, die überprüft werden müssen, um den Weg zu bestimmen, der die Summe von fehlerquadrierten Termen minimiert, kann es erwünscht sein, das Schließen früher hervorzurufen. Nachteilige Wirkungen eines Schließens, das erst am Ende der zu schätzenden Daten auftritt, umfassen Erhöhungen der Verarbeitungsleistung und der Zeit, die erforderlich ist, um den Inhalt des Speichers zu bestimmen. Deshalb erzwingen einige Ausführungsbeispiele der vorliegenden Erfindung unter Umständen das Schließen unter Verwendung von Initialisierungstechniken und/oder Codiertechniken.
  • Unter Bezugnahme auf das in 5B gezeigte Beispiel und seiner fehlerquadrierten Terme gibt es, wenn bekannt ist, daß der Speicherort 2 in einem binären „0"-Bitzustand ist (z. B. durch Initialisieren seines Wertes auf eine binäre „0"), zwei mögliche Wege von dem Speicherort 1 zu dem Speicherort 2 und daher zwei mögliche Werte für den Spei cherort 1. Ein möglicher Übergang beim Gehen von dem Speicherort 1 zu dem Speicherort 2 ist ein Hoch-zu-Niedrig-(HL)-Übergang oder der Speicherort 1, der auf einen binären „1"-Bitzustand eingestellt ist. Ein anderer möglicher Übergang beim Gehen von dem Speicherort 1 zu dem Speicherort 2 ist ein Niedrig-zu-Niedrig-(LL)-Übergang, oder der Speicherort 1, der auf einen binären „0"-Bitzustand eingestellt ist. Da der Fehlerterm, der dem LL-Übergang zugeordnet ist (d. h. Speicherort 1 in einem binären „0"-Bitzustand), die Gesamtsumme der Fehlerterme erhöhen würde, und der Fehlerterm, der dem HL-Übergang zugeordnet ist (d. h. Speicherort 1 in einem binären „1"-Bitzustand), die Summe der Fehlerterme senken würde, wäre der vorausgesagte Wert für den Speicherort 1 1, wie das bei diesem Beispiel der Fall ist.
  • Bei einigen Ausführungsbeispielen kann ein zusätzliches Speicherelement enthalten sein, so daß dasselbe initialisiert werden kann, um sequentielle Speicherelemente mit dem gleichen Wert zu verhindern. Der tatsächliche Wert des zusätzlichen Speicherelements kann auf vielerlei Weise eingestellt und interpretiert werden. Ein diesbezügliches Verfahren ist das Durchführen einer OR-Funktion bei den Speicherelementen und Speichern des Ergebnisses der OR-Funktion in dem zusätzlichen Speicherelement. Dementsprechend kann das zusätzliche Speicherelement auf einen binären „0"-Bitzustand eingestellt werden, wenn die Speicherelemente alle binären „0"-Werte enthalten, oder auf einen binären „1"-Bitzustand, wenn die Speicherelemente alle binären „1"-Werte enthalten. Für den Fall, daß voraussagende Schätzungen zwei gleichermaßen mögliche Wege bestimmen (was der Fall sein kann, wenn die Speicherelemente die gleichen Werte enthalten), kann das zusätzliche Speicherelement dann geprüft werden, um den Wert der Speicherelemente zu bestimmen. Das heißt, daß die Speicherelemente alle Einsen enthalten können, wenn der Wert des zusätzlichen Speicherelements durch die OR-Funktion auf eine binäre „1" eingestellt wird, oder die Speicherelemente alle Nullen enthalten können, wenn der Wert des zusätzlichen Speicherelements durch die OR-Funktion auf eine binäre „0" eingestellt wird.
  • Bei anderen Ausführungsbeispielen kann ein zusätzliches Speicherelement verwendet sein, um den voraussagenden Schätzungsalgorithmus zu initialisieren. Zum Beispiel kann mit einem vorbestimmten Wert in das zusätzliche Speicherelement geschrieben werden. Der Widerstand, der den vorbestimmten Wert darstellt, kann gemessen und verwendet werden, um die resistiven Werte anderer naher Speicherelemente zu messen.
  • Bei anderen Ausführungsbeispielen wiederum können die Daten codiert werden, bevor dieselben in Speicherelemente geschrieben werden, um ein Decodieren gespeicherter Daten zu ermöglichen. Es existieren zahlreiche Codierschemata, die verwendet werden können. Ein Beispiel ist ein „8/9-Codier"-Schema, bei dem ein 8-Bit-Datenwort als 9-Bit-Codewort codiert wird. Von den 512 möglichen 9-Bit-Codewörtern werden nur 256 benötigt, um ein 8-Bit-Datenwort zu codieren. Dies ermöglicht, daß die Codewörter so ausgewählt werden, um eine erwünschte Eigenschaft aufzuweisen, wie z. B. Einsetzen zumindest eines Übergangs zwischen nahen Bits.
  • Es sei angemerkt, daß es kein erforderliches Verhältnis zwischen der Anzahl zusätzlicher Speicherelemente, die für eine Initialisierung verwendet werden, und der Anzahl von Speicherelementen, die zum Speichern von Daten verwendet werden, gibt. Dementsprechend können einige Ausführungsbeispiele eine höhere Leistung erreichen, wenn zumindest ein zusätzliches Speicherelement für Initialisierungszwecke verwendet wird, wenn jedes Datenwort gespeichert wird. Ebenso kann der Ort des zusätzlichen Speicherelements innerhalb des Arrays aus Speicherelementen dynamisch sein und kann gewählt werden, um nähe-verbesserte Lesealgorithmen weiter zu optimieren. Wenn z. B. das Speicherarray einen resistiven Versatz mit einem bekannten Gefälle enthält (z. B. von einem Herstellungsproblem), dann kann das zusätzliche Speicherelement dynamisch innerhalb des Speicherarrays positioniert sein, um das Ansprechen des speicherlesenden Algorithmus auf bekannte Gefälle zu maximieren, wohingegen die Gesamtanzahl der verwendeten zusätzlichen Speicherelemente minimiert wird.
  • Einige der Ausführungsbeispiele beseitigen unter Umständen die Praxis des „zerstörenden Lesens". Das zerstörende Lesen bezieht sich auf die Praxis des a) Pufferns des Widerstands, der dem in einem Speicherelement gespeicherten Wert zugeordnet ist; b) Speicherns eines vorbestimmten Werts in dem Speicherelement – was den momentanen Wert zerstört; und c) Messens des Widerstands des Speicherelements, der dem vorbestimmten Wert zugeordnet ist. Wenn die Werte, die den Werten des Speicherelements zugeordnet sind, nicht von vornherein bekannt sind, kann es notwendig sein, einen zerstörenden Lesevorgang durchzuführen, um die resistiven Werte zu bestimmen. Bei einigen Ausführungsbeispielen können durch Verwendung der nahen Speicherelemente als Referenz voraussagende Schätzungen für die Werte ohne ein zerstörendes Lesen durchgeführt werden.
  • Es sei angemerkt, daß die hierin offenbarten Ausführungsbeispiele (und ihre Äquivalente) zwar in einem Speicher eingesetzt werden können, dieser Speicher aber ferner in einem beliebigen elektronischen Gerät eingesetzt werden kann. Insbesondere kann dieser Speicher in einem Computer enthalten sein, der einen Prozessor aufweist, der mit dem Speicher gekoppelt sein kann. Ebenso können die in den 2, 3 und/oder 5 gezeigten Ausführungsbeispiele zum Interpretieren der digitalen Werte von Speicherelementen gleichzeitig in einem Speicher verwendet werden. Zum Beispiel können einige Abschnitte des Speichers von der Nutzung der voraussagenden Verfahren aus 5 profitieren, wohingegen andere Abschnitte des gleichen Speichers von der Nutzung der codierenden Verfahren aus 3 profitieren können.
  • Alternativ kann ein Verfahren verwendet werden, um die Gültigkeit anderer Verfahren zu verifizieren, z. B. können die voraussagenden Verfahren aus 5 verwendet werden, um die ordnungsgemäße Operation der in 2 gezeigten adaptiven Schwellenausführungsbeispiele zu verifizieren.
  • Der hierin offenbarte Speicher und die Verfahren zum Steuern eines Stroms in Speicherschreibleitungen können in einem Computersystem verwendet werden. 6 stellt ein beispielhaftes Computersystem 100 dar. Das Computersystem aus 6 umfaßt eine CPU 102, die über einen CPU-Bus mit einem Brückenschaltwerk 106 elektrisch gekoppelt sein kann. Das Brückenschaltwerk 106 wird manchmal als „North-Bridge" bezeichnet. Die North-Bridge 106 koppelt durch einen Speicherbus ebenfalls elektrisch mit einem Hauptspeicherarray 104 und kann ferner über einen Advanced-Graphics-Processor-(AGP)-Bus mit einer Graphiksteuerung 108 elektrisch koppeln. Es sei bemerkt, daß das Hauptspeicherarray 104 ein Magnetspeicherarray sein kann, das die offenbarten Verfahren zum Steuern des Schreibleitungsstroms nutzt. Die North-Bridge 106 koppelt die CPU 102, den Speicher 104 und die Graphiksteuerung 108 mit den anderen Peripheriegeräten in dem System z. B. durch einen primären Erweiterungsbus (BUS A), wie z. B. einen PCI-Bus oder einen EISA-Bus. Es können sich verschiedene Komponenten, die unter Verwendung des Busprotokolls von BUS A wirksam sind, wie z. B. ein Audiogerät 114, ein IEEE-1394-Schnittstellengerät 116 und eine Netzwerkschnittstellenkarte (NIC) 118, auf diesem Bus befinden. Diese Komponenten können auf die Hauptplatine integriert sein, wie durch 6 vorgeschlagen, oder sie können in Erweiterungssteckplätze 110 eingesteckt sein, die mit dem BUS A verbunden sind.
  • Wenn andere sekundäre Erweiterungsbusse in dem Computersystem vorgesehen sind, kann ein anderes Brückenschaltwerk 112 verwendet werden, um den primären Erweiterungsbus (BUS A) mit dem zweiten Erweiterungsbus (BUS B) elektronisch zu koppeln. Dieses Brückenschaltwerk 112 wird manchmal als „South-Bridge" bezeichnet. Es können sich verschiedene Komponenten, die unter Verwendung des Busprotokolls von BUS B wirksam sind, wie z. B. eine Festplattensteuerung 122, ein System-ROM 124 und eine Super-I/O-Steuerung 126, auf diesem Bus befinden. Die Steckplätze 120 können ebenfalls für Einsteckkomponenten vorgesehen sein, die das Protokoll des BUS B erfüllen.
  • Die obige Erörterung dient zur Veranschaulichung der Prinzipien und verschiedenen Ausführungsbeispiele der vorliegenden Erfindung. Fachleuten auf dem Gebiet werden zahlreiche Variationen und Modifizierungen klar, sobald die obige Offenbarung vollständig erkannt wurde. Dementsprechend können Aspekte der Ausführungsbeispiele in verschiedenen Formen miteinander kombiniert werden, um erwünschte Ergebnisse zu erreichen. Zum Beispiel können die adaptiven Schwellentechniken in dem Viterbi-Speicherdecodierungsalgorithmus eingesetzt werden, um einen adaptiven Schwellenwert zum Lesen der Speicherelemente zu produzieren. Außerdem können die gezeigten Speicherelemente auf eine beliebige, nicht auf Einzel-Bit-Memorys beschränkte Weise ausgerichtet sein, dadurch daß Mehr-Bit-Speicherelemente vorliegen können, die in einer Nicht-Array-Weise angeordnet sind. Es ist beabsichtigt, daß die folgenden Ansprüche derart interpretiert werden, daß dieselben alle derartigen Variationen und Modifizierungen umfassen.

Claims (52)

  1. Verfahren, das folgende Schritte aufweist: (a) Messen von Werten, die einer Mehrzahl von Speicherelementen (15A15G) zugeordnet sind, wobei die Werte einen digitalen Zustand anzeigen; (b) Berechnen einer Mehrzahl von Termen, die Übergängen in den Werten zwischen Speicherelementen (15A15G) zugeordnet sind; und (c) Bestimmen des digitalen Zustands zumindest eines Speicherelements (15A15G) unter Verwendung der Berechnungen aus (b).
  2. Verfahren gemäß Anspruch 1, bei dem der Schritt (b) ein Berechnen der Mehrzahl von Termen zwischen nahen Speicherelementen aufweist.
  3. Verfahren gemäß Anspruch 2, bei dem die nahen Speicherelemente beobachtete Werte aufweisen, die aufgrund von Verarbeitungsineffizienzen variieren.
  4. Verfahren gemäß Anspruch 2 oder 3, bei dem die Berechnungen ein Berechnen einer Summe von Termen, die Übergängen zugeordnet sind, aufweisen.
  5. Verfahren gemäß Anspruch 4, bei dem der Schritt (c) ein Bestimmen der digitalen Zustände eines Speicherworts durch Auswählen eines Ergebnisses, das die Summe der Übergangsterme minimiert, aufweist.
  6. Verfahren gemäß einem der Ansprüche 2 bis 5, das ferner ein Initialisieren der Mehrzahl von Speicherelementen (15A15G), um die Länge sich wiederholender digitaler Zustände zu begrenzen, aufweist.
  7. Verfahren gemäß Anspruch 6, bei dem die Initialisierung ein Zuordnen von zumindest einem zusätzlichen Speicherelement umfaßt.
  8. Verfahren gemäß Anspruch 6 oder 7, bei dem die Initialisierung ein Codieren der Mehrzahl von Speicherelementen (15A15G) umfaßt.
  9. Verfahren gemäß einem der Ansprüche 1 bis 8, bei dem die Speicherelemente (15A15G) Magnetspeicherelemente aufweisen.
  10. Verfahren gemäß Anspruch 9, bei dem die bei (a) gemessenen Werte resistive Werte darstellen.
  11. Speicher, der folgende Merkmale aufweist: eine Mehrzahl von Speicherelementen (15A15G); eine Schaltungsanordnung, die mit der Mehrzahl von Speicherelementen (15A15G) gekoppelt ist; und bei dem die Schaltungsanordnung Werte einer Mehrzahl von Speicherelementen (15A15G), die digitalen Zuständen entsprechen, beobachtet und die beobachteten Werte nutzt, um den digitalen Zustand von zumindest einem Speicherelement zu bestimmen.
  12. Speicher gemäß Anspruch 11, bei dem die beobachteten Werte verwendet werden, um eine Mehrzahl von Übergangstermen zu berechnen, die möglichen Übergängen zwischen nahen Speicherelementen zugeordnet sind.
  13. Speicher gemäß Anspruch 12, bei dem die nahen Speicherelemente beobachtete Werte aufweisen, die aufgrund von Verarbeitungsineffizienzen variieren.
  14. Speicher gemäß einem der Ansprüche 11 bis 13, bei dem die Schaltungsanordnung ein Vergleichsgerät (204) und ein Register (206) umfaßt.
  15. Speicher gemäß Anspruch 14, bei dem das Vergleichsgerät (204) den Inhalt des Registers (206) vergleicht, um den digitalen Zustand eines gewünschten Speicherelements zu bestimmen.
  16. Speicher gemäß Anspruch 15, bei dem der Inhalt des Registers (206) eine adaptive Schwelle darstellt, die modifiziert ist, vorherige Bestimmungen von vorherigen Speicherelementen widerzuspiegeln.
  17. Speicher gemäß einem der Ansprüche 12 bis 16, bei dem die Mehrzahl von Übergangstermen verwendet wird, um den digitalen Zustand eines Speicherworts zu bestimmen.
  18. Speicher gemäß Anspruch 17, bei dem die Mehrzahl von Speicherelementen (15A15G) initialisiert wird, um die Länge sich wiederholender digitaler Zustände zu begrenzen.
  19. Speicher gemäß Anspruch 18, bei dem die Initialisierung ein Zuordnen von zumindest einem zusätzlichen Speicherelement umfaßt.
  20. Speicher gemäß Anspruch 18 oder 19, bei dem die Initialisierung ein Codieren der Daten unter Verwendung eines 8/9-Codes umfaßt, wobei ein 8-Bit-Datenwort als ein 9-Bit-Codewort codiert wird.
  21. Speicher gemäß einem der Ansprüche 11 bis 20, bei dem die Speicherelemente (15A15G) Magnetspeicherelemente aufweisen.
  22. Speicher gemäß Anspruch 21, bei dem die beobachteten Werte resistive Werte darstellen.
  23. Computer, der folgende Merkmale aufweist: einen Prozessor; einen mit dem Prozessor gekoppelten Speicher, wobei der Speicher ferner eine Mehrzahl von Speicherelementen (15A15G) aufweist; eine Schaltungsanordnung, die mit der Mehrzahl von Speicherelementen (15A15G) gekoppelt ist; und bei dem die Schaltungsanordnung Werte einer Mehrzahl von Speicherelementen (15A15G), die digitalen Zuständen entsprechen, beobachtet und die Werte naher Speicherelemente nutzt, um den digitalen Zustand von zumindest einem Speicherelement vorauszusagen.
  24. Computer gemäß Anspruch 23, bei dem die Schaltungsanordnung ein Vergleichsgerät (204) und ein Register (206) umfaßt.
  25. Computer gemäß Anspruch 24, bei dem das Vergleichsgerät (204) den Inhalt des Registers (206) vergleicht, um den digitalen Zustand eines gewünschten Speicherelements zu bestimmen.
  26. Computer gemäß Anspruch 25, bei dem der Inhalt des Registers (206) eine adaptive Schwelle darstellt, die modifiziert ist, vorhergehende Bestimmungen von vorhergehenden Speicherelementen widerzuspiegeln.
  27. Computer gemäß einem der Ansprüche 23 bis 26, bei dem die Werte verwendet werden, um eine Mehrzahl von Übergangstermen zu berechnen, die den möglichen Übergängen zwischen nahen Speicherelementen zugeordnet sind.
  28. Computer gemäß Anspruch 27, bei dem die nahen Speicherelemente beobachtete Werte aufweisen, die aufgrund von Verarbeitungsineffizienzen variieren.
  29. Computer gemäß Anspruch 27 oder 28, bei dem die Mehrzahl von Übergangstermen verwendet wird, um den digitalen Zustand eines Speicherworts zu bestimmen.
  30. Computer gemäß einem der Ansprüche 23 bis 29, bei dem die Speicherelemente (15A15G) Magnetspeicherelemente aufweisen.
  31. Computer gemäß Anspruch 30, bei dem die beobachteten Werte resistive Werte darstellen.
  32. Verfahren, das folgende Schritte aufweist: (a) Vergleichen von Werten einer Mehrzahl von Speicherelementen (15A15G) mit einer adaptiven Schwelle, wobei die Werte einen digitalen Zustand anzeigen; (b) Bestimmen des digitalen Zustands, der durch den Vergleich von (a) angezeigt wird; und (c) Aktualisieren der adaptiven Schwelle, um den verglichenen Wert und den digitalen Zustand desselben einzuschließen.
  33. Verfahren gemäß Anspruch 32, bei dem die adaptive Schwelle einen Durchschnitt der Mehrzahl von Werten für nahe Speicherelemente darstellt.
  34. Verfahren gemäß Anspruch 33, bei dem die Speicherelemente (15A15G) Magnetspeicherelemente aufweisen.
  35. Verfahren gemäß Anspruch 34, bei dem die bei (a) verglichenen Werte resistive Werte darstellen.
  36. Speicher gemäß Anspruch 34 oder 35, bei dem die nahen Speicherelemente Widerstände aufweisen, die aufgrund von Verarbeitungsineffizienzen variieren.
  37. Verfahren gemäß Anspruch 35 oder 36, bei dem die adaptive Schwelle unter Verwendung einer resistiven Referenz initialisiert wird.
  38. Speicher, der folgende Merkmale aufweist: eine Mehrzahl von Speicherelementen (15A15G); eine Vergleichsschaltungsanordnung (204), die mit der Mehrzahl von Speicherelementen (15A15G) gekoppelt ist; ein Register (206), das mit der Vergleichsschaltungsanordnung (204) gekoppelt ist; und bei dem die Vergleichsschaltungsanordnung (204) Werte der Mehrzahl von Speicherelementen (15A15G) mit einer adaptiven Schwelle, die in dem Register (206) enthalten ist, vergleicht, einen durch den Vergleich angezeigten digitalen Zustand bestimmt und die adaptive Schwelle, die in dem Register (206) enthalten ist, aktualisiert, um die Werte für den angezeigten digitalen Zustand einzuschließen.
  39. Speicher gemäß Anspruch 38, bei dem die adaptive Schwelle einen Durchschnitt der Mehrzahl von Werten für nahe Speicherelemente darstellt.
  40. Speicher gemäß Anspruch 39, bei dem die nahen Speicherelemente beobachtete Werte aufweisen, die aufgrund von Verarbeitungsineffizienzen variieren.
  41. Speicher gemäß Anspruch 39 oder 40, bei dem die Mehrzahl von Speicherelementen (15A15G) Magnetspeicherelemente aufweisen.
  42. Speicher gemäß Anspruch 41, bei dem die verglichenen Werte resistive Werte darstellen.
  43. Speicher gemäß Anspruch 42, bei dem die adaptive Schwelle unter Verwendung von zumindest einer resistiven Referenz initialisiert wird.
  44. Verfahren, das folgende Schritte aufweist: Codieren von Daten in eine Mehrzahl von nahen Speicherelementen, derart, daß nahe Speicherelemente verglichen werden, um die Daten zu decodieren; und Decodieren der Daten durch Vergleichen naher Speicherelemente.
  45. Verfahren gemäß Anspruch 44, bei dem die Speicherelemente (15A15G) Magnetspeicherelemente aufweisen.
  46. Verfahren gemäß Anspruch 45, bei dem die Speicherelemente resistive Werte darstellen.
  47. Speicher gemäß Anspruch 46, bei dem die nahen Speicherelemente Widerstände aufweisen, die aufgrund von Verarbeitungsineffizienzen variieren.
  48. Speicher, der folgende Merkmale aufweist: eine Mehrzahl von Speicherelementen (15A15G); eine Schaltungsanordnung, die mit der Mehrzahl von Speicherelementen (15A15G) gekoppelt ist; bei dem die Schaltungsanordnung übergangscodierte Daten in eine Mehrzahl von nahen Speicherelementen schreibt und übergangscodierte Daten durch Vergleichen der nahen Speicherelemente liest.
  49. Speicher gemäß Anspruch 48, bei dem die Mehrzahl von Speicherelementen (15A15G) Magnetspeicherelemente. aufweist.
  50. Speicher gemäß Anspruch 49, bei dem die verglichenen Werte resistive Werte darstellen.
  51. Speicher gemäß Anspruch 50, bei dem die nahen Speicherelemente Widerstände aufweisen, die aufgrund von Verarbeitungsineffizienzen variieren.
  52. Speicher, der folgende Merkmale aufweist: eine Einrichtung zum Beobachten von Werten einer Mehrzahl von Speicherelementen (15A15G); und eine Einrichtung zum Bestimmen des digitalen Zustands von zumindest einem Speicher unter Verwendung von gemessenen Werten von nahen Speicherelementen.
DE102004008240A 2003-06-27 2004-02-19 Verfahren und Vorrichtungen zum Bestimmen des Zustands eines Speicherelements Withdrawn DE102004008240A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/607,624 US7467264B2 (en) 2003-06-27 2003-06-27 Methods and apparatuses for determining the state of a memory element
US10/607624 2003-06-27

Publications (1)

Publication Number Publication Date
DE102004008240A1 true DE102004008240A1 (de) 2005-01-27

Family

ID=33540318

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004008240A Withdrawn DE102004008240A1 (de) 2003-06-27 2004-02-19 Verfahren und Vorrichtungen zum Bestimmen des Zustands eines Speicherelements

Country Status (2)

Country Link
US (1) US7467264B2 (de)
DE (1) DE102004008240A1 (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007029225A1 (en) * 2005-09-06 2007-03-15 Powerdsine, Ltd. Method for detecting parameters of a remote device
US8051358B2 (en) 2007-07-06 2011-11-01 Micron Technology, Inc. Error recovery storage along a nand-flash string
US8065583B2 (en) 2007-07-06 2011-11-22 Micron Technology, Inc. Data storage with an outer block code and a stream-based inner code
US8046542B2 (en) 2007-11-21 2011-10-25 Micron Technology, Inc. Fault-tolerant non-volatile integrated circuit memory
US8327245B2 (en) 2007-11-21 2012-12-04 Micron Technology, Inc. Memory controller supporting rate-compatible punctured codes
US8499229B2 (en) * 2007-11-21 2013-07-30 Micro Technology, Inc. Method and apparatus for reading data from flash memory
US8386895B2 (en) 2010-05-19 2013-02-26 Micron Technology, Inc. Enhanced multilevel memory
US9021337B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for adaptively selecting among different error correction coding schemes in a flash drive
US9021333B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for recovering data from failed portions of a flash drive
US8788910B1 (en) 2012-05-22 2014-07-22 Pmc-Sierra, Inc. Systems and methods for low latency, high reliability error correction in a flash drive
US9047214B1 (en) 2012-05-22 2015-06-02 Pmc-Sierra, Inc. System and method for tolerating a failed page in a flash device
US9183085B1 (en) 2012-05-22 2015-11-10 Pmc-Sierra, Inc. Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency
US8793556B1 (en) 2012-05-22 2014-07-29 Pmc-Sierra, Inc. Systems and methods for reclaiming flash blocks of a flash drive
US9176812B1 (en) 2012-05-22 2015-11-03 Pmc-Sierra, Inc. Systems and methods for storing data in page stripes of a flash drive
US8972824B1 (en) 2012-05-22 2015-03-03 Pmc-Sierra, Inc. Systems and methods for transparently varying error correction code strength in a flash drive
US9021336B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for redundantly storing error correction codes in a flash drive with secondary parity information spread out across each page of a group of pages
US8996957B1 (en) 2012-05-22 2015-03-31 Pmc-Sierra, Inc. Systems and methods for initializing regions of a flash drive having diverse error correction coding (ECC) schemes
US9577673B2 (en) 2012-11-08 2017-02-21 Micron Technology, Inc. Error correction methods and apparatuses using first and second decoders
US9081701B1 (en) 2013-03-15 2015-07-14 Pmc-Sierra, Inc. Systems and methods for decoding data for solid-state memory
US9053012B1 (en) 2013-03-15 2015-06-09 Pmc-Sierra, Inc. Systems and methods for storing data for solid-state memory
US9026867B1 (en) 2013-03-15 2015-05-05 Pmc-Sierra, Inc. Systems and methods for adapting to changing characteristics of multi-level cells in solid-state memory
US9009565B1 (en) 2013-03-15 2015-04-14 Pmc-Sierra, Inc. Systems and methods for mapping for solid-state memory
US9208018B1 (en) 2013-03-15 2015-12-08 Pmc-Sierra, Inc. Systems and methods for reclaiming memory for solid-state memory

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6317376B1 (en) * 2000-06-20 2001-11-13 Hewlett-Packard Company Reference signal generation for magnetic random access memory devices
US6687179B2 (en) * 2002-04-10 2004-02-03 Micron Technology, Inc. Method and system for writing data in an MRAM memory device
US6831856B2 (en) * 2002-09-23 2004-12-14 Ovonyx, Inc. Method of data storage using only amorphous phase of electrically programmable phase-change memory element
US6873543B2 (en) * 2003-05-30 2005-03-29 Hewlett-Packard Development Company, L.P. Memory device

Also Published As

Publication number Publication date
US20040268065A1 (en) 2004-12-30
US7467264B2 (en) 2008-12-16

Similar Documents

Publication Publication Date Title
DE102004008240A1 (de) Verfahren und Vorrichtungen zum Bestimmen des Zustands eines Speicherelements
DE102011075966B4 (de) Verbesserter Mehrpegelspeicher
DE102011083180B4 (de) Auslesungsverteilungsverwaltung für Phasenwechselspeicher
DE60018875T2 (de) MRAM mit Leseverstärkern
DE60317768T2 (de) Verfahren zum Auslesen einer nichtflüchtigen Speichervorrichtung und zugehörige Vorrichtung
DE3936676C2 (de)
DE102013020712B4 (de) Techniken zum Speichern von Bits in Speicherzellen mit Hängenbleiben-auf-0-oder-1-Fehlern
DE102013103391A1 (de) Betriebsverfahren eines Controllers, der eine nichtflüchtige Speichervorrichtung steuert, und Mappingmuster-Auswahlverfahren zum Auswählen eines Mappingmusters, das ein polar codiertes Codewort Multibitdaten einer nichtflüchtigen Speichervorrichtung zuordnet
DE102017103347B4 (de) Verarbeitung von daten in speicherzellen eines speichers
DE102004063571A1 (de) System und Verfahren zum Konfigurieren einer Festkörperspeicherungsvorrichtung mit Fehlerkorrekturcodierung
DE112012005424T5 (de) Lese/Schreib-Operationen in Halbleiterspeicher-Bauelementen
DE102004039235A1 (de) Speicherzellenfolgen
DE102015201384A1 (de) Vorrichtung und Verfahren zum Verbessern der Datenspeicherung durch Dateninvertierung
DE102020115935A1 (de) Nichtflüchtiger speicher mit dem überspringen der programmprürung
DE102019108205A1 (de) Unentspannte 433-kodierung zur verringerung der kopplung und des leistungsrauschens auf pam-4-datenbussen
DE112011101852B4 (de) Decodieren von LDPC-Code
DE102019107670B4 (de) Entspannte 433-kodierung zur verringerung der kopplung und des leistungsrauschens auf pam-4-datenbussen
DE102015215401A1 (de) Speichervorrichtung und Verfahren zum Korrigieren einer gespeicherten Bitfolge
DE102015113414A1 (de) Fehlerkorrektur unter Verwendung von WOM-Codes
DE112012003458B4 (de) Leseerkennung in Halbleiter-Speichereinheiten
DE102019134290A1 (de) Verfahren und System zum Verbessern der Leistung einer Speichervorrichtung unter Verwendung einer asynchronen, unabhängigen Ebenenlesefunktionalität
DE102005022107B4 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge
DE102021115361A1 (de) Inferenzmaschine mit sehr geringer leistung und externer magnetfeldprogrammierung
DE112017006698T5 (de) Erreichen einheitlicher lesezeiten in nicht flüchtigen mehrebenenspeichern
DE112017005197T5 (de) Hybrid-Komprimierungsschema zur effizienten Speicherung synaptischer Gewichte in neuromorphen Hardware-Kernen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8139 Disposal/non-payment of the annual fee