CN1256732C - 快闪存储器及其控制方法 - Google Patents

快闪存储器及其控制方法 Download PDF

Info

Publication number
CN1256732C
CN1256732C CNB001263781A CN00126378A CN1256732C CN 1256732 C CN1256732 C CN 1256732C CN B001263781 A CNB001263781 A CN B001263781A CN 00126378 A CN00126378 A CN 00126378A CN 1256732 C CN1256732 C CN 1256732C
Authority
CN
China
Prior art keywords
block
unit
data
stand
state
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.)
Expired - Fee Related
Application number
CNB001263781A
Other languages
English (en)
Other versions
CN1290014A (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 CN1290014A publication Critical patent/CN1290014A/zh
Application granted granted Critical
Publication of CN1256732C publication Critical patent/CN1256732C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • 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/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators

Abstract

一种快闪存储器及其控制方法。该存储器包括多个单元,每个单元包括:多个数据块,用于写入数据;多个备用块,这些块被腾空以写入数据块更新数据;映射块,指定数据写入的实际位置;首部块,记录快闪存储器信息和单元信息。该方法在更新数据块数据时,将更新数据写到相同单元中腾空的备用块中,更新映射块的映射信息、先前块的状态信息,使用户能用相同地址访问数据,不需在每次更新块时删除单元。本发明提高了写入和更新数据效率。

Description

快闪存储器及其控制方法
技术领域
本发明涉及快闪存储器及控制该快闪存储器的方法,尤其涉及能以块为单位读写数据并有效管理块的逻辑和物理地址之间的映射的快闪存储器及控制该快闪存储器的方法。
背景技术
由INTEL有限公司首次于20世纪80年代初开发的快闪存储器是一种EPROM,但与一般的EPROM不同之处在于快闪存储器不需要单独的用于程序的硬件,并且快闪存储器中的数据可由软件来删除和写入。
由于快闪存储器的易失性和可编程特性,快闪存储器广泛地用在内置型系统中,比如用在移动电话或类似于PDA的其它移动设备中。
快闪存储器允许对存储在类似于现有的RAM或其它易失性存储设备、磁盘等特定位置的数据进行随机访问,但采用不同的校正和删除数据的方法。
也就是说,在删除写入初始化的快闪存储器的某个块中的数据的情况下,删除包含该块的一单元。
这里,具有物理连续地址的字节被称为一块,该块用作相对于快闪存储器进行操作的基本单元。此外,在删除操作中,快闪存储器中由多个块组成的单元作为基本单元被一次物理性地删除。
因此,数据就象在盘中一样主要以块为单位被访问,而不是象在RAM中那样以字节为单位读写数据。
能使快闪存储器用作块设备的软件通常称为快闪转换层(flash translationlayer,FTL)。
M系统公司的TureFFS[FTL97]和Datalight公司的FlashFX[FX99]可以认为是典型的FTL产品。
具体地讲,用于支持块再映射(re-mapping)的、上述软件的多种成份中的一种成份在TureFFS[FX97]中称为FTL而在FlashFX中称为VBX,并且M系统公司的FTL被选为PC卡标准存储格式。
在以块为单位访问快闪存储器的情况下,将快闪存储器划分为多个块,每个块都具有比一个单元小的某个尺寸。
顺序分配给划分块的号码称为物理块号码(physical block number,PBN),而用户脑中所具有的划分块的虚构号码称为逻辑块号码(logical block number,LBN)。
用于提供逻辑块号码(LBN)和物理块号码(PBN)之间的映射的方法主要分类为固定映射和随机映射。
A.固定映射
固定映射是用于固定地定义逻辑块号码(LBN)和物理块号码(PBN)之间的关系的方法。
在不采用单独首部(header)的非常简单的情况下,所述关系可表示为LBN=PBN。
图1(A)是解释通常的固定映射的图,而图2是说明外围电路以及一般的快闪存储器的方框图。如图1(A)和图2所示,如果写入快闪存储器2的单元的块2中的数据被更新,则块1、3和4的数据被一次读出以写入RAM 3中,块1、2、3和4所属的单元的所有数据被删除,写入RAM 3中的块1、3和4的数据被再次读出以写入块1、3和4,并且将新数据写入块2中。
因此,删除和再写入块数据要花费较长时间,并且,如果恰好在删除块数据之后出故障则可能丢失块1、2、3和4中的所有数据。
也就是说,固定映射的优点在于它不需要用于保持复杂映射信息的存储空间和算法,并且码尺寸较小,但同时也具有删除操作或更新操作性能不太好的缺点。
B.随机映射
随机映射主要用在现有的FTL产品中,没有确切定义逻辑块号码(LBN)和物理块号码(PBN)之间的关系。
也就是说,随机逻辑块分配给空的物理块,因而所述关系可表示为MAP(LBN)=PBN。
逻辑单元号码(logic unit number,LUN)和物理单元号码(physical unitnumber,PUN)之间的映射信息,与逻辑块号码(LBN)和物理块号码(PBN)之间的映射信息一起存储在RAM 3和快闪存储器2中。
逻辑单元号码(LUN)和物理单元号码(PUN)之间的映射信息写入RAM 3的映射表中,以用于将逻辑地址转换为物理地址,因此,如果由于删除操作、更新操作或检索(retrieve)操作而改变映射关系,则映射表也更新,以继续允许访问逻辑地址。
图1(B)是解释通常的随机映射的图。如图1(B)所示,在中央处理单元1执行读取操作的情况下,用户请求的逻辑块号码(LBN)通过映射表转换为物理块号码(PBN)。
至于写入操作,就象前面所述的读取操作那样,逻辑块号码(LBN)首先转换为物理块号码(PBN)以访问相应块。此时,如果数据事先写入所述相应块,则该块所属单元的数据由于快闪存储器的特性而被全部删除,不更新的块的数据和要更新的块的数据重写入删除的单元或写入新单元中,然后指示删除先前的单元。
此时,在映射表中更新相对于逻辑块号码(LBN)的物理块号码(PBN)。
此外,由于如果在一个单元中有许多块不被使用则存储器的使用率降低,因而仅将使用的块移动到不同单元,其中逻辑号码分配给该单元然后转换为物理块,以便即使移动了单元数据也能够执行对相同逻辑单元号码(LUN)的访问。
如上所述,用于快闪存储器的传统随机映射方法利用映射表来将数据写入快闪存储器或者从快闪存储器中读取数据。
用于快闪存储器的传统随机方法有一个缺点是它需要用于保持映射信息的单独的存储空间,该映射信息是将逻辑地址转换为随机物理地址所需要的,并且,所述方法很难无错地实现或植入(implanting)复杂的映射结构或算法。
发明内容
因此,为了解决所述问题,本发明的一个目的是提供一种快闪存储器和控制该快闪存储器的方法,能以块为单位读写数据并有效管理块的逻辑和物理地址之间的映射。
为了达到上述目的,按照本发明的一种快闪存储器包括多个单元,每个单元包括:多个数据块,用于写入数据;多个备用块,这些备用块被腾空以写入所述数据块的更新数据;一映射块,用于指定数据写入的实际位置,其中记录在所述映射块中的是逻辑块号码、块状态信息和更新的块位置信息;和一首部块,用于记录快闪存储器信息和单元信息。
此外,为达到上述目的,按照本发明的一种控制快闪存储器的方法,用在具有多个单元的快闪存储器中,所述每个单元包括:多个数据块,用于写入数据;多个备用块,这些备用块被腾空以写入所述数据块的更新数据;一映射块,用于指定数据写入的实际位置;和一首部块,用于记录快闪存储器信息和单元信息,所述方法包括步骤:搜索一逻辑块所属的逻辑单元;搜索相对于所述逻辑单元的物理单元;以及,在所述物理单元的映射块中搜索相应于所述逻辑块的物理块位置,从而控制映射操作。
因此,本发明在更新数据块的数据的情况下,首先将更新数据写到相同单元中腾空的备用块中,更新映射块的映射信息,并更新先前块的状态信息,以使用户能够使用相同的地址访问数据,并且不需要在每次更新块时删除一单元。因此,本发明通过削减删除次数而提高了写入和更新数据的效率。
附图说明
通过参照附图详细描述本发明的优选实施例,本发明的上述和其它优点将变得更加清楚,附图中:
图1(A)是解释通常的固定映射的图;
图1(B)是解释通常的随机映射的图;
图1(C)是解释按照本发明一个实施例的混合映射的图;
图2是说明外围电路以及通常的快闪存储器的框图;
图3是解释按照本发明一个实施例的快闪存储器及控制该快闪存储器的方法的图,(A)是说明LBN到LUN映射表结构的图,(B)是说明LUN到PUN映射表结构的图,而(C)和(D)是说明快闪存储器中的各单元结构的图;
图4是说明由图3的方法控制的映射操作的流程图;
图5是说明由图3的方法控制的块分配操作的流程图;
图6是说明由图3的方法控制的读取操作的流程图;
图7是说明由图3的方法控制的删除操作的流程图;
图8是说明由图3的方法控制的更新操作的流程图;
图9是说明由图3的方法控制的检索操作的流程图;
图10是说明当在执行图8的更新操作过程中发生差错时,由图3的方法控制的恢复操作状态的图;
图11是说明当在执行图9的检索操作过程中发生差错时,由图3的方法控制的恢复操作状态的图;
图12是解释图8的更新操作的图,(A)是说明LBN到LUN映射表结构的图,(B)是说明LUN到PUN映射表结构的图,而(C)和(D)是说明快闪存储器中的各单元结构的图;和
图13是解释图9的检索操作的图,(A)是说明LBN到LUN映射表结构的图,(B)是说明LUN到PUN映射表结构的图,而(C)和(D)是说明快闪存储器中的各单元结构的图。
具体实施方式
下面将参照附图详细描述按照本发明一个实施例的快闪存储器及其控制方法。
图3的(C)和(D)是说明按照本发明一个实施例的快闪存储器中的各单元结构的图。
如图3的(C)和(D)所示,在按照本发明的具有多个单元的快闪存储器中,每个单元包括:多个数据块,用于写入数据;多个备用块,这些备用块被腾空以写入所述数据块的更新数据;一映射块,用于指定数据写入的实际位置;和一首部块,用于记录快闪存储器信息和单元信息。
这里,所述单元用作删除操作的基本单元,写入首部块中的是逻辑单元号码(LUN)、磨损程度和块尺寸信息,写入映射块中的是逻辑块号码(LBN)、块状态信息和更新的块位置信息。
图4是说明由按照本发明一个实施例的控制快闪存储器的方法所控制的映射操作的流程图。
如图4所示,在一种快闪存储器中,该快闪存储器包括:多个数据块,用于写入数据;多个备用块,这些备用块被腾空以写入数据块的更新数据;一映射块,用于指定数据写入的实际位置;和由用于记录快闪存储器信息和单元信息的首部块组成的单元,按照本发明一个实施例的方法包括步骤:搜索一逻辑块所属的逻辑单元(S11);搜索相对于所述逻辑单元的物理单元(S12);以及,在所述物理单元的映射块中搜索相应于所述逻辑块的物理块位置(S13),从而控制映射操作。
图5是说明由按照本发明一个实施例的控制快闪存储器的方法所控制的块分配操作的流程图。
如图5所示,按照本发明一个实施例的方法包括步骤:检验单元的映射块,以判断在该单元中是否有备用块(S21);如果作为在步骤S21中的判断结果得知在所述单元中没有备用块,则相对于所述单元执行检索操作(S22);检验所检索单元的映射块,以判断在所检索单元中是否有备用块(S23);如果作为在步骤S21中的判断结果得知在所述单元中有备用块,或者作为在步骤S23中的判断结果得知在所检索单元中有备用块,则将一逻辑块号码和数据块状态写入映射块(S24);以及,如果作为在步骤S23中的判断结果得知在所检索单元中没有备用块,则执行差错处理,由此来控制分配操作。
图6是说明由按照本发明一个实施例的控制快闪存储器的方法所控制的读取操作的流程图。
如图6所示,按照本发明一个实施例的方法包括步骤:搜索一相应数据块所属的单元(S31);判断所述相应数据块是否存在于所述单元中(S32);如果作为在步骤S32中的判断结果得知相应数据块存在,则读取相应数据块中的数据(S33);以及,如果作为在步骤S32中的判断结果得知相应数据块不存在,则执行差错处理(S34),由此来控制读取操作。
图7是说明由按照本发明一个实施例的控制快闪存储器的方法所控制的删除操作的流程图。
如图7所示,按照本发明一个实施例的方法包括步骤:搜索一相应数据块所属的单元(S41);以及,更新写入单元的一映射块中的相应数据块的状态(S42),由此来控制删除操作。
图8是说明由按照本发明一个实施例的控制快闪存储器的方法所控制的更新操作的流程图。
如图8所示,按照本发明一个实施例的方法包括步骤:确定一相应数据块所属的单元(S51);判断所述相应数据块是否存在于所述单元中(S52);如果作为在步骤S52中的判断结果得知所述相应数据块存在,则搜索一映射块并判断相应数据块的状态是否是“已分配(allocated)”(S53);如果作为在步骤S53中的判断结果得知相应数据块是“已分配”,则将相应数据块的状态更新为“写入(writing)”(S54);将数据存储在相应数据块中(S55);将相应数据块的状态更新为“已写入(written)”(S56);如果作为在步骤S53中的判断结果得知相应数据块为“已分配”,则将相应数据块更新为“删除(deleting)”(S57);搜索待分配的单元中的备用块(S58);将新分配块的状态更新为“写入”(S59);将新分配块的位置信息存储在映射块中(S60);将数据存储在新分配的块中(S61);将新分配块的状态更新为“已写入”(S62);将相应数据块的状态更新为“已删除(deleted)”(S63);以及,如果作为在步骤S52中的判断结果得知相应数据块不存在,则执行差错处理(S64),由此来控制更新操作。
图9是说明由按照本发明一个实施例的控制快闪存储器的方法所控制的检索操作的流程图。
如图9所示,按照本发明一个实施例的方法包括步骤:确定一检索单元(EU)和一移动单元(TU)(S71);判断移动单元(TU)的删除次数是否超过一临界值(S72);如果作为在步骤S72中的判断结果得知移动单元(TU)的删除次数超过临界值,则选择最小删除次数的一移动单元(S73);如果选择了由步骤S72中的判断结果得知的具有不超过临界值的删除次数的移动单元(TU),或者选择了步骤S73中的具有最小删除次数的移动单元(TU),则将检索单元(EU)的状态更新为“移动(moving)”(S74);将步骤S74中的所述具有不超过临界值的删除次数或者具有最小删除次数的移动单元(TU)的状态更新为“复制(copying)”(S75);将“写入”和“已写入”状态下的块和映射块项目以及删除次数从检索单元(EU)复制到所述移动单元(TU)中(S76);将所述移动单元(TU)的状态更新为“有效(valid)”(S77);删除所述检索单元(EU)(S78);读取和增加复制到所述移动单元(TU)的所述检索单元的删除次数,然后将该删除次数写入当前删除的检索单元中(S79);以及,更新快闪存储器中的诸如映射信息等的资料(material)结构(S80),由此来控制检索操作。
图10是说明当在执行图8的更新操作期间发生差错时,由图3的方法所控制的恢复操作状态的图。
如图10所示,按照本发明一个实施例的方法,在删除数据块X_old的数据期间,a)如果在没有分配备用块X_new的状态下发生差错,则在相同单元中分配备用块Y_new,并将删除数据从数据块X_old写入分配的备用块Y_new中;b)如果在分配了备用块X_new的状态下发生差错,则将删除数据从数据块X_old写入分配的备用块X_new中;以及,c)如果在更新数据正写入备用块X_new的状态下发生差错,则删除写入备用块X_new的更新数据,在相同单元中重新分配备用块Z_new,并将删除数据从数据块X_old写入重新分配的备用块Z_new中,由此来控制差错发生时的恢复操作。
图11是说明当在执行图9的检索操作过程中发生差错时,由图3的方法控制的恢复操作状态的图;
如图11所示,按照本发明一个实施例的方法,在传送检索单元(EU)的数据期间,a)如果在数据正复制到一移动单元(TU)的状态下发生差错,则重新执行检索单元(EU)的检索操作;以及,b)如果在数据不是正复制到移动单元(TU)的状态下发生差错,则删除复制到移动单元(TU)的数据,并重新执行检索单元(EU)的检索操作,由此来控制差错发生时的恢复操作。
下面将参照图2,就快闪存储器单元结构、映射操作、块分配操作、读取操作、删除操作、更新操作、检索操作、和差错发生时的恢复操作这些方面来详细描述具有如上所述结构的本发明实施例的操作和效果。
图2是说明应用于本发明一个实施例的外围电路以及通常的快闪存储器的框图。
a.快闪存储器单元结构
按照本发明的方法的快闪存储器单元具有大体上类似于FTL、DMS等的结构,但与它们不同的是采用了不同的映射方法,因而使用了适用于该映射方法的存储结构和算法。
总的来说,快闪存储器是由多个单元组成的,每个单元都具有多个块。
对每个单元都提供了物理单元号码(PUN)和逻辑单元号码(LUN),其中物理单元号码(PUN)以单元的物理顺序分配的,而逻辑单元号码(LUN)是指示单元的逻辑顺序的号码。
此外,对每个单元都提供了物理块号码(PBN)和逻辑块号码(LBN),其中物理块号码(PBN)以块的物理顺序分配的,而逻辑块号码(LBN)是指示块的逻辑顺序的号码。
图3是解释按照本发明一个实施例的快闪存储器及控制该快闪存储器的方法的图,(A)是说明LBN到LUN映射表结构的图,(B)是说明LUN到PUN映射表结构的图,而(C)和(D)是说明快闪存储器中的各单元结构的图;
如图3的(C)和(D)所示,写入单元的第一块中的是有关整个快闪存储器的信息(例如,块尺寸信息)和单元管理所必需的信息(例如,逻辑单元号码(LUN)、磨损程度)。所述第一块称为首部(EUH:eraser unit header,擦除器单元首部)块。
单元中的第二块是映射(BAM:block allocation map,块分配映射)块,其中写入相对于属于该单元的各块的信息(例如,逻辑块号码(LBN)、块状态信息和更新块的位置信息等)。
逻辑块号码(LBN)是用户脑中的块地址。因此,映射块指示逻辑块号码(LBN)和物理块号码(PBN)之间的映射,块实际上是写入物理块号码(PBN)中。如果更新块数据,则改变映射块中相应项的状态信息,以便在存储更新块的位置写入。根据该值就能找出块的最终位置。
此时,为了更有效地控制快闪存储器1,每个单元的映射块被部分或全部复制到诸如RAM 3的存储器件中,因而不根据所改变的位置信息便能立即掌握最终位置。
此时,可分配给单元的块数目应当保持小于可记录到单元的最大块数目。
例如,如图3的(C)和(D)所示,如果在一个单元中有六个块,则使用时将块划分为一个首部块、一个映射块、三个数据块、和一个备用块,以使该备用块可在删除之后更新或重写数据块时使用。
b.映射操作
按照本发明的方法控制的映射操作是以一种混合映射来进行的,这种混合映射对固定映射和随机映射进行了组合。
如图1的(A)所示,混合映射将逻辑块号码(LBN)分配给特定的逻辑单元号码(LUN),然后将逻辑块号码(LBN)随机分配到逻辑单元中。将逻辑块号码(LBN)分配给逻辑单元号码的方法类似于利用散列函数(hash function)将关键值分配给存储桶(bucket)的一种方法,亦即,“Search(Hash(LBN))=PBN”。
图4是说明由按照本发明一个实施例的控制快闪存储器的方法所控制的映射操作的流程图,对该流程图将参照图1(C)、图3和图4来描述。
首先,如果中央处理单元1通过实施对快闪存储器2的块的访问来执行操作,则中央处理单元1搜索该块所属的逻辑单元号码(LUN)(S11)。此时,为能搜索到逻辑块号码所属的逻辑单元号码,可使用如图3中的(A)所示的“LBN到PUN”映射表。
在中央处理单元1确定了逻辑单元号码(LUN)之后,使用图3中的(B)所示的“LUN到PUN”映射表来确定相对于一逻辑单元的物理单元(S12)。
此外,中央处理单元1在如图3的(C)和(D)所示的物理单元的映射块中搜索相对一逻辑块的物理块位置(S13)。
“LBN到PUN”映射表和“LUN到PUN”映射表位于RAM 3中。如果由于删除操作、更新操作、或检索操作而改变了映射关系,则更新映射表,以使中央处理单元1能实施对等同逻辑地址的继续访问。
这种混合映射并不象在固定映射中那样固定地将逻辑块映射到物理块,也不象在随机映射中那样需要空间和时间来保持复杂的映射信息,同时在属于一单元的各个块集中更新的情况下也不发生频繁的删除操作,因而能增强读写数据的效率。
尺寸不同的单元可用在双列(double bank)快闪存储器2中。由于在这种情况下各单元尺寸互不相同,为使这种非对称结构的快闪存储器能够在将单元用作分配逻辑块的存储桶的本发明的映射操作中得到支持,应当提供有效地使用尺寸互不相同的存储桶的映射方法。如图1的(C)所示,逻辑块号码(LBN)映射为存储桶号码(bucket number,BN)(LBN到BN),而该存储桶号码(BN)映射为逻辑单元号码(LUN)(BN到LUN),从而处理一单元好象使用尺寸不同的存储桶。
c.块分配操作
图5是说明由按照本发明一个实施例的控制快闪存储器的方法所控制的块分配操作的流程图。
如图5所示,中央处理单元1首先搜索快闪存储器2中一个单元的映射块,并判断在该单元中是否存在备用块(S21),并且,如果在该单元中没有备用块,则中央处理单元1相对于该单元执行检索操作(S22)。
此外,中央处理单元1搜索所检索单元的映射块,并判断在所检索单元中是否有备用块(S23),并且,如果作为在步骤S21中的判断结果得知在所述单元中有备用块,或者作为在步骤S23中的判断结果得知在所检索单元中有备用块,则中央处理单元1将一逻辑块号码(LBN)和一数据块状态写入映射块(S24),并且,如果在所检索单元中没有备用块,则执行差错处理。
此时,可分配给单元的块数目保持小于可记录到该单元的最大块数目。
例如,如果一个单元中的最大可记录块为10,则实际在该单元中仅分配7个块。
其余的3个空的空间保留用于在删除之后更新或重写现有块时使用的备用块。
备用块相对于数据块的比率可以按照快闪存储器的应用需要来确定。频繁执行更新操作的单元中的备用块比率被提高,以降低更新操作执行的频率,因而从整体上提高了操作执行速度。
此外,在读取操作专用单元中并不将备用块单独搁置,因而提高了空间使用率。
d.读取操作
图6是说明由按照本发明一个实施例的控制快闪存储器的方法所控制的读取操作的流程图。
参照图3和图6来述及读取操作,中央处理单元1首先通过混合映射来搜索一相应数据块所属的逻辑单元号码(LUN)和物理单元号码(PUN),并通过相应物理单元的映射块来确定所述相应数据块的物理位置(S31)。
此时,中央处理单元1判断所述相应数据块是否存在于所述单元中(S32),如果存在所述相应数据块,则从该相应数据块中读取数据(S33),并且,如果不存在所述相应数据块,则执行差错处理(S34)。
在更新块的情况下,如果追寻映射块中的更新块的位置,可以找到块位置。
e.删除操作
图7是说明由按照本发明一个实施例的控制快闪存储器的方法所控制的删除操作的流程图。
如图7所示,中央处理单元1首先通过混合映射来搜索一相应数据块所属的逻辑单元号码(LUN)和物理单元号码(PUN),并通过相应物理单元的映射块来确定所述相应数据块的物理位置(S41);然后,将记录在单元的映射块中的相应数据块的状态更新为“删除”(S42)。
也就是说,当删除块数据时,中央处理单元1仅更新块状态信息,而不删除该块所属的单元。
f.更新操作
图8是说明由按照本发明一个实施例的控制快闪存储器的方法所控制的更新操作的流程图,而图12是解释图8的更新操作的图,其中(A)是说明LBN到LUN映射表结构的图,(B)是说明LUN到PUN映射表结构的图,而(C)和(D)是说明快闪存储器中的各单元结构的图。
参照图8和图12来述及更新操作,中央处理单元1首先通过混合映射来搜索一相应数据块所属的逻辑单元号码(LUN)和物理单元号码(PUN),并通过相应物理单元的映射块来确定所述相应数据块的物理位置(S51)。
中央处理单元1判断所述相应数据块是否存在于所述物理单元中(S52);如果存在所述相应数据块则搜索映射块,并判断相应数据块的状态是否是“已分配”(S53)。
如果作为在步骤S53中的判断结果得知相应数据块的状态是“已分配”,则中央处理单元1将相应数据块的状态更新为“写入”(S54);将数据写入相应数据块中(S55);将相应数据块的状态更新为“已写入”(S56)。
如果作为在步骤S53中的判断结果得知相应数据块为“已分配”,则中央处理单元1将相应数据块的状态更新为“删除”(S57),并进行搜索,然后将一备用块分配在单元中(S58)。
相应地,中央处理单元1将新分配块的状态更新为“写入”(S59),将新分配块的位置信息存储在映射块中(S60),将数据写入新分配的块中(S61),将新分配块的状态更新为“已写入”(S62),并且将相应数据块的状态更新为“已删除”(S63)。
此时,如果作为在步骤S52中的判断结果得知相应数据块不存在,则中央处理单元1执行差错处理(S64)。
也就是说,当更新块数据时,如果在单元中存在备用块,则中央处理单元1将新数据写入该备用块中,更新映射信息,并更新先前块的状态。
例如,如图12的(C)所示,在更新块1的数据的情况下,中央处理单元1将一备用块作为新块4分配,并将新数据写入该新块4中,以使所有的备用块都存在于物理单元1中。此时,中央处理单元1保留先前块1的数据原封未动,并且仅将块1的状态信息标记为“已删除”。
g.检索操作
如果分配在单元中的块被频繁更新或删除,则减少备用块,以使所有的更新和删除操作都可以执行。
在随机映射的情况下,块可以移动到不同单元,但在本发明的情况下分配了块的逻辑单元是固定的,以便通过删除单元而使备用块再次得到保证。
也就是说,检索单元中的有效块传送到移动单元,并且删除先前单元以复原到可重复使用状态。
此时,在传送之后,删除的单元变为移动单元。
在快闪存储器设备中始终存在至少一个或多个移动单元,并且,在尺寸不同的单元情况下,存在的移动单元数目至少为种类数目。
例如,如果一快闪存储器具有一8KB单元和一64KB单元,则应当存在一个或多个8KB移动单元以及一个或多个64KB移动单元。
数据传送或移动仅发生在每一个都具有相同尺寸的各单元之间。
相应地,在数据传送之后,在BN到LUN映射表中不更新逻辑单元号码(LUN),而仅在LUN到PUN映射表中更新物理单元号码(PUN)。
如果需要在尺寸不同的单元之间进行移动,则对于BN到LUN映射来说需要单独的存储空间,并且需要存储空间和处理时间来维持单元内部的存储桶边界。
在本发明的方法中,逻辑块映射到固定逻辑单元。因此,在频繁更新一特定块的情况下,该块所属的逻辑单元的删除次数急剧增加。
这种不足可以通过使用文件因数(file factor)和磨损程度水准测量方法来解决。
也就是说,存储桶尺寸维持小于单元尺寸,因而不实施移动,直到更新操作发生到一定程度。
然而,即使这样做,也会大大增加两个单元的删除次数。
相应地,删除次数记录在首部块中,并且,如果该次数大于预定值,则与具有更少删除次数的不同单元交换数据。
图9是说明由按照本发明一个实施例的控制快闪存储器的方法所控制的检索操作的流程图,并且,图13是解释图9的检索操作的图,(A)是说明LBN到LUN映射表结构的图,(B)是说明LUN到PUN映射表结构的图,而(C)和(D)是说明快闪存储器中的各单元结构的图;
参照图9和图13来述及按照本发明一个实施例的检索操作,中央处理单元1首先确定一检索单元(EU)和一移动单元(TU)(S71),读取记录在该移动单元(TU)的首部块中的删除次数,并判断该删除次数是否超过一临界值(S72)。
如果作为在步骤S72中的判断结果得知移动单元(TU)的删除次数超过临界值,则中央处理单元1选择具有最小删除次数的一移动单元(TU)(S73)。
如果选择了步骤S72中的具有不超过临界值的删除次数的一移动单元(TU),或者选择了步骤S73中的具有最小删除次数的一移动单元(TU),则中央处理单元1将检索单元(EU)的状态更新为“移动”(S74),并且将具有不超过临界值的删除次数的移动单元(TU)的状态或者具有最小删除次数的移动单元(TU)的状态更新为“复制”(S75)。
中央处理单元1将“写入”和“已写入”状态下的各块、映射块项目、以及删除次数从检索单元(EU)复制到移动单元(TU)中(S76),将移动单元(TU)的状态更新为“有效”(S77),并且删除所述检索单元(EU)(S78)。
在处理过程结束之后,中央处理单元1读取并增加复制到移动单元(TU)的首部块中的删除次数,将该删除次数写入删除单元的首部块中(S79),并且更新快闪存储器内的诸如映射信息等的资料结构(S80)。
此时,中央处理单元1在RAM 3中单独记录具有由步骤S72的判断结果得出的超过临界值的删除次数的移动单元(TU)的号码,然后,如果检索操作结束,则读取记录在RAM 3中的移动单元(TU)号码,并执行相对于该移动单元的检索操作。
例如,如图13的(C)和(D)所示,如果在具有物理单元号码为1的单元中不存在备用块,则中央处理单元1执行一检索操作,将有效块从一检索单元传送到具有物理单元号码为3的移动单元中,删除具有物理单元号码为1的单元中的所有数据,并保证备用块。
在所述检索操作执行期间,中央处理单元1能够通过从移动单元的首部块读取删除次数来判定检索是否是按照该删除次数来实现的,但在系统初始化时能够通过判定是否实现检索来将是否实现检索维持为一转换变量。
此外,中央处理单元1应当搜索磨损程度量级以对磨损程度进行水准测量。对于磨损程度的水准测量,中央处理单元1在存储器中以队列形式组成资料结构。
此外,中央处理单元1能够事先将块或单元的状态设置为适合于快闪存储器的性能和算法量级。
例如,由于块的状态以用于读取、写入、删除和更新操作的未定义(undefined)(FF)→已分配(allocated)(8F)→写入(writing)(4F)→已写入(written)(2F)→删除(deleting)(0F)→已删除(deleted)(00)的顺序进展,而单元的状态以用于检索操作的未定义(undefined)(FF)→复制(copying)(8F)→有效(valid)(4F)→移动(moving)(2F)的顺序进展,中央处理单元1事先将块或单元的状态设置为以上述顺序更新。
h.差错恢复
图10是说明当在执行图8的更新操作期间发生差错时,由按照本发明一个实施例的控制快闪存储器的方法所控制的恢复操作状态的图,并且,图11是说明当在执行图9的检索操作过程中发生差错时,由按照本发明一个实施例的控制快闪存储器的方法所控制的恢复操作状态的图。
也就是说,图10示出了表示当更新一块时,先前块X_old和新块X_new的状态信息随时间而被更新的流程。
粗体向下箭头表示时间轴,矩形框中的每一个值都表示在相应时间的块状态,并且,水平线表示故障发生时间。
图中左侧和右侧的弯曲箭头和标注表示要在恢复步骤中执行的操作以及恢复之后各块返回的状态。
相应地,在删除数据块X_old的数据期间,a)如果在没有分配备用块X_new的状态下发生差错,则在相同单元中分配备用块Y_new,并将删除数据从数据块X_old写入分配的备用块Y_new中;b)如果在分配了备用块X_new的状态下发生差错,则将删除数据从数据块X_old写入分配的备用块X_new中;以及,c)如果在更新数据正写入备用块X_new的状态下发生差错,则删除写入备用块X_new的更新数据,在相同单元中重新分配备用块Z_new,并将删除数据从数据块X_old写入重新分配的备用块Z_new中,由此来控制差错发生时的恢复操作。
例如,如果在数据块X_old的状态为“删除”并且备用块X_new的状态为“已分配”时发生故障,则当重新起动时将正从数据块X_old删除的数据写入分配的备用块X_new中,然后保持处理过程继续。
块状态可能具有的值全部表达在图10的状态图中,并且,即使在实施恢复过程的途中再次发生故障,也可以按照该状态图的顺序进行恢复。
图13是说明在检索一单元时的检索单元(EU)和空单元(TU)的状态变化的图。
相应地,在传送检索单元(EU)的数据期间,a)如果在数据正复制到一移动单元(TU)的状态下发生差错,则重新执行检索单元(EU)的检索操作,b)如果在数据不是正复制到移动单元(TU)的状态下发生差错,则删除复制到移动单元(TU)的数据,并重新执行检索单元(EU)的检索操作,由此来控制差错发生时的恢复操作。
例如,如果当检索单元(EU)的状态为“正在传送(transferring)”并且移动单元(TU)的状态为“复制”时发生故障,则在重新起动时删除复制到移动单元的数据,然后再次相对于所述检索单元(EU)执行检索操作。
因此,仅存在这样的状态,即,恢复操作完全执行或者根本不执行。
如上所述,本发明在更新数据块数据的情况下,首先将更新数据写入相同单元中的一腾空的备用块中,更新映射块的映射信息,并更新先前块的状态信息,以使用户能够使用相同的地址访问数据,并且不需要在每次更新块时删除单元。因此,本发明通过削减删除次数而提高了写入和更新数据的效率。此外,即使在使用快闪存储器的过程中发生差错,也容易进行恢复,并且减小了映射的随意性,因而解决了可能发生的密集删除操作问题。
尽管上面已参照本发明的优选实施例描述了本发明,但本领域技术人员应当理解,本发明应当不限于所描述的优选实施例,而是可以有多种变化,并且,本发明的范围由所附的权利要求书来限定。

