CN107918588A - 数据储存装置及其数据写入方法 - Google Patents
数据储存装置及其数据写入方法 Download PDFInfo
- Publication number
- CN107918588A CN107918588A CN201611005344.7A CN201611005344A CN107918588A CN 107918588 A CN107918588 A CN 107918588A CN 201611005344 A CN201611005344 A CN 201611005344A CN 107918588 A CN107918588 A CN 107918588A
- Authority
- CN
- China
- Prior art keywords
- data
- write
- block
- rank
- program
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000013500 data storage Methods 0.000 title abstract description 7
- 230000015654 memory Effects 0.000 claims abstract description 47
- 230000001052 transient effect Effects 0.000 claims description 10
- 238000007689 inspection Methods 0.000 claims description 8
- 238000012937 correction Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 238000007667 floating Methods 0.000 description 5
- 238000002679 ablation Methods 0.000 description 3
- 101000960337 Homo sapiens Intercellular adhesion molecule 5 Proteins 0.000 description 2
- 102100039919 Intercellular adhesion molecule 5 Human genes 0.000 description 2
- 108091006208 SLC3 Proteins 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0692—Multiconfiguration, e.g. local and global addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
- G11C16/105—Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/22—Safety or protection circuits preventing unauthorised or accidental access to memory cells
- G11C16/225—Preventing erasure, programming or reading when power supply voltages are outside the required ranges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/30—Power supply circuits
-
- 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/5641—Multilevel memory having cells with different number of storage levels
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/14—Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
- G11C5/143—Detection of memory cassette insertion or removal; Continuity checks of supply or ground lines; Detection of supply variations, interruptions or levels ; Switching between alternative supplies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种数据储存装置及数据写入方法。该数据储存装置包括一快闪存储器以及一控制器。快闪存储器具有多个三阶区块。控制器在数据储存装置自一断电事件中回复时,检查在断电事件发生时是否存在一未完成写入程序的三阶区块,若存在一未完成写入程序的第一三阶区块,检查是否可以成功读取该未完成写入程序的第一三阶区块中最后一个进行写入的页中的数据,其中当可成功读取页的数据时,继续将数据写入第一三阶区块。
Description
技术领域
本发明有关于一种数据储存装置的数据写入方法;特别有关于一种三阶储存单元的数据写入方法。
背景技术
快闪存储器为一种普遍的非挥发性数据储存媒体,是以电性方式抹除与程序化。以与非门型的快闪存储器(即NAND FLASH)为例,常用作记忆卡(memory card)、通用串行总线排闪存装置(USB flash device)、固态硬盘(SSD)、嵌入式快闪存储器模组(eMMC)…等的储存媒体。
快闪存储器(如,NAND FLASH)的储存阵列包括多个个区块(blocks),其中浮置栅极晶体管可用以构成快闪存储器。浮置栅极晶体管中的浮置栅极,可捕捉的电荷以储存数据。然而,储存于浮置栅极的电荷会由于快闪存储器的操作以及各种环境参数,自浮置栅极流失,造成数据保存(Data retention)的问题。其中,三阶储存单元(Triple-Level Cell,TLC)的快闪存储器相较于其他单阶储存单元(Single-Level Cell,SLC)的快闪存储器以及二阶储存单元(Multi-Level Cell,MLC)的快闪存储器,更容易受环境影响而无法保存数据。尤其是在断电事件发生时,三阶储存单元相较于其他储存单元有更大的机率被断电事件影响而造成数据损毁。
发明内容
本发明所提供的数据储存装置以及数据写入方法可藉由继续使用遭受断电攻击的三阶区块,来避免三阶区块的浪费并且减少三阶区块的抹除次数。
本发明的一实施例提供一种数据储存装置。数据储存装置包括一快闪存储器以及一控制器。快闪存储器具有多个三阶区块,并且每一三阶区块亦包括多个页。控制器在数据储存装置自一断电事件中回复时,检查在断电事件发生时是否存在一未完成写入程序的三阶区块,若存在一未完成写入程序的第一三阶区块,检查是否可成功读取未完成写入程序的第一三阶区块中最后一个进行写入的页中的数据,其中当可成功读取页的数据时,继续将数据写入第一三阶区块。在一实施例中,写入程序将一既定数量的单阶区块中的数据,写入(program)至三阶区块中之一者。
其中,当可成功读取页的数据并且第一三阶区块的写入程序已完成时,控制器检查第一三阶区块中的所有页的多个错误位元数是否超过一第一既定值。当第一三阶区块中的任一页的错误位元数大于第一既定值时,控制器自三阶区块中选择一第二三阶区块,以将原本要写入第一三阶区块的数据全部写入第二三阶区块。当对第二三阶区块写入的过程中皆未发生断电事件时,控制器在完成第二三阶区块的写入程序后,接着处理其他工作,并且省略检查第二三阶区块中的所有页的错误位元数的步骤。
又另一实施例中,控制器还用以当可成功读取页的数据但页的数据的错误位元数高于一第二既定值时,将页在断电程序前被写入的数据,写入快闪存储器中的一暂时区块。
其中,当无法成功读取页的数据时,控制器自三阶区块中选择一第三三阶区块,以将原本要写入第一三阶区块数据全部写入第三三阶区块。控制器选择三阶区块中除了第一三阶区块外,不具有有效数据的三阶区块中之一者作为第三三阶区块。
本发明的另一实施例还提供一种数据写入方法,适用于一数据储存装置,其中数据储存装置包括具有多个三阶区块的一快闪存储器。数据写入方法包括:当数据储存装置自一断电事件中回复时,检查在断电事件发生时是否存在一未完成写入程序的三阶区块;当在断电事件发生时有一未完成写入程序的第一三阶区块时,检查是否可成功读取第一三阶区块中最后一个进行写入的页中的数据;以及当可成功读取页的数据时,继续将数据写入第一三阶区块。
在一实施例中,数据写入方法还包括:当可成功读取页的数据并且第一三阶区块的写入程序已完成时,检查第一三阶区块中的所有页的多个错误位元数是否超过一第一既定值;当第一三阶区块中的任一页的错误位元数大于一第一既定值时,自三阶区块中选择一第二三阶区块;将原本要写入第一三阶区块的数据全部写入第二三阶区块;以及当对第二三阶区块写入的过程中皆未发生断电事件时,在完成第二三阶区块的写入程序后,接着处理其他工作,并且省略检查第二三阶区块中的所有页的错误位元数的步骤。
又另一实施例中,当可成功读取页的数据时数据写入方法还包括:判断页的数据的错误位元数是否高于一第二既定值;当页的数据的错误位元数高于第二既定值时,将页在断电程序前被写入的数据,写入快闪存储器中的一暂时区块;当无法成功读取页的数据时,自三阶区块中选择一第三三阶区块;以及将原本要写入第一三阶区块的数据全部写入第三三阶区块。
附图说明
图1是本发明的一种实施例的电子系统的方块图。
图2是本发明的一种实施例的快闪存储器的示意图。
图3是本发明的一种实施例的区块的示意图。
图4是本发明的一种实施例的区块的示意图。
图5是本发明的一种实施例的数据写入方法的流程图。
图6A~6B是本发明的一种实施例的数据写入方法的流程图。
符号说明
100 电子系统;
120 主机;
140 数据储存装置;
160 控制器;
162 运算单元;
164 永久存储器;
166 随机存取存储器;
180 快闪存储器;
SLC_1~SLC_N 单阶区块;
TLC_1~TLC_N 三阶区块;
Data_1~Data_5 数据;
S500~S522、S600~S622 步骤。
具体实施方式
以下将详细讨论本发明各种实施例的装置及使用方法。然而值得注意的是,本发明所提供的许多可行的发明概念可实施在各种特定范围中。这些特定实施例仅用于举例说明本发明的装置及使用方法,但非用于限定本发明的范围。
图1为本发明所提供的一电子系统的一种实施例的方块图。电子系统100包括一主机120以及一数据储存装置140。数据储存装置140包括一快闪存储器180以及一控制器160,且可根据主机110所下达的命令操作。控制器160包括一运算单元162、一永久存储器(如,只读存储器ROM)164以及随机存取存储器(RAM)166。永久存储器164与所载的程序码、数据组成固件(firmware),由运算单元162执行,使控制器160基于该固件控制该快闪存储器180。随机存取存储器(RAM)166用以载入程序码与参数以提供控制器160根据所载入的程序码与参数动作。快闪存储器180具有多个区块,其中每一区块具有多个页,其中快闪存储器180是以页为最小单位进行写入,并且以区块为最小单位进行抹除。在某些实施例中,控制器160可包括一错误校正引擎(未图示)用以对所读取的数据进行错误校正(Error Correction),以及对写入的数据进行编码以获得校验码(parity),其中错误校正引擎更可藉由读取数据来获得页中所储存的数据的错误位元。
在一实施例中,快闪存储器180中的区块可包括多个单阶区块SLC_1~SLC_N以及多个三阶区块TLC_1~TLC_N,如图2所示,其中每一单阶区块SLC_1~SLC_N具有多个页,并且每一三阶区块TLC_1~TLC_N亦具有多个页。单阶区块SLC_1~SLC_N用以以单阶储存单元模式(Single-Level Cell mode,SLC mode)写入数据的区块,并且三阶区块用以以三阶储存单元模式(Triple-Level Cell mode,TLC mode)写入数据的区块。另外,三阶区块TLC_1~TLC_N可储存的数据量是单阶区块SLC_1~SLC_N的三倍。详细而言,三阶区块以及单阶区块中的页皆是快闪存储器180中之页,其物理构造是相同的。然而,三阶区块中之页是藉由电压对区块进行多次整理(Program)来写入数据,而单阶区块中之页是藉由电压对区块进行一次整理(Program)来写入数据。在一实施例中,三阶区块中之页是藉由电压对区块进行三次整理(Program)来写入数据。换言之,三个具有有效数据的单阶区块可整理为一个三阶区块,但本发明不限于此。
值得注意的是,本发明所揭示的快闪存储器180为操作于三阶储存单元(Triple-Level Cell,TLC)模式的存储器,并且包括单阶储存单元(Single-Level Cell,SLC),其中数据储存至三阶区块TLC_1~TLC_N之前,需要先将数据储存至相应的多个个单阶区块SLC_1~SLC_N。在数据的储存过程中,控制器160被设置为用以对单阶区块SLC_1~SLC_N中的一预定数量的阶区块进行一预定次数的读取程序,以将单阶储存单元的数据写入(program)至一个三阶区块中。详细而言,当控制器160需要将数据写入快闪存储器180中的一特定三阶区块时,控制器160会先将数据写入单阶区块SLC_1~SLC_N中的一既定数量的特定单阶区块。接着,控制器160对特定单阶区块进行一预定次数的读取程序,以分别根据所读取的数据写入(program)特定三阶区块,进而将数据储存至特定三阶区块中。换言之,三阶区块的写入程序将一既定数量的单阶区块中的数据,写入(program)至所需写入的三阶区块中。
在一实施例中,既定数量可为3,但本发明不限于此。在其他实施例中,既定数量亦可为4、5、6、7、8或者其他正整数。举例而言,控制器160需要将数据写入快闪存储器180中的一特定三阶区块TLC_1,如图3所示。控制器160会先将数据写入3个的特定单阶区块SLC_1~SLC_3。接着,控制器160分别对特定单阶区块SLC_1~SLC_3中的三个第一页进行第一次读取程序,以根据特定单阶区块SLC_1~SLC_3中的三个第一页的数据对特定三阶区块TLC_1中的一个第一页进行第一次整理。接着,控制器160分别对特定单阶区块SLC_1~SLC_3中的同样三个第一页进行第二次读取程序,以根据特定单阶区块SLC_1~SLC_3中的三个第一页的数据对特定三阶区块TLC_1中的该第一页进行第二次整理。最后,控制器160分别对特定单阶区块SLC_1~SLC_3中的三个第一页进行第三次读取程序,以根据特定单阶区块SLC_1~SLC_3中的三个第一页的数据对特定三阶区块TLC_1中的该第一页进行第三次整理。经由上述的三次整理,单阶区块SLC_1~SLC_3中的三个第一页的数据已被写入特定三阶区块TLC_1中的该第一页,依此类推,直到特定单阶区块SLC_1~SLC_3中的所有页的数据皆被整理至特定三阶区块TLC_1为止。
如上所述,对三阶区块TLC_1~TLC_N进行写入所需要的时间较长。因此,断电事件较容易发生在对三阶区块TLC_1~TLC_N写入的过程中。在一实施例中,每当一断电事件发生在对三阶区块写入的过程中时,控制器160就选取一个新的三阶区块,并且将原本要写入至原三阶区块的单阶区块中的数据,重新写入新的三阶区块中。值得注意的是,控制器160可在数据储存装置140自断电事件回复后,藉由快闪存储器180或者其他存储器装置中的表,来判断是否有三阶区块的写入程序被断电事件打断。举例而言,快闪存储器180可具有一表用以记录某页或者某区块开始被写入,以及另一表用以记录某页或者某区块已写入完毕。在本实施例中,快闪存储器180可藉由比较该两个表,来判断是否有写入程序被打断,但本发明不限于此。在其他实施例中,数据储存装置140亦可藉由一个表、多个表或者旗标,来记录数据写入的状况。另外,只要已开始写入程序的三阶区块中的任一页没有被写完,该三阶区块的写入程序即没有完成。
在某些情况下,例如数据储存装置140的制造过程或者测试过程中,数据储存装置140容易连续地遭受断电攻击。因此,上述的方法会导致控制器160连续地选择新的区块以及无法完成目前的写入程序,造成三阶区块以及控制器160资源的浪费。
有鉴于此,在本发明的一实施例中,控制器160在数据储存装置140自一断电事件中回复时,检查在断电事件发生时是否存在未完成写入程序的三阶区块。接着,控制器160检查是否可成功读取未完成写入程序的一第一三阶区块中最后一个进行写入的一页中的数据。值得注意的是,在本发明中,无法被成功读取指的是无法藉由错误校正或者其他方式将储存于页中的数据正确地读出。反之,成功读取指的是可藉由错误校正或者其他方式将储存于页中的数据正确地读出。当可成功读取页的数据时,控制器160不会放弃原本的第一三阶区块,并且继续将数据写入第一三阶区块以完成相应于第一三阶区块的写入程序。当无法成功读取页的数据时,控制器160自三阶区块中选择一第三三阶区块,以将原本要写入第一三阶区块的数据全部写入第二三阶区块。换言之,控制器160将原本要写入至第一三阶区块的单阶区块中的数据,重新写入第二三阶区块中。值得注意的是,控制器160选择三阶区块中除了第一三阶区块外,不具有有效数据的三阶区块以作为第三三阶区块,但本发明不限于此。在其他实施例中,控制器160亦可根据抹除次数、写入次数或者其他参考值,来选择新的三阶区块。
在一实施例中,当第一三阶区块的写入程序被完成时,控制器160更用以检查第一三阶区块中的所有页的多个错误位元数是否超过一第一既定值。当第一三阶区块中的任一页的错误位元数大于第一既定值时,控制器160自三阶区块中选择一第二三阶区块,以将原本要写入第一三阶区块的数据全部写入第二三阶区块,但本发明不限于此。值得注意的是,上述的第一既定值由电路设计者所决定或者特殊规格所制定的值,其中电路设计者可根据其电路对于错误位元的校正能力来决定第一既定值。举例而言,当数据的错误位元大于50则无法被成功校正时,电路设计者可将第一既定值设定为45~50之间的值,但本发明不限于此。换言之,第一既定值为用以判断数据是否可能在未来或者现在无法被成功校正的临界值。
又另一实施例中,当第一三阶区块中最后被写入的页的数据可被成功读取但可被成功读取的页的数据的错误位元数高于一第二既定值时,控制器160还用以将页或者第一三阶区块在断电程序前被写入的数据,写入快闪存储器180中的一暂时区块。换言之,控制器160将自页或者整个第一三阶区块所读取的数据写入暂时区块中。在本实施例中,暂时区块为快闪存储器180中的一单阶区块或者一三阶区块,用以暂时储存其他区块中较不稳定的数据。当其他区块中不稳定的数据丢失或者无法被校正以成功读取时,控制器160可自暂时区块,重新获得已丢失或者无法被校正以成功读取的数据。值得注意的是,上述的第二既定值是由电路设计者所决定或者特殊规格所制定的值,其中电路设计者可根据其电路对于错误位元的校正能力来决定第二既定值。举例而言,当数据的错误位元大于50则无法被成功校正时,电路设计者可将第二既定值设定为45~50之间的值,但本发明不限于此。换言之,第二既定值为用以判断数据是否可能在未来或者现在无法被成功校正的临界值。
另外,当三阶区块写入的过程中并未发生断电事件时,控制器160在完成三阶区块的写入程序后,接着处理其他工作,并且省略检查所写入的三阶区块中之所有页的错误位元数的步骤。换言之,当开始一第一三阶区块的写入过程至第一三阶区块已被写完的过程中皆未发生断电事件时,控制器160则不会检查第一三阶区块中的所有页的错误位元是否超过一第一既定值。
举例而言,如图4所示,控制器160要将单阶区块SLC_1~SLC_3中的数据,写入/整理(program)至三阶区块TLC_4。假设数据Data_1~Data_4皆被写入页P1~P4中,并且一断电事件发生在控制器160将数据Data_5写入三阶区块TLC_4中的页P5时。在本实施例中,控制器160则会在数据储存装置140自断电事件中回复时,检查到断电事件发生在三阶区块TLC_4的写入过程中。换言之,控制器160判断有三阶区块未完成写入程序。接着,控制器160检查是否可成功读取三阶区块TLC_4中最后一个进行写入的页P5中的数据。
当页P5的数据可被成功读取时,控制器160不会放弃三阶区块TLC_4,并且自三阶区块TLC_4的页P6开始继续将数据写入第一三阶区块以完成相应于第一三阶区块的写入程序。换言之,控制器160自三阶区块TLC_4的页P6开始写入数据,直到三阶区块TLC_4的页10也被写入数据。另外,当三阶区块TLC_4中的页P5的数据可被成功读取但页P5的数据的错误位元数高于一第二既定值时,控制器160还用以将自页P5所读取的数据Data_5写入快闪存储器180中的一暂时区块。或者,当三阶区块TLC_4中的页P5的数据可被成功读取但页P5的数据的错误位元数高于一第二既定值时,控制器160还用以将自页P1~P5所读取的数据Data_1~Data_5写入快闪存储器180中的一暂时区块,并且接着完成三阶区块TLC_4的写入程序。接着,当三阶区块TLC_4的写入程序被完成时(三阶区块TLC_4的页P1~P10被写完时),控制器160检查三阶区块TLC_4中的所有页P1~P10的多个错误位元数是否超过一第一既定值。当三阶区块TLC_4中的任一页的错误位元数大于第一既定值时,控制器160自三阶区块TLC_1~TLCN中选择另一三阶区块(例如TLC_5),以将原本要写入三阶区块TLC_4的数据全部写入三阶区块TLC_5。换言之,控制器160将单阶区块SLC_1~SLC3中的数据,重新写入三阶区块TLC_5中。
反之,当页P5的数据无法被成功读取时,控制器160自三阶区块TLC_1~TLCN中选择不具有有效数的之一三阶区块(例如TLC_5),以将原本要写入三阶区块TLC_4的数据全部写入三阶区块TLC_5。换言之,控制器160将单阶区块SLC_1~SLC3中的数据,重新写入三阶区块TLC_5中。
图5是本发明的一种实施例的数据写入方法的流程图。数据写入方法适用于图1所示的数据储存装置140。流程开始于步骤S500。
在步骤S500中,数据储存装置140自一断电事件中回复。值得注意的是,本发明所指的断电事件包括数据储存装置140预期地或者非预期地被切断电源,但本发明不限于此。在其他实施例中,断电事件可仅包括数据储存装置140非预期地被切断电源。
接着,在步骤S502中,控制器160检查在断电事件发生时快闪存储器180是否存在未完成写入程序的三阶区块。当控制器160判断在断电事件发生时有未完成写入程序的一第一三阶区块时,流程进行至步骤S504。当控制器160判断在断电事件发生时没有未完成写入程序的三阶区块时,流程结束于步骤S502。
在步骤S504中,控制器160检查是否可成功读取未完成写入程序的第一三阶区块中最后一个进行写入的一页中的数据。当第一三阶区块中页中的数据可被成功读取时,流程进行至步骤S510。当第一三阶区块中页中的数据无法被成功读取时,流程进行至步骤S520。值得注意的是,在本发明中,无法被成功读取指的是无法藉由错误校正或者其他方式将储存于页中的数据正确地读出。反之,成功读取指的是可藉由错误校正或者其他方式将储存于页中的数据正确地读出。
在步骤S510中,控制器160不会放弃原本的第一三阶区块,并且继续将数据写入第一三阶区块以完成相应于第一三阶区块的写入程序。流程结束于步骤S510。
在步骤S520中,控制器160自三阶区块中选择一第三三阶区块,以取代受损的三阶区块。值得注意的是,控制器160选择三阶区块中除了第一三阶区块外,不具有有效数据的三阶区块以作为第三三阶区块,但本发明不限于此。在其他实施例中,控制器160亦可根据抹除次数、写入次数或者其他参考值,来选择新的三阶区块。
接着,在步骤S522中,控制器160将原本要写入第一三阶区块的数据全部写入第三三阶区块。换言之,控制器160将原本要写入至第一三阶区块的单阶区块中的数据,重新写入第三三阶区块中。换言之,控制器160将原本要写入至第一三阶区块的单阶区块中的数据,重新写入至第三三阶区块中。流程结束于步骤S522。值得注意的是,当三阶区块写入的过程中并未发生断电事件时,控制器160在完成三阶区块的写入程序后,接着处理其他工作,并且省略检查所写入的三阶区块中的所有页的错误位元数的步骤。换言之,当开始一第一三阶区块的写入过程至第一三阶区块已被写完的过程中皆未发生断电事件时,控制器160则不会检查第一三阶区块中的所有页的错误位元是否超过一第一既定值。
图6A~6B是本发明的一种实施例的数据写入方法的流程图。数据写入方法适用于图1所示的数据储存装置140。流程开始于步骤S600。其中,步骤S600、S602、S604、S610、S620、S622相似于图5的S500、S502、S504、S510、S520、S522,故其说明可参考图5,在此不再赘述。
在步骤S606中,第一三阶区块中最后被写入的页的数据可成功读取时,控制器160判断可被成功读取的页的数据的错误位元是否超过一第二既定值。当可被成功读取的页的数据的错误位元超过一第二既定值时,流程进行至步骤S608,否则,流程进行至步骤S610。
在步骤S608中,控制器160将错误位元超过第二既定值的页或者第一三阶区块在断电程序前被写入的数据,写入快闪存储器180中的一暂时区块。换言之,控制器160将自错误位元超过第二既定值的页或者整个第一三阶区块所读取的数据写入暂时区块中。
在步骤S614中,控制器160检查第一三阶区块中的所有页的多个错误位元数是否超过一第一既定值。当第一三阶区块中的任一页的错误位元数大于第一既定值时,流程进行至步骤S616;否则,流程结束于步骤S614。
接着,在步骤S616中,控制器160自三阶区块中选择一第二三阶区块。值得注意的是,控制器160选择三阶区块中除了第一三阶区块外,不具有有效数据的三阶区块以作为第二三阶区块,但本发明不限于此。在其他实施例中,控制器160亦可根据抹除次数、写入次数或者其他参考值,来选择二阶区块。
接着,在步骤S618中,控制器160将原本要写入第一三阶区块的数据全部写入第二三阶区块。换言之,控制器160将原本要写入第一三阶区块的单阶区块中的数据,重新写入第二三阶区块中。流程结束于步骤S618。
如上所述,本发明所提供的数据储存装置140以及数据写入方法可藉由继续使用遭受断电攻击的三阶区块,来避免三阶区块的浪费并且减少三阶区块的抹除次数。另外,本发明所提供的数据储存装置140以及数据写入方法可藉由省略未被断电攻击的三阶区块的检查,来增进数据储存装置140的效能。
本发明的方法,或特定型态或其部份,可以以程序码的型态存在。程序码可储存于实体媒体,如软盘、光盘、硬盘、或是任何其他机器可读取(如电脑可读取)储存媒体,亦或不限于外在形式的电脑程序产品,其中,当程序码被机器,如电脑载入且执行时,此机器变成用以参与本发明的装置。程序码也可透过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序码被机器,如电脑接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理单元实作时,程序码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。
以上所述,仅为本发明的较佳实施例而已,当不能以此限定本发明实施的范围,即凡依本发明申请专利范围及发明说明内容所作的简单的等效变化与修饰,皆仍属本发明专利涵盖的范围内。另外本发明的任一实施例或申请专利范围不须达成本发明所揭示的全部目的或优点或特点。此外,摘要部分和标题仅是用来辅助专利文件搜寻之用,并非用来限制本发明的权利范围。
Claims (16)
1.一种数据储存装置,包括:
一快闪存储器,具有多个三阶区块,其中每一这些三阶区块包括多个页;以及
一控制器,在该数据储存装置自一断电事件中回复时,检查在该断电事件发生时是否存在一未完成写入程序的三阶区块,若存在一未完成写入程序的第一三阶区块,检查是否可以成功读取该未完成写入程序之第一三阶区块中最后一个写入的页中的数据,当可成功读取该页的数据时,继续将数据写入该第一三阶区块。
2.根据权利要求1所述的数据储存装置,其特征在于,该快闪存储器具有多个单阶区块,并且每一这些单阶区块包括多个页,其中写入程序将一既定数量的这些单阶区块中的数据,写入至这些三阶区块中之一者。
3.根据权利要求1所述的数据储存装置,其特征在于,当该页的数据可被成功读取并且该未完成写入程序的第一三阶区块之写入程序已完成时,该控制器检查该未完成写入程序之第一三阶区块中的所有这些页的多个错误位元数是否超过一第一既定值。
4.根据权利要求3所述的数据储存装置,其特征在于,当该未完成写入程序的第一三阶区块中的任一这些页的该错误位元数大于该第一既定值时,该控制器自这些三阶区块中选择一第二三阶区块,以将原本要写入该未完成写入程序的第一三阶区块的数据全部写入该第二三阶区块。
5.根据权利要求4所述的数据储存装置,其特征在于,当对该第二三阶区块写入的过程中皆未发生断电事件时,该控制器在完成该第二三阶区块的写入程序后,接着处理其他工作,并且省略检查该第二三阶区块中的所有这些页的错误位元数的步骤。
6.根据权利要求1所述的数据储存装置,其特征在于,该控制器还用以当该页的数据可被成功读取但可被成功读取的该页的数据的错误位元数高于一第二既定值时,将可被成功读取的该页在该断电程序前被写入的数据,写入该快闪存储器中的一暂时区块。
7.根据权利要求1所述的数据储存装置,其特征在于,当该页的数据无法被成功读取时,该控制器自这些三阶区块中选择一第三三阶区块,以将原本要写入该未完成写入程序的第一三阶区块的数据全部写入该第三三阶区块。
8.根据权利要求7所述的数据储存装置,其特征在于,该控制器选择这些三阶区块中除了该未完成写入程序的第一三阶区块外,不具有有效数据的这些三阶区块中之一者作为该第三三阶区块。
9.一种数据写入方法,适用于一数据储存装置,其中该数据储存装置包括具有多个三阶区块的一快闪存储器,该数据写入方法包括:
当该数据储存装置自一断电事件中回复时,检查在该断电事件发生时是否存在一未完成写入程序的三阶区块;
当在该断电事件发生时有一未完成写入程序的第一三阶区块时,检查是否可以成功读取该未完成写入程序的第一三阶区块中最后一个进行写入的一页中的数据;以及
当该页的数据可被成功读取时,继续将数据写入该未完成写入程序的第一三阶区块。
10.根据权利要求9所述的数据写入方法,其特征在于,该快闪存储器还具有多个页,其中写入程序将一既定数量的这些单阶区块中的数据,写入至这些三阶区块中之一者。
11.根据权利要求9所述的数据写入方法,其特征在于,还包括当该页的数据可被成功读取并且该未完成写入程序的第一三阶区块的写入程序已完成时,检查该第一三阶区块中的所有这些页的多个错误位元数是否超过一第一既定值。
12.根据权利要求11所述的数据写入方法,其特征在于,还包括:
当该未完成写入程序的第一三阶区块中的任一这些页的错误位元数大于一第一既定值时,自这些三阶区块中选择一第二三阶区块;以及
将原本要写入该未完成写入程序的第一三阶区块的数据全部写入该第二三阶区块。
13.根据权利要求12所述的数据写入方法,其特征在于,还包括当对该第二三阶区块写入的过程中皆未发生断电事件时,在完成该第二三阶区块的写入程序后,接着处理其他工作,并且省略检查该第二三阶区块中的所有这些页的错误位元数的步骤。
14.根据权利要求所述的数据写入方法,其特征在于,当该页的数据可被成功读取时该数据写入方法还包括:
判断可被成功读取的该页的数据的错误位元数是否高于一第二既定值;以及
当可被成功读取的该页的数据的错误位元数高于该第二既定值时,将可被成功读取的该页在该断电程序前被写入的数据,写入该快闪存储器中的一暂时区块。
15.根据权利要求9所述的数据写入方法,其特征在于,还包括:
当该页的数据无法被成功读取时,自这些三阶区块中选择一第三三阶区块;以及
将原本要写入该未完成写入程序的第一三阶区块的数据全部写入该第三三阶区块。
16.根据权利要求15所述的数据写入方法,其特征在于,该自这些三阶区块中选择该第三三阶区块的步骤还包括选择这些三阶区块中除了该未完成写入程序的第一三阶区块外,不具有有效数据的这些三阶区块中之一者作为该第三三阶区块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105132526 | 2016-10-07 | ||
TW105132526A TWI607312B (zh) | 2016-10-07 | 2016-10-07 | 資料儲存裝置及其資料寫入方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107918588A true CN107918588A (zh) | 2018-04-17 |
Family
ID=61230700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611005344.7A Pending CN107918588A (zh) | 2016-10-07 | 2016-11-15 | 数据储存装置及其数据写入方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10061512B2 (zh) |
CN (1) | CN107918588A (zh) |
TW (1) | TWI607312B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110874187A (zh) * | 2018-09-03 | 2020-03-10 | 慧荣科技股份有限公司 | 数据储存装置与数据处理方法 |
CN111949196A (zh) * | 2019-05-16 | 2020-11-17 | 北京兆易创新科技股份有限公司 | 一种数据重建方法、装置及存储设备 |
CN112306375A (zh) * | 2019-08-01 | 2021-02-02 | 北京兆易创新科技股份有限公司 | 用户数据搬移的恢复方法、装置、电子设备及存储介质 |
Families Citing this family (101)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US12008266B2 (en) | 2010-09-15 | 2024-06-11 | Pure Storage, Inc. | Efficient read by reconstruction |
US8589640B2 (en) | 2011-10-14 | 2013-11-19 | Pure Storage, Inc. | Method for maintaining multiple fingerprint tables in a deduplicating storage system |
US11068363B1 (en) | 2014-06-04 | 2021-07-20 | Pure Storage, Inc. | Proactively rebuilding data in a storage cluster |
US9836234B2 (en) | 2014-06-04 | 2017-12-05 | Pure Storage, Inc. | Storage cluster |
US9367243B1 (en) | 2014-06-04 | 2016-06-14 | Pure Storage, Inc. | Scalable non-uniform storage sizes |
US10574754B1 (en) | 2014-06-04 | 2020-02-25 | Pure Storage, Inc. | Multi-chassis array with multi-level load balancing |
US9218244B1 (en) | 2014-06-04 | 2015-12-22 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US11652884B2 (en) | 2014-06-04 | 2023-05-16 | Pure Storage, Inc. | Customized hash algorithms |
US11960371B2 (en) | 2014-06-04 | 2024-04-16 | Pure Storage, Inc. | Message persistence in a zoned system |
US11604598B2 (en) | 2014-07-02 | 2023-03-14 | Pure Storage, Inc. | Storage cluster with zoned drives |
US11886308B2 (en) | 2014-07-02 | 2024-01-30 | Pure Storage, Inc. | Dual class of service for unified file and object messaging |
US9021297B1 (en) | 2014-07-02 | 2015-04-28 | Pure Storage, Inc. | Redundant, fault-tolerant, distributed remote procedure call cache in a storage system |
US9836245B2 (en) | 2014-07-02 | 2017-12-05 | Pure Storage, Inc. | Non-volatile RAM and flash memory in a non-volatile solid-state storage |
US9747229B1 (en) | 2014-07-03 | 2017-08-29 | Pure Storage, Inc. | Self-describing data format for DMA in a non-volatile solid-state storage |
US9811677B2 (en) | 2014-07-03 | 2017-11-07 | Pure Storage, Inc. | Secure data replication in a storage grid |
US10853311B1 (en) | 2014-07-03 | 2020-12-01 | Pure Storage, Inc. | Administration through files in a storage system |
US10983859B2 (en) | 2014-08-07 | 2021-04-20 | Pure Storage, Inc. | Adjustable error correction based on memory health in a storage unit |
US9483346B2 (en) | 2014-08-07 | 2016-11-01 | Pure Storage, Inc. | Data rebuild on feedback from a queue in a non-volatile solid-state storage |
US9495255B2 (en) | 2014-08-07 | 2016-11-15 | Pure Storage, Inc. | Error recovery in a storage cluster |
US9082512B1 (en) | 2014-08-07 | 2015-07-14 | Pure Storage, Inc. | Die-level monitoring in a storage cluster |
US10079711B1 (en) | 2014-08-20 | 2018-09-18 | Pure Storage, Inc. | Virtual file server with preserved MAC address |
US9940234B2 (en) | 2015-03-26 | 2018-04-10 | Pure Storage, Inc. | Aggressive data deduplication using lazy garbage collection |
US10082985B2 (en) | 2015-03-27 | 2018-09-25 | Pure Storage, Inc. | Data striping across storage nodes that are assigned to multiple logical arrays |
US10178169B2 (en) | 2015-04-09 | 2019-01-08 | Pure Storage, Inc. | Point to point based backend communication layer for storage processing |
US9672125B2 (en) | 2015-04-10 | 2017-06-06 | Pure Storage, Inc. | Ability to partition an array into two or more logical arrays with independently running software |
US9817576B2 (en) | 2015-05-27 | 2017-11-14 | Pure Storage, Inc. | Parallel update to NVRAM |
US10846275B2 (en) | 2015-06-26 | 2020-11-24 | Pure Storage, Inc. | Key management in a storage device |
US10983732B2 (en) | 2015-07-13 | 2021-04-20 | Pure Storage, Inc. | Method and system for accessing a file |
US10108355B2 (en) | 2015-09-01 | 2018-10-23 | Pure Storage, Inc. | Erase block state detection |
US11341136B2 (en) | 2015-09-04 | 2022-05-24 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US11269884B2 (en) | 2015-09-04 | 2022-03-08 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US9768953B2 (en) | 2015-09-30 | 2017-09-19 | Pure Storage, Inc. | Resharing of a split secret |
US10762069B2 (en) | 2015-09-30 | 2020-09-01 | Pure Storage, Inc. | Mechanism for a system where data and metadata are located closely together |
US10853266B2 (en) | 2015-09-30 | 2020-12-01 | Pure Storage, Inc. | Hardware assisted data lookup methods |
US9843453B2 (en) | 2015-10-23 | 2017-12-12 | Pure Storage, Inc. | Authorizing I/O commands with I/O tokens |
US10007457B2 (en) | 2015-12-22 | 2018-06-26 | Pure Storage, Inc. | Distributed transactions with token-associated execution |
US10261690B1 (en) | 2016-05-03 | 2019-04-16 | Pure Storage, Inc. | Systems and methods for operating a storage system |
US11861188B2 (en) | 2016-07-19 | 2024-01-02 | Pure Storage, Inc. | System having modular accelerators |
US9672905B1 (en) | 2016-07-22 | 2017-06-06 | Pure Storage, Inc. | Optimize data protection layouts based on distributed flash wear leveling |
US10768819B2 (en) | 2016-07-22 | 2020-09-08 | Pure Storage, Inc. | Hardware support for non-disruptive upgrades |
US11604690B2 (en) | 2016-07-24 | 2023-03-14 | Pure Storage, Inc. | Online failure span determination |
US10203903B2 (en) | 2016-07-26 | 2019-02-12 | Pure Storage, Inc. | Geometry based, space aware shelf/writegroup evacuation |
US11886334B2 (en) | 2016-07-26 | 2024-01-30 | Pure Storage, Inc. | Optimizing spool and memory space management |
US11734169B2 (en) | 2016-07-26 | 2023-08-22 | Pure Storage, Inc. | Optimizing spool and memory space management |
US11797212B2 (en) | 2016-07-26 | 2023-10-24 | Pure Storage, Inc. | Data migration for zoned drives |
US10366004B2 (en) | 2016-07-26 | 2019-07-30 | Pure Storage, Inc. | Storage system with elective garbage collection to reduce flash contention |
US11422719B2 (en) | 2016-09-15 | 2022-08-23 | Pure Storage, Inc. | Distributed file deletion and truncation |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
US10613974B2 (en) | 2016-10-04 | 2020-04-07 | Pure Storage, Inc. | Peer-to-peer non-volatile random-access memory |
US10481798B2 (en) | 2016-10-28 | 2019-11-19 | Pure Storage, Inc. | Efficient flash management for multiple controllers |
US11550481B2 (en) | 2016-12-19 | 2023-01-10 | Pure Storage, Inc. | Efficiently writing data in a zoned drive storage system |
US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
US11955187B2 (en) | 2017-01-13 | 2024-04-09 | Pure Storage, Inc. | Refresh of differing capacity NAND |
US9747158B1 (en) | 2017-01-13 | 2017-08-29 | Pure Storage, Inc. | Intelligent refresh of 3D NAND |
US10528488B1 (en) | 2017-03-30 | 2020-01-07 | Pure Storage, Inc. | Efficient name coding |
US11016667B1 (en) | 2017-04-05 | 2021-05-25 | Pure Storage, Inc. | Efficient mapping for LUNs in storage memory with holes in address space |
US10516645B1 (en) | 2017-04-27 | 2019-12-24 | Pure Storage, Inc. | Address resolution broadcasting in a networked device |
US10141050B1 (en) | 2017-04-27 | 2018-11-27 | Pure Storage, Inc. | Page writes for triple level cell flash memory |
US11782625B2 (en) | 2017-06-11 | 2023-10-10 | Pure Storage, Inc. | Heterogeneity supportive resiliency groups |
US10425473B1 (en) | 2017-07-03 | 2019-09-24 | Pure Storage, Inc. | Stateful connection reset in a storage cluster with a stateless load balancer |
US10402266B1 (en) | 2017-07-31 | 2019-09-03 | Pure Storage, Inc. | Redundant array of independent disks in a direct-mapped flash storage system |
US10831935B2 (en) | 2017-08-31 | 2020-11-10 | Pure Storage, Inc. | Encryption management with host-side data reduction |
US11024390B1 (en) | 2017-10-31 | 2021-06-01 | Pure Storage, Inc. | Overlapping RAID groups |
US11354058B2 (en) | 2018-09-06 | 2022-06-07 | Pure Storage, Inc. | Local relocation of data stored at a storage device of a storage system |
US12067274B2 (en) | 2018-09-06 | 2024-08-20 | Pure Storage, Inc. | Writing segments and erase blocks based on ordering |
US10496330B1 (en) | 2017-10-31 | 2019-12-03 | Pure Storage, Inc. | Using flash storage devices with different sized erase blocks |
US10545687B1 (en) | 2017-10-31 | 2020-01-28 | Pure Storage, Inc. | Data rebuild when changing erase block sizes during drive replacement |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
US10976948B1 (en) | 2018-01-31 | 2021-04-13 | Pure Storage, Inc. | Cluster expansion mechanism |
US10467527B1 (en) | 2018-01-31 | 2019-11-05 | Pure Storage, Inc. | Method and apparatus for artificial intelligence acceleration |
US11036596B1 (en) | 2018-02-18 | 2021-06-15 | Pure Storage, Inc. | System for delaying acknowledgements on open NAND locations until durability has been confirmed |
US12079494B2 (en) | 2018-04-27 | 2024-09-03 | Pure Storage, Inc. | Optimizing storage system upgrades to preserve resources |
US11385792B2 (en) | 2018-04-27 | 2022-07-12 | Pure Storage, Inc. | High availability controller pair transitioning |
KR20200011832A (ko) * | 2018-07-25 | 2020-02-04 | 에스케이하이닉스 주식회사 | 메모리 시스템에서의 데이터 처리 방법 및 장치 |
US11500570B2 (en) | 2018-09-06 | 2022-11-15 | Pure Storage, Inc. | Efficient relocation of data utilizing different programming modes |
US11868309B2 (en) | 2018-09-06 | 2024-01-09 | Pure Storage, Inc. | Queue management for data relocation |
US10976947B2 (en) | 2018-10-26 | 2021-04-13 | Pure Storage, Inc. | Dynamically selecting segment heights in a heterogeneous RAID group |
KR102637478B1 (ko) * | 2018-12-05 | 2024-02-15 | 삼성전자주식회사 | 오픈 채널 솔리드 스테이트 드라이브, 이를 포함하는 비휘발성 메모리 시스템 및 오픈 채널 솔리드 스테이트 드라이브의 파워 로스 프로텍션 방법 |
KR102610395B1 (ko) | 2019-01-22 | 2023-12-05 | 삼성전자주식회사 | 비휘발성 메모리 장치를 포함하는 메모리 시스템 |
US11334254B2 (en) | 2019-03-29 | 2022-05-17 | Pure Storage, Inc. | Reliability based flash page sizing |
KR20200120159A (ko) * | 2019-04-11 | 2020-10-21 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 이의 동작 방법 |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
US11487665B2 (en) | 2019-06-05 | 2022-11-01 | Pure Storage, Inc. | Tiered caching of data in a storage system |
US11281394B2 (en) | 2019-06-24 | 2022-03-22 | Pure Storage, Inc. | Replication across partitioning schemes in a distributed storage system |
US11029874B2 (en) * | 2019-07-30 | 2021-06-08 | Western Digital Technologies, Inc. | Rolling XOR protection in efficient pipeline |
US11893126B2 (en) | 2019-10-14 | 2024-02-06 | Pure Storage, Inc. | Data deletion for a multi-tenant environment |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
US11847331B2 (en) | 2019-12-12 | 2023-12-19 | Pure Storage, Inc. | Budgeting open blocks of a storage unit based on power loss prevention |
US11188432B2 (en) | 2020-02-28 | 2021-11-30 | Pure Storage, Inc. | Data resiliency by partially deallocating data blocks of a storage device |
CN113535459B (zh) * | 2020-04-14 | 2024-04-12 | 慧荣科技股份有限公司 | 响应电源事件的数据存取方法及装置 |
US11474986B2 (en) | 2020-04-24 | 2022-10-18 | Pure Storage, Inc. | Utilizing machine learning to streamline telemetry processing of storage media |
US12056365B2 (en) | 2020-04-24 | 2024-08-06 | Pure Storage, Inc. | Resiliency for a storage system |
US11487455B2 (en) | 2020-12-17 | 2022-11-01 | Pure Storage, Inc. | Dynamic block allocation to optimize storage system performance |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
US12093545B2 (en) | 2020-12-31 | 2024-09-17 | Pure Storage, Inc. | Storage system with selectable write modes |
US12067282B2 (en) | 2020-12-31 | 2024-08-20 | Pure Storage, Inc. | Write path selection |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
US12061814B2 (en) | 2021-01-25 | 2024-08-13 | Pure Storage, Inc. | Using data similarity to select segments for garbage collection |
US11507597B2 (en) | 2021-03-31 | 2022-11-22 | Pure Storage, Inc. | Data replication to meet a recovery point objective |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090150600A1 (en) * | 2007-11-29 | 2009-06-11 | Takaya Suda | Memory system |
CN102236672A (zh) * | 2010-05-06 | 2011-11-09 | 深圳市腾讯计算机系统有限公司 | 一种数据导入方法及装置 |
CN102591807A (zh) * | 2011-12-30 | 2012-07-18 | 记忆科技(深圳)有限公司 | 一种固态硬盘掉电和写异常处理方法及系统 |
CN103218274A (zh) * | 2013-03-15 | 2013-07-24 | 华为技术有限公司 | 一种预防故障累加的方法和固态硬盘 |
CN104133740A (zh) * | 2014-07-28 | 2014-11-05 | 浪潮软件集团有限公司 | 异常掉电数据恢复的方法 |
US20140359346A1 (en) * | 2013-05-31 | 2014-12-04 | Silicon Motion, Inc. | Data storage device and error correction method thereof |
CN104881334A (zh) * | 2015-02-06 | 2015-09-02 | 北京飞杰信息技术有限公司 | 缓存数据的防掉电保护方法及系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8959280B2 (en) | 2008-06-18 | 2015-02-17 | Super Talent Technology, Corp. | Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear |
TW201011755A (en) * | 2008-09-10 | 2010-03-16 | Skymedi Corp | Flash memory system and its data recovery method |
US9612954B2 (en) * | 2008-12-31 | 2017-04-04 | Micron Technology, Inc. | Recovery for non-volatile memory after power loss |
US9032269B2 (en) * | 2011-07-22 | 2015-05-12 | Sandisk Technologies Inc. | Systems and methods of storing data |
CN103176752A (zh) | 2012-07-02 | 2013-06-26 | 晶天电子(深圳)有限公司 | 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器 |
US9684568B2 (en) * | 2013-12-26 | 2017-06-20 | Silicon Motion, Inc. | Data storage device and flash memory control method |
US9619321B1 (en) * | 2015-10-08 | 2017-04-11 | Seagate Technology Llc | Internal copy-back with read-verify |
US9892794B2 (en) * | 2016-01-04 | 2018-02-13 | Ip Gem Group, Llc | Method and apparatus with program suspend using test mode |
-
2016
- 2016-10-07 TW TW105132526A patent/TWI607312B/zh active
- 2016-11-15 CN CN201611005344.7A patent/CN107918588A/zh active Pending
-
2017
- 2017-07-25 US US15/659,203 patent/US10061512B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090150600A1 (en) * | 2007-11-29 | 2009-06-11 | Takaya Suda | Memory system |
CN102236672A (zh) * | 2010-05-06 | 2011-11-09 | 深圳市腾讯计算机系统有限公司 | 一种数据导入方法及装置 |
CN102591807A (zh) * | 2011-12-30 | 2012-07-18 | 记忆科技(深圳)有限公司 | 一种固态硬盘掉电和写异常处理方法及系统 |
CN103218274A (zh) * | 2013-03-15 | 2013-07-24 | 华为技术有限公司 | 一种预防故障累加的方法和固态硬盘 |
US20140359346A1 (en) * | 2013-05-31 | 2014-12-04 | Silicon Motion, Inc. | Data storage device and error correction method thereof |
CN104217762A (zh) * | 2013-05-31 | 2014-12-17 | 慧荣科技股份有限公司 | 数据储存装置及其错误校正方法以及数据读取方法 |
CN104133740A (zh) * | 2014-07-28 | 2014-11-05 | 浪潮软件集团有限公司 | 异常掉电数据恢复的方法 |
CN104881334A (zh) * | 2015-02-06 | 2015-09-02 | 北京飞杰信息技术有限公司 | 缓存数据的防掉电保护方法及系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110874187A (zh) * | 2018-09-03 | 2020-03-10 | 慧荣科技股份有限公司 | 数据储存装置与数据处理方法 |
CN110874187B (zh) * | 2018-09-03 | 2023-04-07 | 慧荣科技股份有限公司 | 数据储存装置与数据处理方法 |
CN111949196A (zh) * | 2019-05-16 | 2020-11-17 | 北京兆易创新科技股份有限公司 | 一种数据重建方法、装置及存储设备 |
CN112306375A (zh) * | 2019-08-01 | 2021-02-02 | 北京兆易创新科技股份有限公司 | 用户数据搬移的恢复方法、装置、电子设备及存储介质 |
CN112306375B (zh) * | 2019-08-01 | 2023-03-14 | 兆易创新科技集团股份有限公司 | 用户数据搬移的恢复方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20180101302A1 (en) | 2018-04-12 |
TWI607312B (zh) | 2017-12-01 |
TW201814532A (zh) | 2018-04-16 |
US10061512B2 (en) | 2018-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107918588A (zh) | 数据储存装置及其数据写入方法 | |
CN107977161A (zh) | 数据储存装置及其数据写入方法 | |
US8307241B2 (en) | Data recovery in multi-level cell nonvolatile memory | |
US8132045B2 (en) | Program failure handling in nonvolatile memory | |
TWI677879B (zh) | 資料儲存裝置與資料處理方法 | |
CN106708754B (zh) | 数据储存装置及其数据维护方法 | |
CN107918523B (zh) | 数据储存装置及其数据写入方法 | |
CN101124544A (zh) | 用于在可重编程非易失性存储器中拷贝数据的方法 | |
US10115468B2 (en) | Solid state storage device and read control method thereof | |
CN110554844B (zh) | 数据储存装置及数据维护方法 | |
KR101731408B1 (ko) | 플래시 메모리에 데이터를 기록하는 방법 및 관련 메모리 장치 및 플래시 메모리 | |
CN108241473B (zh) | 存取闪存的方法及相关的控制器 | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
CN107918524A (zh) | 数据储存装置及数据维护方法 | |
CN103389881A (zh) | 控制装置、存储装置以及数据写入方法 | |
CN113360303A (zh) | 进行数据存储管理以提升数据可靠度的方法以及相关设备 | |
CN110069362B (zh) | 数据储存装置与数据处理方法 | |
CN111399751A (zh) | 闪存控制器、管理闪存模块的方法及相关的电子装置 | |
CN111159069A (zh) | 闪存控制器、管理闪存模块的方法及相关的电子装置 | |
CN111475426B (zh) | 管理闪存模块的方法及相关的闪存控制器与电子装置 | |
JP4153535B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
TWI640868B (zh) | 資料儲存裝置及其資料寫入方法 | |
CN105761754B (zh) | 存储单元编程方法、存储器控制电路单元与存储装置 | |
JP4194518B2 (ja) | メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
CN108288487A (zh) | 数据储存装置及其数据维护方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180417 |
|
WD01 | Invention patent application deemed withdrawn after publication |