CN1348191A - 闪速存储器中驱动再映射的方法及其闪速存储器体系结构 - Google Patents

闪速存储器中驱动再映射的方法及其闪速存储器体系结构 Download PDF

Info

Publication number
CN1348191A
CN1348191A CN01117722A CN01117722A CN1348191A CN 1348191 A CN1348191 A CN 1348191A CN 01117722 A CN01117722 A CN 01117722A CN 01117722 A CN01117722 A CN 01117722A CN 1348191 A CN1348191 A CN 1348191A
Authority
CN
China
Prior art keywords
unit
state
piece
block
flash memory
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
Application number
CN01117722A
Other languages
English (en)
Other versions
CN1300803C (zh
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN1348191A publication Critical patent/CN1348191A/zh
Application granted granted Critical
Publication of CN1300803C publication Critical patent/CN1300803C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • 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

Abstract

闪速存储器中驱动再映射的方法及适用于此方法的闪速存储器结构,闪速存储器能通过尽量减少部分写循环次数来写入块和单元状态,该方法包括:根据有关预定块的映射信息,搜索预定的物理单元;如果所找到的物理单元中的预定块以有效状态存在,则搜索物理单元以寻找其状态为空闲的另一块;将另一块的状态改变成接着预定块的状态的状态;将新数据和附加信息写入另一块;和将预定块的状态改变为删除状态。因此,可管理其部分写循环次数受到限制的闪速存储器的块或单元的写入状态。

Description

闪速存储器中驱动再映射的方法 及其闪速存储器体系结构
本发明涉及以块为单位向闪速存储器写入数据和从闪速存储器读取数据的方法,尤其涉及一种当向对部分写循环次数具有限制的闪速存储器写入数据和从该闪速存储器读取数据时驱动逻辑地址至物理地址再映射的方法及适用于此方法的闪速存储器体系结构。
与诸如传统随机存取存储器(RAM)、非易失性存储设备和磁盘等其他存储设备一样,闪速存储器能够任意存取存储在特定位置上的数据。主要差别在于如何对数据进行重写和擦除。亦即,如果要在将数据写入其被分割成预定尺寸的块以便按块存取的闪速存储器的一个块中之后对该数据进行重写或擦除,则必须重写或擦除包含该块的单元。闪速存储器中的块由具有连续物理地址的字节构成。该块是对闪速存储器进行操作的基本单元。一个单元由多个块构成,并且它是能够物理地一次擦除和重写数据的基本单元。
由于闪速存储器的重写或擦除特性,当擦除循环次数增大时,数据的写入和更新效率下降。此外,当对闪速存储器进行重写/擦除操作时,数据可能由于故障而被破坏。为了防止对数据的破坏,已采用了块(或扇区)再映射技术。
这种再映射技术用于管理被写入闪速存储器的数据的物理块号(缩写为“PBN”)与逻辑块号(缩写为“LBN”)之间的映射信息,从而,当对相应数据进行重写或擦除时,即使数据的PBN发生变化,也可采用相同的LBN对数据进行存取。
根据传统的再映射技术,如果要重写数据,则首先搜索闪速存储器上包含数据的PBN的单元,以找出其上未写入数据的物理块,然后将数据写入该物理块。更新数据的LBN和PBN之间的映射信息。因此,即使当数据的PBN发生变化时,用户也能够采用相同的LBN来存取相应的数据。在这种情况下,擦除是由有关数据的先前物理块的状态信息表示的。
例如,当将数据写入闪速存储器上具有物理单元号(PUN)1和PUN 2的单元上时,如图1所示,如果用户希望重写被写入其LBN为‘3’的块的数据,则PUN 1如图2所示地改变。亦即,参照LBN至逻辑单元号(LUN)映射表,LBN‘3’对应于LUN‘2’。然后,参照LUN至PUN映射表,LUN‘2’对应于PUN‘1’。因此,对其PUN为“1”的单元PUN 1进行搜索,以寻找空的物理块。如从图1看出的,找出物理块#4(PBN 4)为空物理块。相对于LBN‘3’的数据被写入PBN 4,然后更新PUN 1的块分配映象(BAM)的映射信息。然后,由有关PUN 1的BAM中PBN 1的状态信息表示擦除。但是,在这种情况下,随着物理单元中未使用物理块数目的增大,闪速存储器的使用效率下降。
为了解决该问题,根据传统的再映射技术,如图3所示,首先,仅将PUN1中使用过的块传送到另一单元PUN 2。然后,将相应的PUN变换成另一单元的PUN,即,从PUN 1至PUN 2。结果,即使数据被传送到另一单元,也可采用相同的LUN来存取该数据。
只要在一单元或闪速存储器中分别存在空块或空单元,该传统的再映射技术便不允许实际擦除操作。但是,由于擦除的块的数目的增大使闪速存储器中未使用区域增大,因此,可能需要重新使用存在擦除的块的部分的方法。
此外,在写入操作或单元重新使用操作期间的系统故障如电源切断的情况下,由于该故障可能破坏用户数据或用于再映射的数据。因此,为了保护数据以免受到这种故障引起的破坏,传统的方法将状态信息写入相应的块或单元,并且在操作期间适当地修改写入的状态信息,从而执行恢复操作。
如上所述,传统的再映射技术多次执行部分写入操作,以便存储和管理映射信息以及数据。因此,难以将传统的再映射技术原样应用于诸如NAND型闪速存储器这样的闪速存储器。这是因为,在NAND型闪速存储器情况下,同一页中的部分写循环次数或程序循环次数被限制在5次或3次。因此,写入一个块或单元中的信息不能多次修改。例如,在系统故障情况下,由于如上所述地限制了写入对应块或单元中的状态信息修改量,因此,不能正常地执行恢复操作。
另外,为了表示出预定块处于诸如空闲(FF)→分配(8F)→正被写入(4F)→已写入(2F)→正被擦除(0F)→已擦除(00F)的处理状态,或为了表示出预定单元处于诸如空闲(FF)→正被复制(8F)→有效(4F)→正被传送(2F)的处理状态,对相同的物理位置至少执行3次或5次写入操作。此外,考虑到用户数据或纠错码(ECC)被写入一单元或块的路径,难以将传统的再映射应用于其中的部分写循环次数被限制在3次或5次的闪速存储器。
为了解决上述问题,本发明的第一目的是提供一种用于驱动闪速存储器中再映射的方法及采用该方法的闪速存储器体系结构,采用该方法,可在将部分写循环次数保持为最小的同时,写入和处理块和单元的状态。
本发明的又一目的是提供一种驱动闪速存储器中的驱动再映射的方法,及采用该方法的闪速存储器体系结构,该方法采用环绕计数(wrap-count)表示具有较小部分写循环次数的与块和单元有关的状态信息。
本发明的再一目的是提供一种适用于NAND型闪速存储器的驱动再映射的方法及采用该方法的闪速存储器体系结构。
因此,为了实现上述目的,本发明提供了一种闪速存储器中驱动再映射的方法,所述闪速存储器被分成多个单元,每个单元具有一个或多个块,该方法包括下列步骤:根据有关预定块的映射信息,搜索预定的物理单元;如果所找到的物理单元中的所述预定块以有效状态存在,则搜索所述物理单元以寻找其状态为空闲的另一块;将所述另一块的状态改变成接着所述预定块的状态的状态;将新数据和诸如逻辑块号的附加信息写入所述另一块;和将所述预定块的状态改变为删除状态。
最好,该方法还包括如下步骤:当所述预定块不存在或以删除状态存在时,将所述预定块的状态设定为空闲,并搜索其状态为空闲的另一块,当所述另一块不存在时,对所述物理单元执行再生(reclaim)操作。
最好,执行再生操作的步骤包括下列步骤:确定将再生的源单元和传送单元;分别设置所述源单元和待被传送和复制的传送单元的状态;复制在所述源单元中的有效块及相关的元信息和首标信息;在增大所述源单元擦除循环次数(磨损度)的同时,将其状态已被设定为正被复制的传送单元设定为有效状态;和在将擦除循环次数写入所述源单元的同时,删除所述源单元。
本发明的闪速存储器最好如下构成:分配单元的第一个块,以便写入包括先前块的逻辑单元号、状态有效性、和擦除循环次数的信息,分配所述单元的第二个块,以便写入包括正被复制/传送的状态和擦除循环次数(磨损度)的信息,并且表示根据环绕计数确定的块的状态的信息被写入其上写入单元的数据的块中备用阵列的预定区域上。附图的简单说明
通过下面结合示附图对优选实施例进行详细描述,本发明的上述和其他目的和特点将会变得更加清楚,其中:
图1表示在一闪速存储器和传统再映射驱动方法的块和单元之间的关系的示例;
图2表示当擦除其上如图1所示地已写入数据的闪速存储器一个块时闪速存储器和传统再映射驱动方法的块和单元之间的关系的示例;
图3表示当擦除其上如图2所示地写入数据的闪速存储器一个单元时闪速存储器和传统再映射驱动方法的块和单元之间的关系的示例;
图4表示各块之间的关系,用于解释由本发明用于闪速存储器的再映射驱动方法执行的写入和重写操作;
图5表示NAND型闪速存储器的物理单元(PU)格式;
图6表示由本发明闪速存储器的再映射驱动方法执行的写入块的处理的流程图;
图7表示本发明闪速存储器擦除单元的格式;
图8表示各单元之间的关系,用于解释由本发明用于闪速存储器的再映射驱动方法执行再生操作的过程;和
图9表示由本发明闪速存储器的再映射驱动方法执行的再生(reclaim)操作处理的流程图。
首先,在闪速存储器的再映射方法中,将一擦除单元用作用于擦除的基本单元。该擦除单元可以与闪速存储器的物理擦除块相同,如图1-3所示的物理单元号(PUN)1或PUN 2,或者可以由多个擦除块构成。给每个擦除单元指定一PUN和逻辑单元号(LUN)。根据擦除单元的物理顺序指定PUN,而LUN表示的是单元的逻辑顺序。当最初使用闪速存储器时,在闪速存储器上或分离的存储器上提供表示如图1-3所示LUN至PUN映射的表格。每当闪速存储器的映射关系由于诸如擦除、重写和再现等操作而改变时,该表格均发生变化。
擦除单元被分割成多个块(或扇区),如图1-3的PUN 1和PUN 2中所示。这些相同尺寸的块是闪速存储器进行操作的基本单元。另外,擦除单元包括擦除单元首标(EUH)和块分配映象(BAM)。
有关整个闪速存储器的信息和管理对应的擦除单元所需的信息被写入擦除单元的EUH中。有关整个闪速存储器的信息可包括擦除单元中的块尺寸的指示和坏块映象。进行单元管理所必需的信息可包括LUN和磨损度(wearlevel)。擦除单元首标可占据一个或多个块。
在EUH之后写入用户数据和BAM,如图1-3的PUN 1和PUN 2中所示。BAM可被集中写入一个或多个块,或者可被逐块地写入特定的空间,如NAND型闪速存储器的备用阵列。
有关擦除单元中块的信息如逻辑块号(LBN)和块状态被写入BAM中。LBN是用户所看到的块地址。因此,BAM表示的是LBN与其上实际写入相应块的物理位置之间的映射。当写入块的数据发生变化时,BAM的内容如LBN至PBN映射信息和状态信息也发生变化。
当其状态发生变化的块数增大时,闪速存储器中不可用部分增大。因此,适当地执行再生操作,以便重新使用被擦除块所占据的空间。传统的再映射驱动方法考虑到了该问题,但是未规定如何对诸如NAND型闪速存储器的其部分写循环次数受限的闪速存储器执行上述再生操作。
因此,本发明提出了一种采用环绕计数表示有关特定块的状态信息的方法。该方法可以修改具有较小部分写循环次数的特定块的状态,并在系统故障情况下可恢复特定块的数据。另外,由于可采用环绕计数的变化顺序来区分先前数据和新数据,因此,可采用各种恢复方法,如后翻(roll-back)和前翻(roll-forward)处理。后翻处理采用新数据来恢复数据,而前翻处理采用先前数据来恢复数据。如上所述,闪速存储器的再映射驱动操作被分成3个主要操作:块写入、空块搜索、和故障恢复。
BAM中每个块的状态被表示为‘空闲’、‘有效’或‘删除’。‘有效’状态例如可被分成3个状态:s0、s1和s2。在有效状态中,3个状态之间具有循环关系。例如,s0<s1,s1<s2,s2<s0。有效状态按该顺序,即所谓的环绕计数改变。亦即,特定块最初处于空闲状态,并且当开始记录数据时,特定块的状态为s0。当再次记录数据时,块的状态按s1、s2、s0的顺序改变。
图4表示采用上述状态信息将数据写入预定块的处理。图4的示例中,将‘空闲’、‘s0’、‘s1’、‘s2’和‘删除’设置为‘1111’、‘1110’、‘1100’、‘1000’、和‘0000’。因此,采用循环的5个值来设置块状态。图4的示例中,应用了图5所示由物理单元(PU)构成的NAND型闪速存储器。
如图5所示,NAND型闪速存储器的PU中的块由主阵列和备用阵列构成。实际数据被写入主阵列中。诸如逻辑扇区号lsn、环绕计数cnt、用于cnt和lsn的纠错码ecc lsn、及用于数据的纠错码ecc data一类的信息被写入备用阵列中。在这种情况下,该块被称作页。
NAND型闪速存储器的数据表中共用的“块”也被称作能在某时擦除数据的PU。该块可与本实施例中所述及的“单元”相同。但是,在实际实施中,单元可由多个块构成。
首先,采用映射信息来确定属于相应块的单元的LUN和PUN。检查所确定PUN的BMA中相应块的状态。如果该块的状态是‘空闲’(1111),则该块的状态被表示为‘s0’(1110)。然后,将诸如数据和逻辑扇区号lsn的信息写入该块。处于‘空闲’状态的块也具有无效逻辑扇区号lsn。
如果相应块的状态为‘有效’,则根据通常的映射技术来搜索相应的PU以寻找其状态为‘空闲’(1111)的块。然后,将所找到的块的状态改变为接着先前块的状态的状态。例如,如果先前块的状态被指定为‘s0’(1110),则新块的状态被改变成‘s1’(1100)。块搜索方式与传统再映射驱动方法中的相同。然后,将新数据和新逻辑扇区号lsn写入其状态被设定为‘s1’(1100)的新块。先前块的状态被改变成‘删除’(0000)。
如果相应块的状态为‘s1’(1100)并且在相应单元中存在设定为‘空闲’(1111)的块,则处于‘空闲’状态的块的状态被设定为‘s2’(1000)。然后,将诸如数据和逻辑扇区号lsn的信息写入其状态被设定为‘s2’的相应块。先前块的状态被改变成‘删除’(0000)。
如果相应块的状态为‘s2’(1000)并且在相应单元中存在设定为‘空闲’(1111)的块,则处于‘空闲’状态的块的状态被设定为‘s0’(1110)。然后,将数据和逻辑扇区号lsn写入其状态被设定为‘s0’的相应块。先前块的状态被改变成‘删除’(0000)。
下面将全面解释图4中用箭头表示的每个块的状态变化。
如果以这种方式对每个块执行写入和重写,则可通过执行部分写入操作3次将数据写入一个块中(prof)。如果该块处于‘删除’状态,假设除了诸如数据和逻辑扇区号lsn的状态信息之外的数据全部为有效,则可通过执行部分写入操作两次来实际写入数据。如果在步骤401至407中由于电源故障或其他原因出现系统故障,则执行恢复操作,其间,其上写入数据的块的状态被设定为‘删除’。在余下的处理期间,在上述诸如电源故障的系统故障情况下,不必执行任何的恢复操作。
亦即,如果当数据正被写入一特定块时出现故障,则不必对‘空闲’或‘删除’块执行恢复操作。在仅有一个块相对于一个逻辑块号有效时也是如此。
如果存在两个具有相同的逻辑块号的有效块,则需要恢复操作。根据现有技术,如果存在两个具有相同逻辑块号的有效块,则不可能区分先前块和新块,从而难以确定在恢复操作期间擦除哪个块。另一方面,在采用环绕计数情况下,可以区分先前块和新块,从而容易确定将擦除哪个块。可根据应用类型来确定在恢复操作期间是擦除新块还是先前块。
亦即,如果当写入块数据时出现系统故障,则检查是否存在两个具有相同逻辑块号的有效块。如果仅存在一个具有‘有效’状态的块,则不需恢复操作,并停止写入操作。但是,如果存在两个处于‘有效’状态的块,则根据分配给每个块的环绕计数来区分先前块和新块。然后,删除先前块或新块。图4表示的是删除新块的示例。但是也可删除先前块。
图6是本发明再映射驱动方法的块写入/重写操作的流程图。
在步骤601,检查在相应单元中是否存在相应块。如果存在相应块,则检查该相应块是否处于‘有效’状态。如果该块有效,则在步骤603检查相应块的状态。然后,在步骤605,检查相应单元中是否存在空块。该检查是这样进行的,即搜索相应单元以寻找被设置成‘空闲’的块。如果在相应单元中存在空块,则在步骤607确定新块的状态值。
新块的状态值是根据在步骤603检查到的相应块的状态值确定的。如上述参照图4所述,如果先前块的状态被设置成‘s0’,则新块的状态值被设置成‘s1’。如果先前块的状态被设置成‘s1’,则新块的状态值被设置成‘s2’,而如果先前块的状态被设置成‘s2’,则新块的状态值被设置成‘s0’。如果先前块的状态被设置成‘空闲’,则新块的状态值被设置成‘s0’。
然后,在步骤609,将在步骤607确定的新块的状态值写入在步骤605中找到的空块。在步骤611,将与已写入状态值的新块相对应的数据写入新块。在步骤613,先前块的状态被改变成“删除”,并且终止该处理。在这种情况下,先前块是其状态在步骤603中已被检查过的块。
与此同时,如果步骤601中的检查结果为相应块不存在或者其表示为除有效状态外的其他状态(即,相应块的状态为‘删除’),则在步骤615,相应块被指定为‘空闲’。在这种情况下,如果不存在相应块,则分配用于相应块的区域,并且将相应块的状态指定为‘空闲’。然后,如果步骤605的检查结果为相应单元中存在空块,则如步骤607所述地确定新空块的状态值。反过来,如果不存在空块,则在步骤617执行再生操作。后面将参照图7-9来描述再生操作。
在执行再生操作之后,在步骤619,检查在相应单元中是否存在空块。如果检查结果是相应单元中存在空块,则处理流程返回到步骤607,以确定新块的状态值。但是,如果不存在空块,则在步骤621进行差错处理并且终止该处理。
为了从特定块读出数据,首先,采用映射信息来确定相应的LUN和PUN。然后,通过相应单元的BAM确定特定块的物理位置,之后从中读出数据。仅当块有效时才可读取数据。因此,如果不存在效块,则意味着相应单元中的块从未被写入或被删除而不可用。该块被设置到初始值0xFF。以与传统再映射驱动方法相同的方式来进行块搜索。
与此同时,在具有多个删除块的单元情况下,执行再生操作。在这种情况下,同样需要改变单元状态。图7是本发明闪速存储器的擦除单元的格式示例。参照图7,向擦除单元写入先前单元的物理单元号xpun、再生的(先前)单元的磨损度xcnt、逻辑单元号lun、有效标记v、坏块映象格bb tb1、磨损度cnt、复制/传送cp/xf、和数据。
单元的状态变化受到部分写入操作循环次数的限制。可对单元应用块的环绕计数技术。但是,在将EUH写入多个块的同时,可在每个块上适当地分布状态信息。
例如,如果将单元状态分类为空闲、有效、正被复制、和正被传送,则在两个块上写入EUH,如图8所示。‘空闲’和‘有效’被写入第一个块,而‘正被复制’和‘正被传送’被写入第二个块。在这种情况下,即使单元为‘空闲’,仍必须写入用于评价磨损度的计数器。
空闲擦除单元为空闲的,而空闲擦除单元以外的正常单元为有效的。以前曾为擦除单元并从再生的块复制数据的单元被表示为正被复制的‘cp’。在执行再生操作之前,先前单元的状态被表示为正被传送的‘xf’。有效块从正被传送的单元复制到正被复制的单元,然后复制正被传送的单元的磨损度cnt和逻辑块号lun。正被复制的单元的状态被表示为有效v。然后,删除正被传送的单元。等于被复制到新单元的磨损度cnt加1的磨损度cnt″被分别写入新和先前单元的首标。
如果在再生操作期间出现故障,则在图8的redo所示的部分上启动该操作,然后适当地执行恢复处理。亦即,在作为再生操作期间的临时状态的‘正被传送’和‘正被复制’的情况下,重新执行该操作。但是,不在除表示为‘redo’的部分以外的部分上执行恢复操作。
在再生操作期间的故障恢复方法与在块写入/重写操作期间的故障恢复方法相类似。亦即,根据正被执行的操作处理,再次适当地执行再生操作。例如,如果存在两个具有相同LUN的单元,其中的一个正被复制而另一个正被传送,则删除正被复制的单元。如果先前单元(正被复制的单元)的磨损度尚未写入正被传送的单元,则已被写入先前单元(正被复制的单元)的正被传送的单元的磨损度被复制到正被传送的单元,然后执行下一步骤。
与传统再映射驱动方法中的类似,通过改变固定位置上的各个值来表示擦除单元的状态。另外,可将单元首标写入相应单元中的多个块,可对单元的每个状态指定不同的位置,并且将位置值分成0和1,从而确定是否分配状态值。
例如,可将诸如逻辑单元号lun、单元状态有效性、和先前块的磨损度的信息写入第一个块,并且可将诸如复制/传送状态cp/xf、和磨损度的信息写入第二个块。在这种情况下,可采用3个部分写入操作按照图8所示的顺序执行再生操作。如果在多个块上分布状态信息,或者适当地调整状态信息的排列,则可以进一步减少部分写入操作的循环次数。
图9是由本发明再映射驱动方法执行的再生块的处理的流程图。在步骤901,确定待再生的擦除单元(源单元)和传送单元(空闲擦除单元)。在步骤902,检查对传送单元的擦除循环次数是否超过阈值。可根据上述描述将阈值设定为3。如果擦除循环次数不大于阈值3,则在步骤903,将源单元的状态改变为“正被传送”,而在步骤904,传送单元的状态被改变为‘正被复制’。
然后,从源单元向传送单元复制有效块和诸如LBN、ECC和坏块映象的相关元数据。然后,在步骤906,写入诸如PUN、擦除循环次数和LUN的传送单元中的剩余首标信息,然后将传送单元的状态改变为有效。在步骤907,删除源单元,并将新的擦除循环次数写入源单元。新的擦除循环次数的值为先前的擦除循环次数加上1。在步骤909,改变存储器中诸如映射信息的数据结构。在这种情况下,由于更新而进行此改变。然后,在步骤910,检查是否储存了源单元号。如果存在所储存的源单元号,则处理流程返回到步骤901。但是,如果不存在所储存的源单元号,则处理流程终止。
与此同时,如果步骤902的检查结果是传送单元的擦除循环次数超过阈值,则在步骤911储存当前的源单元号。这是因为不适于将源单元的数据传送到相应的传送单元。因此,在步骤912,保留当前的源单元号,以当采用所选源单元(擦除单元)执行再生操作时使用,然后在步骤912采用所改变的传送单元再生以前未曾再生的源单元。亦即,在步骤912选择擦除循环次数最小的擦除单元,然后,流程返回到步骤903,从而如上所述地执行再生操作。
如前所述,本发明的优点在于,通过使用环绕计数设置的状态信息,来管理诸如NAND型闪速存储器的其部分写循环次数受限的闪速存储器的块或单元的写入状态。例如,通过诸如空闲(1111)→有效(s0(1110)→s1(1100)→s2(1000)→s0(1110)→…)→删除(0000)的处理来改变该块或单元的状态。因此,如果对NAND型闪速存储器采用该处理,则可通过执行部分写入操作3次来写入数据。如果删除特定块,假设除实际数据和诸如LBN号的状态信息以外的数据全部有效,则可通过两次部分写入操作来实际写入数据。
在擦除单元情况下,如果诸如相应LUN和状态有效性的信息以及先前单元的磨损度(擦除循环次数)被写入第一个块,并且有关复制/传送和磨损度的信息被写入第二个块,则可通过3次部分程序运行来执行再生操作。如果在多个块上分布状态信息或者适当地调整状态信息的排列,则可进一步减少部分程序运行循环次数。

Claims (12)

1、一种闪速存储器中驱动再映射的方法,所述闪速存储器被分成多个单元,每个单元具有一个或多个块,所述方法包括下列步骤:
根据有关预定块的映射信息,搜索预定的物理单元;
如果所找到的物理单元中的所述预定块以有效状态存在,则搜索所述物理单元以寻找其状态为空闲的另一块;
将所述另一块的状态改变成接着所述预定块的状态的状态;
将新数据和诸如逻辑块号的附加信息写入所述另一块;和
将所述预定块的状态改变为删除状态。
2、如权利要求1所述的方法,其中,所述改变另一块的状态的步骤包括:根据所述预定块的状态设置所述另一块的状态,它被设置成4个可能的状态之一。
3、如权利要求2所述的方法,其中所述改变另一块的状态的步骤包括:
如果所述预定块处于空闲状态,则将所述另一块的状态设置成第一有效状态;
如果所述预定块处于第一有效状态,则将所述另一块的状态设定为第二有效状态;
如果所述预定块处于第二有效状态,则将所述另一块的状态设定为第三有效状态;和
如果所述预定块处于第三有效状态,则将所述另一块的状态设定为第一有效状态。
4、如权利要求1所述的方法,还包括如下步骤:当所述预定块不存在或以删除状态存在时,将所述预定块的状态设定为空闲,并搜索其状态为空闲的另一块。
5、如权利要求4所述的方法,还包括下列步骤:
当所述另一块不存在时,对所述物理单元执行再生(reclaim)操作;
搜索其状态为空闲的另一块;
当找到所述另一块时,返回来改变所述另一块的状态;和
当未找到所述另一块时,将其处理为错误。
6、如权利要求5所述的方法,其中所述执行再生操作的步骤包括下列步骤:
确定将要再生的源单元和传送单元;
分别将所述源单元和传送单元的状态设定为正传送和正被复制;
复制所述源单元中的有效块及相关的元信息和首标信息;
在增大所述源单元擦除循环次数(磨损度)的同时,将其状态已被设定为正被复制的传送单元设定为有效状态;和
在将擦除循环次数写入所述源单元的同时,存储所述源单元。
7、如权利要求6所述的方法,其中所述执行再生操作的步骤还包括下列步骤:
检查所述擦除循环次数是否超过阈值;
如果所述擦除循环次数未超过所述阈值,则返回来设置所述源单元和所述传送单元的状态;
如果所述擦除循环次数超过所述阈值,则擦除所述源单元的源单元号;和
选择具有最小擦除循环次数的源单元,然后返回来设置所述源单元和所述传送单元的状态。
8、如权利要求6所述的方法,其中所述执行再生操作的步骤还包括下列步骤:
在删除所述源单元和写入擦除循环次数之后,更新包括有关闪速存储器的映射信息的内部数据结构;
检查待再生的源单元是否还存在;和
如果待再生的源单元还存在,则返回来确定源单元。
9、如权利要求6所述的方法,其中所述执行再生操作的步骤还包括下列步骤:
检查在故障情况下是否存在两个具有相同的逻辑单元号的单元;和
如果存在两个具有相同的逻辑单元号的单元,其中的一个正被传送而另一个正被复制,则删除正被复制的单元,并将所述擦除循环次数写入正被复制的单元。
10、如权利要求9所述的方法,其中所述执行再生操作的步骤还包括如下步骤:在故障情况下,当未将所述擦除循环次数写入其状态被设定为正被传送的单元时,将被写入到所述正被复制的单元的所述正被传送的单元的擦除循环次数复制到所述正被传送的单元,然后,终止所述再生操作。
11、如权利要求1所述的方法,还包括下列步骤:
在故障情况下,检查是否存在两个具有相同的逻辑单元号的有效块;
如果仅存在一个有效块,则终止写入块状态的处理;
如果存在两个有效块,则检查两个块的状态,并区分所述预定块(先前块)和下一个块(新块);和
删除所述预定块或所述下一个块。
12、一种闪速存储器,其被分成多个单元,每个单元具有一个或多个块,其中,分配所述单元的第一个块,以便写入包括先前块的逻辑单元号、状态有效性、和擦除循环次数的信息,分配所述单元的第二个块,以便写入包括正被复制/传送的状态和擦除循环次数(磨损度)的信息,并且表示根据环绕计数确定的块的状态的信息被写入其上写入单元的数据的块中备用阵列的预定区域上。
CNB011177225A 2000-10-11 2001-04-29 闪速存储器中驱动再映射的方法及其闪速存储器体系结构 Expired - Lifetime CN1300803C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020000059731A KR100644602B1 (ko) 2000-10-11 2000-10-11 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조
KR59731/00 2000-10-11

Publications (2)

Publication Number Publication Date
CN1348191A true CN1348191A (zh) 2002-05-08
CN1300803C CN1300803C (zh) 2007-02-14

Family

ID=36848389

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB011177225A Expired - Lifetime CN1300803C (zh) 2000-10-11 2001-04-29 闪速存储器中驱动再映射的方法及其闪速存储器体系结构

Country Status (6)

Country Link
US (1) US6381176B1 (zh)
EP (1) EP1197868B1 (zh)
JP (1) JP3662510B2 (zh)
KR (1) KR100644602B1 (zh)
CN (1) CN1300803C (zh)
DE (1) DE60121697T2 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100428192C (zh) * 2004-06-15 2008-10-22 冲电气工业株式会社 闪速存储器的写入方法
US7529879B2 (en) 2004-06-30 2009-05-05 Samsung Electronics Co., Ltd. Incremental merge methods and memory systems using the same
CN102193870A (zh) * 2010-03-09 2011-09-21 群联电子股份有限公司 存储器管理与写入方法、存储器控制器与存储器存储系统
CN102789403A (zh) * 2012-07-11 2012-11-21 忆正科技(武汉)有限公司 一种闪存控制器及其控制方法
CN103620562A (zh) * 2011-06-30 2014-03-05 惠普发展公司,有限责任合伙企业 包括用于将数据从活动存储器管芯拷贝至空闲存储器管芯的存储器模块拷贝引擎的存储器模块
CN107402717A (zh) * 2016-05-20 2017-11-28 质子世界国际公司 闪速存储器存储管理
CN113568579A (zh) * 2021-07-28 2021-10-29 深圳市高川自动化技术有限公司 一种存储器、数据存储方法以及数据读取方法

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7702831B2 (en) * 2000-01-06 2010-04-20 Super Talent Electronics, Inc. Flash memory controller for electronic data flash card
US7610438B2 (en) * 2000-01-06 2009-10-27 Super Talent Electronics, Inc. Flash-memory card for caching a hard disk drive with data-area toggling of pointers stored in a RAM lookup table
US20060161725A1 (en) * 2005-01-20 2006-07-20 Lee Charles C Multiple function flash memory system
KR100484147B1 (ko) * 2002-07-26 2005-04-18 삼성전자주식회사 플래시 메모리 관리 방법
US6831865B2 (en) * 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts in non-volatile storage systems
US7234036B1 (en) * 2002-10-28 2007-06-19 Sandisk Corporation Method and apparatus for resolving physical blocks associated with a common logical block
US7035967B2 (en) * 2002-10-28 2006-04-25 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
JP4518951B2 (ja) * 2002-10-28 2010-08-04 サンディスク コーポレイション 不揮発性記憶システムにおける自動損耗均等化
US7171536B2 (en) * 2002-10-28 2007-01-30 Sandisk Corporation Unusable block management within a non-volatile memory system
US7096313B1 (en) 2002-10-28 2006-08-22 Sandisk Corporation Tracking the least frequently erased blocks in non-volatile memory systems
US7103732B1 (en) 2002-10-28 2006-09-05 Sandisk Corporation Method and apparatus for managing an erase count block
US7039788B1 (en) 2002-10-28 2006-05-02 Sandisk Corporation Method and apparatus for splitting a logical block
DE10252059B3 (de) * 2002-11-08 2004-04-15 Infineon Technologies Ag Verfahren zum Betreiben einer Speicheranordnung
KR100526178B1 (ko) 2003-03-31 2005-11-03 삼성전자주식회사 플래시 메모리 액세스 장치 및 방법
KR100526186B1 (ko) * 2003-04-04 2005-11-03 삼성전자주식회사 플래시 메모리의 오류블록 관리방법 및 장치
US7139863B1 (en) 2003-09-26 2006-11-21 Storage Technology Corporation Method and system for improving usable life of memory devices using vector processing
US7188228B1 (en) * 2003-10-01 2007-03-06 Sandisk Corporation Hybrid mapping implementation within a non-volatile memory system
US7032087B1 (en) 2003-10-28 2006-04-18 Sandisk Corporation Erase count differential table within a non-volatile memory system
KR100608602B1 (ko) * 2003-12-10 2006-08-03 삼성전자주식회사 플래시 메모리, 이를 위한 사상 제어 장치 및 방법
KR100526188B1 (ko) * 2003-12-30 2005-11-04 삼성전자주식회사 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리
KR100526190B1 (ko) * 2004-02-06 2005-11-03 삼성전자주식회사 플래시 메모리의 재사상 방법
US20080147964A1 (en) * 2004-02-26 2008-06-19 Chow David Q Using various flash memory cells to build usb data flash cards with multiple partitions and autorun function
US7680977B2 (en) * 2004-02-26 2010-03-16 Super Talent Electronics, Inc. Page and block management algorithm for NAND flash
US7130209B2 (en) * 2004-10-15 2006-10-31 Atmel Corporation Flexible OTP sector protection architecture for flash memories
KR100631765B1 (ko) * 2004-10-18 2006-10-09 삼성전자주식회사 플래시 메모리의 데이터 처리 장치 및 방법
US7958430B1 (en) * 2005-06-20 2011-06-07 Cypress Semiconductor Corporation Flash memory device and method
US7568075B2 (en) * 2005-09-22 2009-07-28 Hitachi, Ltd. Apparatus, system and method for making endurance of storage media
JP4933861B2 (ja) * 2005-09-22 2012-05-16 株式会社日立製作所 ストレージ制御装置、データ管理システムおよびデータ管理方法
EP1791055A1 (en) * 2005-11-23 2007-05-30 Incard SA IC card file system
US8194880B2 (en) * 2006-01-30 2012-06-05 Audience, Inc. System and method for utilizing omni-directional microphones for speech enhancement
KR100781517B1 (ko) * 2006-02-16 2007-12-03 삼성전자주식회사 비휘발성 메모리의 맵핑 정보 관리 장치 및 방법
US20080077590A1 (en) * 2006-09-22 2008-03-27 Honeywell International Inc. Efficient journaling and recovery mechanism for embedded flash file systems
KR100849221B1 (ko) 2006-10-19 2008-07-31 삼성전자주식회사 비휘발성 메모리의 관리 방법 및 비휘발성 메모리 기반의장치
KR100771519B1 (ko) * 2006-10-23 2007-10-30 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법
KR100789406B1 (ko) 2006-11-03 2007-12-28 삼성전자주식회사 플래시 메모리 시스템 및 그것의 가비지 컬렉션 방법
TWI326028B (en) 2006-11-20 2010-06-11 Silicon Motion Inc Method for flash memory data management
KR100816761B1 (ko) * 2006-12-04 2008-03-25 삼성전자주식회사 낸드 플래시 메모리 및 에스램/노어 플래시 메모리를포함하는 메모리 카드 및 그것의 데이터 저장 방법
KR100857761B1 (ko) * 2007-06-14 2008-09-10 삼성전자주식회사 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법
CN101364438B (zh) * 2007-08-08 2011-04-06 奇岩电子股份有限公司 提高与非门阵列闪存的存取装置与方法
US8151034B2 (en) * 2007-09-12 2012-04-03 Sandisk Technologies Inc. Write abort and erase abort handling
KR101413736B1 (ko) 2007-09-13 2014-07-02 삼성전자주식회사 향상된 신뢰성을 갖는 메모리 시스템 및 그것의웨어-레벨링 기법
KR101464338B1 (ko) 2007-10-25 2014-11-25 삼성전자주식회사 불휘발성 메모리 장치를 이용한 데이터 저장장치, 메모리시스템, 그리고 컴퓨터 시스템
JP4489127B2 (ja) * 2008-02-29 2010-06-23 株式会社東芝 半導体記憶装置
JP4439569B2 (ja) * 2008-04-24 2010-03-24 株式会社東芝 メモリシステム
US20090313416A1 (en) * 2008-06-16 2009-12-17 George Wayne Nation Computer main memory incorporating volatile and non-volatile memory
KR101497074B1 (ko) * 2008-06-17 2015-03-05 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법
US8245244B2 (en) * 2008-08-26 2012-08-14 Intel Corporation Device, system, and method of executing a call to a routine within a transaction
TWI364661B (en) * 2008-09-25 2012-05-21 Silicon Motion Inc Access methods for a flash memory and memory devices
US8275933B2 (en) 2008-11-10 2012-09-25 Fusion-10, Inc Apparatus, system, and method for managing physical regions in a solid-state storage device
US8751860B2 (en) * 2009-06-03 2014-06-10 Micron Technology, Inc. Object oriented memory in solid state devices
TWI484334B (zh) * 2009-12-24 2015-05-11 Univ Nat Taiwan 非揮發記憶體的區域式管理方法
WO2011096046A1 (ja) * 2010-02-02 2011-08-11 株式会社 東芝 ストレージ機能を持つ通信装置
TWI447735B (zh) * 2010-02-05 2014-08-01 Phison Electronics Corp 記憶體管理與寫入方法及其可複寫式非揮發性記憶體控制器與儲存系統
KR101666987B1 (ko) * 2010-04-20 2016-10-17 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법
JP2012123499A (ja) 2010-12-07 2012-06-28 Toshiba Corp メモリシステム
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
US9671962B2 (en) 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof
KR102067029B1 (ko) 2012-12-13 2020-01-16 삼성전자주식회사 반도체 메모리 장치 및 메모리 시스템
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
KR102015053B1 (ko) * 2013-02-20 2019-08-27 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 데이터 처리 방법
KR102101304B1 (ko) 2013-03-15 2020-04-16 삼성전자주식회사 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9543025B2 (en) 2013-04-11 2017-01-10 Sandisk Technologies Llc Storage control system with power-off time estimation mechanism and method of operation thereof
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof
US9244519B1 (en) 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling mechanism and method of operation thereof
US9431113B2 (en) * 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9361222B2 (en) 2013-08-07 2016-06-07 SMART Storage Systems, Inc. Electronic system with storage drive life estimation mechanism and method of operation thereof
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data mechanism and method of operation thereof
US9747157B2 (en) 2013-11-08 2017-08-29 Sandisk Technologies Llc Method and system for improving error correction in data storage
TWI548991B (zh) * 2014-02-14 2016-09-11 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
US9405618B2 (en) * 2014-05-28 2016-08-02 Infineon Technologies Ag Marker programming in non-volatile memories
KR102491624B1 (ko) * 2015-07-27 2023-01-25 삼성전자주식회사 데이터 저장 장치의 작동 방법과 상기 데이터 저장 장치를 포함하는 시스템의 작동 방법
TWI661299B (zh) * 2018-04-30 2019-06-01 大陸商深圳大心電子科技有限公司 記憶體管理方法以及儲存控制器
TWI804236B (zh) * 2022-03-16 2023-06-01 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230233B1 (en) * 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5485595A (en) * 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
JPH08212019A (ja) * 1995-01-31 1996-08-20 Mitsubishi Electric Corp 半導体ディスク装置
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
US6034891A (en) * 1997-12-01 2000-03-07 Micron Technology, Inc. Multi-state flash memory defect management

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100428192C (zh) * 2004-06-15 2008-10-22 冲电气工业株式会社 闪速存储器的写入方法
US7529879B2 (en) 2004-06-30 2009-05-05 Samsung Electronics Co., Ltd. Incremental merge methods and memory systems using the same
CN1722109B (zh) * 2004-06-30 2010-05-26 三星电子株式会社 增量归并方法和使用该方法的存储系统
CN102193870B (zh) * 2010-03-09 2014-06-25 群联电子股份有限公司 存储器管理与写入方法、存储器控制器与存储器存储系统
CN102193870A (zh) * 2010-03-09 2011-09-21 群联电子股份有限公司 存储器管理与写入方法、存储器控制器与存储器存储系统
CN103620562A (zh) * 2011-06-30 2014-03-05 惠普发展公司,有限责任合伙企业 包括用于将数据从活动存储器管芯拷贝至空闲存储器管芯的存储器模块拷贝引擎的存储器模块
US9292392B2 (en) 2011-06-30 2016-03-22 Hewlett Packard Enterprise Development Lp Memory module that includes a memory module copy engine for copying data from an active memory die to a spare memory die
CN102789403A (zh) * 2012-07-11 2012-11-21 忆正科技(武汉)有限公司 一种闪存控制器及其控制方法
CN102789403B (zh) * 2012-07-11 2015-08-12 忆正科技(武汉)有限公司 一种闪存控制器及其控制方法
CN107402717A (zh) * 2016-05-20 2017-11-28 质子世界国际公司 闪速存储器存储管理
CN107402717B (zh) * 2016-05-20 2020-09-04 质子世界国际公司 闪速存储器存储管理
CN113568579A (zh) * 2021-07-28 2021-10-29 深圳市高川自动化技术有限公司 一种存储器、数据存储方法以及数据读取方法
CN113568579B (zh) * 2021-07-28 2022-05-03 深圳市高川自动化技术有限公司 一种存储器、数据存储方法以及数据读取方法

Also Published As

Publication number Publication date
US20020041517A1 (en) 2002-04-11
EP1197868A2 (en) 2002-04-17
US6381176B1 (en) 2002-04-30
CN1300803C (zh) 2007-02-14
EP1197868B1 (en) 2006-07-26
JP3662510B2 (ja) 2005-06-22
KR100644602B1 (ko) 2006-11-10
KR20020028624A (ko) 2002-04-17
DE60121697T2 (de) 2007-08-02
EP1197868A3 (en) 2004-01-14
JP2002123421A (ja) 2002-04-26
DE60121697D1 (de) 2006-09-07

Similar Documents

Publication Publication Date Title
CN1300803C (zh) 闪速存储器中驱动再映射的方法及其闪速存储器体系结构
US9600184B2 (en) Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US8151082B2 (en) Apparatus, system, and method for converting a storage request into an append data storage command
US8195912B2 (en) Apparatus, system, and method for efficient mapping of virtual and physical addresses
US8392798B2 (en) Apparatus, system, and method for validating that correct data is read from a storage device
TWI400608B (zh) 在一主機系統與一可重新程式化的非揮發性大量儲存系統之間傳輸資料之方法、在一快閃記憶體系統中之控制器之操作方法以及大量儲存記憶體系統
US6738863B2 (en) Method for rebuilding meta-data in a data storage system and a data storage system
US9519647B2 (en) Data expiry in a non-volatile device
US20130024460A1 (en) Apparatus, system, and method for indexing data of an append-only, log-based structure
CN1818877A (zh) 元数据复制和复原的方法与系统
CA2549917A1 (en) File system storing transaction records in a storage media
EP2267725A1 (en) Memory device for managing the recovery of a non volatile memory
EP0745939A2 (en) Re-entrant garbage collection process for a flash memory resident file system
Do et al. Programming an SSD controller to support batched writes for variable-size pages
US20230297242A1 (en) Storage device and data recovery method by storage device

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term

Granted publication date: 20070214

CX01 Expiry of patent term