Claims (12)

1.一种快闪存储器,包括多个单元,每个单元包括:
多个数据块,用于写入数据;
多个备用块,这些备用块被腾空以写入所述数据块的更新数据;
一映射块,用于指定数据写入的实际位置,其中记录在所述映射块中的是逻辑块号码、块状态信息和更新的块位置信息;和
一首部块,用于记录快闪存储器信息和单元信息。
2.如权利要求1所述的快闪存储器,其中所述单元用作删除操作的基本单元。
3.如权利要求1所述的快闪存储器,其中记录在所述首部块中的是逻辑单元号码、磨损程度和块尺寸信息。
4.一种控制快闪存储器的方法,该快闪存储器具有多个单元,每个单元包括:多个数据块,用于写入数据;多个备用块,这些备用块被腾空以写入所述数据块的更新数据;一映射块,用于指定数据写入的实际位置;和一首部块,用于记录快闪存储器信息和单元信息,所述方法包括下列步骤:
控制一映射操作;
控制一分配操作;
控制一读取操作;
控制一删除操作;
控制一更新操作;
控制一检索操作;和
控制一恢复操作。
5.如权利要求4所述的方法,其中所述映射操作控制包括步骤:
搜索一逻辑块所属的逻辑单元;
搜索相对于所述逻辑单元的物理单元;和
在所述物理单元的映射块中搜索相应于所述逻辑块的物理块位置。
6.如权利要求4所述的方法,其中所述分配操作控制包括步骤:
检验所述单元的映射块,以判断在所述单元中是否有备用块(S21);
如果作为在步骤S21中的判断结果得知在所述单元中没有备用块,则相对于所述单元执行一检索操作(S22);
检验所检索单元的映射块,以判断在所检索单元中是否有备用块(S23);
如果作为在步骤S21中的判断结果得知在所述单元中有备用块,或者作为在步骤S23中的判断结果得知在所检索单元中有备用块,则将一逻辑块号码和数据块状态写入所述映射块(S24);和
如果作为在步骤S23中的判断结果得知在所检索单元中没有备用块,则执行一差错处理。
7.如权利要求4所述的方法,其中所述读取操作控制包括步骤:
搜索一相应数据块所属的单元(S31);
判断所述相应数据块是否存在于所述单元中(S32);
如果作为在步骤S32中的判断结果得知所述相应数据块存在,则读取所述相应数据块中的数据(S33);和
如果作为在步骤S32中的判断结果得知所述相应数据块不存在,则执行一差错处理(S34)。
8.如权利要求4所述的方法,其中所述删除操作控制包括步骤:
搜索一相应数据块所属的单元(S41);和
更新写入所述单元的一映射块中的相应数据块的状态(S42)。
9.如权利要求4所述的方法,其中所述更新操作控制包括步骤:
确定一相应数据块所属的单元(S51);
判断所述相应数据块是否存在于所述单元中(S52);
如果作为在步骤S52中的判断结果得知所述相应数据块存在,则搜索一映射块并判断所述相应数据块的状态是否是“已分配”(S53);
如果作为在步骤S53中的判断结果得知所述相应数据块是“已分配”,则将所述相应数据块的状态更新为“写入”(S54);
将数据存储在所述相应数据块中(S55);
将所述相应数据块的状态更新为“已写入”(S56);
如果作为在步骤S53中的判断结果得知所述相应数据块为“已分配”,则将所述相应数据块更新为“删除”(S57);
搜索待分配的单元中的备用块(S58);
将新分配块的状态更新为“写入”(S59);
将新分配块的位置信息存储在映射块中(S60);
将数据存储在新分配的块中(S61);
将新分配块的状态更新为“已写入”(S62);
将所述相应数据块的状态更新为“已删除”(S63);和
如果作为在步骤S52中的判断结果得知所述相应数据块不存在,则执行一差错处理(S64)。
10.如权利要求4所述的方法,其中所述检索操作控制包括步骤:
确定一检索单元和一移动单元(S71);
判断所述移动单元的删除次数是否超过一临界值(S72);
如果作为在步骤S72中的判断结果得知所述移动单元的删除次数超过临界值,则选择最小删除次数的一移动单元(S73);
如果选择了由步骤S72中的判断结果得知的具有不超过临界值的删除次数的移动单元,或者选择了步骤S73中的具有最小删除次数的移动单元,则将检索单元的状态更新为“移动”(S74);
将步骤S74中的所述具有不超过临界值的删除次数或者具有最小删除次数的移动单元的状态更新为“复制”(S75);
将“写入”和“已写入”状态下的块和映射块项目以及删除次数从检索单元复制到所述移动单元中(S76);
将所述移动单元的状态更新为“有效”(S77);
删除所述检索单元(S78);
读取和增加复制到所述移动单元的所述检索单元的删除次数,然后将该删除次数写入当前删除的检索单元中(S79);和
更新快闪存储器中的诸如映射信息等的资料结构(S80)。
11.如权利要求4所述的方法,其中在删除数据块的数据期间的恢复操作控制包括步骤:
a)如果在没有分配第一备用块的状态下发生差错,则在相同单元中分配第二备用块,并将删除数据从数据块写入分配的第二备用块中;
b)如果在分配了第一备用块的状态下发生差错,则将删除数据从数据块写入分配的第一备用块中;和
c)如果在更新数据正写入第一备用块的状态下发生差错,则删除写入第一备用块的更新数据,在相同单元中重新分配第三备用块,并将删除数据从数据块写入重新分配的第三备用块中。
12.如权利要求4所述的方法,其中在传送检索单元的数据期间的恢复操作控制包括步骤:
a)如果在数据正复制到一移动单元的状态下发生差错,则重新执行检索单元的检索操作;和
b)如果在数据不是正复制到移动单元的状态下发生差错,则删除复制到移动单元的数据,并重新执行检索单元的检索操作。
CNB001263781A 1999-09-29 2000-09-12 快闪存储器及其控制方法 Expired - Fee Related CN1256732C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR41835/99 1999-09-29
KR41835/1999 1999-09-29
KR1019990041835A KR100577380B1 (ko) 1999-09-29 1999-09-29 플래시 메모리와 그 제어 방법

