CN101263462B - 具有区块管理的非易失性存储器 - Google Patents

具有区块管理的非易失性存储器 Download PDF

Info

Publication number
CN101263462B
CN101263462B CN2006800335884A CN200680033588A CN101263462B CN 101263462 B CN101263462 B CN 101263462B CN 2006800335884 A CN2006800335884 A CN 2006800335884A CN 200680033588 A CN200680033588 A CN 200680033588A CN 101263462 B CN101263462 B CN 101263462B
Authority
CN
China
Prior art keywords
block
page
record
blocks
catalogue
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.)
Active
Application number
CN2006800335884A
Other languages
English (en)
Other versions
CN101263462A (zh
Inventor
艾伦·W·辛克莱
巴里·赖特
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
Priority claimed from US11/459,268 external-priority patent/US7558906B2/en
Priority claimed from US11/459,260 external-priority patent/US7552271B2/en
Application filed by SanDisk Corp filed Critical SanDisk Corp
Publication of CN101263462A publication Critical patent/CN101263462A/zh
Application granted granted Critical
Publication of CN101263462B publication Critical patent/CN101263462B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/7202Allocation control and policies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

在包含区块可擦除存储器阵列的非易失性存储器系统中,单独地针对某些区块分类维持记录。可针对所述区块维持一个或一个以上列表,其中根据描述符值对各个列表进行排序。此类经排序的列表允许通过描述符值快速识别区块。

Description

具有区块管理的非易失性存储器
技术领域
本申请案涉及例如半导体快闪存储器等可重新编程非易失性存储器系统的操作,且更明确地说,涉及对存储器阵列的可单独擦除区块的管理。
背景技术
存在两种用于寻址通过主机系统、存储器系统和其它电子系统的外部接口传送的数据的主要技术。其中之一是,将系统所产生或接收的数据文件的地址依据数据的逻辑区块映射到针对所述系统建立的连续逻辑地址空间的不同范围中(下文称为“LBA接口”)。地址空间的范围通常足以覆盖系统能够处理的地址的完全范围。在一个实例中,磁盘存储装置驱动器通过此逻辑地址空间与计算机或其它主机系统通信。此地址空间的范围足以寻址磁盘驱动器的整个数据存储容量。
快闪存储器系统最普遍地以存储器卡或快闪驱动器的形式提供,所述存储器卡或快闪驱动器可移除地与例如个人计算机、相机等多种主机连接,但也可嵌入在此类主机系统内。当将数据写入到存储器时,主机通常向存储器系统的连续虚拟地址空间内的扇区、群集或其它数据单位分派唯一逻辑地址。与磁盘操作系统(DOS)一样,主机将数据写入到存储器系统的逻辑地址空间内的地址,并从所述地址读取数据。存储器系统内的控制器将从主机接收的逻辑地址转译成存储器阵列内的物理地址,数据实际上被存储在所述物理地址处,且控制器接着跟踪这些地址转译。存储器系统的数据存储容量至少与针对存储器系统界定的整个逻辑地址空间上可寻址的数据量一样大。
在当前商业快闪存储器系统中,擦除单位的大小已经增加到具有足以存储多个数据扇区的存储器单元的区块。事实上,许多数据页存储在一个区块中,且一页可存储多个数据扇区。此外,两个或两个以上区块通常作为元区块来一起操作,且此类区块的页作为元页而在逻辑上链接在一起。数据页或元页被一起写入和读取,其可包含许多数据扇区,因此增加了操作的并行性。此类大容量操作单位带来了对其进行有效操作的挑战。
为了便于解释,除非另有规定,否则希望本文使用的术语“区块”指代区块擦除单位或多区块“元区块”,这取决于具体系统中是否正使用元区块。类似地,本文中参考“页”可指代单个区块内的编程单位或元区块内的“元页”,这取决于系统配置。
当使用针对存储器系统的当前流行LBA接口时,向由存储器所连接的主机产生的文件分派接口的逻辑地址空间内的唯一地址。存储器系统接着通常在逻辑地址空间与存储器的物理区块的页之间映射数据。存储器系统跟踪如何将逻辑地址空间映射到物理存储器中,但主机并不意识到这点。主机跟踪其数据文件在逻辑地址空间内的地址,但存储器系统在极少了解或不了解此映射的情况下进行操作。
在所使用的两种系统接口技术的第二种技术中,电子系统所产生或接收的数据文件被唯一地识别,且其数据由在文件内的偏移量逻辑寻址。这种寻址方法的一种形式用于计算机或其它主机系统与称为“智能卡”的可移除存储器卡之间。智能卡通常由消费者用于身份识别、银行业务、销售点购买、ATM访问等,且与快闪存储器卡和快闪驱动器相比,含有少量存储器。
在上文交叉参考的专利申请案中,在大容量存储快闪存储器系统中通过由主机分派的文件名来识别数据文件,且通过文件内的偏移地址来存取文件的数据(下文称为“直接数据文件接口”)。于是,存储器系统知道每一扇区或其它数据单位所属的主机文件。本文所论述的文件单位是例如通过具有循序逻辑偏移地址而排序的一组数据,且其通过在存储器系统所连接的主机计算系统中操作的应用程序创建并唯一地识别。
上文参考的四个实用新型专利申请案(第11/382,224号、第11/382228号、第11/382,232号、第11/382,235号申请案)描述了其中维持区块列表以供在存储器系统的操作期间进行存取的技术。所述列表上的各个条目包含存储器区块的参数及其地址。可根据列表所涉及的区块的物理地址或条目内所记录的区块参数的值来选择列表内的条目。本描述内容涉及将一个或一个以上数据区块列表存储在快闪存储器中的指定区块内,并基于条目内的字段的信息内容来存取列表中的具体条目。
所述技术使用指定区块中的一些逻辑页来存储含有两个或两个以上列表上的所有区块的信息的未排序记录。其它页用于仅含有区块的内容可寻址参数的条目的列表和对于区块的全部记录的指针。这些列表中的条目按参数值的次序进行存储,且可快速存取具有具体参数值的条目。所述列表充当一种形式的针对区块的未排序记录的目录。
在区块可擦除非易失性存储器中,在各个区块和其所含有的数据上维持最新信息实现有效的存储器管理。在区块含有一个或一个以上文件的有效数据、废弃数据和已擦除空间的混合的情况下,这可能会相当复杂。然而,通过以逐区块的方式跟踪此数据,可有效地执行某些存储器系统操作,尤其是存储器阵列中未用空间的恢复。未用空间(含有废弃数据的空间或不可用的已擦除空间)的恢复以逐区块的方式进行(其中区块是擦除单位)。需要以有效方式对区块执行区块恢复操作,以减少有效数据的复制。为了确定区块恢复的次序,有用的是以一个或一个以上描述符值的次序对区块进行分级,其中描述符值描述区块中所存储的数据的至少一个方面。举例来说,可通过区块所含有的有效数据量对区块进行排序,使得可快速识别出含有最少量有效数据的那些区块以首先进行恢复。
发明内容
在第一实例中,针对存储器阵列中的多种区块维持记录,但不必是针对所有区块。根据区块是否含有已擦除空间(部分区块),且如果不是的话,根据其是否含有废弃数据(废弃区块),来对含有有效数据的区块进行分类。对仅具有废弃数据的区块(无效区块)和仅含有已擦除空间的区块(已擦除区块)单独进行分类。针对具有这些分类之一的每一区块维持记录。在专用记录区块中维持记录。另外,一个分类中的区块罗列在通过描述符值排序的列表中。描述符值可以是区块中的有效数据量、区块的地址或某一其它描述符值。在第一实例中,列表条目含有针对相应记录的指针。
在第二实例中,也针对各种分类中的区块维持记录。针对含有一个以上文件的数据且不含有废弃数据或已擦除空间的区块添加分类“完整共用区块”。在专用记录区块的专用记录页中维持记录。记录可含有关于相应区块的多种信息,包含其区块地址、其所含有的有效数据量、写入指针的位置等。
提供目录以允许快速找到各个记录。所述目录中的条目识别记录页和相应记录在所述记录页中的位置。目录维持在目录区块的专用目录页中,其中通过区块地址对目录条目进行排序。目录页含有非重叠区块地址范围。一个目录页可含有针对一个以上记录页的指针。然而,记录页仅含有由一个目录页的条目指向的记录。因此,当记录页中的记录受到更新时,仅需要更新一个目录页。
目录区块还可含有一个或一个以上列表。列表中的条目含有区块地址和描述符值,且列表中的条目通过描述符值排序。示范性描述符值是区块中的有效数据量。列表提供一种用以基于区块中的数据出于恢复或其它目的而选择区块的便利方式。举例来说,具有最少量有效数据的废弃区块是使用有效数据量作为描述符值的废弃区块列表中的第一条目。可从列表中快速识别出此区块以进行恢复,使得列表提供用于恢复操作的队列。在其它实例中,可寻求具有特定描述符值的区块。可通过对适当列表页执行对分搜索来快速识别此区块。
在第三实例中,始终针对非易失性存储器阵列中的每一区块维持记录。在此情况下,目录页含有固定区块地址范围的条目,其中通过区块地址对条目进行循序排序。因为这提供在目录页内处于预定偏移量处的特定区块的条目,所以条目不必含有其所涉及的区块的区块地址。
尽管本文描述与用快闪数据文件接口操作的快闪存储器一起使用的管理和存取列表的技术,但这些技术还可在不同应用中与其它类型的列表一起使用。
附图说明
图1展示根据第一实例的区块分类的表。
图2展示根据第一实例的记录区块的页。
图3展示图2的记录区块的各个页的详细视图。
图4展示根据第二实例的区块分类表。
图5展示指向区块记录区块中的相应区块记录的区块目录区块中的区块目录条目。
图6展示目录区块的页结构的某些细节。
图7A展示图6的区块目录页的结构,其包含记录索引和目录索引。
图7B展示图6的废弃区块列表页的结构。
图8展示记录区块的页结构的某些细节。
图9更详细展示图8的记录页的结构。
图10展示经历区块记录更新的目录区块和记录区块以及相关结构。
具体实施方式
详细的第一实例
上文指出的专利申请案中描述的直接数据文件存储技术创建区块列表,从所述区块列表中选择与各个区块的使用有关的具有预定义值的条目。本文使用用于对这些区块列表的内容可寻址搜索的技术。此描述内容参看附图1到3。
图1是展示基于区块内容的存储器单元区块分类的表。实际上,将如图所示对存储器系统中的所有区块进行分类。此实例中维持三个单独列表:一个用于部分区块,另一个用于废弃区块,且第三个用于已擦除区块。
此实例中认可的区块类型如下:
“编程区块”已经被部分编程,且含有仅单个文件的有效数据。一些已擦除容量剩余在所述区块中。其还可含有一些废弃数据。
“共用区块”已经被部分编程,且含有两个或两个以上文件的有效数据。一些已擦除容量剩余。其还可含有一些废弃数据。
“满共用区块”已经被完全编程,且含有两个或两个以上文件的有效数据。其还可含有一些废弃数据。
“文件区块”已经被完全编程,且含有单个文件的有效数据。其还可含有一些废弃数据。
“无效区块”不含有有效数据。无效区块含有至少一些废弃数据且可含有已擦除容量但不含有任何有效数据。
“已擦除区块”,其中区块的全部容量未经编程且可用于接受数据。已擦除区块中不存在数据。当存储器充满或几乎充满数据时,通常通过连续恢复正被使用的区块内存在的未用容量来维持具有规定的最小数目的已擦除区块的集区。
出于本实例的目的,将具有以上类型的区块分类成三种分类,如下:
“部分区块”含有一些未编程容量、一个或一个以上文件的有效数据,且可含有一些废弃数据。编程区块和共用区块是部分区块的实例。
“废弃区块”是含有一些废弃数据的文件区块或满共用区块。废弃区块不含有任何已擦除容量,且含有有效和废弃数据两者。
“已擦除区块”具有与相同名称的区块类型相同的定义,是没有数据的区块。
将注意到,这些分类不涵盖存储器阵列中的所有区块,一些区块可能处于这些分类之外,且此类区块不出现在本实例的列表中。
当选择区块以恢复存储容量时,区块中的有效数据量(有效数据容量)是主要因素。由于对区块的恢复操作需要将其有效数据复制到另一区块,所以首先选择具有最少量有效数据的那些区块。这是因为数据复制耗费时间且可能干扰存储器系统编程和读取数据的有效操作。与此稍许相反的是,保留其容量的较大比例为已擦除且可用于存储数据的区块的益处。因此,具有较多可用已擦除存储容量的区块不利于进行恢复操作,因为通过对其进行恢复将产生的存储空间增加较少。此特定实例的部分和废弃区块列表用于基于区块所含有的有效数据量(页数目)和保持已擦除的量(页数目)而对区块进行分类。本文描述的这些列表的用途是一次选择一个区块来经受恢复操作。
区块列表的类型和存取
部分区块列表(P列表)含有针对系统中每个部分区块的条目;也就是说,针对含有一些有效数据和一些已擦除容量两者的每个区块的条目。其还可含有一些废弃数据。
废弃区块列表(O列表)含有针对系统中含有废弃数据的每个区块的条目,其不具有部分区块列表中的条目。
已擦除区块列表(E列表)含有针对系统中每个已擦除区块的条目。
在快闪存储器操作的具体实例中,维持以下区块列表:
P(V)列表具有根据区块中所存储的有效数据容量排序的条目的部分区块列表;
P(A)列表具有根据区块的区块地址排序的条目的部分区块列表;
O(V)列表具有根据区块中所存储的有效数据容量排序的条目的废弃区块列表;
O(A)列表具有根据区块的区块地址排序的条目的废弃区块列表;以及
E列表已擦除区块列表。
P(V)列表、O(V)列表、P(A)列表和O(A)列表充当针对一组共用区块记录的“目录”。为了选择恢复区块,从P(V)列表和O(V)列表中读取具有最低有效数据容量值的条目。为了选择现用区块,从P(V)列表中读取具有小于或等于目标值的最高有效数据容量值的条目。为了选择已擦除区块,从E列表中读取并移除所述列表上的第一条目。
为了更新P列表或O列表中的条目,从P(A)列表或O(A)列表中读取具有目标区块地址的条目。
区块列表的存储技术
分配一个或一个以上区块或元区块用于存储与紧接前一部分中指出的区块列表上的区块有关的信息。这些区块或元区块称为记录区块,且以一个页为单位进行写入或更新。针对记录区块中的信息使用内容寻址。
每一记录区块含有固定数目的逻辑页,其每一者可通过将其重新写入到下一可用物理页而进行更新。分配多个逻辑页以存储含有列表中的区块的信息的记录。这些逻辑页称为记录页。
在区块列表中针对每个区块存在记录。记录页和记录页内的记录可以呈任何次序。不同区块列表中的区块记录不需要保持分离。废弃记录可存在于记录页内,且可由已经添加到区块列表的新区块记录替换。记录含有区块的物理地址和界定区块内的有效数据量(有效数据容量)的值,以及其它信息。
分配一个或一个以上逻辑页以存储识别各个区块列表中的一者内的区块的条目。这些逻辑页称为列表页。单独的列表页用于不同的区块列表。列表页中的每一条目含有:描述符值,其是条目所涉及的区块的物理地址或区块内的有效数据容量的值(或与区块中的数据相关联的其它某值);以及针对记录页中的区块记录的指针。如果记录所涉及的区块出现在两个区块列表中,那么每一者处于不同区块列表的不同列表页中的两个列表条目可指向同一记录。
区块列表中的条目充当针对一组共用区块记录的“目录条目”。
部分区块列表或废弃区块列表的列表页中的条目按其描述符的次序进行存储。以紧密填充的格式写入条目,其中列表页中的未写入条目位置通常存在于上一被写入的条目之后。列表页存储非重叠范围的描述符。如果列表页变满,那么可通过分配新的逻辑页作为列表页而将其条目划分到两个列表页中。类似地,如果具有邻近的描述符范围的两个列表页中的条目数目下降到阈值以下,那么可将所述两个列表页组合为一个列表页。记录区块的索引含有针对每一列表页的第一条目的描述符。
可通过依据记录区块索引识别具有适当描述符范围的列表页,从快闪中读取所述页,接着在所述页内执行线性或对分搜索以寻找目标条目,来找到部分区块列表或废弃区块列表中具有区块地址或有效数据容量的目标值的条目。接着可从通过此条目识别的记录页中读取目标区块的记录。
已擦除区块列表中的区块条目可存储在列表页中,其在列表页中保持其被写入的次序。已擦除区块始终被选择作为列表中的最旧条目。
记录区块的结构
区块列表中所提及的区块的所有条目和索引信息包含在快闪存储器中的一个或一个以上记录区块中。记录区块是元区块且以页为单位进行更新。
记录区块具有以下特性:
1.所有类型的区块列表可一起存储在单个记录区块中。
2.在需要时,可使用多个记录区块。
3.记录区块具有规定数目的逻辑页,在本实例中所述数目定义为区块中的物理页数目的25%。
4.最新近写入页中的记录区块索引部分提供针对每一逻辑页到物理页的映射。
5.可通过将逻辑页重新写入到下一可用物理页来更新所述逻辑页。
6.逻辑页可分配到用于区块列表或用于区块记录的任何页类型。
7.记录区块在已满时被压缩并重新写入在已擦除区块中。
图2中展示实例性记录区块的结构。
记录区块索引
记录区块索引作为每一页的一部分而存在于记录区块中。其仅在最新近写入页中有效。记录区块索引针对每一可能逻辑页含有条目,其根据逻辑页编号排序。每一条目具有3个字段,如下:
1.识别页类型的数字代码:
a.P(V)列表页;
b.P(A)列表页;
c.O(V)列表页;
d.O(A)列表页;
e.E列表页;
f.记录页;以及
g.未分配逻辑页。
2.页中第一条目中的值。这允许建立和高速缓存P(V)、P(A)、O(V)和O(A)列表页类型的每一者中的值范围。
3.针对逻辑页所映射到的物理页的指针。
记录页
记录含有与具有所述列表之一的条目的区块有关的所有所需信息,且存储在记录页中。记录页被细分为三个部分,如下:
1.条目状态;
2.记录;以及
3.共用区块记录。
条目状态部分包括位图,其指示每一记录正在使用,还是可用于分配到新的区块。记录部分具有列表中每个区块的固定大小的条目,其中字段界定其属性,如下:
1.区块地址;
2.区块中有效数据容量;
3.区块中页写入指针的位置;
4.区块中第一数据群组的文件ID;
5.区块中针对其存在数据的文件的总数目;以及
6.针对区块存在的任何共用区块记录的偏移量。值0表示不存在共用区块记录。
共用区块记录部分拥有具有可变大小的条目,其中字段界定共用区块中的其它文件ID,如下:
1.共用区块中的每一后续数据群组的文件ID;以及
2.记录结束指示符。
记录页可含有由于从区块列表中移除区块而产生的废弃条目。此记录可重新分配到添加到列表的新区块。
分配到区块的处于记录区块内的逻辑页编号和处于所述页内的记录编号通常不改变,因为其由列表页用来提及所述记录。然而,可允许将区块的记录移动到同一列表页内的另一记录编号,移动到另一列表页,或移动到另一记录区块。如果移动区块的记录,那么必须相应地更新任何列表条目中针对其的指针。
当修改并重新写入记录页时,可压缩共用区块记录以消除任何废弃空间,并更新所述记录以反映共用区块记录的偏移量中的任何变化。
记录与共用区块记录之间的分界是动态的。
图3中展示实例性区块记录页的结构。
列表页
列表页含有呈通过描述符值界定的次序的一组区块条目。有效数据容量是P(V)列表和O(V)列表中的条目中的描述符,且区块地址是P(A)列表和O(A)列表中的条目中的描述符。
有效条目在列表页中占据一组连续条目位置,但不需要填满整个页。所述组内不存在废弃条目,且描述符值不需要是连续的。
列表页中的条目按照其描述符字段中的值的次序。描述符值的范围不与其它任何列表页中的描述符值的范围重叠。
当需要插入针对已经添加到区块列表的区块的条目时,识别具有包含新区块的描述符值的描述符范围的列表页。将新的条目插入在描述符范围中的适当位置处,且重新写入列表页。当必须移除条目时,在没有所述条目的情况下压缩列表页并将其重新写入。
当必须对已经变满的列表页进行添加时,分配空的逻辑页作为新的列表页,且将满列表页的描述符范围划分为两个近似相等的非重叠范围,其被写入在两个可用列表页中。
当具有邻近的描述符范围的两个列表页中的有效条目总数下降到低于阈值(在此实例中,列表页中的条目位置数目的70%)时,合并所述两个列表页的范围并将其写入在所述两个列表页的一者中。于是,另一未使用的页变成空的逻辑页。
P(V)列表和O(V)列表的列表页中的条目中的字段如下:
1.区块中的有效数据容量;以及
2.针对记录页中的区块记录的指针。记录页不需要处于与列表页相同的记录区块中。
P(A)列表和O(A)列表的列表页中的条目中的字段如下:
1.区块地址;以及
2.针对记录页中的区块记录的指针。记录页不需要处于与列表页相同的记录区块中。
E列表的列表页中的条目中的字段如下:
1.区块地址。
记录的存取序列
以下步骤序列用于存取P列表或O列表中的目标区块的记录。
1.将P(V)列表、O(V)列表、P(A)列表或O(A)列表界定为目标列表。
2.从记录区块的最新近写入页中读取记录区块索引。此信息可能已经存在于高速缓冲存储器中。
3.针对步骤1中所界定的目标列表中的目标描述符值确定分配到列表页的逻辑页编号。
4.从记录区块中读取步骤3中所确定的逻辑页编号。
5.搜索步骤4中所读取的列表页以读取针对目标区块的条目。
6.根据步骤5中所读取的条目界定而从记录区块中读取记录页。
7.从步骤6中所读取的记录页中读取针对目标区块的记录。
详细的第二实例
在第二实例中,如同在上文描述的第一实例中一样,根据区块所含有的数据来对某些区块单独地进行分类,并针对这些区块维持记录。维持根据与区块中所存储的数据有关的描述符值排序的列表。区块中的有效数据量是此类描述符值的实例。然而,在此第二实例中,用于管理区块的结构和方法中的一些有所不同。第一和第二实例的结构和方法应当视为替代性方案,其中来自所述两个实例的结构和/或技术的各种组合也视为本发明的一部分。第二实例的描述集中在与第一实例的差别。因此,可能不再相对于第二实例详细描述所述两个实例所共用的元件。
第二实例中的区块分类与第一实例的区块分类相同,其中添加了“完整共用区块”分类。图4展示与图1的区块分类表类似的区块分类表,不同之处只是存在额外分类“完整共用区块”。针对具有区块分类“部分区块”、“废弃区块”、“已擦除区块”或“完整共用区块”的每一区块维持记录条目。分类“完整共用区块”用于不含有任何已擦除容量且不含有任何废弃数据的共用区块。以针对每个完整共用区块的区块记录维持完整共用区块(CCB)记录。完整共用区块通常不经受恢复操作,因为其不含有可用于恢复的空间(既不含有已擦除空间,也不含有废弃空间)。然而,当完整共用区块中的一些数据变成废弃的时,区块被重新分类为废弃区块,且可经受恢复操作。当此重新分类发生时,需要含有关于区块中所存储的数据的信息的区块记录。此信息可从区块的先前存在的CCB记录条目中获得。因此,通过维持关于完整共用区块的记录,可在没有搜索用以产生区块记录的信息的沉重负担的情况下发生从完整共用区块到废弃区块的转变。
图1和图4的分类方案是示范性的且还预期其它方案。在一个实例(稍后详细论述)中,可始终针对存储器阵列中的所有区块维持记录。因此,可针对不具有废弃数据的文件区块而向图4的表添加额外区块分类。在其它实例中,可能不需要图4的一些分类。举例来说,可能不会针对已擦除区块或无效区块维持记录。在另外其它实例中,区块可划分为与图4的区块类型不同的区块类型。将了解,图4的区块类型便于特定存储器管理方案,但其它存储器管理方案可使用不同的区块类型。
在图4的表中罗列的一个区块分类中针对每个区块维持记录。针对具有不同区块分类的区块的记录可一起存储在同一页中。在本实例中,维持专用区块记录区块,其仅存储区块记录。为了有助于存取记录区块中的各个记录条目,维持区块目录。区块目录和区块记录存储在快闪存储器中的单独区块组中(这与第一实例不同,在第一实例中单个区块可含有区块目录和区块记录页两者)。图5展示目录区块503中包含针对区块记录区块509中的相应区块记录507的位置的指针505的区块目录条目501。区块目录条目501还含有区块地址506。
区块目录针对在区块记录中存在条目的每一区块含有一个区块目录条目。区块目录条目存储在区块地址值的非重叠范围中,其中每一范围分配到单独的区块目录页。一范围内的条目根据区块地址值进行排序。可通过读取单个区块目录页并在所述页内执行对分搜索来找到针对目标区块地址的区块目录条目。因此,区块目录提供用以根据区块地址来定位特定区块记录条目的便利方式。
在一些应用中,需要依据除区块地址以外的标准来搜索区块。在一些情况下,与区块中所存储的数据相关联的描述符值可用于此搜索。举例来说,出于恢复目的,可能需要识别具有最少量有效数据的部分区块。一种用以查找此区块的方式将是,搜索所有区块的记录条目以确定哪个区块含有最少量有效数据。然而,此类搜索可增加显著负担。替代性方案是,维持根据区块所含有的有效数据量(有效数据容量)排序的区块列表。因此,在以区块所含有的有效数据量的次序罗列区块的情况下,识别具有最少量有效数据的区块只是读取列表中的第一(或最后)条目。类似地,如果需要具有特定量有效数据的区块,那么对分搜索可快速识别此区块。区块中所存储的有效数据量由列表条目中的描述符值给定。此描述符值描述区块中所存储的数据。这与区块地址(在第一实例中用作描述符值)不同,区块地址描述区块的物理位置。
提供并入有两阶段搜索过程的机制来根据记录中针对区块中有效数据量的字段内所界定的描述符值而存取区块记录。用于可使用这种内容寻址机制的区块分类的含有有效数据容量值的条目存储在区块目录中的单独列表页中。这些区块列表条目存储在有效数据容量值的非重叠范围中,其中每一范围分配到单独的区块列表页。一范围内的条目根据其有效数据容量值进行排序。每一区块列表条目含有区块地址,其明确地识别区块目录条目。区块列表条目511含有区块地址513,其与区块地址506相同并借此识别区块目录条目501。区块列表条目511还含有具有区块地址513的区块的有效数据容量515。可通过读取单个列表页并在所述页内执行对分搜索以查找具有目标有效数据容量值的条目,且接着读取单个目录页并在所述目录页内执行对分搜索以查找具有目标区块地址的条目,来找到针对目标有效数据容量值的区块目录条目。
对分搜索可能只是意指查看处于页的描述符值范围的中部处的条目。基于此条目的描述符值与正寻求的描述符值的比较,所述搜索限于半页。接着类似地检查处于此半页的中点处的条目,且所述搜索限于四分之一页。在进行连续步骤之后,找到具有所寻求的描述符值的一个或一个以上条目。在其它实例中,可使用较复杂的对分搜索算法。在一些实例中,不需要对分搜索,因为所寻求的描述符值是列表中最低(或最高)的。因此,选择列表中的第一(或最后)条目。
通过区块目录中的条目直接寻址区块记录。通过读取/修改/写入操作来更新区块记录页,所述操作将页移动到同一或另一区块记录区块中的未编程位置。一页中的区块记录必须全部与同一区块目录页中的条目有关。然而,一个目录页可含有一个以上区块记录页的条目。因此,可更新区块记录页,因而需要仅修改单个区块目录页。
区块目录
区块目录是通过区块地址识别区块并指示相应区块记录的位置的条目的有序集合。条目存在于维持区块记录所针对的每一区块的区块目录中。在本实例中,针对每一部分区块、废弃区块、完整共用区块和已擦除区块存在一条目。区块条目包含在一个或一个以上目录区块中。
图6展示含有废弃区块和部分区块列表页的目录区块621。图6还展示目录区块中的目录页。每一目录区块含有固定数目的逻辑页,其每一者可通过将其重新写入到下一可用物理页而进行更新。向含有有效条目的页分配逻辑页编号。在本实例中,目录区块中的逻辑页数目被规定为区块中的物理页数目的25%。在其它实例中,可规定其它界限。在已经写入目录区块的最后页之后,通过将所有有效页写入到已擦除区块并擦除原始目录区块来压缩所述区块。
区块目录页
区块目录页含有呈其区块地址值的次序的一组区块目录条目。图7A中展示区块目录页731的实例。有效区块目录条目733在区块目录页731中占据一组连续条目位置,但不需要填满整个页,使得可剩余已擦除空间。每一区块目录页含有记录索引(下文描述)。此处,区块目录页731含有记录索引735。区块目录条目733内不存在废弃条目,且区块地址值不需要是连续的。区块目录页中的区块地址值的范围不与其它任何区块目录页中的区块地址值的范围重叠。
当需要插入区块的条目时,根据目录索引中的信息识别具有包含新区块的区块地址值的区块地址范围的区块目录页。将新的条目插入在区块地址范围中的适当位置处,且重新写入区块目录页。当必须移除条目时,在没有所述条目的情况下压缩区块目录页并将其重新写入。
当必须对已经变满的区块目录页进行添加时,分配空的逻辑页作为新的区块目录页,且将已经变满的区块目录页的区块地址范围划分为两个近似相等的非重叠范围,所述非重叠范围被写入在两个可用区块目录页中。
当具有邻近的区块地址范围的两个区块目录页中的有效条目总数下降到低于阈值(在此实例中,一个区块目录页中的条目位置数目的70%)时,合并所述两个区块目录页的范围并将其写入在所述两个区块目录页的一者中。于是,另一未使用的页变成空的逻辑页。
在此实例中,区块目录条目737含有两个字段:(1)区块地址;(2)针对相应区块记录的指针。所述指针识别区块记录页的逻辑识别符和特定区块记录在页内的字节偏移量。区块记录页逻辑识别符识别可由相同区块目录页中的条目提及的多达16个单独区块记录页中的一者。其通过含有所述条目的区块目录页内的记录索引字段转换成物理区块地址和页编号。字节偏移量识别区块记录在所识别的区块记录页内的位置。
单独的有效记录索引字段存在于每一有效区块目录页和区块列表页中。其用于将区块记录页的逻辑识别符转换成区块记录页所位于的物理区块地址和页编号。记录索引735针对区块目录页731中的任何条目内使用的每一逻辑识别符含有一个条目(例如,条目739)。最多16个单独区块记录页可由单个区块目录页中的区块目录条目提及。因此,使用4位逻辑识别符。以此方式,各个区块目录条目可使用4位识别符,而不是相应区块记录页的较长物理页位置。记录索引字段用以转译区块目录页中所有条目的这些逻辑识别符。
有效的目录索引字段741仅存在于最新近写入的区块目录或区块列表页中。所有先前写入页中的目录索引字段中的信息均为废弃的。其用途是支持区块目录条目和区块列表条目的排序以及逻辑页到物理页的映射。其提供存储关于区块目录区块中的各个页的当前数据的结构。目录索引针对每一可能逻辑页含有一条目(例如,条目743),其根据逻辑页编号排序。每一条目具有四个字段:
(1)逻辑页的分配状态旗标。
(2)页的类型,例如区块目录、PB列表或OB列表。
(3)区块目录页中第一条目的区块地址或列表页(PB或OB)中第一条目的有效数据容量值。这允许建立和高速缓存每一逻辑页中的区块地址或有效数据值的范围。
(4)针对逻辑页所映射到的区块目录内的物理页的指针。
区块列表页
区块列表页含有呈描述区块所含有的数据(例如,区块所含有的有效数据量)的描述符值的次序的针对单个区块分类的一组区块列表条目。图7B中展示区块列表页751的实例。在本实例中,区块列表页可以是PB列表页或OB列表页。图7B展示OB列表页751。有效区块列表条目753可在区块列表页751中占据一组连续条目位置,但不需要填满整个页。区块列表页中通常不存在废弃条目。区块列表条目753通过描述符值进行排序,但描述符值不需要是连续的且可以是重复的。在本实例中,有效数据容量值不需要是连续的且可以是重复的。区块列表页的描述符值范围不与相同区块分类的其它任何区块列表页的描述符值范围重叠。
尽管有效数据容量是本实例中所使用的描述符值,但也可使用其它描述符值。举例来说,区块中的已擦除容量的量可用作描述符值。描述符值可从有效数据量与已擦除容量的量的组合中导出,使得以进行恢复所需的次序罗列区块。在一些情况下,列表可重叠。因此,相同区块可出现在两个不同列表中。举例来说,可依据区块所含有的有效数据量以及(在单独列表中)依据区块所含有的已擦除空间量两者来罗列区块。
当需要插入区块的条目时,根据目录索引中的信息识别具有包含新区块的有效数据容量值的有效数据容量范围的区块列表页。重新写入区块列表页,其中将新的条目根据其有效数据容量值插入在所述页中的适当位置处。当必须移除条目时,在没有所述条目的情况下将区块列表页重新写入在新的物理位置中。
当必须对已经变满的区块列表页进行添加时,分配空的逻辑页作为新的区块列表页,且将已经变满的区块列表页的有效数据范围划分为两个近似相等的非重叠范围,所述非重叠范围被写入在两个可用区块列表页中。
当具有邻近范围的两个区块列表页中的有效条目总数下降到低于预定阈值量(例如,一个区块列表页中的条目位置数目的70%)时,合并所述两个区块列表页的范围并将其写入在所述两个区块列表页的一者中。于是,另一未使用的页变成空的逻辑页。
区块列表条目755含有两个字段:(1)区块地址;(2)描述符值,在此实例中是指示区块中的有效数据量的值。与第一实例不同,不存在依据区块地址排序的列表(但目录是依据区块地址排序的)。在本实例中,列表包含从中找到目录条目的区块地址,所述目录条目又指示相应记录的位置。因此,在此实例中,列表条目753不直接指示记录。区块列表可含有目录索引,但只有最新近写入的页才含有有效目录索引。图7B的OB列表页含有废弃目录索引757。
区块记录
区块记录是记录的集合,每一记录含有通过区块地址识别的区块信息。针对每一区块目录条目存在一个记录。区块记录通过区块目录条目寻址,且当修改区块记录页时,必须修改区块目录页。
区块记录包含在一个或一个以上专用记录区块(例如图8所示的记录区块861)中。与第一实例不同,区块列表和区块记录不一起存储在同一区块中。只有一个区块记录区块可含有可将区块记录写入到其中的未编程页。所有区块记录信息被编程在此区块中的下一未编程页位置处,所述下一未编程页位置通过区块记录写入指针来识别。当已经编程了区块中的最后页时,将区块记录写入指针移动到已擦除区块的第一页。区块记录区块可含有由于已经重新写入区块记录页而产生的废弃页。在一些实施例中,有效区块记录页不含有废弃记录,因为每当页中的记录变成废弃的时就重新写入区块记录页。在其它实施例中,废弃记录可保留在有效区块记录页中。然而,废弃记录的目录条目被删除或用指向有效记录的条目替代,使得废弃记录不被存取。当重新写入记录页时,不复制所述记录页中的废弃记录。
区块记录页含有由单个区块目录页内的区块目录条目提及的一组区块记录,其次序与区块目录页中的条目相同。图9展示区块记录页965的实例。区块目录页可提及多个区块记录页。可进行区块记录页的修改,因此需要仅修改单个区块目录页。与第一实例不同,根据本实例的区块记录页不包含区块记录索引,因为区块记录页直接由区块目录条目识别。
可通过读取区块记录页、接着更新或添加一个或一个以上区块记录来修改区块记录页。通过压缩所述页来移除任何废弃区块记录,且将所述页编程在区块记录写入指针所识别的位置处。
区块记录页标头存储对于区块记录页所关联的区块目录页的提及,以及区块记录页内的区块记录信息的长度。区块记录页标头还存储区块记录页被写入时区块记录区块的每一者中存在的废弃页数目的记录。此信息只有在最新近写入的区块记录页标头中才有效。
各个区块记录条目具有可变大小。因此,完整共用区块的记录可能大于已擦除区块的记录。与第一实例不同,不需要单独的共用区块记录区域。本实例的记录区块具有定义区块属性的字段,如下:
(1)区块地址。
(2)区块类型,PB、OB、CCB或EB。
(3)区块中有效数据容量。
(4)区块中页写入指针的位置。
(5)区块中针对其存在数据的文件的总数目。
(6)区块中针对其存在数据的每一文件的文件ID。
在其它实例中,记录可含有包含不同描述符值的不同字段。
第二实例中对区块记录的恢复过程
区块记录包含在一个或一个以上记录区块中且直接通过区块目录条目寻址。只有一个记录区块含有可用于编程新的或经更新的区块记录的已擦除页。在所有其它记录区块中,所有页均已经被编程,但区块可能含有完全废弃或部分废弃的页。通过将一个记录区块指定为待恢复的下一区块,并在擦除所述恢复区块之前将来自此恢复区块的页逐渐复制到当前由区块记录写入指针指定的页,来执行对由废弃区块记录占据的容量的恢复。
当已经完成对记录区块的先前恢复过程且已经擦除先前恢复区块时,选择恢复区块。选择具有最高数目的废弃页的记录区块作为恢复区块。每一记录区块的废弃页的数目均记录在最新近写入的区块记录页的区块记录页标头中。可能不选择含有区块记录写入指针的记录区块进行恢复。选定的记录区块保持作为恢复区块,直到已经完成恢复过程且已经擦除所述区块为止。接着将已擦除区块添加到已擦除区块集区,且可再次用于存储包含主机数据在内的任何种类的数据。因此,区块暂时保持作为专用记录区块,但并不永久被指定为记录区块。
恢复含有废弃页的区块记录区块的过程需要以排定的时间间隔以突发的形式将来自区块的含有有效区块记录的较小数目的页复制到由区块记录写入指针指定的页。一个突发中的页数目应当是元页中所含有的页数目,以实现良好性能。然而,在一些情况下,可能一次写入较少的页。编程处于区块记录写入指针处的页可作为对元页的单个编程操作来执行。对恢复区块中的页的突发复制操作可按照由区块记录写入指针通过4个元页中所含有的数目的页位置的进展所界定的时间间隔来调度。为了编程元页,当调度突发复制操作时,写入指针通常必须指向物理元页中的第一页。
与上文描述的对区块记录区块的恢复过程不同,对目录区块的恢复过程只是当目录区块中没有剩余已擦除空间时压缩区块目录区块。在区块目录区块在任何时间具有最多25%的有效页(在此实例中,逻辑容量是物理容量的25%)的情况下,压缩此类区块产生具有至少75%已擦除空间的区块。当压缩发生时,从中复制数据的区块变成无效区块,且经擦除而变成已擦除区块。接着将所述区块添加到已擦除区块集区,且所述区块可用于存储包含主机数据在内的任何种类的数据。因此,区块暂时保持作为专用目录区块,但并不永久被指定为目录区块。
更新第二实例的结构
当将数据写入到存储器阵列中的区块时或当删除文件时,可能需要更新一个或一个以上区块记录。另外,可能需要更新相应的区块目录和列表条目。以下过程(如图10所示)说明当将额外有效数据存储在部分区块(已经含有一些废弃数据)中而导致所述区块变成废弃区块时更新第二实例的各种结构。
(1)接收将存储额外数据的区块的地址。
(2)查看区块目录区块170的最后写入页中的目录索引171以确定含有此区块的目录条目175的目录页173的物理页位置。
(3)在目录页173内执行对分搜索以查找所述区块的条目175。
(4)依据条目175中的逻辑识别符以及记录索引177中的信息确定区块记录区块181中含有此区块的记录183的物理页179。使用目录条目175中的偏移量来查找对应于所接收地址的正确记录183。
(5)依据记录183确定区块的分类。确定额外数据的存储是否导致分类变化。此处,区块是部分区块,且额外数据填充区块中的剩余空间,使得其变成废弃区块。
(6)将记录页183的内容复制到由写入指针185所指示的位置,其中更新当前区块的记录183以反映不同类型的区块、有效数据、页写入指针的位置等。
(7)将目录页173复制到区块目录区块170中的下一可用物理页。用经更新的条目和记录索引写入新的目录页以反映记录页的新物理位置。并且,更新新的物理页中的目录索引。
(8)再次查看目录索引以确定含有针对所述区块的条目189的部分区块列表页187的物理页位置。(在一些其它情况下,可查看一个以上列表)。
(9)在页187中执行对分搜索以查找描述符值等于当前区块的描述符值的列表条目189。如果一个以上列表条目具有所述描述符值,那么依据区块地址搜索所有匹配条目。
(10)将部分区块列表页187复制到新的位置,其中删除针对当前区块的条目189。新的部分区块页包含具有针对部分区块页的新物理位置的经更新的目录索引。
(11)再次查看目录索引以确定包含当前区块中的有效数据量的覆盖每个区块范围的有效数据的废弃区块列表页的物理页位置(未图示)。
(12)复制废弃区块列表页,根据现在区块中的有效数据量在适当偏移处添加针对当前区块的新条目。新的废弃区块列表页包含指示废弃区块列表的新位置的经更新的目录索引(未图示)。
以上步骤不一定以所示的次序实行。一些步骤可并行实行。举例来说,经更新废弃区块列表页与经更新部分区块列表页的写入可并行作为元区块写入的一部分。
详细的第三实例
在第三实例中,始终针对存储器阵列中的每一区块维持记录。这可涉及一个或一个以上额外的区块分类,举例来说,可向图4所示的第二实例的分类添加针对不含有废弃数据的文件区块的额外分类。尽管针对每一区块维持记录增加了所维持的记录的总数目,但其可允许使用较简单的结构。除了具有针对每一区块的记录之外,第三实例可与第二实例类似地操作。
举例来说,在针对每个区块维持记录的情况下,还针对每个区块维持目录条目。目录条目具有固定且统一的大小。因此,目录页可含有通过区块地址循序排序的固定数目的条目。因此,每一目录页覆盖固定区块地址范围。因为此类页内的条目根据其区块地址而处于预定偏移处,所以不必在每一条目中单独记录区块地址。查找特定区块的目录条目可以是查找覆盖包含所述区块的区块地址范围的目录页,并接着前进到所述页内处于由目录页的第一条目的区块地址与所需区块地址之间的差值给定的偏移处的条目。因此,可能不需要对目录页进行对分搜索。相比之下,记录的大小通常是可变的,因此记录页并不始终维持固定数目的条目。与先前实例不同,在本实例中可针对任何列表中均不存在条目的区块维持记录。
针对存储器中的每一区块维持记录对于一些应用来说是便利的。举例来说,可维持关于区块的物理特性的描述符。此类描述符的一个实例是擦除计数。擦除计数指示特定区块已经被擦除的次数,且可用于损耗调平用途。一个或一个以上列表可根据区块的擦除计数来对区块进行排序。或者,记录可包含从区块上一次被擦除开始的时间戳,使得可在列表中通过自从区块的上一次擦除开始的时间对区块进行排序。
尽管已经参照本发明的示范性实施例描述了本发明的各个方面,但将了解,本发明有权受到所附权利要求书的全部范围内的保护。

Claims (30)

1.一种存储器系统,其包括:
非易失性存储器阵列,其包含每一者含有数据的第一多个可单独擦除区块;以及
列表,其含有所述第一多个区块的每一者的条目,所述列表中的所述条目根据所述第一多个区块的每一者中所存储的有效数据量进行排序。
2.根据权利要求1所述的存储器系统,其进一步包括多个记录,所述多个记录的每一者对应于所述第一多个可单独擦除区块中的一者,所述多个记录的每一者含有关于其相应区块的信息。
3.根据权利要求2所述的存储器系统,其中所述列表条目维持在第一区块中的多个列表页中,且所述多个记录维持在第二区块中的记录页中。
4.根据权利要求1至3中任一权利要求所述的存储器系统,其中所述多个区块由所述非易失性存储器阵列的含有已擦除空间和有效数据两者的所有区块组成。
5.根据权利要求1至3中任一权利要求所述的存储器系统,其中所述多个区块由所述非易失性存储器阵列的含有废弃数据且不含有已擦除空间的所有区块组成。
6.根据权利要求2所述的存储器系统,其进一步包括:
目录,其含有多个目录条目,所述多个目录条目的每一者包含所述多个记录中的一者的位置。
7.根据权利要求6所述的存储器系统,其中所述多个记录位于第一区块中,且所述目录和所述列表维持在第二区块中。
8.根据权利要求6或7所述的存储器系统,其中所述第一多个区块由所述存储器系统中的分别含有已擦除空间和有效数据两者的所有区块组成。
9.根据权利要求6或7所述的存储器系统,其中所述第一多个区块由所述存储器系统的分别含有废弃数据且不含有已擦除空间的所有区块组成。
10.根据权利要求6或7所述的存储器系统,其中所述第一多个区块由所述存储器系统的所有区块组成。
11.根据权利要求6所述的存储器系统,其中所述列表维持在每一者存储不同范围的列表条目的多个页中。
12.根据权利要求6所述的存储器系统,其进一步包括含有所述多个记录的第一多个页;其中所述第一多个页的个别一者中的有效记录限于由所述目录中所存储的位置所指示的记录。
13.根据权利要求12所述的存储器系统,其中所述第一多个页位于并非作为所述第一多个区块的一者的第一区块中,且所述目录位于并非作为所述第一多个区块的一者的第二区块中。
14.一种操作区块可擦除非易失性存储器阵列的方法,其包括:
维持列表,所述列表含有针对所述非易失性存储器阵列的多个区块的每一者的列表条目,所述列表条目根据所述多个区块的各个区块中所存储的有效数据量进行排序。
15.根据权利要求14所述的方法,其进一步包括维持针对所述非易失性存储器阵列的所述多个区块的每一者的记录,针对所述多个区块的一者的各个记录包含所述区块的物理地址,每一列表条目链接到记录条目。
16.根据权利要求15所述的方法,其中列表条目维持在第一区块中的列表页中,且所述记录维持在第二区块中的记录页中。
17.根据权利要求14或15所述的方法,其中所述多个区块由所述非易失性存储器阵列的含有已擦除空间和有效数据两者的所有区块组成。
18.根据权利要求14或15所述的方法,其中所述多个区块由所述非易失性存储器阵列的含有废弃数据且不含有已擦除空间的所有区块组成。
19.根据权利要求14所述的方法,其进一步包括:
维持针对所述存储器阵列中的所述多个区块的多个记录,所述多个记录的每一者含有关于所述多个区块的一者的信息;以及
维持目录,所述目录含有多个目录条目,所述多个目录条目的每一者包含关于所述多个记录的一者的位置信息。
20.根据权利要求19所述的方法,其中所述多个记录维持在第一区块中,且所述目录和所述列表维持在第二区块中。
21.根据权利要求19或20所述的方法,其中所述多个区块由所述非易失性存储器阵列中的分别含有已擦除空间和有效数据两者的所有区块组成。
22.根据权利要求19或20所述的方法,其中所述多个区块由所述非易失性存储器阵列中的分别含有废弃数据且不含有已擦除空间的所有区块组成。
23.根据权利要求19或20所述的方法,其中所述多个区块由所述非易失性存储器阵列中的所有区块组成。
24.根据权利要求14所述的方法,其中所述列表维持在每一者存储不同范围的列表条目的多个页中。
25.根据权利要求24所述的方法,其进一步包括:通过搜索所述列表以寻找与预定特性匹配的列表条目来搜寻具有预定描述符值的区块。
26.根据权利要求25所述的方法,其中所述预定特性是所述列表中的列表条目的最少有效数据量。
27.根据权利要求15所述的方法,其中所述记录维持在第一多个页中,所述方法进一步包括:
在第二多个页中维持针对所述第一多个页中的记录位置的指针,其中所述第一多个页的个别一者中的有效记录限于由所述第二多个页的一者中所存储的指针所指示的记录。
28.根据权利要求27所述的方法,其中所述第一多个页位于具有一个或一个以上区块的第一群组中,且所述第二多个页位于具有一个或一个以上区块的第二群组中。
29.根据权利要求27所述的方法,其中所述第一多个页位于并非作为所述第一多个区块的一者的第一区块中,且所述第二多个页位于并非作为所述第一多个区块的一者的第二区块中。
30.根据权利要求27所述的方法,其进一步包括在第三多个页中维持所述列表。
CN2006800335884A 2005-08-03 2006-08-01 具有区块管理的非易失性存储器 Active CN101263462B (zh)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US70538805P 2005-08-03 2005-08-03
US60/705,388 2005-08-03
US74674206P 2006-05-08 2006-05-08
US60/746,742 2006-05-08
US11/459,268 2006-07-21
US11/459,268 US7558906B2 (en) 2005-08-03 2006-07-21 Methods of managing blocks in nonvolatile memory
US11/459,260 2006-07-21
US11/459,260 US7552271B2 (en) 2005-08-03 2006-07-21 Nonvolatile memory with block management
PCT/US2006/030228 WO2007019217A1 (en) 2005-08-03 2006-08-01 Nonvolatile memory with block management

Publications (2)

Publication Number Publication Date
CN101263462A CN101263462A (zh) 2008-09-10
CN101263462B true CN101263462B (zh) 2012-05-16

Family

ID=37256122

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800335884A Active CN101263462B (zh) 2005-08-03 2006-08-01 具有区块管理的非易失性存储器

Country Status (4)

Country Link
EP (1) EP1913480B1 (zh)
KR (1) KR101329068B1 (zh)
CN (1) CN101263462B (zh)
WO (1) WO2007019217A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4738536B1 (ja) 2010-01-29 2011-08-03 株式会社東芝 不揮発性メモリのコントローラ及び不揮発性メモリの制御方法
EP2515237A1 (en) * 2011-04-18 2012-10-24 Gemalto SA Portable secure device providing storage service
US9430376B2 (en) * 2012-12-26 2016-08-30 Western Digital Technologies, Inc. Priority-based garbage collection for data storage systems
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9734050B2 (en) * 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9336133B2 (en) 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
US9778855B2 (en) 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
KR102441992B1 (ko) * 2017-11-09 2022-09-08 한국전자통신연구원 분리 메모리 관리 방법 및 장치
KR102410306B1 (ko) * 2018-01-29 2022-06-20 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
EP3736705A4 (en) * 2018-02-05 2020-12-23 Huawei Technologies Co., Ltd. DATA INQUIRY METHOD AND DEVICE

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3524428B2 (ja) * 1999-04-20 2004-05-10 東京エレクトロンデバイス株式会社 記憶装置、記憶システム、メモリ管理方法及び記録媒体
US6865650B1 (en) * 2000-09-29 2005-03-08 Emc Corporation System and method for hierarchical data storage
US6895464B2 (en) * 2002-06-03 2005-05-17 Honeywell International Inc. Flash memory management system and method utilizing multiple block list windows

Also Published As

Publication number Publication date
CN101263462A (zh) 2008-09-10
WO2007019217A1 (en) 2007-02-15
KR101329068B1 (ko) 2013-11-14
EP1913480B1 (en) 2010-12-29
EP1913480A1 (en) 2008-04-23
KR20080033464A (ko) 2008-04-16

Similar Documents

Publication Publication Date Title
CN101263462B (zh) 具有区块管理的非易失性存储器
US7558906B2 (en) Methods of managing blocks in nonvolatile memory
US7552271B2 (en) Nonvolatile memory with block management
CN101233480B (zh) 用于索引直接存储数据文件的可重新编程的非易失性存储器中的文件数据的方法、设备和系统
CN101147119B (zh) 快闪存储器中的直接数据文件存储实施技术
CN102831071B (zh) 用于存储器装置的存储地址重新映射的方法和系统
CN101027651B (zh) 最佳顺序性簇管理的fat分析
CN1902599B (zh) 将数据更新到非易失性存储器系统和操作该系统的方法
US8166267B2 (en) Managing a LBA interface in a direct data file memory system
US7849253B2 (en) Method for fast access to flash-memory media
US7516296B2 (en) Flash memory storage device and read/write method
CN101606133A (zh) 具有连续逻辑地址空间接口的直接数据文件系统的使用
US20080155175A1 (en) Host System That Manages a LBA Interface With Flash Memory
US20060218347A1 (en) Memory card
CN101253468A (zh) 用于存储装置的双模式存取的方法和系统
CN101164037A (zh) 闪速存储器中的直接数据文件存储
CN101021813A (zh) 闪存管理设备和方法
TWI399642B (zh) 具區塊管理之非揮發性記憶體
JP2009503740A (ja) データファイルを直接記憶する再プログラム可能な不揮発性メモリ内のファイルデータの索引付け

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 TECHNOLOGIES, INC.

Free format text: FORMER OWNER: SANDISK CORPORATION

Effective date: 20120910

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

Effective date of registration: 20120910

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
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.