DE102014114038A1 - Storage device, electronic device and method for programming a memory - Google Patents

Storage device, electronic device and method for programming a memory Download PDF

Info

Publication number
DE102014114038A1
DE102014114038A1 DE102014114038.9A DE102014114038A DE102014114038A1 DE 102014114038 A1 DE102014114038 A1 DE 102014114038A1 DE 102014114038 A DE102014114038 A DE 102014114038A DE 102014114038 A1 DE102014114038 A1 DE 102014114038A1
Authority
DE
Germany
Prior art keywords
memory
data
memory page
controller
page
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
DE102014114038.9A
Other languages
German (de)
Inventor
Yi-Hsin Liao
Fu-Jen Yeh
Chia-Yin Lu
Shih-Hung Chu
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.)
HTC Corp
Original Assignee
HTC 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
Priority claimed from US14/340,558 external-priority patent/US9245633B2/en
Application filed by HTC Corp filed Critical HTC Corp
Publication of DE102014114038A1 publication Critical patent/DE102014114038A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/025Geometric lay-out considerations of storage- and peripheral-blocks in a semiconductor storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/16Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM using electrically-fusible links

Abstract

Es werden eine Speicherungsvorrichtung, eine elektronische Vorrichtung und ein entsprechendes Verfahren zum Programmieren eines Speichers bereitgestellt. Der Speicher umfasst eine Vielzahl von Zellen. Jede der Zellen speichert eine Vielzahl von Bits. Die Bits des Speichers sind zu einer Vielzahl von Speicherseiten des Speichers angeordnet. Das Verfahren umfasst die folgenden Schritte: Empfangen eines Host-Befehls zum Programmieren von Daten in eine erste Speicherseite des Speichers; und Durchführen einer 2-Ebenen-Programmierung, um die Daten in die erste Speicherseite zu programmieren, und Sichern der Daten in einer zweiten Speicherseite des Speichers, wenn die erste Speicherseite nicht aus den höchstwertigen Bits (MSB) der Zellen besteht. Die erste Speicherseite und die zweite Speicherseite befinden sich in unterschiedlichen Ebenen des Speichers.A storage device, an electronic device and a corresponding method for programming a memory are provided. The memory includes a plurality of cells. Each of the cells stores a plurality of bits. The bits of the memory are arranged to a plurality of memory pages of the memory. The method includes the steps of: receiving a host command to program data into a first memory page of the memory; and performing a 2-level programming to program the data into the first memory page and saving the data in a second memory page of the memory if the first memory page is not the most significant bits (MSB) of the cells. The first memory page and the second memory page are in different levels of the memory.

Description

QUERVERWEIS AUF VERWANDTE ANMELDUNGCROSS-REFERENCE TO RELATED APPLICATION

Diese Anmeldung beansprucht die Prioritätsrechte der vorläufigen US-Anmeldung mit der Eingangsnr. 61/929,986, eingereicht am 22. Januar 2014. Die Gesamtheit der oben erwähnten Patentanmeldungen ist hiermit unter Bezugnahme hierin eingeschlossen und stellt einen Teil dieser Beschreibung dar.This application claims priority to US provisional application Ser. No. 61 / 929,986, filed January 22, 2014. The entirety of the above-mentioned patent applications are hereby incorporated by reference herein and constitute a part of this specification.

HINTERGRUND DER ERFINDUNGBACKGROUND OF THE INVENTION

Gebiet der ErfindungField of the invention

Die vorliegende Erfindung betrifft einen Speicher. Genauer gesagt betrifft die vorliegende Erfindung eine Speicherungsvorrichtung, eine elektronische Vorrichtung und ein Verfahren zum Programmieren eines Speichers.The present invention relates to a memory. More particularly, the present invention relates to a storage device, an electronic device, and a method of programming a memory.

Beschreibung des Stands der TechnikDescription of the Related Art

Moderne mobile elektronische Vorrichtungen, wie etwa Smartphones, verwenden eingebettete Multimedia-Cards (eMMCs) als Speicherungsvorrichtungen zur Massendatenspeicherung. Die eMMC basiert auf NAND(negiertes AND)-Flash-Technologie. Benutzer schalten Smartphones während ihrer Bedienung oft an oder aus. Dieses Verhalten verursacht mitunter ein plötzliches Abschalten für die eMMC-Speicherung eines Smartphones. Aufgrund der Eigenschaften von NAND-Flash-Speichern können einige Daten in der eMMC-Speicherung in dieser Situation beschädigt werden.Modern mobile electronic devices, such as smart phones, use embedded multimedia cards (eMMCs) as storage devices for mass data storage. The eMMC is based on NAND (negated AND) flash technology. Users often turn on or off smartphones during their operation. This behavior sometimes causes a sudden shutdown for the eMMC storage of a smartphone. Due to the nature of NAND flash memories, some data in eMMC storage may be corrupted in this situation.

Es gibt drei Arten von NAND-Flash-Speichern, nämlich Single-Level Cell (SLC, Einzelzustands-Zelle), Multi-Level Cell (MLC, Mehrzustands-Zelle) und Triple-Level Cell (TLC, Dreizustands-Zelle). Ein SLC-Flash-Speicher speichert 1 Bit pro Zelle. Ein MLC-Flash-Speicher speichert 2 Bit pro Zelle. Ein TLC-Flash-Speicher speichert 3 Bit pro Zelle. Aufgrund dieses Architekturunterschieds weisen MLC und TLC eine größere Datenkapazität und einen günstigeren Preis, aber eine kürzere Lebensdauer im Vergleich zu SLC auf.There are three types of NAND flash memories, namely single-level cell (SLC, single-state cell), multi-level cell (MLC, multi-state cell), and triple-level cell (TLC, three-state cell). An SLC flash memory stores 1 bit per cell. An MLC flash memory stores 2 bits per cell. A TLC flash memory stores 3 bits per cell. Because of this architectural difference, MLC and TLC have greater data capacity and price, but a shorter life compared to SLC.

Die Speicherseiten (Pages) eines MLC-Flash-Speichers können in zwei Gruppen klassifiziert werden, nämlich Gruppe A und Gruppe B. Die Speicherseiten in Gruppe A bestehen aus den niedrigstwertigen Bits (LSB) der Zellen, während die Speicherseiten in Gruppe B aus den höchstwertigen Bits (MSB) der Zellen bestehen. Die Speicherseiten in Gruppen A und B sind in Paaren assoziiert. Mit anderen Worten, jedes Paar besteht aus einer Speicherseite in Gruppe A und einer Speicherseite in Gruppe B. Die folgende Tabelle 1 ist ein Beispiel von Seitenpaaren eines MLC-Flash-Speichers. Jede Zeile in Tabelle 1 ist ein Seitenpaar. Zum Beispiel sind Speicherseite 9 in Gruppe A und Speicherseite 12 in Gruppe B als ein Paar assoziiert. Speicherseite 9 besteht aus den LSB einiger Zellen des MLC-Flash-Speichers, während Speicherseite 12 aus den MSB derselben Zellen des MLC-Flash-Speichers besteht. Gruppe A Gruppe B 0 2 1 4 3 6 4 8 7 10 9 12 11 14 13 16 ... ... Tabelle 1 The pages of an MLC flash memory can be classified into two groups, group A and group B. The memory pages in group A are the least significant bits (LSB) of the cells, while the memory pages in group B are of the most significant ones Bits (MSB) of the cells exist. The memory pages in groups A and B are associated in pairs. In other words, each pair consists of a memory page in group A and a memory page in group B. The following table 1 is an example of page pairs of an MLC flash memory. Each row in Table 1 is a pair of pages. For example, memory page 9 in group A and memory page 12 in group B are associated as a pair. Memory page 9 consists of the LSB of some cells of the MLC flash memory, while memory page 12 consists of the MSB of the same cells of the MLC flash memory. Group A Group B 0 2 1 4 3 6 4 8th 7 10 9 12 11 14 13 16 ... ... Table 1

