CN106354653A - 数据储存装置及其数据维护方法 - Google Patents
数据储存装置及其数据维护方法 Download PDFInfo
- Publication number
- CN106354653A CN106354653A CN201610069348.5A CN201610069348A CN106354653A CN 106354653 A CN106354653 A CN 106354653A CN 201610069348 A CN201610069348 A CN 201610069348A CN 106354653 A CN106354653 A CN 106354653A
- Authority
- CN
- China
- Prior art keywords
- mentioned
- seed
- block
- data
- offset target
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 51
- 238000013500 data storage Methods 0.000 title abstract description 3
- 238000012423 maintenance Methods 0.000 title 1
- 230000015654 memory Effects 0.000 claims abstract description 41
- 238000010586 diagram Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/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
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据储存装置,包括一快闪存储器以及一控制器。快闪存储器包括多个区块,每一区块具有多个页面。控制器用以接收将多个数据段分别写入区块中的一第一区块的多个第一页面的一写入命令,根据第一区块的一第一抹除次数,计算一偏移指标,根据偏移指标撷取一随机种子表中的多个种子,使用所撷取的种子对数据段进行编码以获得多个编码后数据段,并且将编码后数据段写入第一页面。
Description
技术领域
本发明是关于一种存储器装置的数据维护方法;特别是关于一种将写入数据编码的数据维护方法。
背景技术
快闪存储器为一种普遍的非易失性数据储存装置,是以电性方式抹除与编程。以非与门型的快闪存储器(即NAND FLASH)为例,常用作存储卡(memory card)、通用串行总线闪存装置(USB flash device)、固态硬盘(SSD)、嵌入式快闪存储器模块(eMMC)…等使用。
快闪存储器(如,NAND FLASH)的储存阵列包括多个区块(blocks)。各区块包括多个页面(pages),其中在快闪存储器中数据写入的单位是页面,数据抹除的最小单位为区块。由于快闪存储器的存取过程中对同一页面或者同一区块反复存取,可能会发生数据内容的错误。所以需要一种数据维护方法来避免对快闪存储器中的数据错误。
发明内容
本发明所提供的数据储存装置可降低页面损坏的几率。
本发明提供一种数据储存装置。数据储存装置包括一快闪存储器以及一控制器。快闪存储器包括多个区块,每一区块具有多个页面。控制器用以接收将多个数据段分别写入区块中的一第一区块的多个第一页面的一写入命令,根据第一区块的一第一抹除次数,计算一偏移指标,根据偏移指标撷取一随机种子表中的多个种子,使用所撷取的种子对数据段进行编码以获得多个编码后数据段,并且将编码后数据段写入第一页面。
在一实施例中,控制器还用以记录每一区块被抹除的次数,并且第一抹除次数为第一区块被抹除的次数。控制器是对第一抹除次数进行一哈希演算法,以获得偏移指标。在一实施例中,哈希演算法中的除数为一个区块中的页面的数量。
又另一实施例中,种子是依照一既定顺序排列于随机种子表中,控制器用以根据偏移指标定位至种子中的一指标种子,并且自指标种子开始依照既定顺序撷取种子,以依序对数据段进行编码。另外,一个种子用以对一个数据段进行编码,并且一个数据段用以储存至一个第一页面。在一实施例中,数据段彼此相同,种子彼此不相同,并且编码后数据段彼此不相同。
本发明亦提供另一种数据储存装置。数据储存装置包括一快闪存储器以及控制器。快闪存储器包括多个区块,每一区块具有多个页面。控制器用以将一数据段重复写入区块中的页面,其中当控制器对区块中的一第一区块进行写入时,控制器根据第一区块被抹除的次数,计算一偏移指标,并且根据偏移指标对数据段进行编码以产生多个编码后数据段,并且将编码后数据段依序写入第一区块中的多个第一页面。
在一实施例中,数据储存装置更包括一随机种子表,随机种子表中具有依照一既定顺序排列的多个种子,其中控制器更用以根据偏移指标在随机种子表中定位一指标种子以对数据段进行编码。控制器更用以自指标种子开始依照既定顺序撷取种子,以使用所撷取的种子对数据段进行编码,其中每一种子用以对数据段进行编码并产生一个编码后数据段,每一编码后数据段彼此不相同,并且一个第一页面用以储存一个编码后数据段。
在一实施例中,控制器是对第一抹除次数进行一哈希演算法,以获得偏移指标。哈希演算法中的除数为一个区块中的页面的数量。
本发明更提供一种数据维护方法,适用于一数据储存装置,其中数据储存装置具有多个区块,每一区块包括多个页面。数据维护方法包括:接收将多个数据段分别写入区块中的一第一区块的多个第一页面的一写入命令;读取第一区块的一第一抹除次数,以根据第一抹除次数计算一偏移指标;根据偏移指标撷取一随机种子表中的多个种子,以使用所撷取的种子对数据段进行编码以获得多个编码后数据段;以及将编码后数据段写入第一页面。第一抹除次数为第一区块被抹除的次数。
在一实施例中,根据第一区块的第一抹除次数,计算偏移指标的步骤更包括对第一抹除次数进行一哈希演算法,以获得偏移指标,其中哈希演算法中的除数为一个区块中的页面的数量。
又另一实施例中,种子是依照一既定顺序排列于随机种子表中,并且根据偏移指标撷取随机种子表中的种子,以使用所撷取的种子对数据段进行编码以获得编码后数据段的步骤更包括:根据偏移指标定位至种子中的一指标种子;以及自指标种子开始依照既定顺序撷取种子,以依序对数据段进行编码。一个种子用以对一个数据段进行编码,并且一个数据段用以储存至一个第一页面。在一实施例中,数据段彼此相同,种子彼此不相同,并且编码后数据段彼此不相同。
本发明更提供一种数据维护方法,适用于一数据储存装置,其中数据储存装置具有多个区块,每一区块包括多个页面。数据维护方法包括:接收用以将一数据段重复写入区块中的一第一区块的多个第一页面的一写入命令;根据写入命令,读取第一区块的一第一抹除次数,以判断第一区块被抹除的次数;根据第一区块被抹除的次数,计算一偏移指标;根据偏移指标对数据段进行编码以产生多个编码后数据段;以及将编码后数据段依序写入第一区块中的多个第一页面。
根据偏移指标对数据段进行编码以产生编码后数据段的步骤更包括根据偏移指标在一随机种子表中定位一指标种子以对数据段进行编码,其中随机种子表中具有依照既定顺序排列的多个种子。根据偏移指标对数据段进行编码以产生编码后数据段的步骤更包括自指标种子开始依照既定顺序撷取种子,以使用所撷取的种子对数据段进行编码,其中每一种子用以对数据段进行编码并产生一个编码后数据段,每一编码后数据段彼此不相同,并且一个第一页面用以储存一个编码后数据段。
另外,根据第一区块被抹除的次数,计算偏移指标的步骤更包括对第一抹除次数进行一哈希演算法,以获得偏移指标。哈希演算法中的除数为一个区块中的页面的数量。
附图说明
为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明,其中:
图1是本发明的一种实施例的电子系统的方块图。
图2是本发明的一种实施例的快闪存储器的示意图。
图3是本发明的一种实施例的随机种子表的示意图。
图4是本发明的一种实施例的选取种子的操作的示意图。
图5是本发明的另一种实施例的选取种子的操作的示意图。
图6是本发明的一种实施例的数据维护方法的流程图。
图7是本发明的一种实施例的数据维护方法的流程图。
图中元件标号说明:
100 电子系统;
120 主机;
140 数据储存装置;
160 控制器;
162 运算单元;
164 永久存储器;
166 动态随机存取器;
180 快闪存储器;
B0~BN 区块;
P0~PN 页面;
RST 随机种子表;
RS_0~RS_N 种子;
ECD0~ECD7 编码后数据段;
DS 数据段;
S600~S604、S700~S706 步骤。
具体实施方式
以下将详细讨论本发明各种实施例的装置及使用方法。然而值得注意的是,本发明所提供的许多可行的发明概念可实施在各种特定范围中。这些特定实施例仅用于举例说明本发明的装置及使用方法,但非用于限定本发明的范围。
图1是本发明的一种实施例的电子系统的方块图。电子系统100包括一主机120以及一数据储存装置140。数据储存装置140包括一快闪存储器180以及一控制器160,且可根据主机120所下达的命令操作。
控制器160包括一运算单元162、一永久存储器(如,唯读存储器ROM)164以及一动态随机存取器(RAM)166。永久存储器164与所载的程序码、数据组成固件(firmware),由运算单元162执行,使控制器160基于该固件控制该快闪存储器180。
快闪存储器180包括多个区块B0~BN,每一区块B0~BN中包括多个页面P0~PN,如图2所示。值得注意的是,快闪存储器180的最小写入单位为页面,并且快闪存储器180最小的抹除单位为区块。在本发明的一实施例中,控制器160更用以记录每一区块B0~BN被抹除的次数。换言之,快闪存储器180或者永久存储器164中具有一抹除次数表,用以记录快闪存储器180中每一区块B0~BN从第一次使用开始被抹除的次数,但本发明不限于此。在其他实施例中,每一区块B0~BN的抹除次数亦可分别储存于所相应的区块B0~BN中。另外,快闪存储器180更包括一随机种子表RST,如图3所示。
图3是本发明的一种实施例的随机种子表的示意图。随机种子表RST具有多个种子RS_0~RS_N,其中种子RS_0~RS_N是依照一既定顺序排列于随机种子RS_0~RS_N表RST中,如图3所示。换言之,随机种子RS_0~RS_N是依序储存于随机种子表RST中。随机种子表RST是用以提供控制器160种子RS_0~RS_N,使得控制器160可使用不同的种子对数据进行编码,以产生不同的编码数据。在本发明的一实施例中,随机种子RS_0~RS_N的数量与一个区块中的页面P0~PN的数量相同,但本发明不限于此。在其他实施例中,随机种子RS_0~RS_N的数量亦可大于一个区块中的页面P0~PN的数量,或者小于一个区块中的页面P0~PN的数量。在某些实施例中,一个区块可具有128个页面,但本发明不限于此。不同的快闪存储器180可具有不同的页面数量以及区块数量。
在某些情况下,控制器160需要将数据重复地写入页面中。然而,快闪存储器180中的页面若重复被写入相同的数据或者相邻的页面被写入相同的数据,则容易造成页面损坏。有鉴于此,控制器160可借由随机种子表RST中的种子RS_0~RS_N随机打乱所写入的数据,以避免页面损坏。
详细而言,当控制器160接收到将多个数据段分别写入区块中的一第一区块的多个第一页面的一写入命令时,控制器160根据第一区块的一第一抹除次数,计算一偏移指标。接着,控制器160根据偏移指标撷取一随机种子表RST中的多个种子RS_0~RS_N,并且使用所撷取的种子RS_0~RS_N分别对数据段进行编码以获得多个编码后数据段。最后,控制器160将编码后数据段写入第一页面。值得注意的是,在本实施例中,数据段之内容可相同亦可彼此不同,本发明不限于此。
在本发明的一实施例中,控制器160是对第一抹除次数进行一哈希演算法(Hash),以获得偏移指标,其中哈希演算法中的除数(Divisor)为一个区块中的页面的数量,但本发明不限于此。在其他实施例中,控制器160亦使用其他演算法借由第一抹除次数,计算出偏移指标。接着,控制器160根据偏移指标,在随机种子表RST中定位至种子RS_0~RS_N中的一者,以作为指标种子。接着,控制器160自指标种子开始依照种子RS_0~RS_N所排列的既定顺序,撷取种子RS_0~RS_N,以依序对数据段进行编码。值得注意的是,一个种子RS_0~RS_N用以对一个数据段进行编码,并且一个数据段用以储存至一个第一页面。另外,在一实施例中,数据段彼此相同,种子RS_0~RS_N彼此不相同,并且编码后数据段彼此不相同。
换言之,在数据段彼此相同的实施例中,控制器160是用以将数据段重复写入区块中的页面。举例而言,当测试快闪存储器180的性能时,控制器160往往被指示对快闪存储器180重复地写入一相同的数据,并且在快闪存储器180被写满后抹除掉快闪存储器180中的数据以继续重复地写入相同的数据。因此,在上述的情况下,区块中相邻的页面以及被重复写入的同样区块容易损坏。因此,借由本发明的一实施例,控制器160可借由随机种子表RST中的种子RS_0~RS_N打断所要写入的数据以达到保护快闪存储器180的效果。
详细而言,当控制器160对区块中的一第一区块进行写入时,控制器160根据第一区块被抹除的次数(第一抹除次数),计算一偏移指标。接着,控制器160根据偏移指标对数据段进行编码以产生多个编码后数据段,并且将编码后数据段依序写入第一区块中的多个第一页面。如上所述,控制器160是对第一抹除次数进行哈希演算法,以获得偏移指标,其中哈希演算法中的除数为一个区块中的页面的数量,但本发明不限于此。另外,控制器160是用以根据偏移指标在随机种子表RST中定位一指标种子以对数据段进行编码。如上所述,在一实施例中,控制器160是用以自指标种子RS_0~RS_N开始依照既定顺序撷取种子RS_0~RS_N,以使用所撷取的种子RS_0~RS_N对数据段进行编码,其中每一种子RS_0~RS_N用以对数据段进行编码并产生一个编码后数据段,每一编码后数据段彼此不相同,并且一个第一页面用以储存一个编码后数据段。
另外,当控制器160又再次对区块中的第一区块进行写入时,第一区块的第一抹除次数必然大于上一次控制器160所读取的数值。因此,当第一区块被重复写入数据段时,控制器160根据第一区块已增加的第一抹除次数,获得不同于前次的偏移指标。因此,控制器160根据偏移指标,会以不同的顺序撷取随机种子表RST中的种子RS_0~RS_N。换言之,页面中被写入的编码后数据段会不同于前次相同页面被写入的编码后数据段。
图4是本发明的一种实施例的选取种子的操作的示意图。举例而言,如图4所示,快闪存储器180中的每一区块B0~BN分别具有八个页面P0~P7,并且随机种子表RST具有依照既定顺序排列的八个种子RS0~RS7。当控制器160对区块中的区块B0进行写入时,控制器160根据区块B0被抹除的次数,计算一偏移指标。假设,区块B0的抹除次数为2,哈希演算法中的除数为8。控制器160则可根据哈希演算法将2除以8,以获得余数为2,并且将余数“2”作为偏移指标OFS。接着,控制器160根据偏移指标OFS,在随机种子表RST中定位至偏移量为2的种子RS2以做为指标种子。接着,控制器160撷取种子RS2以对数据段DS进行编码,并将所产生的编码后数据段ECD2写入区块B0的第一个页面P0。接着,控制器160依照种子RS0~RS7所排列的既定顺序撷取下一个种子RS3,并且控制器160使用种子RS3对数据段DS进行编码,并将所产生的编码后数据段ECD3写入区块B0的第二个页面P1。接着,控制器160依照种子RS0~RS7所排列的既定顺序撷取下一个种子RS4,并且控制器160使用种子RS4对数据段DS进行编码,并将所产生的编码后数据段ECD4写入区块B0的第三个页面P2,依此类推。直到控制器160使用随机种子表RST中最后一个种子RS7对数据段DS进行编码并将所产生的编码后数据段ECD7写入区块B0的第六个页面P5后,控制器160回头撷取随机种子表RST中的第一个种子RS0,以对数据段DS进行编码并将所产生的编码后数据段ECD0写入区块B0的第七个页面P6。接着,控制器160重复上述动作直到区块B0中的所有页面都被写满为止。值得注意的是,由于种子RS0~RS7皆不相同,故所产生的编码后数据段ECD0~ECD7亦彼此不同。
当控制器160写完区块B0后,控制器160可依照指令继续以相同的方式对其他区块进行写入,但本发明不限于此。由于存储器空间不足、接收到主机所产生的指令或者基于数据维护的原因,区块B0可能在被控制器160写完后被抹除,并且重新归属到可写入的数据区块。值得注意的是,当区块B0被抹除时,控制器160将区块B0的抹除次数加1。当控制器160又再次选取到区块B0并且进行写入时,控制器160则会借由不同的抹除次数获得到不同的偏移指标。如图5所示,相同地快闪存储器180中的每一区块B0~BN分别具有八个页面P0~P7,并且随机种子表RST具有依照既定顺序排列的八个种子RS0~RS7。当控制器160再次对区块中的区块B0进行写入时,控制器160根据区块B0被抹除的次数,计算一偏移指标。在本实施例中,区块B0的抹除次数已增加为3。因此,控制器160根据哈希演算法将3除以8,以获得余数为3,并且将余数“3”作为偏移指标OFS。接着,控制器160根据偏移指标OFS,在随机种子表RST中定位至偏移量为3的种子RS3以做为指标种子。接着,控制器160撷取种子RS3以对数据段DS进行编码,并将所产生的编码后数据段ECD3写入区块B0的第一个页面P0。接着,控制器160依照种子RS0~RS7所排列的既定顺序撷取下一个种子RS4,并且控制器160使用种子RS4对数据段DS进行编码,并将所产生的编码后数据段ECD4写入区块B0的第二个页面P1。接着,控制器160依照种子RS0~RS7所排列的既定顺序撷取下一个种子RS5,并且控制器160使用种子RS5对数据段DS进行编码,并将所产生的编码后数据段ECD5写入区块B0的第三个页面P2,依此类推。直到控制器160使用随机种子表RST中最后一个种子RS7对数据段DS进行编码并将所产生的编码后数据段ECD7写入区块B0的第五个页面P4后,控制器160回头撷取随机种子表RST中的第一个种子RS0,以对数据段DS进行编码并将所产生的编码后数据段ECD0写入区块B0的第六个页面P5。接着,控制器160重复上述动作直到区块B0中的所有页面都被写满为止。比较图4以及图5可知,当偏移指标不同时,页面所被写入的数据也就不同。换言之,由于偏移指标是由抹除次数所决定的,故区块在重复被写入时也可避免相同的数据重复被写入到同一个页面。值得注意的是,在其他实施例中,写入每一页面的数据段亦可不相同。借由上述的方法,不相同的数据段可更随机的被打乱并且写入页面中,以达到存入不规则数据或者数据安全的需求。
图6是本发明的一种实施例的数据维护方法的流程图。数据维护方法适用于图1所示的数据储存装置140。流程开始于步骤S600。
在步骤S600中,控制器160自主机120或者其他装置接收将多个数据段分别写入区块中的一第一区块的多个第一页面的一写入命令。值得注意的是,在本实施例中,数据段之内容可相同亦可彼此不同,本发明不限于此。换言之,在数据段彼此相同的实施例中,控制器160是接收用以将数据段重复写入区块中的一第一区块的第一页面的写入命令。
接着,在步骤S602中,控制器160读取第一区块的一第一抹除次数以判断第一区块被抹除的次数,并且根据第一抹除次数计算一偏移指标。换言之,快闪存储器180或者永久存储器164中具有一抹除次数表,用以记录快闪存储器180中每一区块B0~BN从第一次使用开始被抹除的次数,但本发明不限于此。在其他实施例中,每一区块B0~BN的抹除次数亦可分别储存于所相应的区块B0~BN中。在本发明的一实施例中,控制器160是对第一抹除次数进行一哈希演算法(Hash),以获得偏移指标,其中哈希演算法中的除数(Divisor)为一个区块中的页面的数量,但本发明不限于此。以图4为例,快闪存储器180中的每一区块B0~BN分别具有八个页面P0~P7,并且随机种子表RST具有依照既定顺序排列的八个种子RS0~RS7。当控制器160对区块中的区块B0进行写入时,控制器160根据区块B0被抹除的次数,计算一偏移指标(步骤S602)。假设,区块B0的抹除次数为2,哈希演算法中的除数为8。控制器160则可根据哈希演算法将2除以8,以获得余数为2,并且将余数”2”作为偏移指标OFS,但本发明不限于此。
接着,在步骤S604中,控制器160根据偏移指标对数据段进行编码以产生多个编码后数据段,并将所产生的编码后数据段依序储存至第一区块的第一页面。流程结束于步骤S604。
图7是本发明的一种实施例的数据维护方法的流程图。数据维护方法适用于图1所示的数据储存装置140。流程开始于步骤S700。值得注意的是,图7的数据维护方法为图6的步骤S604的详细步骤。
在步骤S700中,控制器160根据偏移指标撷取一随机种子表RST中的多个种子RS_0~RS_N中的一者。详细而言,种子RS_0~RS_N是依照一既定顺序排列于随机种子表RST中,如图3所示。控制器160是根据偏移指标定位至种子RS_0~RS_N中的一指标种子RS_0~RS_N,以自指标种子开始依照种子RS_0~RS_N所排列的既定顺序撷取种子RS_0~RS_N。值得注意的是,在步骤S700中一次仅撷取一个种子,在下一次流程回到步骤S700后才会自指标种子开始依照种子RS_0~RS_N所排列的既定顺序撷取下一个种子。
接着,在步骤S702中,控制器160使用所撷取的种子对数据段进行编码以获得一编码后数据段。
接着,在步骤S704中,控制器160将所获得的编码后数据段依序写入第一页面。值得注意的是,一个第一页面用以储存一个编码后数据段。一个种子RS_0~RS_N用以对一个数据段进行编码,并且一个数据段用以储存至一个第一页面。在一实施例中,数据段彼此相同,种子RS_0~RS_N彼此不相同,并且编码后数据段彼此不相同。
接着,在步骤S706中,控制器160判断第一区块是否有其他页面需要写入。当控制器160判断第一区块有其他页面需要写入时,流程回到步骤S700;否则,流程结束于步骤S706。以图4为例,假设控制器160则根据哈希演算法获得偏移指标OFS为“2”。接着,在步骤S700中,控制器160根据偏移指标OFS,在随机种子表RST中定位至偏移量为2的种子RS2以做为指标种子。接着,控制器160撷取种子RS2以对数据段DS进行编码(步骤S702),并将所产生的编码后数据段ECD2写入区块B0的第一个页面P0(步骤S704)。由于区块B0中尚有页面P1~P7需要写入数据。因此,流程回到步骤S700,控制器160依照种子RS0~RS7所排列的既定顺序撷取指标种子的下一个种子RS3,并且控制器160使用种子RS3对数据段DS进行编码(步骤S702),并将所产生的编码后数据段ECD3写入区块B0的第二个页面P1(步骤S704)。由于区块B0中尚有页面P2~P7需要写入数据。因此,流程回到步骤S700,控制器160依照种子RS0~RS7所排列的既定顺序撷取指标种子的下两个种子RS4,并且控制器160使用种子RS4对数据段DS进行编码(步骤S702),并将所产生的编码后数据段ECD4写入区块B0的第三个页面P2(步骤S704),依此类推。直到控制器160使用随机种子表RST中最后一个种子RS7对数据段DS进行编码并将所产生的编码后数据段ECD7写入区块B0的第六个页面P5后,控制器160在步骤S700中,回头撷取随机种子表RST中的第一个种子RS0,以对数据段DS进行编码并将所产生的编码后数据段ECD0写入区块B0的第七个页面P6(步骤S702~S704)。接着,控制器160重复上述动作直到区块B0中的所有页面都被写满为止。值得注意的是,由于种子RS0~RS7皆不相同,故所产生的编码后数据段ECD0~ECD7亦彼此不同。
本发明所提供的数据储存装置以及数据维护方法可降低页面损坏的几率。
本发明的方法,或特定型态或其部分,可以以程序码的型态存在。程序码可储存于实体媒体,如软盘、光盘片、硬盘、或是任何其他机器可读取(如电脑可读取)储存媒体,亦或不限于外在形式的电脑程序产品,其中,当程序码被机器,如电脑载入且执行时,此机器变成用以参与本发明的装置。程序码也可透过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序码被机器,如电脑接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理单元实作时,程序码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。
Claims (24)
1.一种数据储存装置,包括:
一快闪存储器,包括多个区块,每一上述区块具有多个页面;以及
一控制器,用以接收将多个数据段分别写入上述区块中的一第一区块的多个第一页面的一写入命令,根据上述第一区块的一第一抹除次数,计算一偏移指标,根据上述偏移指标撷取一随机种子表中的多个种子,使用所撷取的上述种子对上述数据段进行编码以获得多个编码后数据段,并且将上述编码后数据段写入上述第一页面。
2.根据权利要求1的数据储存装置,其特征在于,上述控制器更用以记录每一上述区块被抹除的次数,并且上述第一抹除次数为上述第一区块被抹除的次数。
3.根据权利要求1的数据储存装置,其特征在于,上述控制器是对上述第一抹除次数进行一哈希演算法,以获得上述偏移指标。
4.根据权利要求3的数据储存装置,其特征在于,上述哈希演算法中的除数为一个上述区块中的上述页面的数量。
5.根据权利要求1的数据储存装置,其特征在于,上述种子是依照一既定顺序排列于上述随机种子表中,上述控制器用以根据上述偏移指标定位至上述种子中的一指标种子,并且自上述指标种子开始依照上述既定顺序撷取上述种子,以依序对上述数据段进行编码。
6.根据权利要求5的数据储存装置,其特征在于,一个上述种子用以对一个上述数据段进行编码,并且一个上述数据段用以储存至一个上述第一页面。
7.根据权利要求6的数据储存装置,其特征在于,上述数据段彼此相同,上述种子彼此不相同,并且上述编码后数据段彼此不相同。
8.一种数据储存装置,包括:
一快闪存储器,包括多个区块,每一上述区块具有多个页面;以及
一控制器,用以将一数据段重复写入上述区块中的上述页面,其中当上述控制器对上述区块中的一第一区块进行写入时,上述控制器根据上述第一区块被抹除的第一抹除次数,计算一偏移指标,并且根据上述偏移指标对上述数据段进行编码以产生多个编码后数据段,并且将上述编码后数据段依序写入上述第一区块中的多个第一页面。
9.根据权利要求8的数据储存装置,更包括一随机种子表,上述随机种子表中具有依照一既定顺序排列的多个种子,其中上述控制器更用以根据上述偏移指标在上述随机种子表中定位一指标种子以对上述数据段进行编码。
10.根据权利要求9的数据储存装置,其特征在于,上述控制器更用以自上述指标种子开始依照上述既定顺序撷取上述种子,以使用所撷取的上述种子对上述数据段进行编码,其中每一上述种子用以对上述数据段进行编码并产生一个上述编码后数据段,每一上述编码后数据段彼此不相同,并且一个上述第一页面用以储存一个上述编码后数据段。
11.根据权利要求8的数据储存装置,其特征在于,上述控制器是对上述第一抹除次数进行一哈希演算法,以获得上述偏移指标。
12.根据权利要求11的数据储存装置,其特征在于,上述哈希演算法中的除数为一个上述区块中的上述页面的数量。
13.一种数据维护方法,适用于一数据储存装置,其特征在于,上述数据储存装置具有多个区块,每一上述区块包括多个页面,上述数据维护方法包括:
接收将多个数据段分别写入上述区块中的一第一区块的多个第一页面的一写入命令;
读取上述第一区块的一第一抹除次数,以根据上述第一抹除次数计算一偏移指标;
根据上述偏移指标撷取一随机种子表中的多个种子,以使用所撷取的上述种子对上述数据段进行编码以获得多个编码后数据段;以及
将上述编码后数据段写入上述第一页面。
14.根据权利要求13的数据维护方法,其特征在于,上述第一抹除次数为上述第一区块被抹除的次数。
15.根据权利要求13的数据维护方法,其特征在于,上述根据上述第一区块的上述第一抹除次数,计算上述偏移指标的步骤更包括对上述第一抹除次数进行一哈希演算法,以获得上述偏移指标。
16.根据权利要求15的数据维护方法,其特征在于,上述哈希演算法中的除数为一个上述区块中的上述页面的数量。
17.根据权利要求13的数据维护方法,其特征在于,上述种子是依照一既定顺序排列于上述随机种子表中,并且上述根据上述偏移指标撷取上述随机种子表中的上述种子,以使用所撷取的上述种子对上述数据段进行编码以获得上述编码后数据段的步骤更包括:
根据上述偏移指标定位至上述种子中的一指标种子;以及
自上述指标种子开始依照上述既定顺序撷取上述种子,以依序对上述数据段进行编码。
18.根据权利要求17的数据维护方法,其特征在于,一个上述种子用以对一个上述数据段进行编码,并且一个上述数据段用以储存至一个上述第一页面。
19.根据权利要求18的数据维护方法,其特征在于,上述数据段彼此相同,上述种子彼此不相同,并且上述编码后数据段彼此不相同。
20.一种数据维护方法,适用于一数据储存装置,其特征在于,上述数据储存装置具有多个区块,每一上述区块包括多个页面,上述数据维护方法包括:
接收用以将一数据段重复写入上述区块中的一第一区块的多个第一页面的一写入命令;
根据上述写入命令,读取上述第一区块的一第一抹除次数,以判断上述第一区块被抹除的次数;
根据上述第一区块被抹除的次数,计算一偏移指标;
根据上述偏移指标对上述数据段进行编码以产生多个编码后数据段;以及
将上述编码后数据段依序写入上述第一区块中的多个第一页面。
21.根据权利要求20的数据维护方法,其特征在于,上述根据上述偏移指标对上述数据段进行编码以产生上述编码后数据段的步骤更包括根据上述偏移指标在一随机种子表中定位一指标种子以对上述数据段进行编码,其中上述随机种子表中具有依照一既定顺序排列的多个种子。
22.根据权利要求21的数据维护方法,其特征在于,上述根据上述偏移指标对上述数据段进行编码以产生上述编码后数据段的步骤更包括自上述指标种子开始依照上述既定顺序撷取上述种子,以使用所撷取的上述种子对上述数据段进行编码,其中每一上述种子用以对上述数据段进行编码并产生一个上述编码后数据段,每一上述编码后数据段彼此不相同,并且一个上述第一页面用以储存一个上述编码后数据段。
23.根据权利要求20的数据维护方法,其特征在于,上述根据上述第一区块被抹除的次数,计算上述偏移指标的步骤更包括对上述第一抹除次数进行一哈希演算法,以获得上述偏移指标。
24.根据权利要求23的数据维护方法,其特征在于,上述哈希演算法中的除数为一个上述区块中的上述页面的数量。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104123194 | 2015-07-17 | ||
TW104123194A TWI569275B (zh) | 2015-07-17 | 2015-07-17 | 資料儲存裝置及其資料維護方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106354653A true CN106354653A (zh) | 2017-01-25 |
CN106354653B CN106354653B (zh) | 2019-04-12 |
Family
ID=57775055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610069348.5A Active CN106354653B (zh) | 2015-07-17 | 2016-02-01 | 数据储存装置及其数据维护方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9933958B2 (zh) |
CN (1) | CN106354653B (zh) |
TW (1) | TWI569275B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783007A (zh) * | 2017-11-13 | 2019-05-21 | 慧荣科技股份有限公司 | 数据储存装置与存储器装置的数据处理方法 |
CN110083546A (zh) * | 2018-01-26 | 2019-08-02 | 慧荣科技股份有限公司 | 记忆装置中进行写入管理的方法、记忆装置和其控制器 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10319228B2 (en) * | 2017-06-27 | 2019-06-11 | Waymo Llc | Detecting and responding to sirens |
TWI709855B (zh) * | 2018-01-26 | 2020-11-11 | 慧榮科技股份有限公司 | 用來於一記憶裝置中進行寫入管理之方法以及記憶裝置及其控制器 |
US11288181B2 (en) * | 2019-03-07 | 2022-03-29 | Silicon Motion, Inc. | Flash memory initialization scheme for writing boot up information into selected pages averagely and randomly distributed over more pages and correspondingly method for reading boot up information from selected pages |
KR20220058224A (ko) * | 2020-10-30 | 2022-05-09 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이에 포함된 메모리 컨트롤러의 동작 방법 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102568575A (zh) * | 2010-12-23 | 2012-07-11 | 三星电子株式会社 | 闪速存储器件以及包括其的存储系统 |
CN103309825A (zh) * | 2012-02-22 | 2013-09-18 | 慧荣科技股份有限公司 | 存取快闪存储器的方法与快闪存储器控制器 |
US20140195725A1 (en) * | 2013-01-08 | 2014-07-10 | Violin Memory Inc. | Method and system for data storage |
CN104346236A (zh) * | 2013-08-06 | 2015-02-11 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
US20150095550A1 (en) * | 2013-09-27 | 2015-04-02 | Jawad B. Khan | Generating random numbers utilizing entropic nature of nand flash memory medium |
CN104699622A (zh) * | 2013-12-09 | 2015-06-10 | 慧荣科技股份有限公司 | 数据储存装置以及其数据抹除方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070300130A1 (en) * | 2006-05-17 | 2007-12-27 | Sandisk Corporation | Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices |
US8230158B2 (en) * | 2008-08-12 | 2012-07-24 | Micron Technology, Inc. | Memory devices and methods of storing data on a memory device |
KR101554159B1 (ko) * | 2008-10-08 | 2015-09-21 | 삼성전자주식회사 | 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템 |
TWI438778B (zh) * | 2010-03-25 | 2014-05-21 | Silicon Motion Inc | 用來抑制資料錯誤之方法以及相關之記憶裝置及其控制器 |
TWI455136B (zh) * | 2010-07-01 | 2014-10-01 | Silicon Motion Inc | 用來進行資料整形之方法以及相關之記憶裝置及其控制器 |
KR20120125790A (ko) * | 2011-05-09 | 2012-11-19 | 삼성전자주식회사 | 메모리 장치 및 그것을 포함하는 메모리 시스템 |
JP5813380B2 (ja) * | 2011-06-03 | 2015-11-17 | 株式会社東芝 | 半導体記憶装置 |
US9251900B2 (en) * | 2011-11-15 | 2016-02-02 | Sandisk Technologies Inc. | Data scrambling based on transition characteristic of the data |
KR102200108B1 (ko) * | 2014-10-10 | 2021-01-08 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 그 동작 방법 |
-
2015
- 2015-07-17 TW TW104123194A patent/TWI569275B/zh active
-
2016
- 2016-02-01 CN CN201610069348.5A patent/CN106354653B/zh active Active
- 2016-07-14 US US15/210,495 patent/US9933958B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102568575A (zh) * | 2010-12-23 | 2012-07-11 | 三星电子株式会社 | 闪速存储器件以及包括其的存储系统 |
CN103309825A (zh) * | 2012-02-22 | 2013-09-18 | 慧荣科技股份有限公司 | 存取快闪存储器的方法与快闪存储器控制器 |
US20140195725A1 (en) * | 2013-01-08 | 2014-07-10 | Violin Memory Inc. | Method and system for data storage |
CN104346236A (zh) * | 2013-08-06 | 2015-02-11 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
US20150095550A1 (en) * | 2013-09-27 | 2015-04-02 | Jawad B. Khan | Generating random numbers utilizing entropic nature of nand flash memory medium |
CN104699622A (zh) * | 2013-12-09 | 2015-06-10 | 慧荣科技股份有限公司 | 数据储存装置以及其数据抹除方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783007A (zh) * | 2017-11-13 | 2019-05-21 | 慧荣科技股份有限公司 | 数据储存装置与存储器装置的数据处理方法 |
CN109783007B (zh) * | 2017-11-13 | 2022-05-10 | 慧荣科技股份有限公司 | 数据储存装置与存储器装置的数据处理方法 |
CN110083546A (zh) * | 2018-01-26 | 2019-08-02 | 慧荣科技股份有限公司 | 记忆装置中进行写入管理的方法、记忆装置和其控制器 |
CN110083546B (zh) * | 2018-01-26 | 2022-10-21 | 慧荣科技股份有限公司 | 记忆装置中进行写入管理的方法、记忆装置和其控制器 |
Also Published As
Publication number | Publication date |
---|---|
US9933958B2 (en) | 2018-04-03 |
CN106354653B (zh) | 2019-04-12 |
TWI569275B (zh) | 2017-02-01 |
US20170017426A1 (en) | 2017-01-19 |
TW201705147A (zh) | 2017-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106354653A (zh) | 数据储存装置及其数据维护方法 | |
US10719254B2 (en) | Merging data from single-level cell block to multiple-level cell block based on sudden power off event and valid page count in single-level cell block | |
CN107644667B (zh) | 对用于各种工作负载的固态驱动器的内部预处理 | |
US10283216B2 (en) | Data storage device and data maintenance method thereof | |
CN107678695B (zh) | 基于可用存储器空间选择冗余存储配置 | |
CN106409344A (zh) | 数据储存设备及其操作方法 | |
CN104246708A (zh) | 针对nand闪存上数据的存储的架构 | |
CN107133122A (zh) | 存储器控制方法 | |
US8762810B2 (en) | Semiconductor recording device, control method of semiconductor recording device, and semiconductor recording system | |
US20130238835A1 (en) | Burning system and method | |
CN107526539A (zh) | 数据储存装置及其数据维护方法 | |
CN104699622A (zh) | 数据储存装置以及其数据抹除方法 | |
CN104866429A (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN106569735A (zh) | 数据储存装置及数据维护方法 | |
CN109426441A (zh) | 数据储存装置以及其操作方法 | |
CN108536390B (zh) | 数据储存装置及其区块释放方法 | |
CN107918524A (zh) | 数据储存装置及数据维护方法 | |
US8892968B2 (en) | Bit-level memory controller and a method thereof | |
CN109426581A (zh) | 用以检测数据储存装置的数据储存方法及其数据储存装置 | |
CN105975404A (zh) | 非易失性存储器装置及其操作方法 | |
CN106155572B (zh) | 数据储存装置以及数据存取方法 | |
CN103914391B (zh) | 数据读取方法、存储器控制器与存储器存储装置 | |
CN102915207A (zh) | 固态储存装置及其数据储存方法 | |
CN106155916B (zh) | 数据储存装置以及数据读取方法 | |
CN105335747A (zh) | 一种数据处理方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |