CN1504896A - 在非易失性存储器系统中执行块高速缓冲存储的方法和装置 - Google Patents

在非易失性存储器系统中执行块高速缓冲存储的方法和装置 Download PDF

Info

Publication number
CN1504896A
CN1504896A CNA200310115674A CN200310115674A CN1504896A CN 1504896 A CN1504896 A CN 1504896A CN A200310115674 A CNA200310115674 A CN A200310115674A CN 200310115674 A CN200310115674 A CN 200310115674A CN 1504896 A CN1504896 A CN 1504896A
Authority
CN
China
Prior art keywords
content
block
physical block
logical
physical
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
CNA200310115674A
Other languages
English (en)
Other versions
CN1329842C (zh
Inventor
张钦泽
B·卡瓦米
忍-沙希
F·萨比特-沙希
李屏
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.)
Delphi International Operations Luxembourg SARL
Original Assignee
SanDisk Corp
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 SanDisk Corp filed Critical SanDisk Corp
Publication of CN1504896A publication Critical patent/CN1504896A/zh
Application granted granted Critical
Publication of CN1329842C publication Critical patent/CN1329842C/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
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

公开了用于高速缓冲存储一个逻辑块的更新内容或新的数据的方法和装置。根据本发明的一个方面,一种用于处理一个非易失性存储器的块的内容的方法,包括获得与第一物理块的第一组逻辑页相关联的内容,以及把该第一组内容写入一个存储区域中。然后把该第一组的内容从该存储器区域写入第二物理块的第一组逻辑页中,该第二物理块映射到该第一逻辑快。在一个实施例中,该存储器区域是RAM高速缓冲存储器和物理块高速缓冲存储器中的一种。

Description