Die Speicherseiten in einem Paar teilen sich gemeinsame Wortleitungen. Aufgrund der Eigenschaften von NAND-Flash-Speichern muss für jedes Paar die Speicherseite in Gruppe A vor der Speicherseite in Gruppe B programmiert werden. Wenn während des Programmierens der Speicherseite in Gruppe B eine plötzliche Stromunterbrechung auftritt, erscheint eine Seitenbeschädigung nur in der Speicherseite in Gruppe A. Wenn jedoch während des Programmierens der Speicherseite in Gruppe B eine plötzliche Stromunterbrechung auftritt, kann eine Seitenbeschädigung nicht nur in der Speicherseite in Gruppe B auftreten, sondern auch in der assoziierten Speicherseite in Gruppe A, die bereits programmiert worden war. Manchmal ist die Beschädigung der Speicherseite in Gruppe A für das Betriebssystem (OS) des Smartphones unerwartet, was zu einer Blockierung des Boot-Vorgangs aufgrund der Seitenbeschädigung führen kann. Der Zuverlässigkeit halber sollte die Speicherseite in Gruppe A vor dem Programmieren der Speicherseite in Gruppe B gesichert werden.The memory pages in a pair share common word lines. Due to the characteristics of NAND flash memories, the memory page in group A must be programmed in front of the memory page in group B for each pair. If a sudden power interruption occurs during programming of the memory page in group B, page corruption appears only in the memory page in group A. However, if a sudden power interruption occurs during programming of the memory page in group B, page corruption may not only occur in the memory page in group B, but also in the associated memory page in group A, which had already been programmed. Sometimes the damage to the memory page in group A is unexpected to the smartphone's operating system (OS), which can cause the boot process to stall due to page corruption. For the sake of reliability, the memory page in group A should be saved before programming the memory page in group B.

Diese Sicherungsoperation kann eine zusätzliche Belegungszeit des Flash-Speichers bewirken; daher kann sie die Leistung des Flash-Speichers beeinträchtigen. Es ist sehr schwierig, auf herkömmliche Weise sowohl Datenzuverlässigkeit zu bewahren als auch eine bessere Leistung der eMMC-Speicherung aufrechtzuerhalten.This backup operation may cause an additional occupancy time of the flash memory; therefore, it may affect the performance of the flash memory. It is very difficult to maintain both data reliability and maintain better eMMC storage performance in a conventional manner.

Die vorstehenden Erörterungen lassen sich auf MLC-Flash-Speicher ausweiten. Die Speicherseiten eines TLC-Flash-Speichers können in drei Gruppen klassifiziert werden, nämlich Gruppe A, Gruppe B und Gruppe C. Die Speicherseiten in Gruppe A bestehen aus den LSB der Zellen. Die Speicherseiten in Gruppe B bestehen aus den mittleren Bits der Zellen. Die Speicherseiten in Gruppe C bestehen aus den MSB der Zellen. Die Speicherseiten in Gruppen A, B und C sind in Sätzen assoziiert. Mit anderen Worten, jeder Satz besteht aus einer Speicherseite in Gruppe A, einer Speicherseite in Gruppe B und einer Speicherseite in Gruppe C. Wenn während des Programmierens einer Speicherseite in Gruppe A eine plötzliche Stromunterbrechung auftritt, erscheint die Seitenbeschädigung nur in der Speicherseite in Gruppe A. Wenn während des Programmierens der assoziierten Speicherseite in Gruppe B eine plötzliche Stromunterbrechung auftritt, kann eine Seitenbeschädigung in der Speicherseite in Gruppe A und der Speicherseite in Gruppe B auftreten. Wenn während des Programmierens der assoziierten Speicherseite in Gruppe C eine plötzliche Stromunterbrechung auftritt, kann eine Seitenbeschädigung in der Speicherseite in Gruppe A, der Speicherseite in Gruppe B und der Speicherseite in Gruppe C auftreten. Daher ist eine Datensicherung für die Speicherseiten in Gruppe A und Gruppe B notwendig.The above discussions can be extended to MLC flash memory. The memory pages of a TLC flash memory can be classified into three groups, group A, group B and group C. The memory pages in group A consist of the LSB of the cells. The memory pages in group B consist of the middle bits of the cells. The memory pages in group C consist of the MSB of the cells. The memory pages in groups A, B and C are associated in sentences. In other words, each set consists of a memory page in group A, a memory page in group B, and a memory page in group C. If a sudden power interruption occurs while programming a memory page in group A, the page corruption appears only in the memory page in group A. If a sudden power interruption occurs during programming of the associated memory page in group B, page corruption may occur in the memory page in group A and the memory page in group B. When a sudden power interruption occurs during the programming of the associated memory page in group C, page damage may occur in the memory page in group A, the memory page in group B, and the memory page in group C. Therefore, a backup for the memory pages in group A and group B is necessary.

ÜBERSICHT DER ERFINDUNGOVERVIEW OF THE INVENTION

Demgemäß zielt die vorliegende Erfindung auf eine Speicherungsvorrichtung, eine elektronische Vorrichtung und ein Verfahren zum Programmieren eines Speichers ab, um eine Lösung für sowohl die Datenzuverlässigkeit als auch die Leistung eines Speicher-Speicherungssystems bereitzustellen.Accordingly, the present invention is directed to a storage device, an electronic device, and a method of programming a memory to provide a solution for both the data reliability and performance of a memory storage system.