Publications (2)

Publication Number Publication Date
CN1290014A CN1290014A (zh) 2001-04-04
CN1256732C true CN1256732C (zh) 2006-05-17

Family

ID=36763095

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB001263781A Expired - Fee Related CN1256732C (zh) 1999-09-29 2000-09-12 快闪存储器及其控制方法

Country Status (3)

Country Link
US (1) US6587915B1 (zh)
KR (1) KR100577380B1 (zh)
CN (1) CN1256732C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102110056B (zh) * 2009-12-24 2013-07-17 群联电子股份有限公司 闪存管理方法、闪存控制器与闪存存储系统

Families Citing this family (170)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
US20020199130A1 (en) * 2001-06-20 2002-12-26 Yao-Jung Kuo Automatic address redirecting memory device and the method of the same
KR100449708B1 (ko) * 2001-11-16 2004-09-22 삼성전자주식회사 플래시 메모리 관리방법
US6700815B2 (en) * 2002-04-08 2004-03-02 Advanced Micro Devices, Inc. Refresh scheme for dynamic page programming
JP4238514B2 (ja) * 2002-04-15 2009-03-18 ソニー株式会社 データ記憶装置
KR100484147B1 (ko) * 2002-07-26 2005-04-18 삼성전자주식회사 플래시 메모리 관리 방법
US7039788B1 (en) * 2002-10-28 2006-05-02 Sandisk Corporation Method and apparatus for splitting a logical block
KR100457812B1 (ko) 2002-11-14 2004-11-18 삼성전자주식회사 플래시 메모리, 그에 따른 플래시 메모리 액세스 장치 및방법
JP3928724B2 (ja) * 2003-02-20 2007-06-13 ソニー株式会社 記録媒体の記録制御方法および記録媒体の記録制御装置
KR100526178B1 (ko) 2003-03-31 2005-11-03 삼성전자주식회사 플래시 메모리 액세스 장치 및 방법
CN100428358C (zh) * 2003-06-24 2008-10-22 群联电子股份有限公司 闪存高速大区块的数据写入方法
KR100608602B1 (ko) 2003-12-10 2006-08-03 삼성전자주식회사 플래시 메모리, 이를 위한 사상 제어 장치 및 방법
US7921262B1 (en) 2003-12-18 2011-04-05 Symantec Operating Corporation System and method for dynamic storage device expansion support in a storage virtualization environment
KR100538338B1 (ko) * 2003-12-24 2005-12-22 주식회사 포인칩스 플래시 메모리의 블록 균등 분산 기법 및 이를 이용한데이터 저장 장치
KR100526188B1 (ko) * 2003-12-30 2005-11-04 삼성전자주식회사 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리
JP4534498B2 (ja) * 2004-01-28 2010-09-01 ソニー株式会社 半導体装置およびその起動処理方法
JP4661086B2 (ja) * 2004-05-24 2011-03-30 パナソニック株式会社 不揮発性記憶装置および不揮発性メモリの消去方法と書込み方法
KR100568115B1 (ko) 2004-06-30 2006-04-05 삼성전자주식회사 점진적 머지 방법 및 그것을 이용한 메모리 시스템
KR100632947B1 (ko) * 2004-07-20 2006-10-12 삼성전자주식회사 불 휘발성 메모리 장치 및 그것의 프로그램 방법
US20060026377A1 (en) * 2004-07-27 2006-02-02 Somsubhra Sikdar Lookup interface for array machine context data memory
KR100597411B1 (ko) * 2004-08-04 2006-07-05 삼성전자주식회사 파일의 효율적인 데이터 관리를 위한 방법 및 장치
CN100442246C (zh) * 2004-08-26 2008-12-10 旺玖科技股份有限公司 非易失性存储器的数据更新方法
KR100725390B1 (ko) * 2005-01-06 2007-06-07 삼성전자주식회사 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법
KR100678656B1 (ko) * 2005-01-25 2007-02-05 에스케이 텔레콤주식회사 메모리의 임시 영역을 이용한 이동통신 단말기의데이터베이스 업데이트 방법 및 그를 위한 이동통신 단말기
US8306952B2 (en) * 2005-03-29 2012-11-06 Sap Ag Technique for managing messages
US7617358B1 (en) 2005-05-05 2009-11-10 Seagate Technology, Llc Methods and structure for writing lead-in sequences for head stability in a dynamically mapped mass storage device
US7685360B1 (en) 2005-05-05 2010-03-23 Seagate Technology Llc Methods and structure for dynamic appended metadata in a dynamically mapped mass storage device
US7603530B1 (en) 2005-05-05 2009-10-13 Seagate Technology Llc Methods and structure for dynamic multiple indirections in a dynamically mapped mass storage device
US7620772B1 (en) 2005-05-05 2009-11-17 Seagate Technology, Llc Methods and structure for dynamic data density in a dynamically mapped mass storage device
US7752491B1 (en) 2005-05-05 2010-07-06 Seagate Technology Llc Methods and structure for on-the-fly head depopulation in a dynamically mapped mass storage device
US7916421B1 (en) 2005-05-05 2011-03-29 Seagate Technology Llc Methods and structure for recovery of write fault errors in a dynamically mapped mass storage device
US7653847B1 (en) 2005-05-05 2010-01-26 Seagate Technology Llc Methods and structure for field flawscan in a dynamically mapped mass storage device
US20060294292A1 (en) * 2005-06-27 2006-12-28 Illendula Ajith K Shared spare block for multiple memory file volumes
KR101274181B1 (ko) 2006-02-13 2013-06-14 삼성전자주식회사 플래시 메모리를 관리하는 장치 및 방법
KR100703807B1 (ko) 2006-02-17 2007-04-09 삼성전자주식회사 블록 방식의 메모리에서 데이터의 변경 유형에 따라 블록을관리하는 방법 및 장치
CN100452907C (zh) * 2006-08-22 2009-01-14 凤凰微电子(中国)有限公司 在用户识别模块和移动终端之间传输数据的方法及其装置
US7694091B2 (en) * 2006-10-23 2010-04-06 Hewlett-Packard Development Company, L.P. Non-volatile storage for backing up volatile storage
KR100791325B1 (ko) 2006-10-27 2008-01-03 삼성전자주식회사 비휘발성 메모리를 관리하는 장치 및 방법
US8074011B2 (en) * 2006-12-06 2011-12-06 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery after reaching a read count limit
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
US8935302B2 (en) * 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US8443134B2 (en) * 2006-12-06 2013-05-14 Fusion-Io, Inc. Apparatus, system, and method for graceful cache device degradation
US8706968B2 (en) * 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
WO2008070191A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a reconfigurable baseboard management controller
US7778020B2 (en) 2006-12-06 2010-08-17 Fusion Multisystems, Inc. Apparatus, system, and method for a modular blade
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
TW200828014A (en) * 2006-12-28 2008-07-01 Genesys Logic Inc Flash memory management method with low RAM utilization
CN100458736C (zh) * 2006-12-30 2009-02-04 北京中星微电子有限公司 Nand闪存信息提取方法和nand闪存自动识别方法
TWI322957B (en) * 2007-01-23 2010-04-01 Silicon Motion Inc Storage apparatus and method for accessing storage apparatus
CN101251826B (zh) * 2007-02-27 2010-09-01 深圳市同洲电子股份有限公司 闪速存储器、用于闪速存储器的数据管理方法及设备
KR100857761B1 (ko) * 2007-06-14 2008-09-10 삼성전자주식회사 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법
US7908423B2 (en) * 2007-07-25 2011-03-15 Silicon Motion, Inc. Memory apparatus, and method of averagely using blocks of a flash memory
KR101473344B1 (ko) * 2007-08-24 2014-12-17 삼성전자 주식회사 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작방법
TWI372396B (en) 2007-09-28 2012-09-11 Phison Electronics Corp Method of protecting data for power failure and controller using the same
JP4746598B2 (ja) * 2007-09-28 2011-08-10 株式会社東芝 半導体記憶装置
CN101408864B (zh) * 2007-10-09 2011-08-24 群联电子股份有限公司 用于断电时的数据保护方法及使用此方法的控制器
US7945587B2 (en) * 2007-10-10 2011-05-17 Microsoft Corporation Random allocation of media storage units
CN101425338B (zh) * 2007-10-29 2011-05-18 群联电子股份有限公司 非易失性存储器的写入方法及使用此方法的控制器
US8316277B2 (en) * 2007-12-06 2012-11-20 Fusion-Io, Inc. Apparatus, system, and method for ensuring data validity in a data storage process
US8195912B2 (en) * 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
KR101401560B1 (ko) * 2007-12-13 2014-06-03 삼성전자주식회사 반도체 메모리 시스템 및 그것의 마모도 관리 방법
KR20110050404A (ko) 2008-05-16 2011-05-13 퓨전-아이오, 인크. 결함 있는 데이터 저장소를 검출하고 교체하는 장치, 시스템 및 프로그램 제품
CN101739350B (zh) * 2008-11-26 2013-02-13 威刚科技股份有限公司 存储器储存装置及其控制方法
US9542409B2 (en) 2008-11-26 2017-01-10 Red Hat, Inc. Deduplicated file system
US8266503B2 (en) 2009-03-13 2012-09-11 Fusion-Io Apparatus, system, and method for using multi-level cell storage in a single-level cell mode
CN101539887B (zh) * 2009-05-06 2011-08-17 美商威睿电通公司 快闪存储器管理方法与计算机系统
TWI457940B (zh) * 2009-05-15 2014-10-21 Macronix Int Co Ltd 區塊為基礎快閃記憶體之位元組存取
US8281227B2 (en) * 2009-05-18 2012-10-02 Fusion-10, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
US8307258B2 (en) 2009-05-18 2012-11-06 Fusion-10, Inc Apparatus, system, and method for reconfiguring an array to operate with less storage elements
US8453021B2 (en) 2009-07-29 2013-05-28 Stec, Inc. Wear leveling in solid-state device
US20110035540A1 (en) * 2009-08-10 2011-02-10 Adtron, Inc. Flash blade system architecture and method
WO2011031796A2 (en) 2009-09-08 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for caching data on a solid-state storage device
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
EP2476039B1 (en) 2009-09-09 2016-10-26 SanDisk Technologies LLC Apparatus, system, and method for power reduction management in a storage device
WO2011031903A2 (en) 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for allocating storage
TWI437569B (zh) * 2009-10-16 2014-05-11 Silicon Motion Inc 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
JP2011090496A (ja) * 2009-10-22 2011-05-06 Hitachi Ltd 半導体記憶装置および制御方法
US8854882B2 (en) 2010-01-27 2014-10-07 Intelligent Intellectual Property Holdings 2 Llc Configuring storage cells
US8661184B2 (en) 2010-01-27 2014-02-25 Fusion-Io, Inc. Managing non-volatile media
US8380915B2 (en) 2010-01-27 2013-02-19 Fusion-Io, Inc. Apparatus, system, and method for managing solid-state storage media
US8315092B2 (en) * 2010-01-27 2012-11-20 Fusion-Io, Inc. Apparatus, system, and method for determining a read voltage threshold for solid-state storage media
US9245653B2 (en) 2010-03-15 2016-01-26 Intelligent Intellectual Property Holdings 2 Llc Reduced level cell mode for non-volatile memory
WO2011143628A2 (en) 2010-05-13 2011-11-17 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
WO2012016089A2 (en) 2010-07-28 2012-02-02 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US20120089646A1 (en) * 2010-10-08 2012-04-12 Jain Rohit N Processing change data
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
WO2012082792A2 (en) 2010-12-13 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for auto-commit memory
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
CN102541777B (zh) * 2010-12-13 2015-08-19 深圳市硅格半导体有限公司 基于DMA映射的Flash数据传输控制方法及装置
WO2012083308A2 (en) 2010-12-17 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
WO2012100087A2 (en) 2011-01-19 2012-07-26 Fusion-Io, Inc. Apparatus, system, and method for managing out-of-service conditions
WO2012106362A2 (en) 2011-01-31 2012-08-09 Fusion-Io, Inc. Apparatus, system, and method for managing eviction of data
US8909851B2 (en) 2011-02-08 2014-12-09 SMART Storage Systems, Inc. Storage control system with change logging mechanism and method of operation thereof
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
FR2965079A1 (fr) * 2011-03-15 2012-03-23 Continental Automotive France Procede de gestion d'une memoire non volatile
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
JP2012203443A (ja) * 2011-03-23 2012-10-22 Toshiba Corp メモリシステムおよびメモリシステムの制御方法
US8935466B2 (en) 2011-03-28 2015-01-13 SMART Storage Systems, Inc. Data storage system with non-volatile memory and method of operation thereof
CN102214145B (zh) * 2011-07-14 2013-07-17 李佰战 一种闪存数据更新方法及系统
US9098399B2 (en) 2011-08-31 2015-08-04 SMART Storage Systems, Inc. Electronic system with storage management mechanism and method of operation thereof
US9021231B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Storage control system with write amplification control mechanism and method of operation thereof
US9021319B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Non-volatile memory management system with load leveling and method of operation thereof
US9063844B2 (en) 2011-09-02 2015-06-23 SMART Storage Systems, Inc. Non-volatile memory management system with time measure mechanism and method of operation thereof
US8972967B2 (en) * 2011-09-12 2015-03-03 Microsoft Corporation Application packages using block maps
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
US8843711B1 (en) * 2011-12-28 2014-09-23 Netapp, Inc. Partial write without read-modify
US10102117B2 (en) 2012-01-12 2018-10-16 Sandisk Technologies Llc Systems and methods for cache and storage device coordination
US9251052B2 (en) 2012-01-12 2016-02-02 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
US10019353B2 (en) 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
US9298252B2 (en) 2012-04-17 2016-03-29 SMART Storage Systems, Inc. Storage control system with power down mechanism and method of operation thereof
US8949689B2 (en) 2012-06-11 2015-02-03 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US8804415B2 (en) 2012-06-19 2014-08-12 Fusion-Io, Inc. Adaptive voltage range management in non-volatile memory
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
KR101993704B1 (ko) 2012-08-24 2019-06-27 삼성전자주식회사 플래시 메모리를 기반으로 하는 저장 장치 및 플래시 메모리를 제어하는 메모리 컨트롤러의 쓰기 메모리 블록 할당 방법
US10346095B2 (en) 2012-08-31 2019-07-09 Sandisk Technologies, Llc Systems, methods, and interfaces for adaptive cache persistence
TWI514389B (zh) * 2012-09-03 2015-12-21 Silicon Motion Inc 快閃記憶體控制器和快閃記憶體控制方法
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
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
US9123445B2 (en) 2013-01-22 2015-09-01 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9183137B2 (en) 2013-02-27 2015-11-10 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9470720B2 (en) 2013-03-08 2016-10-18 Sandisk Technologies Llc Test system with localized heating and method of manufacture thereof
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US9043780B2 (en) 2013-03-27 2015-05-26 SMART Storage Systems, Inc. Electronic system with system modification control mechanism and method of operation thereof
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
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
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US9313874B2 (en) 2013-06-19 2016-04-12 SMART Storage Systems, Inc. Electronic system with heat extraction and method of manufacture thereof
US9898056B2 (en) 2013-06-19 2018-02-20 Sandisk Technologies Llc Electronic assembly with thermal channel and method of manufacture thereof
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling 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
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US9146850B2 (en) 2013-08-01 2015-09-29 SMART Storage Systems, Inc. Data storage system with dynamic read threshold 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
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
CN103885889A (zh) * 2014-03-19 2014-06-25 广州市泰斗软核信息科技有限公司 一种基于nor flash的数据存储方法及系统
KR101700315B1 (ko) * 2014-12-12 2017-01-26 국민대학교산학협력단 스크래치패드 메모리 관리 방법, 이를 수행하는 스크래치패드 메모리 관리 장치 및 이를 저장하는 기록매체
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US10009438B2 (en) 2015-05-20 2018-06-26 Sandisk Technologies Llc Transaction log acceleration
KR20200069889A (ko) * 2018-12-07 2020-06-17 에스케이하이닉스 주식회사 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법
CN110471626B (zh) * 2019-08-15 2023-04-25 无锡融卡科技有限公司 应用于Java Card的Nor Flash管理层及方法
CN114371814A (zh) * 2021-12-08 2022-04-19 浙江大华存储科技有限公司 数据处理的方法、装置及固态硬盘

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2251323B (en) * 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
US6230233B1 (en) * 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
KR0121800B1 (ko) * 1992-05-08 1997-11-22 사또오 후미오 메모리 카드장치
JPH0750558B2 (ja) * 1992-09-22 1995-05-31 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリ
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
US5765175A (en) * 1994-08-26 1998-06-09 Intel Corporation System and method for removing deleted entries in file systems based on write-once or erase-slowly media
JPH08328762A (ja) * 1995-06-06 1996-12-13 Mitsubishi Electric Corp 半導体ディスク装置及びそのメモリ管理方法
US5835935A (en) * 1995-09-13 1998-11-10 Lexar Media, Inc. Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory
GB2291991A (en) * 1995-09-27 1996-02-07 Memory Corp Plc Disk drive emulation with a block-erasable memory
US5867641A (en) * 1995-10-27 1999-02-02 Scm Microsystems (U.S.) Inc. Flash translation layer cleanup system and method
US5978808A (en) * 1995-12-27 1999-11-02 Intel Corporation Virtual small block file manager for flash memory array
JPH09212411A (ja) * 1996-02-06 1997-08-15 Tokyo Electron Ltd メモリシステム
US5787445A (en) * 1996-03-07 1998-07-28 Norris Communications Corporation Operating system including improved file management for use in devices utilizing flash memory as main memory
US5860082A (en) * 1996-03-28 1999-01-12 Datalight, Inc. Method and apparatus for allocating storage in a flash memory
US5896393A (en) * 1996-05-23 1999-04-20 Advanced Micro Devices, Inc. Simplified file management scheme for flash memory
KR100206186B1 (ko) * 1996-10-09 1999-07-01 윤종용 재기록 가능한 불휘발성 메모리의 기록정보 복구장치 및 방법
JPH10124381A (ja) * 1996-10-21 1998-05-15 Mitsubishi Electric Corp 半導体記憶装置
US5937434A (en) * 1997-02-14 1999-08-10 Intel Corporation Method of managing a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
JPH1139221A (ja) * 1997-07-17 1999-02-12 Hitachi Ltd 不揮発性半導体メモリに対する書き込みアクセス・リフレッシュ制御方法、並びに半導体ファイル記憶装置
US6260156B1 (en) * 1998-12-04 2001-07-10 Datalight, Inc. Method and system for managing bad areas in flash memory
KR100330164B1 (ko) * 1999-04-27 2002-03-28 윤종용 무효 블록들을 가지는 복수의 플래시 메모리들을 동시에 프로그램하는 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102110056B (zh) * 2009-12-24 2013-07-17 群联电子股份有限公司 闪存管理方法、闪存控制器与闪存存储系统

