DE112007002437B4 - Leistungs-oder stromverbrauchsoptimierte Code-Datenspeicherung für nichtflüchtige Speicher - Google Patents
Leistungs-oder stromverbrauchsoptimierte Code-Datenspeicherung für nichtflüchtige Speicher Download PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 114
- 238000013500 data storage Methods 0.000 title 1
- 238000000034 method Methods 0.000 claims description 29
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 claims 1
- 230000008569 process Effects 0.000 description 16
- 238000007667 floating Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- SJHPCNCNNSSLPL-CSKARUKUSA-N (4e)-4-(ethoxymethylidene)-2-phenyl-1,3-oxazol-5-one Chemical compound O1C(=O)C(=C/OCC)\N=C1C1=CC=CC=C1 SJHPCNCNNSSLPL-CSKARUKUSA-N 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5628—Programming or writing circuits; Data input circuits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/02—Terminal devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5642—Sensing or reading circuits; Data output circuits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W52/00—Power management, e.g. TPC [Transmission Power Control], power saving or power classes
- H04W52/02—Power saving arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5647—Multilevel 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 - 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ät10 enthalten sein können. In der gezeigten Ausführungsform ist das Gerät10 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 Transceiver12 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 Prozessor14 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 Tranceiver12 verbunden, um Basisband- und Anwendungsverarbeitungsfunktionen bereitzustellen, die einen oder mehrere Prozessorkern(e) benutzen können. Prozessorkerne16 und18 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 Prozessor14 eingebettet ist, Daten mit einem Systemspeicher24 austauschen. Der Systemspeicher24 kann eine Kombination von Speichern, wie zum Beispiel Platte, RAM (Random Access Memory), ROM (Read Only Memory) und einen nichtflüchtigen Speicher26 , enthalten, obwohl weder der Typ noch die Vielzahl von in dem Systemspeicher24 enthaltenen Speicher Beschränkungen für die Erfindung darstellen. - In der drahtlosen Ausführungsform sind der Transceiver
12 , der Prozessor14 und der nichtflüchtige Speicher26 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 Prozessor14 und der nichtflüchtigen Speicher26 in Systemen enthalten sein, die sich von drahtlosen Anwendungen unterscheiden. Beispielsweise können der Prozessor14 und der nichtflüchtige Speicher26 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 Speicher26 beschränkt. - Der Prozessor
14 kann ferner einen Speicher-Bit-Swap-Kodierer20 enthalten, oder alternativ kann der nichtflüchtige Speicher26 den Speicher-Bit-Swap-Kodierer enthalten. Gemäß der vorliegenden Erfindung ordnet der Speicher-Bit-Swap-Kodierer20 Speichergebiete oder -bereiche speziellen Funktionen zu, die auf diesen Gebieten oder Bereichen durchgeführt werden.2 liefert ein Beispiel, das in dem nichtflüchtigen Speicher26 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 Speicher26 , der in1 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 Prozessor14 mehr Nullen als Einsen generiert. Es leuchtet ein, dass mehr '00b-Bit-Paar-Kombinationen zur Speicherung in den definierten Bereichen des nichtflüchtigen Speichers26 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 Speicher26 durchgeführt, um Leistung zu verbessern und den Systemarbeitsstromverbrauch zu reduzieren. In anderen Ausführungsformen kann/können das Verfahren200 oder Teile davon von dem nichtflüchtigen Speicher26 in Kooperation mit dem Prozessor14 durchgeführt werden. Man beachte, dass das Verfahren200 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 Prozess210 , in dem der Speicherbereich oder die Speichergröße, die programmiert wird, in dem nichtflüchtigen Speicher26 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 Prozess212 wird der definierte Speicherbereich so charakterisiert, dass die häufigste Bit-Paar-Kodierkombination bestimmt wird. In Prozess214 wird eine Entscheidung getroffen, ob die häufigste Bit-Paar-Kodierkombination, die in dem Prozess212 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 Prozess222 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 Prozess216 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-Kodierer20 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 Prozess216 erfolgt, speichert der nichtflüchtige Speicher26 zwei Extra-Bits, die die Swap-Information für diesen Programmierbereich, wie in Prozess218 angegeben, beschreiben. Der ausgewählte Speicherbereich wird dann unter Verwendung der Post-Swap-Kodierungen, siehe Prozess222 , 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 Block310 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 Block320 repräsentieren die Post-Swap-Kodierungen (beschrieben in Prozess220 in dem in2 gezeigten Algorithmus). In diesem Beispiel wird die dominante Bit-Paar-Kombination für diesen ausgewählten Speicherbereich als '10b festgelegt (entspricht Prozess212 in dem in2 gezeigten Algorithmus). Anders gesagt, repräsentiert der durch Bezugszahl314 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 in2 gezeigten Algorithmus) gleicht, wird der '10b-Zustand dem gelöschten '11b-Zustand zugeordnet oder damit ausgetauscht, um Programmierzeiten zu optimieren (beschrieben in Prozess216 in dem in2 gezeigten Algorithmus). Somit wird eine Pre-Swap-Bit-Paar-Kombination von '10b in Block310 einer Post-Swap-Kodierung von '11b in Block320 zugeordnet und werden zwei Bits zum Beschreiben der Swap-Information mit dem ausgewählten Programmierbereich gespeichert (beschrieben in Prozess218 in dem in2 gezeigten Algorithmus). Zum Abschließen der Paarzuordnung wird das '11b-Bit-Paar, das durch Bezugszahl312 gekennzeichnet ist, in Block310 mit dem '10b-Bit-Paar, das durch Bezugszahl324 gekennzeichnet ist, in Block320 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-Kodierer20 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 Prozess250 ,252 ,254 und256 ). - 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 Prozessor14 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 Speicher26 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)
- 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. - 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. - 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. - 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. - 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. - 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. - 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. - Drahtloses Gerät (
10 ) nach Anspruch 6, dadurch gekennzeichnet, dass der dominante Schwellenwertspannungs-Zustand einer von vier Schwellenwertspannungs-Zuständen ist. - 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. - 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. - 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. - 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. - 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. - 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. - 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.
- Verfahren nach Anspruch 15, ferner enthaltend Zuordnen jedes Schwellenwertspannungs-Zustands zum Minimieren von Programmierzeiten.
- Verfahren nach Anspruch 16, ferner enthaltend Lesen der in dem Speicherbereich gespeicherten Datenstruktur unter Verwendung der Information, die Zuordnen jedes Schwellenwertspannungs-Zustands angibt.
- 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. - 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. - 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.
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)
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 | 多値メモリ、多値メモリ書き込み方法及び多値メモリ読み出し方法 |
US9907967B2 (en) | 2012-07-26 | 2018-03-06 | Adi Mashiach | Transcutaneous power conveyance device |
WO2014016701A2 (en) | 2012-07-26 | 2014-01-30 | Adi Mashiach | External resonance matching between an implanted device and an external device |
US10052097B2 (en) | 2012-07-26 | 2018-08-21 | Nyxoah SA | Implant unit delivery tool |
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)
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)
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 | 情報処理装置および情報処理方法 |
US7909924B2 (en) | 2006-10-13 | 2011-03-22 | Sun Chemical Corporation | Stable offset emulsion inks containing non-water soluble polymeric surfactants |
US7644225B2 (en) | 2006-10-17 | 2010-01-05 | Intel Corporation | Performance or power-optimized code/data storage for nonvolatile memories |
-
2006
- 2006-10-17 US US11/583,418 patent/US7644225B2/en active Active
-
2007
- 2007-10-15 WO PCT/US2007/022043 patent/WO2008048580A1/en active Application Filing
- 2007-10-15 DE DE112007002437.2T patent/DE112007002437B4/de active Active
- 2007-10-15 JP JP2009532467A patent/JP5095743B2/ja not_active Expired - Fee Related
- 2007-10-15 KR KR1020097007825A patent/KR101018973B1/ko not_active IP Right Cessation
- 2007-10-17 TW TW096138860A patent/TWI354295B/zh not_active IP Right Cessation
Patent Citations (2)
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 |
---|---|
JP2010506334A (ja) | 2010-02-25 |
JP5095743B2 (ja) | 2012-12-12 |
TW200832429A (en) | 2008-08-01 |
KR101018973B1 (ko) | 2011-03-02 |
KR20090060441A (ko) | 2009-06-12 |
TWI354295B (en) | 2011-12-11 |
US7644225B2 (en) | 2010-01-05 |
WO2008048580A1 (en) | 2008-04-24 |
DE112007002437T5 (de) | 2009-09-17 |
US20080090604A1 (en) | 2008-04-17 |
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 | |
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 | |
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 | |
DE102012112354A1 (de) | Speichervorrichtung und nichtflüchtige Speichervorrichtung sowie Betriebsverfahren davon | |
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) | 非易失性存储器及其确定数据有效性的方法和设备 | |
DE102008005338A1 (de) | Integrierter Schaltkreis mit einer Speicherzellenanordnung und Verfahren zum Lesen eines Speicherzellenzustands unter Verwendung einer Mehrzahl von Teil-Leseoperationen | |
DE102018123880A1 (de) | Adaptive Verwaltung von Zwischenspeichern | |
DE102018123926A1 (de) | Dynamische mehrstufige Decodierung | |
DE102021115373A1 (de) | Identifizierte zonen für zonen mit optimaler paritätsteilung | |
DE102008003267A1 (de) | Hybridflashspeicherbauelement, Speichersystem und Verfahren zum Steuern von Fehlern in einem Hybridflashspeicherbauelement | |
DE102009033961A1 (de) | Emulation eines einmal programmierbaren Speichers | |
DE112019000161T5 (de) | Speicher-cache-verwaltung | |
DE112015004531T5 (de) | Latch-Initialisierung für eine Datenspeichervorrichtung | |
DE102010037064A1 (de) | Nichtflüchtige Speichervorrichtung und -system sowie Verfahren des Programmierens einer nichtflüchtigen Speichervorrichtung | |
DE112019005506T5 (de) | Systeme und verfahren zum finden einer letzten guten seite in einem offenen nand-block |
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 |