Gemäß einer Ausführungsform der vorliegenden Erfindung wird eine Speicherungsvorrichtung bereitgestellt. Die Speicherungsvorrichtung umfasst einen Speicher und einen Controller. Der Speicher umfasst eine Vielzahl von Zellen. Jede der Zellen speichert eine Vielzahl von Bits. Die Bits des Speichers sind in einer Vielzahl von Speicherseiten des Speichers angeordnet. Der Controller ist an den Speicher gekoppelt. Der Controller empfängt einen Host-Befehl zum Programmieren von Daten in eine erste Speicherseite des Speichers. Wenn die erste Speicherseite nicht aus den MSB der Zellen besteht, führt der Controller eine 2-Ebenen-Programmierung durch, um die Daten in die erste Speicherseite zu programmieren, und sichert die Daten in einer zweiten Speicherseite des Speichers. Die erste Speicherseite und die zweite Speicherseite befinden sich in unterschiedlichen Ebenen (Planes) des Speichers.According to one embodiment of the present invention, a storage device is provided. The storage device comprises a memory and a controller. The memory includes a plurality of cells. Each of the cells stores a plurality of bits. The bits of the memory are arranged in a plurality of memory pages of the memory. The controller is coupled to the memory. The controller receives a host command to program data into a first memory page of the memory. If the first memory page is not the MSB of the cells, the controller performs 2-level programming to program the data into the first memory page and saves the data in a second memory page of the memory. The first memory page and the second memory page are in different levels (plans) of the memory.

Gemäß einer anderen Ausführungsform der vorliegenden Erfindung wird eine elektronische Vorrichtung bereitgestellt. Die elektronische Vorrichtung umfasst die vorgenannte Speicherungsvorrichtung und einen Prozessor. Der Prozessor ist an die Speicherungsvorrichtung gekoppelt. Der Prozessor stellt der Speicherungsvorrichtung den Host-Befehl bereit.According to another embodiment of the present invention, an electronic device is provided. The electronic device comprises the aforementioned storage device and a processor. The processor is coupled to the storage device. The processor provides the host device with the host device.

Gemäß einer anderen Ausführungsform der vorliegenden Erfindung wird ein Verfahren zum Programmieren des vorgenannten Speichers bereitgestellt. Das Verfahren umfasst die folgenden Schritte: Empfangen eines Host-Befehls zum Programmieren von Daten in eine erste Speicherseite des Speichers; und Durchführen einer 2-Ebenen-Programmierung, um die Daten in die erste Speicherseite zu programmieren, und Sichern der Daten in einer zweiten Speicherseite des Speichers, wenn die erste Speicherseite nicht aus den MSB der Zellen besteht. Die erste Speicherseite und die zweite Speicherseite befinden sich in unterschiedlichen Ebenen des Speichers.According to another embodiment of the present invention, a method of programming the aforementioned memory is provided. The method includes the steps of: receiving a host command to program data into a first memory page of the memory; and performing a 2-level programming to program the data into the first memory page, and saving the data in a second memory page of the memory if the first memory page is not the MSB of the cells. The first memory page and the second memory page are in different levels of the memory.

KURZBESCHREIBUNG DER FIGURENBRIEF DESCRIPTION OF THE FIGURES

Die begleitenden Zeichnungen sind eingeschlossen, um ein besseres Verständnis der Erfindung bereitzustellen, und sind in diese Patentschrift inkorporiert und stellen einen Teil davon dar. Die Zeichnungen veranschaulichen Ausführungsformen der Erfindung und dienen zusammen mit der Beschreibung dazu, die Grundsätze der Erfindung zu erläutern.The accompanying drawings are included to provide a better understanding of the invention and are incorporated in and constitute a part of this specification. The drawings illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention.

1 ist eine schematische Darstellung, die eine elektronische Vorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. 1 Fig. 10 is a schematic diagram showing an electronic device according to an embodiment of the present invention.

2 ist eine schematische Darstellung, die eine 2-Ebenen-Programmierung gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. 2 Fig. 12 is a schematic diagram showing 2-level programming according to an embodiment of the present invention.

3 ist ein Ablaufdiagramm, das ein Verfahren zum Programmieren eines Speichers gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. 3 Fig. 10 is a flowchart showing a method of programming a memory according to an embodiment of the present invention.

BESCHREIBUNG DER AUSFÜHRUNGSFORMENDESCRIPTION OF THE EMBODIMENTS

Nun wird im Detail auf die vorliegenden Ausführungsformen der Erfindung Bezug genommen, für die Beispiele in den begleitenden Zeichnungen illustriert sind. Wo immer möglich, werden in den Zeichnungen und der Beschreibung die gleichen Bezugszeichen zur Bezeichnung der gleichen oder ähnlichen Teile verwendet.Reference will now be made in detail to the present embodiments of the invention, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings and the description to refer to the same or like parts.

1 ist eine schematische Darstellung, die eine elektronische Vorrichtung 100 gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. Die elektronische Vorrichtung 100 kann ein Smartphone, ein persönlicher digitaler Assistent (PDA), ein Tablet-Computer, ein Notebook-Computer oder ein Personal-Computer (PC) oder jede beliebige andere Vorrichtung sein, die in der Lage ist, elektronische Daten zu verarbeiten. Die elektronische Vorrichtung 100 umfasst einen Prozessor 110 und eine Speicherungsvorrichtung 120. Der Prozessor 110 ist an die Speicherungsvorrichtung 120 gekoppelt. Die Speicherungsvorrichtung 120 umfasst einen Controller 130 und einen Speicher 140. Der Controller 130 ist an den Speicher 140 gekoppelt. Der Speicher 140 kann ein NAND-Flash-Speicher oder ein beliebiger anderer Speicher sein, der die gleichen Programmier-/Löscheigenschaften wie die eines NAND-Flash-Speichers aufweist. 1 is a schematic diagram showing an electronic device 100 according to an embodiment of the present invention. The electronic device 100 may be a smartphone, a personal digital assistant (PDA), a tablet computer, a notebook computer or a personal computer (PC) or any other device capable of processing electronic data. The electronic device 100 includes a processor 110 and a storage device 120 , The processor 110 is to the storage device 120 coupled. The storage device 120 includes a controller 130 and a memory 140 , The controller 130 is at the store 140 coupled. The memory 140 may be a NAND flash memory or any other memory having the same program / erase characteristics as a NAND flash memory.

Der Speicher 140 umfasst eine Vielzahl von Zellen. Jede Zelle speichert eine Vielzahl von Bits. Die Bits des Speichers 140 sind in einer Vielzahl von Speicherseiten des Speichers 140 angeordnet. Die Speicherseiten des Speichers 140 sind in einer Vielzahl von Blöcken des Speichers 140 angeordnet. Zusätzlich dazu umfasst der Speicher 140 einen Puffer 150. Der Puffer 150 kann mit einem dynamischen Direktzugriffsspeicher (DRAM) oder einem statischen Direktzugriffsspeicher (SRAM) ausgeführt sein.The memory 140 includes a variety of cells. Each cell stores a variety of bits. The bits of the memory 140 are in a variety of memory pages of the memory 140 arranged. The memory pages of the memory 140 are in a variety of blocks of memory 140 arranged. In addition, the memory includes 140 a buffer 150 , The buffer 150 can be implemented with dynamic random access memory (DRAM) or static random access memory (SRAM).

