CN1795437A - 用于块内页面分组的方法及设备 - Google Patents

用于块内页面分组的方法及设备 Download PDF

Info

Publication number
CN1795437A
CN1795437A CNA038247704A CN03824770A CN1795437A CN 1795437 A CN1795437 A CN 1795437A CN A038247704 A CNA038247704 A CN A038247704A CN 03824770 A CN03824770 A CN 03824770A CN 1795437 A CN1795437 A CN 1795437A
Authority
CN
China
Prior art keywords
group
physical
data
page
block
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
CNA038247704A
Other languages
English (en)
Other versions
CN100454273C (zh
Inventor
罗伯特·C·张
巴赫曼·卡瓦迈
法施德·萨伯特-沙吉
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 CN1795437A publication Critical patent/CN1795437A/zh
Application granted granted Critical
Publication of CN100454273C publication Critical patent/CN100454273C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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

Abstract

本发明揭示用于有效地使一块内的页面能够被存取的方法及装置。根据本发明的一个方面,一种用于将数据写入一非易失性存储器中的包括复数个划分为复数个组的页面且每个组包括两个或更多页面的一第一块内的方法包括确定一第一组何时可用于接收所述数据。当确定所述第一组可用于接收所述数据时,将所述数据写入所述第一组中所包含的一第一页面。本方法也包括在确定所述第一组不可用于接收所述数据的情况下确定一第二组何时可用于接收所述数据,并在确定所述第二组可用于接收所述数据时,将所述数据写入所述第二组中所包含的一第二页面。

Description

用于块内页面分组的方法及设备
相关申请交叉参考
本发明与下列专利申请案有关:于2002年10月28日提交的标题为″WEARLEVELING IN NON-VOLATILE STORAGE SYSTEMS″的共同待决美国专利申请案第10/281,739号(代理案号SANDP023/SDK0366.000US);于2002年10月28日提交的标题为″TRACKING THE MOST FREQUENTLY ERASEDBLOCKS IN NON-VOLATILE MEMORY SYSTEMS″的共同待决美国专利申请案第10/281,670号(代理人案号SANDP025/SDK0366.002US);于2002年10月28日提交的标题为″TRACKING THE LEAST FREQUENTLY ERASEDBLOCKS IN NON-VOLATILE MEMORY SYSTEMS″的共同待决美国专利申请案第10/281,824号(代理人案号SANDP026/SDK0366.003US);于2002年10月28日提交的标题为″METHOD AND APPARATUS FOR SPLITTING ALOGICAL BLOCK″的共同待决美国专利申请案第10/281,631号(代理人案号SANDP028/SDK0371.000US);于2002年10月28日提交的标题为″METHODAND APPARATUS FOR RESOLVING PHYSICAL BLOCKS ASSOCIATEDWITH A COMMON LOGICAL BLOCK″的共同待决美国专利申请案第10/281,762号(代理人案号SANDP030/SDK0416.000US);于2002年10月28日提交的标题为″MAINTAINING ERASE COUNTS IN NON-VOLATILESTORAGE SYSTEMS″的共同待决美国专利申请案第10/281,696号(代理人案号SANDP031/SDK0420.000US);于2002年10月28日提交的标题为″METHODAND APPARATUS FOR MANAGING AN ERASE COUNT BLOCK″的共同待决美国专利申请案第10/281,626号(代理人案号SANDP032/SDK0420.001US);以及于2002年10月28日提交的标题为″METHOD AND APPARATUS FORPERFORMING MULTI-PAGE READ AND WRITE OPERATIONS IN ANON-VOLATILE MEMORY″的共同待决美国专利申请案第10/281,804号(代理人案号SANDP033/SDK0426.000US),上述专利申请案的全文皆以引用方式并入本文中。
发明背景
技术领域
本发明大致上是关于大容量数字数据存储系统。更具体而言,本发明是关于用于有效地写入一闪存存储器块的系统及方法。
背景技术
由于诸如闪存存储系统等非易失性存储系统的实际尺寸紧凑且非易失性存储器具有可重复编程的能力,所以此类存储系统的使用正在增加。闪存存储器存储系统紧凑的实际尺寸有利于将此种存储系统用于各种日益流行的装置内。使用闪存存储系统的装置包括(但不限于):数字照相机、数字摄像机、数字音乐播放器、手持式个人计算机及全球定位装置。闪存存储系统内所包含的可对非易失性存储器重复编程的能力使得闪存存储系统可使用并再利用。
通常,闪存存储系统可以包括闪存存储器卡和闪存存储器芯片组。闪存存储器芯片组一般包括闪存存储器部件和一控制器部件。通常,可将一闪存存储器芯片组布置组装到一嵌入式系统内。此种组件或主机系统的制造商一般会以部件形式购入闪存存储器以及其它部件,然后将所述闪存存储器与所述其它部件组装到主机系统中。
如图1a所示,在一文件系统内,存储器10被有效地划分为一系统或目录区12以及一数据区14。系统区12一般包括根目录和文件分配表(FAT),而数据文件一般包括在数据区14内。一文件系统可以按扇区(例如一次一个页面)将数据写入系统区12内,而按簇(例如一次复数个页面)将数据写入数据区14内。每个簇的大小可以不同,一般是一与数据区14相关联的文件的最小尺寸。例如,在一运行Windows系统或DOS系统的完整系统内,一个簇的大小可以设计为包括约4到约256个页面。
与一逻辑块或与一文件系统相关的的块的任何更新均被有效地传播至闪存媒体,其中一物理块被映射至一逻辑块。图1b是一图示,显示一闪存媒体的一逻辑块与一物理块之间的映射。逻辑块52包括复数个页面,每个页面被映射至物理块54的页面,如此,当与逻辑块52相关的页面被更新时,所述更新被写入物理块54。
当一页面如逻辑页面被更新时,写入所述一与页面相关的物理块。按常规,可以一“固定”方式或一“随机”方式写入一块。当以一固定方式写入一块时,将一页面按相应的页面偏移写入一块。如图2a所示,当一逻辑块页面214被更新时,与所述逻辑块页面214相关的内容一般被写入一物理块210内的相应页面218中。例如,当逻辑块页面214对应于物理块页面218h而所述物理块面页面218h可用时,所述逻辑块页面214的内容可被写入所述物理块页面218h中。当所述物理块页面218h可用时,指示实际上未曾有页面号高于物理块页面218h的页面218被写入到块210内。
如果曾经有页面号高于一含有待写内容的逻辑块页面的页面218被写入块210内,则在安排以固定方式写入块210时,所述逻辑块页面的内容不能写入块210。在较高页面已被写入闪存存储器后再写入一较低页面的操作是一“失序”写操作。所属领域的技术人员将了解,某些闪存媒体不允许此种类型的操作。因此,所述逻辑块页面的内容以及页面218的内容被写入一新块内。图2b是一图示,显示一旧块(例如图2a的块210)以及一被安排用于容纳所述旧块的内容的新块。当一逻辑块页面234的内容需要以一固定方式写入一物理块时,需要确定块210(即当前块)是否可以被写入。如果逻辑页面234具有一比块210可用页面号低的页面号码,则逻辑页面234的内容不能被写入块210。换句话说,如果一具有一与逻辑块234相应的页面偏移的物理页面218不可用——即已经被写入,则一般必须获得一新的物理页面230以能够写入逻辑页面234的内容。
因为逻辑块234对应于物理块210的页面218c,当获得块230时,除了页面218c的内容,页面218的内容一般会拷入物理块230的相应页面238中。页面218c的内容不拷入页面238c,取而代之的是将逻辑块234的内容拷入页面238c。因此,在经过拷贝或写操作后,页面238a、页面238b以及页面238d-238g分别含有218a、页面218b以及页面218d-g的内容,而页面238c则含有与逻辑页234相关的内容。一旦块230已被写入,块210即可以被擦除。
以一固定方式写入一块的操作通常在当在所述块内存在一具有相应页面偏移的页面可用于一正被写入的页面时是有效的。但是,当不存在一具有相应页面偏移的页面可供写入时,则即使在所述块内存在可用的页面,一般也必须获得一新块来完成所述写操作。获得一新块会耗用大量的计算开销,通常必须运行将内容拷入所述新块的拷贝操作以及擦除一旧块的擦除操作。所属领域的技术人员将了解,此类操作尤其是写操作和擦除操作相当昂贵。
作为以固定方式写入一块的替代手段,可以实施以一随机方式将数据写入一块。在以随机方式写入块时,与基本上任何逻辑页面相关联的内容均可写入一块内的下一可用页面空间内。下文将结合图3描述将数据写入一块内的随机方式。当一逻辑块页面314的内容需要写入一物理块310内而块310内又存在可用的页面318时,则逻辑块页面314的内容可以写入下一继之的可用页面318。例如,逻辑页面314a的内容可以被写入页面318h,而逻辑页面314b的内容可以被写入页面318i中。
应了解,尽管逻辑页面314b可对应于页面318c,但如果页面318i是块310内的下一可用页面,则逻辑页面314b的更新内容可以被写入页面318i。当基本上要读取逻辑页面314时,一般必需识别块310内的页面318i中含有与逻辑页面314b相关的最新内容。如图所示,当页面318i是块310内的最末页面时,识别页面318i含有与逻辑页面314b相关的内容可能需要读取块310的全部页面,因而,可能需要相对大量的读操作。读取整个块310的基本上全部的内容以存取与逻辑页面314b相关的内容可能相当耗时。尽管有许多技术可以利用整体系统的存储器或闪存存储器来快取与页面318相关的信息以及页面318的内容,从而减少用于查找和存取与逻辑页面(例如逻辑页面314)相关的内容的读操作的次数,但是此等技术提高了对整体系统的存储器要求,或更具体而言,提高了对整体系统中软件执行的要求。
因此,需要一种用于有效地使与物理块相关的页面能被写入和存取的设备及混合方法。也就是说,所需要的是一种混合系统,其利用固定和随机两种过程来使一块内的页面能够有效地被写入和容易地被存取,且基本上不需要相对频繁的块擦除或相对大量的读操作。
发明内容
本发明是关于一种可有效地使一块内的页面能够被存取的系统和方法。根据本发明的一个方面,一种用于将数据写入在一非易失性存储器内的包括被划分为复数个组的复数个页面且每个组包括两个或更多页面的一第一块的方法包括确定所述复数个组的一第一组何时可用于接收所述数据。当确定所述第一组可用于接收所述数据时,所述数据被写入所述第一组中所包括的一第一页面。本方法也包括在确定所述第一组不可用于接收所述数据的情况下确定所述复数个组中的一第二组何时可用于接收所述数据,并在确定所述第二组可用于接收所述数据时,将所述数据写入所述第二组中所包括的一第二页面。
在一实施例中,所述方法也包括在确定所述第二组不可用于接收所述数据的情况下确定一第二块何时可用于接收所述数据。在另一实施例中,所述数据与一逻辑页面相关联,而所述第一块是一第一物理块。
对块内的页面进行分组,以便在待写入一页面时可获得一在一物理块内的页面组而非新的物理块,这样可以提高与写页面相关的总体效率。换句话说,降低了必须获取一新块才能写入数据的可能性,因为存在可使用该新块内的一组的可能性。这样,可以更高效地进行一写入过程,此至少部分地是因为可以大大地降低擦除过程的发生,例如一旦获得新块时用于擦除旧块的擦除过程。
另外,一用于读取存储于一特定页面内的一组数据的读取过程也可更高效地进行,因为可以细读(peruse)复数个组以试图识别特定页面,而不需要读取整个块来查找所述特定页面。例如,如果一页面组被确定不含所述特定页面,则不需要对所述组中的页面进行逐一读取,也就是说,基本上只有含有所述特定页面的组中的页面才需要读取。通过应用了组概念,由于基本上只需要检查同一组内的页面,因此,读操作的速度比以一有效的随机方式执行读操作时的速度快。一与组概念相关联的写操作比一常规固定过程更快,因为在一单个物理块中有更多的位置用于向所述页面写入。这样,就减少了分配新块和擦除旧块的需要。
根据本发明的另一个方面,一构成一非易失性存储器的一部分的存储块包括复数个页面,该等页面被划分为至少一第一组页面和一第二组页面。所述存储块也包括一第一组。所述第一组含有所述第一组页面,并具有用于识别所述第一组的一第一个组识别符并存储在所述第一组内。此外,所述存储块也包括一第二组。所述第二组含有所述第二组页面,并具有用于识别所述第二组的一第二个组识别符。所述第二个组识别符存储于所述第二组内。在一实施例中,所述第一组页面所含页面的次序相对于所述第一组的一开始部位是基本上固定的,而所述第二组页面所含页面的次序相对于所述第二组的一开始部位是基本上固定的。
根据本发明的另一个方面,一种用于将数据写入在一非易失性存储器内的包括被划分为具有两个或更多物理页面的复数个物理组的复数个物理页面的一第一物理块的方法包括识别与一第一逻辑页面相关联的一第一组数据,确定复数个物理组中的一第一物理组何时与所述第一逻辑组相关联。所述第一逻辑页面是一逻辑块的一第一逻辑组中所包含的复数个逻辑页面之一。本方法也包括:在确定所述第一物理组已与所述第一逻辑组相关联的情况下确定所述第一物理组中所包含的一第一物理页面何时可用于容纳所述第一组数据;以及在确定所述第一物理页面可用于容纳所述第一组数据时将所述第一组数据写入所述第一物理页面。
在一实施例中,所述将数据写入一第一物理块的方法也包括:在确定所述第一物理页面不可用于容纳所述第一组数据的情况下确定所述复数个物理组中所包括的一第二物理组何时可用;及将所述第一组数据写入与所述第二物理组相关联的一第二物理页面。在此一实施例中,所述方法可以进一步包括在确定所述第二物理组不可用的情况下确定一与所述非易失性存储器相关的第二物理块何时可用于容纳所述第一组数据。
在阅读以下详细说明并研究图纸中的各附图后,本发明的这些及其它优点即显而易见。
附图说明
结合附图并参阅下文描述,可更清楚地了解本发明,其中:
图1a是一图示,其显示被一文件系统有效划分的存储器。
图1b是一图示,其显示一逻辑块与一物理块之间的映射。
图2a是一图示,其显示一被安排用于以固定方式容纳与一逻辑块页面相关的内容的物理块。
图2b是一图示,其显示一旧物理块(如图2a的块210)以及一被安排用于容纳所述旧块的内容的新物理块。
图3是一物理块的图示,与一逻辑块页面相关的内容将要以一随机方式被写入该物理块中。
图4a是一图示,其显示一含有一非易失性存储器的通用主机系统。
图4b是一图示,其显示一存储器装置,例如图4a的存储器装置120。
图4c是一图示,其显示含有一嵌入式非易失性存储器的主机系统。
图5是一图示,其显示根据本发明一实施例的一具有逻辑块的文件系统和一具有物理块的媒体。
图6是一图示,其显示根据本发明一实施例的一具有安排成组的页面的块。
图7是一图示,其显示根据本发明的一实施例的一个页面。
图8a是一图示,其显示根据本发明的一实施例的分别划分为组的一逻辑块和一物理块。
图8b是一图示,其显示一逻辑块和一物理块,即图8a的逻辑块802和物理块806,其指示根据本发明的一实施例可如何写入所述物理块内的组。
图8c是一图示,其显示一逻辑块和一物理块,即图8a的逻辑块802和物理块806,其指示根据本发明的一个实施例可如何关联所述块内的组。
图8d是一图示,其显示根据本发明的一实施例的一逻辑块(即图8a-c的逻辑块802)与一新的物理块在一合并操作后的关联关系。
图9是一图示,其显示根据本发明的一实施例的一当前工作块信息表。
图10a和10b是程序流程图,其显示根据本发明的一实施例将与一构成一逻辑组的一部分的逻辑页面相关的内容写入一构成一物理组一部分的物理页面的步骤。
图11是一方块图,其显示根据本发明的一实施例的一个系统架构。
具体实施方式
降低存储或重写更新页面所需要的开销和时间总量可使整体系统——例如,具有一嵌入式非易失性存储器芯片的整体主机系统——更高效地运行。每次当与一物理块相关联的一页面具有一低于新近写入的其它页面的页面号码时要更新所述页面时均获取一个新的物理块会消耗相当大量的系统资源,因而会相对低效。另一方面,使实际上任何页面能写入一块的下一可用空间可导致在要查找一特定页面时必须执行过紊乱而大量的读操作。
通过将块内的页面划分成组,使得在当物理块内存在至少一个可用组时可获得所述物理块内的一个组而非新的物理块用来将一页面写入其中,因为一般可以提高与写页面相关的总体效率。换句话说,这样可以降低为了能写数据而不得不获得一新块的可能性,因为存在可用所述新块内的一个组的可能性。通过使用组或子块,总体上可以更高效地分配块。
可获益于在一物理块内进行页面分组的闪存存储器系统(或更广泛而言,非易失性存储器装置)包括闪存存储器卡和芯片组。通常,闪存存储器系统是与主机系统结合使用,如此所述主机系统可以将数据写入所述闪存存储器系统或从中读取数据。但是,某些闪存存储器系统包括嵌入式闪存存储器和软件,其在一主机上执行以基本上充当嵌入式闪存存储器的控制器,具体将在下文中参照图4c加以讨论。参照图4a,将描述一包括一非易失性存储器装置(例如一CompactFlash存储器卡)的通用主机系统。一主机或计算机系统100一般包括一系统总线104,其使微处理器108、随机存取存储器(RAM)112和输入/输出电路116之间能够通信。应了解,主机系统100一般可以包括其它部件(为说明目的未显示在图中),例如显示装置和连网装置。
一般而言,主机系统100能够捕获信息,所述信息包括(但不限于):静止图像信息、音频信息和视频图像信息。此种信息可以实时捕获,并可以按无线方式传送到主机系统100。尽管主机系统100实际上可以是任何系统,但是主机系统100通常是诸如数字相机、摄像机、蜂窝通信装置、音频播放器或视频播放器等的系统。但是,应了解,主机系统100一般而言可以是实际上任何存储数据或信息和检索数据或信息的系统。
主机系统100也可以是一仅捕获数据或仅检索数据的系统。也就是说,在一实施例中,主机系统100可以是一存储数据的专用系统,或者主机系统100也可以是一读取数据的专用系统。举例而言,主机系统100可以是被布置仅用于写入或存储数据的一存储器写入器。或者,主机系统100也可以是一通常被布置用于读取或检索数据但不捕获数据的装置,例如一MP3播放器。
在一实施例中,非易失性存储器装置120是一可拆卸式非易失性存储器装置,其被布置成与总线104对接以存储信息。一可选接口块130可使非易失性存储器装置120与总线104间接对接。所属领域的技术人员将理解,在存在输入/输出电路模块116的情况下,输入/输出电路模块116用于降低总线104上的负载。非易失性存储器装置120包括非易失性存储器124和一可选存储器控制系统128。在一实施例中,非易失性存储器装置120可构建在一单个芯片或一电路小片(die)上。或者,非易失性存储器装置120可构建于一多芯片模块或复数个离散部件上,所述复数个离散部件可构成一芯片组或可以一起用作非易失性存储器装置120。下文将结合图4b更详细地介绍非易失性存储器装置120的一个实施例。
非易失性存储器124——例如,诸如NAND闪存存储器的闪存存储器——被布置用于存储数据,以便在需要时可以存取和读取数据。存储于非易失性存储器124中的数据也可在合适时擦除,但应当了解,非易失性存储器124中的某些数据是不可以擦除的。存储数据、读取数据和擦除数据的过程一般由存储器控制系统128控制,或者,在不存在存储器控制系统128的情况下,由微处理器108所执行的软件来控制。可以管理非易失性存储器124的运行,通过使非易失性存储器124的各部分基本上均匀地磨损从而使非易失性存储器124的寿命最大化。
非易失性存储器装置120一般被描述为包括一可选存储器控制系统128,即控制器。非易失性存储器装置120经常可包括用于非易失性存储器124和存储器控制系统128(即控制器)功能的单独的芯片。(句子堆砌)举例而言,尽管包括(但不限于)PC卡、CompactFlash卡、MultiMedia卡和Secure Digital卡的非易失性存储器装置包括可构建于一单独芯片上的控制器,但是其它非易失性存储器装置可能并不包括构建于一单独芯片上的控制器。在一实施例中,非易失性存储器装置120不包括单独的存储器和控制器芯片,此处所属领域的技术人员将了解,所述存储器和控制器功能可以集成到一单个芯片中。或者,存储器控制系统128的功能可以由微处理器108提供,例如,在上文讨论的其中非易失性存储器装置120不包括存储器控制器128的实施例中。
参照图4b,下将根据本发明的一实施例更详细地描述非易失性存储器装置120。如上文所述,非易失性存储器装置120包括非易失性存储器124,并可能包括存储器控制系统128。存储器124和控制系统128或控制器可以是非易失性存储器装置120的主要部件,尽管(例如)当存储器124是一嵌入式NAND装置时,非易失性存储器装置120可不包括控制系统128。存储器124可以是在一半导体基底上形成的存储单元阵列,其中通过将两个或更多电荷电平中的一个存储在存储单元的个别存储元件上来将一或多位数据存储于个别存储单元中。一非易失性闪存电可擦除可编程只读存储器(EEPROM)是此类系统的一通用类型存储器的一个实例。
若存在,则控制系统128通过总线15与主计算机或使用所述存储器系统存储数据的其它系统进行通信。总线15一般是图4a的总线104的一部分。控制系统128也控制存储器124的操作,所述存储器124也可包括一存储单元阵列11,用于写由所述主机提供的数据、读取所述主机请求的数据以及执行存储器124运行过程中所需的各种内务管理功能。控制系统128一般包括一通用微处理器,其具有相关的非易失性软件存储器、各种逻辑电路等。其通常也包括一个或更多状态机,用于控制专用例程的执行。
存储单元阵列11通常由控制系统128或微处理器108通过地址译码器17寻址。译码器17可向阵列11的门和位线施加恰当的电压,以将数据编程至由所述控制系统128寻址的一存储单元组中、从中读取数据或擦除所述存储单元组。附加电路19可以包括编程驱动器,所述编程驱动器控制根据正被编程至一被寻址单元组中的数据而施加到所述阵列元件的电压。电路19也可包括读出放大器和其它从被寻址存储单元组中读取数据所需的电路。将要编程到阵列11中的数据或最近自阵列11读取出的数据可以存储于一缓冲存储器21内,如图所示,其可位于控制系统128内。控制系统128也可包含各种寄存器,用于临时存储命令和状态数据等。
阵列11可被划分为大量的BLOCKS 0-N存储单元。如闪存EEPROM系统中所常见的,块可以是最小的擦除单位。也就是说,每个块可包括被一起擦除的最小数目的存储单元。每个块通常被划分为若干页面。所属领域的技术人员将了解,页面可以是最小的编程单位。也就是说,一基本编程操作将数据写入存储单元的最少一个页面内,或从其中读取数据。如图4b所示,一个扇区包括用户数据和开销数据。开销数据通常包括从所述扇区的用户数据计算得出的纠错码(ECC)。所述控制系统128的一部分23可以在数据正被编程至阵列11内时计算所述纠错码,也可以在数据从阵列11读取时检查所述纠错码。或者,将所述纠错码存储于与其所从属的用户数据不同的页面或不同的块内。
一用户数据扇区通常是512个字节,相当于磁盘驱动器内一扇区的大小。在所述的实施例中,开销数据通常为另外的16个字节。最常见的是,一个数据扇区包括在一个页面中,但也可以由两个或更多的扇区来形成一个页面。一般而言,任何数目的页面可构成一个块。举例来说,一块可由达8页至512页、1024页或更多页构成。可以通过选择块的数目为所述存储器系统提供所要的数据存储容量。阵列11通常被划分为若干子阵列(未显示),每个子阵列包括一部分所述块,这些子阵列在一定程度上互相独立的运行,以提高执行各种存储器操作中的平行度。在美国专利第5,890,192号中描述了使用复数个子阵列的一个实例,该专利的全文以引用的方式并入本文中。
在一实施例中,非易失性存储器被嵌入一系统中,例如一主机系统。图4c是一图示,其显示一包括一嵌入式非易失存储器的主机系统。主机或计算机系统150一般包括一系统总线154,其允许微处理器158、随机存取存储器(RAM)162和输入/输出电路166以及主机系统150的其它部件(未显示)进行通信。
一非易失性存储器174,例如一闪存存储器,使信息可以被存储于主机系统150内。在非易失性存储器174和总线154之间可以提供一接口180,以供从非易失性存储器174读取信息并向其中写入信息。
非易失性存储器174可由微处理器158管理,所述微处理器158有效地执行布置用于控制非易失性存储器174的软件和/或固件。也就是说,微处理器158可以运行代码装置(未显示),即软件代码装置或固件代码装置,其可使非易失性存储器174受到控制。此类代码装置可以是一与CPU一起封装在微处理器158内的闪存存储器、一单独的闪存只读存储器(ROM)或位于非易失性存储器174内,其可使非易失性存储器174内的物理块被寻址,并可使信息能够被存储在所述物理块、从中读取信息或从中擦除信息,此将在下文中具体描述。
通常,当用户写入数据时,所述用户使用一文件系统有效地写入数据。所述文件系统将所述数据与一逻辑块,或更具体而言,一逻辑块的页面关联起来,所述逻辑块被映射至一与存储媒体相关联的物理块。图5是一图示,其显示根据本发明的一实施例的一具有逻辑块的文件系统和一具有物理块的媒体。一文件系统514的逻辑块510包括任何数目的页面518。包括于一逻辑块(例如逻辑块510a)内的页面518的数目取决于一擦除单元的大小。例如,如图所示,当最小擦除单元含有约32个页面时,逻辑块510a可以包含约32个页面。
媒体534(例如,嵌入式闪存存储器)的物理块530包含若干数量的页面538。所属领域的技术人员将了解,物理块530中所包含的页面538的数量通常与逻辑块530中所包含的页面518的数量相等。
如在下文中结合图5所描述,利用一数据管理器或数据管理软件,逻辑块510可被映射至物理块530。逻辑块510与物理块530之间的映射可以各自为一对一的映射,即其中一逻辑块地址上的第一逻辑块510被映射至一基本上与所述逻辑块地址相同的物理块地址上的第一物理块530a。然而,逻辑块510与物理块530之间的映射经常是使得一逻辑块地址上的第一逻辑块510a并非被映射至第一物理块530a,而是映射至一具有与所述逻辑块地址不同的物理块地址的物理块(例如物理块530c)。
尽管与一逻辑块相关联的一组页面地址可有效地全部对应于与物理模块相关联的一组页面地址,例如,一逻辑块可能与逻辑页面0-31相关联,而一物理块可能与物理页面0-31相关联,但是与一给定逻辑页面地址相关联的内容可不必位于对应的物理页面地址。为便于存取到所包含的与一逻辑块相关联且物理上包含在一物理块内的所要内容,与一块相关联的页面可以被划分为复数个组或子块。与一逻辑块相关联的页面和/或与一物理块相关联的页面可以被划分为组或单元。图6是一图示,其显示根据本发明的一个实施例的一具有划分为组的复数个页面的块。块600包括若干页面604。应当了解,块600一般可包括任何数量的页面604。
页面604被布置成组608。一般而言,块600内的组608的数量和一组608内页面604的数量可大不相同。通常,组608内页面604的数量须选择为可容纳基本上任何大小的簇大小。例如,在某些系统中,簇大小可以为大约4个页面604。在一个簇大小为约4个页面604时,组608内页面604的数量可以是4的倍数,例如每个组608可有4或8个页面604。
所属领域的技术人员将了解,簇一般被视为一个文件的最小尺寸。因此,即使当一文件系统试图为一文件写入基本上仅一个字节时,实际上整个簇被指配给所述文件。继之的文件将被写入其它簇内。
返回到图6,在所示实施例中,每个组608包括4个页面604。每个组608内页面604的次序相对于每个组608的开始部位是固定的。举例而言,组608a内页面604a-d的次序是固定的,组608b内页面604e-h的次序也同样如此。虽然每个组608内页面604的次序相对于每个组608的开始部位是固定的,但是块600内组608的次序一般是不固定的。
每一逻辑页面和物理页面一般包括一冗余区和一数据区。在所述实施例中,一冗余区或开销区(overhead area)可包括最多约16个字节的信息,其包括(但不限于)用于识别一特定页面所属的组的组识别符,其可以是1个字节。图7是根据本发明的一实施例的页面的示意代表图。页面700包括一冗余区706和一数据区710。一般而言,页面700包括约528个字节,其中约16个字节可以包括在冗余区706内且约512个字节可以包括在数据区710内。尽管冗余区706可与页面700内最后的字节相关联,但在所述实施例中,冗余区706与页面700的第一字节相关联。
数据区710被布置用于存储数据内容712,例如用户数据内容。冗余区706被布置为包括可使页面700被跟踪的信息。例如,冗余区706可以包括一个组识别符714,其可识别页面700属于哪个组(即一块内的组)的一部分。为便于识别一组,组识别符714可以是与冗余区706从而与页面700相关联的第一个字节。
通常,如果组识别符714与一特定组的一识别符不匹配,则不读取页面700,此时读取组识别符714并(例如)使用一整体系统的软件或固件进行检查,以确定组识别符714是否与一特定组相关联的识别符相匹配。由于组识别符714是与页面700相关联的第一字节,因此读取组识别符714需要相对较少的开销,而且效率相对较高。如果组识别符714匹配一特定组的识别符,则在读取冗余区706的剩余部分之外,还可读取数据712。另一方面,如果组识别符714不匹配所述特定组的识别符,则数据712和冗余区706的剩余部分不被读取。
通过在组识别符714匹配一特定组的识别符时基本上仅读取与页面700相关的全部位元,当组识别符714不匹配一特定组的识别符时,基本上可去除通常与转移约527个字节数据相关的转移时间。换句话说,当组识别符714不匹配一特定组的识别符时,可以有效地去除与读取或转移页面700的剩余字节相关的时间。
或者,如果(例如)因为组识别符714匹配一特定组的识别符而要读取剩余字节,则有效的节省了一次存取时间,或从发出一读取数据指令到所述数据准备就绪供从所述闪存存储器转移所消耗的时间。冗余区706也可被置于数据区710之后。尽管在冗余区706被置于数据区710之后时一读操作可能并未最优化,但如上文所述,由于块擦除操作的数量减少,写操作的性能一般仍可得到提高。
图8a是一图示,其显示根据本发明的一个实施例的各自被划分为组的一逻辑块和一物理块。逻辑块802和物理块806分别被均等地划分为组810和组814。在一实施例中,组810、814的数量通常是2的个幂。例如,在逻辑块802中可能有1、2、4或8个组810。
逻辑块802和物理块806各包括32个页面,但应当了解,逻辑块802和物理块806中页面的数量可大不相同。逻辑块802的每个组810包括8个页面,例如,组810c包括8个页面826,而物理块806的每个组814包括8个页面,例如组814a包括8个页面834。通常,每个组810、814的页面次序基本上是固定的。举例来说,在组810c内,第一页面826a基本上固定为“页面0”,而第八页面826h基本上被固定为“页面7”。如此,在组814被排序成组814a为“组0”且组814d为“组3”时,写物理块806的总“页面30”基本上相当于写组814d的“页面6”846g。
一般而言,物理块806中组814的次序可以是随机的。如上文相对于图7所述的,组814的实际组号可以存储在页面的冗余区内。存储于组814a的页面834中的组号被布置用于将页面834识别为包含在组814a中。类似地,存储于页面838中的组号将页面838识别为包含在组814b中;存储于页面842中的组号将页面842识别为包含在组814c中;以及存储于页面846中的组号将页面846识别为包含在组814d中。
如图所示,物理组814a(即物理“组0”)中的页面834的数据区被布置用于存储与逻辑组810d相关联的数据。物理组814c的页面842也被布置用于存储与逻辑组810d相关联的数据。与逻辑组810c相关联的数据被布置以存储于物理组814b的页面838的数据区内。具体而言,在所述实施例中,与逻辑组810d相关联的数据被写入组814a中,然后与逻辑组810c相关联的数据被写入物理组814b中。在物理组814b被写入数据后,再写入与逻辑组810d相关联的数据时,写入到物理组814c中。
参照图8b,将根据本发明的一个实施例描述如何写入物理块806的物理组814以实现如图8a所示的组关联关系的一个实例。用户可以选择将与逻辑组810d的逻辑“页面1”830b相关联的数据写入物理组814a中,或更具体而言,物理组814a的物理“页面1”834b,如860所示。一旦物理“页面1”834b被写入后,用户可将与逻辑“页面3”830d相关联的数据写入物理组814a的“页面3”834d中,如862所示。
如果下一用户指令是写入与逻辑组810c相关联的数据,则即使在物理组814a中有额外的页面834可用时,与逻辑组810c相关联的数据仍会写入一基本上为空的物理组814中,或处于基本上被擦除状态的物理组814中。例如,与组810c的逻辑“页面2”826c相关联的数据可以被写入组814b的物理“页面”838c,如864所示。与逻辑组810c相关联的其它页面也可被写入组814b中,如866和868所示。
一旦写入与逻辑块810c相关联的数据后,用户可以决定再次写入与逻辑块810d相关联的数据。这样,与组810d的逻辑“页面5-7”830f-h相关联的数据可以被写入组814c的适当物理页面842内,如870、872和874所示。通常,与逻辑“页面5-7”830f-h相关联的数据不可写入物理组814a中,因为这样可能会发生一失序写错误,原因是物理组814b已被写入而在组814b之后再写入814a一般是不允许的。因此,与逻辑组810d相关联的数据可被置于物理组814a和物理组814c内。
与与逻辑块802相关联的更高总体逻辑块地址相关联的数据可以存储到总体物理块地址低于与较低整体逻辑块地址相关联的数据的物理块806的物理页面中。举例来说,尽管与逻辑页面830b相关联的内容可以被写入物理页面834b中,而所述物理页面834b的总体物理块地址可低于用来写入与逻辑页面826c相关联的内容的物理页面838c,但是与逻辑页面830b相关联的总体逻辑块地址可以高于与逻辑页面826c相关联的总体逻辑块地址。
如果一先前写过的页面被盖写,例如在逻辑“页面1”830b已被写入“页面1”834且物理组814b已被写入之后某时,与逻辑“页面1”830b相关联的数据被写入物理组814d(未显示),则存储于“页面1”834b的数据区中的内容可视为无效。这样,检索与逻辑“页面1”830b相关联的内容的命令会导致物理块806被有效地反向搜索,直到发现一相应的物理页面。换句话说,首先会搜索物理组814d,然后是物理组814c、物理组814b和物理组814a。通过反向搜查,一般可存取到最新的数据。
如图所示,在物理组814a-c已经写入之后,物理组814d仍然基本上处于未指配状态。如果将要写入逻辑组810b,则与逻辑组810b相关联的数据可被写入物理组814d中。也就是说,如图8c所示,物理组814d可以有效地被指配给逻辑组810b。与逻辑组810b相关联的数据被写入物理组814d,而与逻辑组810c相关联的数据被写入物理组814b。逻辑组810d与物理组814a和物理组814c两者均有关联。
当物理组814d被指配给逻辑组810b,且与逻辑组810b相关联的数据被写入物理组814d的数据区时,如果与逻辑组810d相关联的数据再次被写入,则没有可用的物理组814供写入数据。如此,实际上获得一新的物理块(例如,备用物理块)作为与逻辑块802相对应的物理块。换句话说,分配一新的物理块,以使与物理块806(即当前物理块)相关联的基本上所有的当前数据以及新的用户数据可被合并到所述新物理块中。
图8d是一图示,其显示根据本发明的一个实施例在合并操作后一逻辑块(即图8a-c的逻辑块802)与一新的物理块之间的关联关系。当图8c中物理块806的内容以及与逻辑块802相关联的新用户数据被合并为一新的物理块880时,应了解,空白页面和无效页面(例如已被有效盖写的页面)不能写入新的物理块880中。此外,新数据——例如因图8c的物理块806内缺乏可用空间而提示分配新物理块880的数据——有效地超越了与所述新数据对应的现有数据,即新数据超越了与所述新数据位于同一逻辑页面上的现有数据。
一旦合并已经发生且新数据已被写入新物理块880后,逻辑块802和新物理块880之间的关联关系可为使得:与逻辑块802的组810b相关联的数据被存储于一物理组884a中;与逻辑块802的组810c相关的数据被存储于一物理组884b中;与逻辑块802的组810d相关的数据被存储于一物理组884c中。物理组884d保持在一基本上被擦除的状态,直到需要所述物理组884d。所属领域的技术人员将了解,一旦数据被合并或写入新物理块880中,则图8a中的原始物理块806可被擦除并用作一备用物理块。
为使存取与页面相关联的组识别符的读操作更有效地发生,可以在例如图4c的RAM 162中建立一当前工作块信息表,以记录何时读或写当前块内的页面。图9是一图示,其显示一根据本发明的一实施例的当前工作块信息表。信息表950被布置用于存储组号954。当读取一页面时,其组号954即被存储入信息表950中。存储组号954通常用于减少相同块——即包括组号954被存储在信息表950中的页面的块——的下一请求读取时的读取次数。通常,与一当前工作块相关的信息基本上被保持于信息表950中。为了基本上将一整体系统内对RAM的需求降至最小,可以仅针对当前被存取的块建立信息表950。当存取一不同的块时,现有信息表中的信息有效地被所述新块的信息所取代。
参照图10a和10b,下文将根据本发明的一个实施例描述与一方法相关的步骤,所述方法是用于将与一构成一逻辑组一部分的逻辑页面相关联的内容写入一构成一物理组一部分的物理页面。将内容写入一物理页面的过程1000开始于步骤1004,其中识别将要写入一物理页面的内容。也就是说,获取或识别将要写入的与一逻辑页面(例如逻辑页面“A”)相关联的新数据。
在识别了将要写入的内容之后,在步骤1008确定是否存在一与逻辑页面“A”相对应的物理页面。换句话说,确定逻辑页面“A”或更一般而言包含逻辑页面“A”的逻辑组是否与上次指配或关联的物理组相同。如果确定它是上次被指配的逻辑页面“A”的物理组,则在步骤1012确定在已指配的物理组中是否有一合适的页面可供用于写入与逻辑页面“A”相关的内容。确定是否存在一合适的页面的步骤可包括确定假如要将与逻辑页面“A”相关联的内容写入所述指配的物理组是否会发生一失序写错误。所述确定步骤也可包括确定在所述已指配的物理组内是否存在一未写页面可用于写入与逻辑页面“A”相关联的内容。
如果在步骤1012确定在所述已指配的物理组内有一合适的页面,则在步骤1016,将与逻辑页面“A”相关联的数据或内容写入所述合适页面。应当了解,基本上可以采用任何合适的方法来将数据写入一物理页面内。在数据被写入后,向一物理组的一物理页面写数据的过程即告完成。
或者,如果在步骤1012确定在所述已指配的物理组内没有合适的页面,则指示可能是所指配的物理组内的页面已满,或者不存在不会导致失序写错误的合适页面。如此,所述流程从步骤1012转至步骤1020,在步骤1020中确定在所述物理块内是否有一可用物理组。换句话说,在步骤1020中确定在所述物理块内是否有组尚未与一特定逻辑组相关联。
当确定存在可用的物理组时,在步骤1024,将所述可用的物理组有效地指配给包含逻辑页面“A”的逻辑组。一旦将所述可用的物理组指配给所述逻辑组,与逻辑页面“A”相关联的数据或内容在步骤1028中被写入所述新指配的物理组内的合适页面中。一旦写入所述数据,向一物理组的一物理页面写数据的过程即告完成。
返回至步骤1020,并确认在指配给逻辑页面“A”的所述物理块内是否存在一可用物理组,如果确定不存在可用的物理组,则意味着与逻辑页面“A”相关联的数据或内容不能被写入所述物理块,即当前物理块。相应地,流程前进到步骤1032,确定是否有一备用物理块可用。如果确定没有备用的物理块可用,则在步骤1036发出一异常指示,指示与逻辑页面“A”相关联的内容不能被写入。一旦发出所述异常指示,向一物理组的物理页面写入数据的过程即告停止,且通常会报告一失败指示。控制器软件和固件的设计正常情况下会尽量避免此情况的发生,除非闪存存储器被平均地应用至其寿命结束。
另一方面,如果在步骤1032中确定有一可用的备用物理块,则在步骤1040中将所述备用物理块指定用于包含逻辑页面“A”的逻辑块。然后,在步骤1044,来自先前指配到包含逻辑页面“A”的所述逻辑块的“旧”物理块的有效数据被合并到所述“新的”或备用物理块内的组中。此外,在步骤1004中获得的所述新数据或与逻辑页面“A”相关联的内容被写入与所述备用物理块相关联的组中的页面内。在所述旧物理块的有效数据被合并入所述备用物理块后,在步骤1048中,擦除所述旧物理块。例如,如果所述旧物理块尚未基本上达到其寿命终点,对旧物理块的擦除可将该旧物理块随后用作一备用物理块。一旦所述旧物理块被擦除,则向一物理组的物理页面写入数据的过程即告停止。
一般而言,以软件形式提供与块内页面分组相关的功能,例如,作为程序代码装置或作为一主机系统的固件。图11显示一与提供给一主机系统用于启动损耗平衡(wear leveling)的软件或固件相关联的合适系统架构的实施例。一系统架构900一般包括多种模块,其可包括(但不限于):一应用接口模块904、一系统管理器模块908、一数据管理器模块912、一数据完整性管理器916以及一装置管理器和接口模块920。一般而言,可使用可被一处理器(例如图4a的处理器108)所存取的软件代码装置或固件来构建系统架构900。
一般而言,应用接口模块904可被安排用于与主机、操作系统或用户直接通信。应用接口模块904也与系统管理器模块908和数据管理器模块912通信。当用户想要读、写或格式化闪存存储器时,用户向操作系统发送一请求,所述请求被传送至所述应用接口模块904。应用接口模块904视所述请求而定将所述请求送往系统管理器模块908或数据管理器模块912。
系统管理器模块908包括一系统初始化子模块924、一擦除计数块管理子模块926以及一电源管理块子模块930。系统初始化子模块924一般被布置用于使一初始化请求能得到处理,并通常与擦除计数块管理子模块926通信。擦除计数块管理子模块926的功能包括:使块的擦除计数被存储,以及使用个别的擦除计数来计算平均擦除计数并予以更新。擦除计数的使用在2002年10月28日提交的共同待决美国专利申请案第10/281,739号(代理案号SANDP023)中作了描述,此专利申请案的全文以引用方式并入本文中。
除与应用接口模块904通信外,系统管理器模块908也与数据管理器模块812以及设备管理器和接口模块920通信。与系统管理器模块908和应用接口模块904通信的数据管理器模块912可以包括提供扇区映射的功能,其有效地将逻辑扇区转换成物理扇区。也就是说,数据管理器模块912被布置用于将逻辑块映射至物理块。数据管理器模块912也可包括与操作系统和文件系统接口层相关联的功能,并可使块内的组得到管理。
与系统管理器模块908、数据管理器912和数据完整性管理器916通信的设备管理器和接口模块920通常提供一闪存存储器接口,并包括与硬件抽象(例如一I/O接口)相关的功能。数据完整性管理器模块916提供纠错码(ECC)处理以及其它功能。
尽管本文已经阐述了本发明的几个实施例,但是应了解,在不脱离本发明的精神或范围的条件下,可采用许多其它具体形式来实施本发明。举例而言,尽管文中将逻辑块内的逻辑组和物理块内相应的物理组描述为具有基本上相同的大小,但是逻辑组和物理组一般可具有不同的大小。换句话说,一逻辑组内所含的页面数量和与所述逻辑组相应的物理组内所含的页面数量可不必相同。
与本发明的各种方法相关的步骤可有很多变化。一般而言,可以增加、删除、重新排序和改变步骤。因此,应将本发明的实例视为举例说明性而非限制性的作用,并且本发明并非仅限于本文所给出的详细阐述,而可在随附权利要求的范围内进行修改。

Claims (52)

1.一种用于将数据写入与一非易失性存储器相关联的一第一块的方法,所述第一块包括复数个页面,所述复数个页面被划分为复数个组,其中所述复数个组中的每个组包括两个或更多页面,所述方法包括:
确定所述复数个组中的一第一组何时可用于接收所述数据;
在确定所述第一组可用于接收所述数据时,将所述数据写入所述第一组中所包含的一第一页面;
在确定所述第一组不可用于接收所述数据时,确定所述复数个组中的一第二组何时可用于接收所述数据;及
在确定所述第二组可用于接收所述数据时,将所述数据写入所述第二组中所包含的一第二页面。
2.根据权利要求1所述的方法,其进一步包括:
在确定所述第二组不可用于接收所述数据时,确定一第二块何时可用于接收所述数据。
3.根据权利要求1所述的方法,其中确定所述第一组何时可用于接收所述数据包括确定何时所述第一页面适合用于接收所述数据。
4.根据权利要求1所述的方法,其中所述数据与一逻辑页面相关联,且所述第一块是一第一物理块。
5.根据权利要求1所述的方法,其中所述第一组是由一个组识别符识别,所述组识别符被存储在与所述第一组相关联的一冗余区内,且确定何时所述第一组可用于接收所述数据包括获取所述组识别符。
6.一种存储器系统,其包括:
一非易失性存储器,所述非易失性存储器包括一第一块,所述第一块包括复数个页面,所述复数个页面被划分为复数个组,其中所述复数个组中的每个组包括两个或更多页面;
用于确定所述复数个组的一第一组何时可用于接收一组数据的复数个代码装置;
用于在确定所述第一组可用于接收该组数据时,将该组数据写入所述第一组中所包含的一第一页面的复数个代码装置;
用于在确定所述第一组不可用于接收该组数据时,确定所述复数个组中的一第二组何时可用于接收该组数据的复数个代码装置;及
用于在确定所述第二组可用于接收该组数据时,将该组数据写入所述第二组中所包含的一第二页面的复数个代码装置。
7.根据权利要求6所述的存储器系统,其进一步包括:
用于在确定所述第二组不可用于接收该组数据时,确定一第二块何时可用于接收该组数据的复数个代码装置,所述第二块包含在所述非易失性存储器中。
8.根据权利要求7所述的存储器系统,其进一步包括:
用于在确定所述第二块可用于接收该组数据时,将所述复数个页面中某些页面的内容拷入所述第二块的复数个代码装置;及
用于在确定所述第二块可用于接收该组数据时,将该组数据写入所述第二块的复数个代码装置。
9.根据权利要求6所述的存储器系统,其进一步包括:
用于确定所述第一组的复数个代码装置;及
用于确定所述第二组的复数个代码装置。
10.根据权利要求6所述的存储器系统,其中用于确定所述第一组何时可用于接收该组数据的所述代码装置包括用于确定所述第一页面何时适合用于接收该组数据的复数个代码装置。
11.根据权利要求6所述的存储器系统,其中所述数据与一逻辑页面相关联,且所述第一块是一第一物理块。
12.根据权利要求1所述的存储器系统,其中所述第一组由一个组识别符识别,所述组识别符被存储于一与所述第一组相关联的冗余区内,且用于确定所述第一组何时可用于接收该组数据的代码装置包括用于获取所述组识别符的复数个代码装置。
13.根据权利要求6所述的存储器系统,其进一步包括:
一用于存储所述代码装置的存储器;及
一用于处理所述代码装置的处理器。
14.根据权利要求6所述的存储器系统,其中所述非易失性存储器是一闪存存储器。
15.根据权利要求14所述的存储器系统,其中所述闪存存储器是一NAND闪存存储器。
16.根据权利要求6所述的存储器系统,其中所述代码装置是软件代码装置。
17.根据权利要求6所述的存储器系统,其中所述代码装置是固件代码装置。
18.一种存储块,所述存储块包含于一非易失性存储器内,所述存储块包括:
复数个页面,所述复数个页面包括一第一组页面和一第二组页面;
一第一组,所述第一组包括所述第一组页面,所述第一组具有用于识别所述第一组的一第一个组识别符,所述第一个组识别符存储于所述第一组内;及
一第二组,所述第二组包括所述第二组页面,所述第二组具有用于识别所述第二组的一第二个组识别符,所述第二个组识别符存储于所述第二组内。
19.根据权利要求18所述的存储块,其中包含于所述第一组页面内的该等面的一次序相对于所述第一组的一开始部位是基本上固定的,且包含于所述第二组页面内的该等页面的一次序相对于所述第二组的一开始部位是基本上固定的。
20.根据权利要求18所述的存储块,其中所述存储块是一物理块,且所述非易失性存储器是一闪存存储器。
21.一种将数据写入与一非易失性存储器相关联的一第一物理块的方法,所述物理块包括复数个物理页面,所述复数个物理页面被划分为复数个物理组,其中所述复数个物理组中的每个物理组包括两个或更多物理页面,所述方法包括:
识别与一第一逻辑页面相关联的一第一组数据,所述第一逻辑页面是包含于一逻辑块的一第一逻辑组中的复数个逻辑页面中的一个;
确定何时所述复数个物理组中的一第一物理组与所述第一逻辑组相关联;
在确定所述第一物理组与所述第一逻辑组相关联时,确定包含于所述第一物理组中的一第一物理页面何时可用于容纳所述第一组数据;及
在确定所述第一物理页面可用于容纳所述第一组数据时,将所述第一组数据写入所述第一物理页面。
22.根据权利要求21所述的方法,其进一步包括:
在确定所述第一物理组与所述第一逻辑组不相关联时,确定所述第一物理组何时可用;
在确定所述第一物理组可用时,使所述第一物理组与所述第一逻辑组相关联;及
将所述第一组数据写入与所述第一物理组相关联的一第二物理页面。
23.根据权利要求22所述的方法,其进一步包括:
识别与所述第一逻辑组相关联的一第二组数据;及
将所述第二组数据写入与所述第一物理组相关联的一第三物理页面。
24.根据权利要求23所述的方法,其进一步包括:
确定所述第三物理页面何时可用于容纳所述第二组数据,其中在确定所述第三物理页面可用于存储所述第二组数据时,将所述第二组数据写入所述第三物理页面。
25.根据权利要求21所述的方法,其进一步包括:
在确定所述第一物理页面不可用于存储所述第一组数据时,确定包含于所述复数个物理组中的一第二物理组何时可用;及
将所述第一组数据写入与所述第二物理组相关联的一第二物理页面。
26.根据权利要求25所述的方法,其进一步包括:
在确定所述第二物理组可用时,使所述第二物理组与所述第一逻辑组相关联。
27.根据权利要求25所述的方法,其进一步包括:
在确定所述第二物理组不可用时,确定与所述非易失性存储器相关联的一第二物理块何时可用于容纳所述第一组数据。
28.根据权利要求27所述的方法,其中在确定所述第二物理块可用时,所述方法进一步包括:
将包含于所述第一物理块中的所述复数个物理页面的某些内容拷入所述第二物理块中所包含的物理页面;及
将所述第一组数据写入与所述第二物理块相关联的一第三物理页面。
29.根据权利要求28所述的方法,其进一步包括:
擦除所述第一物理块。
30.根据权利要求28所述的方法,其中与所述第二物理块相关联的所述第三物理页面是所述第二物理块中所包含的一第三物理组的一部分,所述第三物理组包括两个或更多物理页面。
31.根据权利要求30所述的方法,其进一步包括:
使所述第三物理组与所述第一逻辑组相关联。
32.根据权利要求21所述的方法,其中确定所述第一物理组何时与所述第一逻辑组相关联包括:
自所述第一物理组获取一个组识别符,其中所述组识别符被安排用于识别所述第一物理组;及
确定所述组识别符是否与所述第一逻辑组相关联。
33.一种存储器系统,其包括:
一非易失性存储器,所述非易失性存储器包括一具有复数个物理页面的第一物理块,所述复数个物理页面被划分为复数个物理组,其中所述复数个物理组中的每个物理组包括两个或更多页面;及
一模块,所述模块被安排用于识别与一第一逻辑页面相关联的一第一组数据,所述第一逻辑页面是一逻辑块的一第一逻辑组中所包含的复数个逻辑页面中的一个,所述模块进一步被安排用于:确定所述复数个物理组中的一第一物理组何时与所述第一逻辑组相关联;在确定所述第一物理组与所述第一逻辑组相关联时,确定所述第一物理组中所包含的一第一物理页面何时可用于容纳所述第一组数据;及在确定所述第一物理页面可用于容纳所述第一组数据时,将所述第一组数据写入所述第一物理页面。
34.根据权利要求33所述的存储器系统,其中所述模块又进一步被安排用于:在确定所述第一物理组与所述第一逻辑组不相关联时,确定所述第一物理组何时可用;在确定所述第一物理组可用时,使所述第一物理组与所述第一逻辑组相关联;及将所述第一组数据写入与所述第一物理组相关联的一第二物理页面。
35.根据权利要求34所述的存储器系统,其中所述模块又进一步被安排用于识别与所述第一逻辑组相关联的一第二组数据;及
将所述第二组数据写入与所述第一物理组相关联的一第三物理页面。
36.根据权利要求35所述的存储器系统,其中所述模块又进一步被安排用于确定所述第三物理页面何时可用于容纳所述第二组数据,其中在确定所述第三物理页面可用于容纳所述第二组数据时,将所述第二组数据写入所述第三物理页面。
37.根据权利要求33所述的存储器系统,其中所述模块又进一步被安排用于:在确定所述第一物理页面不可用于容纳所述第一组数据时,确定包含于所述复数个物理组的一第二物理组何时可用;在确定所述第二物理组可用时,使所述第二物理组与所述第一逻辑组相关联;及将所述第一组数据写入与所述第二物理组相关联的一第二物理页面。
38.根据权利要求37所述的存储器系统,其进一步包括:
一第二物理块,其中所述模块又进一步被安排用于:在确定所述第二物理组不可用时,确定与所述非易失性存储器相关联的所述第二物理块何时可用于容纳所述第一组数据;在确定所述第二物理块可用时,将包含于所述第一物理块内的所述复数个物理页面的某些内容拷入包含于所述第二物理块内的物理页面;及在确定所述第二物理块可用时,将所述第一组数据写入与所述第二物理块相关联的一第三物理页面。
39.根据权利要求38所述的存储器系统,其中所述模块又进一步被安排用于擦除所述第一物理块。
40.根据权利要求33所述的存储器系统,其中所述模块被安排用于确定所述第一物理组何时与所述第一逻辑组相关联包括通过自所述第一物理组获取一个组识别符,其中所述组识别符被安排用于识别所述第一物理组,及确定所述组识别符是否与所述第一逻辑组相关联。
41.根据权利要求33所述的存储器系统,其中所述非易失性存储器是一NAND闪存存储器。
42.一种用于将数据写入与一非易失性存储器相关联的一第一物理块的系统,所述第一物理块包括复数个物理页面,所述复数个物理页面被划分为复数个物理组,其中所述复数个物理组中的每个物理组包括两个或更多物理页面,所述系统包括:
识别构件,其用于识别与一第一逻辑页面相关联的一第一组数据,所述第一逻辑页面是一逻辑块中的一第一逻辑组中所包含的复数个逻辑页面中的一个;
确定构件,其用于确定所述复数个物理组中的一第一物理组何时与所述第一逻辑组相关联;
确定构件,其用于在确定所述第一物理组与所述第一逻辑组相关联时,确定所述第一物理组中所包含的一第一物理页面何时可用于容纳所述第一组数据;及
写入构件,其用于在确定所述第一物理页面可用于存储所述第一组数据时,将所述第一组数据写入所述第一物理页面。
43.根据权利要求42所述的系统,其进一步包括:
确定构件,其用于在确定所述第一物理组与所述第一逻辑组不相关联时,确定所述第一物理组何时可用;
关联构件,其用于在确定所述第一物理组可用时,使所述第一物理组与所述第一逻辑组相关联;及
写入构件,其用于将所述第一组数据写入与所述第一物理组相关联的一第二物理页面。
44.根据权利要求43所述的系统,其进一步包括:
识别构件,其用于识别与所述第一逻辑组相关联的一第二组数据;
写入构件,其用于将所述第二组数据写入与所述第一物理组相关联的一第三物理页面;
确定构件,其用于确定所述第三物理页面何时可用于容纳所述第二组数据,其中在确定所述第三物理页面可用于容纳所述第二组数据时,将所述第二组数据写入所述第三物理页面。
45.根据权利要求42所述的系统,其进一步包括:
确定构件,其用于在确定所述第一物理页面不可用于容纳所述第一组数据时,确定所述复数个物理组中所包含的一第二物理组何时可用;及
写入构件,其用于将所述第一组数据写入与所述第二物理组相关联的一第二物理页面。
46.根据权利要求45所述的系统,其进一步包括:
关联构件,其用于在确定所述第二物理组可用时,使所述第二物理组与所述第一逻辑组相关联。
47.根据权利要求45所述的系统,其进一步包括:
确定构件,其用于在确定所述第二物理组不可用时,确定与所述非易失性存储器相关联的一第二物理块何时可用于容纳所述第一组数据。
48.根据权利要求47所述的系统,其进一步包括:
拷贝构件,其用于在确定所述第二物理块可用时,将所述第一物理块内所包含的所述复数个物理页面的某些内容拷入所述第二物理块内所包含的物理页面;
写入构件,其用于在确定所述第二物理块可用时,将所述第一组数据写入与所述第二物理块相关联的一第三物理页面。
49.根据权利要求48所述的系统,其进一步包括:
用于擦除所述第一物理块的构件。
50.根据权利要求48所述的系统,其中与所述第二物理块相关联的所述第三物理页面是所述第二物理块中所包含的一第三物理组的一部分,且所述第三物理组包括两个或更多物理页面。
51.根据权利要求50所述的系统,其进一步包括:
关联构件,其用于使所述第三物理组与所述第一逻辑组相关联。
52.根据权利要求42所述的系统,其中用于确定所述第一物理组何时与所述第一逻辑组相关联的构件包括:用于从所述第一物理组获取一个组识别符的构件,其中所述组识别符被安排用于识别所述第一物理组;及用于确定所述组识别符是否与所述第一逻辑组相关联的构件。
CNB038247704A 2002-10-28 2003-09-10 用于块内页面分组的方法及设备 Expired - Fee Related CN100454273C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/281,855 US7254668B1 (en) 2002-10-28 2002-10-28 Method and apparatus for grouping pages within a block
US10/281,855 2002-10-28

Publications (2)

Publication Number Publication Date
CN1795437A true CN1795437A (zh) 2006-06-28
CN100454273C CN100454273C (zh) 2009-01-21

Family

ID=32228778

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038247704A Expired - Fee Related CN100454273C (zh) 2002-10-28 2003-09-10 用于块内页面分组的方法及设备

Country Status (10)

Country Link
US (1) US7254668B1 (zh)
EP (1) EP1576478B1 (zh)
JP (1) JP4611024B2 (zh)
KR (1) KR100886520B1 (zh)
CN (1) CN100454273C (zh)
AT (1) ATE466337T1 (zh)
AU (1) AU2003268530A1 (zh)
DE (1) DE60332394D1 (zh)
TW (1) TWI262388B (zh)
WO (1) WO2004040453A2 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103425594A (zh) * 2012-05-23 2013-12-04 群联电子股份有限公司 数据处理方法、存储器控制器与存储器存储装置
CN104536906A (zh) * 2011-08-02 2015-04-22 群联电子股份有限公司 数据写入方法、存储器控制器与存储器储存装置
US9213631B2 (en) 2012-05-11 2015-12-15 Phison Electronics Corp. Data processing method, and memory controller and memory storage device using the same
CN106021121A (zh) * 2015-03-30 2016-10-12 凯为公司 用以优化分组缓冲器空间的分组处理系统、方法和设备
CN106293521A (zh) * 2016-08-02 2017-01-04 华中科技大学 一种映射粒度自适应的闪存转换层管理方法
US11297012B2 (en) 2015-03-30 2022-04-05 Marvell Asia Pte, Ltd. Packet processing system, method and device having reduced static power consumption
US11824796B2 (en) 2013-12-30 2023-11-21 Marvell Asia Pte, Ltd. Protocol independent programmable switch (PIPS) for software defined data center networks

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CN100483552C (zh) * 2002-10-28 2009-04-29 桑迪士克股份有限公司 在非易失性存储系统中执行自动磨损平衡的方法
JP4261892B2 (ja) * 2002-12-12 2009-04-30 キヤノン株式会社 データ処理装置および制御方法および記憶媒体
JP4661086B2 (ja) * 2004-05-24 2011-03-30 パナソニック株式会社 不揮発性記憶装置および不揮発性メモリの消去方法と書込み方法
JP3942612B2 (ja) * 2004-09-10 2007-07-11 東京エレクトロンデバイス株式会社 記憶装置、メモリ管理方法及びプログラム
US9104315B2 (en) 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
KR100706242B1 (ko) * 2005-02-07 2007-04-11 삼성전자주식회사 메모리 시스템 및 그것의 런 단위 어드레스 매핑 테이블 구성 방법
US7669003B2 (en) 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
DE602006019263D1 (de) * 2005-08-03 2011-02-10 Sandisk Corp Nichtflüchtiger speicher mit blockverwaltung
US7480766B2 (en) * 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
US7949845B2 (en) 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
KR101272642B1 (ko) * 2005-08-03 2013-06-10 쌘디스크 코포레이션 플래시 메모리시스템 내의 데이터 저장 용량의 리클레이밍
US7814262B2 (en) 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
US7769978B2 (en) 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7793068B2 (en) 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
KR100806343B1 (ko) * 2006-10-19 2008-02-27 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법
US8073648B2 (en) * 2007-05-14 2011-12-06 Sandisk Il Ltd. Measuring threshold voltage distribution in memory using an aggregate characteristic
JP5087347B2 (ja) * 2007-09-06 2012-12-05 株式会社日立製作所 半導体記憶装置及び半導体記憶装置の制御方法
KR101433860B1 (ko) * 2007-10-10 2014-08-26 삼성전자주식회사 파일을 효율적으로 관리할 수 있는 정보 처리 장치
US7613045B2 (en) * 2007-11-26 2009-11-03 Sandisk Il, Ltd. Operation sequence and commands for measuring threshold voltage distribution in memory
KR101077339B1 (ko) 2007-12-28 2011-10-26 가부시끼가이샤 도시바 반도체 기억 장치
TWI485563B (zh) * 2008-09-17 2015-05-21 Silicon Motion Inc 快閃記憶裝置及其運作方法
TWI394161B (zh) * 2008-12-15 2013-04-21 Silicon Motion Inc 快閃記憶體裝置及其資料管理方法
US9201824B2 (en) * 2009-01-22 2015-12-01 Intel Deutschland Gmbh Method and apparatus for adaptive data chunk transfer
KR101586047B1 (ko) 2009-03-25 2016-01-18 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
US8806165B2 (en) * 2009-04-10 2014-08-12 Kaminario Technologies Ltd. Mass-storage system utilizing auxiliary solid-state storage subsystem
TWI450271B (zh) * 2009-09-02 2014-08-21 Silicon Motion Inc 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
TWI453747B (zh) * 2009-09-02 2014-09-21 Silicon Motion Inc 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
US8463983B2 (en) * 2009-09-15 2013-06-11 International Business Machines Corporation Container marker scheme for reducing write amplification in solid state devices
US9104546B2 (en) * 2010-05-24 2015-08-11 Silicon Motion Inc. Method for performing block management using dynamic threshold, and associated memory device and controller thereof
TWI451439B (zh) * 2010-12-10 2014-09-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與資料寫入方法
TWI553654B (zh) * 2010-12-16 2016-10-11 群聯電子股份有限公司 資料管理方法、記憶體控制器與記憶體儲存裝置
US10089017B2 (en) 2011-07-20 2018-10-02 Futurewei Technologies, Inc. Method and apparatus for SSD storage access
KR20130043445A (ko) * 2011-10-20 2013-04-30 삼성전자주식회사 인터페이스 관리 방법 및 이를 이용한 저장 장치에서의 매핑 처리 방법
US9116792B2 (en) * 2012-05-18 2015-08-25 Silicon Motion, Inc. Data storage device and method for flash block management
US9076545B2 (en) 2013-01-17 2015-07-07 Sandisk Tecnologies Inc. Dynamic adjustment of read voltage levels based on memory cell threshold voltage distribution
JP6100927B2 (ja) * 2014-02-05 2017-03-22 株式会社日立製作所 情報処理装置
US9880780B2 (en) 2015-11-30 2018-01-30 Samsung Electronics Co., Ltd. Enhanced multi-stream operations
US9898202B2 (en) 2015-11-30 2018-02-20 Samsung Electronics Co., Ltd. Enhanced multi-streaming though statistical analysis
US10785301B2 (en) * 2017-08-03 2020-09-22 Toshiba Memory Corporation NVM express over fabrics
KR101947286B1 (ko) * 2017-11-29 2019-02-12 울산과학기술원 메모리 컨트롤 장치 및 방법
KR102469539B1 (ko) 2017-12-22 2022-11-22 삼성전자주식회사 비휘발성 메모리 장치, 비휘발성 메모리 장치의 동작 방법 및 저장 장치
US11294580B2 (en) * 2017-12-22 2022-04-05 Samsung Electronics Co., Ltd. Nonvolatile memory device

Family Cites Families (34)

* 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
US5095420A (en) 1988-11-21 1992-03-10 International Business Machines Method and system for performing virtual address range mapping in a virtual storage data processing system
EP0617363B1 (en) 1989-04-13 2000-01-26 SanDisk Corporation Defective cell substitution in EEprom array
US5222109A (en) 1990-12-28 1993-06-22 Ibm Corporation Endurance management for solid state files
EP0508577A1 (en) 1991-03-13 1992-10-14 International Business Machines Corporation Address translation mechanism
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US5438573A (en) 1991-09-13 1995-08-01 Sundisk Corporation Flash EEPROM array data and header file structure
CA2055295C (en) 1991-11-12 2000-05-23 Jean Gilles Fecteau Logical mapping of data objects using data spaces
US5341339A (en) 1992-10-30 1994-08-23 Intel Corporation Method for wear leveling in a flash EEPROM memory
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
JP3078946B2 (ja) * 1993-03-11 2000-08-21 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置
US5388083A (en) 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
JP3507132B2 (ja) * 1994-06-29 2004-03-15 株式会社日立製作所 フラッシュメモリを用いた記憶装置およびその記憶制御方法
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
US5845313A (en) 1995-07-31 1998-12-01 Lexar Direct logical block addressing 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 半導体記憶装置
JPH09212411A (ja) * 1996-02-06 1997-08-15 Tokyo Electron Ltd メモリシステム
US5860082A (en) 1996-03-28 1999-01-12 Datalight, Inc. Method and apparatus for allocating storage in a flash memory
US6139177A (en) * 1996-12-03 2000-10-31 Hewlett Packard Company Device access and control using embedded web access functionality
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
GB9801373D0 (en) * 1998-01-22 1998-03-18 Memory Corp Plc Memory system
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
US6772274B1 (en) 2000-09-13 2004-08-03 Lexar Media, Inc. Flash memory system and method implementing LBA to PBA correlation within flash memory array
US6684289B1 (en) * 2000-11-22 2004-01-27 Sandisk Corporation Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US6522580B2 (en) * 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
US6823526B2 (en) * 2001-07-05 2004-11-23 Hewlett-Packard Development Company, L.P. Computer-based system and method for automatic configuration of an external device

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104536906A (zh) * 2011-08-02 2015-04-22 群联电子股份有限公司 数据写入方法、存储器控制器与存储器储存装置
CN104536906B (zh) * 2011-08-02 2017-10-10 群联电子股份有限公司 数据写入方法、存储器控制器与存储器储存装置
US9213631B2 (en) 2012-05-11 2015-12-15 Phison Electronics Corp. Data processing method, and memory controller and memory storage device using the same
CN103425594A (zh) * 2012-05-23 2013-12-04 群联电子股份有限公司 数据处理方法、存储器控制器与存储器存储装置
CN103425594B (zh) * 2012-05-23 2016-09-14 群联电子股份有限公司 数据处理方法、存储器控制器与存储器存储装置
US11824796B2 (en) 2013-12-30 2023-11-21 Marvell Asia Pte, Ltd. Protocol independent programmable switch (PIPS) for software defined data center networks
CN106021121A (zh) * 2015-03-30 2016-10-12 凯为公司 用以优化分组缓冲器空间的分组处理系统、方法和设备
CN106021121B (zh) * 2015-03-30 2021-10-22 马维尔亚洲私人有限公司 用以优化分组缓冲器空间的分组处理系统、方法和设备
US11297012B2 (en) 2015-03-30 2022-04-05 Marvell Asia Pte, Ltd. Packet processing system, method and device having reduced static power consumption
US11652760B2 (en) 2015-03-30 2023-05-16 Marvell Asia Pte., Ltd. Packet processing system, method and device having reduced static power consumption
CN106293521A (zh) * 2016-08-02 2017-01-04 华中科技大学 一种映射粒度自适应的闪存转换层管理方法
CN106293521B (zh) * 2016-08-02 2019-04-12 华中科技大学 一种映射粒度自适应的闪存转换层管理方法

Also Published As

Publication number Publication date
EP1576478B1 (en) 2010-04-28
TW200413916A (en) 2004-08-01
AU2003268530A8 (en) 2004-05-25
EP1576478A2 (en) 2005-09-21
JP2006515086A (ja) 2006-05-18
TWI262388B (en) 2006-09-21
AU2003268530A1 (en) 2004-05-25
US7254668B1 (en) 2007-08-07
JP4611024B2 (ja) 2011-01-12
WO2004040453A2 (en) 2004-05-13
DE60332394D1 (de) 2010-06-10
WO2004040453A3 (en) 2006-02-16
KR100886520B1 (ko) 2009-03-02
KR20050070092A (ko) 2005-07-05
CN100454273C (zh) 2009-01-21
ATE466337T1 (de) 2010-05-15

Similar Documents

Publication Publication Date Title
CN1795437A (zh) 用于块内页面分组的方法及设备
CN100487672C (zh) 用于分割一逻辑块的方法及设备
US7877540B2 (en) Logically-addressed file storage methods
TWI394160B (zh) 用於重映射記憶體裝置之儲存位址的方法及系統
CN101937319B (zh) 存储器系统及其映射方法
TWI421684B (zh) 可再程式化非揮發性記憶體系統以及操作ㄧ非揮發性記憶體系統之方法
US8880483B2 (en) System and method for implementing extensions to intelligently manage resources of a mass storage system
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
US20070136553A1 (en) Logically-addressed file storage systems
US20110022778A1 (en) Garbage Collection for Solid State Disks
CN101069163A (zh) 存储器系统以及写入非易失性半导体存储器中的方法
CN1702776A (zh) 存储卡、半导体装置和半导体存储器的控制方法
CN1745433A (zh) 对非易失性存储器中缺陷的区界调整
US20090164745A1 (en) System and Method for Controlling an Amount of Unprogrammed Capacity in Memory Blocks of a Mass Storage System
JP2009503743A (ja) データファイルを直接記憶するメモリブロックの管理
EP1960863A2 (en) Logically-addressed file storage
JP2009503740A (ja) データファイルを直接記憶する再プログラム可能な不揮発性メモリ内のファイルデータの索引付け
CN1701300B (zh) 用于分解与一共用逻辑块相关联的物理块的方法和设备
CN113687771A (zh) 存储器装置的存取管理方法、控制器以及主机装置
US20100042798A1 (en) Methods and Apparatus for Passing Information to a Host System to Suggest Logical Locations to Allocate to a File

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: 20120327

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

Effective date of registration: 20120327

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

Granted publication date: 20090121

Termination date: 20200910

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