在非易失性存储器系统中执行块高速 缓冲存储的方法和装置
本发明要求享有在2002年10月28日提出的、美国临时专利申请60/421910的优先权,该申请通过引用被全部包含在此。
相关申请的交叉引用
本发明涉及共同待决的美国专利申请:10/281739、10/281823、10/281823、10/281670、10/281824、10/281631、10/281855、10/281762、10/281696,10/281626和10/281804,以及共同待决的美国临时专利申请:60/421725、60/421965、60/422166,60/421746和60/421911,所述申请都是在2002年10月28日提出的,并且都通过引用被全部包含在此。
发明背景:
1、发明领域
本发明一般涉及大容量数字数据存储器系统。本发明尤其涉及这样的系统和方法,其允许逻辑块的逻辑页面的更新内容能够在被写入相应于逻辑块的物理块之前,被高速缓冲存储。
2、相关技术描述
由于非易失性存储器系统的紧凑的物理尺寸以及能够被反复改写的性能,使得诸如闪速存储器系统(flash memory storage system)这样的非易失性存储器系统的使用日益普遍。闪速存储器系统的紧凑的物理尺寸促进了这种存储器系统在日益变得流行的设备中的使用。使用闪速存储器系统的设备包括(但不限制于)数码相机、数字可携式摄像机、数字音乐播放器、手持式个人电脑,以及全球定位装置。对包括在闪速存储器系统中的非易失性存储器的反复改写的性能,使得闪速存储器系统能够被重复使用。
通常,闪速存储器系统可包括闪速存储器卡和闪速存储器芯片组。闪速存储器芯片组一般包括闪速存储器部件和控制器部件。典型地,一个闪速存储器芯片组可被布置安装到一个内置系统中。这种部件或主系统的制造商典型地以部件形式获得闪速存储器和其他部件,然后将闪速存储器和其他部件装配到一个主系统中。
闪速存储器系统的逻辑块被典型地映射到物理块上。例如,一个包括32个逻辑页的逻辑块可被映射到一个包括32个物理页的物理块上。如果新的或更新的逻辑块的数据将被写入物理块,并且在此物理块中没有可用空间以容纳该数据,那么就典型地获得一个备用物理块。一旦得到备用物理块,就将该新的或更新的数据与来自原物理块的数据一起合并到该备用物理块中。
图1是一个具有更新内容的逻辑块和可被用来容纳该更新内容的物理块的图形表示。在时间t1时,更新一个逻辑块‘A’202,以便在逻辑块‘A’202的第三逻辑页204c中包括新的数据。如果物理块‘A’212已被充满到物理块‘A’212容量的限度,那么第三逻辑页204c的更新内容将不能被写入物理块‘A’212中,但是可以得到一个新的物理块‘B’222。除第三物理页214c的内容之外,物理块‘A’212的基本所有的物理页214的内容可连同第三逻辑页204c的更新内容一起被写入物理块‘B’222中。结果,物理块‘B’222含有了逻辑块‘A’202在时间t1时的最当前数据。一旦物理块‘B’222被写入,逻辑块202便被映射到物理块‘B’222上,并且物理块‘A’212被典型地擦除。下面将参照图2描述把更新内容写到物理块中的一个传统过程。
在时间t2,把映射到物理块‘B’222的逻辑块‘A’202’更新,以便第一逻辑页面204a’的内容是新的或是更新的。由于物理块‘B’222没有空间或由于其他原因而不能被更新以包括第一逻辑页204a’的内容,可以获得一个新的物理块‘C’232。除第一物理页224a的内容之外,物理块‘B’222的基本所有的物理页224的内容可连同第一逻辑页204a’的更新内容一起被写入物理块‘C’232中,以便物理块‘C’232就包含了逻辑块‘A’202’在时间t2时的最当前数据。在物理块‘C’232被写入以及被映射到逻辑块‘A’202’后,物理块‘B’222通常被擦除。
参阅图2,将描述把逻辑块的页面的更新内容写入一个物理块的一种方法的步骤。允许把逻辑块的一个更新页面写入到一个逻辑块的过程250开始于步骤254,其中一个逻辑块‘A’的页面,例如页面‘X’被更新。逻辑块‘A’的更新页面  ‘X’典型地包括替换页面‘X’的内容。在步骤258中,一旦逻辑块‘A’的页面‘X’被更新,则将得到被映射到逻辑块‘A’或其他与逻辑块‘A’相关的一个新的物理块‘B’。如果与逻辑块‘A’当前相关的物理块没有可用的空间将页面‘X’的更新内容写入,那么可得到新的逻辑块‘B’。如本领域技术人员将意识到的那样,新的逻辑块‘B’可从一个备用存储块公用池中获得。
在步骤262中,在获得新的物理块‘B’后,与逻辑块‘A’当前相关的逻辑块‘A’的旧内容连同逻辑块‘A’的页面‘X’更新内容一起被合并到物理块‘B’中。换一句话说,除逻辑块‘A’的页面‘X’的内容之外,物理块‘A’的基本所有的内容连同逻辑块‘A’的页面‘X’的更新内容一起被写入物理块‘B’中。象这样,物理块‘B’含有了逻辑块‘A’的最当前内容。
将内容写入物理块‘B’后,在步骤266中擦除物理块‘A’并且在步骤270中解除其与逻辑块‘A’的关联。一旦物理块‘A’被擦除并被解除了与逻辑块‘A’的关联,那么物理块‘A’典型地可用来作为一个备用块,从而完成了使逻辑块的一个更新页面写入物理块的过程。
典型地,向逻辑块写入内容以及擦除物理块的内容的过程是耗时的,并且可能消耗重要的计算资源。通常,每当将要更新逻辑块的逻辑页时,一个逻辑块被写入的同时另一个物理块被擦除。同样地,如果有许多页面要更新时,则可以有大量持续的块擦除、新块获得,以及新块的写入。经常地写入块和擦除块会导致存储器系统的性能相对显著的降低。
因此,需要一种能够减少为响应逻辑页面的更新而发生的写和擦除处理的次数的方法和装置。特别地,不需降低在物理块域中执行更新的性能,所期望的系统就允许显著地减少相应于逻辑块域的更新而在物理块域中执行更新的写和擦除操作的数量。
发明简述
本发明涉及一种用于高速缓冲存储与逻辑块相关的更新内容或新的数据的系统和方法。根据本发明的一个方面,一种用于处理非易失性存储器的块的内容的方法包括获得第一逻辑块的第一组逻辑页面的第一组内容,以及把该第一组内容写入一个存储器区域。然后将该第一组内容从存储器区域写入第二物理块的第一组物理页面中,第二物理块因此被映射到第一逻辑块。在一个实施例中,该存储器区域是RAM高速缓冲存储器和物理块高速缓冲存储器中的一个。
在另一个实施例中,第一物理模块包括第二组内容,因此该方法包括把至少一些第二组内容连同第一组内容一起写入第二物理块中。在这样的实施例中,该第二组内容可从第一物理块中擦除,因此第一物理模块可不被映射,或者说基本解除与第一逻辑块的关联。
高速缓冲存储逻辑块的新的内容使得该新的内容能够被临时存储,直到该逻辑块的所有新的内容已被基本处理,所述内容可以是更新的内容。当已经把将要处理的所有新的内容处理完时,可以将至少一些新的内容连同映射到该逻辑块的原物理块的所有适当的内容一起地复制,以便该逻辑块的最新内容被写入到一个新的物理块中。通过使用一个高速缓冲存储处理,通常会减少与逻辑模块相关的更新或者新的增加的处理而出现的写操作以及读操作的次数。因此,可以增强一个使用高速缓冲存储处理的整体存储器系统的性能。
根据本发明的另一个方面,一种用于在非易失性存储器系统中处理第一逻辑块的更新内容的方法,包括接收第一逻辑块的第一更新内容,把第一更新内容存储到一个高速缓冲存储器中,以及确定何时把该高速缓冲存储器中的内容存储到第二物理块。此方法也包括当确定了要将该高速缓冲存储器中的内容存储到第二物理块时,把包括第一更新内容的该高速缓冲存储器中的内容存储到第二物理块。然后将第二物理块映射到第一逻辑块,并且在把该高速缓冲存储器中的内容存储到了第二物理块以后,可解除第一物理块与第一逻辑块之间的映射。
在一个实施例中,确定何时把该高速缓冲存储器中的内容存储到第二物理块的步骤包括确定何时将处理一个第二逻辑块。当确定了处理第二逻辑块时,把该高速缓冲存储器中的内容存储到第二物理块。在另一个实施例中,该高速缓冲存储器中的内容包括至少一些第一物理块中的内容。
在阅读了随后的详细描述和研究了附图的各种图形之后,将会更加清楚本发明的这些以及其他的优点。
附图简述
本发明可通过参考随后的结合了附图的描述来得到更好的理解,其中:
图1是一个具有更新内容的逻辑块和可获得的以容纳该更新内容的物理块的示意图。
图2是一个说明了一种把逻辑块的页面中的更新内容写入物理块的方法的步骤的处理流程图。
图3a是一个包括非易失性存储器的通用主系统的示意图。
图3b是一个例如图3a中的120存储器装置的示意图。
图3c是一个包括一个内置非易失性存储器的主系统的示意图。
图4a是依据本发明一个实施例的一个逻辑块、一个物理块,和一个RAM高速缓冲存储器的示意图,其中所述RAM高速缓冲存储器被用来高速缓冲存储逻辑块的更新内容。
图4b是依据本发明一个实施例的一个逻辑块、一个物理块,和一个RAM高速缓冲存储器,即,图4a中的逻辑块400、物理块410,和RAM高速缓冲存储器420的示意图,其中RAM高速缓冲存储器已经高速缓冲存储了若干逻辑块的更新内容。
图4c是依据本发明一个实施例的,具有将要写入一个新的物理块中的内容的物理块和RAM高速缓冲存储器,也就是图4b中的物理块410和RAM高速缓冲存储器420的示意图。
图5是一个说明了一种依据本发明一个实施例,通过使用一个RAM高速缓冲存储器来更新物理块域中的一个页面内容的方法的步骤处理流程图。
图6a是依据本发明一个实施例的一个逻辑块、一个物理块,和一个用来高速缓冲存储逻辑块的更新内容的物理块高速缓冲存储器的示意图。
图6b是依据本发明一个实施例的,具有将要合并到一个新的物理块中的内容的物理块和物理块高速缓冲存储器,也就是图6a中的物理块610和物理块高速缓冲存储器612的示意图。
图7是一个说明了一种依据本发明一个实施例的,通过使用一个物理块高速缓冲存储器来更新物理块域中的一个页面内容的方法的处理流程图。
图8是一个依据本发明一个实施例的系统结构的示意框图。
图9a是一个依据本发明一个实施例的被分成组的一个逻辑块、一个物理块,和一个新的物理块的示意图。
图9b是一个依据本发明一个实施例的一个逻辑块、一个物理块,和一个新的物理块,也就是图9a中逻辑块900、物理块912,和新的物理块928的示意图,其中该新的物理块928包括逻辑块的最当前的内容。
图9c是一个依据本发明一个实施例的一个逻辑块和物理块,也就是图9b中的逻辑块900和物理块928,以及一个包括该逻辑块的最当前内容的新的物理块的示意图。
图9d是一个依据本发明一个实施例的一个被分成组的逻辑块、一个包括该逻辑块的更新内容的物理块,以及一个含有该逻辑块的最当前内容的新的物理块的示意图。
图10是一个依据本发明一个实施例的一个分组的原始数据、这个分组的新的或更新数据,以及该原始数据和该新的或更新数据的合并的示意图。
图11a和11b是依据本发明一个实施例的处理流程图,说明了一个更新一个逻辑块的内容的方法的步骤,该逻辑块是被分成组的。
图12a是一个依据本发明一个实施例的一个RAM高速缓冲存储器的示意图,该RAM高速缓冲存储器被有效地分成组以用于存储一个被分成组的逻辑块的更新内容。
图12b是一个依据本发明一个实施例的一个RAM高速缓冲存储器,例如图12a中RAM高速缓冲存储器1228的示意图,其中把相同逻辑组的重复的更新内容存储到相同的RAM组中。
图12c是一个依据本发明一个实施例的一个逻辑块,也就是图12b中逻辑块‘A’1200,以及一个新的物理块的示意图,该新的物理块是一个已经把RAM高速缓冲器和与逻辑块相关的原物理块的内容,也就是图12b中的RAM高速缓冲存储器1228和物理块‘B’1212的内容合并到该物理块后的物理块。
图12d是一个依据本发明一个实施例的一个逻辑块、一个物理块,和一个RAM高速缓冲器的示意图,由于在该物理块中没有足够的空间容纳新的数据,所以该RAM高速缓冲器中存有内容。
图13是一个说明了依据本发明一个实施例的一种使用RAM高速缓冲存储器存储一个逻辑块的逻辑组的更新内容的方法的示意图。
图14a是一个依据本发明一个实施例的一个块高速缓冲存储器的示意图,该块高速缓冲存储器被有效地分成多个组并且适合用于存储被分成多个组的一个逻辑块的更新内容。
图14b是一个依据本发明一个实施例的一个块高速缓冲存储器,诸如图14a中块高速缓冲存储器1428的示意图,其中存储了相同逻辑组的更新内容。
图14c是一个依据本发明一个实施例的一个逻辑块,也就是图14b中的逻辑块‘A’1400,以及一个新的物理块的示意图,该新的物理块是一个已经把该块高速缓冲器和与逻辑块相关的原物理块的内容,也就是图14b中的块高速缓冲存储器1428和物理块‘B’1412的内容合并到该物理块后的物理块。
图14d是一个依据本发明一个实施例的一个块高速缓冲存储器,诸如图14c中的块高速缓冲存储器1428的示意图,该高速缓冲存储器包括可以存储一个逻辑块,也就是图14c中的逻辑块‘A’的更新内容的无效组。
图14e是一个依据本发明一个实施例的可以用来存储一个逻辑块,诸如图14d中的逻辑块‘A’1400的更新内容的两个块高速缓冲存储器的示意图。
图14f是一个依据本发明一个实施例的一个当前块高速缓冲存储器,诸如图14e中的当前块高速缓冲存储器1464的示意图,该当前块高速缓冲存储器是在一个块高速缓冲存储器和一个物理块的内容,诸如图14e中的块高速缓冲存储器1428和物理块‘B’1412的内容被合并到该当前块高速缓冲存储器之后的高速缓冲存储器。
图15a和15b是一个说明了依据本发明一个实施例的一种把更新内容存储到一个使用分组的块高速缓冲存储器中的方法的步骤的处理流程图。
实施例的详细描述
写入物理块和擦除物理块的过程是相对耗时的,并且会耗费重要的计算开销。同样,当相对地频繁进行写和擦除时,将对包括该物理块的一个系统的总性能产生不利影响。每当更新一个逻辑块的一个逻辑页面时,如果该逻辑页面所映射的第一物理块基本上满了,则把该更新内容以及该第一物理块的一些内容写入一个新的物理块,同时擦除所述第一物理块。当该逻辑块有多个页面被更新时,就会有基本上持续的对物理块的擦除,新的物理块的获得,以及把数据写入该新的物理块。当显著地经常写或擦除物理块时,就会降低包括所述块的一个存储器系统的性能。
在经常更新单个逻辑块中的逻辑页面的情况下,会花费大量的时间和开销进行对与该逻辑块相关的物理块的写和擦除操作。特别地,如果重复地更新一个逻辑块中的单个逻辑页面,由于会重复地改写物理块域中的更新内容,因此当“逻辑块域”经常改变时,因该逻辑页面的每次更新而在物理块域中执行更新是极其浪费的。等到基本上暂时完成了一个逻辑块的所有更新后再更新一个物理块,这样能够减少进行写和擦除操作的数量。因此,会改善一个存储器系统的性能。
对高速缓冲存储一个逻辑块的更新内容或者一个逻辑块的新内容使用高速缓冲存储处理,使得这些更新内容能够被临时存储,直到基本上暂时完成了对该逻辑块的所有的更新或者对该逻辑块添加新的内容。一旦有效地知道没有再对该逻辑块做出更新或者添加新的数据,至少直到处理其他的逻辑块之后,或者当该高速缓冲存储器满了时,则会复制一个该逻辑块所映射的原物理块的任何适当的内容以及至少一些高速缓冲存储的更新内容以及新的数据,以便将该逻辑块的最当前内容写入了一个新的物理块。当该新的物理块已经被写入时,该原物理块会被擦除。结果,可以减少处理若干更新或者新的添加的写操作和读操作的次数。在这里以及以后,为了便于讨论,更新内容一般将包含新的内容。同样,更新块的内容一般包含向该块中添加新的内容。
当一个系统的软件需求可用诸如随机存取存储器(RAM)的存储器时,高速缓冲存储器可以是一个RA高速缓冲存储器。典型地,使用一个RAM高速缓冲存储器能够进行高效率地写处理。然而,在一个实施例中,如果没有足够数量的RAM可用,那么高速缓冲存储器可以是一个块高速缓冲存储器。更确切地说,高速缓冲存储器可以是一个物理块。
一般地说,闪速存储器系统或者非易失性存储装置可得益于一个RAM或者一个块高速缓冲存储器的使用,以便在把所更新的数据写入一个物理块之前,临时高速缓冲存储所更新的数据。典型地,闪速存储器系统和一个主系统一起使用,这样该主系统可以把数据写入该闪速存储器系统以及从该闪速存储器中读取数据。然而,如下面图3c将描述的那样,一些闪速存储器系统包括内置闪速存储器系统和在一个主机上运行的实质充当该内置闪速存储器系统的控制器的软件。请参阅图3a,将描述一个通用主系统,其包括一个非易失性存储器装置,例如一个压缩闪存卡(CompactFlash memory card)。一个主机或计算机系统100一般包括一个系统总线104,其允许在一个微处理器108、一个随机存取存储器(RAM)112,和输入/输出电路16之间进行通信。应该意识到的是,主系统100一般可以包括其他的部件,例如显示装置和连网装置,为了说明的目的没有示出。
通常,主系统100可以能够捕获信息,其包括但不限制于静态图像信息、音频信息,和视频图像信息。这样的信息可被实时的捕获,并且可以无线方式被传送到主系统100。虽然主系统100实质上可以是任何系统,但典型地,主系统100是一个诸如数码相机、摄像机、蜂窝通信装置、音频播放器,或视频播放器。然而,应意识到的是主系统100一般可以是存储数据或信息,并且再现数据和信息的任何系统。
主系统100也可以是一个只捕获数据,或者只再现数据的系统。更确却地说,在一个实施例中,主系统100可以是一个存储数据的专用系统,或者是一个读出数据的专用系统。例如,主系统100可以是一个存储器写入器,用来只写或存储数据。可选地,主系统100可以是一个诸如MP3播放器的装置,其中所述MP3播放器典型地用来读取或再现数据,但并不捕获数据。
在一个实施例中,布置一个非易失性存储器装置120与总线104连接以存储信息,该非易失性存储器装置120是一个可移动的非易失性存储器装置。一个可选的接口块130可使非易失性存储器装置120与总线104直接相连。到目前如本领域技术人员所理解的,输入/输出电路块116用于减少总线104上的负载。非易失性存储器装置120包括一个非易失性存储器124和一个可选的存储器控制系统128。在一个实施例中,可在一个单芯片或一个电路小片(die)上实现非易失性存储器装置。可选的,可在一个多芯片模块上实现非易失性存储器装置,或在多个分离的元件上实现非易失性存储器装置,该多个分离的元件可构成一个芯片组,并且可以一起用作非易失性存储器装置120。非易失性存储器装置120的一个实施例将在下面通过图3b来详细的描述。
布置非易失性存储器124,诸如象NAND闪速存储器这样的闪速存储器来存储数据,这样可以按需要来访问和读取数据。虽然应明白非易失性存储器124中的一些数据是不可擦除的,但是存储在非易失性存储器中的适当的数据也可以被擦除。存储数据、读取数据和擦除数据的处理一般由存储器控制系统128控制,或者当不存在存储器控制系统128时,由微处理器108所执行的软件来控制。可对非易失性存储器124的操作进行管理,通过使非易失性存储器124的各部分基本均匀地磨损,如此可充分地延长非易失性存储器的使用期限。
非易失性存储器装置120一般被描述为包括一个可选存储器控制系统128,也就是控制器。通常,非易失性存储器装置120可以包括单独的非易失性存储器124的芯片功能,和存储器控制系统128,也就是控制器的功能。例如,虽然包括但不限制于PC卡、压缩闪存卡、多媒体卡和保密数字卡(Secure Digital card)的非易失性存储器装置包括在一个独立芯片上实现的控制器,但是其他的非易失性存储器装置可不包括在一个独立芯片上实现的控制器。在一个实施例中,非易失性存储器装置120不包括独立的存储器和控制器芯片,如本领域技术人员所意识到的,该存储器和控制器的功能被合并到一个芯片中。可选的,如上所述,在非易失性存储器装置120没有包括存储器控制128的实施例中,可由微处理器108提供存储器控制系统128的功能。
请参阅图3b,将更加详细地描述依据本发明一个实施例的非易失性存储器装置120。如上所述,非易失性存储器装置120包括非易失性存储器124,并且或许包括存储器控制系统128。在一个实施例中,即使在存储器124是一个内置NAND装置时,存储器124和控制系统128(或者控制器)可以是非易失性存储器装置120的基本部件,例如非易失性存储器装置120可不包括控制系统128。存储器124可以是构成在一个半导体衬底上的存储器单元的一个阵列,其中通过存储在该存储器单元的单独的存储元件上的电荷的两个或更多个中的一个电平,把存储数据的一个或更多位存储在单独的存储器单元中。一种非易失性的快速的电可擦除可编程只读存储器(EEPROM)是这种系统的存储器的一种普通类型的例子。
在当前非易失性存储器装置120,控制系统128之中经由一个总线15与一个主计算机或者使用该存储器系统存储数据的其他系统通信。总线15一般是图3a中总线104的一部分。控制系统128也控制可以包括一个存储器单元阵列11的存储器124的操作,以便写入由该主计算机提供的数据、读取该主计算机系统所需要的数据,以及执行各种在工作存储器124中的内务处理功能。控制系统128一般包括一个通用微处理器,其已经结合了非易失性软件存储器,各种逻辑电路等等。可包括一个或多个状态机用于控制具体程序的执行。
在一个实施例中,存储器单元阵列11可由控制系统128或者微处理器108通过地址解码器17来寻址。在这样的实施例中,解码器17将正确的电压加到阵列11的逻辑门和位线,以便在由控制系统128寻址的存储器单元的一组中编写数据、读取数据,或者擦除。附加电路19可包括控制加到该阵列的元件上的电压的编写驱动器,该阵列依赖于被编写入单元的一个已寻址组中的数据。电路19也可以包括读出放大器和其他的从存储器单元的一个已寻址组中读取数据所需要的其他电路。尽管数据可替换存储在其他的高速缓冲存储器(未示出)中但是可以把将被编写进阵列11中的数据,或者当前从阵列11中读取的数据存储在控制系统128的一个高速缓冲存储器21中。控制系统128也可以包含各种临时存储命令和状态数据的寄存器等等。
通常把阵列11划分成大量的块0-N存储单元。如常见的快速的EEPROM那样,每个块可以是擦除的最小单元。也就是说,可以把每个块布置为含有最小数目的将被一起擦除的存储器单元。每个块被典型地分成许多页面。如本领域技术人员所意识到的那样,可将页面看作是最小的编写单元。也就是说,一个基础的编写操作可将数据写入一个最小的存储单元的页面或者从中读取数据。数据的一个或多个扇区可被存储在每个页面中。如图3b所示,一个扇区包括用户数据和附加数据(overhead data)。附加数据典型地包括纠错码(ECC),其已经从该扇区的用户数据中计算出。当把数据编写进阵列11时,控制系统15的一个部分23计算该ECC,以及当从阵列11中读取数据时该部分也检查ECC。可选地,与该ECC所属的用户数据相比较,该ECC被存储在不同的页面或者不同的块中。
用户数据的一个扇区典型地为521个字节,其等于在磁盘驱动器中的一个扇区的大小。虽然应明白的是附加数据一般可包括任何数目的字节,但是在这里附加数据典型地为一个附加的16个字节。最常见的,一个数据扇区被包含在每个页面中,但是两个或更多的扇区可代替地构成一个页面。任何数目的页面一般可构成一个块。例如,一个块可由8个页面直到512个,1024个或更多个的页面构成。通常是为了给存储器系统提供一个所期望的数据存储容量而选择块的数目。典型地,把阵列11分成几个子阵列(未示出),其中每个子阵列都包含该块的一个部分,它们彼此稍微独立地操作以提高并行执行存储器操作的程度。使用多子阵列的例子描述在美国专利申请5890192中,通过引用被全部包含在此。
在一个实施例中,把非易失性存储器内置在一个系统中,例如一个主系统中。图3c是一个包括一个内置非易失性存储器的主系统的示意图。一个主机或计算机系统150一般包括一个系统总线154,其允许在一个微处理器158、一个RAM162,和输入/输出电路166,以及主系统150的其他部件之间进行通信。一个非易失性存储器174,例如一个闪速存储器允许将信息存储在主系统150中。可在非易失性存储器174和总线154之间提供接口180,以便能够在非易失性存储器174中写入和读取信息。
非易失性存储器174可由微处理器158管理,该微处理器158有效地运行所布置的以控制非易失性存储器174的硬件和软件中的一个或者两者。也就是说,微处理器158可运行准许控制非易失性存储器的代码装置(未示出),即软件代码装置或者硬件代码装置。将在下面描述的这样的代码装置可以是与CPU一起封装在微处理器158内部的一个闪速存储器,一个独立的快擦除ROM或者在非易失性存储器174中,该代码装置使得在非易失性存储器中的物理块能够被寻址,并且使得在该物理块中能够存入、读出,以及擦除信息。
当收到一个逻辑块的新的或更新的数据时,可把数据临时高速缓冲存储到一个RAM高速缓冲存储器中,例如直到已经基本上完成了该逻辑块的更新以及将处理一个不同的逻辑块。图4a是一个依据本发明一个实施例的一个逻辑块、一个物理块,以及一个所布置的以高速缓冲存储该逻辑块的更新内容的RAM高速缓冲存储器的示意图。位于一个非易失性存储器部件,诸如一个NAND闪速存储器部件中的一个物理块‘A’410映射到逻辑块‘A’400上。在所描述的实施例中,物理块‘A’410基本上满了并且因此不能再接受逻辑块‘A’400的更新内容的或新的内容。同样地,在更新逻辑块‘A’400的一个逻辑页面‘A’402的内容时,不把更新的内容406存储到物理块‘A’410中。而是在物理块‘A’410的当前内容被拷入或者高速缓冲存储到RAM高速缓冲存储器420中之后,把更新的内容406临时存入或写入,即高速缓冲存储到一个RAM高速缓冲存储器中。
应当意识到的是,把更新的内容406写入RAM高速缓冲存储器420可以包括重写包含在RAM高速缓冲存储器420中的较旧的内容。例如,更新内容406可以重写先前存储在RAM高速缓冲存储器420中的旧数据内容。在一个实施例中,当RAM高速缓冲存储器可定位于整个存储器系统中的任一位置时,因此RAM高速缓冲存储器420可结合一个有效地控制一个非易失性存储器部件和物理块‘A’410的控制器。
当将要更新其他任何逻辑块(未示出)之前而对逻辑块‘A’400进行连续的更新时,那么也把该连续的更新内容存储到RAM高速缓冲存储器420中。图4b所示,当逻辑块‘A’400的页面402e存在更新的内容426时,可把更新的内容426高速缓冲存储至RAM高速缓冲存储器420中的任何适当的位置。可把更新内容基本连续地存储到RAM高速缓冲存储器420中,直到完成了逻辑块‘A’400的一个当前组的更新。在一个实施例中,逻辑块‘A’的当前组的更新可以是逻辑块‘A’400的全部更新,该组内容是在处理一个不同逻辑块(未示出)的更新之前被处理的。
当已经把逻辑块‘A’400的当前组的更新内容高速缓冲存储在RAM高速缓冲存储器420中时,接着可把临时存储在RAM高速缓冲存储器420中的更新内容,例如更新内容406、426写入或相反拷入一个新的物理块中。图4c是依据本发明一个实施例的,具有将要写入一个新的物理块中的内容的物理块和RAM高速缓冲存储器,也就是图4b中的物理块410和RAM高速缓冲存储器420的示意图。一旦把基本上所有的当前更新内容存储到RAM高速缓冲存储器420中,则可以获得一个新的物理块‘B’440并且将其映射到逻辑块‘A’400。
通常,把逻辑块‘A’400的最当前的或者最新的内容写入物理块‘B’440中。逻辑块‘A’400的最当前的内容基本包含在RAM高速缓冲存储器420中。因此,把RAM高速缓冲存储器420的内容拷入物理块‘B’440中,这使得物理块‘B’440能够实质上为在物理块域中的逻辑块‘A’400的一个版本。当物理块‘B’440基本上包含了逻辑块‘A’440的所有当前信息时,可擦除逻辑块‘A’以及使其与逻辑块‘A’解除关联或者解除映射。结果,逻辑块‘A’典型地只映射任何给定时间的单个物理块。因此,有效地节省了在一个系统中的物理块的使用,在把逻辑块‘B’与逻辑块‘A’相关联的同时,物理块‘A’410与逻辑块‘A’解除关联,并且可返回到一个备用块池中。
接下来请参阅图5,描述了依据本发明一个实施例的使用一个RAM高速缓冲存储器来更新物理块域中的一个页面内容的方法的步骤。使用一个RAM高速缓冲存储器来临时存储页面更新内容的处理过程500,开始于步骤504,在该步骤中一个主机开始处理一个逻辑块‘A’。当主机处理包含在逻辑块‘A’中的一个页面的更新时,该主机,例如与一个非易失性存储器连接的系统或者内置有一个非易失性存储器的系统,可以开始处理逻辑块‘A’。
当在一个与逻辑块‘A’相关联的物理块‘A’中基本没有可用的空间时,物理块‘A’不能有效地存储更新内容。因此,在把该更新内容存储到一个新的物理块之前,可使用一个RAM高速缓冲存储器来高速缓冲存储更新内容。处理流程从步骤504进行到步骤505,在步骤505中获得一个新的物理块‘B’。获得新的物理块‘B’,例如从一组备用块中获得,以将其映射到逻辑块‘A’或与之相关联。在步骤506中,物理块‘A’的基本上所有的内容可被高速缓冲存储到或者写入一个RAM高速缓冲存储器中。在步骤508中,例如通过一个控制器把包含在逻辑块‘A’中的一个页面的更新内容存储到访RAM高速缓冲存储器中。一般地,更新内容可包括更新的数据或新的数据,并且该更新内容可导致逻辑块‘A’的数据在该RAM高速缓冲存储器中被重写。如上对于图4a-c的描述,该RAM高速缓冲存储器是RAM或类似的存储器,其可用以临时存储更新的数据。一旦把该逻辑页面的更新内容存储到该RAM高速缓冲存储器中,在步骤512中对主机是否准备对一个例如逻辑块‘B’的不同的逻辑块开始进行处理作出判定。换句话说,在处理另一个逻辑块之前,判定逻辑块‘A’是否还存在需要存储到该RAM高速缓冲存储器中的更新内容。
如果在步骤512的判定为不是开始处理逻辑块‘B’的时机,则表明逻辑块‘A’还有更多的更新内容。因此,处理流程返回到把逻辑块‘A’的一个更新内容存储到该RAM高速缓冲存储器的步骤508。可选的,如果判定了是开始处理一个不同的逻辑块的有效时机,则在步骤518中把该RAM高速缓冲存储器的内容写入物理块‘B’中,这样就将逻辑块‘A’的最当前的内容存入或写入了物理块‘B’中。
一旦把信息存入了物理块‘B’中,就在步骤524中将物理块‘A’擦除。应当意识到的是在把该RAM高速缓冲存储器的内容合并到物理块‘B’中之后,典型地不必擦除该RAM高速缓冲存储器,这是因为存储在RAM高速缓冲存储器中的信息可以被重写。典型地,当把另一个物理块的内容存入该RAM高速缓冲存储器时,该RAM高速缓冲存储器的先前的内容被改写。然而在一个实施例中,一旦把该RAM高速缓冲存储器的内容合并到物理块‘B’,则可以擦除该RAM高速缓冲存储器。
在步骤524中擦除了物理块‘A’之后,在步骤528中物理块‘A’与逻辑块‘A’解除关联。物理块‘A’与逻辑块‘A’的解除关联可以包括更新映射,以表示逻辑块‘A’与物理块‘B’相关联。在解除了物理块和逻辑块的关联,也就结束了使用一个RAM高速缓冲存储器以临时存储一个逻辑块的页面更新的过程。
尽管在把更新内容写入一个物理块之前使用一个RAM高速缓冲存储器临时存储一个逻辑块的更新内容是有效的,但是一个存储器系统不会总是具有可用的RAM用作一个RAM高速缓冲存储器。典型地,一个RAM高速缓冲存储器具有能够充分容纳一个块的所有内容的容量。同样地,一个RAM高速缓冲存储器的容量可以改变,其依赖于一个系统中物理块的容量。例如,如果一个系统中的一个物理块一般包括大约32个页面,则该RAM高速缓冲存储器可以具有至少足够大到容纳一个块的大约32个页面的内容的容量。如果软件需求不可用一个适当容量以容纳一个物理块的RAM高速缓冲存储器,则可以在把信息写入一个与逻辑块相关联的物理块之前,使用一个实际的物理块来代替临时保存信息。换句话说,可以用一个物理块来代替地实现高速缓冲存储块,其优于用一个RAM高速缓冲存储器来实现的“高速缓冲存储块”。
图6a是依据本发明一个实施例的一个逻辑块,一个物理块,和一个所布置的以高速缓冲存储逻辑块的更新内容的高速缓冲块,例如物理块高速缓冲存储器的示意图。一个非易失性存储器部件的物理块‘A’610被映射到一个逻辑块‘A’600。当物理块‘A’610基本上满了并且不能有效地用于容纳逻辑块‘A’600的更新内容的或新的内容时,可以使用一个物理块高速缓冲存储器612临时高速缓冲存储该更新内容的或新的内容。
如所示,逻辑块600的逻辑页面602c包括更新的内容606。如果,表示更新内容606与逻辑页面602c相关联的指示存于物理块高速缓冲存储器612中,或是可用的以便更新内容606能被识别为与逻辑页面602c是相关联的,则基本上可以把更新的内容606存储到物理块高速缓冲存储器612中的任何一处。例如,如所示那样,更新的内容606可被高速缓冲存储到物理块高速缓冲存储器612中的第一一可用页面。可选的,在一个实施例中,更新的内容606可被写入或者高速缓冲存储到物理块高速缓冲存储器612的相应于逻辑页面602c的位置中。
当有效地作出一个连续的更新时,例如当更新的内容616与逻辑页面602e相关联时,那么可把更新的内容616也高速缓冲存储到物理块高速缓冲存储器612中。如将对于图6b的描述那样,一旦至少暂时完成了逻辑块‘A’600的基本上所有的更新,例如该处理一个不同的逻辑块(未示出)时,则包括更新606、616的逻辑块‘A’600的最新数据可以被写入一个新的物理块。在某些实施例中,逻辑块‘A’600的“最当前的数据”只包括更新内容,然而在另外的实施例中,包括示出的实施例,逻辑块‘A’600的最当前的数据可以包括更新内容606、616和物理块‘A’610的一些内容,该物理块‘A’610还没有被更新内容606、616侵占。应当意识到的是,当物理块高速缓冲存储器612满了时,甚至是在不该处理一个不同的逻辑块(未示出)时,也可以进行合并操作或者类似的操作以把逻辑块‘A’600的最新的内容提供到一个新的物理块中。该新的物理块可在以后变为一个“旧的”物理块,并且可把逻辑块‘A’600的更新内容进一步高速缓冲存储到一个新的物理块高速缓冲存储器612。
如图6b所示,假定将要处理一个不同的逻辑块,可以获得一个逻辑块‘A’600所映射的新的物理块‘B’620。应当明白的是该新的物理块‘B’620可以在所需的基础上获得,或者在一个实施例中,可以在第一次开始逻辑块‘A’600的一个高速缓冲存储处理时获得。通常,逻辑块‘A’600的最新的或者最新的内容被写入物理块‘B’620中。经常地,逻辑块‘A’600的最当前的内容可被包含在物理块‘A’610和物理块高速缓冲存储器612两者之中。特别地,在物理块高速缓冲存储器612中,含有逻辑块‘A’600的基本上任何更新的内容,而在物理块‘A’610中,含有较旧的内容或者还没有被更新为一组当前的更新内容的内容。应意识到的是逻辑块‘A’600的一些更新的内容可被更当前的更新内容侵占,例如较新的更新的内容(未示出)可有效地侵占更新的内容606。
有效地组合物理块‘A’610和物理块高速缓冲存储器612的内容,以便物理块‘B’620的页面包含从物理块高速缓冲存储器612获得的更新的内容606、616,以及当前的物理块‘A’610的内容,即物理块‘A’610的还没有有效地被物理块高速缓冲器612的内容侵占的内容。有时,物理块‘A’610的基本全部内容可被物理块高速缓冲存储器612的内容侵占,以便没有物理块的内容被包括在物理块‘B’620中。一旦物理块‘B’620实质上成为在一个物理块域中逻辑块‘A’600的一个版本,并且因此充分地包含了逻辑块‘A’600的全部当前信息,则擦除物理块‘A’610。
图7是一个说明了一种依据本发明一个实施例的,通过使用一个物理块高速缓冲存储器来更新物理块域中的一个页面内容的方法的处理流程图。使用一个块高速缓冲存储器临时存储逻辑页面更新的流程660开始于步骤670,其中一个主机开始处理一个逻辑块‘A’。换句话说,与一个非易失性存储器连接的系统,或者其中内置有一个非易失性存储器的系统,可开始处理逻辑块‘A’的更新。
主机开始处理逻辑块‘A’之后,在步骤672获得一个逻辑块‘A’所映射的新的物理块‘B’。然后,在步骤672由例如一个控制器把包含在逻辑块‘A’中的一个页面的更新内容存储到一个块高速缓冲存储器中。如上对图6a和6b的描述,当逻辑块‘A’所映射的一个物理块‘A’不能容纳一个页面更新内容时,可把该页面更新内容存储到一个高速缓冲存储器中。一旦把逻辑块‘A’中的一个页面的更新内容存储到了该块高速缓冲存储器中,在步骤678将对主机是否准备对一个不同的物理块,例如逻辑块‘B’开始进行处理作出判定。也就是,确定逻辑块‘A’是否还有需要处理的更新内容。
如果在步骤678的判定为不是开始处理逻辑块‘B’的时机,则表明逻辑块‘A’还有更多的更新内容。因此,处理流程返回到把逻辑块‘A’的一个更新存储到该块高速缓冲存储器的步骤。在另一方面,如果判定为开始处理逻辑块‘B’的时机,则在步骤686中可把物理块‘A’和该块高速缓冲存储器的内容组合到物理块‘B’中,这样就把逻辑块‘A’的最当前的内容写入了物理块‘B’中。也就是,物理块‘A’的内容和该块高速缓冲器的内容被有效地合并以及存储到物理块‘B’中,这样物理块‘B’就包含了逻辑块‘A’的当前内容。应意识到的是在某些例子中,该块高速缓冲存储器的内容可以有效地侵占物理块‘A’的内容,以便没有物理块‘A’的内容不被拷入或者存储到物理块‘B’中。
把逻辑块‘A’的当前内容写入物理块‘B’之后,在步骤690中擦除物理块‘A’。在步骤694,则擦除该块高速缓冲存储器。一旦擦除了该块高速缓冲存储器,则在步骤698中解除物理块‘A’与逻辑块‘A’关联。应意识到是解除物理块‘A’与逻辑块的关联包括更新映射以表示逻辑块‘A’与物理块‘B’相关联。在物理块‘A’与逻辑块‘A’解除关联之后,使用一个块高速缓冲存储器临时存储一个逻辑块的页面更新的过程结束。
通常,在软件中提供使得一个RAM高速缓冲存储器或者一个块高速缓冲存储器能被利用的功能,例如在一个编程代码装置或者一个主系统的硬件中。在图8中示出了一个依据本发明一个实施例的,提供给一个主系统的硬件或软件的适当的系统结构的实施例。一个系统结构700一般包括多种模块,其包括但不限制于一个应用接口模块704、一个系统管理器模块708、一个数据管理器模块712、一个数据完整性管理器716,以及一个装置管理器和接口模块720。通常,系统结构700可以使用软件代码装置或硬件,它们可以被一个处理器访问,例如图3a的处理器108。
通常,可以布置应用接口模块704以便直接与该主机,操作系统或者用户通信。应用通信接口704也可以与系统管理器模块708和数据管理器模块712通信。当用户需要读取,写或格式化一个闪速存储器时,用户把请求发送到操作系统,然后该请求被传送到应用接口模块704。应用接口模块704再把该请求指引到依赖于该请求的系统管理器模块708或者数据管理器模块712。
系统管理器模块708包括一个系统初始化子模块724、一个擦除计算块管理子模块726,和一个电源管理块子模块730。一般把系统初始化子模块724配置为能够处理一个初始化请求,并且能够典型地与擦除计算块管理子模块726。
除了与应用接口模块704通信之外,系统管理器模块708也与数据管理器模块712,以及装置管理器和接口模块720通信。系统管理器模块708和应用接口模块704都与数据管理器模块712通信,该数据管理器模块712可包括操作系统和文件系统中间层的功能。
与系统管理器模块708、数据管理器712以及数据完整性管理器716通信的装置管理器和接口模块720典型地提供了一个闪速存储器接口,并且包括硬件提取的功能,例如一个I/O接口。数据完整性管理器模块716提供了除其他功能之外的ECC处理。
在本发明一个实施例中,可根据分组执行块高速缓冲存储,其优于基本上在一页接一页的基础上进行的高速缓冲存储这样的执行块高速缓冲存储。如同在共同未决美国专利申请10/281,855所描述的,分组包括在一个块中的任何数量的页面。例如,可布置一个包括32个页面的块,这样把该32个页面分成4个分组,每个分组为8个页面。通常,一个块中的分组数量和一个分组中页面数量可广泛地变化。
当使用一个分组方案时,更新的数据可作为一个分组的一部分被写入一个物理块。图9a是一个依据本发明一个实施例的被分成组的一个逻辑块、一个物理块,和一个新的物理块的示意图。一个逻辑块‘A’900被分成逻辑组904,而每个分组包括许多逻辑页面908。尽管把逻辑块‘A’900示为包括4个逻辑组904,每一个分组包括4个页面908,但是包括在逻辑块‘A’900中的分组904和页面908的数量可以广泛地变化。一个具体页面908所属的分组904可在每个页面908的一个内务操作(overhead)或者冗余的区域被识别。
使物理块‘B’912与逻辑块‘A’900相关联,以便物理块‘B’含有逻辑块‘A’900的数据或内容。如所示,物理块‘B’的一个包括物理页面(未示出)的第一物理组916a含有逻辑组904a的数据920a。同样地,第二物理组916b含有逻辑组904b的数据920b,第三物理组含有逻辑组904c的数据920c,以及第四物理组916d含有逻辑组904d的数据920d。
当接收了一个更新内容924,例如从一个指示将要更新逻辑组904b的内容的主机接收时,把更新内容924与数据920b有效地合并,并且把他们存储到在一个新物理块‘B1’中的一个第一可用组932a中。合并的发生使得能够把逻辑组904b的每个页面的最当前的内容存储到分组932a中。将在下面参阅图10来描述一个更新组的数据和原始数据的合并。如图9b所示,当完成了逻辑块‘A’900的一个更新处理时,物理块‘B1’928可成为与逻辑块‘A’900相关联的物理块,即物理块‘B1’928可变得与逻辑块‘A’900相关联,而物理块‘B’912与逻辑块‘A’900解除关联。
在物理块‘B’912与逻辑块‘A’900解除关联之前,物理块‘B’912的内容还没有被合并到物理块‘B1’中。例如,第一逻辑组904a的数据920a被拷入或相反被提供到物理块‘B1’928的第二物理组932b中,而第三逻辑组904c的数据920则提供到第三物理组932c。同样地,第四逻辑组904d的数据920d可被提供到第四物理组932d。结果,逻辑块‘A’900的最当前的内容出现在物理块‘B’928中。
在物理块‘B1’928成为与逻辑块‘A’900向关联的物理块之后,可以对逻辑块‘A’添加更新内容。请参阅图9c,将描述一种依据本发明一个实施例的处理逻辑块‘A’900的添加更新的过程,该逻辑块‘A’900先前已被更新以及被分成了组904。当处理逻辑组904b的一千新的更新内容940时,由于物理块‘B’912不再包括逻辑块的最当前的内容,并且物理块‘B1’928基本上满了,所以可获得一个新的物理块‘B2’来存储更新内容940。特别地,把与逻辑组904b相关联的存储在物理组932a的数据936和更新内容940合并,并且作为更新的数据把其存储到物理块‘B’944的第一可用组946a中。更新的数据948包括逻辑组904b中的页面的最新内容。
一旦完成了一个更新处理,可把逻辑块‘A’900的最当前的内容提供到物理块‘B2’944。例如,可把第一逻辑组904a的数据920a提供到物理块‘B2’944的第二物理组946b,把第三逻辑组904c的数据920c提供到第三物理组946d,把第四逻辑组904d的数据提供到第四物理组946d。当物理块‘B2’944包含了逻辑块‘A’900的最当前的内容时,则可把物理块‘B2’944与逻辑块‘A’相关联而解除物理块‘B1’928与逻辑块‘A’的关联。
如果分成组的一个逻辑块最初没有内容,则当例如从一个主机接收了该逻辑块的新的或更新的数据时,即使一些数据将实际上侵占存储在物理块中的其它数据,也可把该新的或更新的数据存储到一个物理块中。图9d是一个依据本发明一个实施例的一个被分成组的逻辑块、一个包括该逻辑块的更新内容的物理块,以及一个含有该逻辑块的最当前内容的新的物理块的示意图。当一个逻辑块‘A’950最初不包括内容时,一有内容与逻辑块‘A’950相关联,就可把该内容写入一个与逻辑块‘A’950相关联的物理块‘956’中。如所示,当提供了逻辑块‘A’950的第二逻辑组952b的新的数据960a时,可把数据960a存储到物理块‘B’956的一个第一可用物理组958a中。
当更新了第二逻辑组952b的数据时,可把更新的数据960a’存储到下一个可用物理组958中,例如第二物理组958b中。存储了数据960a’之后,如果接收了第三逻辑组952c的新的数据960b,则把数据960b存储到下一个可用物理组958中,也就是第三物理组958c中。最后,如果接收了第二逻辑组952b的更新数据960a”,则把更新的数据960a”存储到第四物理组958d中,该物理组在所描述的实施例中是物理块‘B’956中最后一个可用的物理组958。
一旦物理块‘B’956满了,即物理块‘B’956中的所有组都含有数据960,并且又接收到逻辑块‘A’950的新的或更新的数据,则一般会获得用于使用的一个新的物理块。例如,如果接收到逻辑组952d的新的数据966,则可获得一个新的物理块‘B1’962以容纳数据966。存储了数据966之后,可把包括在物理块‘B’956的数据存储到物理块‘B2’962中。
为了把包括在物理块‘B’956中的数据960存储到物理块‘B2’962中,可用“底部优先”的方式从物理块‘B’956中读取组958,即从组958d开始到组958a结束。如果数据存在于含有逻辑组952b的数据960的物理组958a、958b、958d中的相同页面偏移(page offset)处,则把包含在物理组958d中的页面偏移(pageoffset)处的数据判断为最当前的数据。通常,物理组的数量越多,那么相同组的的数据就越新。一旦逻辑组952b的最新的数据被识别,或者更普通的一旦数据960a、数据960a’,和数据960a”被近似地合并、合并,则把逻辑组952b的更新数据968存储到物理块‘B1’962中的分组956中。即使只有物理块‘B’956中的一组958c包括逻辑组952d的数据960b,也可把数据960b提供到物理块‘B1’962的第三组964c中。由于没有在分组964d中存有数据,所以分组964d实际上可用于容纳一个新的逻辑组的数据,例如逻辑组952a。
如前所述,当接收到一个逻辑组的更新的数据时,如果该组中存有较旧的数据,那么如果适当,就把旧数据与更新的数据合并。在一个实施例中,当该更新的数据包括该分组中的基本每个页面的更新的数据时,则该更新的数据实际上重写所有的较旧的数据。然而,当该更新的数据包括该分组中的仅仅一些页面的更新内容,则会发生合并处理。请参阅下一个图10,将描述一种依据本发明一个实施例的把一个分组的原始数据和一个分组的新的数据合并到一起的方法。组‘X’可包括8个页面1002。某些页面1002可包括数据,而其他的页面1002可基本上是空的。如所示,页面1002a、1002d,1002e包括原始数据。
例如,当从一个主机处以更新的形式接收到分组‘X’1000的新的数据时,可把该新的数据提供给一个分组更新1006的页面1008中。页面1008a-d,以及页面1008g包括将要与包括在分组‘X’1000的数据合并的新的或更新的数据。一个合并过程典型地包括识别分组‘X’1000的最当前的数据。虽然新的数据有效地改写原始数据,但该新的数据被认为是分组‘X’1000的最当前的数据。在另一方面,当没有新的数据改写原始数据时,则可把该原始数据认为是最当前的数据。
合并数据1010,含有分组‘X’1000的原始数据与提供在分组更新1006中的新的数据的合并结果,并且包括页面1012,由于页面1008a的新的数据有效地侵占了存储在第一页面1002中的原始数据,所以该合并数据1010是这样的:相应于分组‘X’1000的第一页面1002的第一页面1012a包括来自页面1018a的数据。由于在页面1002b、1002c中最初没有包含数据,所以页面1008b、1008c所提供的新的数据被分别写入页面1012b、1012c中。由于在页面1008d中的数据比页面1002d所包含的数据新,所以页面1012d包含来自页面1008d的新的数据。由于分组更新1006在页面1008e中不包含更新的内容,所以页面1012e包含来自1002e的原始数据。最后,页面1012g包含页面1008g中的新的数据。一旦完成了合并数据1010,那么合并数据1010实际上成为分组‘X’1000。
通常,当一个分组的一个更新内容包括一个具体页面的数据时,由于该数据或者只是该具体页面的数据,又或者是改写该具体页面的原始数据的数据,所以该数据被包括在该分组的一个作为结果的合并数据中的相应页面中。可选的,当一个给定页面的原始数据没有被包括该页面的分组的更新内容重写时,则把该原始数据包括在该分组的一个作为结果的合并数据中的相应页面中。
图11a和图11b是依据本发明一个实施例的处理流程图,说明了一个更新一个逻辑块的内容的方法的步骤,该逻辑块是被分成组的。一个更新内容的过程1100开始于步骤1102,其中一个逻辑块‘A’的分组‘X’的内容被更新,例如被一个主机更新,该逻辑块‘A’与一个物理块‘B’相关联。典型地,一个逻辑组‘A’包括两个或多个页面。在步骤1104中,一旦更新了逻辑块‘A’的分组‘X’的内容,则获得一个新的物理块‘B1’以同逻辑块‘A’相关联。
在步骤1106中,把逻辑组‘X’中的旧的内容和逻辑组‘X’的新的或更新的内容合并,并且把它们存储到物理块‘B1’中,该逻辑组‘X’的旧的内容被典型地存储在物理块‘B’中的一个组中。在把合并内容存储到了物理块‘B1’之后,在步骤1108中将对逻辑块‘A’是否还有要被存储的新的或更新的内容作出判定。如果判定还有要被存储的添加的新的或更新的内容,则流程返回到步骤1105处,在步骤1105处把逻辑组‘X’的旧的内容和新的或更新的内容合并,该逻辑组可以是逻辑块‘A’中的不同逻辑组。换句话说,新的或更新的内容可与逻辑块‘A’中的基本上任何一个逻辑组相关联,并且因此将在新的或更新的内容和一个适当的逻辑组之间发生合并。
可选的,如果在步骤1108中判定不再有逻辑块‘A’的新的或更新的内容要被存储,则在步骤1110中作出判定物理块‘B1’是否还有足够的空间存储物理块‘B’的剩余的内容,例如还没有合并到物理块‘B1’中的内容。也就是判定是否可将逻辑块‘A’的当前内容的一个满的物理指示(full physicalrepresentation)存储到物理块‘B’。当判定在物理块‘B1’中有足够的分组把物理块‘B’的剩余的内容存储到物理块‘B1’中,则在步骤1120把来自物理块‘B’的剩余的内容拷入物理块‘B1’中。
在把来自物理块‘B’的剩余的内容拷入物理块‘B1’之后,物理块‘B1’实际上包含了逻辑块‘A’的最当前的内容或者当前内容。同样地,在步骤1122擦除物理块‘B’,并且在步骤1124解除该物理块‘B’与逻辑块‘A’的关联。一旦物理块‘B’与逻辑块‘A’解除关联,则结束了更新一个逻辑块的内容的过程。
返回到步骤1110,如果判定在物理块‘B1’中没有足够的可用分组存储物理块‘B’的剩余的内容,则该指示表示将要获得一个新的物理块容纳逻辑块‘A’的最当前的内容。因此,流程转到步骤1112,其中分配了一个新的物理块‘B2’与逻辑块‘A’相关联。一旦获得新的物理块‘B2’,则在步骤1114把物理块‘B’和物理块‘B1’的内容合并到物理块‘B2’中,这样就把逻辑块‘A’的最当前的内容存储到了物理块‘B2’中。通常,物理块‘B’和物理块‘B1’的合并内容包括在物理块‘B’和物理块‘B1’中的分组的合并内容。
在把内容合并到物理块‘B2’之后,在步骤1116擦除物理块‘B1’。一旦擦除了物理块‘B1’,在步骤1118解除物理块‘B1’和逻辑块‘A’的关联。然后,处理流程进行到步骤1122,在其中擦除物理块‘B’。
一个如上所述的RAM高速缓冲存储器可用于高速缓冲存储逻辑组的分组更新。RAM高速缓冲存储器的使用一般可减少在一个逻辑块的更新处理期间所需的擦除处理的次数,这是由于一个RAM高速缓冲存储器可被更新直到该更新处理结束,在此期间可获得一个新的物理块存储逻辑块的最当前的内容,并且可擦除旧的物理块。
请参阅图12a,将描述依据本发明一个实施例的一个RAM高速缓冲存储器的使用,该RAM高速缓冲存储器实际上分成了多个分组。一个逻辑块‘A’1200被分成了多个逻辑组1204,每一个逻辑组依次包括若干逻辑页1208。把一个物理块‘B’1212与逻辑块‘A’相关联,这样物理块‘B’1212含有逻辑块‘A’1200的数据或内容。如所示,物理块‘B’1212中的包括多个物理页面(未示出)的第一物理组1216a含有逻辑组1204a的内容。同样地,第二物理组1216b含有逻辑组1204b的数据1220b,第三物理组含有逻辑组1204c的数据1220c,以及第四物理组1216d含有逻辑组1204d的数据1220d。
当接收了一个更新内容1224,例如从一个指示将要更新逻辑组1204b的内容的主机接收时,把更新内容1224存储到一个RAM高速缓冲存储器1228中的第一可用组1232a。可选的,在一个实施例中,由于更新内容1224与第二逻辑组1204相关联,所以可把更新存储到第二RAM组1232中。
如果收到一个添加的更新内容,其表示逻辑组1204b的内容再次被更新,那么可把这样的更新内容与RAM高速缓冲器1228中的分组1232a的内容合并。如图12b所示,当收到一个相应于逻辑组1204b的新的更新内容1236时,可把新的更新内容1236中的数据与先前存储在RAM组1232a中的内容合并,以构成合并的、更新的数据1224’,其与逻辑组1204b相关联。在某些实例中,由于RAM可被重写,因此在合并处理期间,某些新的更新的数据1236可改写先前的更新的数据,即图12a的新的数据1224。
可把逻辑组1204d的一个更新内容1240存储到下一个可用RAM页面1232b中。应意识到的是不论是否在更新内容1236之前或之后接收到更新内容1240,仍然将更新内容1236包含进分组1232a中,并且把更新内容1240存储到分组1232b中。
一旦充分地完成了对逻辑块‘A’1200所作的更新,即将更新另一个逻辑块时,可把RAM1228的内容和物理块‘B’1212的内容合并到一个新的物理块中。图12c是依据本发明一个实施例的一个逻辑块‘A’1200和一个新的物理块的示意图,该新的物理块为RAM1228的内容和物理块‘B’1212的内容合并到该新的物理块之后的物理块。一旦判定已经完成了对逻辑块‘A’1200所作的更新,则典型地获得一个物理块‘B1’1236。例如像上述对图10的描述,一旦获得物理块‘B1’,则可把RAM高速缓冲存储器1228的分组1232的内容与物理块‘B’的分组1220的内容合并并且把它们存储到物理块‘B1’1236中。
由于已经在RAM高速缓冲存储器1228中更新了逻辑组1204b的数据,于是把更新数据1224’与数据1220b合并,数据1220b是逻辑组1204b的原始数据。应意识到的是数据1220b可包括逻辑组1204的某些当前内容,或者考虑到更新数据1224’,数据1220b可全部是过时的。为了有效地保证把逻辑组204b的最当前的或当前数据提供在物理块‘B1’1236中,使用一个合并处理来生成合并数据1244,该合并数据来源于更新的数据1224’和数据1220b。当相同逻辑组1204的相同页面偏移(page offset)也包含一个物理组1216中相应的数据时,包含在RAM高速缓冲存储器1228的RAM组1232中的数据被包括在合并数据中。也就是,当相应于逻辑组1204中的一个页面偏移(page offset)的数据存在于物理组1216和RAM组1232两者之中时,由于RAM组1232中的数据较新,因此RAM组1232中的数据被包含在合并数据中。
在把数据1220a存储到物理组1240a之后,可把合并数据1244存储到第二物理组1240b中,该数据1220a在所描述的实施例中为逻辑组1204a的原始数据。由于逻辑组1204c的数据1220c没有被更新,因此可把数据1220c存储到物理组1240c中。逻辑组1204d已经合并了存储在物理块‘B’1212中的原始数据1220d,以及存储在RAM高速缓冲存储器1228的RAM组1232b中的内容。同样地,使用数据1220d和新的或更新的数据1240来执行一个合并处理,以生成代表与逻辑组1204d相关联的最当前的或当前的内容的合并数据1248。如所示,把合并数据1248存储在物理组1240d中。由于物理块‘B1’1236现在含有逻辑块‘A’1200的当前内容,因此物理块‘B’1212是过时的并且可被擦除,以及解除物理块1212与逻辑块‘A’1200的关联。
图12d是一个依据本发明一个实施例的一个逻辑块、一个物理块,和一个RAM高速缓冲器的示意图,由于在该物理块中没有足够的空间容纳新的数据,所以该RAM高速缓冲器中存有内容。物理块1212的分组1216是这样的分组:分组1216a含有逻辑组1204b的原始数据1220a,分组1216b含有逻辑组1204b的更新的数据1220a’,分组1216c含有逻辑组1204c的更新的数据1220c,以及分组1216d含有逻辑组1204d的更新的数据1220a”,同样地,物理块1212满了,没有可写入添加的数据的可用组1216。
如果提供了相应于逻辑组1204d的新的数据,则把新的数据1240存储到RAM高速缓冲存储器1228中的一个适当的RAM组1232中。在一个实施例中,该适当的RAM组1232可以是RAM高速缓冲存储器1228中的第一可用RAM组1232a。当判定没有对逻辑块‘A’1200做出进一步的更新时,则可获得一个新的物理块‘B1’1252,把其与逻辑块‘A’1200相关联。
在物理块‘B1’1252中,第一物理组1260包括与逻辑组1204b相关联的合并数据1260。合并数据1260是通过合并数据1220a、数据1220a’,和数据1220a”生成的,以便逻辑组1204b的最当前的数据被包括在合并数据1260中。为了充分地保证逻辑组1204b的最当前的内容被包括在合并数据1260中,从分组1216d到分组1216a结束的顺序处理分组1216,这样可轻易地识别包含在一个给定逻辑组的特定页面偏移(page offset)中的最当前的数据。
一旦生成合并数据1260并且把其存储到分组1256a中,则把逻辑组1204c的数据1220c存储到分组1256b中,并且把存在于RAM高速缓冲存储器1228中的数据1240存储到分组1256中。结果,物理块‘B1’包含了逻辑块‘A’1200的最新的内容。
请参阅图13,将描述依据本发明一个实施例的一种使用RAM高速缓冲存储器存储一个逻辑块的逻辑组的更新的方法的示意图。过程1300开始于步骤1304,其中一个主机开始处理与物理块‘B’相关联的逻辑块‘A’。逻辑块‘A’的处理一般包括逻辑块‘A’中的逻辑组的更新的处理。
在步骤1308,清除一个RAM高速缓冲存储器。一旦清除RAM高速缓冲存储器,在步骤1312则把逻辑块‘A’的更新内容存储到该RAM高速缓冲存储器中。明确地,可基于与更新的内容相关联的逻辑组把更新的内容存储到适当的RAM组中。然后,在步骤1316,判定逻辑块‘A’是否还有要存储的更新的内容。如果判定还有要存储的更新的内容,则处理流程返回到存储更新的内容的步骤1312。
可选的,如果在步骤1312判定逻辑块‘A’不再有要存储的更新的内容,在步骤1320则分配一个新的物理块‘B1’与逻辑块‘A’相关联。换句话说,获得要写入逻辑块‘A’的最当前的内容的一个物理块‘B1’。一旦分配了新的物理块‘B1’,则在步骤1324中视情况把该RAM高速缓冲器的内容和该物理块‘B’的内容合并到物理块‘B1’中。内容的合并一般包括每个逻辑组的内容的合并,这样合并的内容是每个逻辑组的最当前的或当前的内容。
一旦合并了该RAM高速缓冲存储器的内容和物理块‘B’的内容,则物理块‘B1’实际上包含了逻辑块‘A’的最当前的内容。同样地,在步骤1328,可擦除物理块‘B’。在擦除物理块‘B’之后,解除物理块‘B’与逻辑块‘A’关联,以及完成了使用一个RAM高速缓冲存储器来存储更新的过程。
在某些情况下,RAM高速缓冲存储器的使用也许是不可能的,例如当一个系统中没有足够的可用RAM时。当不使用RAM高速缓冲存储器时,可使用一个高速缓冲存储块或者一个块高速缓冲存储器来代替存储一个逻辑块的分组的更新内容。图14a是一个依据本发明一个实施例的一个块高速缓冲存储器的示意图,该块高速缓冲存储器被分成多个组并且适合用于存储被分成多个组的一个逻辑块的更新内容。一个逻辑块‘A’1400被分成逻辑组1404,每一个组依次包括若干逻辑页1408。把一个物理块‘B’1412与逻辑块‘A’1400相关联,这样物理块‘B’1412就包含了逻辑块‘A’1400的数据。物理块‘B’的包括物理页(未示出)的第一物理组1416a含有逻辑组1404a的数据1420a。类似地,第四物理组1416d含有逻辑组1404b的更新的数据1420d。第二物理组1416b包含逻辑组1404a的数据1420b,以及第三物理组1416c含有逻辑组1204c的数据1420c。物理块‘B’1412没有含有逻辑组1404d的任何内容。
当接收到包括逻辑组1404d的数据的一个更新内容1424时,把更新内容1424存储到物理块高速缓冲存储器中的第一可用组1432a中。如果获得一个添加的更新内容,其表示逻辑组1204b的内容再次被更新,则可把该更新内容存储到块高速缓冲存储器的下一个可用组1432b中。如图14b所示,当接收到一个相应于逻辑组1404d的新的更新内容1426时,把新的更新内容1426中的数据存储到分组1432b中。在一个实施例中,应意识到的是可能会有逻辑组1404d的一些当前数据,其被包括在数据1424和数据1426两者之中。然而,当一页的信息存在于数据1426中时,如果数据1424中的相应页也含有信息,则当需要逻辑组1404d的当前的数据时,将典型地使用数据1426中的信息。
图14c是一个依据本发明一个实施例的一个逻辑块,也就是图14b中的逻辑块‘A’1400,以及一个新的物理块的示意图,该新的物理块是一个已经把该块高速缓冲器和与逻辑块相关联的原物理块的内容,也就是图14b中的块高速缓冲存储器1428和物理块‘B’1412的内容合并到该物理块后的物理块。当没有再对逻辑块‘A’1400作出更新时,可获得一个将与逻辑块‘A’1400相关联的新的物理块‘B1’。应意识到的是当完成了逻辑块‘A’1400的更新时,块高速缓冲存储器1428中的可用组1432c、1432d是充分空闲的并且可用于存储一个新的或不同的逻辑块的逻辑组的数据,或者在稍后甚至存储逻辑块‘A’的数据。
如图10中所示那样,一旦获得新的物理块‘B1’1440,就合并与逻辑组1404b相关联的数据1420a和数据1420d,以便形成可以存于新物理块‘B1’1440的组1444a中的合并数据1446。接着,可以把数据1420b从组1416b复制到组1444b,以及把数据1420c从组1416c复制到组1444c。
由于块高速缓冲存储器1428含有与逻辑组1404d相关联的数据1424和数据1426,因此把数据1424和数据1426合并以构成合并数据1448,并且把该合并数据1448存储到新的物理块‘B1’1440的物理组1444d中。一旦新的物理块‘B1’1440被填充,则新的物理块‘B1’1440有效地包括逻辑块‘A’1400的最当前或当前的内容。同样地,物理块‘B’1412实际上是过时的,并且可被擦除以及与逻辑块‘A’1400解除关联。
如前所述,块高速缓冲存储器1428包括可用组1432,在一个连续的更新处理期间,该可用组1432可用于存储一个不同逻辑块或者逻辑块‘A’1400的更新内容或新的数据。请参阅图14d,将描述依据本发明一个实施例的使用块高速缓冲存储器1428中的可用组1432c、1432d存储逻辑块‘A’的新的更新内容。应意识到的是块高速缓冲存储器1428中的可用组1432a、1432b的内容可以是任何逻辑块的旧的内容,并不限制于是逻辑块‘A’1400的旧的内容。典型地,1432a、1432b的内容与一个不同的逻辑块相关联。
当接收到逻辑组1404d的一个更新内容时,可把相应于逻辑组1404d的先前的数据与该更新内容合并,并且把其存储在物理块1412’的物理组1416a’中。可把与逻辑组1404d相关联的合并数据1450存储到块高速缓冲器1428中的第一可用组1432c中。类似地,当接收到逻辑组1404b的一个更新内容时,可把该更新的内容与存储在相应于逻辑组1404b的物理组1416c’中的先前的数据合并。
当需要高速缓冲存储逻辑块‘A’1400的添加的信息时,由于块高速缓冲1428是满的,因此可获得一个新的块高速缓冲存储器。请参阅下一图14e,将描述依据本发明一个实施例的使用两个块高速缓冲存储器存储逻辑块‘A’1400的更新内容。当块高速缓冲存储器1428是满的而又接收到逻辑块‘A’1400的一个更新内容时,可获得一个新的或当前的块高速缓冲存储器1464。例如,当接收到逻辑组1404c的一个更新内容时,由于数据1422b也与逻辑组1404c相关联,因此可把该更新的数据与包含在分组1416b’中的数据1422b合并。一旦生成了合并数据1460,则把合成数据1460存储到当前的块高速缓冲存储器1464中的第一可用组中。
通常,当前的块高速缓冲存储器1464可视情况用于存储更新内容或者合并的更新内容,直到当前的块高速缓冲存储器1464已不再有可用组。当当前块高速缓冲存储器1464是满的并且需要逻辑块‘A’的更多的更新内容时,则可获得一个新的当前的块高速缓冲存储器。
如果在把合并数据1464存储到第一可用组1468后,逻辑块‘A’1400没有更多的更新内容,则可判定是否能够把物理块‘B’1412的内容和块高速缓冲存储器1428的内容合并到当前的块高速缓冲存储器1464中,或者是否能够把物理块‘B’1412、块高速缓冲存储器1428和当前的块高速缓冲存储器1464的内容存储到一个新的物理块中。如所示的一个实施例中,是能够把物理块‘B’1412’的内容和块高速缓冲存储器1428的内容合并到当前的块高速缓冲存储器1464中。图14f是一个依据本发明一个实施例的把块高速缓冲存储器1428和物理块‘B’1412’的内容合并到当前块高速缓冲存储器1464之后的当前的块高速缓冲存储器1464的示意图。当前块高速缓冲存储器已经包括了逻辑组1404c的数据1460。由于块高速缓冲存储器1428已包括逻辑组1404d的合并数据1450和逻辑组1404b的合并数据1452,即由于块高速缓冲存储器1428已经包括逻辑组1404b和1404c的最当前的数据,因此可把合并数据1450考入分组1468b中,而把合并数据1452拷入分组1468c中。最后,可把与逻辑组1404a相关联的存储在物理块‘B’1412’的分组1416d’中的原始数据1422d拷入分组1468d中,藉此有效地把逻辑块‘A’1400的最当前的内容合并到当前的块高速缓冲存储器1464中。应意识到的是当前的块高速缓冲存储器1464然后可以作为与逻辑块‘A’1400相关联的新的物理块与逻辑块‘A’相关联。
请参阅下一个图15a和15b,将描述依据本发明一个实施例的一种把更新的内容存储到一个使用分组的块高速缓冲存储器中的方法的步骤。过程1500开始于步骤1504,其中一个主机开始处理一个与物理块‘B’相关联的逻辑块‘A’,例如处理逻辑块‘A’的更新。在步骤1508,判定是否有一个与逻辑块‘A’相关联的当前的高速缓冲存储块,以及是否在该当前的高速缓冲器存储块之中有可用的空间。
如果在步骤1508判定既没有当前的高速缓冲存储块又在该当前的高速缓冲存储块中没有可用的空间,则在步骤1512获得一个新的当前的高速缓冲存储块。一旦获得该当前的高速缓冲存储块,处理流程则转到步骤1516,其中把由一个给定逻辑组的合并数据和该给定逻辑组的新的数据所生成的内容存储到该当前的高速缓冲存储块中,该合并数据存储在物理块‘B’中的一个物理组中。如果在步骤1508判定该当前的块高速缓冲存储器有可用的空间,处理流程则直接从步骤1508转到步骤1516。
一旦把合并内容存储到该当前的高速缓冲存储块,则在步骤1520判定逻辑块‘A’是否还有要存储的更新的内容。如果判定还有要存储的更新的内容,处理流程则返回到判定在当前的高速缓冲存储块中是否有空间的步骤1508。可选的,如果判定逻辑块‘A’不再有要存储的更新的内容,则在步骤1524判定在当前的高速缓冲存储块中是否有足够的空间执行一个信息的合并,该信息包含在物理块‘B’和任何实际上较旧的,或过时的高速缓冲存储块中,并且把该信息合并到该当前的高速缓冲存储块中。
如果判定有足够的空间执行合并到该当前的高速缓冲存储块中的合并,则表明该当前的高速缓冲存储块适于成为与逻辑块‘A’相关联的新的物理块,并且因此适于充分地包含逻辑块‘A’的所有的当前的数据。因此,在步骤1536,视情况把物理块‘B’中的分组的内容,以及在任何较旧的高速缓冲存储块中的分组的内容合并到该当前的高速缓冲存储块,这样该当前的高速缓冲存储块就包含了逻辑块‘A’的分组的最当前的数据。
在完成了合并处理到该当前的高速缓冲存储块之后,在步骤1540擦除物理块‘B’和任何较旧的或过时的高速缓冲存储块。一旦擦除物理块‘B’,则在步骤1544把物理块‘B’与逻辑块分离,并且在步骤1548把该合并的当前的高速缓冲存储块与逻辑块‘A’相关联,藉此有效地成为与逻辑块‘A’相关联的物理块。一旦该合并的高速缓冲存储块与逻辑块‘A’相关联,则完成了把更新的内容存储到一个块高速缓冲器中的过程。
回到步骤1524,如判定不能执行合并入该当前的高速缓冲存储块,则表明在当前的高速缓冲存储块中没有足够数量的物理组以容纳逻辑组的数据,该数据当前没有在该当前的高速缓冲存储块中。同样地,在步骤1528,为逻辑块‘A’分配一个新的物理块‘B1’。然后,在步骤1532,视情况把物理块‘B’中的分组的内容与所有高速缓冲存储块中的分组的内容合并到物理块‘B1’中。处理流程从步骤1532进行到步骤1540,其中擦除物理块‘B’和高速缓冲存储块。应意识到的是,当物理块‘B1’与逻辑块‘A’相关联时,不执行把合并的高速缓冲存储块与逻辑块‘A’相关联的步骤1548。
尽管已经描述了本发明的仅仅一些实施例,应理解的是在不脱离本发明的精神和范围的情况下,本发明可被以许多其它的形式内置。例如,虽然已经描述了使用一个RAM高速缓冲存储器和一个物理块高速缓冲存储器来临时存储或高速缓冲存储更新的数据,但是可使用任何适当的存储器高速缓冲存储更新的数据。换句话说,在把更新内容写入一个逻辑块所映射的物理块之前,存储一个逻辑块的更新内容的高速缓冲存储器不限制于一个RAM高速缓冲存储器或者一个物理块高速缓冲存储器。
一个闪速存储器的大小和闪速存储器中的块的大小可被广泛地变化。虽然已经把块的大小描述为包括大约32个页面,但是块可包括任何数量的页面,或者更一般的,包括任何数量的构成一个块的元件。例如,一个块可包括大约64个元件或页面。结果,一个系统中的块的数量可以变化。在一个512Mb NAND闪速存储器中,如果一个块包括大约32个页面,每个页面包含大约512个字节,那么在该闪速存储器中就总共有4096个物理块。可选的,在相同的512Mb NAND闪速存储器中,如果每个物理块包括大约64个页面,每个页面包含大约512个字节,那么在该闪速存储器中可以总共有2048个物理块。通常,页面的大小也可以变化。
本发明的各种方法的步骤可广泛地变化。通常,可以增加、去除,重排和改变步骤。例如,在不脱离本发明的精神或范围的情况下,使用一个物理块高速缓冲存储器的方法可包括判定何时该物理块是满的,以及在继续把更新内容高速缓冲存储到该物理块高速缓冲存储器之前,何时视情况把该物理块高速缓冲存储器和物理块‘A’的内容合并到物理块‘B’中。进一步的,在高速缓冲存储更新之前可不需要获得一个新的物理块,例如,当该合并一个旧的物理块和一个物理块高速缓冲器的内容时,可作为需要地获得一个新的物理块。因此,把当前范例视为说明而不是限制,并且本发明也不限制于在此所给出的细节,但是在所附的权利要求的范围中可以修改发明。

Claims (28)

1、一种用于处理一个非易失性存储器的块的内容的方法,该非易失性存储器与一个存储器系统相连,该方法包括:
获得第一组内容,该第一组内容与第一逻辑块的第一逻辑组相关联,该第一逻辑组包括第一逻辑块的第一若干逻辑页面,该第一逻辑块充分地映射第一逻辑块;
把第一组内容写入一个存储器区域;
把第一组内容从该存储器区域写入第二物理块的第一物理组,第一物理组包括第二物理块的第一若干物理页;以及
把第二物理块映射到第一逻辑块。
2、根据权利要求1的方法,其中第一物理块包括第二组内容,该方法进一步的包括:
把至少一些第二组的内容写入具有第一组内容的第二物理块中。
3、根据权利要求2的方法,进一步的包括:
从第一物理块中擦除第二组内容;以及
充分地解除第一物理块和第一逻辑块的映射。
4、根据权利要求3的方法,进一步的包括:
从该存储器区域中擦除第一组内容。
5、根据权利要求1的方法,其中第一物理块包括第二组内容,该方法进一步包括:
把第二组内容写入所述的存储器区域。
6、根据权利要求5的方法,其中把第一组内容写入所述存储器区域的步骤包括重写所述存储器区域中的至少一些所述第二组内容。
7、根据权利要求6的方法,其中所述存储器区域为一个RAM高速缓冲存储器。
8、根据权利要求1的方法,其中第一组内容包括所述第一逻辑块的一个更新内容。
9、根据权利要求1的方法,进一步的包括:
获得第三组内容,所述的第一组内容与第一逻辑块的第二逻辑组相关联,所述第二逻辑组包括第一逻辑块的若干个第二逻辑页;
把第三组内容写入所述存储器区域;以及
把第三组内容写入第二物理块的第二物理组,所述第二物理组包括第二物理块的第二若干逻辑页面。
10、根据权利要求9的方法,进一步的包括:
判定何时基本没有要获得的第一逻辑块的其他组的内容,其中当判定没有要获得的其他组的内容时,把所述第一组的内容和第三组的内容写入所述存储器区域。
11、根据权利要求10的方法,其中判定何时基本没有要获得的第一逻辑块的其他组的内容的步骤包括判定何时更新一个第二逻辑块。
12、根据权利要求11的方法,其中当判定将更新第二逻辑块时,该方法进一步包括:
立即获得第二物理块;以及
立即把第一组的内容和第三组的内容写入第二物理块。
13、根据权利要求12的方法,其中获得第二物理块的步骤包括:
把第二物理块映射到第一逻辑块。
14、根据权利要求13的方法,进一步包括:
从第一物理块中擦除第二组内容;以及
解除第一物理块和第一逻辑块的映射。
15、根据权利要求1的方法,进一步包括:
获得第二物理块;以及
把第二物理块映射到第一逻辑块。
16、根据权利要求1的方法,其中没有布置第一物理块以容纳第一组内容
17、根据权利要求1的方法,其中所述存储器区域为第三物理块和RAM高速缓冲存储器中的一个。
18、根据权利要求1的方法,其中所述非易失性存储器是一个NAND闪速存储器。
19、一种用于处理一个非易失性存储器系统中的第一逻辑块的更新的内容的方法,所述第一逻辑块映射第一物理块,该方法包括:
接收第一逻辑块的第一更新内容,其中第一更新内容是第一逻辑块的第一逻辑组的一个更新内容,第一逻辑组布置为包括第一逻辑块的第一若干逻辑页面;
把第一更新内容存储到一个高速缓冲存储器中;
判定何时把所述高速缓冲存储器的内容存储到一个第二物理块中,所述高速缓冲存储器的内容包括第一更新内容;
当判定将把所述高速缓冲存储器的内容存储到第二物理块中时,把所述高速缓冲存储器的内容存储到第二物理块中,其中存储所述高速缓冲存储器的内容的步骤包括把第一更新内容存储到第一物理块中的第一物理组中,所述第一物理组包括第一物理组所包括的第一若干物理页面;
在把高速缓冲存储器的内容存储到所述第二物理块中之后,把第二物理块映射到第一逻辑块;以及
在把高速缓冲存储器的内容存储到所述第二物理块中之后,解除第一物理块和第一逻辑块的映射。
20、根据权利要求19的方法,其中判定何时把所述高速缓冲存储器的内容存储到第二物理块中的步骤包括,判定何时处理第二逻辑块,并且其中当判定将处理第二逻辑块时,把高速缓冲存储器的内容存储到所述第二物理块中。
21、根据权利要求19的方法,进一步包括:
获得第二物理块。
22、根据权利要求19的方法,其中所述高速缓冲存储器的内容包括至少一些第一物理块的内容。
23、根据权利要求22的方法,进一步包括:
把第一物理块的内容拷入所述高速缓冲存储器,其中当把第一更新内容存储到所述高速缓冲存储器中时,所述第一更新内容充分地重写至少一部分第一物理块的所述拷贝内容。
24、根据权利要求23的方法,其中所述高速缓冲存储器是一个RAM高速缓冲存储器。
25、根据权利要求19的方法,其中判定何时把所述高速缓冲存储器的内容存储到第二物理块中的步骤包括判定何时处理第二逻辑块,并且其中当判定将处理第二逻辑块时,把至少一些所述高速缓冲存储器的内容存储到第二物理块。
26、根据权利要求25的方法,进一步包括:
当判定将处理第二逻辑块时,把至少一些第一物理块的内容存储到第二物理块。
27、根据权利要求25的方法,进一步包括:在把所述高速缓冲存储器的内容存储到第二物理块中之后,擦除第一物理块。
28、根据权利要求25的方法,其中所述高速缓冲存储器是一个物理块高速缓冲存储器。
CNB2003101156748A 2002-10-28 2003-10-28 在非易失性存储器系统中执行块高速缓冲存储的方法和装置 Expired - Fee Related CN1329842C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US42191002P 2002-10-28 2002-10-28
US60/421,910 2002-10-28