Der Speicher 140 ist zur 1-Ebenen-Programmierung und 2-Ebenen-Programmierung in der Lage. 1-Ebenen-Programmierung bedeutet das Programmieren einer Speicherseite als Reaktion auf einen Befehl von dem Controller 130, während 2-Ebenen-Programmierung das gleichzeitige Programmieren von zwei Speicherseiten als Reaktion auf einen Befehl vom Controller 130 bedeutet.The memory 140 is capable of 1-level programming and 2-level programming. 1-level programming means programming a memory page in response to a command from the controller 130 During 2-level programming, the simultaneous programming of two memory pages in response to a command from the controller 130 means.

2 ist eine schematische Darstellung, die eine 2-Ebenen-Programmierung gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. In dieser Ausführungsform stellt der Prozessor 110 dem Controller 130 einen Host-Befehl zum Programmieren von Daten in den Speicher 140 bereit. Der Controller 130 interpretiert den Host-Befehl in einen 2-Ebenen-Befehl 200, der zwei Controller-Unterbefehle 201 und 202 zur 2-Ebenen-Programmierung umfasst, und der Controller 130 sendet die Controller-Unterbefehle 201 und 202 an den Speicher 140. Der erste Controller-Unterbefehl 201 umfasst einen hexadezimalen Code 80h, eine Adresse A1, einen Datenstapel D1 und einen hexadezimalen Code 11h. Die Adresse A1 spezifiziert die Speicherseite 231 des Blocks 221 einer ersten Ebene des Speichers 140. Die Daten D1 sind in die Speicherseite 231 zu programmieren. Der zweite Controller-Unterbefehl 202 umfasst einen hexadezimalen Code 81h, eine Adresse A2, einen Datenstapel D2 und einen hexadezimalen Code 10h. Die Adresse A2 spezifiziert die Speicherseite 232 des Blocks 222 einer zweiten Ebene des Speichers 140. Die Daten D2 sind in die Speicherseite 232 zu programmieren. Obwohl die Speicherseiten 231 und 232 zu unterschiedlichen Blöcken gehören, können die Speicherseiten 231 und 232 die gleiche Indexnummer in den Blöcken 221 und 222 aufweisen. Die Daten D1 können die gleichen wie die Daten D2 sein oder sich von den Daten D2 unterscheiden. 2 Fig. 12 is a schematic diagram showing 2-level programming according to an embodiment of the present invention. In this embodiment, the processor provides 110 the controller 130 a host command to program data into memory 140 ready. The controller 130 interprets the host command into a 2-level command 200 , the two controller subcommands 201 and 202 includes for 2-level programming, and the controller 130 sends the controller subcommands 201 and 202 to the store 140 , The first controller subcommand 201 includes a hexadecimal code 80h, an address A1, a data stack D1, and a hexadecimal code 11h. The address A1 specifies the memory page 231 of the block 221 a first level of memory 140 , The data D1 is in the memory page 231 to program. The second controller subcommand 202 comprises a hexadecimal code 81h, an address A2, a data stack D2 and a hexadecimal code 10h. The address A2 specifies the memory page 232 of the block 222 a second level of memory 140 , The data D2 is in the memory page 232 to program. Although the memory pages 231 and 232 belonging to different blocks, the memory pages 231 and 232 the same index number in the blocks 221 and 222 exhibit. The data D1 may be the same as the data D2 or different from the data D2.

Der Speicher 140 meldet dem Controller 130 ein belegtes Bit 205. Wenn das belegte Bit 205 logisch hoch ist, bedeutet es, dass der Speicher 140 unbelegt ist und bereit ist, Befehle von dem Controller 130 zu empfangen. Wenn das belegte Bit 205 logisch niedrig ist, bedeutet es, dass der Speicher 140 damit belegt ist, einen Befehl von dem Controller 130 auszuführen. Der Speicher 140 speichert den ersten Controller-Unterbefehl 201 in den Puffer 150, ohne den ersten Controller-Unterbefehl 201 auszuführen, wenn der Speicher 140 den ersten Controller-Unterbefehl 201 von dem Controller 130 empfängt. Die Belegungszeit 207 ist die Belegungszeit zum Speichern des ersten Controller-Unterbefehls 201. Der Speicher 140 führt sowohl den ersten Controller-Unterbefehl 201 als auch den zweiten Controller-Unterbefehl 202 aus, wenn der Speicher 140 den zweiten Controller-Unterbefehl 202 von dem Controller 130 empfängt. Die Belegungszeit 208 ist die Belegungszeit zum Ausführen beider Controller-Unterbefehle 201 und 202.The memory 140 reports to the controller 130 an occupied bit 205 , If the occupied bit 205 logically high, it means that the memory 140 is unoccupied and ready to receive commands from the controller 130 to recieve. If the occupied bit 205 logically low, it means that the memory 140 is occupied, a command from the controller 130 perform. The memory 140 saves the first controller subcommand 201 in the buffer 150 without the first controller subcommand 201 execute when the memory 140 the first controller subcommand 201 from the controller 130 receives. The occupancy time 207 is the occupancy time for storing the first controller subcommand 201 , The memory 140 performs both the first controller subcommand 201 as well as the second controller subcommand 202 off when the memory 140 the second controller subcommand 202 from the controller 130 receives. The occupancy time 208 is the occupancy time for executing both controller subcommands 201 and 202 ,

In dieser Ausführungsform identifiziert der Speicher 140 die Controller-Unterbefehle 201 und 202 gemäß ihren hexadezimalen Codes (10h, 11h, 80h und 81h). In this embodiment, the memory identifies 140 the controller subcommands 201 and 202 according to their hexadecimal codes (10h, 11h, 80h and 81h).

Ein Controller-Befehl zur 1-Ebenen-Programmierung ist dem Controller-Unterbefehl 201 oder 202 ähnlich, aber ein Controller-Befehl zur 1-Ebenen-Programmierung beginnt mit dem hexadezimalen Code 80h und endet mit dem hexadezimalen Code 10h. Obwohl der Speicher 140 bei einer 2-Ebenen-Programmierungsoperation zwei Controller-Unterbefehle gleichzeitig ausführt, ist die Belegungszeit für die 2-Ebenen-Programmierung nur geringfügig länger als die Belegungszeit für die 1-Ebenen-Programmierung.A controller command for 1-level programming is the controller subcommand 201 or 202 similarly, but a controller instruction for 1-level programming starts with the hexadecimal code 80h and ends with the hexadecimal code 10h. Although the memory 140 in a 2-level programming operation, executing two controller subcommands simultaneously, the occupancy time for the 2-level programming is only slightly longer than the occupancy time for the 1-level programming.

3 ist ein Ablaufdiagramm, das ein Verfahren zum Programmieren eines Speichers gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. Dieses Verfahren kann von der elektronischen Vorrichtung 100 ausgeführt werden. In Schritt 310 sendet der Prozessor 110 einen Host-Befehl zur Programmierung eines Datenstapels in eine Speicherseite des Speichers 140 zur Speicherungsvorrichtung 120, und der Controller 130 empfängt den Host-Befehl. In Schritt 320 überprüft der Controller 130, ob die von dem Host-Befehl spezifizierte Speicherseite aus den MSB der Zellen des Speichers 140 besteht oder nicht. 3 Fig. 10 is a flowchart showing a method of programming a memory according to an embodiment of the present invention. This method can be used by the electronic device 100 be executed. In step 310 the processor sends 110 a host command for programming a data stack into a memory page of the memory 140 to the storage device 120 , and the controller 130 receives the host command. In step 320 the controller checks 130 whether the memory page specified by the host command is from the MSB of the cells of the memory 140 exists or not.

