DE102004019675A1 - Speicher mit Referenz-eingeleitetem sequentiellen Lesen - Google Patents

Speicher mit Referenz-eingeleitetem sequentiellen Lesen Download PDF

Info

Publication number
DE102004019675A1
DE102004019675A1 DE102004019675A DE102004019675A DE102004019675A1 DE 102004019675 A1 DE102004019675 A1 DE 102004019675A1 DE 102004019675 A DE102004019675 A DE 102004019675A DE 102004019675 A DE102004019675 A DE 102004019675A DE 102004019675 A1 DE102004019675 A1 DE 102004019675A1
Authority
DE
Germany
Prior art keywords
memory
memory element
decision threshold
data
attribute
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.)
Granted
Application number
DE102004019675A
Other languages
English (en)
Other versions
DE102004019675B4 (de
Inventor
Frederick A. Palo Alto Perner
Anthony Holden
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 DE102004019675A1 publication Critical patent/DE102004019675A1/de
Application granted granted Critical
Publication of DE102004019675B4 publication Critical patent/DE102004019675B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/14Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using thin-film elements
    • G11C11/15Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using thin-film elements using multiple magnetic layers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/14Dummy cell management; Sense reference voltage generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

Hierin offenbart sind Systeme und Vorrichtungen, die Speicher mit einem Referenz-eingeleiteten sequentiellen Lesen aufweisen. Bei einem Ausführungsbeispiel weist ein Referenz-eingeleitetes sequentielles Leseverfahren folgende Schritte auf: Bilden einer ersten Attribut-Messung, die einem gespeicherten Datenwert in einem ersten Speicherelement zugeordnet ist; Verwenden des ersten Speicherelements, um eine Entscheidungsschwelle zu bestimmen; Vergleichen der ersten Attribut-Messung mit der Entscheidungsschwelle, um den gespeicherten Datenwert in dem ersten Speicherelement zu bestimmen; Bilden einer nachfolgenden Attribut-Messung, die einem gespeicherten Datenwert in einem nachfolgenden Speicherelement zugeordnet ist; und Vergleichen des nachfolgenden Attributwerts mit der Entscheidungsschwelle, um einen Datenwert, der in dem nachfolgenden Speicherelement gespeichert ist, zu bestimmen.

Description

  • Viele sich entwickelnde Technologien wurden aufgegriffen, da sie die Zugänglichkeit zu Informationen erhöhen. Beispiele derartiger Technologien umfassen Mikrofilm, Magnetbänder, magnetische Plattenmedien, optische Plattenmedien und integrierte Speicher. Insbesondere integrierte Speicher bieten ein hohes Maß an Zugänglichkeit.
  • Integrierte Speicher sind elektrische Schaltungen, die konfiguriert sind, um Informationen in digitaler Form zu speichern. Diese Informationen oder „Daten" sind ohne weiteres für jede digitale Vorrichtung zugänglich, die passend mit dem integrierten Speicher gekoppelt ist. Abhängig von der bestimmten verwendeten Technologie kann mit wahrhaft bemerkenswerten Raten auf Daten zugegriffen werden.
  • Integrierte Speicher werden oft als flüchtig oder nichtflüchtig klassifiziert. Flüchtige integrierte Speicher erleiden in Abwesenheit einer elektrischen Leistung einen Verlust gespeicherter Daten, wobei dieser Nachteil durch Vorteile bei Informationsdichte und Zugriffsraten ausgeglichen werden kann. Nicht-flüchtige Speicher behalten ihre gespeicherten Informationen in Abwesenheit einer elektrischen Leitung, leiden jedoch an einer reduzierten Informationsdichte, einer reduzierten Zugriffsrate und/oder einem Mangel an Programmierbarkeit.
  • Ein magnetischer Direktzugriffsspeicher (MRAM) bietet Programmierbarkeit, Nichtflüchtigkeit, hohe Informationsdichte und eine moderate Zugriffsrate. MRAMs, wie dieser Ausdruck hierin verwendet wird, sind integrierte Speicher, die Magnetfelder zur Speicherung von Daten verwenden. Diese Magnetfelder können in Magnetmaterialien eingebettet sein, die nicht auf dem fortwährenden Vorliegen einer elektri schen Leistung zur Bewahrung der Magnetfelder beruhen. Eine Vielzahl von Lesetechniken bzw. Erfassungstechniken kann verwendet werden, um Magnetfelder in diesen Speichern zu erfassen und die Daten, die diese Felder darstellen, zu bestimmen.
  • Bei einem Typ von MRAM werden Daten in einem Array von Speicherelementen gespeichert. Jedes der Speicherelemente kann zwei magnetische Schichten umfassen, die durch eine isolierende Schicht getrennt sind. Die magnetischen Ausrichtungen der beiden Schichten können ausgerichtet („parallel") oder entgegengesetzt („anti-parallel") sein. Diese parallele und anti-parallele Bedingung kann bewirken, daß das Speicherelement unterschiedliche elektrische Widerstandswerte aufweist. Die beiden Widerstandswerte können digitalen Werten (z. B. 0 und 1) zugeordnet sein, was es ermöglicht, daß jedes Speicherelement eine binäre Ziffer („Bit") an Informationen speichern kann. Das gespeicherte Bit kann durch ein Messen des Widerstandswerts des Speicherelements, z. B. durch ein Messen einer elektrischen Spannung oder eines Stroms, wenn eine elektrische Energie an das Speicherelement geliefert wird, erfaßt werden.
  • Als Teil des Herstellungsprozeß können sich Variationen innerhalb eines Arrays von Speicherelementen entwickeln. Folglich können unterschiedliche Speicherelemente unter Umständen unterschiedliche Widerstandswerte aufweisen, wenn sie einen bestimmten digitalen Wert darstellen. Die Variation kann ausreichend sein, um die Verwendung eines Standardschwellenwertes zur Unterscheidung zwischen digitalen Werten zu verhindern. Wenn z. B. in jedem Speicherelement der einer digitalen 0 zugeordnete Widerstandswert höher als der einer digitalen 1 zugeordnete Widerstandswert ist, kann jede Verarbeitungsvariation, die den Widerstandswert einiger der Speicherelemente wesentlich erhöht, bewirken, daß die digitalen Einsen fälschlicherweise als Nullen aufgefaßt werden, wenn ein niedriger Schwellenwert verwendet wird. Umgekehrt werden, wenn ein höherer Schwellenwert verwendet wird, die digitalen Nullen in den anderen Speicherzellen eventuell als Einsen mißverstanden. Das Vorliegen eines elektrischen Rauschens in dem integrierten Speicher verschärft dieses Problem nur noch.
  • So sind verbesserte Verfahren zum Erfassen von in MRAM-Zellen gespeicherten Daten wünschenswert.
  • Es ist die Aufgabe der vorliegenden Erfindung, ein Referenz-eingeleitetes sequentielles Leseverfahren, einen Speicher oder eine digitale Vorrichtung mit verbesserten Charakteristika zu schaffen.
  • Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 oder 21, einen Speicher gemäß Anspruch 9 oder eine digitale Vorrichtung gemäß Anspruch 17 gelöst.
  • Folglich sind hierin Systeme und Vorrichtungen offenbart, die Speicher mit einem Referenz-eingeleiteten sequentiellen Lesen bzw. Erfassen aufweisen. Bei einem Ausführungsbeispiel weist ein Referenz-eingeleitetes sequentielles Leseverfahren folgende Schritte auf: Bilden einer ersten Attribut-Messung, die einem gespeicherten Datenwert in einem ersten Speicherelement zugeordnet ist; Verwenden des ersten Speicherelements, um eine Entscheidungsschwelle zu bestimmen; Vergleichen der ersten Attribut-Messung mit der Entscheidungsschwelle, um den gespeicherten Datenwert in dem ersten Speicherelement zu bestimmen; Bilden einer nachfolgenden Attribut-Messung, die einem gespeicherten Datenwert in einem nachfolgenden Speicherelement zugeordnet ist; und Vergleichen des nachfolgenden Attribut-Werts mit der Entscheidungsschwelle, um einen in dem nachfolgenden Speicherelement gespeicherten Datenwert zu bestimmen.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beigefügten Zeichnungen näher erläutert. Es zeigen:
  • 1 eine Außenansicht eines beispielhaften digitalen Systems, das einen Speicher gemäß verschiedenen offenbarten Ausführungsbeispielen aufweist;
  • 2 ein Blockdiagramm des digitalen Systems aus 1;
  • 3 ein Funktionsblockdiagramm eines Speicher-Ausführungsbeispiels auf hoher Ebene;
  • 4 ein detaillierteres Funktionsblockdiagramm eines Speicher-Ausführungsbeispiels; und
  • 5 und 6 exemplarische Flußdiagramme gemäß verschiedenen offenbarten Ausführungsbeispielen.
  • Notierung und Nomenklatur
  • Bestimmte Ausdrücke werden in der gesamten folgenden Beschreibung und den Ansprüche verwendet, um sich auf bestimmte Systemkomponenten zu beziehen. Wie dies für Fachleute auf diesem Gebiet ersichtlich ist, können unterschiedliche Unternehmen mit unterschiedlichen Namen auf eine Komponente Bezug nehmen. Dieses Dokument möchte nicht zwischen Komponenten unterscheiden, die in bezug auf den Namen, jedoch nicht die Funktion unterschiedlich sind. In der folgenden Beschreibung und in den Ansprüchen werden die Ausdrücke „umfassen" und „aufweisen" auf eine offene Art und Weise verwendet und sollten so interpretiert werden, um „umfassen, jedoch nicht ausschließlich ..." zu bedeuten. Ebenso ist der Ausdruck „koppeln" oder „gekoppelt" beabsichtigt, um entweder eine indirekte oder eine direkte elektrische Verbindung zu bedeuten. So kann, wenn eine erste Vorrichtung mit einer zweiten Vorrichtung gekoppelt ist, diese Verbindung durch eine direkte elektrische Verbindung oder durch eine indirekte elektrische Verbindung über weitere Vorrichtungen und Verbindungen sein.
  • 1 zeigt einen Tischcomputer als eine exemplarische digitale Vorrichtung 100. Um mit einem Benutzer in Wechselwirkung zu stehen, kann die digitale Vorrichtung 100 mit einer Text- oder Graphikanzeige 102 und einer Eingabevorrichtung 104 gekoppelt sein. Die Anzeige 102 und die Eingabevorrichtung 104 können zusammen als eine Schnittstelle zwischen dem Benutzer und der digitalen Vorrichtung 100 arbeiten. Dies bedeutet, daß die digitale Vorrichtung 100 bestimmte Aktionen durchführen kann, die durch eine Benutzerbetätigung der Eingabevorrichtung 104 angefordert werden, und dem Benutzer über die Anzeige 102 eine Antwort liefern kann. Die digitale Vorrichtung 100 kann einen integrierten Speicher mit Computerinstruktionen beinhalten, die die geeigneten Aktionen und/oder Antworten an den Benutzer bestimmen. Obwohl die digitale Vorrichtung 100 als ein Tischcomputer gezeigt ist, kommen alle weiteren digitalen Vorrichtungen, die einen oder mehrere integrierte Speicher beinhalten, in Betracht, einschließlich z. B. (jedoch nicht ausschließlich) Digitalkameras, Personaldigitalassistenten, Mobiltelephonen, digitalen Musikabspielgeräten, digitalen Multimediensystemen und digitalen Systemsteuerungen.
  • 2 zeigt ein Beispiels eines Blockdiagramms für die digitale Vorrichtung 100. Die Vorrichtung 100 kann eine zentrale Verarbeitungseinheit (CPU) 202 umfassen, die durch eine Brücke 204 mit einem Systemspeicher 206 gekoppelt ist. Die CPU 202 kann auch durch die Brücke 204 mit einer Videokarte 203 gekoppelt sein, die wiederum mit der Anzeige 102 gekoppelt ist. Die CPU 202 kann ferner durch die Brücke 204 mit einem Erweiterungsbus 208 gekoppelt sein. Ebenso mit dem Erweiterungsbus 208 gekoppelt sein können eine Speichervorrichtung 210 und eine Eingangs/Ausgangs-Schnittstelle 212. Die Eingabevorrichtung 104 kann über die Eingangs/Ausgangs-Schnittstelle 212 mit der Vorrichtung 100 gekoppelt sein.
  • Die CPU 202 kann gemäß einer Software arbeiten, die in dem Speicher 206 und/oder der Speichervorrichtung 210 gespeichert ist. Unter der Anweisung der Software kann die CPU 202 Befehle von einem Bediener über eine Tastatur oder eine alternative Eingabevorrichtung 104 annehmen und kann dem Bediener erwünschte Informationen über die Anzeige 102 oder eine alternative Ausgabevorrichtung anzeigen. Die CPU 202 kann die Operationen weiterer Systemkomponenten zur Wiedergewinnung, Übertragung und Speicherung von Daten steuern.
  • Die Brücke 204 koordiniert den Fluß von Daten zwischen Komponenten. Die Brücke 204 kann zweckgebundene Punkt-zu-Punkt-Busse mit hoher Bandbreite für die CPU 202, den Speicher 206 und die Videokarte 203 bereitstellen. In digitalen Vorrichtungen, die keine Hochleistungsanforderungen aufweisen, kann die Brücke 204 weggelassen werden und die Kommunikationen zwischen der CPU und allen anderen Systemkomponenten können über den Bus 208 auftreten.
  • Der Speicher 206 kann eine Software und Daten für einen schnellen Zugriff speichern. Der Speicher 206 kann integrierte Speichermodule umfassen, wobei eines oder mehrere derselben nicht flüchtig sein können.
  • Die Videokarte 203 kann eine kundenspezifische Verarbeitung für Graphiken und eine Datenumwandlung aus einem speicherbasierten Format in ein Signalformat bereitstellen, das für die Anzeige 102 geeignet ist. Die Anzeige 102 kann Daten zur Verwendung durch einen Bediener bereitstellen.
  • Der Erweiterungsbus 208 kann Kommunikationen zwischen der Brücke 204 und mehreren weiteren Computerkomponenten unterstützen. Der Bus 208 kann mit der Brücke 204 mit austauschbaren Modulkomponenten und/oder Komponenten gekoppelt sein, die auf einer Schaltungsplatine integriert sind (z. B. Audiokarten, Netzschnittstellen, Datenerfassungsmodulen, Modems).
  • Die Speichervorrichtung 210 kann Software und Daten zur Langzeitbewahrung speichern. Die Speichervorrichtung 210 kann tragbar sein oder kann austauschbare Medien annehmen oder kann eine installierte Komponente sein oder kann eine integrierte Komponente auf der Schaltungsplatine sein. Die Speichervorrichtung 210 kann eine austauschbare Speichervorrichtung, wie z. B. eine Speicherkarte, sein. Alternativ kann die Speichervorrichtung 210 ein nicht-flüchtiger integrierter Speicher, eine magnetische Medienspeichervorrichtung, eine optische Medienspeichervorrichtung oder eine bestimmte weitere Form von Langzeitinformationsspeicher sein.
  • Die Eingangs/Ausgangs-Schnittstelle 212 kann Kommunikationen mit Vorläufer-Komponenten und -Vorrichtungen, die keine Verbindung mit hoher Bandbreite benötigen, unterstützen. Die Eingangs/Ausgangs-Schnittstelle 212 kann ferner einen Echtzeittakt umfassen und kann Kommunikationen mit Abtastketten für ein Testen des Systems auf niedriger Ebene unterstützen.
  • Die Eingabevorrichtung 104 kann Daten an die Schnittstelle 212 ansprechend auf eine Bedienerbetätigung liefern. Die Eingabevorrichtung 104 kann eine Tastatur oder eine weitere Eingabevorrichtung (z. B. Zeigevorrichtungen, Knöpfe, Sensoren) sein. Mehrere Eingabevorrichtungen können mit der Eingangs/Ausgangs-Schnittstelle 212 gekoppelt sein, um Daten ansprechend auf eine Benutzerbetätigung bereitzustellen. Ausgabevorrichtungen (z. B. Parallel-Ports, Seriell-Ports, Drucker, Lautsprecher, Lichter) können ebenso mit der Eingangs/Ausgangs-Schnittstelle 212 gekoppelt sein, um Informationen an den Bediener zu kommunizieren.
  • Der Speicher 206 und die Speichervorrichtung 210 können die primären Datenspeicherressourcen sein und können folglich große Mengen eines integrierten Speichers umfassen, möglicherweise entweder in der Form relativ weniger integrierter Speichervorrichtungen mit großer Kapazität oder in der Form einer großen Anzahl integrierter Speichervorrichtungen mit relativ kleiner Kapazität. Weitere Komponenten der digitalen Vorrichtung 100 können jedoch auch integrierte Speichervorrichtungen umfassen. Die Videokarte 203 kann z. B. eine oder mehrere integrierte Speichervorrichtungen zur Bildspeicherung und -verarbeitung umfassen. Ähnlich kann die Eingangs/Ausgangs-Schnittstelle 212 eine integrierte Speichervorrichtung zur Langzeitspeicherung von Konfigurationsparametern und grundlegenden Eingabe/Ausgabe-System- (BIOS-) Routinen umfassen.
  • 3 zeigt ein Beispiel einer integrierten Speichervorrichtung 300. Die Vorrichtung 300 kann eine gestützte Speichervorrichtung sein, wie z. B. die, die in der verwandten US-Patentanmeldung mit dem Anwaltsaktenzeichen Nr. 200208167 offenbart ist, die hierin durch Bezugnahme aufgenommen ist. Eine gestützte Speichervorrichtung ist eine Speichervorrichtung, die Fehlerkorrekturtechniken beinhaltet, um mit möglichen Fehlern bei der Speicherung oder Wiedergewinnung von Daten umzugehen. Derartige Fehler können (unter anderem) durch isolierte Herstellungsfehler in Speicherzellen, unvorhersehbare Zwischenzellenkopplungsfehler oder Übergangssignalisierungsfehler in den Zeilen- und Spaltenleitungen während Lese- und Schreiboperationen bewirkt werden.
  • Die integrierte Speichervorrichtung 300 umfaßt ein Speicherarray 302, ein Unterstützungsmodul 304, ein Lese- und Schreibmodul 306 und ein Fehlerkorrekturcode- (ECC-) Modul 308. Das Speicherarray 302 umfaßt eine Mehrzahl von Speicherzellen oder Speicherelementen, wobei jede/jedes derselben in der Lage ist, zumindest ein Bit Daten zu speichern. Das Speicherarray 302 kann jede programmierbare Speichertechnologie sein, wie z. B. ein Direktzugriffsspeicher (RAM) oder ein elektrisch programmierbarer Nur-Lese-Speicher (EPROM), einschließlich, jedoch nicht ausschließlich, eines dynamischen RAM (DRAM), eines erweiterten Daten-Aus-RAM (EDO RAM), eines Video-RAM (VRAM), eines statischen RAM (SRAM), eines synchronen DRAM (SDRAM), eines magnetoresi stiven oder Magnet-RAM (MRAM) und eines Flash-ROM. Obwohl die folgende Beschreibung hauptsächlich in dem Zusammenhang eines MRAM erfolgt, sind die offenbarte Architektur und die Techniken nicht derart eingeschränkt und sind auch auf weitere Speicherspeicherungstechnologien anwendbar.
  • Jede Speicherzelle oder jedes Element in dem Array 302 ist einer Speicheradresse zugeordnet, obwohl jede Speicheradresse auch mehreren Speicherzellen zugeordnet sein kann. Das Unterstützungsmodul 304 kann ein Adreßsignal empfangen und kann ansprechend darauf einen Zugriff auf die zugeordneten Speicherzellen in dem Speicherarray 302 bereitstellen. Der Zugriff auf ausgewählte Speicherzellen wird über das Lese- und Schreibmodul 306 hergestellt.
  • Das Lese- und Schreibmodul 306 umfaßt Leseverstärker zum Erfassen („Lesen") von Datenwerten, die in den Speicherzellen gespeichert sind, die durch das Unterstützungsmodul 304 zugänglich gemacht werden. Das Modul 306 kann ferner Schreib-Treiber zum Speichern („Schreiben") neuer Datenwerte in die Speicherzellen umfassen. Die Operation des Moduls 306 kann durch ein Befehlssignal gesteuert werden. Das Befehlssignal kann einfach anzeigen, wann eine Lese-Operation erwünscht wird, und wann eine Schreib-Operation erwünscht wird. Wenn eine Schreib-Operation angezeigt wird, kann das Lese- und Schreibmodul 306 Daten von dem Modul 308 empfangen und die Daten in den ausgewählten Speicherzellen speichern. Umgekehrt kann, wenn eine Lese-Operation angezeigt wird, das Modul 306 Daten aus den ausgewählten Speicherzellen wiedergewinnen und die Daten an das Modul 308 liefern. Es wird angemerkt, daß das Befehlssignal ferner anzeigen kann, wann die Speichervorrichtung 300 aktiviert oder deaktiviert ist, und auch anzeigen kann, wann Konfigurationsinformationen an die Speichervorrichtung 300 geliefert werden.
  • Die Speichervorrichtung 300 kann ein ECC-Modul 308 umfassen, das betreibbar ist, um Datenfehler zu erfassen und zu korrigieren, die in der Speichervorrichtung 300 auftreten. Wenn Daten zur Speicherung empfangen werden, codiert das ECC-Modul 308 die Daten, was Datenwörter in Codewörter umwandelt. Lediglich beispielhaft kann während einer Schreib-Operation ein ECC-Modul, das einen (7, 4, 3) -Hamming-Code verwendet, ein 4-Bit-Datenwort in ein 7-Bit-Codewort umwandeln. Das Codewort kann dann in Speicherzellen gespeichert werden, die der spezifizierten Speicheradresse zugeordnet sind. Umgekehrt kann während einer Lese-Operation ein 7-Bit-Wort aus Speicherzellen wiedergewonnen werden, die der spezifizierten Speicheradresse zugeordnet sind. Das 7-Bit-Wort kann ein Codewort sein oder es kann einen Bitfehler enthalten. In beiden Fällen kann das ECC-Modul 308 das 7-Bit-Wort decodieren, was dasselbe in das passende 4-Bit-Datenwort umwandelt, selbst dann, wenn das wiedergewonnene 7-Bit-Wort einen Fehler enthält. Das Datenwort kann dann als Ausgangsdaten bereitgestellt werden.
  • Natürlich können auch weitere Fehlerkorrekturcodes verwendet werden. Beispiele geeigneter Fehlerkorrekturcodes umfassen Hamming-Codes, Goppa-Codes, Golay-Codes, Reed-Solomon-Codes und Faltungscodes. Die Codierung kann auf einer Pro-Wort-Basis, wie oben beschrieben wurde, durchgeführt werden. Alternativ oder zusätzlich kann die Codierung in Bezug auf Gruppen von Wörtern durchgeführt werden, um in der Lage zu sein, ein fehlerhaftes Wort innerhalb der Gruppe zu korrigieren. Obwohl das ECC-Modul u. U. während des Decodiervorgangs eine wesentliche Verarbeitungszeit benötigt, ist zu erwarten, daß Pipeline-Führungstechniken verwendet werden können, um hohe Durchsatzraten aufrechtzuerhalten.
  • 4 zeigt ein detaillierteres Blockdiagramm einer integrierten Speichervorrichtung 400. Die Speichervorrichtung 400 umfaßt ein Speicherarray 302, ein Unterstützungsmodul, das einen Zeilendecodierer 408, Spaltendecodierer 410, 412 und 414 und ein Adreßabbildungsmodul 418 umfaßt, ein Lese- und Schreibmodul, das Leseverstärker 420 und Schreib- Treiber 422 umfaßt, ein optionales ECC-Modul, das einen ECC-Decodierer 424 und einen ECC-Codierer 426 umfaßt, und eine optionale gepufferte Speicherschnittstelle, die einen Lese-Puffer 428, einen Schreib-Puffer 430 und eine Schnittstellensteuerung 432 umfassen kann.
  • Das Speicherarray 302 ist ein Array von Speicherelementen. Die Speicherelemente können magnetische Speicherspeicherungselemente sein. Jedes magnetische Speicherspeicherungselement kann eine Datenspeicherungsschicht und eine Referenzschicht umfassen, wobei jede derselben eine magnetische Ausrichtung aufweist. Der Logikzustand eines magnetischen Speicherelements hängt von den relativen Ausrichtungen einer Magnetisierung in seiner Datenspeicherungs- und der Referenzschicht ab. Nur zwei relative Ausrichtungen sind stabil. Diese beiden stabilen Ausrichtungen, parallel und anti-parallel, können Logikwerte „0" und „1" darstellen.
  • Die Speicherzellen des Arrays 302 sind im allgemeinen in Zeilen und Spalten angeordnet, wobei sich die Zeilen entlang einer Achse erstrecken und sich die Spalten entlang einer senkrechten Achse erstrecken. In 4 sind bestimmte spezifisch benannte Speicherelemente 402, 404 und 406 entlang einer Spalte angeordnet. Nur eine relativ kleine Anzahl von Speicherzellen ist gezeigt, um ein Verständnis zu unterstützen. In der Praxis können Arrays jede Größe aufweisen, einschließlich ein Array mit 1024 × 1024 Speicherzellen oder mehr.
  • 4 zeigt Zeilenleitungen, die sich in einer horizontalen Richtung erstrecken, und Spaltenleitungen, die sich in einer vertikalen Richtung erstrecken. Bei einem Ausführungsbeispiel gibt es eine Zeilenleitung für jede Zeile von Speicherzellen und eine Spaltenleitung für jede Spalte von Speicherzellen. Jede Speicherzelle ist an einem Kreuzungspunkt einer entsprechenden Zeilen- und Spaltenleitung angeordnet gezeigt. Bei einem Ausführungsbeispiel wird eine Speicherzelle zugänglich gemacht, wenn der Zeilendecodierer 408 die entsprechende Zeilenleitung aktiviert, und einer der Spaltendecodierer 410, 412, 414 die entsprechende Spaltenleitung mit einem Leseverstärker 420 oder einem Schreib-Treiber 422 koppelt. Während Lese-Operationen kann der Widerstandswert einer Speicherzelle durch einen Leseverstärker 420 erfaßt werden und während einer Schreib-Operation kann der Magnetisierungszustand der Speicherzelle durch den Schreib-Treiber 422 eingestellt werden.
  • Der Zeilendecodierer 408 kann betreibbar bzw. wirksam sein, um eine Zeilenleitung ansprechend auf eine Zeilenadresse AR auszuwählen, und die Spaltendecodierer 410, 412, 414 können betreibbar sein, um jeweils eine Spaltenleitung ansprechend auf eine Spaltenadresse AC 416 auszuwählen. Ansprechend auf die Zeilenadresse AR kann der Zeilendecodierer 408 eine entsprechende Zeilenleitung mit einem bekannten Spannungspegel, wie z. B. Masse, koppeln. Ansprechend auf die Spaltenadresse AC 416 kann jeder Spaltendecodierer 410, 412, 414 eine entsprechende Spaltenleitung mit einem Leseverstärker 420 und/oder einem Schreib-Treiber 422 koppeln. Eine ausgewählte Mehrzahl von Speicherzellen liegt an den Schnittpunkten ausgewählter Zeilen- und Spaltenleitungen.
  • Die Zeilenadressen AR und die Spaltenadressen AC können durch das Adreßabbildungsmodul 418 an den Zeilendecodierer bzw. die Spaltendecodierer geliefert werden. Bei einem Ausführungsbeispiel empfängt das Adreßabbildungsmodul 418 eine Speicheradresse von der Schnittstellensteuerung 432 und wandelt die empfangene Speicheradresse basierend auf einem internen Abbildungsverfahren in eine physische Adresse um, das defekte Speicherzellen durch „Ersatz"-Speicherzellen in dem Array ersetzen kann. Weitere Details über verschiedene Ausführungsbeispiele des Adreßabbildungsmoduls 418 sind in der gemeinschaftlich zugewiesenen US-Patentanmeldung, eingereicht am 11. Januar 2002 mit dem Titel „Self-Healing MRAM" und der US-Patentanmeldung, eingereicht am 19. Januar 2001 mit dem Titel „Self-Healing Memory", die hierin beide durch Bezugnahme aufgenommen sind, zu finden. Der Zeilende codierer 408 und die Spaltendecodierer 410, 412, 414 können die physischen Adressen verwenden, die durch das Abbildungsmodul 418 bereitgestellt werden, um der Speicheradresse zugeordnete Speicherzellen auszuwählen.
  • Die Schreib-Treiber 422 können parallel arbeiten, um die Logikzustände der ausgewählten Speicherzellen einzustellen. Die Logikzustände können Bits eines Codeworts sein, das durch den ECC-Codierer 426 ansprechend auf ein Datenwort bereitgestellt wird. Das Codewort ist vorzugsweise entworfen, um eine Redundanz bereitzustellen, d. h. zusätzliche Informationen zur Unterstützung der Bestimmung des korrekten Datenwortes, wenn Fehler angetroffen werden.
  • Die Leseverstärker 420 können parallel arbeiten, um die Logikzustände der ausgewählten Speicherzellen zu erfassen. Der ECC-Decodierer 424 kann die Daten von den Leseverstärkern 420 kombinieren, um ein Codewort (mit oder ohne Fehler) zu bilden, und kann das Codewort verarbeiten, um ein fehlerfreies Datenwort zu extrahieren. Idealerweise kann der ECC-Decodierer arbeiten, um Übergangsfehler zu korrigieren, wohingegen das Adreßabbildungsmodul 418 arbeiten kann, um Fehler zu verhindern, die durch dauerhafte Defekte an den Speicherzellen bewirkt werden.
  • Eine Anzahl von ECC-Decodierer-Implementierungen kann existieren, die von Schnell-Kombinationslogik- bis zu sequentiellen Zustandsmaschinen-basierten Implementierungen reichen. Der Hamming-Code, Reed-Solomon-Code, binäre Golay-Code, binäre Goppa-Code, Viterbi-Code und weitere Algorithmen können zur Erzeugung der ECC-Codewörter basierend auf einem Block Daten mit einer vorbestimmten Größe verwendet werden. Eine erweiterte Fehlerkorrekturfähigkeit und Dateneffizienz können mit größeren Datenblockgrößen, leistungsstärkeren ECC-Algorithmen, jedoch größerer Schaltungskomplexität erzielt werden. Eine derartige hinzugefügte Komplexität muß nicht unbedingt unüberwindbar sein, wenn eine gepufferte Speicherschnittstelle verwendet wird.
  • Die Speichervorrichtung 400 kann eine gepufferte Speicherschnittstelle in der Form eines oder mehrerer Lese-Puffer 428, eines Schreib-Puffers 430 und einer Schnittstellensteuerung 432 umfassen. Der eine oder die mehreren Lese-Puffer 428 können unter der Steuerung der Schnittstellensteuerung 432 arbeiten, um Daten von dem ECC-Decodierer 424 anzunehmen, sowie ausgehende Daten auf dem bidirektionalen Datenbus bereitzustellen. Der Schreib-Puffer 430 kann eingehende Daten von dem bidirektionalen Datenbus puffern und die Daten an den ECC-Codierer 426 liefern.
  • Bei einem Ausführungsbeispiel nimmt die Schnittstellensteuerung 432 ein Befehlssignal an, das Lese- und Schreibbefehle anzeigt, und nimmt weiter ein Adreßsignal an, das Speicheradressen anzeigt, die den Lese- und Schreibbefehlen zugeordnet sind. Ansprechend auf einen oder mehrere Lese/Schreib-Befehle erzeugt die Schnittstellensteuerung 432 eine Sequenz von Lese/Schreib-Operationen bezüglich des Speicherarrays 302, um die Befehle zu erfüllen, jedoch auch, um einen oder mehrere Lese-Puffer 428 in Vorbereitung für zukünftige Befehle vorzubereiten. Wenn ein Lese-Befehl für eine Adresse empfangen wird, deren Daten bereits in einen Lese-Puffer 428 wiedergewonnen wurden (oder deren Daten noch immer in dem optionalen Schreib-Puffer 430 verbleiben), kann die Schnittstellensteuerung 432 bewirken, daß der Puffer den Befehl mit geringer oder keiner Latenz erfüllt.
  • Wenn die Schnittstellensteuerung 432 einen Lese-Befehl für eine Adresse empfängt, deren Daten gegenwärtig nicht gepuffert bzw. zwischengespeichert sind, kann die Schnittstellensteuerung 432 eine Sequenz von Lese-Operationen bezüglich des Speicherarrays 302 für die angeforderte Adresse und einen Block benachbarter Adressen einleitet. Bei einem Ausführungsbeispiel liest die Schnittstellensteuerung 432 ansprechend auf einen Lese-Befehl für ungepufferte Daten zumindest einen Sektor in den Lese-Puffer. Ein Abschnitt kann ganze zwei Bytes klein sein oder kann ziemlich groß sein (z. B. 4 Kilobytes).
  • In dem Vorangegangenen wurden zwei Speicher-Ausführungsbeispiele erläutert, um ein Verständnis einer Referenz-eingeleiteten sequentiellen Lesetechnik zu unterstützen. Bei dem ersten Speicher-Ausführungsbeispiel (dem aus 3) kann die Lesetechnik durch die Wechselwirkung von Unterstützungsmodul 304 und Lese/Schreib-Modul 306 ausgeführt werden. Die Speichervorrichtung 300 kann auch nur einen einzelnen Leseverstärker aufweisen, der gespeicherte Datenbytes durch ein sequentielles Lesen entlang einer Spalte oder Zeile erfaßt. Bei dem zweiten Speicher-Ausführungsbeispiel (dem aus 4) kann die Lesetechnik durch die Schnittstellensteuerung 432 implementiert sein, die bewirkt, daß eine Bank von Leseverstärkern parallel arbeitet, um Wörter in einer Sequenz von Daten (d. h. einem Sektor) zu lesen. Für ein Beispiels eines geeigneten Leseverstärkers zum Implementieren dieser Technik wird auf das US-Patent Nr. 6,188,615 („MRAM Device Including Digital Sense Amplifiers") verwiesen, das hierin durch Bezugnahme aufgenommen ist.
  • In 4 ist ein Speicherarray 302 gezeigt, das mehrere Speicherelemente 402, 404, 406 aufweist, die entlang einer Spalte angeordnet sind. Unter der Führung der Schnittstellensteuerung 432 arbeiten die Zeilen- und Spaltendecodierer zusammen, um eine Sequenz von Speicherelementen für die Leseverstärker 420 und Schreib-Treiber 422 zugänglich zu machen. Lediglich beispielhaft können der Zeilendecodierer 408 und der Spaltendecodierer 414 sequentiell Speicherelemente in einer Spalte mit dem Leseverstärker 420, beginnend mit den Speicherelementen 402 und 409, wobei schließlich das Speicherelement 406 erreicht wird, koppeln.
  • Bei einem Ausführungsbeispiel verwendet die Referenz-eingeleitete sequentielle Lesetechnik das erste Speicherelement in einer Sequenz als eine Referenz, d. h. das erste Speicherelement wird zur Bestimmung einer Entscheidungsschwelle verwendet. Diese Entscheidungsschwelle wird verwendet, wenn die gespeicherten Datenwerte in allen Speicherelementen der Sequenz bestimmt werden (einschließlich des ersten). Die Sequenzlänge kann von nur zwei bis zu mehreren Malen der Anzahl von Speicherelementen in einer Spalte oder Zeile variieren. Die Sequenz kann sich von einer Kante des Arrays bis zu einer benachbarten Spalte oder Zeile an der gegenüberliegenden Kante „umwickeln", wobei vorzugsweise jedoch die physische Trennung zwischen dem ersten Speicherelement und den nachfolgenden Speicherelementen eingeschränkt ist, so daß das erste Speicherelement ziemlich repräsentativ für die nachfolgenden Speicherelemente ist.
  • 5 ist ein Flußdiagramm, das die Architektur, Funktionalität und Funktionsweise möglicher Implementierungen der Leseverstärker zeigen kann. Diesbezüglich kann jeder Block ein Modul, Segment oder einen Abschnitt eines Software- oder Firmware-) Codes darstellen, der eine oder mehrere ausführbare Instruktionen zum Implementieren der einen oder der mehreren spezifizierten Logikfunktionen aufweist. Wahrscheinlicher jedoch können diese Flußdiagramme in Hardware implementiert sein, um die erwünschten Datenraten zu unterstützen. Die Hardwareimplementierung kann die Form einer Hardware-Zustandsmaschine annehmen. Bei einigen alternativen Implementierungen können die in den Blöcken angemerkten Funktionen außerhalb der angemerkten Reihenfolge auftreten. Die beiden Blöcke 502 und 504, die in 5 z. B. aufeinanderfolgend gezeigt sind, können tatsächlich im wesentlichen gleichzeitig ausgeführt werden oder manchmal können die Blöcke 504 und 508 in der umgekehrten Reihenfolge ausgeführt werden. Ferner können Blöcke weggelassen werden oder zusätzliche Blöcke hinzugefügt werden, ohne von dem Schutzbereich der Erfindung abzuweichen.
  • Bei einem Ausführungsbeispiel beginnt ein Referenz-eingeleiteter sequentieller Lesevorgang bei Block 502 damit, daß ein Leseverstärker den Inhalt eines ersten Speicherelements abtastet. Der Leseverstärker führt vorzugsweise eine digitale Messung eines Stroms, einer Spannung, eines Widerstands- oder Zeitwerts durch, der/die den Logikzustand des ersten Speicherelements darstellt. Der digitale Wert wird vorzugsweise zur späteren Verwendung in einem Register gespeichert. Bei Block 504 wartet der Leseverstärker, während ein Schreib-Treiber einen ersten Logikzustand (z. B. eine digitale „0") in dem ersten Speicherelement speichert. Bei Block 506 tastet der Leseverstärker wieder den Inhalt des ersten Speicherelements ab. Die digitale Messung, die zu diesem Zeitpunkt durchgeführt wird, ist bekannt, um z. B. einer digitalen „0" zu entsprechen, und kann zur späteren Verwendung in einem weiteren Register gespeichert werden. Bei Block 508 wartet der Leseverstärker, während ein Schreib-Treiber einen zweiten Logikzustand (z. B. eine digitale „1") in dem ersten Speicherelement speichert. Bei Block 510 tastet der Leseverstärker noch einmal den Inhalt des ersten Speicherelements ab. Die digitale Messung, die zu diesem Zeitpunkt durchgeführt wird, ist bekannt, um z. B. einer digitalen „1" zu entsprechen.
  • Bei Block 512 bestimmt der Leseverstärker eine Entscheidungsschwelle. Bei einem Ausführungsbeispiel kann diese Bestimmung durch ein Mitteln der Messungen, die den bekannten digitalen Werten entsprechen, durchgeführt werden. Bei alternativen Ausführungsbeispielen können verschiedene Takt-Zähler-Techniken verwendet werden, um eine Differenz zwischen der Messung, die den bekannten digitalen Werten entspricht, zu bestimmen und die Hälfte dieser Differenz zu einer der Messungen hinzuzufügen oder von derselben abzuziehen. Beispiele derartiger Techniken sind in dem US-Patent Nr. 6,188,615 („MRAM Device Including Digital Sense Amplifiers") zu finden. Eine Anzahl geeigneter Entscheidungsschwellen-Bestimmungstechniken ist für Fachleute auf diesem Gebiet ersichtlich.
  • Bei Block 514 vergleicht der Leseverstärker die ursprüngliche Messung des ersten Speicherelementes mit der Entscheidungsschwelle zur Bestimmung des ursprünglichen Datenwerts. Zu diesem Zeitpunkt kann dieser Datenwert als Ausgabe aus dem Leseverstärker bereitgestellt werden. Bei Block 516 bestimmt der Leseverstärker, ob der ursprüngliche Datenwert sich von dem Wert unterscheidet, der gegenwärtig in dem ersten Speicherelement gespeichert ist, wobei, falls dies der Fall ist, der Leseverstärker wartet, während der Schreib-Treiber den korrekten Wert in der ersten Speicherzelle speichert.
  • Bei Block 518 kann ein Schleifenindex eingeleitet werden. Bei Block 520 bestimmt der Leseverstärker, ob der Inhalt des letzten Speicherelementes bei dem sequentiellen Lese-Vorgang bestimmt wurde. (Die Anzahl von Speicherelementen N bei jedem sequentiellen Lesevorgang kann durch den Entwurf der Speichervorrichtung vorbestimmt werden.) Falls dies der Fall ist, hält der sequentielle Lesevorgang an. Andernfalls wird bei Block 522 der Schleifenindex inkrementiert.
  • Bei Block 524 tastet der Leseverstärker den Inhalt des nächsten Speicherelements in der Sequenz ab. Bei Block 526 kann der Leseverstärker die Messung mit der Entscheidungsschwelle vergleichen, um den in diesem Speicherelement gespeicherten Datenwert zu bestimmen. Der Leseverstärker wiederholt dann die Schleife beginnend mit Block 520.
  • 6 zeigt ein Flußdiagramm einer alternativen Implementierung. Diejenigen Blöcke, die gemeinschaftlich zwischen den 5 und 6 verwendet werden, sind identisch numeriert. Bei der Implementierung aus 6 werden die ersten beiden Speicherelemente in einem sequentiellen Lesevorgang als Referenzelemente verwendet. Beginnend mit Block 502 tastet der Leseverstärker den Inhalt des ersten Speicherelements ab und speichert vorzugsweise eine digitale Messung in einem Register zur späteren Verwendung. Bei Block 602 tastet der Leseverstärker den Inhalt des zweiten Speicher elements ab und speichert vorzugsweise eine zweite digitale Messung in einem weiteren Register zur späteren Verwendung. Bei Block 504 wartet der Leseverstärker, während ein Schreib-Treiber einen vorbestimmten Logikwert (z. B. eine digitale „0") in dem ersten Speicherelement speichert, wobei bei Block 604 der Leseverstärker wartet, während ein Schreib-Treiber einen weiteren vorbestimmten Logikwert (z. B. eine digitale „1") in dem zweiten Speicherelement speichert.
  • Bei Block 510 tastet der Leseverstärker den Inhalt des ersten Speicherelements ab und bei Block 606 tastet der Leseverstärker den Inhalt des zweiten Speicherelements ab. Bei Block 514 kann der Leseverstärker eine Entscheidungsschwelle aus diesen digitalen Messungen bestimmen. Bei den Blöcken 514 und 608 kann der Leseverstärker die ursprünglichen Messungen des ersten und des zweiten Speicherelements mit der Entscheidungsschwelle vergleichen, um die ursprünglichen Datenwerte dieser Speicherelemente zu bestimmen. Bei Block 514 bestimmt der Leseverstärker, ob sich der ursprüngliche Datenwert von dem gegenwärtigen Datenwert unterscheidet, wobei er, falls dies der Fall ist, wartet, während ein Schreib-Treiber den ursprünglichen Datenwert an dem ersten Speicherelement wiederherstellt. Ähnlich wartet bei Block 610 der Leseverstärker, falls dies nötig ist, bis ein Schreib-Treiber das zweite Speicherelement in seinen ursprünglichen Zustand wiederhergestellt hat. Danach fährt der sequentielle Lesevorgang wie zuvor fort.
  • Bei beiden oben beschriebenen Ausführungsbeispielen fährt der sequentielle Lesevorgang schnell fort, sobald die Entscheidungsschwelle bestimmt wurde. Dies kann alle Verzögerungen, die durch die Anzahl von Operationen bewirkt werden, die zur Bestimmung der Entscheidungsschwelle zu Beginn jedes sequentiellen Lesevorgangs benötigt werden, wirksam lindern. Obwohl die Anzahl von Operationen zur Bestimmung einer Entscheidungsschwelle in 6 größer als in 5 ist, besteht unter Umständen eine größere Gelegenheit zur Gleichzeitigkeit. Die Schreiboperationen der Blöcke 504 und 604 können z. B. gleichzeitig durchgeführt werden, wie auch die Operationen der Blöcke 514 und 610 (falls benötigt). Die Verwendung einer Gleichzeitigkeit kann es tatsächlich ermöglichen, daß der sequentielle Lesevorgang aus 6 den aus 5 übertrifft.
  • So wurde eine Speichervorrichtung, die einen Referenz-eingeleiteten sequentiellen Lesevorgang aufweist, beschrieben. Die beschriebenen Vorgänge können die besten Aspekte von sowohl destruktiven als auch nicht-destruktiven Lese-Vorgängen kombinieren, um die Rate und Zuverlässigkeit von Speichervorrichtungen zu erhöhen, ohne zusätzlichen Raum in dem Speicherarray zu benötigen. Während der Vorgang in dem Zusammenhang eines gestützten Magnetspeichers beschrieben wurde, sind die Ansprüche auf keinen derartigen Zusammenhang eingeschränkt. Im Gegenteil beinhalten die Ansprüche nicht-gestützte Speichervorrichtungen und weitere Speicher- technologien.
  • Die obige Erläuterung ist nur als darstellend für die Prinzipien und verschiedenen Ausführungsbeispiele der vorliegenden Erfindung beabsichtigt. Zahlreiche Variationen und Modifizierungen werden für Fachleute auf diesem Gebiet ersichtlich, sobald sie die obige Beschreibung vollständig aufgefaßt haben. Der sequentielle Lesevorgang kann z. B. mit Speicherzellen beginnen, die zum Speichern bekannter Werte reserviert sind, d. h. der ersten und zweiten Zeile in jeder Spalte des Speicherarrays, die zum Speichern eines bekannten „0"- bzw. „1"-Werts reserviert sein können. Diese Variation tauscht zusätzlichen Raum, der durch Referenzzellen verbraucht wird, gegen Zeiteinsparungen bei der sequentiellen Lese-Operation ein. Die Zeiteinsparungen resultieren aus einem Beseitigen der gemischten Schreib-Operationen aus den Lese-Operationen.

Claims (22)

  1. Referenz-eingeleitetes sequentielles Leseverfahren, mit folgenden Schritten: Bilden (502) einer ersten Attribut-Messung, die einem gespeicherten Datenwert in einem ersten Speicherelement zugeordnet ist; Verwenden des ersten Speicherelements, um eine Entscheidungsschwelle zu bestimmen (512); Vergleichen der ersten Attribut-Messung mit der Entscheidungsschwelle, um den gespeicherten Datenwert in dem ersten Speicherelement zu bestimmen (514); Bilden (524) einer nachfolgenden Attribut-Messung, die einem gespeicherten Datenwert in einem nachfolgenden Speicherelement zugeordnet ist; und Vergleichen der nachfolgenden Attribut-Messung mit der Entscheidungsschwelle, um den gespeicherten Datenwert in dem nachfolgenden Speicherelement zu bestimmen (526).
  2. Verfahren gemäß Anspruch 1, bei dem das Verwenden des ersten Speicherelements, um die Entscheidungsschwelle zu bestimmen (512), folgende Schritte aufweist: Schreiben (504) eines vorbestimmten Datenwerts in das erste Speicherelement; und Messen (506) eines Attributs, das dem vorbestimmten Datenwert in dem ersten Speicherelement zugeordnet ist.
  3. Verfahren gemäß Anspruch 2, bei dem das Verwenden des ersten Speicherelements, um die Entscheidungsschwelle zu bestimmen (512), ferner folgende Schritte aufweist: Schreiben (508) eines zweiten vorbestimmten Datenwerts in das erste Speicherelement; und Messen (510) eines Attributs, das dem zweiten vorbestimmten Datenwert in dem ersten Speicherelement zugeordnet ist.
  4. Verfahren gemäß Anspruch 3, bei dem das Verwenden des ersten Speicherelements, um die Entscheidungsschwelle zu bestimmen (512), ferner folgenden Schritt aufweist: Mitteln von Attribut-Messungen, die dem ersten und dem zweiten vorbestimmten Datenwert in dem ersten Speicherelement zugeordnet sind.
  5. Verfahren gemäß einem der Ansprüche 2 bis 4, das ferner folgende Schritte aufweist: Bilden (602) einer zweiten Attribut-Messung, die einem gespeicherten Datenwert in einem zweiten Speicherelement zugeordnet ist; und Verwenden des zweiten Speicherelements in Verbindung mit dem ersten Speicherelement, um die Entscheidungsschwelle (512) zu bestimmen.
  6. Verfahren gemäß Anspruch 5, bei dem das Verwenden des zweiten Speicherelements, um die Entscheidungsschwelle zu bestimmen, folgende Schritte aufweist: Schreiben (604) eines zweiten vorbestimmten Datenwerts in das zweite Speicherelement; und Messen (606) eines Attributs, das dem zweiten vorbestimmten Datenwert in dem zweiten Speicherelement zugeordnet ist.
  7. Verfahren gemäß einem der Ansprüche 1 bis 6, das ferner folgende Schritte aufweist: nach dem Bestimmen der Entscheidungsschwelle, Bilden (522, 524) einer Sequenz von Attribut-Messungen, die einer entsprechenden Sequenz von Speicherelementen zugeordnet sind; und Vergleichen der Attribut-Messungen mit der Entscheidungsschwelle, um gespeicherte Datenwerte in der Sequenz von Speicherelementen zu bestimmen (526).
  8. Verfahren gemäß Anspruch 7, bei dem das erste Speicherelement und die Sequenz von Speicherelementen benachbart und entlang einer Spalte oder Zeile in einem Speicherarray ausgerichtet sind.
  9. Speicher mit folgenden Merkmalen: einer Mehrzahl (302) benachbarter Speicherelemente; und einem Leseverstärker (420), der mit der Mehrzahl von Speicherelementen gekoppelt ist, wobei der Leseverstärker konfiguriert ist, um nacheinander Datenwerte zu bestimmen, die in der Mehrzahl benachbarter Speicherelemente (404, 406) gespeichert sind, nachdem ein erstes Speicherelement (402) zur Bestimmung einer Entscheidungsschwelle verwendet wurde.
  10. Speicher gemäß Anspruch 9, bei dem die Entscheidungsschwelle unverändert verwendet wird, um die Datenwerte in jedem der Mehrzahl benachbarter Speicherelemente (302) zu bestimmen.
  11. Speicher gemäß Anspruch 9 oder 10, bei dem die Mehrzahl (302) benachbarter Speicherelemente entlang einer Spalte ausgerichtet ist.
  12. Speicher gemäß einem der Ansprüche 9 bis 11, bei dem der Leseverstärker (420) konfiguriert ist, um eine Entscheidungsschwelle als Teil eines Bestimmens von Daten in jeder mehrerer unterschiedlicher Mehrzahlen benachbarter Speicherelemente zu bestimmen.
  13. Speicher gemäß einem der Ansprüche 9 bis 12, bei dem der Leseverstärker ebenso ein zweites Speicherelement (404) in der Mehrzahl benachbarter Speicherelemente verwendet, um die Entscheidungsschwelle zu bestimmen.
  14. Speicher gemäß einem der Ansprüche 9 bis 13, wobei der Speicher ferner folgendes Merkmal aufweist: einen Lese-Puffer (428), der mit dem Leseverstärker (420) gekoppelt ist und konfiguriert ist, um einen Sektor von Lese-Daten zu puffern.
  15. Speicher gemäß einem der Ansprüche 9 bis 14, wobei der Speicher ferner folgendes Merkmal aufweist: einen Fehlerkorrekturcode- (ECC-) Decodierer (424), der mit dem Leseverstärker gekoppelt ist und konfiguriert ist, um einen Fehlerkorrektur bezüglich Datenwerten durchzuführen, die von dem Leseverstärker (420) empfangen werden.
  16. Speicher gemäß einem der Ansprüche 9 bis 15, der ferner folgendes Merkmal aufweist: einen Schreib-Treiber (422), der mit dem ersten Speicherelement (402) gekoppelt ist und konfiguriert ist, um zumindest einen vorbestimmten Wert in dem ersten Speicherelement zu speichern, wobei der Leseverstärker eine Messung eines Attributs, das dem vorbestimmten Wert zugeordnet ist, verwendet, um die Entscheidungsschwelle zu bestimmen.
  17. Digitale Vorrichtung mit folgenden Merkmalen: einer Speichereinrichtung zum Speichern von Datensektoren; und einer Leseeinrichtung zum sequentiellen Wiedergewinnen von Datensektoren aus der Datenspeichereinrichtung, wobei als ein Teil des Wiedergewinnens jedes Datensektors die Leseeinrichtung eine Entscheidungsschwelle unter Verwendung eines Abschnitts der Speichereinrichtung bestimmt, die einen ersten Wert in dem Datensektor speichert.
  18. Digitale Vorrichtung gemäß Anspruch 17, bei der die Leseeinrichtung die Entscheidungsschwelle unverändert verwendet, wenn die Leseeinrichtung einen Datensektor wiedergewinnt.
  19. Digitale Vorrichtung gemäß Anspruch 17 oder 18, bei der die Datensektoren entlang Spalten in der Speichereinrichtung gespeichert sind.
  20. Digitale Vorrichtung gemäß einem der Ansprüche 17 bis 19, die ferner folgendes Merkmal aufweist: eine Schreibeinrichtung zum Speichern zumindest eines vorbestimmten Datenwerts in dem Abschnitt der Speichereinrichtung.
  21. Referenz-eingeleitetes sequentielles Leseverfahren, mit folgenden Schritten: Bilden (510) einer ersten Attribut-Messung, die einem bekannten Datenwert in einem ersten Referenzspeicherelement zugeordnet ist; Bilden (606) einer zweiten Attribut-Messung, die einem bekannten Datenwert in einem zweiten Referenzspeicherelement zugeordnet ist; Kombinieren der ersten und der zweiten Attribut-Messung, um eine Entscheidungsschwelle zu bestimmen (512); Bilden (524) einer nachfolgenden Attribut-Messung, die einem gespeicherten Datenwert in einem nachfolgenden Speicherelement zugeordnet ist; und Vergleichen der nachfolgenden Attribut-Messung mit der Entscheidungsschwelle, um den gespeicherten Datenwert in dem nachfolgenden Speicherelement zu bestimmen (526).
  22. Verfahren gemäß Anspruch 21, bei dem das Kombinieren der Attribut-Messungen ein Mitteln der Attribut-Messungen aufweist.
DE102004019675A 2003-08-28 2004-04-22 Speicher mit Referenz-eingeleitetem sequentiellen Lesen Expired - Fee Related DE102004019675B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/650,278 2003-08-28
US10/650278 2003-08-28
US10/650,278 US7006388B2 (en) 2003-08-28 2003-08-28 Memory with reference-initiated sequential sensing

Publications (2)

Publication Number Publication Date
DE102004019675A1 true DE102004019675A1 (de) 2005-04-07
DE102004019675B4 DE102004019675B4 (de) 2010-01-21

Family

ID=34217119

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004019675A Expired - Fee Related DE102004019675B4 (de) 2003-08-28 2004-04-22 Speicher mit Referenz-eingeleitetem sequentiellen Lesen

Country Status (4)

Country Link
US (1) US7006388B2 (de)
JP (1) JP4050261B2 (de)
KR (1) KR20050021870A (de)
DE (1) DE102004019675B4 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2875352B1 (fr) * 2004-09-10 2007-05-11 St Microelectronics Sa Procede de detection et de correction d'erreurs pour une memoire et circuit integre correspondant
US7685375B2 (en) * 2006-06-06 2010-03-23 International Business Machines Corporation Protecting confidential information on portable storage media
US7453740B2 (en) 2007-01-19 2008-11-18 International Business Machines Corporation Method and apparatus for initializing reference cells of a toggle switched MRAM device
US7596045B2 (en) * 2007-10-31 2009-09-29 International Business Machines Corporation Design structure for initializing reference cells of a toggle switched MRAM device

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3599186A (en) * 1970-05-14 1971-08-10 Ibm Memory-centered computer system
US6188615B1 (en) 1999-10-29 2001-02-13 Hewlett-Packard Company MRAM device including digital sense amplifiers
US6504779B2 (en) * 2001-05-14 2003-01-07 Hewlett-Packard Company Resistive cross point memory with on-chip sense amplifier calibration method and apparatus
KR100390959B1 (ko) * 2001-06-29 2003-07-12 주식회사 하이닉스반도체 센싱회로를 이용한 멀티레벨 플래시 메모리 프로그램/리드방법
US6870770B2 (en) * 2001-12-12 2005-03-22 Micron Technology, Inc. Method and architecture to calibrate read operations in synchronous flash memory

Also Published As

Publication number Publication date
KR20050021870A (ko) 2005-03-07
JP4050261B2 (ja) 2008-02-20
JP2005078794A (ja) 2005-03-24
DE102004019675B4 (de) 2010-01-21
US20050047219A1 (en) 2005-03-03
US7006388B2 (en) 2006-02-28

Similar Documents

Publication Publication Date Title
DE102008003944B4 (de) Speichersystem und Programmierverfahren für ein Speichersystem
DE102018122491A1 (de) Halbleiterspeichervorrichtung und verfahren zum betreiben derselben
DE102017104257A1 (de) Auf Zellenstrom basierende Bitleitungsspannung
DE102008003043A1 (de) Speicher mit Fehlerkorrekturcodeschaltung
DE102012108545A1 (de) Verfahren zum Auslesen von Speicherzellen mit unterschiedlichen Schwellwertspannungen ohne Änderung der Wortleitungsspannung, sowie nicht-flüchtige Speichervorrichtung, die dieses verwendet
DE19937101A1 (de) Halbleiterspeicherbauelement mit Chipinterner Fehlerkorrekturschaltung und ein Verfahren zum Korrigieren eines Datenfehlers darin
DE102004063571A1 (de) System und Verfahren zum Konfigurieren einer Festkörperspeicherungsvorrichtung mit Fehlerkorrekturcodierung
DE10233642A1 (de) Fehlerkorrektur-Kodierung und -Dekodierung in einer Festkörper-Speicherungsvorrichtung
DE102011087102A1 (de) Verfahren zum Lesen von Speicherzellen, nichtflüchtiges Speicherelement, elektronisches Gerät, Speicherkarte und Datenspeichervorrichtung
DE102007016460A1 (de) Nichtflüchtiges Speicherbauelement, nichtflüchtiges Speichersystem und Leseverfahren für ein nichtflüchtiges Speicherbauelement
DE3902425A1 (de) Inhaltsgesteuerte speichervorrichtung (cam) und betriebsverfahren
DE60012081T2 (de) Nichtflüchtige Halbleiterspeicheranordnung, die eine Datenleseoperation während einer Datenschreib/lösch-Operation erlaubt
DE102013104196A1 (de) System und Verfahren mit dreidimensionaler nichtflüchtiger Speichervorrichtung und Direktzugriffsspeicher
DE102005063166A1 (de) Nicht-flüchtiges Speicherelement und Verfahren zur Programmierüberprüfung in einem nicht-flüchtigen Speicherelement
DE102004039236B4 (de) Magnetischer Speicher
DE112014005810B4 (de) anagement der Datenspeicherung in analogen Speicherzellen unter Verwendung einer nicht ganzzahligen Anzahl von Bits pro Zelle
US6947322B2 (en) Semiconductor memory device
DE102013108456A1 (de) Nichtflüchtige Speichervorrichtung und Programmierverfahren
DE102018121993A1 (de) Speichervorrichtung zum Verhindern einer Doppelprogrammierung einer Ausfalladresse und Betriebsverfahren dafür
DE102015113414A1 (de) Fehlerkorrektur unter Verwendung von WOM-Codes
DE102019135863A1 (de) Speichercontroller, Speichervorrichtung und Speichersystem mit verbesserten Schwellenspannungs-Verteilungseigenschaften und ähnliche Betriebsverfahren
DE112017004916T5 (de) Verwendung von Kompression zur Kapazitätserhöhung eines speicherseitigen Caches mit grosser Blockgrösse
DE112020003768T5 (de) Verfahren zur fehlererkennung und korrektur und entsprechende systeme und geräte dafür
DE19956461A1 (de) Nichtflüchtige Halbleiterspeichereinrichtung, die Mehrfachbit-Daten speichert
DE102004019675B4 (de) Speicher mit Referenz-eingeleitetem sequentiellen Lesen

Legal Events

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