DE102022113173A1 - Programmierbare ecc für mram-gemischtes-leseschema - Google Patents

Programmierbare ecc für mram-gemischtes-leseschema Download PDF

Info

Publication number
DE102022113173A1
DE102022113173A1 DE102022113173.4A DE102022113173A DE102022113173A1 DE 102022113173 A1 DE102022113173 A1 DE 102022113173A1 DE 102022113173 A DE102022113173 A DE 102022113173A DE 102022113173 A1 DE102022113173 A1 DE 102022113173A1
Authority
DE
Germany
Prior art keywords
memory
read
codeword
current
ecc
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.)
Pending
Application number
DE102022113173.4A
Other languages
English (en)
Inventor
Martin Hassner
Michael Nicolas Albert Tran
Ward Parkinson
Michael Grobis
Nathan Franklin
Raj Ramanujan
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.)
SanDisk Technologies LLC
Original Assignee
SanDisk Technologies LLC
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
Priority claimed from US17/485,129 external-priority patent/US11978491B2/en
Application filed by SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of DE102022113173A1 publication Critical patent/DE102022113173A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/1201Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising I/O circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C2029/1802Address decoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Mram Or Spin Memory Techniques (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)
  • Computer Hardware Design (AREA)

Abstract

Es wird eine Technologie für eine schnelle ECC-Engine für ein gemischtes Lesen von MRAM-Zellen offenbart. Ein Codewort, das aus MRAM-Zellen unter Verwendung eines referenzierten Lesens gelesen wird, wird unter Verwendung eines ersten ECC-Modus decodiert. Wenn die Decodierung erfolgreich ist, werden die Ergebnisse einem Host bereitgestellt. Wenn die Decodierung fehlschlägt, wird ein selbstreferenziertes Lesen (SRR) durchgeführt. Die unter Verwendung des SRR gelesenen Daten werden mit einem zweiten ECC-Modus decodiert, der in der Lage ist, eine größere Anzahl von Bits zu korrigieren als der erste ECC-Modus. Der zweite ECC-Modus kann eine höhere Fehlkorrekturrate aufweisen als der erste ECC-Modus (für eine gegebene Rohbitfehlerrate (RBER)). Die RBER kann jedoch niedriger sein, wenn der zweite ECC-Modus verwendet wird. Daher können der erste und der zweite ECC-Modus zu ungefähr der gleichen Wahrscheinlichkeit eines nicht erkennbaren Fehlers (oder einer Fehlkorrektur) führen.