Wenn die von dem Host-Befehl spezifizierte Speicherseite nicht aus den MSB der Zellen des Speichers 140 besteht, führt der Controller 130 in Schritt 330 eine 2-Ebenen-Programmierung durch, um die von dem Host-Befehl bereitgestellten Daten in die von dem Host-Befehl spezifizierte Speicherseite zu programmieren, und sichert gleichzeitig dieselben Daten in einer anderen Speicherseite des Speichers 140. Wird zum Beispiel die in 2 gezeigte 2-Ebenen-Programmierung betrachtet, kann die Speicherseite 231 die Speicherseite der ersten Ebene, die von dem Host-Befehl spezifiziert wird, sein und die Speicherseite 232 kann die Speicherseite der zweiten Ebene zur Datensicherung sein. Die erste Ebene und die zweite Ebene sind unterschiedliche Ebenen des Speichers 140. Die Daten D1 und die Daten D2 sind der gleiche von dem Host-Befehl bereitgestellte Datenstapel.If the memory page specified by the host command is not from the MSB of the cells of the memory 140 exists, the controller performs 130 in step 330 2-level programming to program the data provided by the host command into the memory page specified by the host command, and asserts simultaneously the same data in another memory page of the memory 140 , For example, the in 2 Considered 2-level programming, the memory page may be 231 the first-level memory page specified by the host command and the memory page 232 may be the second level memory page for data backup. The first level and the second level are different levels of memory 140 , The data D1 and the data D2 are the same data stack provided by the host instruction.

Wenn die von dem Host-Befehl spezifizierte Speicherseite aus den MSB der Zellen des Speichers 140 besteht, geht der Ablauf zu Schritt 340 über. Der Host-Befehl kann mehrere Speicherseiten spezifizieren und mehrere Datenstapel zum Speichern durch die Speicherseiten bereitstellen. Die von dem Host-Befehl spezifizierten Speicherseiten können aus den MSB der Zellen des Speichers 140 bestehen. Daher kann der Controller 130 in Schritt 340 eine weitere 2-Ebenen-Programmierung durchführen, um einen Datenstapel in eine von dem Host-Befehl spezifizierte Speicherseite zu programmieren, und gleichzeitig einen anderen Datenstapel in eine andere von dem Host-Befehl spezifizierte Speicherseite programmieren, ohne Sicherung für die beiden Datenstapel in dem Speicher 140. Wird zum Beispiel die in 2 gezeigte 2-Ebenen-Programmierung betrachtet, kann die Speicherseite 231 die erste Speicherseite, die von dem Host-Befehl spezifiziert wird, sein und die Speicherseite 232 kann die zweite Speicherseite, die von dem Host-Befehl spezifiziert wird, sein. Die Daten D1 und die Daten D2 sind unterschiedliche von dem Host-Befehl bereitgestellte Datenstapel. Die Speicherseiten 231 und 232 werden bei derartiger 2-Ebenen-Programmierung als eine Großseite (Super-Page) mit doppelter Kapazität behandelt.If the memory page specified by the host command is the MSB of the cells of the memory 140 the process goes to step 340 above. The host command can specify multiple pages of memory and provide multiple stacks of data for storage by the pages. The memory pages specified by the host command may be from the MSB of the cells of the memory 140 consist. Therefore, the controller can 130 in step 340 perform another 2-level programming to program a data stack into a memory page specified by the host command, and at the same time program another data stack into another memory page specified by the host command, without backing up the two data stacks in the memory 140 , For example, the in 2 Considered 2-level programming, the memory page may be 231 the first memory page specified by the host command and the memory page 232 For example, the second memory page specified by the host command may be. Data D1 and data D2 are different data stacks provided by the host instruction. The memory pages 231 and 232 are treated as a double-capacity super-page in such 2-level programming.

Wenn der Speicher 140 ein MLC-Flash-Speicher ist, wird Schritt 330 für die Speicherseiten in Gruppe A ausgeführt und Schritt 340 wird für die Speicherseiten in Gruppe B ausgeführt. Wenn der Speicher 140 ein TLC-Flash-Speicher ist, kann Schritt 330 für die Speicherseiten in Gruppen A und B ausgeführt werden und Schritt 340 kann für die Speicherseiten in Gruppe C ausgeführt werden. Wenn der Speicher 140 ein TLC-Flash-Speicher ist, kann Schritt 340 auch für die Speicherseiten in Gruppe B ausgeführt werden, um die Speicherseiten in Gruppe A zu sichern.If the memory 140 an MLC flash memory is stepping 330 for the memory pages in group A and step 340 is executed for the memory pages in group B. If the memory 140 is a TLC flash memory, can step 330 for the memory pages in groups A and B are executed and step 340 can be executed for the memory pages in group C. If the memory 140 is a TLC flash memory, can step 340 also for the memory pages in group B to back up the memory pages in group A.

Die in Tabelle 1 gezeigte Seitenassoziationsregel ist nur ein Beispiel. Es gibt andere Seitenassoziationsregeln, die bei aktuellen NAND-Flash-Speichern bestehen. Allgemein gesagt muss ein herkömmlicher Controller eines NAND-Flash-Speichers mindestens eine Speicherseite, die aus den niedrigerwertigen Bits des Speichers besteht, sichern, bevor eine Speicherseite, die aus den MSB des Speichers besteht, programmiert wird, um der Seitenassoziationsregel zu entsprechen. Da der herkömmliche Controller 1-Ebenen-Programmierung verwendet, kann die durch den herkömmlichen Controller induzierte Gesamtbelegungszeit als (T1 + T2)·N + T2 ausgedrückt werden, wobei T1 die zum Lesen einer Speicherseite erforderliche Zeit, T2 die zum Programmieren einer Speicherseite erforderliche Zeit und N die Zahl der Speicherseiten ist, die aus den niedrigerwertigen Bits bestehen, um der Seitenassoziationsregel zu entsprechen. Ein Wert von 2 bis 6 für N ist typisch.The page association rule shown in Table 1 is just one example. There are other page association rules that exist with current NAND flash memories. Generally speaking, a conventional controller of a NAND flash memory must secure at least one page of memory consisting of the lower bits of the memory before programming a page of memory consisting of the MSB of the memory to correspond to the page association rule. Since the conventional controller uses 1-level programming, the total occupancy time induced by the conventional controller can be expressed as (T 1 + T 2 ) .N + T 2 , where T 1 is the time required to read a memory page, T 2 is the time Programming time of a memory page; and N is the number of memory pages made up of the lower order bits to correspond to the page association rule. A value of 2 to 6 for N is typical.

