CN107918588A - 数据储存装置及其数据写入方法 - Google Patents

数据储存装置及其数据写入方法 Download PDF

Info

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
Application number
CN201611005344.7A
Other languages
English (en)
Inventor
林文生
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.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN107918588A publication Critical patent/CN107918588A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0692Multiconfiguration, e.g. local and global addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • 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
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits 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
    • 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/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • G11C16/225Preventing erasure, programming or reading when power supply voltages are outside the required ranges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • 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/30Power supply circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/143Detection 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所述的数据写入方法,其特征在于,该自这些三阶区块中选择该第三三阶区块的步骤还包括选择这些三阶区块中除了该未完成写入程序的第一三阶区块外,不具有有效数据的这些三阶区块中之一者作为该第三三阶区块。
CN201611005344.7A 2016-10-07 2016-11-15 数据储存装置及其数据写入方法 Pending CN107918588A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (8)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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