DE112007002437B4 - Leistungs-oder stromverbrauchsoptimierte Code-Datenspeicherung für nichtflüchtige Speicher - Google Patents

Leistungs-oder stromverbrauchsoptimierte Code-Datenspeicherung für nichtflüchtige Speicher Download PDF

Info

Publication number
DE112007002437B4
DE112007002437B4 DE112007002437.2T DE112007002437T DE112007002437B4 DE 112007002437 B4 DE112007002437 B4 DE 112007002437B4 DE 112007002437 T DE112007002437 T DE 112007002437T DE 112007002437 B4 DE112007002437 B4 DE 112007002437B4
Authority
DE
Germany
Prior art keywords
threshold voltage
voltage state
memory
dominant
programming
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112007002437.2T
Other languages
English (en)
Other versions
DE112007002437T5 (de
Inventor
Lance W. Dover
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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112007002437T5 publication Critical patent/DE112007002437T5/de
Application granted granted Critical
Publication of DE112007002437B4 publication Critical patent/DE112007002437B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5647Multilevel memory with bit inversion arrangement

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Drahtloses Gerät (10), umfassend: einen Prozessor (14); und einen nichtflüchtigen Speicher (26) mit einem Speicher-Bit-Swap-Kodierer (20) zum Charakterisieren von Kode, der von dem Prozessor empfangen wird, um einen dominanten Schwellenwertspannungs-Zustand für den in einem Bereich des nichtflüchtigen Speichers zu speichernden Kode zu finden, wobei der Speicher-Bit-Swap-Kodierer einen Austausch-Schwellenwertspannungs-Zustand durch den dominanten Schwellenwertspannungs-Zustand vor der Speicherung ersetzt, um Programmierzeit zu reduzieren.

Description

  • Kontinuierliche Innovationen bei Consumer-Anwendungen haben den Bedarf an Speicherung mit höheren Dichten verstärkt. Eigenschaften, die Flash-Speichern innewohnen, erfüllen die Datenaufbewahrungsbedürfnisse von vielen Consumer-Anwendungen. Flash-Speicher behält seine Daten, selbst wenn der Strom ausgeschaltet wird, und die Verwendung von MLC(MultiLevel Cell)-Technologie erzielt die höchsten Dichten, die Consumer (Verbraucher) wünschen. MLC-Technologie bietet niedrigere Speicherkosten, indem die Speicherung von mehreren Bits von Daten pro Speicherzelle ermöglicht wird. Durch Hinzufügen von mehreren Informationsbits auf einem einzigen Speichertransistor ist die Siliziumfläche verringert worden und ist der Bedarf an höherer Dichte erfüllt worden. Die MLC-Technologie weist jedoch Kosten auf, die mit dem Programmieren des Speichers verbunden sind, und es ist daher eine Lösung erwünscht, die dabei hilft, diese Kosten in den Griff zu bekommen.
  • Die US 2005/0078513 A1 offenbart nichtflüchtige MLC-Speicher mit einem Speicher-Bit-Swap-Kodierer zum Charakterisieren von empfangenem Code, um einen dominanten Zustand des zu speichernden Codes zu finden, wobei der Swap-Kodierer den Code durch einen Austauschcode vor der Speicherung ersetzt.
  • Die US 7 117 295 B2 offenbart Anordnungen und Verfahren zur Speicherung von Daten in Multi-Level-Speicherbausteinen, die entsprechende Kodierer zum Charakterisieren von Programmiercode umfassen, um dominante Zustände zu ermitteln, wobei die Daten in umkodierter Weise gespeichert werden, um geringere Programmier- und Lesezeiten zu erreichen.
  • KURZBESCHREIBUNG DER ZEICHUNGEN
  • Die Erfindung ist sowohl hinsichtlich der Gestaltung als auch des Betriebsverfahrens gemeinsam mit Aufgaben, Merkmalen und Vorteilen derselben durch Bezugnahme auf die folgende ausführliche Beschreibung in Verbindung mit den beigefügten Zeichnungen am besten verständlich, in denen:
  • 1 ein Diagramm ist, das ein Gerät darstellt, das Schaltkreise und Algorithmen zur Bit-Swap-Kodierung zum Verbessern der Leistung des nichtflüchtigen Speichers gemäß der vorliegenden Erfindung enthält;
  • 2 ein Flussdiagramm ist, das ein Verfahren zum Charakterisieren eines Bereiches eines nichtflüchtigen Speichers und Bestimmen eines Bedarfs an der Verwendung der Bit-Swap-Kodierung und Verwendung des Bit-Swap-Algorithmus zum Verbessern der Systemleistung gemäß der vorliegenden Erfindung darstellt;
  • 3 ein Blockdiagramm zeigt, das ein Beispiel für die Bit-Swap-Kodierung darstellt, die Speicherbereiche Speicherprogrammier und -leseoperationen gemäß der vorliegenden Erfindung zuordnet.
  • Es versteht sich, dass der Einfachheit- und Klarheit der Darstellung halber Elemente, die in den Figuren dargestellt sind, nicht notwendigerweise maßstabsgerecht gezeichnet sind. Zum Beispiel können die Abmessungen von einigen der Elemente im Verhältnis zu anderen Elementen der Klarheit halber übertrieben dargestellt sein. Außerdem sind Bezugszahlen in den Figuren, sofern als geeignet angesehen, wiederholt worden, um auf korrespondierende oder analoge Elemente hinzuweisen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung und in den folgenden Ansprüchen können die Begriffe „gekoppelt” und „verbunden” sowie deren Abwandlungen verwendet werden. Es versteht sich, dass diese Begriffe nicht als Synonym füreinander dienen sollen. Statt dessen kann in speziellen Ausführungsformen „verbunden” verwendet werden, um anzuzeigen, dass zwei oder mehr Elemente in direktem körperlichen oder elektrischen Kontakt miteinander stehen, während „gekoppelt” ferner bedeuten kann, dass zwei oder mehr Elemente nicht in direktem Kontakt miteinander stehen, aber dennoch unverändert kooperieren oder miteinander Wechselwirken.
  • 1 stellt Einrichtungen der vorliegenden Erfindung dar, die zum Beispiel in einem Gerät 10 enthalten sein können. In der gezeigten Ausführungsform ist das Gerät 10 ein drahtloses Kommunikationsgerät, aber es sollte darauf hingewiesen werden, dass die vorliegende Erfindung nicht auf drahtlose Anwendungen beschränkt ist. In der drahtlosen Ausführungsform empfängt und sendet ein Transceiver 12 ein moduliertes Signal von einer oder mehreren Antenne(n). Der analoge Front-End-Transceiver kann ein eigenständiger analoger integrierter Hochfrequenz(HF)-Schaltkreis oder alternativ mit einem Prozessor 14 als ein integrierter Mischbetrieb-Schaltkreis eingebettet sein. Das empfangene modulierte Signal kann frequenzabwärtsgemischt, gefiltert, danach in ein digitales Basisband-Signal umgewandelt werden.
  • Der Prozessor 14 ist mit dem Tranceiver 12 verbunden, um Basisband- und Anwendungsverarbeitungsfunktionen bereitzustellen, die einen oder mehrere Prozessorkern(e) benutzen können. Prozessorkerne 16 und 18 verarbeiten allgemein Funktionen, die Instruktionen abrufen, die Kodierungen generieren, Operanden finden und geeignete Aktionen durchführen sowie danach Ergebnisse speichern. Die Verwendung von mehreren Kernen kann ermöglichen, dass ein Kern für die Handhabung von anwendungsspezifischen Funktionen, wie zum Beispiel Grafiken, Modemfunktionen etc., reserviert wird. Alternativ können die mehrfachen Kerne ermöglichen, dass Verarbeitungslasten auf die Kerne aufgeteilt werden.
  • Eine Speichersteuerung steuert eine Speicherschnittstelle 22, die ermöglicht, dass die Prozessorkerne und Cache-Speicher, der in dem Prozessor 14 eingebettet ist, Daten mit einem Systemspeicher 24 austauschen. Der Systemspeicher 24 kann eine Kombination von Speichern, wie zum Beispiel Platte, RAM (Random Access Memory), ROM (Read Only Memory) und einen nichtflüchtigen Speicher 26, enthalten, obwohl weder der Typ noch die Vielzahl von in dem Systemspeicher 24 enthaltenen Speicher Beschränkungen für die Erfindung darstellen.
  • In der drahtlosen Ausführungsform sind der Transceiver 12, der Prozessor 14 und der nichtflüchtige Speicher 26 vereint, um Lösungen für eine Vielzahl von Anwendungen bereitzustellen. Typische Anwendungen, die für nichtflüchtige Speicher gut geeignet sind, schließen Speicherkarten für digitale Videos und digitale Fotoapparate, USB-Flash-Laufwerke, MP3-Player, Fahrzeugdiagnose, GPS-Geräte, Animatronik, Videospielkarten und Spielzeuganwendungen ein. Zusätzliche Anwendungen schließen Speicherkarten für Drucker (Fonts), Mobilfunkgeräte, Telekommunikationsanwendungen, Sprachkommunikationssystem (Voice Mail), Set-Top-Boxen, Solid-State-Hard-Disc-Laufwerke, HDTV, Strichcodescanner und andere Typen von Hand-Speichergeräten ein. Wie aufgezeigt, können der Prozessor 14 und der nichtflüchtigen Speicher 26 in Systemen enthalten sein, die sich von drahtlosen Anwendungen unterscheiden. Beispielsweise können der Prozessor 14 und der nichtflüchtige Speicher 26 gemeinsam enthalten sein, wobei der beanspruchte Gegenstand in Anwendungen enthalten ist, die Desktop-Computer und Laptops einschließen.
  • Der nichtflüchtige Speicher 26 kann aus einer Vielzahl von Speichereinrichtungen ausgewählt sein, wie zum Beispiel einem ETOXTM-Flash-NOR-Speicher, NAND-Speicher, einem EEPROM (Electrically Erasable and Programmable Read Only Memory), einen FRAM (Ferroelectric Random Access Memory), einem PFRAM (Polymer Ferroelectric Random Access Memory), einen MRAM (Magnetic Random Access Memory), einen OUM (Ovonics Unified Memory), einem Mehrstufen-Molekular-Speicher, der Information in Form von Ladungspaketen an mehreren aktiven Orten um ein einzelnes Molekül speichert, oder irgendein anderer Einrichtungstyp sein, der Instruktionen und/oder Daten speichern und die Information halten kann, selbst wenn sich die Einrichtung in einem Stromsparmodus befindet. Dementsprechend ist der Schutzbereich der vorliegenden Erfindung nicht nur auf diese Beispiele für nichtflüchtige Speicher 26 beschränkt.
  • Der Prozessor 14 kann ferner einen Speicher-Bit-Swap-Kodierer 20 enthalten, oder alternativ kann der nichtflüchtige Speicher 26 den Speicher-Bit-Swap-Kodierer enthalten. Gemäß der vorliegenden Erfindung ordnet der Speicher-Bit-Swap-Kodierer 20 Speichergebiete oder -bereiche speziellen Funktionen zu, die auf diesen Gebieten oder Bereichen durchgeführt werden. 2 liefert ein Beispiel, das in dem nichtflüchtigen Speicher 26 durchgeführte Operationen darstellt, bei dem Speicher-Bit-Swapping die Systemleistung verbessern kann. Die Figur stellt das Programmieren und Lesen eines Speicherbereiches in dem nichtflüchtigen Speicher auf der Grundlage der verschiedenen steuerbaren Bit-Zustände dar.
  • Es versteht sich, dass eine gesteuerte Programmiertechnik eine präzise Ladungsmenge auf dem schwebenden Gate einer Zelle eines nichtflüchtigen Speichers platziert. Die Ladungsspeicherfähigkeit der Flash-Speicherzelle ermöglicht die Speicherung von mehreren Bits in einer einzigen Zelle. Durch genaues Platzieren von Ladung auf dem schwebenden Gate in einem von vier Ladungszuständen oder -bereichen kann die Speicherzelle zwei Daten-Bits speichern. Durch noch präzisere Ladungsplatzierungssteuerung sind aber höhere Bit-pro-Zelle-Dichten möglich. Es wird herausgestellt, dass zum Darstellen der Erfindung und der Einfachheit halber die Tabelle nur zwei gespeicherte Daten-Bits pro Zelle darstellt. Andere Ausführungsformen können aber zusätzliche Bits pro Zelle speichern und somit ist die vorliegende Erfindung nicht auf Zelldichten von nur zwei Bits pro Zelle beschränkt.
  • Multi-Level Cell(MLC)-Technologie ermöglicht die Speicherung von mehreren Bits pro Speicherzelle durch Laden des schwebenden Gates eines Transistors auf unterschiedliche Pegel, die durch eindeutige Flash-Zellenschwellenwertspannungsbereiche definiert sind. Die auf dem schwebenden Gate gespeicherte Ladung erzeugt ein Spannungspotenzial, das von einer höheren Einschaltschwellenwertspannung (Vt) überwunden werden muss, die an einem Steuergate in dem Speicherzellentransistor anliegt. Die gespeicherte Ladungsmenge auf dem schwebenden Gate modifiziert das Verhalten des Speicherzellentransistors, und diese gespeicherte Gate-Ladung kann in einer Speicherleseoperation als Zustände (levels) von gespeicherten Daten detektiert werden.
  • Die Beziehung zwischen den vier Schwellenwertspannungsbereichen beziehungsweise Vt-Pegeln, die in der Flash-Speicherzelle gespeichert sind, und den korrespondierenden logischen Zuständen können durch die Zwei-Bit-Kombinationen '11b, '10b, '01b und '00b eindeutig repräsentiert werden. Die vier Schwellenwertspannungsverteilungen gehen in gespeicherte Daten über, die eine Speicherleseoperation als '11b, zum Beispiel einen gelöschten Zustand, '10b, zum Beispiel einen Teilzellenprogrammierzustand, '01b, zum Beispiel einen Teilzellenprogrammierzustand und '00b, zum Beispiel einen Vollzellenprogrammierzustand interpretieren kann. Somit kann das Vorhandensein von Gateladung als Zustände von gespeicherten Daten oder diskrete Zustände '11b, '10b, '01b und '00b interpretiert werden.
  • Die Inhalte des Flash-Speichers können an einer Blockgrenze gelöscht werden, wobei mit der Löschoperation Daten von dem Flash-Speicher gelöscht werden. Nach Löschen des Speicherblocks bis zum gelöschten Zustand '11b können die adressierten Speicherzellen dann auf die '10b-, '01b- oder die '00b- programmierten Zustände programmiert werden. Das Speichern von zwei Bits pro Zelle erfordert vier Zustände, die durch Lesereferenzzellen definiert sind. Wenn Daten in die Speichereinrichtung eingegeben werden, werden sie unabhängig von dem Vorhandensein oder Fehlen von Strom bleiben.
  • Es versteht sich, dass die Programmierzeit dieser vier Zustände nicht dieselbe ist. Zum Beispiel entspricht einer der Vt-Zustände, der als '11b bezeichnet ist, dem „gelöschten” Zustand und weist die geringste Programmierzeit der vier Zustände auf. Dieser gelöschte '11b-Zustand ist ein „Leer”(do-nothing)-Zustand und zum Speichern dieses Bit-Paares ist keine Programmiertätigkeit erforderlich, um die Vt der Zelle zu ändern. Somit repräsentiert dieser gelöschte Zustand die minimale Zeit zum Programmieren im Vergleich zu irgendeinem der anderen Bit-Paare. Die Programmierung auf die '10b-, '01b- und '00b-Zustände ist mit dem Laden des schwebenden Gates von Transistoren von Speicherzellen auf unterschiedliche Pegel beziehungsweise Zustände verbunden, was sicherlich mehr Programmierzeit als der '11b-Zustand benötigt.
  • 2 zeigt ein Flussdiagramm, das sowohl einen Programmieralgorithmus als auch einen Lesealgorithmus beschreibt, die gemäß der vorliegenden Erfindung für den nichtflüchtigen Speicher 26, der in 1 dargestellt ist, verwendet werden. Typischerweise sind Code und Daten, die in definierten Bereichen eines nichtflüchtigen Speichers behalten werden, nicht auf jede Bit-Paar-Kombination gleichmäßig verteilt. Mit anderen Worten spezielle Bereiche in dem nichtflüchtigen Speicher speichern allgemein keine gleichmäßige Zuordnung der '00b–'01b-, '10b- und '11b-Zustände, sondern weisen stattdessen einige programmierte Zustände eine höhere Neigung zu einem Bit-Paar gegenüber anderen Bit-Paaren auf. Diese Neigung, die ein Bit-Paar favorisiert, tritt zum Beispiel auf, wenn das Befehlssatzkodieren von Code in Prozessor 14 mehr Nullen als Einsen generiert. Es leuchtet ein, dass mehr '00b-Bit-Paar-Kombinationen zur Speicherung in den definierten Bereichen des nichtflüchtigen Speichers 26 im Vergleich zu den anderen Bit-Paar-Kombinationen zeitlich geplant würden.
  • Die vorliegende Erfindung nutzt diese ungleiche Stellung (skew), die die Generierung einer Bit-Paar-Kombination gegenüber anderen Bit-Paar-Kombinationen, die zur programmierten Speicherung zeitlich geplant sind, favorisiert, zum eigenen Vorteil aus. In einigen Ausführungsformen wird Verfahren 200 oder werden Teile davon im normalen Betrieb von dem nichtflüchtigen Speicher 26 durchgeführt, um Leistung zu verbessern und den Systemarbeitsstromverbrauch zu reduzieren. In anderen Ausführungsformen kann/können das Verfahren 200 oder Teile davon von dem nichtflüchtigen Speicher 26 in Kooperation mit dem Prozessor 14 durchgeführt werden. Man beachte, dass das Verfahren 200 nicht auf die spezielle Art von Vorrichtung, Softwareelement oder System, die/das das Verfahren durchführt, beschränkt ist.
  • Wie gezeigt, beginnt das Verfahren 200 bei Prozess 210, in dem der Speicherbereich oder die Speichergröße, die programmiert wird, in dem nichtflüchtigen Speicher 26 festgelegt wird. In einigen Ausführungsformen kann dieser Bereich als ein 1 K-Byte-Bereich definiert werden, obwohl diese 1 K-Bereichsgröße nicht einschränkend zu verstehen ist und andere Bereichsgrößen ins Auge gefasst sind. In dem Prozess 212 wird der definierte Speicherbereich so charakterisiert, dass die häufigste Bit-Paar-Kodierkombination bestimmt wird. In Prozess 214 wird eine Entscheidung getroffen, ob die häufigste Bit-Paar-Kodierkombination, die in dem Prozess 212 ermittelt worden ist, dem gelöschten '11b-Zustand entspricht. Wenn die häufigste Bit-Paar-Kodierkombination dem gelöschten '11b-Zustand entspricht, dann wird der Prozess 222 durchgeführt und erfolgt keine Bit-Paar-Kodierung oder kein Bit-Swapping. Wenn der Speicherbereich eine dominante Bit-Paar-Kombination enthält, die direkt auf eine Vt abbildet, die den gelöschten, zum Beispiel Leer-'11b-Zustand repräsentiert, dann erfolgt kein Swapping und geht der Algorithmus zum normalen Programmieren des Speicherbereichs über.
  • Wenn jedoch der Speicherbereich eine dominante Bit-Paar-Kodierkombination aufweist, die sich von dem gelöschten '11b-Zustand unterscheidet, dann geht der Algorithmus zum Durchführen von Prozess 216 über. Der Prozess 216 tauscht die häufigste Bit-Paar-Kombination mit der '11b-Kodierung. Anders ausgedrückt, wenn die dominante Bit-Paar-Kombination für den Speicherbereich auf eine Vt abbildet, die länger als die gelöschte „Leer”-Vt benötigt, dann tauscht (swap) der Speicher-Bit-Swap-Kodierer 20 die Bit-Kodierung für den Programmierbereich, sodass die dominanteste Bit-Paar-Kombination auf die „Leer”-Vt abbildet. Wenn ein Swap-Zustand ermittelt wird und der Prozess 216 erfolgt, speichert der nichtflüchtige Speicher 26 zwei Extra-Bits, die die Swap-Information für diesen Programmierbereich, wie in Prozess 218 angegeben, beschreiben. Der ausgewählte Speicherbereich wird dann unter Verwendung der Post-Swap-Kodierungen, siehe Prozess 222, programmiert.
  • 3 zeigt ein Blockdiagramm, das ein Beispiel für die Bit-Swap-Kodierung darstellt, die Speicherbereiche Speicherprogrammier- und -leseoperationen gemäß der vorliegenden Erfindung zuordnet. Die Vt-Zustände von '11b, '10b, '01b und '00b in Block 310 repräsentieren die Bit-Paar-Kombination für einen zum Programmieren ausgewählten nichtflüchtigen Speicherbereich. Die Vt-Zustände von '11b, '10b, '01b und '00b in Block 320 repräsentieren die Post-Swap-Kodierungen (beschrieben in Prozess 220 in dem in 2 gezeigten Algorithmus). In diesem Beispiel wird die dominante Bit-Paar-Kombination für diesen ausgewählten Speicherbereich als '10b festgelegt (entspricht Prozess 212 in dem in 2 gezeigten Algorithmus). Anders gesagt, repräsentiert der durch Bezugszahl 314 gekennzeichnete Vt-Zustand die am häufigsten auftretende Bit-Paar-Kombination für den ausgewählten Speicherbereich.
  • Da die gängigste Bit-Paar-Kombination nicht dem '11b-Bit-Paar (beschrieben in Prozess 214 in dem in 2 gezeigten Algorithmus) gleicht, wird der '10b-Zustand dem gelöschten '11b-Zustand zugeordnet oder damit ausgetauscht, um Programmierzeiten zu optimieren (beschrieben in Prozess 216 in dem in 2 gezeigten Algorithmus). Somit wird eine Pre-Swap-Bit-Paar-Kombination von '10b in Block 310 einer Post-Swap-Kodierung von '11b in Block 320 zugeordnet und werden zwei Bits zum Beschreiben der Swap-Information mit dem ausgewählten Programmierbereich gespeichert (beschrieben in Prozess 218 in dem in 2 gezeigten Algorithmus). Zum Abschließen der Paarzuordnung wird das '11b-Bit-Paar, das durch Bezugszahl 312 gekennzeichnet ist, in Block 310 mit dem '10b-Bit-Paar, das durch Bezugszahl 324 gekennzeichnet ist, in Block 320 ausgetauscht.
  • Der Einfachheit halber ist in 3 nur eine Speicher-Swap-Paarung dargestellt, aber weitere Überlagerungen könnten zeitlich eingeplant werden, um optimale Programmierzeiten zu erzielen und den Systemstromverbrauch zu reduzieren. Somit kann der Speicher-Bit-Swap-Kodierer 20 mehrere Überlagerungen (swapping) für jeden Speicherbereich zuordnen. 2 stellt ferner dar, dass, wenn in diesem Programmierbereich gespeicherte Information abgerufen wird, die beiden Extra-Bits, die dem gespeicherten Swap-Status für diesen Programmierbereich entsprechen, verwendet werden, um den in der Programmieroperation verwendeten Vt-Swap umzudrehen und die ursprünglichen Benutzerdaten zu reproduzieren (siehe Prozess 250, 252, 254 und 256).
  • Man beachte, dass in Flash-Technologien eine Einwegprogrammierung eine Programmierung von Bits von 1 bis 0 ermöglicht. Bits können zum Beispiel von einem O × F bis O × E bis O × C bis O × 8 bis O × O programmiert sein, bevor ein Löschen erfolgt. Mittels eines anderen Beispiels können Bits von O × F bis O × 7 bis O × 3 bis O × 1 bis O × O programmiert werden, bevor ein Löschen erfolgt. Diese einmalige Programmiereinschränkung ermöglicht Zustandsaustausch (Level Swapping). Jede Programmierung, die mehr als einmal erfolgt, schaltet die Fähigkeit zum Austauschen von Speicher-Paarungen aus, aber die Auferlegung einer Beschränkung, in einem Bereich nur einmal zu programmieren, ermöglicht Austausch (Swapping). In der Praxis erfordert der Schutz von Daten mit Fehlerkorrektur diese Beschränkung auf eine einmalige Programmierung. Allgemein erfordert die Fehlerkorrektur, dass die fehlerkorrigierten Zellen nur geschrieben werden. Man beachte, dass, wenn die Daten ein zweites Mal geschrieben werden, die ECC-Paritätsbits von 0 bis 1 laufen können und dieser Übergang dieser Paritätsbitdaten nicht mit einer Flash-Programmoperation gespeichert werden kann.
  • Nunmehr sollte ersichtlich sein, dass der nichtflüchtige Speicher 26 ohne Hilfe durch den Prozessor 14 verwendet werden kann, um die Leistungs- und Stromverbrauchsprobleme durch Verwalten und Durchführen von Ziel-Bit-Paar-Kombinationsumschaltungen, die mit ausgewählten Programmierbereichen verbunden sind, zu lösen. Durch geeignetes Austauschen des existierenden Codes kann der nichtflüchtige Speicher 26 Leistungsunterschiede minimieren und eine Verbesserung hinsichtlich der Programmierleistung erzielen. Datenbits, die nicht zufälliger Natur sind, dass heißt Datenbits, die nicht gleichmäßig über alle Zustände in dem Programmierbereich verteilt sind, können von der Verwendung des Swapping-Algorithmus profitieren. Wenn jedoch kein Zustand häufiger als andere ist, dann wird Swapping nicht helfen. In der Praxis sollten zellulärer Code und andere Typen von Daten von dem Swapping-Algorithmus profitieren und können Verbesserungen im Bereich von zum Beispiel 7% bis 37% realisiert werden. Durch Optimieren des „Leer”-Zustands beim Programmieren kann der erforderliche Programmierstrom reduziert werden, weil eine geringere Anzahl an Zellen programmiert werden muss.

Claims (20)

  1. Drahtloses Gerät (10), umfassend: einen Prozessor (14); und einen nichtflüchtigen Speicher (26) mit einem Speicher-Bit-Swap-Kodierer (20) zum Charakterisieren von Kode, der von dem Prozessor empfangen wird, um einen dominanten Schwellenwertspannungs-Zustand für den in einem Bereich des nichtflüchtigen Speichers zu speichernden Kode zu finden, wobei der Speicher-Bit-Swap-Kodierer einen Austausch-Schwellenwertspannungs-Zustand durch den dominanten Schwellenwertspannungs-Zustand vor der Speicherung ersetzt, um Programmierzeit zu reduzieren.
  2. Drahtloses Gerät (10) nach Anspruch 1, dadurch gekennzeichnet, dass der Swap-Kodierer (20) den Austausch-Schwellenwertspannungs-Zustand durch den dominanten Schwellenwertspannungs-Zustand vor der Speicherung ersetzt, um Programmierstrom zu reduzieren.
  3. Drahtloses Gerät (10) nach Anspruch 1, dadurch gekennzeichnet, dass der Bereich des nichtflüchtigen Speichers (26) ferner mindestens zwei zusätzliche Speicher-Bits zum Halten von Information über den Austausch-Schwellenwertspannungs-Zustand enthält.
  4. Drahtloses Gerät (10) nach Anspruch 3, dadurch gekennzeichnet, dass der Speicher-Bit-Swap-Kodierer (20) ferner jeden Schwellenwertspannungs-Zustand des charakterisierten Kodes zum Optimieren von Programmierzeiten beim Speichern des Kodes in dem Bereich des nichtflüchtigen Speichers (26) zuordnet.
  5. Drahtloses Gerät (10) nach Anspruch 4, dadurch gekennzeichnet, dass eine Programmieroperation den Kode in dem Bereich des nichtflüchtigen Speichers (26) unter Verwendung des Austausch-Schwellenwertspannungs-Zustands für den dominanten Schwellenwertspannungs-Zustand speichert und eine Leseoperation den Kode unter Verwendung der mindestens zwei zusätzlichen Speicher-Bits neu speichert.
  6. Drahtloses Gerät (10), umfassend: mehrere Antennen zum Empfangen eines Signals über den Äther; einen Transceiver (14) zum Empfangen eines modulierten Signals von den mehreren Antennen; einen mit dem Transceiver gekoppelten Prozessor (14); und einen Bit-Swap-Kodierer (20) zum Charakterisieren von Programmierkode, der von dem Prozessor ausgeführt wird, um einen dominanten Schwellenwertspannungs-Zustand für einen festgelegten Speicherbereich zu ermitteln, wobei der Bit-Swap-Kodierer einen Schwellenwertspannungs-Zustand mit einer Programmierzeit an die Stelle setzt, die geringer als eine Programmierzeit ist, die mit dem dominanten Schwellenwertspannungs-Zustand zum Programmieren des festgelegten Speicherbereiches verbunden ist.
  7. Drahtloses Gerät (10) nach Anspruch 6, dadurch gekennzeichnet, dass der Schwellenwertspannungs-Zustand mit einer Programmierzeit, die geringer als eine mit dem dominanten Schwellenwertspannungs-Zustand verbundene Programmierzeit ist, ein Lösch-Schwellenwertspannungs-Zustand ist.
  8. Drahtloses Gerät (10) nach Anspruch 6, dadurch gekennzeichnet, dass der dominante Schwellenwertspannungs-Zustand einer von vier Schwellenwertspannungs-Zuständen ist.
  9. Drahtloses Gerät (10) nach Anspruch 6, dadurch gekennzeichnet, dass der Schwellenwertspannungs-Zustand ein Lösch-Zustand mit einer Programmierzeit ist, die geringer als eine mit dem dominanten Schwellenwertspannungs-Zustand verbundene Programmierzeit ist.
  10. Drahtloses Gerät (10), umfassend einen nichtflüchtigen Speicher (26) mit einem Speicher-Bit-Swap-Kodierer (20) zum Charakterisieren von Kode vor Speicherung in einem Speicherbereich, um einen dominanten Schwellenwertspannungs-Zustand zu ermitteln und den dominanten Schwellenwertspannungs-Zustand mit einem Austausch-Schwellenwertspannungs-Zustand zu tauschen, der zum Reduzieren von Programmierzeit ausgewählt ist.
  11. Drahtloses Gerät (10) nach Anspruch 10, dadurch gekennzeichnet, dass der Austausch-Schwellenwertspannungs-Zustand ein Lösch-Schwellenwertspannungs-Zustand mit einer Programmierzeit ist, die geringer als eine mit dem dominanten Schwellenwertspannungs-Zustand verbundene Programmierzeit ist.
  12. Drahtloses Gerät (10) nach Anspruch 11, dadurch gekennzeichnet, dass der Speicherbereich des nichtflüchtigen Speichers (26) ferner mindestens zwei zusätzliche Speicher-Bits zum Halten von Zuordnungsinformation über den Austausch-Schwellenwertspannungs-Zustand und den dominanten Schwellenwertspannungs-Zustand enthält.
  13. Drahtloses Gerät (10) nach Anspruch 12, dadurch gekennzeichnet, dass die mindestens zwei zusätzlichen Speicher-Bits zum neuen Speichern des Kodes in einer Leseoperation des Speicherbereiches verwendet werden.
  14. Verfahren zur Verwendung eines nichtflüchtigen Speichers (26), umfassend: Charakterisieren von Schwellenwertspannung Vt-Kodierungen für eine mit einem Speicherbereich verbundene Datenstruktur; Auswählen eines dominanten Schwellenwertspannungs-Zustands für den Speicherbereich; Zuordnen eines Lösch-Schwellenwertspannungs-Zustands als Ersatz für den dominanten Schwellenwertspannungs-Zustand; und Programmieren der Datenstruktur in dem nichtflüchtigen Speicher (26) unter Verwendung des für den dominanten Schwellenwertspannungs-Zustand eingetauschten Lösch-Schwellenwertspannungs-Zustands, um die Programmierzeit zu reduzieren.
  15. Verfahren nach Anspruch 14, ferner enthaltend Speichern von Information in dem Speicherbereich, die Zuordnen des Lösch-Schwellenwertspannungs-Zustands als Ersatz für den dominanten Schwellenwertspannungs-Zustand angibt.
  16. Verfahren nach Anspruch 15, ferner enthaltend Zuordnen jedes Schwellenwertspannungs-Zustands zum Minimieren von Programmierzeiten.
  17. Verfahren nach Anspruch 16, ferner enthaltend Lesen der in dem Speicherbereich gespeicherten Datenstruktur unter Verwendung der Information, die Zuordnen jedes Schwellenwertspannungs-Zustands angibt.
  18. Drahtloses Gerät (10), umfassend: einen Prozessor (14); und einen nichtflüchtigen Speicher (26) mit einem Speicher-Bit-Swap-Kodierer (20) zum Charakterisieren von Kode, der von dem Prozessor empfangen wird, um einen mit Programmieren des Kodes in einem Bereich des nichtflüchtigen Speichers verbundenen dominanten Schwellenwertspannungs-Zustand zu ermitteln, wobei der Speicher-Bit-Swap-Kodierer einen Austausch-Schwellenwertspannungs-Zustand mit einer Programmierzeit an die Stelle setzt, die geringer als eine mit dem dominanten Schwellenwertspannungs-Zustand verbundene Programmierzeit ist.
  19. Drahtloses Gerät (10) nach Anspruch 18, ferner enthaltend Speichern von Information in dem Speicherbereich, die eine Zuordnung des dominanten Schwellenwertspannungs-Zustands zum Austausch-Schwellenwertspannungs-Zustand beschreibt.
  20. Drahtloses Gerät (10) nach Anspruch 18, dadurch gekennzeichnet, dass der Speicher-Bit-Swap-Kodierer (20) den Austausch-Schwellenwertspannungs-Zustand mit dem dominanten Schwellenwertspannungs-Zustand zum Reduzieren von Programmierstrom ersetzt.
DE112007002437.2T 2006-10-17 2007-10-15 Leistungs-oder stromverbrauchsoptimierte Code-Datenspeicherung für nichtflüchtige Speicher Active DE112007002437B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/583,418 2006-10-17
US11/583,418 US7644225B2 (en) 2006-10-17 2006-10-17 Performance or power-optimized code/data storage for nonvolatile memories
PCT/US2007/022043 WO2008048580A1 (en) 2006-10-17 2007-10-15 Performance or power-optimized code/data storage for nonvolatile memories

Publications (2)

Publication Number Publication Date
DE112007002437T5 DE112007002437T5 (de) 2009-09-17
DE112007002437B4 true DE112007002437B4 (de) 2017-03-16

Family

ID=39303651

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112007002437.2T Active DE112007002437B4 (de) 2006-10-17 2007-10-15 Leistungs-oder stromverbrauchsoptimierte Code-Datenspeicherung für nichtflüchtige Speicher

Country Status (6)

Country Link
US (1) US7644225B2 (de)
JP (1) JP5095743B2 (de)
KR (1) KR101018973B1 (de)
DE (1) DE112007002437B4 (de)
TW (1) TWI354295B (de)
WO (1) WO2008048580A1 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716415B2 (en) 2006-08-01 2010-05-11 Sandisk Il Ltd. Method of avoiding errors in flash memory
US7644225B2 (en) 2006-10-17 2010-01-05 Intel Corporation Performance or power-optimized code/data storage for nonvolatile memories
US8143844B2 (en) * 2007-01-19 2012-03-27 Semiconductor Energy Laboratory Co., Ltd. Charging device
KR101518033B1 (ko) * 2008-11-18 2015-05-06 삼성전자주식회사 멀티-레벨 비휘발성 메모리 장치, 상기 장치를 포함하는 메모리 시스템 및 그 동작 방법
US8495285B2 (en) * 2011-08-31 2013-07-23 Micron Technology, Inc. Apparatuses and methods of operating for memory endurance
JP2013175258A (ja) * 2012-02-27 2013-09-05 Sony Corp 多値メモリ、多値メモリ書き込み方法及び多値メモリ読み出し方法
US10052097B2 (en) 2012-07-26 2018-08-21 Nyxoah SA Implant unit delivery tool
EP3705159B1 (de) 2012-07-26 2024-04-10 Nyxoah SA Einsatzwerkzeug zur selektiven bestromung einer implantateinheit
US9907967B2 (en) 2012-07-26 2018-03-06 Adi Mashiach Transcutaneous power conveyance device
US9568986B2 (en) * 2013-09-25 2017-02-14 International Business Machines Corporation System-wide power conservation using memory cache
CN104298475B (zh) * 2014-10-13 2015-11-11 合一网络技术(北京)有限公司 一种数据存储的优化方法
US9727261B2 (en) 2015-09-24 2017-08-08 Western Digital Technologies, Inc. Weighted programming patterns in solid-state data storage systems
JP6960877B2 (ja) 2018-03-22 2021-11-05 キオクシア株式会社 メモリシステム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050078513A1 (en) * 2003-09-25 2005-04-14 Matsushita Electric Industrial Co., Ltd. Semiconductor nonvolatile memory device
US7117295B2 (en) * 1999-06-22 2006-10-03 Renesas Technology Corp. Multilevel storage nonvolatile semiconductor memory device enabling high-speed data reading and high-speed data writing

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04328394A (ja) * 1991-04-26 1992-11-17 Fujitsu Ltd ファイル記憶用メモリ
US7904897B2 (en) 2002-08-08 2011-03-08 Rudelic John C Executing applications from a semiconductor nonvolatile memory
US6941412B2 (en) * 2002-08-29 2005-09-06 Sandisk Corporation Symbol frequency leveling in a storage system
US20040123054A1 (en) 2002-12-20 2004-06-24 Gould Geoffrey A. Portable computing device having a non-volatile memory device adapted to detect when a current memory operation is to be suspended and method therefor
JP2005157781A (ja) * 2003-11-26 2005-06-16 Sony Corp 情報処理装置および情報処理方法
EP2074180A4 (de) 2006-10-13 2011-04-20 Sun Chemical Corp Nicht wasserlösliche polymertenside
US7644225B2 (en) 2006-10-17 2010-01-05 Intel Corporation Performance or power-optimized code/data storage for nonvolatile memories

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7117295B2 (en) * 1999-06-22 2006-10-03 Renesas Technology Corp. Multilevel storage nonvolatile semiconductor memory device enabling high-speed data reading and high-speed data writing
US20050078513A1 (en) * 2003-09-25 2005-04-14 Matsushita Electric Industrial Co., Ltd. Semiconductor nonvolatile memory device

Also Published As

Publication number Publication date
US20080090604A1 (en) 2008-04-17
WO2008048580A1 (en) 2008-04-24
JP5095743B2 (ja) 2012-12-12
TW200832429A (en) 2008-08-01
JP2010506334A (ja) 2010-02-25
DE112007002437T5 (de) 2009-09-17
TWI354295B (en) 2011-12-11
KR20090060441A (ko) 2009-06-12
KR101018973B1 (ko) 2011-03-02
US7644225B2 (en) 2010-01-05

Similar Documents

Publication Publication Date Title
DE112007002437B4 (de) Leistungs-oder stromverbrauchsoptimierte Code-Datenspeicherung für nichtflüchtige Speicher
DE112014004778B4 (de) Vorrichtung und Verfahren zum Verwalten von Chipgruppen
DE112014004761B4 (de) Beeinflussung des Wear-Leveling in Speichersystemen
DE102016003366B4 (de) Lesepegelgruppierung für erhöhte flash-leistung
DE102019116520A1 (de) Datenspeichersysteme und -verfahren für eine verbesserte datenumlagerung basierend auf lesepegelspannungen, die mit einer fehlerwiederherstellung verbunden sind
DE112019000139T5 (de) Nichtflüchtiges speichersystem mit dynamischer zuweisung von anwendungen zu einem speicher basierend auf nutzungsüberwachung
DE60224552T2 (de) Fehlerbehandlung für beschreibbare referenz-speicherzellen zum verfolgen von einsatzspannungsdriften
DE112018000834T5 (de) System und verfahren zur adaptiven befehlsabruf-aggregation
DE102008009235A1 (de) Speichersystem
DE102009051862A1 (de) Speichervorrichtung und Speicherverfahren
DE102011055714A1 (de) Verfahren zum Programmieren einer nicht-flüchtigen Speichervorrichtung
DE102014101267A1 (de) Speichersystem mit nichtflüchtiger Speichervorrichtung und Programmierverfahren davon
DE112008002553T5 (de) Einsatz eines MLC-Flash als SLC durch Schreiben von Dummy-Daten
DE112009001620T5 (de) Nichtflüchtige Speichervorrichtung mit mehreren Bits Pro Zelle (MBC) und System mit Polaritätssteuerung sowie Verfahren zum Programmieren derselbigen
DE102013100596B4 (de) Nichtflüchtiges Speichersystem mit Programmier- und Löschverfahren und Blockverwaltungsverfahren
CN101097781A (zh) 非易失性存储器及其确定数据有效性的方法和设备
DE102018123880A1 (de) Adaptive Verwaltung von Zwischenspeichern
DE102018123926A1 (de) Dynamische mehrstufige Decodierung
DE102021115373A1 (de) Identifizierte zonen für zonen mit optimaler paritätsteilung
DE112019000161T5 (de) Speicher-cache-verwaltung
DE102011075023A1 (de) Indexierter Registerzugriff für einen Speicherbaustein
DE112020000162T5 (de) Nichtflüchtiges speicherungssystem mit filterung von daten-abtastwerten für eine überwachte betriebsstatistik
DE112015004531T5 (de) Latch-Initialisierung für eine Datenspeichervorrichtung
DE102010037064A1 (de) Nichtflüchtige Speichervorrichtung und -system sowie Verfahren des Programmierens einer nichtflüchtigen Speichervorrichtung
DE102009033961A1 (de) Emulation eines einmal programmierbaren Speichers

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G11C 15/00 AFI20071015BHDE

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