Im Gegensatz dazu kann der Controller 130 eine Speicherseite von niedrigerwertigen Bits durch 2-Ebenen-Programmierung gleichzeitig programmieren und sichern. Mit anderen Worten ist die zur Datensicherung der Speicherseiten von niedrigerwertigen Bits erforderliche Zeit in der Belegungszeit der 2-Ebenen-Programmierung versteckt. Der Controller 130 braucht keine zusätzliche Zeit, um andere Speicherseiten zu sichern, um eine MSB-Speicherseite zu programmieren. Daher ist die durch den Controller 130 zum Programmieren einer MSB-Speicherseite induzierte Gesamtbelegungszeit einfach T2, welche viel kürzer als die durch den herkömmlichen Controller induzierte ist.In contrast, the controller can 130 program and save a memory page of low-order bits simultaneously through 2-level programming. In other words, the time required to save the memory pages of lower-order bits is hidden in the 2-level programming occupancy time. The controller 130 does not take extra time to save other pages to program an MSB page. Therefore, that is through the controller 130 total occupancy time induced for programming an MSB memory page is simply T 2 , which is much shorter than that induced by the conventional controller.

Wird zum Beispiel die in 2 gezeigte 2-Ebenen-Programmierung betrachtet, kann der Controller 130 die Daten in der Speicherseite 232 verwenden, um die Daten in der Speicherseite 231 zu ersetzen, wenn die Speicherseite 231 aufgrund von Störfällen wie etwa einer plötzlichen Stromunterbrechung beschädigt wird.For example, the in 2 Considered 2-level programming, the controller can 130 the data in the memory page 232 use the data in the memory page 231 to replace if the memory page 231 due to incidents such as a sudden power outage.

In einer Ausführungsform der vorliegenden Erfindung kann der Prozessor 110 einige Flags beibehalten, um die Übersicht über den Status einiger in dem Speicher 140 gespeicherter wichtiger Daten zu behalten. Der Controller 130 kann ein Signal an den Prozessor 110 senden, um anzugeben, dass die Daten D1 bereits in die Speicherseite 231 programmiert sind, wenn der Controller 130 die in 2 gezeigte 2-Ebenen-Programmierung beendet. Der Prozessor 110 kann als Reaktion auf das von dem Controller 130 gesendete Signal ein Flag setzen. Wenn während des Programmierens der mit der Speicherseite 231 assoziierten MSB-Speicherseite ein Störfall eintritt, können sowohl die MSB-Speicherseite als auch die Speicherseite 231 beschädigt werden. In dieser Situation kann die Speicherseite 231 einen kritischen Systemfehler wie etwa eine Blockierung des Boot-Vorgangs bewirken, weil das Flag angibt, dass die Daten D1 bereits in der Speicherseite 231 gespeichert sind, der Prozessor 110 aber beschädigte Daten anstelle der korrekten Daten D1 aus der Speicherseite 231 liest. Der Prozessor 110 kann die Sicherungsdaten in der Speicherseite 232 verwenden, um die Daten in der Speicherseite 231 zu ersetzen, wenn die Daten in der Speicherseite 231 angefordert werden und das entsprechende Flag gesetzt ist und die Speicherseite 231 beschädigt ist, um den Systemfehler zu verhindern oder zu beheben.In one embodiment of the present invention, the processor 110 Some flags keep track of the status of some in the memory 140 stored important data. The controller 130 can send a signal to the processor 110 send to indicate that the data D1 is already in the memory page 231 are programmed when the controller 130 in the 2 2-level programming shown ended. The processor 110 can be in response to that from the controller 130 sent signal set a flag. If during programming with the memory page 231 MSB memory page an incident occurs, both the MSB memory page and the memory page 231 to be damaged. In this situation, the memory page 231 cause a critical system error, such as blocking the boot process, because the flag indicates that the data D1 is already in the memory page 231 are stored, the processor 110 but damaged data instead of the correct data D1 from the memory side 231 read. The processor 110 can save the backup data in the memory page 232 use the data in the memory page 231 to replace if the data in the memory page 231 be requested and the appropriate flag is set and the memory page 231 damaged to prevent or correct the system error.

Zusammengefasst stellt die vorliegende Erfindung zur selben Zeit einen Mechanismus zur besseren Verlässlichkeit und Leistung von Daten verarbeitenden elektronischen Vorrichtungen bereit.In summary, the present invention at the same time provides a mechanism for better reliability and performance of data processing electronic devices.

Dem Fachmann wird offensichtlich sein, dass verschiedene Modifikationen und Abwandlungen an der Struktur der vorliegenden Erfindung vorgenommen werden können, ohne vom Umfang oder Wesen der Erfindung abzuweichen. Angesichts des Obengenannten ist es beabsichtigt, dass die vorliegende Erfindung Modifikationen und Abwandlungen dieser Erfindung abdeckt, vorausgesetzt, sie fallen unter den Umfang der folgenden Patentansprüche und ihrer Äquivalente.It will be apparent to those skilled in the art that various modifications and changes may be made to the structure of the present invention without departing from the scope or spirit of the invention. In view of the above, it is intended that the present invention cover modifications and variations of this invention provided they come within the scope of the following claims and their equivalents.

Claims (13)