Also Published As

Publication number Publication date
KR20010029171A (ko) 2001-04-06
KR100577380B1 (ko) 2006-05-09
US6587915B1 (en) 2003-07-01
CN1290014A (zh) 2001-04-04

Similar Documents

Publication Publication Date Title
CN1256732C (zh) 快闪存储器及其控制方法
CN1306414C (zh) 闪速存储器和闪速存储器的映射控制设备和方法
CN1315057C (zh) 重映射闪速存储器的方法
CN1278243C (zh) 用于合并存贮的数据项的按块擦除存储系统和方法
CN1295622C (zh) 地址映射方法和映射信息管理方法及其闪速存储器
CN1197021C (zh) 便携式信息处理终端设备及其文件管理方法
CN1516835A (zh) 数据存储装置
CN1129848C (zh) 对非易失性存储器中的文件进行连续重写的方法
CN1249586C (zh) 闪速存储器系统
CN1282089C (zh) 控制串行快闪存储器中适当执行的装置和方法及相应芯片
CN1922571A (zh) 数据运行编程
CN1781075A (zh) 电子文件更新期间的设备存储器管理
CN1761935A (zh) 半导体存储卡、半导体存储器控制装置以及半导体存储器控制方法
CN101055589A (zh) 嵌入式数据库的存储管理方法
CN1701307A (zh) 管理擦除计数区块的方法和设备
CN1243317A (zh) 非易失存储器、记录装置和记录方法
CN1701308A (zh) 维护非易失性存储系统中的擦除计数
CN1606097A (zh) 闪速存储器控制装置、存储器管理方法、及存储器芯片
CN1879092A (zh) 高速缓冲存储器及其控制方法
CN1698036A (zh) 跟踪非易失性存储器系统中最不频繁擦除区块
CN1701390A (zh) 跟踪非易失性存储器系统中最频繁擦除区块
CN1376980A (zh) 存储器
CN1516834A (zh) 数据存储设备
CN1701309A (zh) 非易失性存储系统中的损耗平衡
CN1717661A (zh) 数据记录装置

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20060517