Publications (2)

Publication Number Publication Date
CN1504896A true CN1504896A (zh) 2004-06-16
CN1329842C CN1329842C (zh) 2007-08-01

Family

ID=32094174

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2003101156748A Expired - Fee Related CN1329842C (zh) 2002-10-28 2003-10-28 在非易失性存储器系统中执行块高速缓冲存储的方法和装置

Country Status (5)

Country Link
US (1) US7174440B2 (zh)
EP (1) EP1416389A3 (zh)
JP (1) JP2004152302A (zh)
KR (1) KR100901551B1 (zh)
CN (1) CN1329842C (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101194238B (zh) * 2005-06-24 2010-05-19 松下电器产业株式会社 存储器控制器、非易失性存储装置、非易失性存储系统及数据写入方法
CN101840380A (zh) * 2009-03-12 2010-09-22 马维尔国际贸易有限公司 保护元数据免受意外断电影响的装置和方法
CN101937374A (zh) * 2009-06-30 2011-01-05 恒忆有限责任公司 存储存储器重映射信息的非易失性存储器
CN101661431B (zh) * 2008-08-29 2011-11-09 群联电子股份有限公司 用于快闪存储器的区块管理方法、快闪储存系统及控制器
CN102866955A (zh) * 2012-09-14 2013-01-09 记忆科技(深圳)有限公司 一种闪存数据管理方法及系统

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI260019B (en) 2004-05-21 2006-08-11 Fujitsu Ltd Semiconductor memory device and memory system
JP3942612B2 (ja) * 2004-09-10 2007-07-11 東京エレクトロンデバイス株式会社 記憶装置、メモリ管理方法及びプログラム
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7366826B2 (en) * 2004-12-16 2008-04-29 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
KR100703727B1 (ko) 2005-01-12 2007-04-05 삼성전자주식회사 비휘발성 메모리, 이를 위한 사상 제어 장치 및 방법
US20060294292A1 (en) * 2005-06-27 2006-12-28 Illendula Ajith K Shared spare block for multiple memory file volumes
CN100395704C (zh) * 2005-08-27 2008-06-18 海信集团有限公司 一种在Nand Flash存储器中直接建立只读文件系统的方法
JP4751163B2 (ja) * 2005-09-29 2011-08-17 株式会社東芝 メモリシステム
JP4936271B2 (ja) 2006-01-20 2012-05-23 株式会社メガチップス 半導体記憶装置
KR100781520B1 (ko) 2006-02-24 2007-12-03 삼성전자주식회사 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 이를위한 맵핑 정보 복구 방법
KR101185617B1 (ko) * 2006-04-04 2012-09-24 삼성전자주식회사 외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에의한 플래시 파일 시스템의 동작 방법
US7971071B2 (en) * 2006-05-24 2011-06-28 Walkoe Wilbur J Integrated delivery and protection device for digital objects
US8190961B1 (en) 2006-11-28 2012-05-29 Marvell International Ltd. System and method for using pilot signals in non-volatile memory devices
DE112006004185T5 (de) 2006-12-27 2009-11-19 Intel Corporation, Santa Clara Verfahren zum Verwalten von Daten in einem nichtflüchtigen Speicher
US7791952B2 (en) 2007-01-30 2010-09-07 Micron Technology, Inc. Memory device architectures and operation
US7869277B1 (en) 2007-04-25 2011-01-11 Apple Inc. Managing data writing to memories
JP2008299513A (ja) * 2007-05-30 2008-12-11 Sony Corp データ記憶装置およびその制御方法
JP4210318B1 (ja) * 2007-11-28 2009-01-14 株式会社京都ソフトウェアリサーチ データ格納システムおよびデータ格納プログラム
TWI473100B (zh) * 2008-09-05 2015-02-11 A Data Technology Co Ltd Flash memory system and its operation method
US20100082903A1 (en) * 2008-09-30 2010-04-01 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory drive, information processing apparatus and data access control method of the non-volatile semiconductor memory drive
US8325795B1 (en) 2008-12-01 2012-12-04 Adobe Systems Incorporated Managing indexing of live multimedia streaming
US8782143B2 (en) * 2008-12-17 2014-07-15 Adobe Systems Incorporated Disk management
TWI420528B (zh) * 2009-03-11 2013-12-21 Silicon Motion Inc 用來增進一快閃記憶體的效能之方法以及相關之可攜式記憶裝置及其控制器
US8255661B2 (en) * 2009-11-13 2012-08-28 Western Digital Technologies, Inc. Data storage system comprising a mapping bridge for aligning host block size with physical block size of a data storage device
US8694814B1 (en) * 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US20130042051A1 (en) * 2011-08-10 2013-02-14 Skymedi Corporation Program method for a non-volatile memory
CN104396043B (zh) * 2013-04-29 2016-10-19 株式会社Lg化学 线缆型二次电池用包装和包含其的线缆型二次电池
US9852066B2 (en) * 2013-12-20 2017-12-26 Sandisk Technologies Llc Systems and methods of address-aware garbage collection
CN106326133B (zh) * 2015-06-29 2020-06-16 华为技术有限公司 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法
KR20180069806A (ko) * 2015-10-15 2018-06-25 텐세라 네트워크스 리미티드 통신 단말기에서의 콘텐츠의 신선도 인식 프리젠테이션
CN106843743B (zh) * 2015-12-03 2019-10-25 群联电子股份有限公司 数据程序化方法、存储器储存装置及存储器控制电路单元
WO2018234967A1 (en) 2017-06-19 2018-12-27 Tensera Networks Ltd. SILENT CONTENT UPDATE IN USER DEVICES
CN113961140B (zh) 2020-07-02 2024-06-11 慧荣科技股份有限公司 数据处理方法及对应的数据储存装置
CN113885778B (zh) * 2020-07-02 2024-03-08 慧荣科技股份有限公司 数据处理方法及对应的数据储存装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2685173B2 (ja) 1986-05-31 1997-12-03 キヤノン株式会社 メモリ書き込み制御方法
JPH07109717B2 (ja) 1986-05-31 1995-11-22 キヤノン株式会社 メモリ書き込み制御方法
US5268870A (en) 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
DE69033438T2 (de) 1989-04-13 2000-07-06 Sandisk Corp., Santa Clara Austausch von fehlerhaften Speicherzellen einer EEprommatritze
US5222109A (en) 1990-12-28 1993-06-22 Ibm Corporation Endurance management for solid state files
US5438573A (en) 1991-09-13 1995-08-01 Sundisk Corporation Flash EEPROM array data and header file structure
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
JP2856621B2 (ja) 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5388083A (en) 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
US5845313A (en) 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US5907856A (en) 1995-07-31 1999-05-25 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US6125435A (en) 1995-09-13 2000-09-26 Lexar Media, Inc. Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory
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
JPH09185551A (ja) * 1996-01-08 1997-07-15 Mitsubishi Electric Corp 半導体記憶装置
US5860082A (en) 1996-03-28 1999-01-12 Datalight, Inc. Method and apparatus for allocating storage in a flash memory
US5860124A (en) * 1996-09-30 1999-01-12 Intel Corporation Method for performing a continuous over-write of a file in nonvolatile memory
US6000006A (en) 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US5937425A (en) 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
KR100297986B1 (ko) 1998-03-13 2001-10-25 김영환 플래쉬 메모리 셀 어레이의 웨어 레벨링 시스템 및 웨어 레벨링 방법
US6260156B1 (en) 1998-12-04 2001-07-10 Datalight, Inc. Method and system for managing bad areas in flash memory
US6426893B1 (en) 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
EP1220229B1 (en) * 2000-12-29 2009-03-18 STMicroelectronics S.r.l. An electrically modifiable, non-volatile, semiconductor memory which can keep a datum stored until an operation to modify the datum is completed
JP3967121B2 (ja) * 2001-12-11 2007-08-29 株式会社ルネサステクノロジ ファイルシステム、ファイルシステム制御方法およびファイルシステムを制御するためのプログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101194238B (zh) * 2005-06-24 2010-05-19 松下电器产业株式会社 存储器控制器、非易失性存储装置、非易失性存储系统及数据写入方法
CN101661431B (zh) * 2008-08-29 2011-11-09 群联电子股份有限公司 用于快闪存储器的区块管理方法、快闪储存系统及控制器
CN101840380A (zh) * 2009-03-12 2010-09-22 马维尔国际贸易有限公司 保护元数据免受意外断电影响的装置和方法
CN101840380B (zh) * 2009-03-12 2015-01-07 马维尔国际贸易有限公司 保护元数据免受意外断电影响的装置和方法
CN101937374A (zh) * 2009-06-30 2011-01-05 恒忆有限责任公司 存储存储器重映射信息的非易失性存储器
CN101937374B (zh) * 2009-06-30 2015-07-01 美光科技公司 存储存储器重映射信息的非易失性存储器
CN102866955A (zh) * 2012-09-14 2013-01-09 记忆科技(深圳)有限公司 一种闪存数据管理方法及系统

Also Published As

Publication number Publication date
EP1416389A3 (en) 2006-11-02
US20040083348A1 (en) 2004-04-29
KR100901551B1 (ko) 2009-06-08
US7174440B2 (en) 2007-02-06
EP1416389A2 (en) 2004-05-06
KR20040038708A (ko) 2004-05-08
JP2004152302A (ja) 2004-05-27
CN1329842C (zh) 2007-08-01

Similar Documents

Publication Publication Date Title
CN1504896A (zh) 在非易失性存储器系统中执行块高速缓冲存储的方法和装置
US7254668B1 (en) Method and apparatus for grouping pages within a block
EP1561168B1 (en) Method and apparatus for splitting a logical block
US20200097403A1 (en) Recency based victim block selection for garbage collection in a solid state device (ssd)
US8099545B2 (en) Wear leveling in storage devices based on flash memories and related circuit, system, and method
CN102831070B (zh) 用于存储器装置的存储地址重新映射的方法和系统
US20070150694A1 (en) Hybrid Mapping Implementation Within a Non-Volatile Memory System
JP4977703B2 (ja) 予定再生操作を伴う不揮発性メモリ
CN1701389A (zh) 维持非易失性存储系统中的平均擦除计数
CN1924831A (zh) 非易失性存储器系统及操作非易失性存储器系统的方法
CN1701308A (zh) 维护非易失性存储系统中的擦除计数
CN1720590A (zh) 非易失性存储系统中的自动磨损平衡
CN1701390A (zh) 跟踪非易失性存储器系统中最频繁擦除区块
CN1701307A (zh) 管理擦除计数区块的方法和设备
CN1701309A (zh) 非易失性存储系统中的损耗平衡
CN1698036A (zh) 跟踪非易失性存储器系统中最不频繁擦除区块
CN1700188A (zh) 用于控制非易失性存储器的控制器
US20120311238A1 (en) Memory apparatus
CN1947100A (zh) 非易失性存储系统、非易失性存储装置、存储控制器、存取装置以及非易失性存储装置的控制方法
CN1538456A (zh) 闪存存取装置及方法
CN1652088A (zh) 用于闪速存储器的数据管理设备和方法
JP2006085342A (ja) メモリ制御装置、メモリ制御方法、プログラム
CN1701300A (zh) 用于分解与一共用逻辑块相关联的物理块的方法和设备
CN1967505A (zh) 信息处理装置、图像摄取装置、信息处理方法及计算机程序
TW202437120A (zh) 借助表分析來進行預定通訊架構中的記憶體裝置的映射表管理的方法、記憶體裝置的記憶體控制器、記憶體裝置以及電子裝置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: SANDISK TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: SANDISK CORP.

Effective date: 20120322

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120322

Address after: American Texas

Patentee after: Sandisk Corp.

Address before: American California

Patentee before: Sandisk Corp.

C56 Change in the name or address of the patentee

Owner name: SANDISK TECHNOLOGY CO., LTD.

Free format text: FORMER NAME: SANDISK TECHNOLOGIES, INC.

CP01 Change in the name or title of a patent holder

Address after: American Texas

Patentee after: Sandisk Corp.

Address before: American Texas

Patentee before: Sandisk Corp.

C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: American Texas

Patentee after: DELPHI INT OPERATIONS LUX SRL

Address before: American Texas

Patentee before: Sandisk Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070801

Termination date: 20201028