Eine Speicherungsvorrichtung, die Folgendes beinhaltet: einen Speicher, der eine Vielzahl von Zellen beinhaltet, wobei jede der Zellen eine Vielzahl von Bits speichert und die Bits des Speichers in einer Vielzahl von Speicherseiten (Pages) des Speichers angeordnet sind; und einen Controller, der an den Speicher gekoppelt ist und einen Host-Befehl zum Programmieren von ersten Daten in eine erste Speicherseite des Speichers empfängt, wobei, wenn die erste Speicherseite nicht aus den höchstwertigen Bits der Zellen besteht, der Controller eine erste 2-Ebenen-Programmierung durchführt, um die ersten Daten in die erste Speicherseite zu programmieren, und die ersten Daten in einer zweiten Speicherseite des Speichers sichert, wobei sich die erste Speicherseite und die zweite Speicherseite in unterschiedlichen Ebenen (Planes) des Speichers befinden.A storage device including: a memory including a plurality of cells, each of the cells storing a plurality of bits and the bits of the memory being arranged in a plurality of memory pages (pages) of the memory; and a controller coupled to the memory and receiving a host instruction to program first data into a first memory page of the memory, wherein if the first memory page is not the most significant bits of the cells, the controller is a first 2-level Programming to program the first data in the first memory page, and stores the first data in a second memory page of the memory, wherein the first memory page and the second memory page are in different levels (Planes) of the memory. Speicherungsvorrichtung gemäß Anspruch 1, wobei der Speicher einen Puffer beinhaltet, die erste 2-Ebenen-Programmierung einen ersten Controller-Unterbefehl zum Programmieren der ersten Daten in die erste Speicherseite und einen zweiten Controller-Unterbefehl zum Programmieren der ersten Daten in die zweite Speicherseite beinhaltet, der Speicher den ersten Controller-Unterbefehl in den Puffer speichert, ohne den ersten Controller-Unterbefehl auszuführen, wenn der Speicher den ersten Controller-Unterbefehl von dem Controller empfängt, der Speicher sowohl den ersten Controller-Unterbefehl als auch den zweiten Controller-Unterbefehl ausführt, wenn der Speicher den zweiten Controller-Unterbefehl von dem Controller empfängt.The storage device of claim 1, wherein the memory includes a buffer, the first 2-level programming includes a first controller sub-instruction for programming the first data into the first memory page and a second controller sub-instruction for programming the first data into the second memory page, the memory stores the first controller subcommand in the buffer without executing the first controller subcommand, when the memory receives the first controller subcommand from the controller, the memory executes both the first controller subcommand and the second controller subcommand, when the memory receives the second controller subcommand from the controller. Speicherungsvorrichtung gemäß Anspruch 1, wobei, wenn der Host-Befehl ferner für das Programmieren von zweiten Daten in die zweite Speicherseite ist und wenn sowohl die erste Speicherseite als auch die zweite Speicherseite aus den höchstwertigen Bits der Zellen bestehen, der Controller eine zweite 2-Ebenen-Programmierung durchführt, um die ersten Daten in die erste Speicherseite zu programmieren und die zweiten Daten in die zweite Speicherseite zu programmieren, ohne Sicherung für die ersten Daten und die zweiten Daten in dem Speicher.The storage device of claim 1, wherein if the host instruction is further for programming second data into the second memory page and if both the first memory page and the second memory page are the most significant bits of the cells, the controller has a second 2-plane Programming to program the first data into the first memory page and to program the second data into the second memory page without backing up the first data and the second data in the memory. Speicherungsvorrichtung gemäß Anspruch 1, wobei die Speicherseiten in einer Vielzahl von Blöcken des Speichers angeordnet sind, die erste Speicherseite und die zweite Speicherseite zu unterschiedlichen Blöcken in unterschiedlichen Ebenen gehören, die erste Speicherseite und die zweite Speicherseite in den unterschiedlichen Blöcken die gleiche Indexzahl aufweisen.The storage apparatus according to claim 1, wherein the memory pages are arranged in a plurality of blocks of the memory, the first memory page and the second memory page belong to different blocks in different planes, the first memory page and the second memory page have the same index number in the different blocks. Speicherungsvorrichtung gemäß Anspruch 1, wobei der Controller die ersten Daten in der zweiten Speicherseite als Reaktion auf die Beschädigung der ersten Daten in der ersten Speicherseite verwendet, wenn die ersten Daten in der ersten Speicherseite angefordert werden.The storage device according to claim 1, wherein the controller uses the first data in the second memory page in response to the corruption of the first data in the first memory page when the first data in the first memory page is requested. Eine elektronische Vorrichtung, die Folgendes beinhaltet: die Speicherungsvorrichtung gemäß Anspruch 1; und einen Prozessor, der an die Speicherungsvorrichtung gekoppelt ist und der Speicherungsvorrichtung den Host-Befehl bereitstellt.An electronic device including: the storage device according to claim 1; and a processor coupled to the storage device and providing the host device with the storage device. Elektronische Vorrichtung gemäß Anspruch 6, wobei der Controller ein Signal an den Prozessor sendet, um anzugeben, dass die ersten Daten bereits in den Speicher programmiert sind, wenn der Controller die erste 2-Ebenen-Programmierung beendet, der Prozessor als Reaktion auf das Signal ein Flag setzt, der Prozessor als Reaktion auf das Setzen des Flags und die Beschädigung der ersten Daten in der ersten Speicherseite die ersten Daten in der zweiten Speicherseite verwendet, wenn die ersten Daten in der ersten Speicherseite angefordert werden.The electronic device of claim 6, wherein the controller sends a signal to the processor to indicate that the first data is already programmed into the memory when the controller completes the first two-level programming, the processor in response to the signal Flag, the processor sets the first data in the second memory page in response to the setting of the flag and the corruption of the first data in the first memory page when the first data in the first memory page is requested. Ein Verfahren zum Programmieren eines Speichers, wobei der Speicher eine Vielzahl von Zellen beinhaltet, wobei jede der Zellen eine Vielzahl von Bits speichert, die Bits des Speichers in einer Vielzahl von Speicherseiten des Speichers angeordnet sind, das Verfahren Folgendes beinhaltert: Empfangen eines Host-Befehl zum Programmieren von ersten Daten in eine erste Speicherseite des Speichers; und wenn die erste Speicherseite nicht aus den höchstwertigen Bits der Zellen besteht, Durchführen einer ersten 2-Ebenen-Programmierung, um die ersten Daten in die erste Speicherseite zu programmieren, und Sichern der ersten Daten in einer zweiten Speicherseite des Speichers, wobei sich die erste Speicherseite und die zweite Speicherseite in unterschiedlichen Ebenen des Speichers befinden.A method of programming a memory, the memory including a plurality of cells, each of the cells storing a plurality of bits, the bits of the memory being located in a plurality of memory pages of the memory, the method including: receiving a host command for programming first data into a first memory page of the memory; and if the first memory page is not the most significant bits of the cells, performing a first 2-level programming to add the first data to the first memory page programming, and saving the first data in a second memory page of the memory, wherein the first memory page and the second memory page are in different levels of the memory. Verfahren gemäß Anspruch 8, wobei der Speicher einen Puffer beinhaltet, die erste 2-Ebenen-Programmierung einen ersten Controller-Unterbefehl zum Programmieren der ersten Daten in die erste Speicherseite und einen zweiten Controller-Unterbefehl zum Programmieren der ersten Daten in die zweite Speicherseite beinhaltet, und das Verfahren ferner Folgendes beinhaltet: Speichern des ersten Controller-Unterbefehls in den Puffer, ohne den ersten Controller-Unterbefehl auszuführen, wenn der Speicher den ersten Controller-Unterbefehl empfängt; und Ausführen sowohl des ersten Controller-Unterbefehls als auch des zweiten Controller-Unterbefehls, wenn der Speicher den zweiten Controller-Unterbefehl empfängt.The method of claim 8, wherein the memory includes a buffer, the first 2-level programming includes a first controller sub-instruction for programming the first data into the first memory page and a second controller sub-instruction for programming the first data into the second memory page. and the method further includes: Storing the first controller subcommand in the buffer without executing the first controller subcommand when the memory receives the first controller subcommand; and Executing both the first controller subcommand and the second controller subcommand when the memory receives the second controller subcommand. Verfahren gemäß Anspruch 8, wobei, wenn der Host-Befehl ferner für das Programmieren von zweiten Daten in die zweite Speicherseite ist und wenn sowohl die erste Speicherseite als auch die zweite Speicherseite aus den höchstwertigen Bits der Zellen bestehen, das Verfahren ferner Folgendes beinhaltet: Durchführen einer zweiten 2-Ebenen-Programmierung, um die ersten Daten in die erste Speicherseite zu programmieren und die zweiten Daten in die zweite Speicherseite zu programmieren, ohne Sicherung für die ersten Daten und die zweiten Daten in dem Speicher.The method of claim 8, wherein if the host instruction is further for programming second data into the second memory page and if both the first memory page and the second memory page consist of the most significant bits of the cells, the method further includes: Performing a second 2-level programming to program the first data into the first memory page and program the second data into the second memory page without backing up the first data and the second data in the memory. Verfahren gemäß Anspruch 8, wobei die Speicherseiten in einer Vielzahl von Blöcken des Speichers angeordnet sind, die erste Speicherseite und die zweite Speicherseite zu unterschiedlichen Blöcken in unterschiedlichen Ebenen gehören, die erste Speicherseite und die zweite Speicherseite in den unterschiedlichen Blöcken die gleiche Indexzahl aufweisen.The method of claim 8, wherein the memory pages are arranged in a plurality of blocks of the memory, the first memory page and the second memory page belong to different blocks in different levels, the first memory page and the second memory page in the different blocks have the same index number. Verfahren gemäß Anspruch 8, das ferner Folgendes beinhaltet: Verwenden der ersten Daten in der zweiten Speicherseite als Reaktion auf die Beschädigung der ersten Daten in der ersten Speicherseite, wenn die ersten Daten in der ersten Speicherseite angefordert werden.The method of claim 8, further comprising: Using the first data in the second memory page in response to the corruption of the first data in the first memory page when the first data in the first memory page is requested. Verfahren gemäß Anspruch 8, das ferner Folgendes beinhaltet: Senden eines Signals, um anzugeben, dass die ersten Daten bereits in den Speicher programmiert sind, wenn die erste 2-Ebenen-Programmierung beendet ist; Setzen eines Flags als Reaktion auf das Signal; und Verwenden der ersten Daten in der zweiten Speicherseite als Reaktion auf die Beschädigung der ersten Daten in der ersten Speicherseite, wenn das Flag gesetzt ist und die ersten Daten in der ersten Speicherseite angefordert werden.The method of claim 8, further comprising: Sending a signal to indicate that the first data is already programmed in memory when the first 2-level programming is completed; Setting a flag in response to the signal; and Using the first data in the second memory page in response to the corruption of the first data in the first memory page when the flag is set and the first data in the first memory page is requested.
DE102014114038.9A 2014-01-22 2014-09-26 Storage device, electronic device and method for programming a memory Pending DE102014114038A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201461929986P 2014-01-22 2014-01-22
US61/929,986 2014-01-22
US14/340,558 2014-07-24
US14/340,558 US9245633B2 (en) 2014-01-22 2014-07-24 Storage device, electronic device, and method for programming memory