Description

  • PRIORITÄTSANSPRUCH
  • Die vorliegende Anmeldung ist eine Teilfortsetzung der US-Patentanmeldung Nr. 17/485,129, mit dem Titel „MIXED CURRENT-FORCE READ SCHEME FOR RERAM ARRAY WITH SELECTOR“, von Tran et al., eingereicht am 24. September 2021, das hiermit durch Bezugnahme in seiner Gesamtheit aufgenommen wird.
  • HINTERGRUND
  • Speicher wird in verschiedenen elektronischen Vorrichtungen wie Mobiltelefonen, Digitalkameras, Personal Digital Assistants, medizinischer Elektronik, mobilen Computervorrichtungen, nicht-mobilen Computervorrichtungen und Datenservern verwendet. Der Speicher kann einen nichtflüchtigen Speicher oder einen flüchtigen Speicher aufweisen. Ein nichtflüchtiger Speicher ermöglicht, dass Informationen gespeichert und behalten werden, selbst wenn der nichtflüchtige Speicher nicht mit einer Stromquelle (z. B. einer Batterie) verbunden ist.
  • Die Speicherzellen können sich in einem Kreuzpunktspeicherarray befinden. In einem Speicherarray mit einer Kreuzpunktarchitektur verläuft ein erster Satz von Leiterbahnen über die Oberfläche eines Substrats und ein zweiter Satz von Leiterbahnen wird über dem ersten Satz von Leiterbahnen gebildet, wobei letztere in einer Richtung senkrecht zu dem ersten Satz von Leiterbahnen über das Substrat verlaufen. Die Speicherzellen befinden sich an den Kreuzpunktkontakten der beiden Sätze von Leiterbahnen.
  • Eine Speicherzelle mit reversibler Resistivität wird aus einem Material mit einem programmierbaren Widerstand gebildet. In einem binären Ansatz kann die Speicherzelle an jedem Kreuzpunkt in einen von zwei Widerstandszuständen programmiert werden: High und Low. Bei manchen Ansätzen können auch mehr als zwei Widerstandszustände verwendet werden. Eine Art von Speicherzellen mit reversibler Resistivität ist eine magnetoresistive Direktzugriffsspeicherzelle (MRAM-Zelle). Eine MRAM-Zelle verwendet Magnetisierung, um gespeicherte Daten darzustellen, im Gegensatz zu einigen anderen Speichertechnologien, die elektronische Ladungen verwenden, um Daten zu speichern. Ein Bit von Daten wird in eine MRAM-Zelle geschrieben, indem die Richtung der Magnetisierung eines magnetischen Elements („die freie Schicht“) innerhalb der MRAM-Zelle geändert wird, und ein Bit wird durch Messen des Widerstands der MRAM-Zelle gelesen (ein geringer Widerstand stellt üblicherweise ein „0“-Bit und ein hoher Widerstand stellt üblicherweise ein „1"-Bit dar).
  • Das Lesen von Speicherzellen mit reversibler Resistivität, einschließlich, aber nicht beschränkt auf MRAM-Zellen, stellt eine Herausforderung dar. Eine Technik zum Lesen reversibler Widerstandszellen ist das referenzierte Lesen, bei dem ein Zustand der Speicherzelle mit einem Referenzsignal, wie einer Referenzspannung, verglichen wird. Ein Signal wird an die Speicherzelle angelegt, um den Zustand der Speicherzelle zu bestimmen. So kann zum Beispiel eine Spannung an die Speicherzelle angelegt werden, die zu einem Strom führt, dessen Größe repräsentativ für den Widerstand der Speicherzelle ist. Der Strom kann in eine Probespannung umgewandelt werden, die mit der Referenzspannung verglichen wird. Der Zustand der Speicherzelle wird danach bestimmt, ob die Probespannung höher oder niedriger ist als die Referenzspannung.
  • Eine andere Technik zum Lesen reversibler Widerstandszellen ist das selbstreferenzierte Lesen (SRR). Eine SSR-Technik schließt ein erstes Lesen, ein Schreiben in einen bekannten Zustand und ein zweites Lesen ein. Eine Technik für das erste Lesen besteht darin, eine Lesespannung an die Speicherzelle anzulegen, was zu einem Strom führt, dessen Größe repräsentativ für den Widerstand der Speicherzelle ist und gespeichert wird. Die gespeicherte Spannung kann zum Vergleich mit einer späteren Messung angepasst werden (z. B. um 150 mv nach oben). Eine Technik für das zweite Lesen besteht darin, die Lesespannung an die Speicherzelle anzulegen, was zu einem Strom führt, dessen Größe repräsentativ für den Widerstand der Speicherzelle ist. Eine Spannungsprobe aus dem ersten Lesen wird gespeichert und mit einer Spannungsprobe aus dem zweiten Lesen verglichen. Die Bestimmung des ursprünglichen Zustands der Speicherzelle hängt von der Differenz zwischen der ersten angepassten Lesespannung und der zweiten Lesespannung nach dem destruktiven Schreiben in einen bekannten Zustand ab. Wenn das zweite Lesen dann zeigt, dass sich der Zustand des Bits nicht geändert hat, war es vor dem destruktiven Schreiben im Zustand des destruktiven Schreibens. Wenn sich der Zustand des Bits ändert, wurde es durch das destruktive Schreiben von einem anderen Zustand in den Zustand versetzt, in den das destruktive Schreiben das Bit versetzt.
  • Figurenliste
  • Gleich nummerierte Elemente beziehen sich auf gemeinsame Komponenten in den verschiedenen Figuren.
    • 1 ist ein Blockdiagramm, das eine Ausführungsform eines nichtflüchtigen Speichersystems darstellt, das mit einem Host verbunden ist.
    • 2 ist ein Blockdiagramm einer Ausführungsform einer Front-End-Prozessorschaltung. In einigen Ausführungsformen ist die Front-End-Prozessorschaltung Teil eines Speichercontrollers.
    • 3 ist ein Blockdiagramm einer Ausführungsform einer Back-End-Prozessorschaltung. In einigen Ausführungsformen ist die Back-End-Prozessorschaltung Teil eines Speichercontrollers.
    • 4 ist ein Blockdiagramm einer Ausführungsform eines Speicherpakets.
    • 5A ist ein Blockdiagramm einer Ausführungsform eines Speicherchips.
    • 5B ist ein Blockdiagramm einer Ausführungsform einer integrierten Speicheranordnung, die einen Steuerchip und einen Speicherstrukturchip enthält.
    • 6A stellt eine Seitenansicht einer Ausführungsform einer integrierten Speicheranordnung dar, die auf einem Substrat gestapelt ist.
    • 6B stellt eine Seitenansicht einer Ausführungsform einer integrierten Speicheranordnung dar, die auf einem Substrat gestapelt ist.
    • 7A stellt eine Ausführungsform eines Abschnitts eines Speicherarrays dar, das eine Kreuzpunktarchitektur in einer Schrägansicht bildet.
    • 7B und 7C zeigen jeweils Seitenansichten und Draufsichten der Kreuzpunktstruktur in 7A.
    • 7D stellt eine Ausführungsform eines Abschnitts eines zweistufigen Speicherarrays dar, das in einer Schrägansicht eine Kreuzpunktarchitektur bildet.
    • 8 veranschaulicht eine Ausführungsform für die Struktur einer MRAM-Speicherzelle, hier wird beispielsweise die ausgewählte Zelle durch eine Stromquelle zum Lesen oder Schreiben angesteuert.
    • 9 veranschaulicht detaillierter eine Ausführungsform für eine MRAM-Speicherzellengestaltung, wie sie in einem Kreuzpunktarray implementiert wäre.
    • 10A und 10B veranschaulichen das Schreiben einer MRAM-Speicherzelle durch einen Stromfluss, der einen Spin-Torque-Transfer (STT) erzeugt.
    • 11A und 11B veranschaulichen Ausführungsformen für die Integration von Schwellenschaltselektoren in ein MRAM-Speicherarray mit einer Kreuzpunktarchitektur.
    • 12 stellt eine Ausführungsform eines Speicherarrays mit einer Kreuzpunktarchitektur dar.
    • 13 ist ein Flussdiagramm einer Ausführungsform eines Prozesses eines gemischten Strom-Kraft-Lesens.
    • 14 ist ein Flussdiagramm einer Ausführungsform eines Prozesses eines gemischten Strom-Kraft-Lesens, bei dem eine ECC-Engine verwendet wird, um zu testen, ob ein Strom-Kraft-referenziertes Lesen erfolgreich ist.
    • 15A ist ein Flussdiagramm einer Ausführungsform eines Prozesses eines gemischten Strom-Kraft-Lesens, bei dem Speicherzellen daraufhin getestet werden, ob sie sich in einem Unsicherheitsbereich befinden.
    • 15B stellt zwei Widerstandsverteilungen von Speicherzellen dar, mit einem Unsicherheitsbereich zwischen den beiden Widerstandsverteilungen.
    • 15C stellt das Konzept des Unsicherheitsbereichs dar, wobei die horizontale Achse die Spannung ist.
    • 15D stellt eine Schaltung dar, mit der festgestellt werden kann, ob sich eine Speicherzelle in dem Unsicherheitsbereich befindet.
    • 16 ist ein Flussdiagramm, das eine Ausführungsform eines Prozesses des Strom-Kraft-referenzierten Lesens darstellt.
    • 17 ist ein Flussdiagramm, das eine Ausführungsform eines Prozesses des Strom-Kraft-SRR darstellt.
    • 18A stellt die Stromstärke in Abhängigkeit von der Zeit für einen abgerufenen Bitstrom dar, der während einer Ausführungsform des Strom-Kraft-SRR durch eine ausgewählte Wortleitung geleitet wird.
    • 18B stellt die Spannung in Abhängigkeit von der Zeit für die Spannung an einer ausgewählten MRAM-Zelle während einer Ausführungsform der Strom-Kraft dar, wobei die gestrichelten Linien für ein Bit, das sich bereits im AP-Zustand befindet, und die durchgezogene Linie für ein Bit im P-Zustand, das während der Wellenform 1822 in den AP-Zustand geschrieben wird, steht.
    • 19 ist ein Flussdiagramm, das eine Ausführungsform eines Prozesses darstellt, bei dem ein Wert eines Strom-Kraft-referenzierten Lesens gespeichert und bei einem Strom-Kraft-SRR verwendet wird.
    • 20 ist ein Blockdiagramm von Komponenten zum Erzwingen eines Stroms in einer Wortleitung.
    • 21 ist ein schematisches Diagramm einer Ausführungsform eines Stromgenerators, der die Schwankungen des Stroms von Kachel zu Kachel trotz unterschiedlicher Abstände zu Referenz- und Stromversorgung reduziert.
    • 22 ist ein Flussdiagramm einer Ausführungsform eines Prozesses für eine deterministische Rücklaufzeit bei Verwendung eines gemischten Strom-Kraft-Leseschemas.
    • 23 und 24 stellen Zeitdiagramme der Schnittstelle für eine Ausführungsform des gemischten Strom-Kraft-Lesens dar.
    • 25 ist ein Flussdiagramm einer Ausführungsform eines Prozesses zur Mitteilung, dass ein erneuter Leseversuch in einem gemischten Strom-Kraft-Leseschema durchgeführt werden soll.
    • 26A ist ein Diagramm, das Komponenten einer Ausführungsform eines Speicherchips mit einer programmierbaren ECC-Engine darstellt.
    • 26B ist ein Diagramm, das Komponenten einer Ausführungsform einer integrierten Speicheranordnung mit einer programmierbaren ECC-Engine darstellt.
    • 27 ist ein Flussdiagramm einer Ausführungsform eines Prozesses zum Lesen von Daten, die in nichtflüchtigen Speicherzellen gespeichert sind, unter Verwendung einer programmierbaren ECC-Engine.
    • 28 ist ein Blockdiagramm, das weitere Details einer Ausführungsform eines programmierbaren ECC-Decoders veranschaulicht.
    • 29 ist ein Graph, der ein Beispiel der Korrekturleistung in der probabilistischen Benutzerbitfehlerrate (PUBER) gegenüber der Rohbitfehlerrate (RBER) darstellt.
    • 30 ist ein Graph, der ein Beispiel für eine probabilistisch nicht erkennbare Fehlerrate (PUER) gegenüber der Fehlerzählung darstellt.
  • DETAILLIERTE BESCHREIBUNG
  • Hierin wird eine Technologie für eine schnelle ECC-Engine für ein gemischtes Lesen von Speicherzellen mit reversibler Resistivität, wie z. B. magnetoresistive Direktzugriffsspeicherzellen (MRAM-Zellen), offenbart. In einer Ausführungsform wird ein Codewort aus einer Gruppe der Speicherzellen unter Verwendung eines referenzierten Lesens gelesen. Das Codewort wird mit einem ersten Fehlerkorrekturcode-Modus (ECC-Modus) decodiert, der in der Lage ist, eine erste Anzahl von Bits in dem Codewort zu korrigieren. Wenn das Decodieren der Daten von referenziertem Lesen erfolgreich war, werden die Ergebnisse des referenzierten Lesens einem Host bereitgestellt. Wenn die Decodierung fehlschlägt, wird ein selbstreferenziertes Lesen (SRR) durchgeführt. In einer Ausführungsform wird Bestehen oder Nichtbestehen durch einen ECC-Decoder bestimmt, der den ECC-Modus ausführt. Ein nicht korrigierbarer Fehler tritt auf, wenn der ECC-Decoder meldet, dass das Decodieren der Daten nicht erfolgreich war (oder fehlschlägt). Die unter Verwendung des SRR gelesenen Daten werden mit einem zweiten ECC-Modus decodiert, der in der Lage ist, eine zweite Anzahl von Bits in dem Codewort zu korrigieren, die größer als die erste Anzahl von Bits ist. In einigen Ausführungsformen weist der erste ECC-Modus eine erste Fehler-Fehlkorrekturrate und der zweite ECC-Modus eine zweite Fehler-Fehlkorrekturrate auf, die größer als die erste Fehler-Fehlkorrekturrate (für dieselbe Rohbiorfehlerrate) ist. Eine Fehlkorrektur tritt auf, wenn der ECC-Decoder meldet, dass das Decodieren erfolgreich war (bestanden wurde), obwohl es einen oder mehrere Fehler in den Daten gibt. Eine Fehlkorrektur kann hierin auch als nicht erkennbarer Fehler bezeichnet werden. In einer Ausführungsform wird jedoch die Rohbitfehlerrate bei Verwendung des zweiten ECC-Modus niedriger sein als bei Verwendung des ersten ECC-Modus. Die niedrigere Rohbitfehlerrate, wenn der zweite ECC-Modus verwendet wird, senkt die Fehlkorrekturrate erheblich. Daher kann der zweite ECC-Modus bei den tatsächlichen Rohbitfehlerraten, die bei Verwendung des ersten ECC-Modus und des zweiten ECC-Modus auftreten, etwa die gleiche Fehlkorrekturrate wie den ersten ECC-Modus aufweisen.
  • Daher führt in einer Ausführungsform unter Verwendung des ECC-Modus mit der höheren Korrekturfähigkeit für das SRR zu einer geringeren Wahrscheinlichkeit eines nicht korrigierbaren Fehlers relativ zu dem Modus mit niedrigerer Korrekturfähigkeit. Zum Beispiel führt zum selbstreferenzierten Lesen unter Verwendung eines ECC-Modus, der bis zu neun Bits korrigieren kann, eine geringere Wahrscheinlichkeit eines nicht korrigierbaren Fehlers als wenn der ECC-Modus verwendet würde, der bis zu sechs Bits korrigieren kann. Darüber hinaus kann, obwohl der zweite ECC-Modus eine höhere Wahrscheinlichkeit eines nicht korrigierbaren Fehlers als der erste ECC-Modus für Dieselbe Rohbiorfehlerrate aufweisen kann, die Rohbitfehlerrate, die vorhanden ist, wenn der zweite ECC-Modus verwendet wird, niedriger als die Rohbitfehlerrate sein, wenn der erste ECC-Modus verwendet wird. Daher kann der zweite ECC-Modus unter Berücksichtigung der niedrigeren Rohbiorfehlerrate für den zweiten ECC-Modus (während SRR) etwa die gleiche Wahrscheinlichkeit eines nicht korrigierbaren Fehlers als den ersten ECC-Modus aufweisen.
  • In einigen Ausführungsformen sind das referenzierte Lesen und das SRR jeweils Strom-Kraft-Lesen. Beim Strom-Kraft-Lesen wird ein Strom durch die Speicherzelle gezwungen und es wird eine Spannung gemessen, die als Ergebnis an der Zelle und der Auswahlschaltung auftritt. Die gemessene Spannung ist repräsentativ für den Widerstand der Speicherzelle. Die Speicherzellen können sich in einem Kreuzpunktspeicherarray befinden. In einer Ausführungsform hat jede Speicherzelle ein resistives Direktzugriffsspeicherelement in Reihe mit einem zweipoligen Selektorelement. Bei dem zweipoligen Selektorelement kann es sich um einen Schwellenschaltselektor wie einen ovonischen Schwellenwertschalter (OTS) handeln. In einer Ausführungsform weist das resistive Direktzugriffsspeicherelement ein magnetoresistives Direktzugriffsspeicherelement (MRAM-Element) auf.
  • Wie bereits erwähnt, kann es sich bei dem Lesen um Strom-Kraft-Lesen handeln. Bei einer Ausführungsform des Strom-Kraft-Lesens wird auf eine Speicherzelle zugegriffen, indem ein Strom durch die ausgewählte Wortleitung gezwungen wird, während eine Auswahlspannung an eine ausgewählte Bitleitung angelegt wird. Der Zugriffsstrom fließt durch einen Abschnitt der ausgewählten Wortleitung, durch die ausgewählte Speicherzelle und auch durch einen Abschnitt der ausgewählten Bitleitung; und durch jede der entsprechenden Decodierschaltungen. Als Reaktion auf den Zugriffsstrom wird eine Spannung über der ausgewählten Speicherzelle angezeigt. Die Spannung über der ausgewählten Speicherzelle hängt von der Größe des Zugriffsstroms und dem Widerstand der Speicherzelle ab. Die Spannung an der ausgewählten Speicherzelle ist somit repräsentativ für den Widerstand der Speicherzelle.
  • In einigen Ausführungsformen befinden sich die Speicherzellen in einem Kreuzpunktarray und sind magnetoresistive Direktzugriffsspeicherzellen (MRAM-Zellen). Eine MRAM-Zelle verwendet Magnetisierung, um gespeicherte Daten darzustellen, im Gegensatz zu einigen anderen Speichertechnologien, die elektronische Ladungen verwenden, um Daten zu speichern. Ein Bit von Daten wird in eine MRAM-Zelle geschrieben, indem die Richtung der Magnetisierung eines magnetischen Elements („die freie Schicht“) innerhalb der MRAM-Zelle geändert wird, und ein Bit wird durch Messen des Widerstands der MRAM-Zelle gelesen (ein geringer Widerstand stellt üblicherweise ein „0“-Bit und ein hoher Widerstand stellt üblicherweise ein „1“-Bit dar). Wie hierin verwendet, ist die Magnetisierungsrichtung die Richtung, in der das magnetische Moment in Bezug auf eine Referenzrichtung ausgerichtet ist, die durch ein anderes Element des MRAM („die Referenzschicht“) eingestellt wird. In einigen Ausführungsformen wird der niedrige Widerstand als ein Parallel- oder P-Zustand bezeichnet, und der hohe Widerstand wird als ein Antiparallel- oder AP-Zustand bezeichnet. MRAM kann den Spin-Transfer-Drehmoment-Effekt nutzen, um die Richtung der Magnetisierung vom P-Zustand in den AP-Zustand und umgekehrt zu ändern, was üblicherweise einen bipolaren Vorgang (bidirektionales Schreiben) zum Schreiben erfordert.
  • Ein herkömmlicher Ansatz zwingt eine Spannung über eine Speicherzelle und tastet den daraus resultierenden Strom der Speicherzelle ab, um Speicherzellen mit reversibler Resistivität wie MRAM-Zellen auszulesen. In einigen Ausführungsformen verfügt die MRAM-Zelle über einen Schwellenschaltselektor in Reihe mit dem programmierbaren Widerstandselement. Ein Beispiel für einen Schwellenschaltselektor ist ein ovonischer Schwellenwertschalter (OTS). Die elektrischen Eigenschaften des OTS können von einer Speicherzelle zur nächsten erheblich variieren, was die Lesetoleranz verringern kann. Die Verwendung eines solchen spannungsgesteuerten Ansatzes zum Lesen einer MRAM-Zelle in Reihe mit einem Schwellenschaltselektor kann problematisch sein. Ein Problem ist, dass die Technik des spannungsgesteuerten Lesens die Schwankungen der Spannungsabfälle an den Schwellenschaltselektoren nicht ausgleicht, wenn diese sich im Ein-Zustand befinden. Der Spannungsabfall im eingeschalteten Zustand wird auch als „Offsetspannung“ bezeichnet. Ein Strom-Kraft-Ansatz kann die Schwankungen der Offsetspannung in solchen Schwellenschaltselektoren kompensieren. Ein Strom-Kraft-Ansatz kann auch Probleme wie den Spannungsabfall über der ausgewählten Wortleitung und der ausgewählten Bitleitung kompensieren, der durch die Variation der Widerstände der Wortleitung und der Bitleitung je nach decodierter Position im Array entsteht.
  • Wie bereits erwähnt, können Probleme wie Schwankungen des OTS (elektrische Eigenschaften) die Lesetoleranz verringern. Eine Möglichkeit, dieses Problem zu lösen, besteht darin, ein größeres Signal zum Lesen der Speicherzelle zu verwenden. Um zum Beispiel eine MRAM-Zelle erfolgreich zu lesen, muss ein ausreichend großer Strom durch die Speicherzelle fließen. Alternativ dazu sollte eine ausreichend große Spannung über die Speicherzelle gezwungen werden, um eine MRAM-Zelle erfolgreich zu lesen. Sowohl die Strom-Kraft- als auch die Spannung-Kraft-Techniken führen zu einer Spannung über der Speicherzelle, die im Folgenden als Zellspannung bezeichnet werden wird. Wenn die Zellenspannung nicht groß genug ist, dann kann die Bitfehlerrate höher sein, als von der Fehlerkorrekturschaltung korrigiert werden kann. Ist die Zellenspannung jedoch zu hoch, wird die reversible Widerstandsspeicherzelle übermäßig beansprucht und ihre Lebensdauer verringert. In einigen Ausführungsformen begrenzt das Strom-Kraft-Lesen die Spannung, die an der Speicherzelle auftreten kann, indem die Spannung, die an der MRAM-Zelle auftreten kann, geklemmt wird.
  • Die Begriffe „oben“ und „unten“, „oberer“ und „unterer“, „vertikal“ und „horizontal“ und Formen davon, wie sie hierin verwendet werden können, sind lediglich beispielhaft und veranschaulichend und sollen die Beschreibung der Technologie insofern nicht einschränken, da der betreffende Gegenstand in Position und Ausrichtung ausgetauscht werden kann. Auch bedeuten, wie hierin verwendet, die Begriffe „im Wesentlichen“ und/oder „etwa“, dass die spezifizierte Abmessung oder der spezifizierte Parameter innerhalb einer akzeptablen Toleranz für eine gegebene Anwendung variiert werden kann.
  • 1 ist ein Blockdiagramm einer Ausführungsform eines nichtflüchtigen Speichersystems (oder kurz „Speichersystem“) 100, das mit einem Hostsystem 120 verbunden ist. Das Speichersystem 100 kann die hierin vorgestellte Technologie für ein gemischtes Strom-Kraft-Leseschema implementieren. Viele unterschiedliche Arten von Speichersystemen können mit der hierin vorgeschlagenen Technologie verwendet werden. Beispiele für Speichersysteme schließen Dual-Inline-Speichermodule (DIMMs), Festkörperlaufwerke („SSDs“), Speicherkarten und eingebettete Speichervorrichtungen ein; es können jedoch auch andere Arten von Speichersystemen verwendet werden.
  • Das Speichersystem 100 von 1 weist einen Controller 102, einen nichtflüchtigen Speicher 104 zum Speichern von Daten und einen lokalen Speicher 106 (z. B. MRAM, ReRAM, DRAM) auf. In einer Ausführungsform stellt der Speichercontroller 102 Zugriff auf Speicherzellen in einem Kreuzpunktarray im lokalen Speicher 106 bereit. Zum Beispiel kann der Speichercontroller 102 den Zugriff auf ein Kreuzpunktarray von M RAM-Zellen im lokalen Speicher 106 bereitstellen. In einer anderen Ausführungsform entfallen der Controller 102 oder die Schnittstelle 126 oder beides, und die Speicherpakete werden über einen Bus wie DDRn direkt mit dem Host 120 verbunden. Der lokale Speicher 106 kann auch als ein Speichersystem bezeichnet werden. Die Kombination aus dem Speichercontroller 102 und dem lokalen Speicher 106 kann hier als ein Speichersystem bezeichnet werden. In einigen Ausführungsformen werden die resistiven Direktzugriffsspeicherelemente im lokalen Speicher 106 unter Verwendung eines gemischten Strom-Kraft-Lesens gelesen, welches das Durchführen eines Strom-Kraft-referenzierten Lesens gefolgt von einem Strom-Kraft-SRR, wenn das Strom-Kraft-referenzierte Lesen nicht erfolgreich ist, einschließt.
  • Der Speichercontroller 102 weist eine Front-End-Prozessor-Schaltung (FEP-Schaltung) 110 und eine oder mehrere Back-End-Prozessor-Schaltungen (BEP-Schaltung) 112 auf. In einer Ausführungsform ist die FEP-Schaltung 110 auf einem ASIC implementiert. In einer Ausführungsform ist jede BEP-Schaltung 112 auf einem separaten ASIC implementiert. In anderen Ausführungsformen kann eine einheitliche Controller-ASIC sowohl die Front-End- als auch die Back-End-Funktionen kombinieren. In einer anderen Ausführungsform werden FEP und BEP zugunsten einer Richtungssteuerung durch den Host 120 eliminiert, und alle für den Speicher erforderlichen Funktionen werden auf dem Speicherchip generiert, wie ECC und Verschleißausgleich. Weitere Einzelheiten der On-Chip-Speicherwartung sind im US-Patent 10,545,692 mit dem Titel „Memory Maintenance Operations During Refresh Window“ und im US-Patent 10,885,991 mit dem Titel „Data Rewrite During Refresh Window“ beschrieben, die beide hiermit durch Bezugnahme in vollem Umfang aufgenommen werden. Wenn die Zeit, die für das Lesen des Speichers zur Verfügung steht, durchgängig gleich ist (und somit sowohl das erste Lesen/Abtasten/Speichern/ als auch SRR ermöglicht), ist der Speicher synchron. Wenn ein Handshake verwendet wird, ist der Speicher asynchron und erfordert einen Handshake, damit die verbesserte Latenzzeit des erzwungenen Strom-Kraft-referenzierten Lesens für eine geringere Latenzzeit signalisiert werden kann. In einer anderen Ausführungsform wird das erzwungene stromreferenzierte Lesen immer ohne irgendwelche SRR-Zyklen verwendet, damit der Chip synchron bei dieser schnelleren Latenzzeit als direkter Ersatz des DRAM in der DDRn-Schnittstelle direkt zum Host verwendet werden kann; dann muss die BER ausreichend niedrig sein, damit alle Fehler innerhalb der Korrekturkapazität der ECC-Engine liegen.
  • Die ASICs für jede der BEP-Schaltungen 112 und die FEP-Schaltung 110 sind auf dem gleichen Halbleiter so implementiert, dass der Speichercontroller 102 als ein System-on-a-Chip („SoC“) hergestellt wird. Alternativ kann eine solche Schaltung auf jedem Speicherchip untergebracht werden, wodurch der Aufwand für einen externen Controller und/oder einen BEP oder FEP entfällt. Die FEP-Schaltung 110 und die BEP-Schaltung 112 schließen beide ihre eigenen Prozessoren ein. In einer Ausführungsform arbeiten die FEP-Schaltung 110 und die BEP-Schaltung 112 als Master-Slave-Konfiguration, wobei die FEP-Schaltung 110 der Master ist und jede BEP-Schaltung 112 ein Slave ist. Zum Beispiel implementiert die FEP-Schaltung 110 eine Medienverwaltungsschicht (MML), welche die Speicherverwaltung (z. B. Speicherbereinigung, Verschleißausgleich usw.), die Übersetzung von logischen in physische Adressen, die Kommunikation mit dem Host, die Verwaltung des lokalen Speichers 106 und die Verwaltung des gesamten Betriebs der SSD (oder eines anderen nichtflüchtigen Speichersystems) übernimmt. Die BEP-Schaltung 112 verwaltet Speichervorgänge in den Speicherpaketen/dem Speicherchip auf Anforderung der FEP-Schaltung 110. Zum Beispiel kann die BEP-Schaltung 112 die Lese -, Lösch- und Programmiervorgänge ausführen. Zusätzlich kann die BEP-Schaltung 112 eine Pufferverwaltung durchführen, spezifische Spannungspegel einstellen, die von der FEP-Schaltung 110 benötigt werden, eine Fehlerkorrektur (ECC) durchführen, die Toggle-Modus-Schnittstellen zu den Speicherpaketen steuern usw. In einer Ausführungsform ist jede BEP-Schaltung 112 für ihren eigenen Satz von Speicherpaketen verantwortlich.
  • In einer Ausführungsform weist der nichtflüchtige Speicher 104 eine Vielzahl von Speicherpaketen auf. Jedes Speicherpaket schließt einen oder mehrere Speicherchips ein. Daher ist der Speichercontroller 102 mit einem oder mehreren nichtflüchtigen Speicherchips verbunden. In einer Ausführungsformen kann das Speicherpaket Speichertypen einschließen, wie Speicherklassenspeicher (SCM), die auf resistivem Direktzugriffsspeicher (wie ReRAM, MRAM, FeRAM oder RRAM) oder einem Phasenwechselspeicher (PCM) basieren. In einer Ausführungsform stellt der Speichercontroller 102 Zugriff auf Speicherzellen in einem Kreuzpunktarray in einem Speicherpaket 104 bereit.
  • Der Speichercontroller 102 kommuniziert mit dem Hostsystem 120 über eine Schnittstelle 130, die ein Protokoll implementiert, wie beispielsweise Compute Express Link (CXL). Oder ein solcher Controller kann entfallen und die Speicherpakete können direkt auf dem Hostbus, zum Beispiel DORn, platziert werden. Für die Arbeit mit dem Speichersystem 100 schließt das Hostsystem 120 einen Hostprozessor 122, einen Hostspeicher 124 und eine über den Bus 128 verbundene Schnittstelle 126 ein. Der Hostspeicher 124 ist der physische Speicher des Hosts und kann aus DRAM, SRAM, ReRAM, MRAM, nichtflüchtigem Speicher oder einer anderen Art von Speicher bestehen. In einer Ausführungsform enthält der Hostspeicher 124 ein Kreuzpunktarray von nichtflüchtigen Speicherzellen, wobei jede Speicherzelle ein resistives Direktzugriffsspeicherelement und ein mit dem Speicherelement in Reihe geschaltetes zweipoliges Selektorelement aufweist. In einigen Ausführungsformen werden die resistiven Direktzugriffsspeicherelemente im Hostspeicher 124 unter Verwendung eines gemischten Strom-Kraft-Lesens gelesen, welches das Durchführen eines Strom-Kraft-referenzierten Lesens gefolgt von einem Strom-Kraft-SRR, wenn das Strom-Kraft-referenzierte Lesen nicht erfolgreich ist, einschließt.
  • Das Hostsystem 120 befindet sich außerhalb des Speichersystems 100 und ist von diesem getrennt. In einer Ausführungsform ist das Speichersystem 100 in dem Hostsystem 120 eingebettet. Der Hostspeicher 124 kann hierin als ein Speichersystem bezeichnet werden. Die Kombination des Hostprozessors 122 und des Hostspeichers 124 kann hierin als ein Speichersystem bezeichnet werden. In einer Ausführungsform kann ein solcher Hostspeicher ein Kreuzpunktspeicher unter Verwendung von MRAM sein.
  • 2 ist ein Blockdiagramm einer Ausführungsform der FEP-Schaltung 110. 2 zeigt eine Schnittstelle 150 zum Kommunizieren mit dem Hostsystem 120 und einen Hostprozessor 152, der mit dieser Schnittstelle kommuniziert. Die Schnittstelle 150 kann beispielsweise CXL, DDR oder PCIe sein. Der Hostprozessor 152 kann jeder in der Technik bekannte Prozessortyp sein, der für die Implementierung geeignet ist. Der Hostprozessor 152 kommuniziert mit einem Network-On-Chip (NOC) 154. Ein NOC ist ein Kommunikationssubsystem auf einer integrierten Schaltung, in der Regel zwischen Kernen in einem SoC. NOCs können synchrone und asynchrone Taktdomänen umspannen oder eine ungetaktete asynchrone Logik verwenden. Die NOC-Technologie wendet Netzwerktheorie und -verfahren auf On-Chip-Kommunikationen an und bringt beträchtliche Verbesserungen gegenüber herkömmlichen Bus- und Crossbar-Verbindungen. NOC verbessert die Skalierbarkeit von SoCs und die Leistungseffizienz komplexer SoCs im Vergleich zu anderen Designs. Die Drähte und die Verbindungen des NOC werden von vielen Signalen gemeinsam genutzt. Eine hohe Parallelität wird erreicht, da alle Verbindungen in dem NOC gleichzeitig an unterschiedlichen Datenpaketen arbeiten können. Daher stellt ein NOC, wenn die Komplexität integrierter Subsysteme wächst, eine verbesserte Leistung (wie Durchsatz) und Skalierbarkeit im Vergleich zu früheren Kommunikationsarchitekturen (z. B. dedizierten Punkt-zu-Punkt-Signaldrähten, gemeinsam genutzten Bussen oder segmentierten Bussen mit Brücken) bereit. Angeschlossen an und in Kommunikation mit dem NOC 154 sind der Speicherprozessor 156, SRAM 160 und ein lokaler Speichercontroller 162. Der lokale Speichercontroller 162 dient zum Betrieb und zur Kommunikation mit dem lokalen Speicher 106 (z. B. dem lokalen Speicher 106 in 1). In einer Ausführungsform ist der lokale Speichercontroller 162 ein MRAM-Controller zum Betrieb und zur Kommunikation mit dem MRAM im lokalen Speicher 106. In einer Ausführungsform ist der lokale Speichercontroller 162 ein ReRAM-Controller zum Betrieb und zur Kommunikation mit dem ReRAM im lokalen Speicher 106. SRAM 160 ist ein lokaler RAM-Speicher, der von dem Speicherprozessor 156 verwendet wird. Der Speicherprozessor 156 wird verwendet, um die FEP-Schaltung zu betreiben und die verschiedenen Speichervorgänge auszuführen. Außerdem stehen zwei Schnittstellen 164 und 166 mit dem NOC in Verbindung, bei denen es sich zum Beispiel um CXL, DDR oder PCIe handeln kann. In der Ausführungsform von 2 schließt der SSD-Controller zwei BEP-Schaltungen 112 ein; daher gibt es zwei Schnittstellen 164/166. Jede Schnittstelle 164/166 kommuniziert mit einer der BEP-Schaltungen 112. In anderen Ausführungsformen können mehr oder weniger als zwei BEP-Schaltungen 112 vorhanden sein; daher kann es mehr als zwei Schnittstellen 164/166 geben.
  • Die FEP-Schaltung 110 kann auch eine Medienverwaltungsschicht (MML) 158 einschließen, die eine Speicherverwaltung (z. B. Speicherbereinigung, Abnutzungsnivellierung, Lastausgleich usw.), eine Umwandlung von logischen zu physikalischen Adressen, eine Kommunikation mit dem Host, eine Verwaltung von DRAM (lokaler flüchtiger Speicher) und eine Verwaltung des Gesamtbetriebs der SSD oder eines anderen nichtflüchtigen Speichersystems durchführt. Die Medienverwaltungsschicht MML 158 kann als Teil der Speicherverwaltung integriert sein, die Speicherfehler behandeln und mit dem Host interagieren kann. Insbesondere kann MML ein Modul in der FEP-Schaltung 110 sein und für die Interna der Speicherverwaltung verantwortlich sein. Insbesondere kann die MML 158 einen Algorithmus in der Firmware der Speichervorrichtung einschließen, der Schreibvorgänge vom Host in Schreibvorgänge in die Speicherstruktur (z. B. 502 der 5A und 5B) eines Chips umwandelt. MML 158 kann erforderlich sein, weil: 1) der Speicher eine begrenzte Dauer haben kann; 2) die Speicherstruktur nur in Vielfachen von Seiten beschrieben werden kann; und/oder 3) die Speicherstruktur nicht beschrieben werden kann, falls sie nicht als Block gelöscht wird. Die MML 158 versteht diese potentiellen Einschränkungen der Speicherstruktur, die für den Host möglicherweise nicht sichtbar sind. Dementsprechend versucht die MML 158, die Schreibvorgänge vom Host in Schreibvorgänge in die Speicherstruktur zu übersetzen.
  • 3 ist ein Blockdiagramm einer Ausführungsform der BEP-Schaltung 112. 3 zeigt eine Schnittstelle 200 (z. B. CXL, DDR oder PCIe) zum Kommunizieren mit der FEP-Schaltung 110 (z. B. zum Kommunizieren mit einer der Schnittstellen 164 und 166 von 2). Die Schnittstelle 200 steht in Verbindung mit zwei NOCs 202 und 204. In einer Ausführungsform können die beiden NOCs in ein großes NOC kombiniert werden. Jeder NOC (202/204) ist über eine XOR-Engine (224/254) und eine ECC-Engine (226/256) mit dem SRAM (230/260), einem Puffer (232/262), einem Prozessor (220/250) und einem Datenpfadcontroller (222/252) verbunden. Die ECC-Engines 226/256 werden verwendet, um eine Fehlerkorrektur durchzuführen, wie in der Technik bekannt ist. Die XOR-Maschinen 224/254 werden zum XOR der Daten verwendet, sodass Daten auf eine Art und Weise kombiniert und gespeichert werden können, die im Falle eines Programmierfehlers wiederhergestellt werden können. Der Datenpfadcontroller 222 ist mit einem Schnittstellenmodul verbunden, um über vier Kanäle mit Speicherpaketen zu kommunizieren. Somit ist der obere NOC 202 einer Schnittstelle 228 für vier Kanäle zur Kommunikation mit Speicherpaketen zugeordnet, und der untere NOC 204 ist einer Schnittstelle 258 für vier zusätzliche Kanäle zur Kommunikation mit Speicherpaketen zugeordnet. Jede Schnittstelle 228/258 schließt vier Toggle-Mode-Schnittstellen (TM-Schnittstelle), vier Puffer und vier Scheduler ein. Für jeden Kanal gibt es einen Scheduler, einen Puffer und eine TM-Schnittstelle. Der Prozessor kann irgendein Standardprozessor sein, der in der Technik bekannt ist. Die Datenpfadcontroller 222/252 können ein Prozessor, ein FPGA, ein Mikroprozessor oder eine andere Art von Controller sein. Die XOR-Engines 224/254 und ECC-Engines 226/256 sind dedizierte Hardware-Schaltungen, bekannt als Hardware-Beschleuniger. In anderen Ausführungsformen können die XOR-Engines 224/254 und ECC-Engines 226/256 in Software implementiert sein. Die Scheduler, Puffer und TM-Schnittstellen sind Hardwareschaltungen. In einer anderen Ausführungsform sind solche Schaltungen und Software oder Teile davon auf dem Chip in jedem Speicher platziert.
  • 4 ist ein Blockdiagramm einer Ausführungsform eines Speicherpakets 104, das eine Vielzahl von Speicherchips 292 einschließt, die mit einem Speicherbus 294 (Datenleitungen und Chip-Aktivierungsleitungen) verbunden sind. Der Speicherbus 294 ist mit einer Toggle-Mode-Schnittstelle 296 zur Kommunikation mit der TM-Schnittstelle einer BEP-Schaltung 112 (siehe z. B. 3) verbunden. In einigen Ausführungsformen kann das Speicherpaket einen Controller einschließen, der mit dem Speicherbus und der TM-Schnittstelle verbunden ist. Das Speicherpaket kann einen oder mehrere Speicherchips aufweisen. In einer Ausführungsform schließt jedes Speicherpaket acht oder 16 Speicherchips ein; andere Anzahlen von Speicherchips können jedoch ebenfalls implementiert werden. Die hierin beschriebene Technologie ist nicht auf eine spezifische Anzahl von Speicherchips beschränkt.
  • 5A ist ein Blockdiagramm, das ein Beispiel für einen Speicherchip 292 darstellt, der die hierin beschriebene Technologie implementieren kann. In einer Ausführungsform ist der Speicherchip 292 in den lokalen Speicher 106 eingeschlossen. In einer Ausführungsform ist der Speicherchip 292 in den Hostspeicher 124 eingeschlossen. Der Speicherchip 292 schließt ein Speicherarray 502 ein, das jede der im Folgenden beschriebenen Speicherzellen einschließen kann. Die Array-Anschlussleitungen des Speicherarrays 502 schließen die verschiedenen Schichten von Wortleitungen, die als Zeilen organisiert sind, und die verschiedenen Schichten von Bitleitungen, die als Spalten organisiert sind, ein. Jedoch können aber auch andere Orientierungen umgesetzt werden. Der Speicherchip 292 schließt eine Zeilensteuerschaltung 520 ein, deren Ausgaben 508 mit den jeweiligen Wortleitungen des Speicherarrays 502 verbunden sind. Die Zeilensteuerschaltung 520 empfängt eine Gruppe von M Zeilenadresssignalen und ein oder mehrere verschiedene Steuersignale von der Systemsteuerlogikschaltung 560 und kann üblicherweise Schaltungen wie Zeilendecoder 522, Zeilentreiber 524 und Blockauswahlschaltungen 526 sowohl für Lese- als auch für Schreibvorgänge einschließen. Die Zeilensteuerschaltung 520 kann auch eine Lese-/Schreibschaltung einschließen. In einer Ausführungsform verfügt die Zeilendecodier- und -steuerschaltung 520 über Leseverstärker 528, die jeweils eine Schaltung zum Erfassen eines Zustands (z. B. der Spannung) einer Wortleitung des Speicherarrays 502 enthalten. In einer Ausführungsform wird durch Erfassen einer Wortleitungsspannung ein Zustand einer Speicherzelle in einem Kreuzpunktarray bestimmt. Der Speicherchip 292 schließt auch eine Spaltendecodier- und -steuerschaltung 510 ein, deren Eingaben/Ausgaben 506 mit den jeweiligen Bitleitungen des Speicherarrays 502 verbunden sind. Obwohl nur ein einziger Block für das Array 502 gezeigt ist, kann ein Speicherchip mehrere Arrays oder „Kacheln“ einschließen, auf die einzeln zugegriffen werden kann. Die Spaltensteuerschaltung 510 empfängt eine Gruppe von N Spaltenadresssignalen und ein oder mehrere verschiedene Steuersignale von der Systemsteuerschaltung 560 und kann üblicherweise Schaltungen wie Spaltendecoder 512, Spaltendecoder und -treiber 514, eine Blockauswahlschaltung 516 sowie Lese-/Schreibschaltungen und E/A-Multiplexer einschließen.
  • Die Systemsteuerlogik 560 empfängt Daten und Befehle von einem Hostsystem und stellt dem Hostsystem Ausgabedaten und einen Status bereit. In anderen Ausführungsformen empfängt die Systemsteuerlogik 560 Daten und Befehle von einer separaten Controllerschaltung und stellt dieser Controllerschaltung Ausgabedaten bereit, wobei die Controllerschaltung mit dem Hostsystem kommuniziert. In einer anderen Ausführungsform werden diese Daten und Befehle direkt von den Speicherpaketen an den Host gesendet und empfangen, ohne dass ein separater Controller erforderlich ist, und jeder erforderliche Controller befindet sich in jedem Chip oder in einem Chip, der zu einem Multichip-Speicherpaket hinzugefügt wurde. In einigen Ausführungsformen kann die Systemsteuerlogik 560 eine Zustandsmaschine 562 einschließen, die eine Steuerung der Speichervorgänge auf Chipebene bereitstellt. In einer Ausführungsform ist die Zustandsmaschine 562 durch Software programmierbar. In anderen Ausführungsformen verwendet die Zustandsmaschine 562 keine Software und ist vollständig in die Hardware (z. B. elektrischen Schaltungen) implementiert. In einer anderen Ausführungsform wird die Zustandsmaschine 562 durch einen Mikrocontroller oder Mikroprozessor ersetzt. Die Systemsteuerlogik 560 kann auch ein Leistungssteuermodul 564 einschließen, das die Leistung und Spannungen steuert, die den Zeilen und Spalten des Speichers 502 während der Speichervorgänge zugeführt werden, und kann Ladungspumpen und eine Regelschaltung zum Erzeugen von Regelspannungen einschließen. Die Systemsteuerlogik 560 schließt einen Speicher 566 ein, in dem Parameter für den Betrieb des Speicherarrays 502 gespeichert werden können. Eine solche Systemsteuerlogik kann vom Host 120 oder dem Speichercontroller 102 an die Auffrischungslogik 572 angewiesen werden, die eine auf dem Chip gespeicherte Zeilen- und Spaltenadresse (Pointer) lädt, die nach der Auffrischung inkrementiert werden kann. Diese(s) Adressbit(s) kann/können nur ausgewählt werden (um den OTS neu zu laden). Oder eine solche Adresse wird gelesen, durch die ECC-Engine 569 korrigiert und dann an einem „Ersatz“-Speicherplatz abgelegt, der ebenfalls inkrementiert wird (so dass alle Codewörter periodisch gelesen, korrigiert und im gesamten Chip verschoben werden). Ein solcher Vorgang kann direkter durch den Host eines externen Controllers, zum Beispiel eines PCIe- oder CXL-Controllers, gesteuert werden.
  • Befehle und Daten werden zwischen dem Speichercontroller 102 und dem Speicherchip 292 über die Speichercontrollerschnittstelle 568 (auch als „Kommunikationsschnittstelle“ bezeichnet) übertragen. Eine solche Schnittstelle kann zum Beispiel PCIe, CXL, DDRn sein. Die Speichercontrollerschnittstelle 568 ist eine elektrische Schnittstelle für die Kommunikation mit dem Speichercontroller 102. Beispiele für die Speichercontrollerschnittstelle 568 schließen eine Toggle-Modus-Schnittstelle ein. Es können auch andere E/A-Schnittstellen verwendet werden. Zum Beispiel kann Speichercontrollerschnittstelle 568 eine Toggle-Modus-Schnittstelle implementieren, die mit den Toggle-Modus-Schnittstellen der Speicherschnittstellen 228/258 für Speichercontroller 102 verbunden ist. In einer Ausführungsform schließt die Speichercontrollerschnittstelle 568 einen Satz von Eingangs- und/oder Ausgangs-Pins (E/A-Pins) ein, die mit dem Controller 102 verbunden sind. In einer anderen Ausführungsform unterstützt die Schnittstelle den JEDEC-Standard DORn oder LPDDRn, z. B. DDR5 oder LPDDR5, oder eine Untergruppe davon mit kleinerer Seite und/oder entspannterem Timing.
  • Die Systemsteuerlogik 560, die sich in einem externen Controller auf dem Speicherchip in den Speicherpaketen befindet, kann die Fehlerkorrekturcode-Engine (ECC-Engine) 569 einschließen. Die ECC-Engine 569 kann als On-Die-ECC-Engine bezeichnet werden, da sie sich auf demselben Halbleiterchip befindet wie die Speicherzellen. Das heißt, die On-Die-ECC-Engine 569 kann verwendet werden, um Daten zu codieren, die im Speicherarray 502 gespeichert werden sollen, und um die decodierten Daten zu decodieren und Fehler zu korrigieren. Die codierten Daten können hierin als Codewort oder als ECC-Codewort bezeichnet werden. Die ECC-Engine 569 kann zum Durchführen eines Decodierungsalgorithmus und zum Durchführen einer Fehlerkorrektur verwendet werden. Daher kann die ECC-Engine 569 das ECC-Codewort decodieren. In einer Ausführungsform ist die ECC-Engine 569 in der Lage, die Daten sehr schnell zu decodieren, was das gemischte Strom-Kraft-Lesen von MRAM und anderen Speicherelementtechnologien mit zweipoligen Selektoren, wie OTS, erleichtert. In einer Ausführungsform ist die ECC-Engine 569 mit einer Auswahl verschiedener ECC-Modi programmierbar. Die verschiedenen ECC-Modi sind für unterschiedliche Korrekturleistungen bereitgestellt. Zum Beispiel unterscheidet sich die Anzahl von Bits in dem Codewort, die korrigierbar sind, zwischen den Modi. In einigen Ausführungsformen gibt es einen Kompromiss, bei dem eine höhere Korrekturfähigkeit einer größeren Wahrscheinlichkeit einer Fehlkorrektur entspricht.
  • Da sich die ECC-Engine 569 auf demselben Chip wie die Speicherzellen befindet, ist eine sehr schnelle Decodierung möglich, was Ausführungsformen mit gemischten Strom-Kraft-Lesevorgängen erleichtert. Die ECC-Engine 569 kann eine Vielzahl von Decodierungsalgorithmen verwenden, einschließlich, aber nicht beschränkt auf Reed Solomon, Bose-Chaudhuri-Hocquenghem (BCH) und Paritätsprüfung niedriger Dichte (LDPC). In einer Ausführungsform ist die ECC-Engine 569 in der Lage, eine Anzahl von Bitfehlern in einem Codewort zu bestimmen oder zu schätzen, bevor das Codewort decodiert wird. In einer Ausführungsform berechnet die ECC-Engine 569 das Syndrom des Codeworts, um die Anzahl der Bitfehler im Codewort zu schätzen. In einer Ausführungsform basiert das Syndrom auf der Anzahl der nicht erfüllten Paritätsprüfungsgleichungen. In einer Ausführungsform ist die ECC-Engine 569 in der Lage, ein Codewort zu decodieren, vorausgesetzt, dass nicht mehr als eine bestimmte Anzahl von Bits in dem Codewort fehlerhaft sind.
  • In einigen Ausführungsformen können alle Elemente des Speicherchips 292, einschließlich der Systemsteuerlogik 560, als Teil eines einzelnen Chips ausgebildet sein. In anderen Ausführungsformen können ein Teil der oder die gesamte Systemsteuerlogik 560 auf einem anderen Chip ausgebildet sein.
  • In einer Ausführungsform weist die Speicherstruktur 502 ein dreidimensionales Speicherarray von nichtflüchtigen Speicherzellen auf, in denen mehrere Speicherebenen über einem einzigen Substrat, wie etwa einem Wafer, ausgebildet sind. Die Speicherstruktur kann jede Art von nichtflüchtigem Speicher aufweisen, der monolithisch in einer oder mehreren physischen Ebenen von Speicherzellen ausgebildet ist, die einen aktiven Bereich aufweisen, der über einem Silizium- (oder anderen Typ von) Substrat angeordnet ist. In einer anderen Ausführungsform weist die Speicherstruktur 502 ein zweidimensionales Speicherarray von nichtflüchtigen Speicherzellen auf.
  • Die genaue Art der Speicherarray-Architektur oder der Speicherzelle, die in der Speicherstruktur 502 eingeschlossen ist, ist nicht auf die vorstehenden Beispiele beschränkt. Viele unterschiedliche Arten von Speicherarray-Architekturen oder Speichertechnologien können verwendet werden, um die Speicherstruktur 326 zu bilden. Es ist keine spezielle nichtflüchtige Speichertechnologie für die Zwecke der neuen beanspruchten Ausführungsformen, die hierin vorgeschlagen werden, erforderlich. Andere Beispiele geeigneter Technologien für Speicherzellen der Speicherstruktur 502 schließen ReRAM-Speicher (resistive Direktzugriffsspeicher), magnetoresistive Speicher (z. B. MRAM, Spin-Transfer-Drehmoment-MRAM, Spin-Bahn-Drehmomente-MRAM), FeRAM, Phasenwechselspeicher (z. B. PCM) und dergleichen ein. Beispiele geeigneter Technologien für die Speicherzellen-Architekturen der Speicherstruktur 502 schließen zweidimensionale Arrays, dreidimensionale Arrays, Kreuzpunktarrays, gestapelte zweidimensionale Arrays, vertikale Bitleitungsarrays und dergleichen ein.
  • Ein Beispiel für einen ReRAM- oder MRAM-Kreuzpunktspeicher schließt reversible Widerstandsschaltelemente in Reihe mit einem OTS-Selektor ein, die in Kreuzpunktarrays angeordnet sind, auf die über X-Leitungen und Y-Leitungen (z. B. Wortleitungen und Bitleitungen) zugegriffen wird. In einer anderen Ausführungsform ist der Kreuzpunkt ein PCM in Reihe mit einem OTS-Selektor. In einer anderen Ausführungsform können die Speicherzellen leitfähige Brückenspeicherelemente einschließen. Ein leitfähiges Brückenspeicherelement kann auch als programmierbare Metallisierungszelle bezeichnet werden. Ein leitfähiges Brückenspeicherelement kann als ein Zustandsänderungselement basierend auf der physikalischen Verlagerung von Ionen innerhalb eines Festelektrolyten verwendet werden. In einigen Fällen kann ein leitfähiges Brückenspeicherelement zwei feste Metallelektroden einschließen, eine relativ inerte (z. B. Wolfram) und die andere elektrochemisch aktive (z. B. Silber oder Kupfer), mit einer dünnen Folie des Festelektrolyten zwischen den beiden Elektroden. Mit steigender Temperatur steigt auch die Mobilität der Ionen, was bewirkt, dass die Programmierschwelle für die leitfähige Brückenspeicherzelle abnimmt. Somit kann das leitfähige Brückenspeicherelement einen weiten Bereich von Programmierschwellen als Funktion der Temperatur aufweisen.
  • Magnetoresistiver Direktzugriffsspeicher (MRAM) speichert Daten mit Hilfe von magnetischen Speicherelementen. Die Elemente sind aus zwei durch eine dünne Isolierschicht getrennte ferromagnetischen Schichten gebildet, von denen jede eine Magnetisierung halten kann. Bei einem feldgesteuerten MRAM ist eine der beiden Schichten ein Permanentmagnet, der auf eine bestimmte Polarität eingestellt ist; die Magnetisierung der anderen Schicht kann so geändert werden, dass sie der eines externen Felds entspricht, um Speicher zu speichern. Andere Arten von MRAM-Zellen sind möglich. Eine Speichervorrichtung kann aus einem Gitter von MRAM-Zellen aufgebaut sein. Bei einer Ausführungsform zum Programmieren liegt jede Speicherzelle zwischen einem Paar von Schreibleitungen, die in rechten Winkeln zueinander parallel zu der Zelle angeordnet sind, eine über und eine unter der Zelle. Wenn durch manche MRAM-Zellen Strom fließt, wird ein Induktionsmagnetfeld erzeugt. MRAM-basierte Speicherausführungsformen werden nachstehend ausführlicher erörtert.
  • Phasenänderungsspeicher (PCM) nutzen das einzigartige Verhalten von Chalkogenidglas aus. Eine Ausführungsform verwendet ein GeTe-Sb2Te3-Übergitter, um nichtthermische Phasenänderungen zu erreichen, indem einfach der Koordinationszustand der Germaniumatome mit einem Laserimpuls (oder Lichtimpuls von einer anderen Quelle) geändert wird. Die Speicherzellen werden durch Stromimpulse programmiert, welche die Koordination des PCM-Materials verändern oder es zwischen amorphem und kristallinem Zustand umschalten können. Es sei darauf hingewiesen, dass die Verwendung von „Impuls“ in diesem Dokument keinen Rechteckimpuls erfordert, sondern eine (kontinuierliche oder nicht kontinuierliche) Schwingung oder einen Stoß eines Schalls, Stroms, Spannungslichts oder einer anderen Welle einschließt. Der für den Schreibvorgang erzwungene Strom kann beispielsweise schnell auf einen Spitzenwert gefahren werden und dann mit beispielsweise einer EDGE-Rate von 500 ns linear heruntergefahren werden. Diese Spitzenstromstärke kann durch eine in Zonen aufgeteilte Spannungskonformität begrenzt sein, die durch die Position der Speicherzelle entlang der Wortleitung oder der Bitleitung variiert.
  • Der Durchschnittsfachmann wird erkennen, dass die hierin beschriebene Technologie nicht auf eine einzige spezifische Speicherstruktur, Speicherkonstruktion oder Materialzusammensetzung beschränkt ist, sondern viele relevante Speicherstrukturen gemäß dem Geist und Umfang der Technologie, wie hierin beschrieben und wie einem Fachmann bekannt, abdeckt.
  • Die Elemente von 5A lassen sich in zwei Teile gruppieren: die Speicherstruktur 502 und die peripheren Schaltungen einschließlich aller anderen Elemente. Eine wichtige Eigenschaft einer Speicherschaltung ist ihre Kapazität, die durch Vergrößerung der Fläche des Speicherchips 292, die der Speicherstruktur 502 zugewiesen ist, erhöht werden kann; dies reduziert jedoch die für die peripheren Schaltungen verfügbare Fläche auf dem Speicherchip. Dies kann recht erhebliche Einschränkungen für diese peripheren Elemente bedeuten. Zum Beispiel kann die Notwendigkeit, Leseverstärkerschaltungen in die verfügbare Fläche einzupassen, eine erhebliche Einschränkung für Leseverstärker-Designarchitekturen darstellen. In Bezug auf die Systemsteuerlogik 560 kann eine reduzierte Verfügbarkeit von Fläche die verfügbaren Funktionalitäten einschränken, die auf dem Chip implementiert werden können. Folglich besteht ein grundlegender Kompromiss beim Entwurf eines Speicherchips 292 darin, wie viel Fläche der Speicherstruktur 502 und wie viel Fläche den peripheren Schaltungen gewidmet werden soll. Diese Kompromisse können zu mehr IR-Spannungsabfällen führen, wenn größere x-y-Arrays von Speichern zwischen Treiberschaltungen auf der Wortleitung und der Bitleitung verwendet werden, was wiederum größere Vorteile durch die Verwendung von Spannungsbegrenzungen und die Zoneneinteilung der Spannungskonformität durch Speicherzellenposition entlang der Wortleitung und der Bitleitung erzeugt.
  • Ein weiterer Bereich, in dem die Speicherstruktur 502 und die peripheren Schaltungen oft im Widerspruch zueinander stehen, ist der Prozess, der mit der Bildung dieser Regionen verbunden ist, da diese Regionen oft unterschiedliche Verarbeitungstechnologien und den Kompromiss, unterschiedliche Technologien auf einem einzigen Chip zu haben, beinhalten. Zum Beispiel verwenden Elemente wie Leseverstärkerschaltungen, Ladungspumpen, Logikelemente in einer Zustandsmaschine und andere periphere Schaltungen in der Systemsteuerlogik 560 oft PMOS-Vorrichtungen. In einigen Fällen basiert die Speicherstruktur auf CMOS-Vorrichtungen. Verarbeitungsvorgänge zum Herstellen eines CMOS-Chips werden sich in vielen Gesichtspunkten von den Verarbeitungsvorgängen unterscheiden, die für NMOS-Technologien optimiert sind.
  • Um diese Einschränkungen zu verbessern, können die nachstehend beschriebenen Ausführungsformen die Elemente von 5A auf separat gebildete Chips aufteilen, die dann miteinander verbunden werden. 5B stellt eine integrierte Speicheranordnung 570 mit einem Speicherstrukturchip 580 und einem Steuerchip 590 dar. Die Speicherstruktur 502 wird auf dem Speicherstrukturchip 580 gebildet und einige oder alle der peripheren Schaltungen, einschließlich einer oder mehrerer Steuerschaltungen, sind auf dem Steuerchip 590 gebildet. Zum Beispiel kann ein Speicherstrukturchip 580 nur aus den Speicherelementen gebildet sein, wie dem Array von Speicherzellen eines MRAM-Speichers, eines PCM-Speichers, eines ReRAM-Speichers oder eines anderen Speichertyps. Einige oder alle peripheren der Schaltungen, sogar einschließlich Elementen wie Decoder und Leseverstärker, können dann auf den Steuerchip verlegt werden. Dadurch kann jeder der Halbleiterchips individuell entsprechend seiner Technologie optimiert werden. Dies ermöglicht mehr Platz für die peripheren Elemente, die nun zusätzliche Fähigkeiten aufnehmen können, die nicht ohne weiteres aufgenommen werden könnten, wenn sie auf die Ränder desselben Chips beschränkt wären, der das Speicherzellenarray enthält. Die zwei Chips können dann zusammen in eine gebondete integrierte Multi-Chip-Speicheranordnung gebondet werden, wobei das Array auf dem einen Chip mit den peripheren Elementen auf dem anderen Chip verbunden ist. Obwohl im Folgenden der Fokus auf einer integrierten Speicheranordnung aus einem Speicherchip und einem Steuerchip liegt, können andere Ausführungsformen zusätzliche Chips verwenden, wie zwei Speicherchips und einen Steuerchip.
  • Wie bei 502 von 5A kann der Speicherchip 580 in 5B mehrere unabhängig zugreifbare Arrays oder „Kacheln“ einschließen. Die Systemsteuerlogik 560, die Zeilensteuerschaltung 520 und die Spaltensteuerschaltung 510 befinden sich in dem Steuerchip 590. In einigen Ausführungsformen befinden sich die gesamte oder ein Teil der Spaltensteuerschaltung 510 und die gesamte oder ein Teil der Zeilensteuerschaltung 520 auf dem Speicherstrukturchip 580. In einigen Ausführungsformen befindet sich ein Teil der Schaltungen in der Systemsteuerlogik 560 auf dem Speicherstrukturchip 580.
  • 5B zeigt die Spaltensteuerschaltung 510 auf dem Steuerchip 590, die über elektrische Pfade 592 mit der Speicherstruktur 502 auf dem Speicherstrukturchip 580 gekoppelt ist. Zum Beispiel können die elektrischen Pfade 592 eine elektrische Verbindung zwischen dem Spaltendecoder 512, der Spaltentreiberschaltung 514 und der Blockauswahlschaltung 516 und den Bitleitungen der Speicherstruktur 502 bereitstellen. Die elektrischen Pfade können sich von der Spaltensteuerschaltung 510 im Steuerchip 590 durch Pads auf dem Steuerchip 590 erstrecken, die mit entsprechenden Pads des Speicherstrukturchips 580 verbunden sind, die mit Bitleitungen der Speicherstruktur 502 verbunden sind. Jede Bitleitung der Speicherstruktur 502 kann einen entsprechenden elektrischen Pfad in den elektrischen Pfaden 592 haben, einschließlich eines Paares gebondeter Pads, das mit der Spaltensteuerschaltung 510 verbunden ist. In ähnlicher Weise sind Zeilensteuerschaltungen 520, einschließlich des Zeilendecoders 522, der Zeilentreiber 524, der Blockauswahl 526 und der Leseverstärker 528, über elektrische Pfade 594 mit der Speicherstruktur 502 verbunden. Jeder der elektrischen Pfade 594 kann beispielsweise einer Wortleitung entsprechen. Zusätzliche elektrische Pfade können auch zwischen Steuerchip 590 und Speicherchip 580 bereitgestellt werden.
  • Für die Zwecke dieses Dokuments kann der Ausdruck „eine Steuerschaltung“ eine oder mehrere der folgenden Komponenten einschließen: Speichercontroller 102, Systemsteuerlogik 560, Spaltensteuerschaltung 510, Zeilensteuerschaltung 520, einen Mikrocontroller, eine Zustandsmaschine, Hostprozessor 122 und/oder andere Steuerschaltungen oder andere analoge Schaltungen, die zum Steuern eines nichtflüchtigen Speichers verwendet werden. Die Steuerschaltung kann nur Hardware oder eine Kombination aus Hardware und Software (einschließlich Firmware) einschließen. Zum Beispiel ist ein Controller, der durch Firmware programmiert ist, um die hierin beschriebenen Funktionen auszuführen, ein Beispiel einer Steuerschaltung. Eine Steuerschaltung kann einen Prozessor, FPGA, ASIC, eine integrierte Schaltung oder eine andere Art von Schaltung einschließen. Diese Steuerschaltung kann Treiber einschließen, wie die direkte Ansteuerung über die Verbindung eines Knotens durch voll eingeschaltete Transistoren (Gate zur Stromversorgung), die auf eine feste Spannung wie eine Stromversorgung ansteuern. Diese Steuerschaltung kann einen Stromquellentreiber einschließen.
  • Für die Zwecke dieses Dokuments kann der Begriff „Einrichtung“ eines oder mehrere der folgenden Elemente einschließen, ist aber nicht darauf beschränkt: Hostsystem 120, die Kombination aus Hostprozessor 122 und Hostspeicher 124, Speichersystem 100, Speichercontroller 102, lokaler Speicher 106, die Kombination aus Speichercontroller 102 und lokalem Speicher 106, Speicherpaket 104, Speicherchip 292, integrierte Speicheranordnung 570 und/oder Steuerchip 590.
  • In der folgenden Erörterung wird das Speicherarray 502 der 5A und 5B im Zusammenhang mit einer Kreuzpunktarchitektur erörtert. In einer Kreuzpunktarchitektur verläuft ein erster Satz von Leiterbahnen oder Drähten, wie beispielsweise Wortleitungen, in einer ersten Richtung relativ zu dem darunter liegenden Substrat und ein zweiter Satz von Leiterbahnen oder Drähten, wie beispielsweise Bitleitungen, in einer zweiten Richtung relativ zu dem darunter liegenden Substrat. Die Speicherzellen befinden sich an der Kreuzung der Wortleitungen und Bitleitungen. Die Speicherzellen an diesen Kreuzpunkten können gemäß einer beliebigen einer Anzahl von Technologien gebildet werden, einschließlich der vorstehend beschriebenen. Die folgende Erörterung wird sich hauptsächlich auf Ausführungsformen konzentrieren, die auf einer Kreuzpunktarchitektur mit MRAM-Speicherzellen basieren, die jeweils in Reihe mit einem zweipoligen Selektor, wie einem ovonischen Schwellenwertschalter (OTS), geschaltet sind, um ein auswählbares Speicherbit zu enthalten. Daher schließt eine Ausführungsform ein gemischtes Strom-Kraft-Leseschema in einer Kreuzpunktarchitektur mit MRAM-Zellen ein, die jeweils einen Serien-OTS-Selektor haben. Die Ausführungsformen eines gemischten Strom-Kraft-Leseschemas sind jedoch nicht auf eine Kreuzpunktarchitektur mit MRAM-Zellen mit jeweils einem Serien-OTS-Selektor beschränkt.
  • In einigen Ausführungsformen gibt es mehr als einen Steuerchip 590 und mehr als einen Speicherstrukturchip 580 in einer integrierten Speicheranordnung 570. In einigen Ausführungsformen schließt die integrierte Speicheranordnung 570 einen Stapel aus mehreren Steuerchips 590 und mehreren Speicherstrukturchips 580 ein. 6A stellt eine Seitenansicht einer Ausführungsform einer integrierten Speicheranordnung 570 dar, die auf einem Substrat 602 gestapelt ist (z. B. ein Stapel, der Steuerchips 590 und Speicherstrukturchips 580 aufweist). Die integrierte Speicheranordnung 570 weist drei Steuerchips 590 und drei Speicherstrukturchips 580 auf. In einigen Ausführungsformen gibt es mehr als drei Speicherstrukturchips 580 und mehr als drei Steuerchips 590.
  • Jeder Steuerchip 590 kann an mindestens einem der Speicherstrukturchips 580 befestigt (z. B. gebondet) werden. Der Steuerchip 590 weist eine Anzahl von Bondpads 674 auf einer Hauptfläche des Steuerchips 590 auf. Jeder Speicherstrukturchip 580 weist eine Anzahl von Bondpads 670 auf einer Hauptfläche des Speicherstrukturchips 580 auf. Es ist zu beachten, dass es Bondpad-Paare 670/674 gibt. Bei einer Ausführungsform entspricht das Muster der Bondpads 670 dem Muster der Bondpads 674. In einigen Ausführungsformen sind die Bondpads 670 bzw. 674 Flip-Chip-Bondpads. Somit koppeln die Bondpads 670, 674 den Speicherchip 580 elektrisch und physisch mit dem Steuerchip 590. Außerdem ermöglichen die Bondpads 670, 674 eine interne Signalübertragung zwischen dem Speicherchip 580 und dem Steuerchip 590. Somit sind der Speicherchip 580 und der Steuerchip 590 mit Bondpads miteinander gebondet.
  • Die Bondpads 670, 674 können zum Beispiel aus Kupfer, Aluminium und Legierungen davon gebildet sein. Zwischen den Bondpads 670, 674 und den Hauptflächen kann sich eine Auskleidung 648 befinden. Die Auskleidung kann beispielsweise aus einem Titan-/Titannitrid-Stapel gebildet sein. Die Bondpads 670, 674 und die Auskleidung können durch Aufdampfen und/oder Plattieren aufgebracht sein. Die Bondpads und die Auskleidungen zusammen können eine Dicke von 720 nm aufweisen, obwohl diese Dicke in weiteren Ausführungsformen größer oder kleiner sein kann.
  • Die Bondpads ermöglichen eine interne Signalübertragung. Mit „interner Signalübertragung“ ist hierin die Signalübertragung zwischen dem Steuerchip 590 und dem Speicherchip 580 gemeint. Die interne Signalübertragung ermöglicht es den Schaltungen auf dem Steuerchip 590, die Speichervorgänge im Speicherchip 580 zu steuern. Daher können die Bondpads 670, 674 für die Übertragung von Speichervorgangssignalen verwendet werden. Hierin bezieht sich der Begriff „Übertragung von Speichervorgangssignalen“ auf alle Signale, die zu einem Speichervorgang auf einem Speicherchip 580 gehören. Eine Speichervorgang-Signalübertragung könnte das Bereitstellen einer Spannung, das Bereitstellen eines Stroms, das Empfangen einer Spannung, das Empfangen eines Stroms, das Abtasten einer Spannung und/oder das Abtasten eines Stroms einschließen, ist aber nicht darauf beschränkt.
  • Es kann viel mehr Bondpads geben als in 6A dargestellt. Ein Zwischenraum zwischen zwei Chips 580, 590, die zusammengebondet sind, wird mit einer festen Schicht 648 gefüllt, die aus Epoxid oder einem anderen Harz oder Polymer bestehen kann. Diese feste Schicht 648 schützt die elektrischen Verbindungen zwischen den Chips 580, 590 und hält die Chips zusätzlich zusammen. Als feste Schicht 648 können verschiedene Materialien verwendet werden, in den Ausführungsformen kann es sich jedoch um Hysol-Epoxidharz der Henkel Corp. mit Niederlassungen in Kalifornien, USA, handeln.
  • Die integrierte Speicheranordnung 570 kann zum Beispiel mit einem gestuften Versatz gestapelt werden, wobei die Bondpads auf jeder Ebene unbedeckt und von oben zugänglich bleiben. Drahtbonds 606, die mit den Bondpads verbunden sind, verbinden den Steuerchip 590 mit dem Substrat 602. Eine Anzahl derartiger Drahtbonds kann über die Breite jedes Steuerchips 590 (d. h. in die Seite von 6A hinein) gebildet werden.
  • Eine Speicherstrukturchip-Siliziumdurchkontaktierung (TSV) 612 kann verwendet werden, um Signale durch einen Speicherstrukturchip 580 zu leiten. Eine Siliziumdurchkontaktierung (TSV) des Steuerchips 614 kann verwendet werden, um Signale durch einen Steuerchip 590 zu leiten. Die TSV 612, 614 können vor, während oder nach der Bildung der integrierten Schaltungen in den Halbleiterchips 580, 590 gebildet werden. Die TSV können durch Ätzen von Löchern durch die Wafer gebildet werden. Die Löcher können dann mit einer Barriere gegen Metalldiffusion ausgekleidet werden. Die Sperrschicht kann wiederum mit einer Impfschicht ausgekleidet sein, und die Impfschicht kann mit einem elektrischen Leiter wie Kupfer beschichtet sein, obwohl andere geeignete Materialien wie Aluminium, Zinn, Nickel, Gold, dotiertes Polysilicium und Legierungen oder Kombinationen davon verwendet werden können.
  • Die Lötkugeln 608 können optional an den Kontaktpads 610 auf der Unterseite des Substrats 602 befestigt werden. Lötkugeln 608 können verwendet werden, um die integrierte Speicheranordnung 570 elektrisch und mechanisch mit einer Hostvorrichtung, wie einer Leiterplatte, zu koppeln. Die Lötkugeln 608 können weggelassen werden, wenn die integrierte Speicheranordnung 570 als LGA-Gehäuse verwendet werden soll. Die Lötkugeln 608 können einen Teil der Schnittstelle zwischen der integrierten Speicheranordnung 570 und dem Speichercontroller 102 bilden.
  • 6B stellt eine Seitenansicht einer Ausführungsform einer integrierten Speicheranordnung 570 dar, die auf einem Substrat 602 gestapelt ist. Die integrierte Speicheranordnung 570 weist drei Steuerchips 590 und drei Speicherstrukturchips 580 auf. In einigen Ausführungsformen gibt es viel mehr als drei Speicherstrukturchips 580 und viel mehr als drei Steuerchips 590. In diesem Beispiel ist jeder Steuerchip 590 mit zumindest einem Speicherstrukturchip 580 gebondet. Optional kann ein Steuerchip 590 mit zwei Speicherstrukturchips 580 gebondet sein.
  • Einige der Bondpads 670, 674 sind dargestellt. Es kann viel mehr Bondpads geben. Ein Zwischenraum zwischen zwei Chips 580, 590, die zusammengebondet sind, wird mit einer festen Schicht 648 gefüllt, die aus Epoxid oder einem anderen Harz oder Polymer bestehen kann. Im Gegensatz zum Beispiel in 6A hat die integrierte Speicheranordnung 570 in 6B keinen gestuften Versatz. Eine Speicherstrukturchip-Siliziumdurchkontaktierung (TSV) 612 kann verwendet werden, um Signale durch einen Speicherstrukturchip 580 zu leiten. Eine Siliziumdurchkontaktierung (TSV) des Steuerchips 614 kann verwendet werden, um Signale durch einen Steuerchip 590 zu leiten.
  • Die Lötkugeln 608 können optional an den Kontaktpads 610 auf der Unterseite des Substrats 602 befestigt werden. Lötkugeln 608 können verwendet werden, um die integrierte Speicheranordnung 570 elektrisch und mechanisch mit einer Hostvorrichtung, wie einer Leiterplatte, zu koppeln. Die Lötkugeln 608 können weggelassen werden, wenn die integrierte Speicheranordnung 570 als LGA-Gehäuse verwendet werden soll.
  • Wie oben kurz erörtert, können der Steuerchip 590 und der Speicherstrukturchip 580 miteinander gebondet sein. Bondpads auf jedem Chip 580, 590 können verwendet werden, um die beiden Chips miteinander zu bonden. In einigen Ausführungsformen werden die Bondkontaktstellen in einem sogenannten Cu-zu-Cu-Bindungsprozess ohne Lötmittel oder anderes zugesetztes Material direkt miteinander verbunden. Bei einem Cu-zu-Cu-Bindungsprozess werden die Bondpads so gesteuert, dass sie sehr eben sind und in einer stark gesteuerten Umgebung gebildet werden, die weitgehend frei von Umgebungspartikeln ist, die sich sonst auf einem Bondpad absetzen und eine enge Bindung verhindern könnten. Unter solchen angemessen gesteuerten Bedingungen werden die Bondpads ausgerichtet und gegeneinander gepresst, um eine gegenseitige Bindung basierend auf der Oberflächenspannung zu bilden. Solche Bindungen können bei Raumtemperatur gebildet werden, obwohl auch Wärme angewendet werden kann. In Ausführungsformen unter Verwendung von Cu-zu-Cu-Bonding können die Bondpads etwa 6 µm im Quadrat und mit einem Pitch von 6 µm zu 6 µm zueinander beabstandet sein. Obschon dieser Prozess hierin als Cu-zu-Cu-Bindung bezeichnet wird, kann dieser Begriff sogar dann gelten, wenn die Bondpads aus anderen Materialien als Cu gebildet sind.
  • Wenn die Fläche der Bondpads klein ist, kann es schwierig sein, die Halbleiterchips miteinander zu verbinden. Die Größe der, und der Abstand zwischen den, Bondpads können weiter verringert werden, indem eine Filmschicht auf den Oberflächen der Halbleiterchips einschließlich der Bondpads bereitgestellt wird. Die Filmschicht ist um die Bondpads herum bereitgestellt. Wenn die Chips zusammengebracht werden, können sich die Bondpads miteinander verbinden, und die Filmschichten auf den jeweiligen Chips können sich miteinander verbinden. Eine solche Bindungstechnik kann als Hybridbindung bezeichnet werden. Bei Ausführungsformen unter Verwendung von Hybrid-Verbindungen können die Bondpads etwa 6 µm im Quadrat und mit einem Pitch von 1 µm bis 6 µm zueinander beabstandet sein. Verbindungstechniken können verwendet werden, um Bondpads mit noch kleineren Größen und Pitches bereitzustellen.
  • Einige Ausführungsformen können einen Film auf der Oberfläche der Chips 580, 590 einschließen. Wenn anfänglich kein solcher Film bereitgestellt ist, kann ein Raum zwischen den Chips mit einem Epoxidharz oder einem anderen Harz oder Polymer unterfüllt werden. Das Unterfüllmaterial kann als Flüssigkeit aufgebracht werden, die dann zu einer festen Schicht aushärtet. Dieser Unterfüllungsschritt schützt die elektrischen Verbindungen zwischen den Chips 580, 590 und hält die Chips zusätzlich zusammen. Verschiedene Materialien können als Unterfüllmaterial verwendet werden, aber in Ausführungsformen kann es sich um Hysol-Epoxidharz von Henkel Corp. handeln, die Niederlassungen in Kalifornien, USA, hat.
  • 7A stellt eine Ausführungsform eines Abschnitts eines Speicherarrays dar, das eine Kreuzpunktarchitektur in einer Schrägansicht bildet. Das Speicherarray 502 von 7A ist ein Beispiel einer Implementierung für das Speicherarray 502 in 5A oder 5B, wobei ein Speicherchip 292 oder Speicherstrukturchip 580 mehrere dieser Array-Strukturen einschließen kann. Das Speicherarray 502 kann in den lokalen Speicher 106 oder den Hostspeicher 124 eingeschlossen sein. Die Bitleitungen BL1-BL5 sind in einer ersten Richtung relativ zu einem darunterliegenden Substrat (nicht dargestellt) angeordnet (dargestellt als in die Seite hineinlaufend) und die Wortleitungen WL1-WL5 sind in einer zweiten Richtung senkrecht zu der ersten Richtung angeordnet. 7A ist ein Beispiel einer horizontalen Kreuzpunktstruktur, bei der sowohl die Wortleitungen WL1-WL5 als auch BL1-BL5 in einer horizontalen Richtung relativ zum Substrat verlaufen, während die Speicherzellen, von denen zwei mit 701 bezeichnet sind, so ausgerichtet sind, dass der Strom in vertikaler Richtung durch eine Speicherzelle fließt (wie durch Icell gezeigt). In einem Speicherarray mit zusätzlichen Schichten von Speicherzellen wie unten in Bezug auf 7D erörtert, gäbe es entsprechende zusätzliche Schichten von Bitleitungen und Wortleitungen.
  • Wie in 7A dargestellt, schließt das Speicherarray 502 eine Vielzahl von Speicherzellen 701 ein. Die Speicherzellen 701 können wiederbeschreibbare Speicherelemente einschließen, die beispielsweise unter Verwendung von ReRAM, MRAM, PCM oder einem anderen Material mit programmierbarem Widerstand implementiert werden können. Eine Speicherzelle, die ein MRAM-Speicherelement einschließt, wird einfach als MRAM-Speicherzelle bezeichnet. Die Speicherzellen 701 können auch Selektorelemente einschließen, wie einen ovonischen Schwellenwertschalter (OTS), eine flüchtige leitende Brücke (VCB), Metall-Isolator-Metall (MIM) oder ein anderes Material, das eine stark nichtlineare Abhängigkeit des Stroms von der Auswahlspannung bereitstellt. Die folgenden Ausführungen konzentriert sich auf Speicherzellen, die aus MRAM-Speicherelementen bestehen, die mit einem ovonischen Schwellenwertschalter in Reihe geschaltet sind, obwohl viele der Ausführungen auch allgemeiner angewendet werden können. Der Strom in den Speicherzellen der ersten Speicherebene ist als nach oben fließend dargestellt, wie durch den Pfeil Icell angegeben, jedoch kann Strom in beide Richtungen fließen, wie nachfolgend näher erläutert wird.
  • 7B und 7C zeigen jeweils Seitenansichten und Draufsichten der Kreuzpunktstruktur in 7A. Die Seitenansicht von 7B zeigt einen unteren Draht oder eine Wortleitung WL1 und die oberen Drähte oder Bitleitungen BL1-BLn. Am Kreuzpunkt zwischen den oberen Drähten und den unteren Drähten befindet sich eine MRAM-Speicherzelle 701, obwohl auch PCM, ReRAM, FeRAM oder andere Technologien als Speicherelement verwendet werden können. 7C ist eine Draufsicht, welche die Kreuzpunktstruktur für M untere Drähte WL1-WLM und N obere Drähte BL1-BLN veranschaulicht. In einer binären Ausführungsform kann die MRAM-Zelle an jedem Kreuzpunkt in einen von zwei Widerstandszuständen programmiert werden: High und Low. Im Folgenden werden weitere Ausführungsformen für MRAM-Speicherzellen und Techniken zum Lesen der MRAM-Speicherzellen beschrieben. In einigen Ausführungsformen sind Sätze dieser Drähte kontinuierlich als „Kachel“ angeordnet, und diese Kacheln können nebeneinander in der Wortleitungsrichtung (WL) und orthogonal in der Bitleitungsrichtung gepaart werden, um ein Modul zu erzeugen. Ein solches Modul kann aus 2 × 2 Kacheln bestehen, um eine Vier-Kachel-Kombination zu bilden, wobei die WL-Treiber zwischen den Kacheln „mittig angetrieben“ werden zwischen den Kacheln, wobei die WL kontinuierlich über den Treiber in der ungefähren Mitte der Leitung verläuft. In ähnlicher Weise können BL-Treiber zwischen dem Paar von Kacheln, die in der BL-Richtung gepaart sind, angeordnet sein, um mittig angetrieben zu werden, wobei der Treiber und sein Bereich zwischen einem Paar von Kacheln geteilt wird. Eine Ausführungsform eines Moduls mit vier Kacheln ist in 12B gezeigt, die nachstehend erörtert wird.
  • Das Kreuzpunktarray von 7A veranschaulicht eine Ausführungsform mit einer Schicht von Wortleitungen und Bitleitungen, wobei das MRAM oder andere Speicherzellen an der Schnittstelle der zwei Sätze von Leiterbahnen angeordnet sind. Um die Speicherdichte eines Speicherchips zu erhöhen, können mehrere Schichten solcher Speicherzellen und Leiterbahnen gebildet werden. Ein Zwei-Schicht-Beispiel ist in 7D veranschaulicht.
  • 7D stellt eine Ausführungsform eines Abschnitts eines zweistufigen Speicherarrays dar, das in einer Schrägansicht eine Kreuzpunktarchitektur bildet. Wie in 7A zeigt 7D eine erste Schicht 718 von Speicherzellen 701 eines Arrays 502, die an den Kreuzpunkten der ersten Schicht von Wortleitungen WL1,1-WL1,4 und Bitleitungen BL1-BL5 verbunden sind. Oberhalb der Bitleitungen BL1-BL5 und zwischen diesen Bitleitungen und einem zweiten Satz von Wortleitungen WL2,1-WL2,4 ist eine zweite Lage von Speicherzellen 720 gebildet. Obwohl 7D zwei Schichten 718 und 720 von Speicherzellen zeigt, kann die Struktur durch zusätzliche abwechselnde Schichten von Wortleitungen und Bitleitungen nach oben erweitert werden. Abhängig von der Ausführungsform können die Wortleitungen und Bitleitungen des Arrays von 7D für Lese- oder Programmiervorgänge vorgespannt werden, sodass Strom in jeder Schicht von der Wortleitungsschicht zur Bitleitungsschicht oder umgekehrt fließt. Die beiden Schichten können so strukturiert sein, dass der Strom für einen bestimmten Vorgang in jeder Schicht in die gleiche Richtung fließt oder dass der Strom in entgegengesetzte Richtungen fließt, durch die Treiberauswahl in die positive oder negative Richtung.
  • Die Verwendung einer Kreuzpunktarchitektur ermöglicht Arrays mit einer kleinen Grundfläche, und mehrere solcher Arrays können auf einem einzigen Chip gebildet werden. Die Speicherzellen, die an jedem Kreuzpunkt ausgebildet sind, können Speicherzellen vom resistiven Typ sein, wobei Datenwerte als unterschiedliche Widerstandspegel codiert sind. Abhängig von der Ausführungsform können die Speicherzellen binär sein, entweder mit einem niederohmigen Zustand oder einem hochohmigen Zustand, oder Multilevel-Zellen (MLCs), die einen zusätzlichen Widerstand zwischen dem niederohmigen Zustand und dem hochohmigen Zustand aufweisen können. Die hier beschriebenen Kreuzpunktarrays können in dem Speicherchip 292 von 4, dem lokalen Speicher 106 in 1 und/oder dem Hostspeicher 124 in 1 verwendet werden. Speicherzellen vom resistiven Typ können gemäß vielen der oben genannten Technologien gebildet werden, wie ReRAM, PCM, FeRAM, oder MRAM. Die folgende Erörterung wird hauptsächlich im Zusammenhang mit Speicherarrays dargestellt, die eine Kreuzpunktarchitektur mit binärwertigen MRAM-Speicherzellen verwenden, obwohl ein großer Teil der Erörterung allgemeiner anwendbar ist.
  • 8 veranschaulicht eine Ausführungsform für die Struktur einer MRAM-Zelle. Die MRAM-Zelle schließt eine untere Elektrode 801, einen Abstandshalter 812, einen Schwellenschaltselektor 802, einen Abstandshalter 814, ein Paar magnetischer Schichten (Referenzschicht 803 und freie Schicht 807), die durch eine Trenn- oder Tunnelschicht aus, in diesem Beispiel, Magnesiumoxid (MgO) 805 getrennt sind, und eine obere Elektrode 811, die durch einen Abstandshalter 809 von der freien Schicht 807 getrennt ist, ein. In einer anderen Ausführungsform werden die Positionen der Referenzschicht 803 und der freien Schicht 807 vertauscht, sodass die Referenzschicht 803 auf MgO 805 und die freie Schicht 807 unter MgO 805 liegt. In einer anderen Ausführungsform befindet sich der Schwellenschaltselektor 802 zwischen der freien Schicht 807 und der oberen Elektrode 811.
  • In einigen Ausführungsformen wird die untere Elektrode 801 als Wortleitung bezeichnet und die obere Elektrode 811 wird als eine Bitleitung bezeichnet. In anderen Ausführungsformen wird die untere Elektrode 801 als eine Bitleitung bezeichnet und die obere Elektrode 811 wird als Wortleitung bezeichnet. Der Zustand der Speicherzelle basiert auf der relativen Ausrichtung der Magnetisierungen der Referenzschicht 803 und der freien Schicht 807: wenn die beiden Schichten in der gleichen Richtung magnetisiert sind, befindet sich die Speicherzelle in einem parallelen (P) niederohmigen Zustand (LRS); und wenn sie die entgegengesetzte Ausrichtung aufweisen, befindet sich die Speicherzelle in einem antiparallelen (AP) Zustand mit hohem Widerstand (HRS). Eine MLC-Ausführungsform würde zusätzliche Zwischenzustände einschließen. Die Ausrichtung der Referenzschicht 803 ist fest und im Beispiel von 8 nach oben ausgerichtet. Die Referenzschicht 803 ist auch als Fixed Layer oder Pinned Layer bekannt. Die Referenzschicht 803 kann aus mehreren ferromagnetischen Schichten bestehen, die antiferromagnetisch gekoppelt sind, und zwar in einer Struktur, die gemeinhin als synthetischer Antiferromagnet oder kurz SAF bezeichnet wird.
  • Daten werden in eine MRAM-Speicherzelle geschrieben, indem die freie Schicht 807 so programmiert wird, dass sie entweder die gleiche Orientierung oder die entgegengesetzte Orientierung aufweist. Ein Array von MRAM-Speicherzellen kann in einen anfänglichen oder gelöschten Zustand versetzt werden, indem alle MRAM-Speicherzellen in den Zustand mit niedrigem Widerstand versetzt werden, in dem alle freien Schichten eine Magnetfeldorientierung aufweisen, die mit der ihrer Referenzschichten übereinstimmt. Jede der Speicherzellen wird dann selektiv programmiert (auch als „geschrieben“ bezeichnet), indem ihre freie Schicht 807 durch Umkehrung des Magnetfeldes in den hochohmigen Zustand versetzt wird, der dem der Referenzschicht 803 entgegengesetzt ist. Die Referenzschicht 803 ist so ausgebildet, dass sie beim Programmieren der freien Schicht 807 ihre Orientierung beibehält. Die Referenzschicht 803 kann einen komplizierteren Aufbau aufweisen, der synthetische antiferromagnetische Schichten und zusätzliche Referenzschichten einschließt. Der Einfachheit halber wird in den Figuren und der Erörterung auf diese zusätzlichen Schichten verzichtet und sich nur auf die feste magnetische Schicht konzentriert, die hauptsächlich für den Tunnelmagnetwiderstand in der Zelle verantwortlich ist.
  • Der Schwellenschaltselektor 802 hat einen hohen Widerstand (im ausgeschalteten oder nicht leitenden Zustand), bis er auf eine Spannung vorgespannt wird, die über seiner Schwellenspannung liegt, oder ein Strom über seinem Schwellenstrom liegt, und bis seine Spannungsvorspannung unter Vhold („Voffset“) oder sein Strom unter Ithreshold sinkt. Nach dem Überschreiten von Vt und während Vhold über dem Schaltselektor überschritten wird, verfügt der Schaltselektor über einen niedrigen Widerstand (im eingeschalteten oder leitenden Zustand). Der Schwellenschaltselektor bleibt so lange eingeschaltet, bis sein Strom unter einen Haltestrom Ihold oder die Spannung unter eine Haltespannung Vhold abgesenkt wird. Wenn dies geschieht, kehrt der Schwellenschaltselektor in den Aus-Zustand (höherer Widerstand) zurück. Dementsprechend wird zum Programmieren einer Speicherzelle in einem Kreuzpunkt eine Spannung angelegt, die ausreicht, um den zugehörigen Schwellenschaltselektor einzuschalten und die Speicherzelle zu setzen oder zurückzusetzen; und um eine Speicherzelle zu lesen, wird der Schwellenschaltselektor ebenfalls aktiviert, indem er eingeschaltet wird, bevor der Widerstandszustand der Speicherzelle bestimmt werden kann. Ein Satz von Beispielen für einen Schwellenschaltselektor ist ein ovonisches Schwellenschaltmaterial eines ovonischen Schwellwertschalters (OTS). Beispielhafte Schwellenschaltmaterialien schließen Ge-Se, Ge-Se-N, Ge-Se-As, Ge-Se-Sb-N, Ge58Se42, GeTe6, Si-Te, Zn-Te, C-Te, B-Te, Ge-As-Te-Si-N, Ge-As-Se-Te-Si und Ge-Se-As-Te ein, wobei die Atomprozentsätze für jedes Element von wenigen Prozent bis zu mehr als 90 Prozent reichen. In einer Ausführungsform ist der Schwellenschaltselektor eine zweipolige Vorrichtung. Der Schwellenschaltselektor 802 kann auch zusätzliche leitende Schichten an der Schnittstelle zur Referenzschicht 803 enthalten. Zum Beispiel ist der Abstandshalter 814 zwischen dem Schaltselektor 802 und der Referenzschicht 803 dargestellt. Die Abstandshalterschicht 814 an der Schnittstelle zur Referenzschicht 803 kann eine einzelne leitende Schicht sein oder aus mehreren leitenden Schichten bestehen. Der Schwellenschaltselektor 802 kann auch zusätzliche leitende Schichten an der Schnittstelle zur unteren Elektrode 801 enthalten. Zum Beispiel ist der Abstandshalter 812 zwischen dem Schaltselektor 802 und der Referenzschicht 803 dargestellt. Die Abstandshalterschicht 812 an der Schnittstelle zur unteren Elektrode 801 kann eine einzelne leitende Schicht sein oder aus mehreren leitenden Schichten bestehen. Beispiele für leitende Schichten angrenzend an den OTS schließen Kohlenstoff, Kohlenstoffnitrid, Kohlenstoffsilicid, Wolframcarbid, Titan, Titannitrid, Wolfram, Wolframnitrid, Tantal, Tantalnitrid und andere ein. Schwellenspannungsschalter haben eine Schwellenspannung (Vt), oberhalb derer der Widerstand der Vorrichtung im Wesentlichen von isolierend oder quasi isolierend zu leitend wechselt.
  • In der Ausführungsform von 8 wird ein Strom-Kraft-Ansatz für den Zugriff auf die MRAM-Zelle verwendet. Der Strom-Kraft-Ansatz kann verwendet werden, um die MRAM-Zelle zu lesen oder zu schreiben. Bei dem Strom-Kraft-Ansatz wird ein Zugriffsstrom (z. B. Iread oder Iwrite) von einer Stromquelle 813 durch die Elektrode 801 geleitet. Die Stromquelle 813 ist Teil der Zeilentreiberschaltung für die Elektrode 801. An der Elektrode 811 wird eine Spannung (z. B. Vselect) bereitgestellt. Ein Zugriffsstrom wird durch einen Abschnitt einer ersten leitenden Leitung (z. B. Wortleitung), durch eine ausgewählte Speicherzelle und durch einen Abschnitt einer zweiten leitenden Leitung (z. B. Bitleitung) geleitet. Dabei werden hierin die Begriffe „Lesestrom“ (Iread) und „Schreibstrom“ (Iwrite) in Verbindung mit Zugriffsströmen verwendet, die durch MRAM-Zellen getrieben werden. Der Schreibstrom ändert den Zustand der MRAM-Zelle. Als Beispiel kann ein Schreibstrom von etwa 30 µA für 50 ns für eine MRAM-Zelle mit einer kritischen Abmessung (CD) von etwa 20 Nanometern mit RA10 Ω.µm2 verwendet werden. Die Leseströme können etwa halb so hoch sein wie die Schreibströme, wenn sie für eine begrenzte Zeit, wie etwa < 20 ns, angelegt werden. Ein Schreibstrom, der in eine Richtung durch die M RAM-Zelle fließt, ändert eine MRAM-Zelle im AP-Zustand vom AP-Zustand in den P-Zustand. Ein Schreibstrom, der in der anderen Richtung durch die MRAM-Zelle fließt, ändert eine MRAM-Zelle im P-Zustand vom P-Zustand in den AP-Zustand. Im Allgemeinen wird ein Lesestrom vorzugsweise so niedrig und die Lesedauer so kurz eingestellt, dass der Zustand einer MRAM-Zelle nicht vom P-Zustand in den AP-Zustand oder vom AP-Zustand in den P-Zustand wechselt.
  • Wie weiter unten im Zusammenhang mit 10B näher erläutert, kann in einigen Ausführungsformen ein Lesestrom in P2AP-Richtung oder alternativ in AP2P-Richtung angelegt werden. In einigen Ausführungsformen wird die MRAM-Zelle durch Durchführen eines SRR (Self-Referenced-Read, selbstreferenziertes Lesen) gelesen. Der SRR-Vorgang kann zwei Lese- und zwei Schreibvorgänge einschließen, die einen direkten Vergleich des anfänglichen Bitzustandswiderstands mit dem Widerstand des Bits in einem bekannten programmierten Zustand ermöglichen, gefolgt von einer Wiederherstellung des anfänglichen Bitzustands durch erneutes Schreiben, wenn dieser sich nach dem ersten Schreiben vom Ausgangszustand unterscheidet. In einer Ausführungsform hat ein SRR ein erstes Lesen (Read1 in P2AP-Richtung), ein erstes Schreiben (Write 1 in den AP-State) und ein zweites Lesen (Read2 in P2AP-Richtung), gefolgt von einem optionalen zweiten Schreiben (Write 2 in den P-State für Bits, die sich ursprünglich im P-State befanden). Der Spannungspegel der Speicherzelle aufgrund von Read1 in P2AP-Richtung wird, zum Beispiel auf einem Kondensator, gespeichert; oder durch Umwandlung in digitale Bits durch einen Analog-Digital-Wandler und die Bits im Speicher, zum Beispiel im SRAM, bis nach der Verwendung in Read2 gespeichert. Der auf einem Kondensator gespeicherte Zustand kann mit 150 mv positiv oder negativ eingestellt werden, indem eine Spannung an einen Anschluss eines mit dem Speicherkondensator verbundenen Kondensators angelegt wird. Oder der digital gespeicherte Pegel kann durch digitales Addieren oder Subtrahieren von 150 mV an die gespeicherten Bits angepasst werden.
  • Als nächstes wird die Speicherzelle in den AP-Zustand geschrieben (Write 1). Der durch Read2 in P2AP-Richtung (nach einem Write 1) gemessene Spannungspegel wird mit dem von Read1 gespeicherten und angepassten Spannungspegel verglichen, wobei sowohl Read1 als auch Read2 in P2AP-Richtung durchgeführt werden. Eine ausreichende Änderung des Spannungspegels zwischen Read2 und Read1, zum Beispiel mehr als 150 mV, zeigt an, dass sich die MRAM-Zelle ursprünglich im P-Zustand befand. Wenn die Spannungsänderung weniger als 150 mV beträgt, befand sich die MRAM-Zelle ursprünglich im AP-Zustand (in den das Schreiben den Bitzustand leitete). Ein optionales Write 2 des Bits AP2P wird durchgeführt, wenn sich das Bit ursprünglich im P-Zustand befand und durch Write 1 in den AP-Zustand geschaltet wurde. Alternativ dazu verfügt die SRR über ein erstes Lesen (Read1 in AP2P-Richtung), ein erstes (Write 1 in den P-State und ein zweites Lesen (Read2 in AP2P-Richtung). Der Spannungspegel der Speicherzelle aufgrund von Read1 in AP2P-Richtung wird gespeichert und zum Beispiel um -150 mV angepasst. Als nächstes wird die Speicherzelle in den P-Zustand geschrieben (Write 1). Der Spannungspegel aufgrund von Read2 in AP2P-Richtung wird mit dem angepassten Spannungspegel aufgrund von Read1 in AP2P-Richtung verglichen. Eine angemessene Änderung des Spannungspegels zeigt an, dass sich die MRAM-Zelle ursprünglich im AP-Zustand befand. Ein optionales Write 2 wird durchgeführt, wenn sich das Bit ursprünglich im AP-Zustand befand und durch Write 1 in den P-Zustand geschaltet wurde. In einigen Ausführungsformen wird für Read1, Write1 und Read2 die gleiche Polarität verwendet, damit der Selektor zwischen Read1 und Read2 nicht ausgeschaltet werden muss. In einigen Ausführungsformen wird der Write 2 verzögert und erst nach der Durchführung anderer Vorgänge durchgeführt. In einigen Ausführungsformen wird Write 1 durch Verlängerung der Dauer des Lesestroms, der während des Read 1 angelegt wird, durchgeführt.
  • In einer Ausführungsform wird die MRAM-Zelle gelesen, indem zum Beispiel 0 V an die Elektrode 811 angelegt wird, während ein Strom von zum Beispiel 15 Mikroampere (µA) durch die Elektrode 801 geleitet wird. Dieser Lesestrom fließt von der Elektrode 801 zur Elektrode 811. Es ist zu beachten, dass das Lesen Read1 oder Read2 in der P2AP-Richtung erfolgen kann. P2AP bedeutet, dass der Strom in der Richtung fließt, die das Bit von P nach AP oder AP nach AP schreiben würde. In einigen Ausführungsformen werden Daten unter Verwendung eines bipolaren Schreibvorgangs in die MRAM-Zelle geschrieben. In einer Ausführungsform wird die MRAM-Zelle vom AP-Zustand in den P-Zustand geschrieben, indem zum Beispiel 3 V an die Elektrode 811 angelegt werden, während ein Schreibstrom von zum Beispiel -30 µA durch die Elektrode 801 geleitet wird. Dieser Schreibstrom fließt von der einen Elektrode 811 zu der anderen Elektrode 801. In einer Ausführungsform wird die MRAM-Zelle vom P-Zustand in den AP-Zustand geschrieben, indem zum Beispiel 0 V an die eine Elektrode 811 angelegt wird, während ein Strom von zum Beispiel 30 µA durch die andere Elektrode 801 geleitet wird. Dieser Schreibstrom fließt von der Elektrode 801 zur Elektrode 811.
  • Alternativ zur Vorgehensweise in 8 kann die Auswahlspannung an die Elektrode 801 angelegt werden, wobei der Zugriffsstrom durch die Elektrode 811 angelegt wird. In einer solchen Ausführungsform wird die MRAM-Zelle ausgelesen, indem zum Beispiel 3 V an eine Elektrode 801 angelegt werden, während ein Lesestrom von zum Beispiel -15 µA durch die andere Elektrode 811 geleitet wird. Dieser Lesestrom fließt von der Elektrode 801 zur oberen Elektrode 811.
  • In einer Ausführungsform wird die MRAM-Zelle vom AP-Zustand in den P-Zustand geschrieben, indem zum Beispiel -3 V an die untere Elektrode 801 angelegt werden, während ein Schreibstrom von zum Beispiel 30 µA durch die obere Elektrode 811 geleitet wird. Dieser Elektronenstrom fließt von der unteren Elektrode 801 zur oberen Elektrode 811. In einer Ausführungsform wird die MRAM-Zelle vom P-Zustand in den AP-Zustand geschrieben, indem zum Beispiel 0 V an die untere Elektrode 801 angelegt werden, während ein Strom von zum Beispiel -30 µA durch die obere Elektrode 811 geleitet wird. Der Elektronenstrom fließt von der oberen Elektrode 811 zur unteren Elektrode 801. Die Dauer, die der Lesestrom angelegt wird, kann sich wesentlich von der Dauer unterscheiden, die der Schreibstrom angelegt wird. Der Lesestrom kann zum Beispiel 20 ns lang angelegt werden, während der Schreibstrom 50 ns lang angelegt werden kann, bevor der durch die Zelle fließende Strom auf Null oder auf einen Wert reduziert wird, bei dem die Wahrscheinlichkeit einer Störung der Zelle für die Dauer, die der Strom angelegt ist, vernachlässigbar ist. Die Dauer des Schreib- und Lesestroms kann auch gleich oder im Wesentlichen ähnlich sein, wie zum Beispiel 20 ns. Jedes Lesen kann mit einem wesentlich geringeren Strom als das Schreiben durchgeführt werden, wie mit 10 µA und respektive 40 µA. In dieser Erörterung wird auch davon ausgegangen, dass die Richtung der Strompolarität zum Umschalten der Magnetisierung des Bits in den P- oder AP-Zustand je nach Design der Referenzschicht und der Lage der Referenzschicht in Bezug auf die freie Schicht variieren kann.
  • 9 veranschaulicht detaillierter eine Ausführungsform für eine MRAM-Speicherzellengestaltung, wie sie in einem Kreuzpunktarray implementiert werden kann. Bei der Anordnung in einem Kreuzpunktarray sind die oberen und unteren Elektroden der MRAM-Speicherzellen die oberen und unteren Drähte des Arrays. In der hier gezeigten Ausführungsform ist die untere Elektrode die Wortleitung 901 und die obere Elektrode die Bitleitung 911 der Speicherzelle, aber diese können in einigen Ausführungsformen auch umgekehrt sein. Zwischen der Wortleitung 901 und der Bitleitung 911 befinden sich die Referenzschicht 903 und die freie Schicht 907, die wiederum von der MgO-Barriere 905 getrennt sind. In der in 9 gezeigten Ausführungsform wird auch eine MgO-Kappe 908 auf der freien Schicht 907 gebildet, und ein leitfähiger Abstandhalter 909 wird zwischen der Bitleitung 911 und der MgO-Kappe 908 gebildet. Die Referenzschicht 903 ist von der Wortleitung 901 durch einen weiteren leitfähigen Abstandhalter 902 getrennt. Ein Schwellenschaltselektor 802 kann sich zwischen der Referenzschicht 903 und dem leitenden Abstandshalter 902 befinden. Auf jeder Seite der Speicherzellenstruktur befindet sich eine Auskleidung 921 und 923, wobei diese Teil derselben Struktur sein können, aber im Querschnitt von 9 getrennt erscheinen. Zu beiden Seiten der Auskleidung 921 ist 923 ein Teil des Füllmaterials 925, 927 gezeigt, das zum Füllen der ansonsten leeren Bereiche der Kreuzpunktstruktur verwendet wird.
  • In Bezug auf die Gestaltung der freien Schicht 907 schließen Ausführungsformen eine CoFe- oder CoFeB-Legierung mit einer Dicke in der Größenordnung von ~1-2 nm ein, wobei eine Ir-Schicht mit einer freien Schicht nahe der MgO-Barriere 905 durchsetzt sein kann und die freie Schicht 907 mit Ta, W oder Mo dotiert oder durchsetzt sein kann. Ausführungsformen für die Referenzschicht 903 können eine Doppelschicht aus CoFeB und einer Co/Pt-Multischicht, gekoppelt mit einem Ir- oder Ru-Abstandshalter, oder eine Kombination oder Legierung aus beiden 902 einschließen. Die MgO-Kappe 908 ist optional, kann aber verwendet werden, um die Anisotropie zu erhöhen und den kritischen Schaltstrom der freien Schicht 907 zu reduzieren. Bei den leitfähigen Abstandhaltern kann es sich unter anderem um leitfähige Metalle wie Ta, W, Ru, CN, TiN und TaN handeln. Die freie Schicht kann auch eine zusammengesetzte freie Schicht sein, die aus mehreren freien Schichten mit dazwischen liegenden leitenden Schichten wie W, Ta, W oder dazwischenliegenden Tunnelschichten wie MgO besteht.
  • Die folgende Erörterung wird hauptsächlich in Bezug auf eine MRAM-Speicherzelle mit senkrechtem Spin-Transfer-Drehmoment erörtert, wobei die freie Schicht 807/907 der 8 und 9 eine umschaltbare Magnetisierungsrichtung aufweist, die senkrecht zur Ebene der freien Schicht ist. Spin-Transfer-Drehmoment (Spin-Transfer-Torque, „STT“) ist ein Effekt, bei dem die Ausrichtung einer magnetischen Schicht in einem magnetischen Tunnelkontakt (MJT) unter Verwendung eines spinpolarisierten Stroms modifiziert werden kann. Ladungsträger (wie etwa Elektronen) haben eine Eigenschaft, die als Spin bekannt ist, wobei es sich um eine geringe Menge an Drehimpuls handelt, der intrinsisch für den Träger ist. Ein elektrischer Strom ist im Allgemeinen unpolarisiert (z. B. besteht er aus 50 % Spin-up- und 50 % Spin-down-Elektronen). Ein spinpolarisierter Strom ist einer mit mehr Elektronen mit einem der Spins (z. B. einer Mehrzahl von Spin-up-Elektronen oder einer Mehrzahl von Spin-down-Elektronen). Durch Leiten eines Stroms durch eine dicke magnetische Schicht (die Referenzschicht) kann ein spinpolarisierter Strom erzeugt werden. Wenn dieser spinpolarisierte Strom in eine zweite magnetische Schicht (die freie Schicht) geleitet wird, kann ein Drehimpuls auf diese zweite magnetische Schicht übertragen werden, wodurch die Magnetisierungsrichtung der zweiten magnetischen Schicht geändert wird. Dies wird als Spin-Transfer-Drehmoment bezeichnet. 10A und 10B veranschaulichen die Verwendung des Spin-Transfer-Drehmoments zum Programmieren oder Schreiben in den MRAM-Speicher. Ein Spin-Transfer-Drehmoment-Speicher mit wahlfreiem Zugriff (STT-MRAM) hat gegenüber anderen MRAM-Varianten die Vorteile eines geringeren Stromverbrauchs und einer besseren Skalierbarkeit. Im Vergleich zu anderen MRAM-Implementierungen, wie Toggle-MRAM, erfordert die STT-Schalttechnik eine relativ geringe Leistung, beseitigt praktisch das Problem benachbarter Bitstörungen und weist eine günstigere Skalierung für höhere Speicherzellendichten (reduzierte MRAM-Zellengröße) auf. Letzteres begünstigt auch STT-MRAM, bei dem die Magnetisierungen der freien und der Referenzschicht senkrecht zu der Filmebene und nicht in der Ebene orientiert sind.
  • Da sich das STT-Phänomen leichter in Form von Elektronenverhalten beschreiben lässt, werden die 10A und 10B und ihre Erörterung als Elektronenstrom angegeben, wobei die Richtung des Schreibstroms als Richtung des Elektronenflusses definiert ist. Daher bezieht sich der Begriff Schreibstrom unter Bezugnahme auf 10A und 10B auf einen Elektronenstrom. Da Elektronen negativ geladen sind, wird der Elektronenstrom entgegengesetzt zu dem herkömmlich definierten Strom sein, so dass ein Elektronenstrom von einem niedrigeren Spannungsniveau zu einem höheren Spannungsniveau statt des herkömmlichen Stromflusses von einem höheren Spannungsniveau zu einem niedrigeren Spannungsniveau fließt.
  • 10A und 10B veranschaulichen das Schreiben einer MRAM-Speicherzelle unter Verwendung des STT-Mechanismus, wobei eine vereinfachte schematische Darstellung eines Beispiels einer STT-schaltenden MRAM-Speicherzelle 1000, in der die Magnetisierung sowohl der Referenzschicht als auch der freien Schicht in der senkrechten Richtung erfolgt, dargestellt wird. Die Speicherzelle 1000 schließt einen magnetischer Tunnelkontakt (MTJ) 1002 ein, der eine obere ferromagnetische Schicht 1010, eine untere ferromagnetische Schicht 1012 und eine Tunnelbarriere (TB) 1014 als Isolierschicht zwischen den beiden ferromagnetischen Schichten aufweist. In diesem Beispiel ist die obere ferromagnetische Schicht 1010 die freie Schicht FL, und die Richtung ihrer Magnetisierung kann umgekehrt werden. Die untere ferromagnetische Schicht 1012 ist die Referenz (oder feste) Schicht RL, und die Richtung ihrer Magnetisierung kann nicht umgekehrt werden. Wenn die Magnetisierung in der freien Schicht 1010 parallel zur Magnetisierung in der Referenzschicht RL 1012 verläuft, ist der Widerstand über der Speicherzelle 1000 relativ gering. Wenn die Magnetisierung in der freien Schicht FL 1010 antiparallel zur Magnetisierung in der Referenzschicht RL 1012 ist, ist der Widerstand über der Speicherzelle 1000 relativ hoch. Die Daten („0“ oder „1") in der Speicherzelle 1000 werden durch Messung des Widerstands der Speicherzelle 1000 ausgelesen, wie beispielsweise durch Erzwingen. In diesem Zusammenhang werden die elektrischen Leiter 1006/1008, die an der Speicherzelle 1000 angeschlossen sind, zum Lesen der MRAM-Daten verwendet. Standardmäßig bleiben sowohl die parallele als auch die antiparallele Konfiguration im Ruhezustand und/oder während eines Lesevorgangs (bei ausreichend geringerem Lesestrom) stabil.
  • Für sowohl die Referenzschicht RL 1012 als auch die freie Schicht FL 1010 ist die Richtung der Magnetisierung die senkrechte Richtung (d. h. senkrecht zu der Ebene, die durch die freie Schicht definiert wird, und senkrecht zu der Ebene, die durch die Referenzschicht definiert wird). Beispielsweise zeigen die 10A und 10B, dass die Magnetisierungsrichtung der Referenzschicht RL 1012 nach oben ist und die Magnetisierungsrichtung der freien Schicht FL 1010 zwischen nach oben und nach unten umschaltbar ist, was wiederum senkrecht zu der Ebene ist.
  • In einer Ausführungsform besteht die Tunnelbarriere 1014 aus Magnesiumoxid (MgO); jedoch können auch andere Materialien verwendet werden. Die freie Schicht 1010 ist ein ferromagnetisches Metall, das die Fähigkeit besitzt, seine Magnetisierungsrichtung zu ändern/umzukehren. Mehrfachschichten auf Basis von Übergangsmetallen wie Co, Fe und deren Legierungen können zum Bilden der freien Schicht 1010 verwendet werden. In einer Ausführungsform weist die freie Schicht 1010 eine Legierung aus Kobalt, Eisen und Bor auf. Bei der Referenzschicht 1012 kann es sich um viele verschiedene Arten von Materialien handeln, einschließlich (aber nicht beschränkt auf) Mehrfachschichten aus Kobalt und Platin bzw. einer Legierung aus Kobalt und Eisen.
  • Um den Bitwert der MRAM-Zelle „einzustellen“ (d. h. die Richtung der Magnetisierung der freien Schicht zu wählen), wird ein Elektronenstrom 1050 von dem Leiter 1008 zu dem Leiter 1006 angelegt, wie in 10A dargestellt (daher fließt der Strom in umgekehrter Richtung). Um den Elektronenstrom 1050 zu erzeugen, wird der obere Leiter 1006 aufgrund der negativen Ladung des Elektrons auf einen höheren Spannungspegel gelegt als der untere Leiter 1008. Die Elektronen in dem Elektronenstrom 1050 werden beim Durchlaufen der Referenzschicht 1012 spinpolarisiert, da die Referenzschicht 1012 ein ferromagnetisches Metall ist. Wenn sich die spinpolarisierten Elektronen durch die Tunnelbarriere 1014 bewegen, kann die Erhaltung des Drehimpulses dazu führen, dass sowohl der freien Schicht 1010 als auch der Referenzschicht 1012 ein Drehmoment vermittelt wird, aber dieses Drehmoment ist (absichtlich) nicht ausreichend, um die Magnetisierungsrichtung der Referenzschicht 1012 zu beeinflussen. Im Gegensatz dazu ist dieses Spin-Transfer-Drehmoment (absichtlich) ausreichend, um die Magnetisierungsorientierung in der freien Schicht 1010 so zu verändern, dass sie parallel (P) zu derjenigen der Referenzschicht 1012 wird, wenn die anfängliche Magnetisierungsorientierung der freien Schicht 1010 antiparallel (AP) zu der Referenzschicht 1012 war, was als ein Schreibvorgang antiparallel-zu-parallel (AP2P) bezeichnet wird. Die parallelen Magnetisierungen bleiben dann vor und nach dem Abschalten des Elektronenstroms stabil.
  • Im Gegensatz dazu kann, wenn die Magnetisierungen der freien Schicht 1010 und der Referenzschicht 1012 anfänglich parallel sind, die Magnetisierung der freien Schicht 1010 so umgeschaltet werden, dass sie antiparallel zu der Referenzschicht 1012 wird, indem ein Elektronenstrom in entgegengesetzter Richtung zu dem oben genannten Fall angelegt wird. Zum Beispiel wird ein Elektronenstrom 1052 von Leiter 1006 an Leiter 1008 angelegt, wie in 10B dargestellt, indem der höhere Spannungspegel auf den niedrigeren Leiter 1008 gelegt wird. Dies schreibt eine freie Schicht 1010 in einem P-Zustand in einen AP-Zustand, der als Parallel-zu-Antiparallel-Schreiben (P2AP) bezeichnet wird. Somit kann über die gleiche STT-Physik die Richtung der Magnetisierung der freien Schicht 1010 durch gezielte Wahl der Elektronenstromrichtung (Polarität) deterministisch auf eine von zwei stabilen Orientierungen eingestellt werden.
  • Die Daten („0“ oder „1“) in der Speicherzelle 1000 können durch Messen des Widerstands der Speicherzelle 1000 gelesen werden. Ein geringer Widerstand stellt üblicherweise ein „0“-Bit dar, und ein hoher Widerstand stellt üblicherweise ein „1"-Bit dar, obwohl gelegentlich die andere Vereinbarung auftritt. Ein Lesestrom kann über die Speicherzelle (z. B. über den magnetischen Tunnelkontakt 1002) angelegt werden, indem ein Elektronenstrom von Leiter 1008 an Leiter 1006 angelegt wird, der wie für 1050 in 10A gezeigt fließt (die „AP2P-Richtung“); alternativ kann der Elektronenstrom von Leiter 1006 an Leiter 1008 angelegt werden, der wie für 1052 in 10B (die „P2AP-Richtung“) gezeigt fließt. Es versteht sich, dass der Elektronenstrom in der entgegengesetzten Richtung wie herkömmlich definiert fließt. Bei einem Lesevorgang kann dies, wenn der Elektronenstrom zu hoch ist, in einer Speicherzelle gespeicherte Daten stören und deren Zustand ändern. Wenn zum Beispiel der Elektronenstrom Read1 die P2AP-Richtung von 10B verwendet, kann ein zu hoher Strom- oder Spannungspegel beliebige Speicherzellen im P-Zustand mit niedrigem Widerstand in den AP-Zustand mit hohem Widerstand schalten, bevor die Bitspannung während Read1 gespeichert wurde. Folglich kann, obwohl die MRAM-Speicherzelle in beiden Richtungen gelesen werden kann, die Richtungseigenschaft des Schreibvorgangs in verschiedenen Ausführungsformen eine Leserichtung gegenüber der anderen bevorzugen. Zum Beispiel kann für einen gegebenen Lesestrom die Fehlerrate von SRR in der P2AP-Richtung geringer sein.
  • Obwohl die Erörterung der 10A und 10B im Zusammenhang mit Elektronenstrom für die Lese- und Schreibströme erfolgte, wird die nachfolgende Erörterung im Zusammenhang mit herkömmlichem Strom erfolgen, sofern nicht anders angegeben.
  • Egal ob zum Lesen oder Schreiben ausgewählter Speicherzellen in den Array-Strukturen von 7A-7D, die Bitleitung und die Wortleitung, die einer ausgewählten Speicherzelle entsprechen, werden vorgespannt, um eine Spannung über die ausgewählte Speicherzelle zu legen oder einen Strom durch sie zu leiten und den Elektronenfluss, wie im Hinblick auf 10A oder 10B veranschaulicht, zu induzieren. Es ist zu beachten, dass hierin eine „ausgewählte Speicherzelle“ bedeutet, dass die Speicherzelle für den Zugriff ausgewählt ist (z. B. Lesezugriff, Schreibzugriff). Eine „nicht ausgewählte Speicherzelle“ bedeutet, dass die Speicherzelle nicht für den Zugriff ausgewählt wird, indem entweder ihre WL oder ihre BL oder beide auf eine Spannung gelegt werden, die etwa in der Mitte zwischen der maximalen positiven und der minimalen negativen Spannung an der Speicherzelle liegt. Ein gegebener Prozess kann zu Schreibströmen führen, die für das Vorwärts- und Rückwärts-Schreiben des MRAM etwa gleich sind, oder es kann sein, dass das Schreiben vom niederohmigen Zustand (LRS) in den hochohmigen Zustand (HRS) 20 % mehr Strom für eine CD von etwa 20 nm und RA10 Ω.µm2 erfordert.
  • Einige Vorspannungstechniken können zu einer Spannung über nicht ausgewählten Speicherzellen des Arrays führen, die Ströme in nicht ausgewählten Speicherzellen induzieren kann. Obwohl dieser Verlustleistungsverbrauch zu einem gewissen Grad abgeschwächt werden kann, indem die Speicherzellen so ausgelegt werden, dass sie relativ hohe Widerstandspegel sowohl für hohe als auch für niedrige Widerstandszustände aufweisen, führt dies immer noch zu einem erhöhten Strom- und Leistungsverbrauch sowie zu zusätzlichen Auslegungsbeschränkungen für die Auslegung der Speicherzellen und des Arrays. Ein Ansatz zur Behebung dieses unerwünschten Leckstroms besteht darin, ein Auswahlelement in Reihe mit jedem MRAM oder einer anderen resistiven (z. B. ReRAM, PCM) Speicherzelle zu platzieren. Zum Beispiel kann ein Auswahltransistor mit jedem resistiven Speicherzellenelement in den 7A-7D in Reihe geschaltet werden, sodass die Speicherzellen 701 nun ein Verbund aus einem Auswahltransistor und einem programmierbaren Widerstand sind. Die Verwendung eines Auswahltransistors erfordert jedoch die Einführung zusätzlicher Steuerleitungen und eines zusätzlichen Zellbereichs, um den entsprechenden Transistor einer ausgewählten Speicherzelle einschalten zu können. Darüber hinaus skalieren Transistoren oft nicht in der gleichen Art und Weise wie der Schreibstrom des resistiven Speicherelements, so dass bei immer kleineren Speicherarrays die Verwendung von transistorbasierten Selektoren ein limitierender Faktor, zum beispielsweise für das Senken von Kosten, sein kann. Ein alternativer Ansatz zur Auswahl von Transistoren ist die Verwendung eines Schwellenschaltselektors (z. B. Schwellenschaltselektor 802) in Reihe mit dem programmierbaren Widerstandselement. Ein zweipoliger Schwellenschaltselektor benötigt keine der vorstehend erwähnten zusätzlichen Steuerleitungen und keine Zellbereiche, um den entsprechenden Auswahltransistor einer ausgewählten Speicherzelle einschalten zu können.
  • 11A und 11B veranschaulichen Ausführungsformen für die Integration von Schwellenschaltselektoren in ein MRAM-Speicherarray mit einer Kreuzpunktarchitektur. Die Beispiele der 11A und 11B zeigen zwei MRAM-Zellen (Schicht-1-Zelle, Schicht-2-Zelle) in einem zweischichtigen Kreuzpunktarray, wie in 7D gezeigt, jedoch in einer Seitenansicht. Die 11A und 11B zeigen eine untere erste leitfähige Leitung der Wortleitung 1 1100, eine obere erste leitfähige Leitung der Wortleitung 2 1120 und eine dazwischenliegende zweite leitfähige Leitung der Bitleitung 1110. In diesen Figuren sind alle diese Zeilen zur Vereinfachung der Darstellung von links nach rechts quer über die Seite verlaufend gezeigt, in einem Kreuzpunktarray würden sie jedoch wie in der Schrägansicht von 7D genauer dargestellt werden, wobei die Wortleitungen oder ersten leitfähigen Leitungen oder Drähte in einer Richtung parallel zur Oberfläche des darunter liegenden Substrats verlaufen und die Bitleitungen oder zweiten leitfähigen Leitungen oder Drähte in einer zweiten Richtung parallel zur Oberfläche des Substrats verlaufen, die weitgehend orthogonal zur ersten Richtung ist. Die M RAM-Speicherzellen sind auch in einer vereinfachten Form dargestellt, die nur die Referenzschicht, die freie Schicht und die Zwischentunnelbarriere zeigt, würden aber in einer tatsächlichen Implementierung üblicherweise die zusätzliche Struktur einschließen, die vorstehend in Bezug auf 9 beschrieben ist.
  • Ein MRAM-Element 1102, welches die freie Schicht 1101, die Tunnelbarriere 1103 und die Referenzschicht 1105 einschließt, ist oberhalb des Schwellenschaltselektors 1109 gebildet, wobei diese Reihenschaltung des MRAM-Elements 1102 und des Schwellenschaltselektors 1109 zusammen die Schicht-1-Zelle zwischen der Bitleitung 1110 und der Wortleitung 1 1100 bildet. Die Serienkombination aus dem MRAM-Element 1102 und dem Schwellenschaltselektor 1109 arbeitet im Wesentlichen wie vorstehend in 10A und 10B beschrieben, wenn der Schwellenschaltselektor 1109 eingeschaltet ist. Anfänglich muss jedoch der Schwellwertwahlschalter 1109 eingeschaltet werden, indem eine Spannung über der Schwellenspannung Vth des Schwellenschaltselektors 1109 angelegt wird, und dann der Vorspannstrom oder die Vorspannspannung ausreichend hoch über dem Haltestrom oder der Haltespannung des Schwellwertwahlschalters 1109 gehalten werden muss, damit er/sie während des nachfolgenden Lese- oder Schreibvorgangs eingeschaltet bleibt.
  • Auf der zweiten Schicht schließt ein MRAM-Element 1112 die freie Schicht 1111, die Tunnelbarriere 1113 ein, und die Referenzschicht 1115 ist über dem Schwellenschaltselektor 1119 gebildet, wobei die Reihenschaltung des MRAM-Elements 1112 und des Schwellenschaltselektors 1119 zusammen die Schicht-2-Zelle zwischen der Bitleitung 1110 und der Wortleitung 2 1120 bilden. Die Schicht-2-Zelle arbeitet wie die Schicht-1-Zelle, obwohl der untere Leiter nun einer Bitleitung 1110 entspricht und der obere Leiter nun eine Wortleitung, Wortleitung 2 1120, ist. Zusätzliche gepaarte Schichten können in ähnlicher Weise eine andere Bitleitung zwischen ihnen aufweisen, mit einem Muster von WL1, BL1, WL2; WL3, BL2, WL4; oder separate Bitleitungen in einem Muster wie WL1, BL1, WL2, BL2 aufweisen.
  • In der Ausführungsform von 11A ist der Schwellenschaltselektor 1109/1119 unterhalb des MRAM-Elements 1102/1112 ausgebildet, aber in alternativen Ausführungsformen kann der Schwellenschaltselektor für eine oder beide Schichten oberhalb des MRAM-Elements ausgebildet sein. Wie in Bezug auf die 10A und 10B erörtert, ist die MRAM-Speicherzelle direktional. In 11A weisen die MRAM-Elemente 1102 und 1112 die gleiche Ausrichtung auf, wobei die freie Schicht 1101/1111 über (relativ zum nicht gezeigten Substrat) der Referenzschicht 1105/1115 liegt. Die Bildung der Schichten zwischen den Leiterbahnen mit der gleichen Struktur kann eine Reihe von Vorteilen haben, insbesondere im Hinblick auf die Verarbeitung, da jede der beiden Schichten sowie nachfolgende Schichten in Ausführungsformen mit mehreren Schichten nach der gleichen Verarbeitungsreihenfolge gebildet werden können.
  • 11B veranschaulicht eine alternative Ausführungsform, die ähnlich der von 11A angeordnet ist, außer dass in der Schicht-2-Zelle die Positionen der Referenzschicht und der freien Schicht umgekehrt sind. Genauer gesagt schließt die Schichtzelle 1 zwischen der Wortleitung 1 1150 und der Bitleitung 1160 wie in 11A, ein MRAM-Element I ein und weist eine freie Schicht 1151 auf, die über der Tunnelbarriere 1153 gebildet ist, die ihrerseits über der Referenzschicht 1155 gebildet ist, wobei das MRAM-Element 1152 über dem Schwellenschaltselektor 1159 gebildet ist. Die zweite Schicht der Ausführungsform von 11B weist wiederum ein MRAM-Element 1162 auf, das über einem Schwellenschaltselektor 1169 zwischen der Bitleitung 1160 und der Wortleitung 2 1170 gebildet ist, wobei jedoch in Bezug auf 11A das MRAM-Element 1162 invertiert ist, wobei die Referenzschicht 1161 jetzt über der Tunnelbarriere 1163 und die freie Schicht 1165 jetzt unter der Tunnelbarriere 1163 gebildet ist. Alternativ kann die Konfiguration der MRAM-Zelle 1162 für die Schicht-1-Zelle verwendet werden und die Konfiguration der MRAM-Zelle 1152 kann für die Schicht-2-Zelle verwendet werden.
  • Obwohl die Ausführungsform von 11B eine unterschiedliche Verarbeitungssequenz für das Bilden von Schichten erfordert, kann sie in einigen Ausführungsformen Vorteile aufweisen. Insbesondere kann die Direktionalität der MRAM-Struktur die Ausführungsform von 11B attraktiv machen, da beim Schreiben oder Lesen in der gleichen Richtung (in Bezug auf die Referenz- und freien Schichten) die Bitleitung für sowohl die untere Schicht als auch die obere Schicht gleich vorgespannt wird und beide Wortleitungen gleich vorgespannt werden. Wenn zum Beispiel sowohl Schicht-1- als auch Schicht-2-Speicherzellen in der P2AP-Richtung (in Bezug auf die Referenz- und die freien Schichten) gelesen werden, wird die Bitleitungsschicht 1160 wie in der P2AP-Richtung vorgespannt, die Bitleitung 1160 ist sowohl für die obere als auch für die untere Zelle niedrig vorgespannt (z. B. 0 V), wobei sowohl Wortleitung 1 1150 als auch Wortleitung 2 1170 auf einen höheren Spannungspegel vorgespannt sind. In ähnlicher Art und Weise ist zum Schreiben in den hochohmigen AP-Zustand die Bitleitung 1160 sowohl für die obere als auch für die untere Zelle niedrig vorgespannt (z. B. 0 V), wobei die Wortleitung 1 1150 und die Wortleitung 2 1170 beide auf einen höheren Spannungspegel vorgespannt sind; und zum Schreiben in den Zustand mit niedrigem Widerstand P ist die Bitleitung 1160 auf den hohen Spannungspegel vorgespannt, wobei die Wortleitung 1 1150 und die Wortleitung 2 1170 beide auf den niedrigen Spannungspegel vorgespannt sind. Im Gegensatz dazu müssten für die Ausführungsform von 11A die Bitleitungen und Wortleitungen ihre Vorspannungspegel umgekehrt haben, um einen dieser Vorgänge auf dem oberen Pegel relativ zu dem unteren Pegel durchzuführen. Es ist zu beachten, dass in einer Ausführungsform eines Strom-Kraft-Ansatzes die Wortleitungen auf eine Zielspannung vorgespannt werden, indem ein Strom durch die Wortleitung geleitet wird.
  • Das Lesen von Daten aus einer MRAM-Speicherzelle oder das Schreiben von Daten in eine MRAM-Speicherzelle umfasst das Fließen eines Stroms durch die Speicherzelle. In Ausführungsformen in denen ein Schwellenschaltselektor in Reihe mit dem MRAM-Element platziert ist, muss der Schwellenschaltselektor eingeschaltet werden, bevor der Strom durch das MRAM-Element fließen kann, indem eine ausreichende Spannung an die Reihenschaltung aus Schwellenschaltselektor und MRAM-Element angelegt wird und Strom durch diese fließt.
  • 12 stellt eine Ausführungsform eines Speicherarrays 502 dar, das eine Kreuzpunktarchitektur aufweist. Das Array 502 weist einen Satz von ersten Leiterbahnen 1206a-1206 h und einen Satz von zweiten Leiterbahnen 1208a-1208d auf. In einer Ausführungsform sind der Satz von ersten Leiterbahnen 1206a-1206 h Wortleitungen und der Satz von zweiten Leiterbahnen 1208a-1208b Bitleitungen. Der Einfachheit halber kann der Satz von ersten Leiterbahnen 1206a-1206 h als Wortleitungen bezeichnet werden und kann der Satz von zweiten Leiterbahnen 1208a-1208b als Bitleitungen bezeichnet werden. Bei dem Satz von ersten Leiterbahnen 1206a-1206 h könnte es sich jedoch um Bitleitungen handeln und bei dem Satz von zweiten Leiterbahnen 1208a-1208b könnte es sich um Wortleitungen handeln.
  • Das Array 502 weist eine Anzahl von Speicherzellen 701 auf. Jede Speicherzelle 701 ist zwischen einer der ersten Leiterbahnen 1206 und einer der zweiten Leiterbanhnen 1208 verbunden. Jede Speicherzelle 701 weist ein magnetoresistives Direktzugriffsspeicherelement (M RAM-Element) 1202 in Reihe mit einem Schwellenschaltselektorelement 1204 auf. Daher kann jede Speicherzelle („Bit“) 701 als eine MRAM-Zelle oder als Bit bezeichnet werden. Der Schwellenschaltselektor 1204 ist so eingerichtet, dass er als Reaktion auf das Anlegen eines Spannungspegels, der eine Schwellenspannung des Schwellenschaltselektors 1204 übersteigt, mit einem geringeren Widerstand leitend wird und mit einem geringeren Widerstand leitend bleibt, bis der Strom durch den Schwellenschaltselektor 1204 unter den Selektorhaltestrom, Ihold, reduziert wird. Das Schwellenschaltselektorelement 1204 ist eine zweipolige Vorrichtung. In einer Ausführungsform weist das Schwellenschaltselektorelement 1204 einen OTS auf.
  • Jede erste leitende Leitung 1206 wird von einem der WL-Treiber 1210a-1210 h angesteuert. Zum Beispiel wird die erste leitende Leitung 1206a durch den WL-Treiber 1210a angesteuert, die erste leitende Leitung 1206b wird durch den WL-Treiber 1210b angesteuert usw. Jede zweite leitende Leitung 1208 wird von einem der BL-Treiber 1212a-1212d angesteuert. Zum Beispiel wird die zweite leitende Leitung 1208a durch BL-Treiber 1212a angesteuert, die zweite leitende Leitung 1208b wird durch BL-Treiber 1212b angesteuert usw. In einer Ausführungsform werden die Wortleitungen und die Bitleitungen von einem Ende der Wortleitung oder der Bitleitung angesteuert. 12A stellt eine solche Ausführungsform dar, bei der die Wortleitungen und die Bitleitungen von einem Ende angesteuert werden. In einer alternativen Ausführungsform werden die Bitleitungen und/oder die Wortleitungen von einem Mittelpunkt angesteuert. Das Ansteuern einer Wortleitung oder einer Bitleitung von einem Mittelpunkt verringert den IR-Spannungsabfall des schlechtesten Falls.
  • Obwohl ein separater Treiber 1210 dargestellt ist, der mit jeder Wortleitung 1206 verbunden ist, ist es nicht erforderlich, für jede Wortleitung einen separaten Treiber 1210 zu haben. In einer Ausführungsform kann der gleiche Treiber verwendet werden, um den Zugriffsstrom an eine beliebige aktuell ausgewählte Wortleitung bereitzustellen. Dieser Treiber kann mit der ausgewählten Wortleitung durch eine Decodierschaltung verbunden sein, welche die Ansteuerung der WL 1206 auswählt. Der Treiber und die Decodierschaltung können mit einem „globalen Knoten“ verbunden sein (siehe globaler Knoten VX in 20). Die Orte der WL-Treiber 1210a-1210 h in 12A können jedoch immer noch den Ort (z. B. Ende) der Wortleitung anzeigen, die angesteuert wird.
  • Zum Zweck der Erörterung wird die Speicherzelle 701a für den Zugriff ausgewählt. Dies könnte ein Lese- oder ein Schreibzugriff sein. Die ausgewählte Speicherzelle 701a befindet sich am Kreuzpunkt der ausgewählten Wortleitung 1206g und der ausgewählten Bitleitung 1208b. Die anderen Speicherzellen sind nicht für den Zugriff ausgewählt (d. h. nicht ausgewählte Speicherzellen). Alle anderen Wortleitungen und alle anderen Bitleitungen sind nicht ausgewählt, indem sie auf eine Nichtauswahlspannung wie Vmid gezwungen werden, zum Beispiel 1,65 V, bei etwa der Hälfte der Treiber-Konformitätsspannung, zum Beispiel 3,3 V. Um eine Speicherzelle 701 auszuwählen, wird eine Auswahlspannung (Vselect_BL), wie nahe Masse, an der ausgewählten Bitleitung (z. B. Bitleitung 1208b) bereitgestellt und ein Zugriffsstrom durch eine ausgewählte Wortleitung (z. B. Wortleitung 1206g) getrieben (oder erzwungen). Der Zugriffsstrom kann zwischen einem Abschnitt der ausgewählten Wortleitung durch die ausgewählte Speicherzelle und durch einen Abschnitt der ausgewählten Bitleitung fließen. Eine Nichtauswahlspannung (Vunsel_BL) wird an die nicht ausgewählten Bitleitungen (z. B. Bitleitungen 1208a, 1208c, 1208d) angelegt. In einer Ausführungsform hat Vselect_BL eine solche Größe, dass der Schwellenschaltselektor 1204 in einer ausgewählten Speicherzelle eingeschaltet wird, zum Beispiel kann Vselect_BL etwa 0 V betragen. Andererseits hat Vunsel_BL eine solche Größe, dass der Schwellenschaltselektor 1204 in einer nicht ausgewählten Speicherzelle nicht eingeschaltet wird, zum Beispiel kann Vselect_BL etwa 1,65 V betragen. Der Wortleitungstreiber 1210g leitet einen Zugriffsstrom (Iaccess) durch zumindest einen Abschnitt der ausgewählten Wortleitung 1206g. Dieser Zugriffsstrom kann auch durch die ausgewählte Speicherzelle 701a und in einem Abschnitt der ausgewählten Bitleitung 1208b fließen. Eine solche ausgewählter WL kann zum Beispiel auf High angesteuert werden durch 15 µA zum Lesen oder 30 µA zum Schreiben durch eine Stromquelle mit einer Vergleichsspannung von zum Beispiel 3,3 V.
  • Die WL-Treiber 1210 sind eingerichtet, um entweder einen Strom abzugeben oder einen Strom zu senken. Somit könnte Iaccess in beiden Richtungen durch die ausgewählte Wortleitung fließen (sowie die ausgewählte Bitleitung). Nach der hierin verwendeten Konvention ist, wenn ein Stromtreiber 1210 als Stromquelle verwendet wird, die Größe des Zugriffsstroms positiv. Nach der hierin verwendeten Konvention ist, wenn ein Stromtreiber 1210 als Stromsenke verwendet wird, die Größe des Zugriffsstroms negativ. Ob ein Stromtreiber 1210 einen Strom erzeugt oder senkt, wird hierin als Erzwingen des Stroms durch die ausgewählte Wortleitung bezeichnet. In einer Ausführungsform wird kein Strom außer Leckstrom durch nicht ausgewählte Wortleitungen (z. B. 1206a, 1206b, 1206c, 1206d, 1206e, 1206f und 1206h) erzwungen. Es ist zu beachten, dass hierin eine „ausgewählte Wortleitung“, die zum Beispiel für eine CD von 20 nm mit einer erzwungenen Stromstärke von 15 µA zum Lesen oder 30 µA zum Schreiben mit Spannungskonformität von etwa 3,3 V angesteuert wird, bedeutet, dass die Wortleitung mit einer ausgewählten Speicherzelle verbunden ist, so dass diese Zelle weiterhin durch ihre Verbindung zu einer „ausgewählten“ Bitleitung bei etwa 0 V bestimmt wird. Um die entgegengesetzte Polarität zu schreiben, wird die ausgewählte Wortleitung zum Beispiel mit -15 µA erzwungen. Eine ausgewählte Wortleitung kann auch mit nicht ausgewählten Speicherzellen verbunden sein, wenn der andere Zellanschluss mit einer nicht ausgewählten Bitleitung bei Vmid, wie 1,65 V, verbunden ist. Eine „nicht ausgewählte Wortleitung“ bedeutet, dass die Wortleitung nur mit nicht ausgewählten Speicherzellen verbunden ist. Mit anderen Worten sind alle Speicherzellen, die sich mit einer nicht ausgewählten Wortleitung verbinden, nicht ausgewählte Speicherzellen, zum Beispiel wenn die nicht ausgewählte WL auf Vmid bei 1,65 V gezwungen wird; oder wenn die nicht ausgewählte BL zum Beispiel auf Vmid 1,65 V erzwungen wird. Es ist zu beachten, dass hierin eine „ausgewählte Bitleitung“ bedeutet, die Bitleitung, die zum Beispiel beim Lesen und Schreiben von P2AP nahe 0 V oder beim Schreiben von AP1 P nahe Vp (~3,3 V) liegt, mit mindestens einer ausgewählten Speicherzelle verbunden ist. Eine „nicht ausgewählte Bitleitung“ bedeutet, dass die Bitleitung nur mit nicht ausgewählten Speicherzellen verbunden ist. Mit anderen Worten sind alle Speicherzellen, die mit einer nicht ausgewählten Bitleitung verbunden sind, nicht ausgewählte Speicherzellen. Wie vorstehend erwähnt, ist eine ausgewählte Speicherzelle eine Speicherzelle, die für den Zugriff ausgewählt ist. Eine ausgewählte Speicherzelle ist zwischen einer ausgewählten Wortleitung und einer ausgewählten Bitleitung geschaltet.
  • In einer Ausführungsform wird die Spannung der ausgewählten Wortleitung an eine Spannungsgrenze (Spannungskonformität) geklemmt, während ein Zugriffsstrom (Stromstärke) durch einen Abschnitt der ausgewählten Wortleitung und durch einen Abschnitt der ausgewählten Bitleitung in die ausgewählte Speicherzelle geleitet wird. Mit anderen Worten kann die Spannung so geklemmt werden, dass sie eine bestimmte Größe nicht überschreiten darf. Das Klemmen der ausgewählten Wortleitungsspannung beim Strom-Kraft-Lesen kann zu einer niedrigeren Bitfehlerrate führen und gleichzeitig die Belastung der Speicherzellen verringern.
  • In dem Beispiel von 12 gibt es mehr Wortleitungen als Bitleitungen im Kreuzpunktarray. In einer Ausführungsform sind in dem Kreuzpunktarray mehr Bitleitungen als Wortleitungen vorhanden. In einer Ausführungsform entspricht die Anzahl von Bitleitungen der Anzahl von Wortleitungen in dem Kreuzpunktarray. In dem Beispiel von 12 gibt es doppelt so viele Wortleitungen wie Bitleitungen im Kreuzpunktarray; es könnte jedoch auch ein anderes Verhältnis verwendet werden. Dadurch können unterschiedliche Kachelgrößen realisiert werden. Zum Beispiel kann eine Kachel 1024 BL mal 2048 WL aufweisen, die zu einem Modul von 2048 x 4096 Zellen zusammengesetzt werden können, indem die WL und BL zwischen den vier Kacheln mittig angesteuert werden.
  • In Ausführungsformen eines gemischten Leseschemas wird ein Strom-Kraft-Ansatz verwendet, um auf Speicherzellen in einem Kreuzpunktspeicherarray zuzugreifen. Ein Strom-Kraft-Ansatz hilft bei der automatischen Korrektur von IR-Spannungsabfällen, die auf einen variierenden Widerstand der Wortleitung und/oder einen variierenden Widerstand der Bitleitung zurückzuführen sind. Schwellenschaltselektoren können in Reihe mit den Speicherzellen verwendet werden. Der Schwellenschaltselektor ist in Reihe mit dem Speicherelement zwischen der Wortleitung und der Bitleitung geschaltet. Somit verringert jede Spannung durch den Schaltselektor die Spannung durch das Speicherelement. Üblicherweise gibt es eine gewisse Variation der Offsetspannung zwischen den Schaltselektoren. Ein Strom-Kraft-Ansatz hilft dabei, Schwankungen der Offset-Spannung zwischen Schwellenschaltselektoren abzumildern.
  • 13 ist ein Flussdiagramm einer Ausführungsform eines Prozesses 1300 eines gemischten Strom-Kraft-Lesens. Der Prozess 1300 kann für nichtflüchtige Speicherzellen verwendet werden, die jeweils ein resistives Direktzugriffsspeicherelement und ein zweipoliges Selektorelement in Reihe mit dem Speicherelement aufweisen. Die nichtflüchtigen Speicherzellen können sich in einem Kreuzpunktarray befinden. In einer Ausführungsform sind die Speicherzellen MRAM-Zellen. In einer Ausführungsform ist der Selektor ein OTS.
  • Schritt 1302 schließt das Lesen einer Gruppe von Speicherzellen unter Verwendung eines Strom-Kraft-referenzierten Lesens ein. Beim Strom-Kraft-referenzierten Lesen einer bestimmten Speicherzelle wird ein Strom durch die zu lesende Speicherzelle gezwungen. Es wird eine Spannung gemessen, die durch das Erzwingen des Stroms durch die Zelle entsteht. Diese Spannung wird mit einer Referenzspannung verglichen. Es ist zu beachten, dass Schritt 1302 an einer Gruppe von Speicherzellen durchgeführt wird, die sich in verschiedenen Kacheln des Speicherarrays befinden können. Die Speicherzellen können zusammen ein ECC-Codewort speichern. Weitere Einzelheiten zu einer Ausführungsform eines Strom-Kraft-referenzierten Lesens werden weiter unten im Zusammenhang mit 16 erläutert.
  • Schritt 1304 schließt das Bestimmen ein, ob eine Bedingung in Bezug auf das Strom-Kraft-referenzierte Lesen erfüllt ist. In einer Ausführungsform ist die Bedingung, ob die aus den Speicherzellen gelesenen Daten von einer ECC-Engine erfolgreich decodiert wurden. In einer Ausführungsform befindet sich die ECC-Engine auf demselben Halbleiterchip wie die Speicherzellen, was eine schnelle Bestimmung davon ermöglicht, ob die Daten erfolgreich decodiert wurden. Weitere Einzelheiten zu einer Ausführungsform, bei der die Bedingung die ist, ob die aus den Speicherzellen gelesenen Daten von einer ECC-Engine erfolgreich decodiert wurden, werden weiter unten im Zusammenhang mit 14 erläutert. In einer Ausführungsform basiert die Bedingung darauf, wie viele der Speicherzellen in der Gruppe einen Widerstand aufweisen, der in einen Unsicherheitsbereich fällt. Weitere Einzelheiten zu einer Ausführungsform, bei der die Bedingung darauf basiert, wie viele der Speicherzellen in der Gruppe einen Widerstand aufweisen, der in einen Unsicherheitsbereich fällt, werden weiter unten im Zusammenhang mit 15A erläutert.
  • Wenn die Bedingung nicht erfüllt ist, wird Schritt 1306 ausgeführt. Schritt 1306 schließt das Zurückgeben von Daten ein, die auf dem Strom-Kraft-referenzierten Lesen basieren. In einer Ausführungsform wird der Schritt 1306 durchgeführt, wenn die aus der Gruppe gelesenen Daten erfolgreich decodiert wurden. Daher kann der Schritt 1306 das Zurückgeben der erfolgreich decodierten Daten einschließen.
  • Wenn die Bedingung erfüllt ist, wird Schritt 1308 ausgeführt. Schritt 1308 schließt das Lesen der Gruppe von Speicherzellen unter Verwendung eines Strom-Kraft-SRR ein. Weitere Einzelheiten zu einer Ausführungsform eines Strom-Kraft-SRR werden weiter unten im Zusammenhang mit 17 erläutert.
  • Schritt 1310 schließt das Zurückgeben von Daten, die unter Verwendung des Strom-Kraft-SRR gelesen wurden, ein. Die ECC-Engine kann zum Decodieren und Korrigieren der Daten verwendet werden, die unter Verwendung des Strom-Kraft-SRR gelesen wurden. Bei den in Schritt 1310 zurückgegebenen Daten kann es sich also um decodierte und korrigierte Daten handeln. Da der Strom-Kraft-SRR vor der Anwendung der ECC-Engine wesentlich genauer und fehlerfreier sein kann als das Strom-Kraft-referenzierte Lesen, sollte die ECC-Engine in der Lage sein, die Daten in fast allen Fällen erfolgreich zu decodieren. In dem sehr seltenen Fall, dass die Daten nicht erfolgreich decodiert werden, kann eine Fehlermeldung zurückgegeben werden.
  • 14 ist ein Flussdiagramm einer Ausführungsform eines Prozesses 1400 eines gemischten Strom-Kraft-Lesens, bei dem eine ECC-Engine verwendet wird. Der Prozess 1400 stellt weitere Details einer Ausführungsform des Prozesses 1300 bereit. Schritt 1402 schließt das Lesen einer Gruppe von Speicherzellen unter Verwendung eines Strom-Kraft-referenzierten Lesens ein. Schritt 1402 ähnelt Schritt 1302 und wird nicht näher beschrieben. In Schritt 1404 wird ein ECC-Algorithmus auf den Daten laufen gelassen, die mit dem Strom-Kraft-referenzierten Lesen erfasst wurden. Schritt 1406 ist eine Bestimmung, ob die Decodierung erfolgreich war. Wenn die Decodierung erfolgreich war, werden die decodierten Daten in Schritt 1408 zurückgegeben. Wenn die Decodierung fehlgeschlagen ist, wird die Gruppe von Speicherzellen in Schritt 1410 mit einem Strom-Kraft-SRR gelesen. Schritt 1410 ähnelt Schritt 1308 und wird nicht näher beschrieben. Schritt 1412 schließt das Laufen lassen eines ECC-Algorithmus auf den Daten ein, um die Daten zu decodieren und zu korrigieren. Schritt 1414 schließt das Zurückgeben von Daten, die unter Verwendung des Strom-Kraft-SRR gelesen wurden, ein. Wie bereits erwähnt, können die Daten von einer ECC-Engine decodiert und korrigiert werden.
  • Alternativ zu Schritt 1404 wird in einer Ausführungsform eine ECC-Engine verwendet, um die Anzahl der Bitfehler in einem Codewort zu bestimmen oder zu schätzen, bevor das Codewort decodiert wird. In einer Ausführungsform berechnet die ECC-Engine 569 das Syndrom des Codeworts, um die Anzahl der Bitfehler im Codewort zu schätzen. In einer Ausführungsform basiert das Syndrom auf der Anzahl der nicht erfüllten Paritätsprüfungsgleichungen. In einer Ausführungsform ist die ECC-Engine 569 in der Lage, ein Codewort zu decodieren, vorausgesetzt, dass nicht mehr als eine bestimmte Anzahl von Bits in dem Codewort fehlerhaft sind. In Schritt 1406 wird eine Bestimmung durchgeführt, ob versucht werden soll, das Codewort zu decodieren oder ob mit Schritt 1410 fortgefahren werden soll. Diese Bestimmung kann darauf beruhen, ob die Decodierung des Codeworts wahrscheinlich erfolgreich sein wird. Wenn zum Beispiel die geschätzte Anzahl der Bitfehler im Codewort kleiner oder gleich der Anzahl der Bits ist, die von der ECC-Engine 569 korrigiert werden können, dann wird das Codewort decodiert und korrigiert. Wenn die geschätzte Anzahl von Bitfehlern im Codewort größer ist als die Anzahl von Bits, die korrigiert werden können, wird der Strom-Kraft-SRR durchgeführt, und dann können die resultierenden Lesedaten decodiert und korrigiert und dann zurückgegeben werden.
  • 15A ist ein Flussdiagramm einer Ausführungsform eines Prozesses 1500 eines gemischten Strom-Kraft-Lesens, bei dem Speicherzellen daraufhin getestet werden, ob sie sich in einem Unsicherheitsbereich befinden. Der Prozess 1500 stellt weitere Details einer Ausführungsform des Prozesses 1300 bereit. Schritt 1502 schließt das Lesen einer Gruppe von Speicherzellen unter Verwendung eines Strom-Kraft-referenzierten Lesens ein. Schritt 1502 ähnelt Schritt 1302 und wird nicht näher beschrieben.
  • Schritt 1504 ist eine Bestimmung, wie viele Speicherzellen einen Widerstand in einem Unsicherheitsbereich haben. 15B stellt zwei Widerstandsverteilungen von Speicherzellen dar, mit einem Unsicherheitsbereich zwischen den beiden Widerstandsverteilungen. 15B zeigt die Verteilung des niedrigen Widerstands 1540 und die Verteilung des hohen Widerstands 1542. In einer Ausführungsform entspricht die Verteilung 1540 den Speicherzellen, die auf eine 0 programmiert sind, und die Verteilung 1542 entspricht den Speicherzellen, die auf eine 1 programmiert sind. Bei Speicherzellen mit einem Widerstand unterhalb von R_demarcation wird davon ausgegangen, dass sie eine „1“ speichern. Bei Speicherzellen mit einem Widerstand oberhalb von R_demarcation wird davon ausgegangen, dass sie eine „0“ speichern. Obwohl 15B eine deutliche Lücke zwischen den beiden Verteilungen zeigt, können in der Praxis einige Speicherzellen über einen Widerstand im Unsicherheitsbereich verfügen. 15C stellt das Konzept des Unsicherheitsbereichs dar, aber die horizontale Achse ist die Spannung, die beim Lesen der Zelle über der Speicherzelle gemessen wird, im Gegensatz zum Widerstand der Zelle. Es gibt also eine Verteilung der niedrigeren Spannung 1550 und eine Verteilung der höheren Spannung 1552. In einer Ausführungsform des Strom-Kraft-Lesens entspricht eine höhere gemessene Spannung einem höheren Zellwiderstand. Bei Speicherzellen, die bei einer Spannung unterhalb von V_demarcation gemessen werden, wird davon ausgegangen, dass sie eine „1“ speichern. Bei Speicherzellen, die bei einer Spannung oberhalb von V_demarcation gemessen werden, wird davon ausgegangen, dass sie eine „0“ speichern. Die Spannung Vref_low entspricht R1, und die Spannung Vref_hi entspricht R2. Um daher, in einer Ausführungsform zu bestimmen, wie viele Speicherzellen über einen Widerstand im Unsicherheitsbereich verfügen, bestimmt das System, wie viele Speicherzellen eine gemessene Spannung zwischen Vref_low und Vref_high haben. Diese gemessene Spannung kann zum Beispiel mit der CD des MRAM oder der Position entlang der Wortleitung oder Bitleitung variieren.
  • 15D stellt eine Schaltung dar, mit der festgestellt werden kann, ob sich eine Speicherzelle in dem Unsicherheitsbereich befindet. Die Schaltung schließt einen ersten Leseverstärker 1562 und einen zweiten Leseverstärker 1564 sowie eine XOR-Logik 1566 ein. Der erste Leseverstärker 1562 gibt Vref_hi ein, das mit Vrd (der Spannung, die von der Speicherzelle abgetastet wird) verglichen wird. Der zweite Leseverstärker 1562 gibt Vref_low ein, die mit Vrd verglichen wird. Die Ausgabe des jeweiligen Leseverstärkers wird in die XOR-Logik 1566 eingegeben. Wenn die Ausgabe der XOR-Logik 1566 wahr ist (z. B. „1“), bedeutet dies, dass die Speicherzelle in den Unsicherheitsbereich fällt.
  • Wieder zurückkehrend zu 15A schließt Schritt 1506 eine Bestimmung, ob die Anzahl von Speicherzellen größer ist als eine zulässige Anzahl, ein. In einer Ausführungsform ist die zulässige Anzahl im Voraus festgelegt. In einer Ausführungsform entspricht die zulässige Anzahl einer Anzahl von Bits, die von der ECC-Engine 569 korrigiert werden können. Die ECC-Engine kann zum Beispiel bis zu 9 Bit an Fehlern im Codewort korrigieren. Wenn die Zahl kleiner oder gleich der zulässigen Zahl ist, wird Schritt 1508 ausgeführt. In Schritt 1508 werden die Daten unter Verwendung der ECC-Engine decodiert und die decodierten und korrigierten Daten zurückgegeben. Es ist zu beachten, dass Schritt 1508 auch dann durchgeführt werden kann, wenn sich einige Speicherzellen im Unsicherheitsbereich befinden, vorausgesetzt, dass die Anzahl innerhalb der zulässigen Anzahl liegt. Dadurch kann der Prozess 1500 auf der Grundlage des Strom-Kraft-referenzierten Lesens abgeschlossen werden, ohne dass das Strom-Kraft-SRR mit seiner zusätzlichen Latenzzeit durchgeführt werden muss. Dadurch wird viel Zeit und Energie gespart. Es ist auch zu beachten, dass in einigen sehr seltenen Fällen die Decodierung der Daten in Schritt 1508 fehlschlagen kann. In diesem Fall kann der Prozess mit Schritt 1510 fortgesetzt werden.
  • Liegt die Zahl aus Schritt 1504 über der zulässigen Zahl, so wird Schritt 1510 durchgeführt. Schritt 1510 ist das Lesen der Gruppe von Speicherzellen unter Verwendung des Strom-Kraft-SRR. Schritt 1512 ist das Zurückgeben von (decodierten und korrigierten) Daten aus dem Strom-Kraft-SRR. Die Schritte 1510 und 1512 können den Schritte 1308 und respektive 1310 ähneln.
  • 16 ist ein Flussdiagramm, das eine Ausführungsform eines Prozesses 1600 des Strom-Kraft-referenzierten Lesens darstellt. Der Prozess 1600 kann in den Schritten 1302, 1402 oder 1502 verwendet werden. Prozess 1600 beschreibt das Lesen einer Speicherzelle. Der Prozess kann parallel an den verschiedenen Speicherzellen der Gruppe durchgeführt werden. Die Gruppe kann ein ECC-Codewort speichern. Schritt 1602 schließt das Anlegen einer ausgewählten Spannung an eine ausgewählte zweite leitende Leitung ein. Unter Bezugnahme auf 12A wird Vselect der ausgewählten Bitleitung 1208b bereitgestellt. Nicht ausgewählte Spannungen werden den nicht ausgewählten Bitleitungen bereitgestellt.
  • Schritt 1604 schließt das Anlegen eines Lesestroms an eine ausgewählte Wortleitung ein, um den Lesestrom durch die ausgewählte Speicherzelle zu zwingen. Unter Bezugnahme auf 12A wird Iaccess in die ausgewählte Wortleitung 1206g geleitet. Zugangsströme werden nicht den nicht ausgewählten Wortleitungen bereitgestellt. Der Zugriffsstrom kann durch einen Abschnitt der ausgewählten Wortleitung, durch die ausgewählte Speicherzelle und durch einen Abschnitt der ausgewählten Bitleitung fließen. Insbesondere kann der Zugriffsstrom durch den Abschnitt der ausgewählten Wortleitung, von dem die Wortleitung (durch einen Stromtreiber) angesteuert wird, in die ausgewählte Speicherzelle fließen. Der Zugriffsstrom kann durch den Abschnitt der ausgewählten Bitleitung von der ausgewählten Speicherzelle dorthin fließen, wo die Bitleitung durch den Spannungstreiber angesteuert wird.
  • Schritt 1606 schließt das Erfassen einer Spannung ein, die von der ausgewählten Speicherzelle erzeugt wird. In einer Ausführungsform wird die Spannung zwischen der ausgewählten Wortleitung und der ausgewählten Bitleitung am ausgewählten Bit erfasst, entweder direkt oder an einem globalen Knoten, der die Treiberschaltung einschließt. Die gemessene Spannung liegt zwischen Masse und der Stromquelle, die den Strom in die Array-Decodierschaltung leitet.
  • Schritt 1608 schließt das Vergleichen der gemessenen Spannung mit einer Referenzspannung ein, um den Zustand der Speicherzelle zu bestimmen. Die Referenzspannung könnte zum Beispiel V_demarcation sein, die in 15C dargestellt ist. Die Höhe der Referenzspannung ist unabhängig vom physikalischen Zustand (z. B. dem Widerstand) der Speicherzelle. Für die verschiedenen Speicherzellen des Arrays kann eine gemeinsame Referenzspannung verwendet werden. In einigen Ausführungsformen kann die Höhe der Referenzspannung jedoch auf einem Faktor wie der Position der Speicherzelle im Array beruhen. Daher muss die Referenzspannung nicht für alle Speicherzellen im Array die gleiche Höhe haben.
  • 17 ist ein Flussdiagramm, das eine Ausführungsform eines Prozesses 1700 des Strom-Kraft-SRR darstellt. Der SRR kann als destruktiver SRR bezeichnet werden, was bedeutet, dass der ursprüngliche Zustand der Speicherzelle während des SRR geändert werden kann. Der Prozess 1700 kann in den Schritten 1308, 1410 oder 1510 verwendet werden. Der Prozess 1700 beschreibt das Lesen einer Speicherzelle und kann parallel an den Speicherzellen in der Codewortgruppe (die sich in verschiedenen Kacheln oder Gruppen von Kacheln befinden können) durchgeführt werden. In einer Ausführungsform wird der Prozess 1700 von einer Steuerschaltung im Speicherchip 292 durchgeführt. In einer Ausführungsform wird der Prozess 1700 von einer Steuerschaltung im Steuerchip 590 durchgeführt. In einer Ausführungsform wird der Prozess 1700 von einer Steuerschaltung (z. B. Hostprozessor 122) in dem Host 122 durchgeführt. Der Prozess 1700 wird unter Bezugnahme auf 18A und 18B erläutert. 18A stellt die Stromstärke in Abhängigkeit von der Zeit für den Zugriffsstrom, der während einer Ausführungsform der Strom-Kraft durch eine ausgewählte Wortleitung geleitet wird. 18B stellt die Spannung in Abhängigkeit von der Zeit für die Spannung über einer ausgewählten MRAM-Zelle während einer Ausführungsform der Strom-Kraft dar.
  • Schritt 1702 schließt das Treiben eines ersten Lesestroms durch die ausgewählte Wortleitung ein, während eine Auswahlspannung an eine ausgewählte Bitleitung angelegt wird, um den ersten Zugriffsstrom durch die ausgewählte MRAM-Zelle zu erzwingen. Mit Bezug auf 12 wird Iaccess durch den Stromtreiber 1210g durch die ausgewählte erste leitende Leitung 1206g getrieben, um Iaccess mit einem Strom von zum Beispiel 15 µA durch Speicherzelle 701a zu treiben. Mit Bezug auf 12 wird Vselect_BL durch den Spannungstreiber 1212b an die zweite leitende Leitung 1208b angelegt. In einer Ausführungsform beträgt zum Beispiel Iaccess 15 µA und Vselect_BL 0 V. In einer anderen Ausführungsform ist der Strom -15 µA und Vselect_BL ist 3,3 V für 20 nm CD MRAM mit RA 10, der einen niedrigen Widerstandszustand von etwa 25 K Ohm und einen hohen Widerstandszustand von etwa 50 K Ohm haben kann.
  • 18A und 18B werden nun in Bezug auf eine MRAM-Zelle 701 erörtert, um den Schritt 1702 weiter auszuführen. Mit Bezug auf 18A wird der Strom zum Zeitpunkt t1 auf Iread erhöht und bis t3 auf Iread gehalten. Wie in 18B gezeigt, steigt die Spannung an der Speicherzelle 701 von t1 auf t2. Der Schwellenschaltselektor 1204 ist zwischen t1 und t2 ausgeschaltet. Zwischen t1 und t2 lässt der Strom die Spannung der Wortleitung ansteigen. Der Strom unterstützt auch eventuelle Leckagen im Pfad. Sobald die Spannung über dem Schwellenschaltselektor 1204 die Schwellenspannung Vth des Schwellenschaltselektors 1204 erreicht, schaltet dieser sich ein und schaltet (bei t2) in einen niederohmigen Zustand um. Daher steigt die Spannung an der aus dem Schwellenschaltselektor 1204 und dem resistiven MRAM-Element 1202 bestehenden Reihenschaltung an, wenn sich der Schwellenschaltselektor im ausgeschalteten Zustand befindet.
  • Sobald sich der Schwellenschaltselektor 1204 im eingeschalteten Zustand befindet (bei t2), fließt der Iread-Strom durch die ausgewählte Speicherzelle 701a. Da der Zugriffsstrom auf Iread gehalten wird, fällt die Spannung über der Speicherzelle auf einen Pegel ab, der von dem Reihenwiderstand des MRAM-Elements 1202 und dem Einschaltwiderstand des Schwellenschaltselektors 1204 abhängt. Bei einer binären Ausführungsform, bei der eine Speicherzelle nur zwei Zustände speichert, hat die Speicherzelle einen hohen Widerstand, den AP-Zustand, zum Beispiel 50 K Ohm, und einen niedrigen Widerstand, den P-Zustand, zum Beispiel 25 K Ohm. Die über dem in Reihe geschalteten MRAM-Element 1202 und dem Schwellenschaltselektor 1204 als Reaktion auf den Iread-Strom für jeweils den hochohmigen Zustand (HRS) und den niederohmigen Zustand (LRS) resultierende Spannung ist als die Linien 1810 und 1812 dargestellt. Obwohl die Erörterung hier im Zusammenhang mit einer MRAMbasierten Speicherzelle steht, die in Reihe mit dem Schwellenschaltselektor geschaltet ist, kann diese Lesetechnik in ähnlicher Weise auf andere Speicherzellen mit programmierbarem Widerstand angewendet werden, wie PCM- oder ReRAM-Vorrichtungen.
  • Wieder zurückkehrend zu 17 schließt Schritt 1704 das Messen einer Spannung über der ausgewählten Speicherzelle ein. Schritt 1704 kann auch das Speichern der gemessenen Spannung einschließen, zum Beispiel in einem Kondensator. Schritt 1705 schließt das Anpassen der gespeicherten Spannung durch Addieren (Deck1) oder Subtrahieren (Deck2) einer Spannung von 150 mV ein.
  • Schritt 1706 schließt das Treiben eines Schreibstroms durch die ausgewählte Wortleitung ein, während eine Auswahlspannung an die ausgewählte Bitleitung angelegt wird, um den Schreibstrom durch die ausgewählte MRAM-Zelle zu erzwingen. Mit Bezug auf 12 wird Iaccess durch den Stromtreiber 1210g durch die ausgewählte erste leitende Leitung 1206g getrieben, um Iaccess durch die Speicherzelle 701a zu zwingen. Mit Bezug auf 12 wird Vselect_BL durch den Spannungstreiber 1212b an die zweite leitende Leitung 1208b angelegt. In einer Ausführungsform beträgt Iaccess zum Schreiben 30 µA und Vselect_BL ist 0 V. In einer anderen Ausführungsform beträgt Iaccess zum Schreiben -30 µA und Vselect_BL ist 3,3 V
  • 18A und 18B werden nun in Bezug auf eine MRAM-Zelle 701 erörtert, um den Schritt 1706 weiter auszuführen. Unter Bezugnahme auf 18A wird der Zugriffsstrom zum Zeitpunkt t3 auf Iwrite erhöht und bis t5 auf Iwrite gehalten. Unter Bezugnahme auf 18B steigt bei t3 die Spannung über der MRAM-Zelle 701 bei t3 an. Hat sich die MRAM-Zelle 701 im HRS befunden (Linie 1810), dann steigt die Spannung über der MRAM-Zelle bei t3 auf den durch die Linie 1820 angegebenen Pegel und bleibt dort bis t5. Es wird daran erinnert, dass der HRS der AP-Zustand ist. Somit bleibt diese MRAM-Zelle im AP-Zustand.
  • Hat sich die MRAM-Zelle 701 im LRS befunden (Linie 1812), dann steigt die Spannung über der M RAM-Zelle bei t3 auf den durch die Linie 1822 angegebenen Pegel. Es wird daran erinnert, dass der LRS der P-Zustand ist. Wenn sich die MRAM-Zelle 701 im P-Zustand befunden hat, wechselt sie in den AP-Zustand. 18B zeigt, dass die Linie 1822 bei t4 ansteigt und sich mit der Linie 1820 trifft. Dies bedeutet, dass die MRAM-Zelle vom P-Zustand (LRS) in den AP-Zustand (HRS) gewechselt ist.
  • Wieder zurückkehrend zu 17 schließt Schritt 1708 das Treiben eines zweiten Lesestroms durch die ausgewählte Wortleitung ein, während eine Auswahlspannung an die ausgewählte Bitleitung angelegt wird, um den zweiten Zugriffsstrom durch die ausgewählte MRAM-Zelle zu erzwingen. In einer Ausführungsform hat der zweite Zugriffsstrom die gleiche Richtung und im Wesentlichen die gleiche Größe wie der erste Zugriffsstrom. Mit Bezug auf 12 wird Iaccess durch den Stromtreiber 1210g durch die ausgewählte erste leitende Leitung 1206g getrieben, um Iaccess durch die Speicherzelle 701a zu zwingen. Mit Bezug auf 12 wird Vselect durch den Spannungstreiber 1212b an die zweite leitende Leitung 1208b angelegt. In einer Ausführungsform ist Iaccess 15 µA und Vselect ist 0 V.
  • Die 18A und 18B werden nun in Bezug auf eine MRAM-Zelle 701 erörtert, um den Schritt 1708 weiter auszuführen. Unter Bezugnahme auf 18A wird der Zugriffsstrom zum Zeitpunkt t5 von Iwrite auf Iread verringert und bis t6 auf Iread gehalten. Unter Bezugnahme auf 18B sinkt die Spannung über der Speicherzelle 701 bei t5 auf den mit 1830 angegebenen Pegel und bleibt auf diesem Pegel bis t6. Es ist zu beachten, dass die Linie 1830 auf dem HRS-Pegel liegt. Es sei auch daran erinnert, dass die MRAM-Zelle unabhängig von ihrem Ausgangszustand in Schritt 1708 in den HRS-Zustand (AP-Zustand) versetzt wurde.
  • Wieder zurückkehrend zu 17 schließt Schritt 1710 das Messen der Spannung über der ausgewählten Speicherzelle ein. Schritt 1710 schließt auch den Vergleich der in Schritt 1710 erfassten Spannung mit der in Schritt 1704 gespeicherten Spannung ein.
  • Schritt 1712 schließt das Bestimmen eines Zustands der ausgewählten MRAM-Zelle vor dem Lesen auf der Grundlage eines Vergleichs einer gespeicherten Spannung vom Treiben des ersten Lesestroms durch die ausgewählte Speicherzelle mit der Spannung vom Erzwingen des zweiten Lesestroms durch die ausgewählte Speicherzelle ein. Nach Schritt 1712 können die Daten aus jeder Speicherzelle der zu lesenden Gruppe der ECC-Engine bereitgestellt werden, die mit der Decodierung der Daten beginnen kann. In einigen Ausführungsformen befindet sich die ECC-Engine 569 auf demselben Halbleiterchip wie die Speicherzellen, was eine schnellere Decodierung durch eine Verkürzung der Datenübertragungszeit bereitstellt.
  • Die 18A und 18B werden nun in Bezug auf eine MRAM-Zelle 701 erörtert, um den Schritt 1712 weiter auszuführen. Die erste Spannung auf der ausgewählten Wortleitung aus dem Anlegen des ersten Lesestroms ist die Spannung zwischen t2 und t3. Somit ist die erste Spannung entweder der HRS-Pegel 1810 oder der LRS-Pegel 1812. Es ist zu beachten, dass diese erste Spannung in Schritt 1704 gespeichert werden kann, indem beispielsweise ein Lesekondensator unter Verwendung der Wortleitungsspannung geladen wird. Die zweite Spannung auf der ausgewählten Wortleitung aus dem Anlegen des zweiten Lesestroms ist die Spannung zwischen t5 und t6. Diese zweite Spannung liegt in der Regel etwa auf dem HRS-Pegel 1810. Die zweite Spannung kann sich jedoch geringfügig vom HRS-Pegel 1810 unterscheiden. Durch das Vergleichen der ersten Spannung mit der zweiten Spannung kann also bestimmt werden, ob sich die MRAM-Zelle zwischen t2 und t3 auf dem HRS-Pegel 1810 oder auf dem LRS-Pegel 1812 befunden hat. Um den Vergleich zu erleichtern, kann der Pegel, die durch den Read1-Strom in den AP-Zustand erzeugt wird, gespeichert und um etwa die Hälfte der Spannungsdifferenz zwischen HRS und LRS, zum Beispiel 150 mV, nach oben verschoben werden. Alternativ dazu kann der Pegel auch negativ verschoben werden, wenn der Read1-Strom in den P-Zustand ist. Diese Entscheidungen können in Abhängigkeit von der Ausrichtung der MRAM-Zellen umgekehrt werden, wie für einen Fachmann offensichtlich ist.
  • Wieder zurückkehrend zu 17, wird nach Schritt 1712 eine Bestimmung durchgeführt, ob eine Rückschreibung erforderlich ist (Schritt 1714). Wie bereits erwähnt, handelt es sich bei Prozess 1700 um ein destruktives SRR, bei dem der ursprüngliche Zustand der Speicherzelle in Schritt 1706 verloren gehen kann. Das Zurückschreiben wird verwendet, um den ursprünglichen Zustand der Speicherzelle wiederherzustellen, falls erforderlich. Daher wird Schritt 1716 durchgeführt, wenn das Zurückschreiben erforderlich ist. Schritt 1716 schließt das Treiben eines Schreibstroms durch die ausgewählte Wortleitung ein, um, falls erforderlich, den ursprünglichen Zustand der Speicherzelle zurückzuschreiben. Es sei daran erinnert, dass Schritt 1706 alle MRAM-Zellen in den AP-Zustand versetzt hat. Somit werden in Schritt 1716 alle MRAM-Zellen, die sich ursprünglich im P-Zustand befanden, in den P-Zustand zurückgeschrieben. Alle MRAM-Zellen, die sich ursprünglich im AP-Zustand befanden, werden in Schritt 1716 im AP-Zustand belassen. Es ist zu beachten, dass die ECC-Engine, wie vorstehend beschrieben, in Schritt 1712 mit der Decodierung und Korrektur der Daten beginnen kann. Daher können die Daten decodiert, korrigiert und einem Anforderer bereitgestellt werden, bevor das Zurückschreiben in Schritt 1716 abgeschlossen wird.
  • In einigen Ausführungsformen wird das Strom-Kraft-SRR verkürzt, indem ein Wert aus dem Strom-Kraft-referenzierten Lesen gespeichert und dieser Wert verwendet wird, wodurch die Notwendigkeit des ersten Lesens im Strom-Kraft-SRR entfällt. 19 ist ein Flussdiagramm, das eine Ausführungsform eines Prozesses 1900 darstellt, bei dem ein Wert eines Strom-Kraft-referenzierten Lesens gespeichert und bei einem Strom-Kraft-SRR verwendet wird. Schritt 1902 schließt das Speichern eines Wertes aus einem Strom-Kraft-referenzierten Lesen ein. In einer Ausführungsform wird eine Spannung in einem Kondensator gespeichert. Der Schritt 1902 kann während des Schritts 1502 von 15 durchgeführt werden.
  • Schritt 1904 schließt das Ändern der gespeicherten Spannung um zum Beispiel 150 mV ein. Es ist jedoch zu beachten, dass das erste Lesen des Strom-Kraft-SRR übersprungen werden kann. Mit Bezug auf den Prozess 1700 von 17 können die Schritte 1702 und 1704 übersprungen werden. Schritt 1906 schließt das Schreiben der MRAM-Zelle in einen bekannten Zustand ein. Mit Bezug auf den Prozess 1700 von 17 kann Schritt 1706 durchgeführt werden. Schritt 1908 schließt das Strom-Kraft-Lesen der MRAM-Zelle ein. Mit Bezug auf den Prozess 1700 von 17 können die Schritte 1708 und 1710 durchgeführt werden. Schritt 1910 schließt das Bestimmen eines Zustands der MARM-Zelle vor dem Lesen auf der Grundlage eines Vergleichs der gespeicherten Spannung (aus dem Strom-Kraft-referenzierten Lesen) mit einer Spannung aus dem Strom-Kraft-Lesen im SRR (z. B. einer abgetasteten Spannung aus Schritt 1908) ein. Auf diese Art und Weise spart der Prozess 1900 Zeit und/oder Energie, indem er das erste Lesen im SRR überflüssig macht.
  • 20 ist ein Blockdiagramm von Komponenten zum Treiben eines Stroms zu einer Wortleitung, um einen Strom durch eine Speicherzelle zu erzwingen. Der Stromquellengenerator 2010 erzeugt und gibt ein Stromsteuersignal aus, das der Stromquelle 2020 bereitgestellt wird. In einer Ausführungsform ist das Stromsteuersignal eine hochpräzise Spannung. Die Stromquelle 2020 gibt als Reaktion auf das Stromsteuersignal einen Strom einer festen Größe aus. Die Stromquelle 2020 könnte verwendet werden, um einen Lesestrom oder einen Schreibstrom zu erzeugen, der als Zugriffsstrom bezeichnet werden kann. Der Zugriffsstrom wird der ausgewählten Wortleitung über die Zeilendecodier- und Treiberschaltung 2040 bereitgestellt. Die Zeilendecodier- und Treiberschaltung 2040 gibt eine WL-Adresse ein und stellt den Zugriffsstrom für die ausgewählte Wortleitung bereit. Die Zustandsmaschine 562 kann der Zeilendecodier- und Treiberschaltung 2040 die WL-Adresse bereitstellen. In einer Ausführungsform gibt es separate Stromquellen 2020 zum Erzeugen des Lesestroms und des Schreibstroms, wobei die Auswahllogik die geeignete Stromquelle für den Speichervorgang auswählt. In einer Ausführungsform gibt es eine erste Stromquelle zum Erzeugen eines positiven Schreibstroms und eine zweite Stromquelle zum Erzeugen eines negativen Schreibstroms. Nicht in 20 dargestellt ist ein Bitleitungstreiber, der eine Auswahlspannung der ausgewählten Bitleitung bereitstellen kann. Der Zugriffsstrom kann durch einen Abschnitt der ausgewählten Wortleitung, durch die ausgewählte Speicherzelle und durch einen Abschnitt der ausgewählten Bitleitung fließen. In einer Ausführungsform wird die Spannung am Knoten VX geklemmt, so dass sie eine bestimmte Größe nicht überschreitet. Durch das Klemmen der Spannung am Knoten VX wird die Spannung auf der Wortleitung geklemmt, wodurch die Belastung der Speicherzellen (z. B. MRAM-Zellen) verringert wird. Gleichzeitig wird eine niedrige Bitfehlerrate beibehalten, indem die Klemmenspannung hoch genug gewählt wird, um die Lesetoleranz nicht zu verringern, aber niedrig genug, um die Belastung einiger kleinerer CD-MRAM-Bits zu reduzieren.
  • 21 ist ein schematisches Diagramm einer Ausführungsform des Stromquellengenerators 2010. Der Stromquellengenerator 2010 gibt die Spannung Read_1G (zwischen den Transistoren 2120 und 2130) aus, die der Stromquelle 2020 bereitgestellt wird. In einigen Ausführungsformen kann Read_1G mehreren Typen von Stromquellen bereitgestellt werden, wie einer Stromlesequelle, einer Quelle für positiven Schreibstrom und einer Quelle für negativen Schreibstrom.
  • Den Gates der Transistoren 2130 und 2122 werden Spannungen jeweils durch die Widerstände 2112 und 2114 bereitgestellt. Diese Widerstandsspannungen werden von der linksseitigen Schaltung erzeugt, welche die Stromquelle 2102, den Transistor 2104, den Transistor 2106, den Transistor 2108 und den Transistor 2110 sowie die Kondensatoren 2116 und 2118 einschließt. Die Stromquelle 2102 kann etwa 5 Mikroampere betragen. Die rechtsseitige Schaltung schließt die Transistoren 2120, 2130, 2122, 2124, 2126 und 2128 ein. In einigen Ausführungsformen wird die linksseitige Schaltung für eine gesamte Bank verwendet, wobei eine separate Version der rechtsseitigen Schaltung für jede Kachel verwendet wird. Die Stromquelle 2102, zum Beispiel 5 µA, kann eine Spannung von etwa 2 Vt über Masse auf dem Drain des Transistors 2104 erzeugen, die auf die Kacheln verteilt wird. V_PA in das Gate des Transistors 2110 kann hoch sein (z. B. V_P), um die Schaltung zu aktivieren, oder sie kann die Schaltung öffnen, wenn das Gate des Transistors 2110 auf Masse gelegt wird, damit Strom eliminiert wird, wenn die Schaltung unbenutzt ist. Das Gate des Transistors 2104 kann auf die Kacheln verteilt werden und nur die Gates der Transistoren und keine Source oder Drains ansteuern, um Spannungsabfälle zu den Kacheln zu eliminieren und den resultierenden Strom in den Kacheln für jede relativ gleich zu machen. Die beiden verteilten Spannungen von etwa 1,5 V und 0 V sind wiederum in jeder Kachel mit den Generatoren auf der rechten Seite verbunden. Das heißt, das Gate des Transistors 2130 liegt bei etwa 1,5 V und das Gate des Transistors 2122 bei etwa 0 V. Diese Spiegelschaltungen können ihrerseits entweder durch Step1T, ReadIT oder Read1T_NX hoch an V_P eingeschaltet werden. Das Ergebnis ist, dass der Strom der Stromquelle 2102 in den Drain des Transistors 2120 getrieben wird und das Gate des Transistors 2120 auf V_P - Vt liegt, oder etwa 2,5 V, wenn V_P 3,3 V beträgt.
  • Eine der Herausforderungen eines gemischten Strom-Kraft-Leseschemas ist das Schnittstellentiming zwischen der Speichervorrichtung und einem Anforderer der Daten, wie einem Speichercontroller. Da zum Beispiel das Strom-Kraft-SRR länger dauern kann als das Strom-Kraft-referenzierte Lesen, besteht aus Sicht des Speichercontroller die Möglichkeit, dass die Daten in einer nichtdeterministischen Zeit, nachdem der Speichercontroller die Leseanforderung erteilt hat, zurückgegeben werden. In einer Ausführungsform werden die Daten in einer deterministischen Zeit, nachdem der Speichercontroller die Leseanforderung erteilt hat, an den Speichercontroller zurückgegeben, unabhängig davon, ob ein Strom-Kraft-referenziertes Lesen oder ein Strom-Kraft-SRR zum Lesen der Daten verwendet wird. Außerdem haben Speicherprotokolle wie das DDR-Protokoll sehr strenge Timings. Daher ist es eine Herausforderung und weniger effektiv bei der Verringerung der Latenz, ein gemischtes Strom-Kraft-Leseschema des MRAM innerhalb eines DDR-Protokolls arbeiten zu lassen.
  • 22 ist ein Flussdiagramm einer Ausführungsform eines Prozesses 2200 für eine deterministische Rücklaufzeit bei Verwendung eines gemischten Strom-Kraft-Leseschemas. Der Prozess 2200 beinhaltet eine Kommunikationsschnittstelle zwischen einem Speichercontroller und einer Speichervorrichtung. In einer Ausführungsform ist die Kommunikationsschnittstelle eine DDR-Schnittstelle. Schritt 2202 schließt ein, dass ein Speichercontroller eine Leseanforderung an eine Speichervorrichtung ausgibt. In einer Ausführungsform gibt der Speichercontroller 102 die Leseanforderung an den lokalen Speicher 106 aus. In einer Ausführungsform gibt der Speichercontroller 102 die Leseanforderung an ein Speicherpaket 104 aus. In einer Ausführungsform gibt der Hostprozessor 122 die Leseanforderung an den Hostspeicher 124 aus.
  • Schritt 2204 schließt ein, dass die Speichervorrichtung ein Strom-Kraft-referenziertes Lesen (Current-Force Referenced Read, CFRR) durchführt. In einer Ausführungsform wird der Prozess 1600 durchgeführt. Schritt 2206 schließt das Bestimmen, ob der CFRR ein Erfolg war, ein. In einer Ausführungsform wird in Schritt 2206 ein ECC-Algorithmus auf die Daten angewendet. In einer Ausführungsform ist der CFRR ein Erfolg, wenn die Daten erfolgreich decodiert und korrigiert wurden. Wenn der CFRR erfolgreich war, gibt die Speichervorrichtung die korrigierten Daten in Schritt 2208 an den Speichercontroller zurück. In Schritt 2210 zeigt die Speichervorrichtung dem Speichercontroller an, dass es nicht notwendig ist, den Lesebefehl zu wiederholen.
  • Wenn der CFRR nicht erfolgreich war, dann zeigt in Schritt 2212 die Speichervorrichtung dem Speichercontroller an, dass ein erneuter Leseversuch erforderlich ist. In einer Ausführungsform sendet die Speichervorrichtung ein Signal mit einem Wert von entweder 0 oder 1. Das Signal kann über eine Kommunikationsleitung zwischen der Speichervorrichtung und dem Speichercontroller gesendet werden. In einer Ausführungsform wird der Schnittstelle (z. B. der DDR-Schnittstelle) eine neue Kommunikationsleitung (oder ein Pin) hinzugefügt. Es ist jedoch nicht erforderlich, dass eine neue Leitung hinzugefügt wird, da eine bestehende Leitung für das Wiederholungssignal verwendet werden kann. Weitere Einzelheiten werden im Zusammenhang mit 23 und 24 erörtert. In einer Ausführungsform sendet die Speichervorrichtung eine zyklische Redundanzprüfung (CRC), die das Gegenteil von dem ist, was die CRC sein sollte, um die Wiederholung zu signalisieren. Weitere Einzelheiten werden im Zusammenhang mit 25 erläutert.
  • In Schritt 2214 führt die Speichervorrichtung ein Strom-Kraft-SRR durch, um die Daten aus der Gruppe der Speicherzellen zu lesen. In einer Ausführungsform wird der Prozess 1700 durchgeführt. In einer Ausführungsform können einige Schritte des Prozesses 1700 (z. B. die Schritte 1702, 1704, 1706) aufgrund des in Schritt 2204 durchgeführten Lesens übersprungen werden. Mit anderen Worten kann die Spannung aus dem Lesen von Schritt 2204 gespeichert werden, wie in Prozess 1900 beschrieben.
  • In Schritt 2216 gibt der Speichercontroller die Leseanforderung erneut aus, nachdem dieser eine vorher festgelegte Zeitspanne abgewartet hat, nachdem dieser den Hinweis erhalten hat, dass ein erneuter Leseversuch erforderlich ist. Die vorher festgelegte Zeitspanne basiert darauf, wie lange die Speichervorrichtung braucht, um den Strom-Kraft-SRR durchzuführen. In einer Ausführungsform teilt die Speichervorrichtung dem Speichercontroller mit, wie lange die vorher festgelegte Zeitspanne sein soll. Dies kann einmalig durchgeführt werden, da vorher festgelegte Spanne festgelegt werden kann.
  • In Schritt 2218 gibt die Speichervorrichtung die Daten an den Speichercontroller zurück. Das heißt, die Speichervorrichtung decodiert die Daten aus dem Strom-Kraft-SRR und gibt die decodierten Daten an den Speichercontroller zurück.
  • In Schritt 2220 zeigt die Speichervorrichtung dem Speichercontroller an, dass kein erneuter Leseversuch erforderlich ist.
  • 23 und 24 stellen Zeitdiagramme der Schnittstelle für eine Ausführungsform des gemischten Strom-Kraft-Lesens dar. 23 zeigt einen Fall, in dem nur ein Strom-Kraft-referenziertes Lesen erforderlich ist. 24 zeigt einen Fall, in dem die Speichervorrichtung sowohl eine Strom-Kraft-Referenzierung als auch einen Strom-Kraft-SRR durchführt. In 23 stehen die Daten nach der ersten Leseanforderung zur Verfügung, während in 24 die Daten erst nach einer zweiten Leseanforderung verfügbar sind. Die Daten werden jedoch in jedem Fall innerhalb von tRL nach der Zeit, in der die Speichervorrichtung erfolgreich auf eine Leseanforderung antwortet, an den Speichercontroller zurückgegeben. Die Zeit für die Rückgabe der Daten ist also deterministisch. Die verschiedenen Befehle (Aktivieren, Lesen, PRE) können DDR-Befehle sein. Ebenso können die verschiedenen Timings (tRCD, tRTP, tRP, tRL) DDR-Timings sein. Die tatsächlichen Werte für die verschiedenen Timings (tRCD, tRTP, tRP, tRL) hängen von dem verwendeten Protokoll ab. 23 und 24 stellen weitere Details für eine Ausführungsform des Prozesses 2200 bereit.
  • Nun Bezug nehmend auf 23 gibt der Speichercontroller einen Aktivierungsbefehl an die Speichervorrichtung aus. Wie bereits erwähnt, kann dies ein DDR-Aktivierungsbefehl sein. Als nächstes gab der Speichercontroller einen Lesebefehl an die Speichervorrichtung aus. Dies kann ein DDR-Lesebefehl sein. Das Timing tRCD (Row Column Delay) bezieht sich auf die Verzögerung zwischen Zeilenadresse und Spaltenadresse. Im Anschluss an den Lesebefehl gab der Speichercontroller einen PRE-Befehl an die Speichervorrichtung aus. Der PRE-Befehl bezieht sich auf einen „Vorladebefehl“, der in RAM wie DDR verwendet werden kann. Das Timing tRTP bezieht sich auf die Verzögerung zwischen dem Lesebefehl und dem PRE-Befehl. Das Timing tRL bezieht sich auf die Latenzzeit für Lesebefehle (oder die Verzögerung der Datenausgabe), die in RAM wie DDR weit verbreitet ist. Mit anderen Worten ist tRL die Zeit vom Lesebefehl bis zur Bereitstellung der Daten durch die Speichervorrichtung. Bezeichnenderweise stellt, in 23, die Speichervorrichtung die Daten an den Speichercontroller innerhalb von tRL ab dem Zeitpunkt an dem der Lesebefehl empfangen wird, bereit. Außerdem zeigt die Speichervorrichtung dem Speichercontroller an, dass es nicht notwendig ist, den Lesebefehl zu wiederholen, indem sie einen Wert (z. B. 0) auf einer Wiederholungsleitung sendet. Bei der Wiederholungsleitung kann es sich um eine beliebige Kommunikationsleitung zwischen der Speichervorrichtung und dem Speichercontroller handeln, die derzeit nicht benutzt wird. Das Wiederholungssignal wird in einer Ausführungsform von Schritt 2210 von 22 verwendet. In einer alternativen Ausführungsform wird der Wiederholungsversuch in einer CRC codiert, die an die Daten angehängt wird.
  • Nun Bezug nehmend auf 24 gibt der Speichercontroller einen Aktivierungsbefehl und einen Lesebefehl in ähnlicher Art und Weise wie in Verbindung mit 23 beschrieben aus. Allerdings gibt die Speichervorrichtung in diesem Beispiel keine gültigen Daten zurück. Dies entspricht einem Fall, in dem das Strom-Kraft-referenzierte Lesen fehlschlägt. Die Speichervorrichtung sendet eine „1“ auf der Wiederholungsleitung, um dem Speichercontroller anzuzeigen, dass er den Lesebefehl wiederholen soll. Der PRE nach dem ersten Lesebefehl wird in einem gestrichelten Kästchen dargestellt, um anzuzeigen, dass der PRE-Befehl nicht von dem Speichercontroller erteilt werden muss. Der Speichercontroller wartet nach dem Empfang des Wiederholungssignals eine vorher festgelegte Zeit (tDelay), um den Lesebefehl erneut zu erteilen. Es ist zu beachten, dass der Aktivierungsbefehl nicht erneut erteilt werden muss.
  • Es ist jedoch zu beachten, dass die Speichervorrichtung das Strom-Kraft-SRR beginnen kann, sobald sie feststellt, dass das Strom-Kraft-referenzierte Lesen nicht erfolgreich war. So muss die Speichervorrichtung nicht darauf warten, dass der Speichercontroller den Lesebefehl erneut erteilt. Bezeichnenderweise sendet die Speichervorrichtung die Daten innerhalb von tRL ab dem Zeitpunkt, zu dem der Speichercontroller den Lesebefehl erneut erteilt hat, an den Speichercontroller zurück. Sowohl bei dem Lesebefehl in 23 als auch bei dem erneut erteilten Lesebefehl in 24 gibt die Speichervorrichtung die Daten also innerhalb von tRL zurück. Daher ist die Zeit bis zur Rückgabe gültiger Daten deterministisch, was die Logik des Speichercontrollers erheblich vereinfacht. Daher kann eine Ausführungsform des gemischten Strom-Kraft-Lesens des MRAM mit einem DDR-Controller integriert werden. Mit anderen Worten, eine Ausführungsform des gemischten Strom-Kraft-Lesens des MRAM kann mit einem DDR-Protokoll integriert werden. Schließlich ist zu beachten, dass der Speichercontroller nach dem erneut erteilten Lesebefehl mit dem nächsten Lesebefehl in ähnlicher Art und Weise wie im Beispiel von 23 fortfahren kann.
  • 25 ist ein Flussdiagramm einer Ausführungsform eines Prozesses 2500, bei dem mitgeteilt wird, dass eine Wiederholung eines Lesens in einem gemischten Strom-Kraft-Leseschema durchgeführt werden soll. Der Prozess ist eine Alternative zum Senden eines Wiederholungssignals (z. B. 1 oder 0), wie in 23 und 24 dargestellt. Der Prozess 2500 wird eingeleitet, wenn der Speichercontroller feststellt, dass das Strom-Kraft-referenzierte Lesen fehlgeschlagen ist. Schritt 2502 schließt ein, dass die Speichervorrichtung eine Zyklusredundanzprüfung (CRC) für ein Datenmuster berechnet. Dies kann ein beliebiges Datenmuster sein. Schritt 2504 schließt ein, dass der Speichercontroller die CRC invertiert. Die CRC zu invertieren bedeutet, jede 1 in eine 0 und jede 0 in eine 1 zu ändern. Schritt 2506 schließt ein, dass die Speichervorrichtung das Datenmuster und die invertierte CRC an den Speichercontroller sendet. In einer Ausführungsform wird das Zeitdiagramm von 24 nach dem ersten Lesen modifiziert, indem die Speichervorrichtung das Datenmuster auf den DQ-Leitungen sendet und das invertierte CRC-Signal anstelle des Wiederholungssignals von 1 sendet.
  • Schritt 2508 schließt ein, dass der Speichercontroller die CRC für das von ihm empfangene Datenmuster berechnet. Schritt 2510 schließt ein, dass der Speichercontroller die von ihr berechnete CRC mit der CRC vergleicht, die er von der Speichervorrichtung erhalten hat. Der Speichercontroller stellt fest, dass der von ihm berechnete CRC-Wert gegenüber dem empfangenen CRC-Wert invertiert ist. Schritt 2512 schließt somit ein, dass der Speichercontroller bestimmt, dass er den Lesebefehl erneut erteilen soll.
  • 26A ist ein Diagramm, das Komponenten einer Ausführungsform eines Speicherchips 292 mit einer programmierbaren ECC-Engine darstellt. Der Speicherchip 292 weist ein Speicherarray 502 und eine programmierbare ECC-Engine 569 auf. Die programmierbare ECC-Engine 569 weist ein Datenregister 2602 auf, das Daten speichert und ein Codewortregister 2604, das ein Codewort speichert. In einer Ausführungsform schließt das Codewort die Daten und Paritätsbits (oder ECC) ein. Daten vom Host werden über einen Hostbus 2610 empfangen und vorübergehend in dem Datenregister 2602 gespeichert. Die Daten werden von der ECC-Engine 569 in ein Codewort codiert, das vorübergehend im Codewortregister 2604 gespeichert wird. Das Codewort (oder ECC-Codewort) wird aus dem Codewortregister 2604 über einen Speicherbus 2612 übertragen und in das Speicherarray 502 programmiert. Beim Lesen des Speicherarrays 502 wird ein Codewort, das aus dem Speicherarray 502 gelesen wird, über den Speicherbus 2612 übertragen und vorübergehend im Codewortregister 2604 gespeichert. Die aus dem Speicherarray 502 gelesenen Daten werden von der ECC-Engine 569 in korrigierte Daten decodiert, die vorübergehend in dem Datenregister 2602 gespeichert werden. Die korrigierten Daten werden dem Host über den Hostbus 2610 bereitgestellt. In einer Ausführungsform ist das Datenregister 2602 in der Lage 256 Bits zu speichern, und das Codewortregister 2604 ist in der Lage, 256 Bits plus eine Anzahl von Prüf- (oder Paritäts-) Bits zu speichern. Der Hostbus 2610 kann eine Breite von zum Beispiel 8, 16 oder 32 Bits aufweisen. Der Speicherbus 2612 kann zum Beispiel eine Breite aufweisen, die gleich oder größer als die Anzahl von Bits im Codewort ist. In einer Ausführungsform ist der Hostbus 2610 ein DDR-Bus.
  • Der ECC-Engine 569 gibt ein Valid/Err-Signal aus, das anzeigt, ob die ECC-Engine bestimmt, dass die Decodierung erfolgreich (Valid) oder ein fehlgeschlagen (Err) ist. Je nach ECC-Modus kann die ECC-Engine 569 bis zu einer begrenzten Anzahl von Fehlern im Codewort korrigieren. Wenn das Codewort zu viele Fehler enthält, ist der ECC-Decoder 569 nicht in der Lage, alle Fehler zu entfernen. Darüber hinaus stellt der ECC-Decoder fest, dass die Decodierung nicht erfolgreich war, und meldet dies als nicht korrigierbaren Fehler. In einigen Fällen kann der ECC-Decoder 569 melden, dass das Decodieren erfolgreich war (Valid), obwohl das Decodieren tatsächlich nicht erfolgreich war, was hierin als Fehlkorrektur (oder nicht erkennbaren Fehler) bezeichnet wird.
  • Die programmierbare ECC-Engine 569 weist zwei oder mehrere Decodierungsmodi auf. Die programmierbare ECC-Engine 569 weist eine Eingabe auf, die eine Auswahl des ECC-Modus ermöglicht. Die verschiedenen ECC-Modi weisen unterschiedliche nicht korrigierbare Bitfehlerraten auf. In einer Ausführungsform können die ECC-Modi beispielsweise durch Auswählen der Anzahl korrigierbarer Bits in dem Codewort ausgewählt werden. Somit ermöglicht das Auswählen aus den verschiedenen ECC-Modi die Auswahl der Korrekturleistung. Beispielsweise kann die Eingabe eine Auswahl von irgendetwas zwischen der Korrektur von zwei bis neun fehlerhaften Bits im Codewort ermöglichen. Es kann jedoch ein Kompromiss zwischen der Korrekturleistung und der micht nachweisbaren Bitfehlerrate bestehen. Das heißt, ein Decodierungsmodus mit mehr Korrekturleistung kann eine höhere Wahrscheinlichkeit einer Fehlkorrektur aufweisen. Beispielsweise kann ein erster Modus bis zu sechs fehlerhafte Bits im Codewort mit einer ersten Wahrscheinlichkeit einer Fehlkorrektur bei einer gegebenen Rohbitfehlerrate (RBER) korrigieren. Ein zweiter ECC-Modus kann bis zu neun fehlerhafte Bits im Codewort mit einer zweiten Wahrscheinlichkeit einer Fehlkorrektur bei der gegebenen RBER korrigieren, wobei die zweite Wahrscheinlichkeit einer Fehlkorrektur größer als die erste Wahrscheinlichkeit ist. Die RBER kann jedoch niedriger sein, wenn der zweite ECC-Modus verwendet wird. Zum Beispiel könnte die RBER etwa 10^-3 sein, wenn der erste ECC-Modus verwendet wird und etwa 10^-4, wenn der zweite ECC-Modus verwendet wird. Die niedrigere RBER bei Verwendung des zweiten ECC-Modus kann zu etwa derselben Fehlkorrekturrate führen, wenn sowohl der erste ECC-Modus als auch der zweite ECC-Modus verwendet werden. In einer Ausführungsform basiert die Wahl des Decodierungsmodus auf dem Ziel-Rohbitfehler und einem Kompromiss zwischen einem tolerierbaren bekannten ECC-Fehler und einem nicht erkannten ECC-Fehler. In einer Ausführungsform verwenden beide Fehlerkorrekturmodi einen Bose-Chaudhuri-Hocquenghem (BCH)-Decodierprozess.
  • 26B ist ein Diagramm, das Komponenten einer Ausführungsform einer integrierten Speicherbaugruppe 570 mit einer programmierbaren ECC-Engine darstellt. Die integrierte Speicherbaugruppe 570 weist einen Speicherstrukturchip 580 und einen Steuerchip 590 auf. Der Steuerchip 590 weist eine programmierbare ECC-Engine 569 auf. Die programmierbare ECC-Engine 569 kann auf die gleiche Weise wie die programmierbare ECC-Engine 569 auf dem Speicherchip 292 in 26A arbeiten. Ein Unterschied besteht darin, dass das Codewort über Signalpfade 594, die vorstehend erörtert wurden, zwischen der ECC-Engine 569 und dem Speicherarray 502 übertragen wird.
  • 27 ist ein Flussdiagramm einer Ausführungsform eines Prozesses 2700 zum Lesen von Daten, die in Speicherzellen mit reversibler Resistivität gespeichert sind, unter Verwendung einer programmierbaren ECC-Engine. In einer Ausführungsform sind die Speicherzellen MRAM-Zellen. In einer Ausführungsform weist jede Speicherzelle ein zweipoligen Selektorelement in Reihe mit einem Speicherelement mit reversibler Resistivität auf. In einer Ausführungsform weist jede Speicherzelle ein zweipoligen Selektorelement in Reihe mit einem MRAM-Speicherelement auf. In einer Ausführungsform befinden sich die Speicherzellen (z. B. MRAM-Zellen) in einem Kreuzpunktspeicherarray, das erste Leiterbahnen und zweite Leiterbahnen aufweist, wobei jede jeweilige nichtflüchtige Speicherzelle zwischen einer der ersten Leiterbahnen und einer der zweiten Leiterbahnen verbunden ist. In einer Ausführungsform wird der Prozess 2700 von einer ECC-Engine auf demselben Chip wie die Speicherzellen durchgeführt, wie in 26A. In einer Ausführungsform wird der Prozess 2700 von einer ECC-Engine auf einem Steuerchip durchgeführt, der mit einem Chip verbunden ist, der die Speicherzellen aufweist, wie in 26B.
  • Schritt 2702 schließt das Lesen eines Codeworts aus einer Gruppe der Speicherzellen unter Verwendung eines referenzierten Lesens ein. In einer Ausführungsform wird ein Strom-Kraft-referenziertes Lesen verwendet. Die Speicherzellen speichern zusammen ein ECC-Codewort. In einer Ausführungsform wird das ECC-Codewort von dem Speicherarray 502 zu einem Codewortregister 2604 übertragen. In einer Ausführungsform gibt es eine erste RBER für dieses ECC-Codewort. Zum Beispiel kann die erste RBER etwa 10^-3 betragen.
  • Schritt 2704 schließt das Ausführen eines ECC-Decoders 529 auf dem Codewort ein, das unter Verwendung des referenzierten Lesens erfasst wird. Der ECC-Decoder 529 wird unter Verwendung eines ersten ECC-Modus mit einer ersten Korrekturrate ausgeführt, die eine erste Anzahl von Bits in dem Codewort korrigieren kann. Beispielsweise kann der erste ECC-Modus in der Lage sein, bis zu sechs fehlerhafte Bits im Codewort zu korrigieren. In einer Ausführungsform wählt die Systemsteuerlogik 560 auf dem Chip 292 die Korrekturrate aus. In einer Ausführungsform sendet die Systemsteuerlogik 560 ein Steuersignal an den ECC-Decoder 529, um die Korrekturrate auszuwählen. Der erste ECC-Modus weist eine erste probabilistische Benutzerbitfehlerrate (PUBER) auf, wenn eine bestimmte Rohbitfehlerrate (RBER) vorliegt. Die PUBER bezieht sich auf die Wahrscheinlichkeit eines nicht korrigierbaren Fehlers und könnte auch als nicht korrigierbare Bitfehlerrate bezeichnet werden. Es ist zu beachten, dass die PUBER den Fällen entspricht, in denen der ECC-Decoder 529 meldet, dass die Decodierung fehlgeschlagen ist. Beispielsweise könnte bei einer RBER von 3*10^-3 die PUBER etwa 10^-6,6 für den ersten ECC-Modus betragen. Der erste Modus hat eine erste Wahrscheinlichkeit eines nicht erkennbaren Fehlers (PUER), wenn eine bestimmte Rohbitfehlerrate (RBER) gegeben ist. Zum Beispiel könnte bei einer RBER von 3*10^-3 die PUER etwa 10^-22,4 für den ersten ECC-Modus betragen. Es ist zu beachten, dass die PUER Fällen entspricht, in denen der ECC-Decoder 529 meldet, dass die Decodierung erfolgreich war, obwohl es einen oder mehrere Bitfehler in den Daten gibt, die von dem ECC-Decoder 529 ausgegeben werden.
  • Schritt 2706 ist eine Bestimmung, ob die Decodierung erfolgreich war. Diese Bestimmung erfolgt durch die programmierbare ECC-Engine 569. Es ist möglich, dass die ECC-Engine 569 meldet, dass die Decodierung erfolgreich war, obwohl ein oder mehrere Bits in den Daten fehlerhaft sind, was hier entweder als Fehlkorrektur oder als nicht erkennbarer Fehler bezeichnet wird. Wenn die Decodierung erfolgreich war (wie von der ECC-Engine gemeldet), werden die decodierten Daten in Schritt 2708 an den Host bereitgestellt. Die decodierten Daten in Schritt 2708 beziehen sich auf die Daten, die die ECC-Engine 569 ausgibt, wenn die ECC-Engine 569 meldet, dass die Decodierung erfolgreich war (oder als gültig meldet). Wie bereits erwähnt, weisen die Daten, die von der ECC-Engine 569 ausgegeben werden, im Falle einer Fehlkorrektur (oder eines nicht erkennbaren Fehlers) ein oder mehrere fehlerhafte Bits auf. In einer Ausführungsform werden die Daten über einen DDR-Bus an den Host bereitgestellt.
  • Wenn die Decodierung fehlgeschlagen ist (wie von der ECC-Engine gemeldet), wird die Gruppe von Speicherzellen unter Verwendung eines SRR in Schritt 1710 gelesen. In einer Ausführungsform ist das SRR ein Strom-Kraft-SRR. In einer Ausführungsform ist Schritt 2710 dem Schritt 1308 ähnlich. In einer Ausführungsform wird der Prozess 1700 für das SRR verwendet. In einer Ausführungsform gibt es eine zweite RBER für dieses ECC-Codewort. Zum Beispiel kann die zweite RBER etwa 10^-4 betragen. Es ist zu beachten, dass eine Ausführungsform des SRR in Schritt 2710 genauer ist als eine Ausführungsform des in Schritt 2704 referenzierten Lesens, was zu einer niedrigeren RBER führt.
  • Schritt 2712 schließt das Ausführen des ECC-Decoders 569 auf dem Codewort ein, um die unter Verwendung des SRR gelesenen Daten zu decodieren und zu korrigieren. Der ECC-Decoder wird unter Verwendung eines zweiten ECC-Modus mit einer zweiten Korrekturrate ausgeführt, die eine zweite Anzahl von Bits in dem Codewort korrigieren kann. Die zweite Korrekturrate kann eine größere Anzahl von Bits korrigieren als die erste Korrekturrate, die in Schritt 2704 Verwendet wird. Beispielsweise könnte die erste Korrekturrate bis zu sechs fehlerhafte Bits im Codewort korrigieren, wohingegen die zweite Korrekturrate bis zu neun fehlerhafte Bits im Codewort korrigieren könnte. Der zweite ECC-Modus weist eine zweite Wahrscheinlichkeit eines nicht korrigierbaren Fehlers (PUBER) bei einer bestimmten Rohbitfehlerrate (RBER) auf. Die zweite PUBER ist niedriger als die erste PUBER des ersten ECC-Modus (d. h. der zweite ECC-Modus hat mehr Korrekturleistung als der erste ECC-Modus). Beispielsweise könnte bei einer RBER von 3*10^-3 die PUBER etwa 10^-9,5 für den zweiten ECC-Modus betragen (im Vergleich zu etwa 10^-6,6 für den ersten ECC-Modus). Es ist jedoch zu beachten, dass die RBER in Schritt 2712 besser als die RBER in Schritt 2704 sein könnte, was zu einer noch besseren Verbesserung der PUBER führt. Der zweite ECC-Modus weist eine zweite Wahrscheinlichkeit eines nicht erkennbaren Fehlers (PUER) auf, wenn dieselbe Rohbitfehlerrate gegeben ist, die in Schritt 2704 erwähnt wird. Die zweite Wahrscheinlichkeit eines nicht erkennbaren Fehlers ist größer als die erste Wahrscheinlichkeit für den ersten ECC-Modus - unter der Annahme derselben RBER. Beispielsweise könnte bei einer PUER von 3*10^-3 die PUBER etwa 10^-14,3 für den zweiten ECC-Modus betragen (im Vergleich zu etwa 10^-22,4 für den ersten ECC-Modus). Die RBER kann jedoch bei Verwendung des zweiten ECC-Modus niedriger sein als bei Verwendung des ersten ECC-Modus. Zum Beispiel kann die RBER ungefähr 10^-3 sein, wenn der erste ECC-Modus verwendet wird (Schritt 2704), kann aber ungefähr 10^-4 sein, wenn der zweite ECC-Modus verwendet wird (Schritt 2712). Diese niedrigere RBER für den zweiten ECC-Modus kann die höhere Wahrscheinlichkeit von PUER für den zweiten ECC-Modus ausgleichen (unter der Annahme derselben RBER). Somit kann die PUER für die Schritte 2704 und 2712 etwa gleich sein.
  • Somit haben Daten, die unter Verwendung des selbstreferenzierten Lesens gelesen werden, eine niedrigere RBER als Daten, die unter Verwendung des referenzierten Lesens gelesen werden. Darüber hinaus reduziert eine Reduzierung der RBER die Fehler-Fehlkorrekturrate im zweiten ECC-Modus. In einer Ausführungsform ist die PUER bei Verwendung des zweiten ECC-Modus in Schritt 2712 im Wesentlichen derselbe wie die PUER bei Verwendung des ersten ECC-Modus in Schritt 2704. In einer Ausführungsform ist die PUER bei Verwendung des zweiten ECC-Modus in Schritt 2712 niedriger als die PUER bei Verwendung des ersten ECC-Modus in Schritt 2704. Es ist jedoch keine absolute Anforderung, dass die PUER bei Verwendung des zweiten ECC-Modus in Schritt 2712 gleich oder niedriger als die PUER bei Verwendung des ersten ECC-Modus in Schritt 2704 ist. Wie nachstehend ausführlicher in Verbindung mit den 29 und 30 erörtert wird, kann die niedrigere RBER in einer Ausführungsform von SRR in Schritt 2710 (relativ zu dem in Schritt 2702 genannten Lesen) die höhere PU ER für den zweiten ECC-Modus im Wesentlichen abschwächen (unter Annahme derselben RBER wie der erste ECC-Modus).
  • In einer Ausführungsform wird der ECC-Decoder auf den Daten ausgeführt, die basierend auf Schritt 1712 des SRR von 17 erzeugt werden. Das heißt, in einer Ausführungsform wird der ECC-Decoder mit den Daten nach dem zweiten Lesen des SRR und dem Vergleich des gespeicherten Werts von dem ersten Lesen ausgeführt (siehe Schritte 1710 und 1712 von 17). Optional kann der ECC-Decoder im zweiten ECC-Modus auf den Daten von dem ersten Lesen des SRR ausgeführt werden (siehe Schritte 1702 - 1705 von 17).
  • Schritt 2714 ist eine Bestimmung, ob die Decodierung von Schritt 2712 erfolgreich war. Wie bei Schritt 2706 basiert diese Bestimmung darauf, ob die ECC-Engine 569 meldet, dass die Decodierung erfolgreich war. Beachten Sie, dass es eine geringe Wahrscheinlichkeit einer Fehlkorrektur gibt, was bedeutet, dass, obwohl die Decodierung erfolgreich war, immer noch ein Fehler in den Daten vorhanden ist. Wenn die Decodierung erfolgreich war, dann werden die decodierten (und in den meisten Fällen vollständig fehlerkorrigierten) Daten dem Host in Schritt 2716 bereitgestellt. In einer Ausführungsform werden die Daten über einen DDR-Bus an den Host bereitgestellt. Falls das Decodieren von Schritt 2712 fehlgeschlagen ist (wie durch den ECC-Decoder bestimmt), kann in Schritt 2718 eine Fehlermeldung an den Host zurückgegeben werden.
  • 28 ist ein Blockdiagramm, das weitere Details einer Ausführungsform eines programmierbaren ECC-Decoders 529 veranschaulicht. Der in 28 dargestellte ECC-Decoder 529 verwendet einen Bose-Chaudhuri-Hocquenghem (BCH)-Decodierprozess. Der ECC-Decoder 529 gibt ein Codewort ein (das Daten und ECC-Bits einschließt). Das Codewort wird in Eingangsflops 2802 eingegeben. Die Eingangsflops 2802 stellen das Codewort an den Syndromgenerator 2804, den Syndromvalidator 2810 und die XOR 2812 bereit. Der ECC-Decoder 529 gibt auch ein Modusauswahlsignal ein, das die Anzahl der korrigierbaren Bits angibt. Das Modusauswahlsignal wird an den Fehlerlokalisiererpolynom (ELP)-Generator 2806 bereitgestellt. Der ECC-Decoder 529 gibt korrigierte Daten von den Ausgangsflops 2814 aus. Der ECC-Decoder 529 gibt auch ein „Valid/Error“-Signal aus, das angibt, ob die Datenausgabe von Ausgangsflops 2814 gültig ist oder ob das Codewort nicht korrigierbar war. Der ECC-Decoder 529 gibt auch ein Fehlermuster aus, das bis zu 9 Bitfehlerstellen enthalten könnte. In einer Ausführungsform gibt der ECC-Decoder 529 eine Fehleranzahl aus, die Anzahl von Bitfehlern in den Daten angibt, die von den Ausgangsflops 2814 ausgegeben werden.
  • Der Syndromgenerator 2804 ist in der Lage, Syndrome für das Eingabecodewort zu berechnen. Techniken zur Syndromerzeugung sind dem Durchschnittsfachmann bekannt. In einer Ausführungsform erzeugt der Syndromgenerator 2804 mehrere Syndrome, die parallel zum ELP-Generator 2806 weitergegeben werden. Darüber hinaus gibt es in einer Ausführungsform keinen zu steuernden Takt, wenn die Syndrome an den ELP-Generator 2806 weitergegeben werden. Dieser parallele und asynchrone Betrieb erzielt eine schnelle Dekodierung. In einer Ausführungsform gibt es einen Takt, der zur Steuerung verwendet wird, wenn jedes Syndrom an den ELP-Generator 2806 weitergegeben wird.
  • Der ELP-Generator 2806 berechnet ein oder mehrere Fehlerlokalisiererpolynome aus den Syndromen. Ein Fehlerlokalisiererpolynom weist die Informationen über die Fehlerpositionen auf. Beispielalgorithmen, die durch den ELP-Generator 2806 ausgeführt werden könnten, schließen ein, sind aber nicht beschränkt auf, den Peterson-Gorenstein-Zieler-Algorithmus, den Euclid-Algorithmus, den Berlekamp-Massey-Algorithmus und den inversionslosen Berlekamp-Massey-Algorithmus (iBMA). In einer Ausführungsform ist der ELP-Generator 2806 in der Lage, eine Anzahl von Fehlerlokalisiererpolynomen zu erzeugen, die jeweils einen unterschiedlichen Grad aufweisen. Genauer gesagt ist der ELP-Generator 2806 in der Lage, Koeffizienten für solche Fehlerlokalisiererpolyome zu erzeugen. In einer Ausführungsform ist der ELP-Generator 2806 in der Lage, Koeffizienten für Fehlerlokalisiererpolynome mit den Graden zwei bis neun zu erzeugen. Der Grad des vom ELP-Generator 2806 ausgegebenen Fehlerlokalisiererpolynoms ist auswählbar. Beispielsweise könnte der ELP-Generator 2806 ein Fehlerlokalisiererpolynom vom Grad sechs, Grad neun usw. ausgeben. Tabelle I zeigt ein Format einer beispielhaften Ausgabe des ELP-Generators. Tabelle I zeigt ein Format für verschiedene Sätze von Koeffizienten, die der ELP-Generator 2806 für die Wurzelsuche 2808 bereitstellen kann. Die Nicht-Null-Einträge sind Koeffizienten, die vom ELP-Generator 2806 erzeugt werden. In einer Ausführungsform ist jeder Koeffizient eine Folge von neun Bits. Tabelle I
    ELP2: {0, 0, 0, 0, 0, 0, c33, c32, c31, 0}
    ELP3: {0, 0, 0, 0, 0, 0, c33, c32, c31, c30}
    ELP4: {0, 0, 0, 0, c55, c54, c53, c52, c51, 0}
    ELP5: {0, 0, 0, 0, c55, c54, c53, c52, c51, c50}
    ELP6: {0, 0, c77, c76, c75, c74, c73, c72, c71, 0}
    ELP7: {0, 0, c77, c76, c75, c74, c73, c72, c71, c70}
    ELP8: {c99, c98, c97, c96, c95, c94, c93, c92, c91, 0}
    ELP9: {c99, c98, c97, c96, c95, c94, c93, c92, c91, c90}
  • Die Beispiele in Tabelle I können zum Korrigieren zwischen zwei und neun Bits im Codewort verwendet werden. Somit entspricht Tabelle I einem Beispiel, in dem es acht ECC-Modi gibt. Beispielsweise wird ELP6 verwendet, um bis zu sechs Fehlerbits im Codewort zu korrigieren, während ELP9 verwendet wird, um bis zu neun Fehlerbits im Codewort zu korrigieren. Es gibt insgesamt zehn Werte für jeden Koeffizientensatz in Tabelle I, die auf dem Maximalfall von ELP9 basiert. Das heißt, ELP9 hat zehn Nicht-Null-Koeffizienten. In einer Ausführungsform, die mit dem Beispiel in Tabelle I übereinstimmt, hat die Wurzelsuche 2808 zehn Eingänge, so dass jeder Eingang einen der zehn Werte in Tabelle I empfängt. Der ELP-Generator 2806 hat einen Eingang, der einen Wert (d. h. Modusauswahlsignal) für die Anzahl korrigierbarer Bits empfängt. Zum Beispiel könnte der Wert ein Vier-Bit-Code sein, um eine der ELP2 durch ELP9 anzuzeigen. Die Zustandsmaschine 562 kann den Vier-Bit-Code an den ELP-Generator 2806 bereitstellen.
  • Wie vorstehend erwähnt, arbeitet der ELP-Generator 2806 in einer Ausführungsform asynchron. Das heißt, der ELP-Generator 2806 weist keinen Takteingang auf. Stattdessen empfängt und verarbeitet der ELP-Generator 2806 in einer asynchronen Ausführungsform alle Syndrome parallel, was einen schnellen Betrieb bereitstellt. In einer asynchronen Ausführungsform wendet der ELP-Generator 2806 eine Rekursion an, um die Koeffizienten für die Fehlerlokalisiererpolynome zu erzeugen. In einer synchronen Ausführungsform hat der ELP-Generator 2806 einen Takteingang und arbeitet synchron. Beispielsweise können die Syndrome in einer synchronen Ausführungsform einzeln in den ELP-Generator 2806 geleitet werden.
  • Die Wurzelsuche 2808 ist in der Lage, Wurzeln in dem Fehlerlokalisiererpolynom zu lokalisieren, dessen Koeffizienten von dem ELP-Generator 2806 empfangen werden. In einer Ausführungsform verwendet die Wurzelsuche 2808 den Chien-Suchalgorithmus, aber andere Techniken könnten verwendet werden, um Wurzeln im Fehlerlokalisiererpolynom zu lokalisieren. Die gleiche Hardware kann unabhängig vom Grad des Fehlerlokalisiererpolynoms aufgrund der Lage der Nullen in Tabelle I verwendet werden.
  • Der Syndromvalidator 2810 berechnet das Syndrom neu, nachdem die Wurzeln des Fehlerlokalisiererpolynoms durch die Wurzelsuche 2808 gefunden wurden. Der Syndromvalidator 2810 gibt ein Signal „Valid/Err“ aus, um anzuzeigen, ob die Syndrome korrekt sind.
  • Somit stellen die ELP2 bis ELP9 entsprechenden ECC-Modi progressiv höhere Fehlerkorrekturfähigkeiten bereit. Die Fehlkorrekturrate kann jedoch von ELP2 bis ELP9 zunehmen. Beispielsweise korrigiert ELP6 bis zu sechs Fehlerbits im Codewort, während ELP9 bis zu neun Fehlerbits im Codewort korrigiert. ELP9 kann jedoch eine höhere Wahrscheinlichkeit einer Fehlkorrektur als ELP6 für eine bestimmte RBER aufweisen. Eine Fehlkorrektur bedeutet, dass der Syndromvalidator 2810 ausgeben wird, dass das Ergebnis gültig ist, obwohl ein oder mehrere Fehler immer noch in den „korrigierten Daten“ vorhanden sind. Wie vorstehend erwähnt, kann die RBER jedoch niedriger sein, wenn der ECC-Modus mit der höheren Wahrscheinlichkeit einer Fehlkorrektur verwendet wird. Diese niedrigere RBER kann dazu führen, dass die Wahrscheinlichkeit einer Fehlkorrektur für beide ECC-Modi etwa gleich ist.
  • In einer Ausführungsform ist der programmierbare ECC-Decoder 529 vollständig in Hardware implementiert. In einer Ausführungsform sind der Syndromgenerator 2804, der ELP-Generator 2806, die Wurzelsuche 2808 und der Syndromvalidator 2810 jeweils mit logischen Gates wie etwa AND, NAND, OR, NOR, XOR usw. implementiert. Daher kann sowohl der Syndromgenerator 2804 als auch der ELP-Generator 2806, die Wurzelsuche 2808 und der Syndromvalidator 2810 als eine kombinatorische Logikschaltung implementiert werden. In einer Ausführungsform arbeitet der programmierbare ECC-Decoder 529 asynchron (d. h. ohne einen Takt). Somit können sowohl der Syndromgenerator 2804, ELP 2806, die Wurzelsuche 2808 als auch der Syndromvalidator 281 asynchron arbeiten. In einer anderen Ausführungsform arbeitet der programmierbare ECC-Decoder 529 synchron (d. h. mit einem Takt).
  • 29 ist ein Graph, der ein Beispiel einer probabilistischen Benutzerbitfehlerrate (PUBER) gegenüber einer Rohbitfehlerrate (RBER) darstellt. Die PUBER kann auch als nicht korrigierbare Bitfehlerrate bezeichnet werden. Die nicht korrigierbare Bitfehlerrate bezieht sich auf Fehler, die nach der Dekodierung verbleiben. Die x-Achse, die für Rohbitfehler steht, ist mit -Log10(RBER) gekennzeichnet. Die y-Achse, die für die Wahrscheinlichkeit der nicht korrigierbaren Bitfehlerrate steht, ist mit -Log10(PUBER) gekennzeichnet. Plot 2910 und 2920 sind für zwei Modi mit unterschiedlichen Zahlen korrigierbarer Bits. Plot 2910 ist für einen ECC-Modus, der mehr Bits korrigieren kann als der ECC-Modus für Plot 2920. Zum Beispiel kann Plot 2910 für einen ECC-Modus sein, in dem die ECC-Engine in der Lage ist, bis zu neun Fehlerbits (t = 9) im Codewort zu korrigieren, während Plot 2920 für einen ECC-Modus sein kann, in dem die ECC-Engine in der Lage ist, bis zu sechs Fehlerbits (t = 6) im Codewort zu korrigieren. Die Plots zeigen, dass der ECC-Modus mit der größeren Korrekturfähigkeit eine geringere Wahrscheinlichkeit eines Decodierungsfehlers (oder PUBER) aufweist, wenn dieselbe Rohbitfehlerrate (RBER) gegeben ist.
  • 30 ist ein Graph, der ein Beispiel eines probabilistischen nicht erkennbaren Fehlers (PUER) gegenüber einer Fehlerzählung darstellt. Wie vorstehend erwähnt, kann PUER als nicht erkennbare Fehlerrate bezeichnet werden. Die x-Achse ist für die Fehlerzählung. Die y-Achse, die für den probabilistischen nicht erkennbaren Fehler steht, ist mit -Log10(PUER) gekennzeichnet. Die beiden Plots 3101, 3020 sind für unterschiedliche RBER. Der Plot 3010 ist für einen RBER von 10^-4. Der Plot 3020 ist für einen RBER von 10^-3. In einer Ausführungsform wird die RBER für das SRR niedriger sein (z. B. Schritt 2710 in Prozess 2700) als für das referenzierten Lesen (z. B. Schritt 2702 in Prozess 2700). Als ein Beispiel könnte die RBER für das referenzierte Lesen etwa 10^3 betragen, nimmt jedoch für das SRR auf etwa 10^4 ab. Die Plots 3010, 3020 zeigen an, dass mit zunehmender Fehlerzählung die Wahrscheinlichkeit eines nicht erkennbaren Fehlers zunimmt. Darüber hinaus zeigt ein Vergleich von 3010 mit Plot 3020 an, dass die Fehler-Fehlkorrekturrate (PUER) als Reaktion auf eine niedrigere Rohbitfehlerrate im Codewort abfallen wird.
  • Ein Modus der ECC-Engine, der in der Lage ist, mehr Fehler zu korrigieren, kann somit eine höhere Wahrscheinlichkeit eines nicht erkennbaren Fehlers (oder einer Fehlkorrektur) aufweisen, wenn dieselbe RBER angenommen wird. Die RBER kann jedoch niedriger sein, wenn SRR durchgeführt wird, als wenn das referenzierte Lesen durchgeführt wird. Die niedrigere RBER in der Praxis kann die höhere Wahrscheinlichkeit eines nicht erkennbaren Fehlers bei derselben RBER ausgleichen. Die gestrichelte Linie 3030 entspricht einer Fehlerzählung von 9 für Plot 3010, die dem Ausführen der programmierbaren ECC-Engine in einem ECC-Modus mit bis zu 9 korrigierbaren Bits (und einer RBER von 10^-4) entsprechen kann. In einer Ausführungsform wird dieser 9-Bit-korrigierbare Modus in Schritt 2712 in 17 verwendet. Die gestrichelte Linie 3040 entspricht einer Fehlerzählung von 6 für Plot 3020, die dem Ausführen der programmierbaren ECC-Engine in einem ECC-Modus mit bis zu 6 korrigierbaren Bits (und einer RBER von 10^-3) entsprechen kann. In einer Ausführungsform wird dieser 6-Bit-korrigierbare Modus in Schritt 2704 in 27 verwendet. Es ist zu beachten, dass der PUER m ECC-Modus, der sowohl für das referenzierte Lesen als auch für das SRR verwendet wird, etwa gleich sein kann. Zum Beispiel kann der PUER in beiden ECC-Modi (z. B. in den Schritten 2704 und 2712 in 27) für beide etwa 10^-29 betragen. Abhängig von Faktoren wie dem RBER beim Anwenden jedes ECC-Modus könnte der PUER für den zweiten ECC-Modus besser (d. h. niedriger) sein als der PUER für den ersten ECC-Modus; der PUER für den zweiten ECC-Modus könnte im Wesentlichen gleich dem PUER für den ersten ECC-Modus sein; oder der PUER für den zweiten ECC-Modus könnte geringfügig schlechter (d. h. höher) als der PUER für den ersten ECC-Modus sein. Die deutlich bessere (niedrigere) RBER bei Verwendung einer Ausführungsform des zweiten ECC-Modus führt jedoch zu einer wesentlichen Verringerung der PUER für eine Ausführungsform des zweiten ECC-Modus. Zum Beispiel zeigt ein Vergleich der PUER für die Plots 3010 und 3020 für eine Fehlerzählung von 9, dass zwischen diesen beiden Fällen etwa 10 Größenordnungen liegen (10^-19 vs. 10^-29).
  • Daher führt die Verwendung des zweiten ECC-Modus mit der höheren Korrekturfähigkeit für das selbstreferenzierte Lesen zu einer geringeren Wahrscheinlichkeit eines nicht korrigierbaren Fehlers relativ zu dem ersten ECC-Modus mit niedrigerer Korrekturfähigkeit. Zum Beispiel führt die Verwendung eines ECC-Modus, der neun Bits für das selbstreferenzierte Lesen korrigieren kann, zu einer geringeren Wahrscheinlichkeit eines nicht korrigierbaren Fehlers, als wenn der ECC-Modus verwendet würde, der bis zu sechs Bits korrigieren kann. Darüber hinaus kann, obwohl der zweite ECC-Modus eine höhere PUER als der erste ECC-Modus für die gleiche RBER haben kann, die RBER, die vorhanden ist, wenn der zweite ECC-Modus verwendet wird, niedriger sein als die RBER, wenn der erste ECC-Modus verwendet wird. Daher kann der zweite ECC-Modus unter Berücksichtigung der niedrigen RBER etwa die gleiche PUER wie der erste ECC-Modus aufweisen (oder sogar eine etwas besser PUER als der erste ECC-Modus).
  • In Anbetracht des Vorstehenden ist ersichtlich, dass gemäß einem ersten Gesichtspunkt eine Vorrichtung ein Speicherarray aufweist, das eine Vielzahl von Speicherzellen mit reversibler Resistivität und eine Steuerschaltung aufweist, die mit dem Speicherarray in Verbindung steht. Die Steuerschaltung ist eingerichtet, um eine Gruppe ausgewählter Speicherzellen unter Verwendung eines referenzierten Lesens zu lesen. Die Steuerschaltung ist eingerichtet, um Daten, die aus der Gruppe gelesen werden, unter Verwendung des referenzierten Lesens mit einem ersten Fehlerkorrekturcode-Modus (ECC-Modus) zu decodieren, der in der Lage ist, bis zu einer ersten Anzahl von Bits in der Gruppe zu korrigieren. Die Steuerschaltung ist eingerichtet, um die Gruppe ausgewählter Speicherzellen unter Verwendung eines selbstreferenzierten Lesens als Reaktion auf einen Fehler zu lesen, um die Daten in der Gruppe unter Verwendung des ersten ECC-Modus zu decodieren. Die Steuerschaltung ist eingerichtet, um Daten, die aus der Gruppe gelesen werden, unter Verwendung des selbstreferenzierten Lesens mit einem zweiten ECC-Modus zu decodieren, der in der Lage ist, bis zu einer zweiten Anzahl von Bits in der Gruppe zu korrigieren, wobei die zweite Anzahl von Bits größer als die erste Anzahl von Bits ist.
  • In einem zweiten Gesichtspunkt weist der erste ECC-Modus zur Unterstützung des ersten Gesichtspunkts eine erste Fehler-Fehlkorrekturrate für eine gegebene Rohbitfehlerrate auf und der zweite ECC-Modus weist eine zweite Fehler-Fehlkorrekturrate auf, die größer als die erste Fehler-Fehlkorrekturrate für die gegebene Rohbitfehlerrate ist. Daten, die unter Verwendung des selbstreferenzierten Lesens gelesen werden, haben eine niedrigere Rohbitfehlerrate als Daten, die unter Verwendung des referenzierten Lesens gelesen werden. Eine Verringerung der Rohbitfehlerrate reduziert die Fehler-Fehlkorrekturrate im zweiten ECC-Modus.
  • In einem dritten Gesichtspunkt weist die Steuerschaltung zur Unterstützung des ersten oder zweiten Gesichtspunkts eine programmierbare ECC-Engine auf. Die programmierbare ECC-Engine ist eingerichtet, um Koeffizienten für ein Fehlerlokalisiererpolynom mit einem Grad von n zu berechnen, wenn der erste ECC-Modus ausgeführt wird, wobei n eine ganze Zahl ist. Die programmierbare ECC-Engine ist eingerichtet, um Koeffizienten für ein Fehlerlokalisiererpolynom mit einem Grad von m zu berechnen, wenn der zweite ECC-Modus durchführt wird, wobei m eine ganze Zahl ist, die größer als n ist.
  • In einem vierten Gesichtspunkt befindet sich zur Unterstützung des dritten Gesichtspunkts die programmierbare ECC-Engine auf demselben Halbleiterchip wie das Speicherarray.
  • In einem fünften Gesichtspunkt befindet sich zur Unterstützung des dritten Gesichtspunkts die programmierbare ECC-Engine auf einem Steuerhalbleiterchip. Das Speicherarray befindet sich auf einem Speicherstrukturchip, der mit dem Steuerhalbleiterchip verbunden ist.
  • In einem sechsten Gesichtspunkt weist die Steuerschaltung zur Unterstützung eines der ersten bis fünften Gesichtspunkte eine programmierbare ECC-Engine auf, die eingerichtet ist, um Syndrome für ein Codewort zu erzeugen, das aus Daten gebildet wird, die aus den Speicherzellen gelesen werden. Und die programmierbare ECC-Engine ist eingerichtet, um Koeffizienten für ein Fehlerlokalisiererpolynom basierend auf einer parallelen Verarbeitung der Syndrome zu berechnen.
  • In einem siebten Gesichtspunkt ist die programmierbare ECC-Engine zur Unterstützung eines der ersten bis sechsten Gesichtspunkte so eingerichtet, dass sie asynchron arbeitet, um die Koeffizienten zu berechnen.
  • In einem achten Gesichtspunkt weist zur Unterstützung eines der ersten bis siebten Gesichtspunkte jede Speicherzelle mit reversibler Resistivität ein magnetoresistives Direktzugriffsspeicherelement (MRAM) auf.
  • In einem neunten Gesichtspunkt weist zur Unterstützung eines der ersten bis achten Gesichtspunkte jede Speicherzelle mit reversibler Resistivität ein zweipoliges Selektorelement in Reihe mit einem Speicherelement mit reversibler Resistivität auf.
  • In einem zehnten Gesichtspunkt weist das zweipolige Selektorelement, zur Unterstützung des neunten Gesichtspunkts, einen ovonischen Schwellenwertschalter (OTS) auf.
  • In einem elften Gesichtspunkt weist das Speicherarray zur Unterstützung eines beliebigen des ersten bis neunten Gesichtspunkts eine Vielzahl von ersten Leiterbahnen und eine Vielzahl von zweiten Leiterbahnen auf. Jede der Vielzahl von ist zwischen einer entsprechenden ersten Leiterbahn und einer der zweiten Leiterbahnen verbunden ist.
  • Eine Ausführungsform schließt ein Verfahren zum Lesen von Speicherzellen ein. Das Verfahren weist das Lesen eines Codeworts aus einer Gruppe von magnetoresistiven Direktzugriffsspeicherzellen (MRAM-Zellen) in einem Kreuzpunktspeicherarray auf einem Halbleiterchip unter Verwendung eines Strom-Kraft-referenzierten Lesens auf. Das Verfahren weist das Eingeben des Codeworts, das mit dem Strom-Kraft-referenzierten Lesen gelesen wird, in eine Fehlerkorrekturcode-Engine (ECC-Engine), die sich auf dem Halbleiterchip befindet, auf. Das Verfahren weist das Bereitstellen von decodierten Daten von der ECC-Engine an einen Host, der darauf reagiert, dass die ECC-Engine eine erfolgreiche Decodierung des Codewort-Lesens unter Verwendung des Strom-Kraft-referenzierten Lesens meldet, auf. Das Verfahren weist das Lesen des Codeworts aus der Gruppe von MRAM-Zellen in dem Kreuzpunktspeicherarray unter Verwendung eines Strom-Kraft-selbstreferenzierten Lesens als Reaktion darauf, dass die ECC-Engine einen Fehler beim Decodieren des unter Verwendung des von dem Strom-Kraft-referenzierten Lesens gelesenen Codeworts meldet, auf. Das Verfahren weist das Eingeben des Codeworts in die ECC-Engine, das mit dem Strom-Kraft-selbstreferenzierten Lesens gelesen wurde, auf. Das Verfahren weist das Bereitstellen von decodierten Daten von der ECC-Engine an den Host, der darauf reagiert, dass die ECC-Engine eine erfolgreiche Decodierung des Codewort-Lesens unter Verwendung des Strom-Kraft-selbstreferenzierten Lesens meldet, auf.
  • Eine Ausführungsform schließt ein Speichersystem ein, das ein Kreuzpunktspeicherarray, eine programmierbare Fehlerkorrekturcode-Engine (ECC-Engine) und eine Steuerschaltung aufweist. Das Kreuzpunktspeicherarray weist eine Vielzahl von ersten Leiterbahnen, eine Vielzahl von zweiten Leiterbahnen und eine Vielzahl von nichtflüchtigen Speicherzellen auf. Jede einzelne Speicherzelle ist zwischen einer der ersten Leiterbahnen und einer der zweiten Leiterbahnen angeschlossen. Jede Speicherzelle weist ein magnetoresistives Direktzugriffsspeicherelement (MRAM-Element) und einen Schwellenschaltselektor, der mit dem MRAM-Element in Reihe geschaltet ist, auf. Die programmierbare ECC-Engine ist eingerichtet, um ein Codewort zu decodieren, während sie bis zu einer wählbaren Anzahl von Bits im Codewort korrigiert. Die Steuerschaltung liest ein Codewort aus einer Gruppe der Speicherzellen unter Verwendung eines referenzierten Lesens. Die Steuerschaltung weist die programmierbare ECC-Engine an, das Codewort zu decodieren, das mit dem referenzierten Lesen gelesen wird, während bis zu „n“ Bits im Codewort korrigiert werden. Die Steuerschaltung gibt decodierte Daten als Reaktion auf das Decodieren des aus der Gruppe gelesenen Codeworts unter Verwendung des referenzierten Lesens zurück. Die Steuerschaltung liest das Codewort aus der Gruppe der Speicherzellen unter Verwendung eines selbstreferenzierten Lesens als Reaktion darauf, dass die ECC-Engine das aus der Gruppe unter Verwendung des referenzierten Lesens gelesene Codewort nicht decodieren kann. Die Steuerschaltung weist die programmierbare ECC-Engine an, das Codewort zu decodieren, das mit dem selbstreferenzierten Lesevorgang gelesen wird, während bis zu „m“ Bits in dem Codewort korrigiert werden, wobei „m“ dann größer ist „n“. Die Steuerschaltung gibt decodierte Daten als Reaktion auf das Decodieren des aus der Gruppe gelesenen Codeworts unter Verwendung des selbstreferenzierten Lesens zurück.
  • Für die Zwecke dieses Dokuments kann eine Bezugnahme in der Beschreibung auf „eine Ausführungsform“, „einige Ausführungsformen“ oder „eine andere Ausführungsform“ verwendet werden, um verschiedene Ausführungsformen oder dieselbe Ausführungsform zu beschreiben.
  • Für die Zwecke dieses Dokuments kann eine Verbindung eine direkte Verbindung oder eine indirekte Verbindung sein (z. B. über einen oder mehrere andere Teile). In einigen Fällen, wenn ein Element als mit einem anderen Element verbunden oder gekoppelt bezeichnet wird, kann das Element direkt mit dem anderen Element verbunden sein oder indirekt über Zwischenelemente mit dem anderen Element verbunden sein. Wenn ein Element als direkt mit einem anderen Element verbunden bezeichnet wird, gibt es keine Zwischenelemente zwischen dem Element und dem anderen Element. Zwei Vorrichtungen sind „in Kommunikation“, wenn sie direkt oder indirekt miteinander verbunden sind, sodass sie elektronische Signale untereinander übertragen können.
  • Für die Zwecke dieses Dokumentes kann der Begriff „basierend auf“ als „mindestens teilweise basierend auf“ gelesen werden.
  • Für die Zwecke dieses Dokuments impliziert ohne zusätzlichen Kontext die Verwendung von numerischen Ausdrücken, wie ein „erstes“ Objekt, ein „zweites“ Objekt und ein „drittes“ Objekt, möglicherweise keine Sortierung von Objekten, sondern kann stattdessen zu Identifikationszwecken verwendet werden, um verschiedene Objekte zu identifizieren.
  • Die vorhergehende detaillierte Beschreibung wurde zu Zwecken der Veranschaulichung und Beschreibung vorgelegt. Sie soll nicht erschöpfend sein oder die genaue offenbarte Form beschränken. Viele Modifikationen und Variationen sind unter Berücksichtigung der vorstehend genannten Lehre möglich. Die beschriebenen Ausführungsformen wurden gewählt, um die Prinzipien der vorgeschlagenen Technologie und ihre praktische Anwendung am besten zu erläutern und damit anderen Fachleuten die Möglichkeit zu geben, sie in verschiedenen Ausführungsformen und mit verschiedenen Modifikationen, die für die jeweilige vorgesehene Verwendung geeignet sind, am besten zu nutzen. Es ist beabsichtigt, dass der Umfang durch die hier beigefügten Ansprüche definiert wird.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 10545692 [0018]
    • US 10885991 [0018]

Claims (20)

  1. Einrichtung, aufweisend: ein Speicherarray, das eine Vielzahl von Speicherzellen mit reversibler Resistivität aufweist; und eine Steuerschaltung in Kommunikation mit dem Speicherarray, wobei die Steuerschaltung eingerichtet ist, um: eine Gruppe ausgewählter Speicherzellen unter Verwendung eines referenzierten Lesens zu lesen; Daten, die aus der Gruppe gelesen werden, unter Verwendung des referenzierten Lesens mit einem ersten Fehlerkorrekturcode-Modus (ECC-Modus) zu decodieren, der in der Lage ist, bis zu einer ersten Anzahl von Bits in der Gruppe zu korrigieren; die Gruppe ausgewählter Speicherzellen unter Verwendung eines selbstreferenzierten Lesens als Reaktion auf einen Fehler zu lesen, um die Daten in der Gruppe unter Verwendung des ersten ECC-Modus zu decodieren; und Daten, die aus der Gruppe gelesen werden, unter Verwendung des selbstreferenzierten Lesens mit einem zweiten ECC-Modus zu decodieren, der in der Lage ist, bis zu einer zweiten Anzahl von Bits in der Gruppe zu korrigieren, wobei die zweite Anzahl von Bits größer ist als die erste Anzahl von Bits.
  2. Einrichtung gemäß Anspruch 1, wobei: der erste ECC-Modus eine erste Fehler-Fehlkorrekturrate für eine gegebene Rohbitfehlerrate aufweist; und der zweite ECC-Modus eine zweite Fehler-Fehlkorrekturrate aufweist, die für die gegebene Rohbitfehlerrate größer ist als die erste Fehler-Fehlkorrekturrate, wobei Daten, die unter Verwendung des selbstreferenzierten Lesens gelesen werden, eine niedrigere Rohbitfehlerrate aufweisen als Daten, die unter Verwendung des referenzierten Lesens gelesen werden, wobei eine Verringerung der Rohbitfehlerrate die Fehler-Fehlkorrekturrate im zweiten ECC-Modus verringert.
  3. Einrichtung gemäß Anspruch 1, wobei die Steuerschaltung eine programmierbare ECC-Engine aufweist, wobei die programmierbare ECC-Engine eingerichtet ist, um: Koeffizienten für ein Fehlerlokalisiererpolynom mit einem Grad von n zu berechnen, wenn der erste ECC-Modus ausgeführt wird, wobei n eine ganze Zahl ist; und Koeffizienten für ein Fehlerlokalisiererpolynom mit einem Grad von m zu berechnen, wenn der zweite ECC-Modus durchführt wird, wobei m eine ganze Zahl ist, die größer ist als n.
  4. Vorrichtung gemäß Anspruch 3, wobei sich die programmierbare ECC-Engine auf demselben Halbleiterchip wie das Speicherarray befindet.
  5. Einrichtung gemäß Anspruch 3, wobei: die programmierbare ECC-Engine sich auf einem Steuerhalbleiterchip befindet; und das Speicherarray sich auf einem Speicherstrukturchip befindet, der mit dem Steuerhalbleiterchip verbunden ist.
  6. Einrichtung gemäß Anspruch 1, wobei die Steuerschaltung eine programmierbare ECC-Engine aufweist, die eingerichtet ist, um: Syndrome für ein Codewort zu erzeugen, das aus Daten gebildet wird, die aus den Speicherzellen gelesen werden; und Koeffizienten für ein Fehlerlokalisiererpolynom basierend auf einer parallelen Verarbeitung der Syndrome zu berechnen.
  7. Einrichtung gemäß Anspruch 6, wobei die programmierbare ECC-Engine eingerichtet ist, um asynchron zu arbeiten, um die Koeffizienten zu berechnen.
  8. Einrichtung gemäß Anspruch 1, wobei jede Speicherzelle mit reversibler Resistivität ein magnetoresistives Direktzugriffsspeicherelement (MRAM) aufweist.
  9. Einrichtung gemäß Anspruch 1, wobei jede Speicherzelle mit reversibler Resistivität ein zweipoliges Selektorelement in Reihe mit einem Speicherelement mit reversibler Resistivität aufweist.
  10. Einrichtung gemäß Anspruch 9, wobei das zweipolige Selektorelement einen ovonischen Schwellenwertschalter (OTS) aufweist.
  11. Einrichtung gemäß Anspruch 1, wobei das Speicherarray Folgendes aufweist: eine Vielzahl von ersten leitenden Leitungen; und eine Vielzahl von zweiten leitenden Leitungen, wobei jede der Vielzahl von Speicherzellen zwischen einer der ersten leitenden Leitungen und einer der zweiten leitenden Leitungen angeschlossen ist.
  12. Einrichtung gemäß Anspruch 1, wobei: das referenzierte Lesen ein Strom-Kraft-Lesen aufweist; und das selbstreferenzierte Lesen ein Strom-Kraft-selbstreferenziertes Lesen aufweist.
  13. Verfahren zum Steuern eines Speichersystems, das Verfahren aufweisend: Lesen eines Codeworts aus einer Gruppe von magnetoresistiven Direktzugriffsspeicherzellen (MRAM-Zellen) in einem Kreuzpunktspeicherarray auf einem Halbleiterchip unter Verwendung eines Strom-Kraft-referenzierten Lesens; Eingeben des Codeworts, das mit dem Strom-Kraft-referenzierten Lesen gelesen wird, in eine Fehlerkorrekturcode-Engine (ECC-Engine), die sich auf dem Halbleiterchip befindet; Bereitstellen von decodierten Daten von der ECC-Engine an einen Host, der darauf reagiert, dass die ECC-Engine eine erfolgreiche Decodierung des Codeworts, das unter Verwendung des Strom-Kraft-referenzierten Lesens gelesen wurde, meldet; Lesen des Codeworts aus der Gruppe von MRAM-Zellen in dem Kreuzpunktspeicherarray unter Verwendung eines Strom-Kraft-selbstreferenzierten Lesens als Reaktion darauf, dass die ECC-Engine einen Fehler beim Decodieren des unter Verwendung des von dem Strom-Kraft-referenzierten Lesens gelesenen Codeworts meldet; Eingeben des Codeworts, das mit dem Strom-Kraft-selbstreferenzierten Lesens gelesen wurde, in die ECC-Engine; und Bereitstellen von decodierten Daten von der ECC-Engine an den Host, der darauf reagiert, dass die ECC-Engine eine erfolgreiche Decodierung des Codeworts, das unter Verwendung des Strom-Kraft-referenzierten Lesens gelesen wurde, meldet.
  14. Verfahren gemäß Anspruch 13, weiterhin aufweisend: Auswählen eines ersten Modus für die ECC-Engine, der in der Lage ist, bis zu einer ersten Anzahl von Bits in dem Codewort zu korrigieren; Ausführen der ECC-Engine im ersten Modus auf dem Codewort, das unter Verwendung des Strom-Kraft-referenzierten Lesens gelesen wurde; Auswählen eines zweiten Modus für die ECC-Engine, der in der Lage ist, bis zu einer zweiten Anzahl von Bits in dem Codewort zu korrigieren, wobei die zweite Anzahl größer ist als die erste Anzahl; und Ausführen der ECC-Engine im zweiten Modus auf dem unter Verwendung des selbstreferenzierten Lesens gelesenen Codewort.
  15. Speichersystem, aufweisend: ein Kreuzpunktspeicherarray, das eine Vielzahl von ersten leitenden Leitungen, eine Vielzahl von zweiten leitenden Leitungen und eine Vielzahl von nichtflüchtigen Speicherzellen aufweist, wobei jede jeweilige Speicherzelle zwischen eine der ersten leitenden Leitungen und eine der zweiten leitenden Leitungen geschaltet ist, wobei jede Speicherzelle ein magnetoresistives Direktzugriffsspeicherelement (MRAM-Element) und einen Schwellenschaltselektor, der in Reihe mit dem MRAM-Element geschaltet ist, aufweist; eine programmierbare Fehlerkorrekturcode-Engine (ECC), die eingerichtet ist, um ein Codewort zu decodieren, während sie bis zu einer wählbaren Anzahl von Bits im Codewort korrigiert; und eine Steuerschaltung, die: ein Codeworts aus einer Gruppe der Speicherzellen unter Verwendung eines referenzierten Lesers liest; die programmierbare ECC-Engine anweist, das Codewort zu decodieren, das mit dem referenzierten Lesen gelesen wird, während bis zu „n“ Bits im Codewort korrigiert werden; decodierte Daten als Reaktion auf das Decodieren des aus der Gruppe unter Verwendung des referenzierten Lesens gelesenen Codeworts zurückgibt; das Codewort aus der Gruppe der Speicherzellen unter Verwendung eines selbstreferenzierten Lesens als Reaktion darauf liest, dass die ECC-Engine das aus der Gruppe unter Verwendung des referenzierten Lesens gelesene Codewort nicht decodieren kann; die programmierbare ECC-Engine anweist, das Codewort zu decodieren, das mit dem selbstreferenzierten Lesen gelesen wird, während bis zu „m“ Bits in dem Codewort korrigiert werden, wobei m größer ist als n; und decodierte Daten als Reaktion auf das Decodieren des aus der Gruppe unter Verwendung des selbstreferenzierten Lesens gelesenen Codeworts zurückgibt.
  16. Speichersystem gemäß Anspruch 15, wobei: die programmierbare ECC-Engine eine erste Fehler-Fehlkorrekturrate beim Decodieren des Codeworts aufweist, während sie bis zu „n“ Bits in dem Codewort für eine gegebene Rohbitfehlerrate in dem Codewort korrigiert; und die programmierbare ECC-Engine eine zweite Fehler-Fehlkorrekturrate beim Decodieren des Codeworts aufweist, während sie bis zu „m“ Bits in dem Codewort für die gegebene Rohbitfehlerrate im Codewort korrigiert, wobei die zweite Fehler-Fehlkorrekturrate größer ist als die erste Fehler-Fehlkorrekturrate, wobei Daten, die unter Verwendung des selbstreferenzierten Lesens gelesen wurden, eine höheren Bitfehlerrate aufweisen als Daten, die unter Verwendung des selbstreferenzierten Lesens gelesen wurden, wobei die Fehler-Fehlkorrekturrate beim Korrigieren von bis zu „m“ Bits in dem Codewort als Reaktion auf eine niedrigere Rohbitfehlerrate im Codewort abfällt.
  17. Speichersystem gemäß Anspruch 15, wobei die programmierbare ECC-Engine eingerichtet ist, um: Syndrome für ein Codewort zu erzeugen, das aus der Gruppe von Speicherzellen gelesen wird; und Koeffizienten für ein Fehlerlokalisiererpolynom basierend auf einer parallelen Verarbeitung der Syndrome zu berechnen.
  18. Speichersystem gemäß Anspruch 17, wobei die programmierbare ECC-Engine eingerichtet ist, um asynchron zu arbeiten, um die Koeffizienten zu berechnen.
  19. Speichersystem gemäß Anspruch 15, wobei sich die programmierbare ECC-Engine auf demselben Halbleiterchip wie das Kreuzpunktspeicherarray befindet.
  20. Speichersystem gemäß Anspruch 15, wobei: die programmierbare ECC-Engine sich auf einem Steuerhalbleiterchip befindet; und das Speicherarray sich auf einem Speicherstruktur-Halbleiterchip befindet, der mit dem Steuerhalbleiterchip gebondet ist.
DE102022113173.4A 2021-09-24 2022-05-24 Programmierbare ecc für mram-gemischtes-leseschema Pending DE102022113173A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US17/485,129 US11978491B2 (en) 2021-09-24 2021-09-24 Mixed current-forced read scheme for MRAM array with selector
US17/485,129 2021-09-24
US17/552,143 US11972822B2 (en) 2021-09-24 2021-12-15 Programmable ECC for MRAM mixed-read scheme
US17/552,143 2021-12-15

Publications (1)

Publication Number Publication Date
DE102022113173A1 true DE102022113173A1 (de) 2023-03-30

Family

ID=85477113

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022113173.4A Pending DE102022113173A1 (de) 2021-09-24 2022-05-24 Programmierbare ecc für mram-gemischtes-leseschema

Country Status (4)

Country Link
US (1) US11972822B2 (de)
KR (1) KR20230043666A (de)
CN (1) CN115862721A (de)
DE (1) DE102022113173A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11837306B2 (en) * 2022-04-23 2023-12-05 Dell Products L.P. Storage subsystem read voltage determination system
CN117112287A (zh) * 2023-09-07 2023-11-24 上海合芯数字科技有限公司 备用校验纠错方法、装置、服务器及存储介质
CN117636967B (zh) * 2024-01-25 2024-04-30 合肥兆芯电子有限公司 存储器控制方法、存储器存储装置及存储器控制电路单元

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10545692B2 (en) 2017-04-04 2020-01-28 Sandisk Technologies Llc Memory maintenance operations during refresh window
US10885991B2 (en) 2017-04-04 2021-01-05 Sandisk Technologies Llc Data rewrite during refresh window

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4598711B2 (ja) * 2006-03-30 2010-12-15 富士通株式会社 誤り訂正装置
US8495467B1 (en) 2009-06-30 2013-07-23 Micron Technology, Inc. Switchable on-die memory error correcting engine
US8938656B2 (en) 2012-09-14 2015-01-20 Sandisk Technologies Inc. Data storage device with intermediate ECC stage
US9025364B2 (en) 2013-03-14 2015-05-05 Micron Technology, Inc. Selective self-reference read
US10146601B2 (en) * 2013-06-12 2018-12-04 Everspin Technologies, Inc. Methods and devices for healing reset errors in a magnetic memory
KR102149674B1 (ko) * 2014-10-13 2020-09-01 삼성전자주식회사 에러 정정 디코더 및 에러 정정 디코더의 동작 방법
US10530393B2 (en) 2016-12-01 2020-01-07 Western Digital Technologies, Inc. Configurable ECC decoder
US10250281B2 (en) 2016-12-30 2019-04-02 Sandisk Technologies Llc ECC decoder having adjustable parameters
JP2018156556A (ja) * 2017-03-21 2018-10-04 東芝メモリ株式会社 計算機システム及びメモリデバイス
US10256402B1 (en) 2017-09-25 2019-04-09 Sandisk Technologies Llc ReRAM read state verification based on cell turn-on characteristics
KR102511903B1 (ko) 2018-02-26 2023-03-21 에스케이하이닉스 주식회사 고정된 에러정정능력의 에러정정코드 엔진을 이용하여 재구성할 수 있는 에러정정동작을 수행하는 메모리 시스템
US10553647B2 (en) * 2018-06-28 2020-02-04 Sandisk Technologies Llc Methods and apparatus for three-dimensional non-volatile memory
KR102630957B1 (ko) 2018-12-19 2024-01-31 에스케이하이닉스 주식회사 메모리 소자 및 이를 포함하는 전자장치
US10734073B1 (en) * 2019-02-12 2020-08-04 Sandisk Technologies Llc Three terminal isolation elements and methods
US11031059B2 (en) 2019-02-21 2021-06-08 Sandisk Technologies Llc Magnetic random-access memory with selector voltage compensation
KR20210039047A (ko) 2019-10-01 2021-04-09 삼성전자주식회사 저항성 메모리 장치 및 저항성 메모리 장치의 동작 방법
US11367500B2 (en) 2019-12-20 2022-06-21 Taiwan Semiconductor Manufacturing Company, Ltd. Method for LUT-free memory repair

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10545692B2 (en) 2017-04-04 2020-01-28 Sandisk Technologies Llc Memory maintenance operations during refresh window
US10885991B2 (en) 2017-04-04 2021-01-05 Sandisk Technologies Llc Data rewrite during refresh window

Also Published As

Publication number Publication date
CN115862721A (zh) 2023-03-28
KR20230043666A (ko) 2023-03-31
TW202314501A (zh) 2023-04-01
US11972822B2 (en) 2024-04-30
US20230101414A1 (en) 2023-03-30

Similar Documents

Publication Publication Date Title
DE102022113173A1 (de) Programmierbare ecc für mram-gemischtes-leseschema
DE102021114912A1 (de) Wiederherstellung der abschaltung in einem kreuzpunktspeicher mit schwellwertwahlschaltern
US11972787B2 (en) Cross-point array refresh scheme
TWI778674B (zh) 在讀取期間之mram中的信號保留
US11682442B2 (en) Forced current access with voltage clamping in cross-point array
TWI773393B (zh) 在讀取期間之mram中的信號放大
DE102021116030A1 (de) Verbesserter mram-kreuzpunktspeicher mit vertikaler ausrichtung von umgekehrten mram-elementen
DE102022112992A1 (de) Gemischtes strom-kraft-leseschema für reram-array mit selektor
DE102022113171A1 (de) Verbesserung der lesesicherheit bei crosspoint-speicherarrays durch ihold
TWI845949B (zh) 記憶體設備、記憶體系統及讀取記憶體單元之方法
US20240184478A1 (en) Fast self-referenced read of programmable resistance memory cells
CN118266027A (en) Cross-point array refresh scheme

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: MURGITROYD GERMANY PATENTANWALTSGESELLSCHAFT M, DE