Publications (1)

Publication Number Publication Date
DE102014114038A1 true DE102014114038A1 (en) 2015-07-23

Family

ID=53497709

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014114038.9A Pending DE102014114038A1 (en) 2014-01-22 2014-09-26 Storage device, electronic device and method for programming a memory

Country Status (1)

Country Link
DE (1) DE102014114038A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8090918B2 (en) * 2009-04-24 2012-01-03 A-Data Technology (Suzhou) Co., Ltd. Electronic storage device with improved storage method
US20130173848A1 (en) * 2011-12-30 2013-07-04 Paul A. Lassa Controller and Method for Using a Transaction Flag for Page Protection
US20130311710A1 (en) * 2012-05-17 2013-11-21 Samsung Electronics Co., Ltd. Nonvolatile memory device and program method thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8090918B2 (en) * 2009-04-24 2012-01-03 A-Data Technology (Suzhou) Co., Ltd. Electronic storage device with improved storage method
US20130173848A1 (en) * 2011-12-30 2013-07-04 Paul A. Lassa Controller and Method for Using a Transaction Flag for Page Protection
US20130311710A1 (en) * 2012-05-17 2013-11-21 Samsung Electronics Co., Ltd. Nonvolatile memory device and program method thereof

Similar Documents

Publication Publication Date Title
DE112014004778B4 (en) Device and method for managing chip groups
DE112014004761B4 (en) Influencing wear leveling in storage systems
DE102011055714B4 (en) A method of programming a non-volatile memory device
DE102019116520A1 (en) DATA STORAGE SYSTEMS AND METHODS FOR IMPROVED DATA REDIRECTION BASED ON READ LEVEL VOLTAGES RELATED TO ERROR RECOVERY
DE102017128994A1 (en) Soft decoding planning
DE102018105943A1 (en) Context aware dynamic command scheduling for a data storage system
DE112007003015B4 (en) Method and device for cache-based error detection and correction in a memory
DE112015003569B4 (en) Method and system for using NAND page buffers to improve transfer buffer utilization of a solid state drive
DE102010037290A1 (en) Memory systems and methods for detecting a distribution of unstable memory cells
DE102013109235A1 (en) An abnormal word line detector flash memory system and method for detecting an abnormal word line
DE102011075023A1 (en) Indexed register access for a memory device
DE102018123926A1 (en) Dynamic multi-level decoding
DE112020004591T5 (en) L2P translation techniques in limited RAM systems
DE102017128999A1 (en) Read operation and soft decoding timing
DE3128729A1 (en) SEMICONDUCTOR STORAGE SYSTEM
DE102017212767A1 (en) Method and apparatus for increasing the reliability of a non-volatile memory
DE102010037064A1 (en) A nonvolatile memory device and system and method of programming a nonvolatile memory device
DE112016002305B4 (en) Reducing write amplification in an object storage
DE112021000776T5 (en) MANAGEMENT OF WRITE OPERATIONS IN A NON-VOLATILE MEMORY DEVICE USING A VARIABLE READ-OUT VOLTAGE LEVEL
DE102018123961A1 (en) GROUPS OF READING LAST
DE112017006698T5 (en) REACH UNIFORMLY READING TIMES IN NON-VOLATILE SEPARATE STORIES
DE102021006246A1 (en) Doubly nested programming of a memory device in a memory subsystem
DE112017005197T5 (en) Hybrid compression scheme for efficiently storing synaptic weights in neuromorphic hardware cores
DE112021000474T5 (en) performing a media management operation based on a change in write mode of a block of data in a cache
DE102019134291A1 (en) COMPENSATING BLOCK WEAR LEVELING FOR OPTIMUM SSD DURABILITY

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: HTC CORPORATION, TAOYUAN CITY, TW

Free format text: FORMER OWNER: HTC CORPORATION, TAOYUAN CITY, TAOYUAN COUNTY, TW

Owner name: HTC CORPORATION, TW

Free format text: FORMER OWNER: HTC CORPORATION, TAOYUAN CITY, TW

R082 Change of representative

Representative=s name: MURGITROYD & COMPANY, DE

R016 Response to examination communication
R082 Change of representative

Representative=s name: WAGNER & GEYER PARTNERSCHAFT MBB PATENT- UND R, DE