CN1705936A - 用于分割一逻辑块的方法及设备 - Google Patents

用于分割一逻辑块的方法及设备 Download PDF

Info

Publication number
CN1705936A
CN1705936A CNA038247852A CN03824785A CN1705936A CN 1705936 A CN1705936 A CN 1705936A CN A038247852 A CNA038247852 A CN A038247852A CN 03824785 A CN03824785 A CN 03824785A CN 1705936 A CN1705936 A CN 1705936A
Authority
CN
China
Prior art keywords
physical
data
block
physical block
logical
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
CNA038247852A
Other languages
English (en)
Other versions
CN100487672C (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 CN1705936A publication Critical patent/CN1705936A/zh
Application granted granted Critical
Publication of CN100487672C publication Critical patent/CN100487672C/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
    • 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
    • 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

Abstract

本发明揭示用以将一单个逻辑块分成两个或更多个物理块的方法及设备。根据本发明的一个方面,一种用于使一非易失性存储器的复数个物理块与包括逻辑块元件的一逻辑块相关联的方法涉及将所述逻辑块元件划分为至少一第一逻辑组和一第二逻辑组。与所述第一逻辑组相关联的数据被提供至一第一物理块。而与所述第二逻辑组相关联的数据被提供至一第二物理块。

Description

用于分割一逻辑块的方法及设备
相关申请交叉引用
本发明与下列专利申请有关:于2002年10月28日提交的标题为“非易失性存储系统的损耗平衡”(″WEAR LEVELING IN NONVOLATILE STORAGESYSTEMS″)的第10/281,739号(代理人案号SANDP023/SDK0366.000US)共同待决美国专利申请;于2002年10月28日提交的标题为“跟踪非易失性存储器系统中最频繁擦除的存储块”(″TRACKING THE MOST FREQUENTLYERASED BLOCKS IN NON-VOLATILE MEMORY SYSTEMS″)的第10/281,670号(代理人案号SANDP025/SDK0366.002US)共同待决美国专利申请;于2002年10月28日提交的标题为“跟踪非易失性存储器系统中最不频繁擦除的存储块”(″TRACKING THE LEAST FREQUENTLY ERASED BLOCKS INNON-VOLATILE MEMORY SYSTEMS″)的第10/281,824号(代理人案号SANDP026/SDK0366.003US)共同待决美国专利申请;于2002年10月28日提交的标题为“用于在一块内划分页面的方法及设备”(″METHOD ANDAPPARATUS FOR GROUPING PAGES WITHINA BLOCK″)的第10/281,855号(代理人案号SANDP029/SDK0410.000US)共同待决美国专利申请;于2002年10月28日提交的标题为“用于分解与一共用逻辑块相关的物理块的方法及设备”(″METHOD AND APPARATUS FOR RESOLVING PHYSICAL BLOCKSASSOCIATED WITH A COMMON LOGICAL BLOCK″)的第10/281,762号(代理人案号SANDP030/SDK0416.000US)共同待决美国专利申请。上述专利申请皆以引用方式全文并入本文中。
技术领域
本发明大致上是关于大容量数字数据存储系统。更具体而言,本发明是关于用于减少与一闪存相关联的一文件分配表(FAT)被拷贝次数的系统和方法。
背景技术
由于诸如闪存存储系统等非易失性存储系统的实体尺寸紧凑且非易失性存储器具有可重复编程的能力,所以此类存储系统的使用正在迅速增加。闪存存储系统紧凑的实体尺寸有利于此种存储系统用于各种日益流行的装置内。使用此类闪存存储系统的装置包括但不仅限于:数字照相机、数字摄像机、数字音乐播放机、手持式个人计算机及全球定位装置。闪存存储系统内包含的可对非易失性存储器重复编程的能力使得能够使用和重复使用闪存存储系统。
总而言之,闪存存储系统可包括闪存卡和闪存芯片组。闪存芯片组一般包括数个闪存组件和控制器组件。通常,可将一闪存芯片组布置组装在一嵌入式系统内。此种组件或主机系统的制造商一般会以组件形式获得闪存以及其它组件,然后将所述闪存以及所述其它组件组装在一主机系统内。
如图1a所示,在一文件系统内,存储器10被有效地划分为一系统或目录区12以及一数据区14。系统区12一般包括根目录和文件分配表(FAT),而数据文件通常包括在数据区14内。一文件系统可(例如)一次一个页面地将扇区内的数据写入系统区12,而且可(例如)一次复数个页面地将簇内的数据写入数据区14。每个簇的尺寸一般是一与数据区14相关的文件的最小尺寸,且可以各不相同。例如,在一运行一Windows系统或一DOS系统的完整系统内,一个簇的尺寸可以被设计为包括约4个页面。
在系统区12中,通常一次存取一个扇区或一个页面。也就是说,当需要在系统区12(例如对一FAT)内执行一更新时,在任何给定时间,基本上只可更新一个页面。与一逻辑块或与一文件系统的块相关联的任何更新均被有效地传播至被映射至所述逻辑块的一物理块。图1b是一图表,其显示一逻辑块与一物理块之间的映射。一逻辑块52包括复数个页面,每个页面被映射至一物理块54的页面,这样,当一与逻辑块52相关联的页面被更新时,所述更新被写入物理块54。
当一页面被更新时,与所述页面对应的一物理块实际上被重新拷贝在一包含所述页面的新物理块内,而原物理块被擦除。总而言之,每当一物理块内的一单个页面将要被更新时,拷贝所述块的全部内容会耗用一相当大的开销,而且可证明耗费时间。
因此,需要一种方法及一种设备来有效地更新与系统块相关联的页面。也就是说,所需要的是一种过程和一种系统,其在无须大量占用计算资源的前提下,在任何给定时间均能够有效地更新其中基本上仅重写一单个页面的块。
发明内容
本发明是关于一种用于将一逻辑块分成两个或更多物理块的系统和方法。根据本发明的一个方面,一种用于使一非易失性存储器的复数个物理块与包括逻辑块元件的一逻辑块相关联的方法涉及将所述逻辑块元件划分为至少一第一逻辑组和一第二逻辑组。与所述第一逻辑组相关联的数据被提供至一第一物理块,而与所述第二逻辑组相关联的数据被提供至一第二物理块。
在一实施例中,所述第一物理块包括物理块元件,而所述方法还包括将所述第一物理块所包含的复数个物理块元件划分为一第一物理组和一第二物理组。然后,与所述第一逻辑组相关联的数据可被写入所述第一物理组。在此一实施例中,所述方法还可写入与所述第一逻辑组相关联的新数据,以使写入与所述第一逻辑组相关联的所述更新数据包括将更新数据写入所述第二物理组。
通过将一般一次存取少于4页的一个逻辑块分成复数个物理块,在一整体闪存系统被格式化时,由于所述逻辑块数据的一部分可被写入复数个物理块的每一个中,因此与所述逻辑块相关联的每个物理块基本上仅是部分存满。在每个物理块基本上只是部分存满时,每个物理块实际上都有可写入更新的可用页面。这样,由于能够将与更新有关的信息写入一物理块的可用页面内,从而降低了将一存满的物理块重写入一空物理块的需要。只有在所述的可用页面全部存满后,才可能需要重写所述物理块。由此,通过减少将物理块拷贝在其它物理块内及将其擦除的次数,可以提高一整体系统的性能。
根据本发明的另一方面,一种存储器装置包括:一识别含有复数个逻辑元件的一逻辑块的第一组件、一包括一第一物理块和一第二物理块的第二组件、以及一第三组件。包含在所述第二组件中的所述第一物理块和所述第二物理块各包括复数个物理元件。所述第三组件基本上将包含于所述逻辑块内的所述复数个逻辑元件划分为一第一逻辑组和一第二逻辑组,并将与所述第一逻辑组相关联的内容写入所述第一物理块,将与所述第二逻辑块相关联的内容写入所述第二物理块。在一实施例中,所述第一物理块包含所述复数个物理元件的一第一组物理元件和所述复数个物理元件的一第二组物理元件,而所述第三组件被布置用于将与所述第一逻辑组相关联的内容写入所述第一组物理元件。
在另一实施例中,所述第二物理块包含所述复数个物理元件的一第一组物理元件和所述复数个物理元件的一第二组物理元件,而所述第三组件被布置用于将与所述第二逻辑组相关联的内容写入所述第一组物理元件。在此一实施例中,所述第三组件进一步将与所述第二逻辑组相关联的更新内容写入所述第二组物理元件。
根据本发明的再一个方面,一种用于分割与一非易失性存储器系统的一文件系统相关联的一第一块(其可以是一逻辑块)的方法包括:基本上将所述第一块分割为一第一部分和一第二部分;使所述第一块的所述第一部分与一与所述非易失性存储器系统的一非易失性存储器相关联的第二块(其可以是一物理块)相关联;以及使所述第一块的所述第二部分与所述非易失性存储器相关联的一第三块相关联。当与所述第一块的所述第一部分相关联的内容将要被更新时,与所述第一部分相关联的所述更新内容被写入所述第二块,以及当与所述第一块的所述第二部分相关联的内容将要被更新时,与所述第二部分相关联的更新内容被写入所述第三块。
在阅读以下详细说明并研究图纸中的各个附图后,本发明的该些及其它优点即显而易见。
附图说明
结合附图并参阅下文说明,可最佳地了解本发明,附图如下:
图1a是一被一文件系统有效划分的一存储器的示意图。
图1b是一逻辑块与一物理块之间的一映射的示意图。
图2a是一包含一非易失性存储器的通用主机系统的示意图。
图2b是一存储器装置(例如图2a的存储器装置120)的示意图。
图2c是一包含一嵌入式非易失性存储器的主机系统的示意图。
图3是一根据本发明一实施例的一包含逻辑块的文件系统和一含有物理块的媒体的示意图。
图4是一根据本发明一实施例的一逻辑块与复数个物理块之间的一映射的示意图。
图5a是一根据本发明一实施例的一逻辑块与复数个物理块(例如图4的逻辑块410和物理块414)之间的一映射的示意图,其显示页面如何被指配给所述逻辑块和所述物理块。
图5b是一根据本发明的一实施例含有新写入页面的一系统存储器(即图5a的系统存储器)的示意图。
图5c是一系统存储器(即图5a的系统存储器)的示意性框图,其中根据本发明的一个实施例,一新物理块被指配至一被分割物理块。
图6是一流程图,其显示根据本发明的一个实施例与利用一被分割逻辑块的一第一方法相关联的步骤。
图7是一流程图,其显示根据本发明的一个实施例与利用一被分割逻辑块的一第二方法相关联的步骤。
图8是一根据本发明一实施例的一系统架构的示意性框图。
具体实施方式
降低存储或以其他方式重写入更新页面所需的操作开销总量可使一个整体系统(例如含有一嵌入式非易失性存储器芯片的一整体主机系统)更为高效地运行。如果每次将要更新与一物理块(例如与一文件分配表(FAT)相关联的一个块)相关联的一单个页面时均要整个拷贝所述物理块,则会耗用大量的操作开销,并且,作为其结果,会相当低效。
通过将一逻辑块(例如一逻辑FAT块)分割成复数个物理块(例如两个物理块),则在一整体闪存系统需要被格式化时,与所述逻辑块相关联的所述物理块的每一个基本上只是部分写满。换言之,所述逻辑块数据的一部分可被写入复数个物理块的每一个中。举例而言,一被分割的32页面逻辑块的页面0-15可被写入一第一32页面物理块的页面0-15,而所述逻辑块的页面16-31可被写入一第二32页面物理块。在每个物理块基本上只是部分写满时,每个物理块实质上还有可写入更新的可用页面。
如果将要写入与所述物理块关联的新页面,所述页面可以被写入与所述合适的物理块相关联的可用页面内。例如,当将要写逻辑页面0-15范围内的一个新逻辑页面时,所述新逻辑页面可以写入所述物理块的页面16-31中的一第一可用页面。同样,当将要写逻辑页面16-31范围内的一个新逻辑页面时,所述新逻辑页面可以被写入所述第二物理块的页面16-31中一第一可用页面内。在一物理块耗尽其可用页面供应之前,实际上不需要将所述物理块的内容拷贝在一新物理块内。由此,可大幅度减少与物理块相关联的拷贝操作次数,从而可改良所述整体系统的性能。
尽管使用分割逻辑块一般可使至少两个物理块与任何一个逻辑块相关联,但因为分割块通常被构建用于诸如FAT块或与一根目录相关联的块,所以一系统内所需要的额外物理块的数量相对较低。当所述FAT块和根目录块在构建为分割块时,其所耗用的操作开销与使用分割块所带来的性能优点相比是微不足道的。例如,一个每个块具有64个页面的128MB NAND闪存芯片可能仅需要两个块供用于所述FAT和一根目录。基本上,构建一分割块仅需要额外的两个块。
可获益于使用分割块的闪存系统(或更一般而言,非易失性存储器装置)包括闪存卡和芯片组。通常,闪存系统与一主机系统配合使用,以便所述主机系统可以将数据写入所述闪存存储系统或从所述闪存存储系统中读取数据。然而,某些闪存系统包括嵌入式闪存和软件,所述软件在一主机上执行,以大体上担当所述嵌入式闪存的一控制器,具体将在下文中依据图2c加以讨论。参见图2a,下文将介绍一包括一非易失性存储器装置(例如一紧凑闪存卡)的通用主机系统。一主机或计算机系统100一般包括一系统总线104,其使得一微处理器108、一随机存取存储器(RAM)112和输入/输出电路116之间能够通信。应了解,主机系统100一般可以包括其它组件,例如显示装置和网络装置,其为举例说明目的未显示在图中。
总而言之,主机系统100能够捕获信息,所述信息包括但不仅限于:静止图像信息、音频信息和视频图像信息。此种信息可以实时捕获,并可以用无线方式传送到主机系统100。尽管主机系统100实际上可以是任何系统,主机系统100通常是一诸如一数字相机、一摄像机、一蜂窝通信装置、一音频播放器或一视频播放器等的系统。但是,应了解,主机系统100一般而言可以是基本上任何存储数据或信息,及检索数据或信息的系统。
主机系统100也可以是一仅捕获数据或仅检索数据的系统。也就是说,在一实施例中,主机系统100可以是一存储数据的专用系统,或者主机系统100也可以是一读取数据的专用系统。举例而言,主机系统100可以是仅被布置用于写入或存储数据的一存储器写入器。或者,主机系统100还可以是一通常被布置用于读取或检索数据但不捕获数据的装置,例如一MP3播放器。
在一实施例中是一可拆卸式非易失性存储器装置的一非易失性存储器装置120被布置为通过接口与总线104连接以存储信息。一任选接口块130可允许非易失性存储器装置120通过接口与总线104间接连接。如所属领域的技术人员所知,当输入/输出线路块116存在时,其用于降低总线104上的负载。非易失性存储器装置120包括非易失性存储器124以及一任选的存储器控制系统128。在一实施例中,非易失性存储器装置120可被构建在一单个芯片或一电路小片上。或者,非易失性存储器装置120可被构建在一多芯片模块上或多个离散组件上,该等离散组件可构成一芯片组且可共同用作非易失性存储器装置120。下文将结合图2b更为详细地介绍非易失性存储器装置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的一实施例。
参照图2b,下文将根据本发明一实施例对非易失性存储器装置120进行更详细的说明。如上文所述,非易失性存储器装置120包括非易失性存储器124,并可以包括存储器控制系统128。存储器124和控制系统128,或控制器,可以是非易失性存储器装置120的主要组件,但是当存储器124是一嵌入式NAND装置时,例如,非易失性存储器装置120可以不包括控制系统128。存储器124可以是在一半导体基底上形成的一存储单元阵列,其中通过将二个或更多个电荷电平中的一个存储在存储单元的单个存储单元上即可将一或更多位数据存储于单个存储单元中。一非易失性闪存电可擦除可编程只读存储器(EEPROM)是此种系统的一通用类型存储器的一个实例。
当存在时,控制系统128通过一总线15与一主机计算机或使用所述存储器系统存储数据的其它系统进行通信。总线15一般是图2a的总线104的一部分。控制系统128还控制着存储器124的操作,存储器124还可包括一存储单元阵列11,以写入所述主机所提供的数据、读取所述主机所请求的数据以及执行存储器124运行时所需的各种内务管理功能。控制系统128一般包括一具有相关非易失性软件存储器、各种逻辑电路及类似元件的通用微处理器。其通常还包括一或多个用于控制具体例程性能的状态机。
存储单元阵列11通常由控制系统128或微处理器108通过地址译码器寻址。译码器17可向阵列11的门极和位线施加正确的电压,以将数据编程至由所述控制系统128寻址的一存储单元群组内、从所述存储单元群组中读取数据或擦除所述存储单元群组。附加电路19包括编程驱动器,所述编程驱动器控制施加在该阵列各元件上的电压,所述电压取决于正被编程至一被寻址单元组内的数据。电路19还包括读出放大器及其它从一被寻址存储单元组中读取数据所需的电路。将要被编程至阵列11内的数据,或最近从阵列11中读取的数据,通常被存储在控制系统128中的一缓冲存储器21内。控制系统128通常还可包括用于临时存储命令和状态数据等的各种寄存器。
阵列11可被划分为大量的BLOCKS 0-N存储单元。如同闪存EEPROM系统所常用,所述块通常是最小的擦除单位。也就是说,每个块包括被一起擦除的最小数目的存储单元。每个块通常被划分为数个页面。如所属领域的技术人员所了解,一个页面可以是最小的编程单位。也就是说,一基本编程操作将数据写入存储单元的至少一个页面内,或从存储单元的至少一个页面中读取数据。每一页面内通常存储有一或多个数据扇区。如图2b所示,一个扇区包括用户数据和开销数据。开销数据通常包括根据所述扇区的用户数据计算得出的一纠错码(ECC)。控制系统15的一部分23在数据正被编程至阵列11内时计算ECC,且其还在数据正从阵列11被读取时检查ECC。或者,将ECC存储到与其所从属的用户数据不同的页面或不同的块中。
用户数据的一个扇区通常是512个字节,与磁盘驱动器的一个扇区的大小相对应。开销数据通常是一额外的16个字节。每个页面中最通常包括一个数据扇区,但两个或更多个扇区也可形成一个页面。一般而言,任何数目的页面可构成一个块。举例而言,一个块可由8个页面至512个页面、1024个页面甚至更多个页面构成。块的数目经选择可为所述存储器系统提供一所期望的数据存储容量。阵列11通常被划分为数个子阵列(未显示),每个子阵列包括一定比例的块,所述子阵列互相独立运行,以提高执行各种存储器操作中的平行度。在第5,890,192号美国专利中描述了使用多个子阵列的一个例子,该专利以引用方式全文并入本文中。
在一实施例中,非易失性存储器被嵌入一系统内,例如一主机系统内。图2c是一包含一嵌入式非易失性存储器的一主机系统的示意图。一主机或计算机系统150一般包括一系统总线154,其允许一微处理器158、一随机存取存储器(RAM)162、输入/输出电路166以及主机系统150的其它组件(未显示)进行通信。
一非易失性存储器174(例如一闪存)允许信息被存储于主机系统150内。在非易失性存储器174和总线154之间可以提供一接口180,以便能够从非易失性存储器174取读信息以及往其中写入信息。
非易失性存储器174可由微处理器158管理,所述微处理器158可以有效地执行被布置用于控制非易失性存储器174的软件及/或固件。也就是说,微处理器158可以运行代码装置(未显示),即软件代码装置或固件代码装置,该等代码装置可使非易失性存储器174受到控制。如下文中所描述的那样,可以是一与CPU共同封装在微处理器158内的闪存、一单独的闪速只读存储器(ROM)或可位于非易失性存储器174内的此等代码装置可使非易失性存储器174内的物理块能够被寻址,并可使信息能够被存储在所述物理块内、被从所述物理块中读取或擦除。
一般而言,当一用户写入数据时,所述用户实际上将数据写入一媒体,例如一闪存卡或包括一闪存的一嵌入式系统。所述媒体中的数据格式通常由一文件系统来组织。所述文件系统使所述数据与一逻辑块相关联,或更具体而言,与一逻辑块的页面相关联,所述逻辑块由与一控制器相关联的固件或软件映射至一物理块。图3是一根据本发明的一实施例含有逻辑块的一文件系统和含有物理块的一媒体的示意图。一文件系统314的逻辑块310包含任何数目的页面318。包含在一逻辑块(例如逻辑块310a)内的页面318的数目取决于一擦除单元的大小。例如,如图所示,当最小擦除单元包括约32个页面时,逻辑块310a可以包含约32个页面。
一媒体334(例如一嵌入式闪存)的物理块330包含数个页面338。如所属领域的技术人员所知,物理块330所包含的页面338的数量通常与逻辑块330所包含的页面318的数量相等。
如在下文中结合图8所描述,可使用一数据管理器或数据管理软件将逻辑块310映射至物理块330。逻辑块310与物理块330之间的映射可均为一对一的映射,即一逻辑块地址处的一第一逻辑块310被映射至一基本上与所述逻辑块地址相同的一物理块地址处的一第一物理块330a。但是,逻辑块310与物理块330之间的映射经常是一逻辑块地址处的第一逻辑块310a并非被映射至第一物理块330a,而是被映射至一不同的物理块,即物理块330c,而物理块330c具有与所述逻辑块地址不同的一物理块地址。
图4是一根据本发明的一个实施例一逻辑块和物理块之间的映射关系的示意图。一逻辑块410包括任何数目的页面,该等页面被有效组合为一个使用闪存软件的块。在所述实施例中,逻辑块410包括约32个页面。
如所属领域的技术人员所知,除将页面组合为逻辑块410之外,闪存软件一般也可将逻辑块转换或映射成物理块。闪存软件还可将逻辑块410分割或以其它方式划分为两个物理块414。尽管物理块414的大小可以变化,但所述物理块414的大小一般与逻辑块410的大小保持一致。举例而言,当逻辑块410包括约32个页面时,物理块414也各包括约32个页面。
将逻辑块410分割为物理块414a和414b一般发生在包含逻辑块410和物理块414a、414b的一整体系统被格式化时。通常,分割逻辑块410可能需要将与逻辑块410相关联的一部分页面内所包含的内容提供至物理块414a,并将与逻辑块410相关联的其余页面内所包含的数据提供至物理块414b。举例而言,基本上一半与逻辑块410相关联的页面(即418所指示的页面0-15)可以被拷贝在物理块414a内,而422所指示的页面16-31可以被拷贝在物理块414b内。应了解,取决于具体的应用,可采用多种不同的方式实施一分割。在一实施例中,一分割可以相对平均,也可采用将偶数页面划分到一物理块中而将奇数页面划分到另一物理块中的方式实施分割。一分割也可以相对不平均,例如,如果页面0-7频繁被写入,而页面8-31很少修改,则可将页面0-7划分到一个物理块中,而可将页面8-31划分到另一物理块中。
图5a是一根据本发明的一实施例一逻辑块与物理块(即图4所示的逻辑块410和物理块414)之间的一映射关系的示意图,其显示页面如何被指配至所述逻辑块和所述物理块。最初,在逻辑块410被分割为物理块414时,与418所指示的逻辑块页面0-15相关联的数据被有效地拷贝在518所指示的物理块414a的物理块页面0-15内,而与422所指示的逻辑块页面16-31相关联的数据被有效地拷贝在522所指示的物理块414b的物理块页面16-31内。也就是说,与逻辑块410相关联的一半页面的内容被拷贝在物理块414a的相应页面组518内,而另一半页面的所述内容被拷贝在物理块414b中的前一半页面522内。
在所述整体系统被格式化时,与逻辑块410相关联的每个物理块414基本上一半是可用的,即基本上没有写满。具体而言,在物理块414a中,526所指示的物理块页面16-31未写满,而在物理块414b中,532所指示的物理块页面16-31未写满。在更新时,526所指示的页面16-31用于存储418所指示的逻辑块页面0-15中任何页面的更新内容。同样,在进行更新时,532所指示的页面16-31被用来存储422所指示的逻辑块页面16-31中任何页面的更新内容。
如图5b所示,当更新一逻辑块页面530a(其是418所指示的逻辑块页面0-15的一部分)时,更新内容被写入526所指示的物理块页面16-31中的一个页面530b。也就是说,在实施与逻辑块页面530a相关联的更新时,不是重写518所指示的全部物理块页面0-15,而是实际上将更新的逻辑块页面530a写入块530b中,在所述实施例中,块530b是414a中的所述第一可用未写页面。同样,当更新逻辑块页面422所包含的一逻辑块页面534a时,所述更新内容被写入532所指示的物理块页面16-31中的一页面534b内。
应当了解,当一逻辑块页面(例如逻辑块页面530a)的更新内容被存储在物理块页面530b内时,映射被有效地更新,从而基本上每当访问与逻辑块页面530a相关联的内容时,均访问物理块页面530b的所述内容。换言之,当期望访问与逻辑块页面330a相关联的内容时,不是访问构成作为518所指示的物理块页面0-15一部分的一个页面,而是可在物理块页面530b处访问与逻辑块页面530a相关联的最新内容。如果逻辑块页面530a被再次更新,所述的新内容可被存储在物理块414a中的下一个未写物理块页面内。所述映射被有效更新,以使每当访问与逻辑块页面530a所关联的内容时,均访问包含有与逻辑块页面530a相关联的内容的物理块414a(例如物理块页面530b)中的最新写入的物理块页面的内容。
总起来讲,只要还有与物理块414相关联的可用页面,即可以相对较低的开销成本将与逻辑块410相关联的更新写入物理块414,因为在每次实施一更新时,实际上无需擦除一物理块414,并拷贝基本上所有与逻辑块410相关联的内容。但是,当一物理块414中不再包含可用的块页面时,例如当526所指示的物理块页面16-31中不再包含可用的页面时,更新内容不能被拷贝在其中不含有可用块页面的所述物理块414内。
当一物理块414中实际上没有可拷贝更新内容的可用空间时,没有可用空间的所述物理块414的最新内容可被拷贝在一新物理块内。接下来参阅图5c,下文将根据本发明的一个实施例介绍如何在一原有的物理块(例如图5a和图5b的物理块414b)基本上已满的情况下,使用一新物理块来有效地替代所述原有的物理块。当物理块414b已满,致使532所指示的页面16-31均已写入,即当基本上与物理块相关联的所有可用页面均已被写入时,与422所指示的逻辑块16-31相关联的最新内容相对应的物理块414b的内容可以被拷贝在一新物理块574的物理块页面0-15内。其结果是,580所指示的物理块574的页面0-15包含与422所指示的逻辑块页面16-31相关联的当前内容,而584所指示的物理块574的页面16-31仍然保持未被写入状态,因而仍然是可用的。
一旦其内容被拷贝在580所指示的页面0-15内,即可被擦除物理块414b。除将物理块414b的内容拷贝在物理块574内之外,再擦除物理块414b也会耗用相对大量的计算资源。不过,由于基本上没有页面擦除发生且一般仅发生极少的页面拷贝,由此提高了一包含有最初分割成物理块414的逻辑块410的系统的效率,其原因是在与所述特定块相关联的所有可用页面均已被写入之前不会对一具体物理块414执行一擦除过程。当格式化一系统时或当最初分配物理块414时每一物理块414各包括大约16个可用页面的一实施例中,所述系统在更新与逻辑块410相关联的内容方面的性能可以改善最高大约16倍。所述改善基本上是得益于无需拷贝所述物理块414(例如物理块414b)的所述内容,以及无需擦除物理块414b,直至物理块414b中的全部可用页面均已写满,即直至大约已完成16次更新。
在与422所指示的页面16-31相关联的内容被拷贝在物理块574内之后,基本上每当对与422所指示的页面16-31相关联的内容进行更新时,一更新页面会被存储或写入584所指示的页面16-31其中之一内。换言之,一旦物理块414b已被擦除,物理块574基本上会取代其成为与422所指示逻辑块410的页面16-31相关联的一物理块。
如上文所提及,可分割与一FAT文件系统中的一FAT的一个块或一根目录相对应的一逻辑块,以增强一含有闪存的整体系统的性能。尽管在使用分割块时,一FAT文件系统内的FAT和一根目录所需的物理块的数量实际上会加倍,但由于在一整体系统内用于FAT和一根目录的块数量相对较少,额外物理块的使用相对微不足道。然而,由于一FAT文件系统内的页面经常被更新,由此减少一FAT块被拷贝和擦除的次数会产生明显地性能优势。然而,应当了解,分割块的使用在基本上任何时间仅更新单个页面的任何情况下(例如,在基本上通常仅访问单个扇区中一个块的任何情形下)都是有益的。
参照图6,下文将根据本发明的一个实施例介绍一种利用一分割逻辑块的方法。如上文所述,一逻辑块一般被分割或以其它方式话分为两个物理块,即物理块‘A’和物理块‘B’。换言之,可映射一逻辑块,从而使与所述逻辑块相关联的某些数据可被存储在物理块‘A’内,而实质上所述数据的其余部分可被存储在逻辑块‘B’内。举例而言,可分割与32页面相关联的一逻辑块,从而使页面中的16个被存储在物理块‘A’内,且16个被存储在物理块‘B’内。同样,也可分割与64个页面相关联的一逻辑块,从而使32个页面被存储在物理块‘A’内,且32个页面被存储在物理块‘B’内。应当了解,在与所述逻辑块相关联的页面被存储在物理块‘A’和物理块‘B’内后,物理块‘A’和物理块‘B’均含有可用空间,例如可用于写入更新页面的空间。
通常,在格式化一包含非易失性存储器的整体系统时分割所述逻辑块。如上文所述,分割的逻辑块一般用于在任何给定时候只更新单个扇区的系统中。也就是说,当任何一次基本上只更新与一逻辑块相关联的一个页面时,使用分割的逻辑块是特别有益的,因为这样可实质性减少与页面更新相关的操作次数。
使用一逻辑块600的一过程(例如更新一逻辑块的一过程)开始,在608步骤中,决定是否更新存储于物理块‘A’内或以其它方式与物理块‘A’相关联的一个页面。当将要更新与所述页面相关联的一个扇区时,整个页面被更新,因为一个页面是一最小的编程单位。如果确定不更新与物理块‘A’相关联的一个页面,则流程转至步骤612,在此步骤中确定是否更新与物理块‘B’相关联的一个页面。如果确定不更新与物理块‘B’相关联的一个页面,则更新一逻辑块的所述流程即告完成。
或者,如果在步骤612中所做的决定是将要更新与物理块‘B’相关联的一页面,则所更新的内容被拷贝在物理块‘B’中的一个可用页面内。通常,所述更新内容被拷贝在与物理块‘B’相关联的一第一可用页面内。一旦拷贝所述更新内容,则在步骤620中确定物理块‘B’是否已满。也就是说,确定物理块‘B’中是否仍有额外的可用页面。
如果在步骤620中确定物理块‘B’尚未满,则指示可对与物理块‘B’相关联的页面进行另外的更新。相应地,流程返回到步骤608,在此步骤中确定是否将要进行另外的更新,例如对与物理块‘A’相关联的一页面的一更新。如果步骤620中的确定是物理块‘B’已满,则意味着物理块‘B’内没有更多的可用页面。由此,在步骤624中,将与物理块‘B’内所代表的每个逻辑页面相对应的最新内容拷贝在一新的物理块内,以使所述新物理块可包括所述最新内容,并有可用页面供用于将来的更新。具体而言,基本上按顺序将关于物理块‘B’内所代表的每个逻辑页面的所述最新信息拷贝在一新物理块内。举例而言,如果物理块‘B’包括所述分割逻辑块的页面16-31,则基本上只有存储在物理块‘B’内的所述分组逻辑块的页面16-31的所述当前内容被存储在所述新物理块内。
一旦将所述最新内容拷贝在所述新物理块内,在步骤628中擦除物理块‘B’,并将所述新物理块‘B’实际上重新命名为物理块‘B’。然后,流程回到步骤608,在此步骤中确定是否将要更新与物理块‘A’相关联的一个页面。
返回步骤608,如果确定将要更新与物理块‘A’相关联的一个页面,则将与将要更新的所述页面相关联的更新内容拷贝在物理块‘A’中的一个可用页面内。在将所述内容拷贝或写入所述可用页面后,在步骤636中确定物理块‘A’是否已满。如果确定物理块‘A’尚未满,则可对与物理块‘A’相关联的页面进行进一步更新。相应地,流程返回步骤608,在此步骤中确定是否将要更新与物理块‘A’相关联的一个页面。
另一方面,如果在步骤636中确定物理块‘A’已满,则指示为在物理块‘A’内实际上已经没有可用页面。因此,在步骤640中,将与物理块‘A’内所代表的每个逻辑页面相对应的所述最新内容拷贝在一新物理块内。在将所述内容拷贝在所述新物理块内之后,在步骤644中擦除物理块‘A’,并将所述新物理块实际上设置为物理块‘A’。换言之,所述新物理块被称为物理块‘A’。在将所述新物理块设置为物理块‘A’后,流程返回步骤608,在此步骤中确定是否将要更新与物理块‘A’相关联的一个页面。
使用一分割逻辑块的方法可以千变万化。也就是说,可以使用与参照图6所述的方法不同的一种方法。下文将借助图7描述使用一分割逻辑块的另一种合适的方法。一利用(例如升级)一分割逻辑块的流程700一般发生于将一逻辑块分割或以及其它方式划分为两个物理块(即物理块‘A’和物理块‘B’)之后。一般而言,在格式化一包括非易失性存储器的整体系统时分隔所述逻辑块。
在分割所述逻辑块后,流程700开始,在步骤708中,确定是否将要更新存储在物理块‘A’内或以其他方式与物理块‘A’相关联的一个页面。如果确定不更新与物理块‘A’相关联的一个页面,则流程转至步骤712,在此步骤中确定是否将要更新与物理块‘B’相关联的一个页面。如果确定不更新与物理块‘B’相关联的一个页面,则更新一分割逻辑块的所述流程即告完成。
或者,如果在步骤712中确定将要更新与物理块‘B’相关联的一个页面,则在步骤714中确定物理块‘B’是否已满,即是否仍有空间用于将更新内容写入物理块‘B’。在确定物理块‘B’未满,尚有空间将更新内容写入物理块‘B’时,则在步骤716中将更新内容拷贝在物理块‘B’的一可用页面内。通常,被所述更新内容拷贝在与物理块‘B’相关联的一第一可用页面内。一旦拷贝所述更新内容,流程返回步骤708,在此步骤中确定是否要更新与物理块‘A’相关联的一个页面。
返回步骤714,如果确定物理块‘B’已满,且因此在物理块‘B’中基本上没有另外的可用空间,则将与物理块‘B’内所代表的每个页面相对应的所述最新内容拷贝在一新物理块内,以使所述新物理块可以包括所述最新内容,并有可用空间供用于将来的更新。拷贝最新内容涉及拷贝因物理块‘B’已满而未能存储在物理块‘B’内的更新内容以及物理块‘B’内存储的与先前存储的每个逻辑页相关联的所述最新内容。
一旦将所述最新内容写入所述新物理块内,在步骤728中擦除物理块‘B’,且所述新物理块实际上担当起物理块‘B’的作用,例如,所述新物理块实质上变成物理块‘B’。然后,流程返回到步骤708,在此步骤中确定是否要更新与物理块‘A’相关联的一个页面。
返回步骤708,如果确定将要更新与物理块‘A’相关联的一个页面,则在步骤710中确定物理块‘A’是否已满。如果确定物理块‘A’尚未满,则在步骤732中,将与要更新的页面相关联的升级内容拷贝在物理块‘A’中的一可用页面内。在将所述内容拷贝或写入所述可用页面后,流程返回步骤708。
另一方面,如果在步骤710中确定物理块‘A’已满,则指示在物理块‘A’内实际上已经没有可用页面。因此,在步骤740中将与物理块‘A’内所代表的每个逻辑页面相对应的所述最新内容拷贝在一新物理块内。在将所述内容拷贝在所述新物理块内之后,在步骤744中擦除物理块‘A’,并将所述新物理块实际上设置为物理块‘A’。在将所述新物理块设置为物理块‘A’后,流程返回步骤708,在此步骤中确定是否将要更新与物理块‘A’相关联的一个页面。
一般而言,以软件形式提供与将逻辑块分割为复数个物理块并允许实施更新相关联的功能,例如,以程序代码装置的形式或以一主机系统的固件的形式提供。图8显示与提供给一主机系统用于实施损耗平衡的软件或固件相关联的一合适系统架构的实施例。一系统架构800一般包括多种模块,其可包括但不限于:一应用接口模块804、一系统管理器模块808、一数据管理器模块812、一数据完整性管理器816以及一装置管理器和接口模块820。一般而言,可使用可由一处理器(例如图2a的处理器108)访问的软件代码装置或固件来构建系统架构800。
一般而言,应用接口模块804可被布置与主机、操作系统或用户直接通信。应用接口模块804还与系统管理器模块808和数据管理器模块812进行通信。当用户希望读取、写入或格式化一闪存时,所述用户向所述操作系统发送一请求,所述请求被传送至所述应用接口模块804。应用接口模块804将所述请求引导至系统管理器模块808或数据管理器模块812,具体视所述请求而定。
系统管理器模块808包括一系统初始化子模块824、一擦除计数块管理子模块826以及一电源管理块子模块830。系统初始化子模块824一般被布置用于使一初始化请求能得到处理,并通常与擦除计数块管理子模块826进行通信。擦除计数块管理子模块826包括引发对块擦除计数进行存储的功能以及引发使用单独擦除计数计算平均擦除计数及更新平均擦除计数的功能。于2002年10月28日提交的第10/281,739号(代理人案号:SANDP023)共同待决美国专利申请中描述了擦除计数的使用,所述专利申请以引用方式并入本文中。系统初始化模块824也被布置用于创建一系统块清单并创建一分割块清单(例如用于一FAT文件系统),该等清单使得分割块能够被识别。此一分割块清单可以使分割逻辑块以及对应于一分割逻辑块的物理块能够被容易地识别。
除与应用接口模块804通信外,系统管理器模块808还与数据管理器模块812以及设备管理器和接口模块820通信。与系统管理器模块808和应用接口模块804通信的数据管理器模块812可以包括提供扇区映射的功能,所述扇区映射功能实际上将逻辑扇区转换成物理扇区。也就是说,数据管理器模块812被布置用于将逻辑块映射成物理块。数据管理器模块812还可包括与操作系统和文件系统接口层相关联的功能。
与系统管理器模块808、数据管理器812和数据完整性管理器816通信的设备管理器和接口模块820通常提供一闪存接口,并包括与硬件抽象(例如一I/O接口)相关联的功能。数据完整性管理器模块816提供纠错码(ECC)处理以及其它功能。
尽管本文仅阐述了本发明的几个实施例,应了解,在不脱离本发明的精神或范围的前提下,可采用许多其它具体形式实施本发明。举例而言,尽管本文将一逻辑块描述为被分割成两个物理块,但一般可将一逻辑块分割成任何数目的物理块。也就是说,可将一逻辑块分割成两个或更多个物理块。
当将一逻辑块分割成两个物理块时,所述物理块一般各包括大约一半与所述逻辑块相关联的内容。也就是说,每个物理块最初可以充满一半与所述逻辑块相关联的内容。但是,应当了解,可在两个物理块之间相对不均匀地分割与一逻辑块相关联的内容。例如,可将少于50%的与一逻辑块相关联的内容写入一物理块,而将与所述逻辑块相关联的剩余内容写入另一物理块。相对不均匀地分割一逻辑块可在一预计或观察到某些页面比其它页面更频繁地被新写或重写的实施例中有益,因为允许与频繁写入的页面相关联的物理块内包含更多的可用空间可以进一步降低所需的总体拷贝和擦除操作的次数。
总之,将一逻辑块分割成复数个物理块在本文中被描述为特别适合于其中存储有FAT块和根目录块的一存储器的系统区。换言之,因为诸如FAT块和根目录块的块一般在单个扇区内或作为单个页面被访问,分割块通常被包含在一系统区内。然而,应当了解,基本上任何通常每次一个页面被写入或更新的块均可成为分割块,此并不偏离本发明的精神和范围。
一闪存的大小以及所述闪存内块的大小可以有广泛的差异。尽管块的大小一般被描述为包括大约32个页面,块可包括任何数目的页面,或者,更一般而言,可包括构成一个块的任何数目的元件。例如,一个块可以包括大约64个页面。因而,一个系统内的块的数目可以变化。在一512Mb的NAND闪存中,如果一个块包括大约32个页面,每个页面包括约512字节,则所述闪存内总共有4096个物理块。或者,在同一个512Mb的NAND闪存中,如果每个物理块包括约64个页面,每个页面包括约512字节,则所述闪存可包括总共约2048个物理块。总起来讲,页面的大小也可有差异。
与本发明的各种方法相关联的步骤可有广泛的差异。一般而言,步骤可以增加、删除、重新排序和改变。因此,应将本发明实例视为举例说明性而非限制性,并且本发明并非仅限于本文所给出的详细阐述,而是可在随附权利要求范围内进行修改。

Claims (49)

1、一种用于使一非易失性存储器的复数个物理块与一逻辑块相关联的方法,所述逻辑块包括复数个逻辑块元件,所述方法包括:
基本上将所述复数个逻辑块划分为组,所述组包括一第一逻辑组和一第二逻辑组;
将与所述第一逻辑组相关联的数据提供至所述复数个物理块的一第一物理块;及
将与所述第二逻辑组相关联的数据提供至所述复数个物理块的一第二物理块。
2、根据权利要求1所述的方法,其中所述第一物理块包括复数个物理块元件,且所述方法进一步包括:
将所述第一物理块内所包括的所述复数个物理块元件划分为一第一物理组和一第二物理组;
3、根据权利要求2所述的方法,其中将与所述第一逻辑组相关联的数据提供至所述第一物理块包括:
将所述数据写入所述第一物理组。
4、根据权利要求3所述的方法,其中所述第二物理块包括复数个物理块元件,且所述方法进一步包括:
将所述第二物理块中包含的所述复数个物理块元件划分为一第三物理组和一第四物理组。
5、根据权利要求4所述的方法,其中将与所述第二逻辑组相关联的所述数据提供至所述第二物理块包括:
将所述数据写入所述第三物理组。
6、根据权利要求5所述的方法,其中所述第一逻辑组与所述第二逻辑组基本上具有相同的大小,且所述第一物理组与所述第三物理组基本上具有相同的大小。
7、根据权利要求5所述的方法,其进一步包括:
写入与所述第一逻辑组相关联的新数据,其中写入与所述第一逻辑组相关联的所述新数据包括将所述新数据写入所述第二物理组。
8、根据权利要求7所述的方法,其进一步包括:确定何时所述第一物理块已满;及
在确定所述第一物理块已满时,将所述数据中的至少某些数据和所述新数据写入一第三物理块,所述第三物理块包括一第五物理组物理元件和一第六物理组物理元件,其中将所述数据中的所述至少某些数据和所述新数据写入所述第三物理块包括将所述数据的所述至少某些数据和所述新数据写入所述第五物理组。
9、根据权利要求8所述的方法,其中所述数据的所述至少某些数据包括所述数据中包含的最新存储的数据。
10、根据权利要求5所述的方法,其进一步包括:
写入与所述第二逻辑组相关联的新数据,其中写入与所述第二逻辑组相关联的所述新数据包括将所述新数据写入所述第四物理组。
11、根据权利要求10所述的方法,其进一步包括:确定何时所述第二物理块已满;及
在确定所述第二物理块已满时,将所述数据的至少某些数据和所述新数据写入一第三物理块,所述第三物理块包括一第五物理组物理元件和一第六物理组物理元件,其中将所述数据的所述至少某些数据和所述新数据写入一第三物理块包括将所述数据的所述至少某些数据和所述新数据写入所述第五物理组。
12、根据权利要求10所述的方法,其中所述数据的所述至少某些数据包括所述数据中包含的最新存储数据。
13、根据权利要求1所述的方法,其中一次一个逻辑元件地访问所述逻辑块。
14、根据权利要求1所述的方法,其中所述逻辑块与一文件分配表和一根目录之一相关联。
15、根据权利要求1所述的方法,其中所述逻辑块与一文件系统相关联,而所述第一物理块和所述第二物理块与一闪存相关联。
16、根据权利要求1所述的方法,其中所述逻辑元件是逻辑页面,而所述物理元件是物理页面。
17、一种用以使复数个物理块与一逻辑块相关联的系统,所述逻辑块包括复数个逻辑块页面,所述系统包括:
一非易失性存储器,所述非易失性存储器包括所述复数个物理块;
代码装置,其用于基本上将所述复数个逻辑块页面划分为数个组,所述组包括一第一逻辑组和一第二逻辑组;
代码装置,其用于将与所述第一逻辑组相关联的数据提供至所述复数个物理块的一第一物理块;
代码装置,其将与所述第二逻辑组相关联的数据提供至所述复数个物理块的一第二物理块;及
一用于存储所述代码装置的存储器装置。
18、根据权利要求17所述的系统,其中所述第一物理块包括复数个物理块页面,且所述系统进一步包括:
代码装置,其用于将所述第一物理块内所包含的所述复数个物理块页面划分为一第一物理组和一第二物理组。
19、根据权利要求18所述的系统,其中用于将与所述第一逻辑组相关联的所述数据提供至所述第一物理块的代码装置包括:
用于将所述数据写入所述第一物理组的代码装置。
20、根据权利要求19所述的系统,其中所述第二物理块包括复数个物理块页面,且所述系统进一步包括:
用于将所述第二物理块内所包含的所述复数个物理块页面划分为一第三物理组和一第四物理组的代码装置。
21、根据权利要求20所述的系统,其中用于将与所述第二逻辑组相关联的所述数据提供至所述第二物理块的代码装置包括:
用于将所述数据写入所述第三物理组的代码装置。
22、根据权利要求21所述的系统,其进一步包括:
用于写入与所述第一逻辑组相关联的新数据的代码装置,其中用于写入与所述第一逻辑组相关联的所述新数据的所述代码装置包括将所述新数据写入所述第二物理组的代码装置。
23、根据权利要求22所述的方法,其进一步包括:
代码装置,其用于确定何时所述第一物理块已满;及
代码装置,其在确定所述第一物理块已满时,将所述数据的至少某些数据和所述新数据写入一第三物理块,所述第三物理块包括一第五物理组物理页面和一第六物理组物理页面,其中用于将所述数据的所述至少某些数据和所述新数据写入所述第三物理块的所述代码装置包括用于将所述数据的所述至少某些数据和所述新数据写入所述第五物理组的代码装置。
24、根据权利要求23所述的系统,其中用于写入所述数据的至少某些数据的所述代码装置包括用于写入所述数据中所包含的最新存储数据的代码装置。
25、一种用于使复数个物理块与一逻辑块相关联的系统,所述逻辑块包括复数个逻辑块元件,所述系统包括:
一非易失性存储器,所述非易失性存储器包括所述复数个物理块;
用于基本上将复数个逻辑块元件划分为数个组的构件,所述组包括一第一逻辑组和一第二逻辑组;
用于将与所述第一逻辑组相关联的数据提供至所述复数个物理块的一第一物理块的构件;及
用于将与所述第二逻辑组相关联的数据提供至所述复数个物理块的一第二物理块的构件。
26、根据权利要求25所述的系统,其中所述第一物理块包括复数个物理块元件,且所述系统进一步包括:
用于将所述第一物理块内包括的所述复数个物理块元件划分为一第一物理组和一第二物理组的构件。
27、根据权利要求26所述的系统,其中用于将与所述第一逻辑组相关联的所述数据提供至所述第一物理块的所述构件包括:
用于将所述数据写入所述第一物理组的构件。
28、根据权利要求27所述的系统,其中所述第二物理块包括复数个物理块元件,且所述系统进一步包括用于将所述第二物理块内包含的所述复数个物理块元件划分为一第三物理组和一第四物理组的构件,其中用于将与所述第二逻辑组相关联的所述数据提供至所述第二物理块的所述构件包括用于将所述数据写入所述第三物理组的构件。
29、根据权利要求28所述的系统,其进一步包括:
用于写入与所述第一逻辑组相关联的新数据的构件,其中用于写入与所述第一逻辑组相关联的所述新数据的所述构件包括用于将所述新数据写入所述第二物理组的构件;
用于确定何时所述第一物理块已满的构件;及
用于在确定所述第一物理块已满时将所述数据的至少某些数据以及所述新数据写入一第三物理块的构件,所述第三物理块包括一第五物理组物理元件和一第六物理组物理元件,其中用于将所述数据的所述至少某些数据和所述新数据写入所述第三物理块的所述代码装置包括用于将所述数据的所述至少某些数据和所述新数据写入所述第五物理组的代码装置。
30、根据权利要求29所述的系统,其中用于写入所述数据的至少某些数据的所述构件包括用于写入所述数据中所包含的最新存储数据的构件。
31、一种存储器装置,其包括:
一第一组件,所述第一组件被布置用于识别一包括复数个逻辑元件的逻辑块;
一第二组件,所述第二组件包括一第一物理块和一第二物理块,其中所述第一物理块和所述第二物理块各包括复数个物理元件;及
一第三组件,所述第三组件被布置用于基本上将所述逻辑块中所包含的所述复数个逻辑元件划分为一第一逻辑组和一第二逻辑组,所述第三组件进一步被布置用于将与所述第一逻辑组相关联的内容写入所述第一物理块,并将与所述第二逻辑组相关联的内容写入所述第二物理块。
32、根据权利要求31所述的存储器装置,其中所述第一物理块包括所述复数个物理元件的一第一组物理元件及所述复数个物理元件的一第二组物理元件,且所述第三组件被布置用于将与所述第一逻辑组相关联的内容写入所述第一组物理元件。
33、根据权利要求32所述的存储器装置,其中所述第三组件被进一步布置用于将与所述第一逻辑组相关联的更新内容写入所述第二组物理元件。
34、根据权利要求33所述的存储器装置,其中所述第三组件被进一步布置用于确定何时所述第一物理块基本上已满,并在确定所述第一物理块基本上已满时将所述内容的至少某些内容和所述更新内容写入一第三物理块。
35、根据权利要求34所述的存储器系统,其中所述第三组件被进一步布置用于擦除所述第一物理块。
36、根据权利要求34所述的存储器装置,其中所述第三物理块包括一第三组物理元件和一第四组物理元件,且其中所述内容的所述至少某些内容和所述更新数据被拷贝在所述第三组物理元件内。
37、根据权利要求31所述的存储器装置,其中所述第二物理块包括所述复数个物理元件的一第一组物理元件和所述复数个物理元件的一第二组物理元件,且所述第三组件被布置用于将与所述第二逻辑组相关联的内容写入所述第一组物理元件。
38、根据权利要求37所述的存储器装置,其中所述第三组件进一步被布置用于将与所述第二逻辑组相关联的更新内容写入所述第二组物理元件。
39、根据权利要求31所述的存储器装置,其中所述复数个逻辑元件是复数个逻辑页面,且所述复数个物理元件是复数个物理页面。
40、一种用于分割与一非易失性存储器系统的一文件系统相关联的一第一块的方法,所述方法包括:
基本上将所述第一块分割为一第一部分和一第二部分;
使所述第一块的所述第一部分与一与所述非易失性存储器系统的一非易失性存储器相关的一第二块相关联;及
使所述第一块的所述第二部分与一与所述非易失性存储器相关的一第三块相关联,其中当与所述第一块的所述第一部分相关联的内容将要被更新时,与所述第一部分相关联的所述更新内容被写入所述第二块,且其中当与所述第一块的所述第二部分相关联的内容将要被更新时,与所述第二部分相关联的所述更新内容被写入所述第三块。
41、根据权利要求40所述的方法,其中所述基本上将所述第一块分割为所述第一部分和所述第二部分包括基本上将所述第一块均匀地分割为所述第一部分和所述第二部分。
42、根据权利要求41所述的方法,其中使所述第一块的所述第一部分与所述第二块相关联包括将与所述第一块的所述第一部分相关联的内容写入所述第二块的一第一区,其中所述第二块包括所述第一区和一第二区。
43、根据权利要求42所述的方法,其中当与所述第一块的所述第一部分相关联的内容将要被更新时,与所述第一部分相关联的所述更新内容被写入所述第二块的所述第二区。
44、根据权利要求43所述的方法,其进一步包括:
确定何时所述第二块的所述第二区基本上已满;及
将与所述第一块的所述第一部分相关联的所述内容和所述更新内容写入一第四块的一第一部分,所述第四块被布置以包括所述第一部分和一第二部分。
45、根据权利要求41所述的方法,其中使所述第一块的所述第二部分与所述第三块相关联包括将与所述第一块的所述第一部分相关联的内容写入所述第三块的一第一区,其中所述第三块包括所述第一区和一第二区。
46、根据权利要求45所述的方法,其中当与所述第一块的所述第一部分相关联的内容将要被更新时,与所述第一部分相关联的所述更新内容被写入所述第三块的所述第二区。
47、根据权利要求41所述的方法,其中所述第一块、所述第二块和所述第三块基本上具有相同的大小。
48、根据权利要求41所述的方法,其中所述第一块具有一相关数目的页面,所述第二块具有所述相关数目的页面,并且所述第三块具有所述相关数目的页面。
49、根据权利要求41所述的方法,其中所述第一块是一逻辑块,所述第二块是一物理块,且所述第三块是一物理块。
CNB038247852A 2002-10-28 2003-09-10 用于分割一逻辑块的方法及设备 Expired - Fee Related CN100487672C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/281,631 US7039788B1 (en) 2002-10-28 2002-10-28 Method and apparatus for splitting a logical block
US10/281,631 2002-10-28

Publications (2)

Publication Number Publication Date
CN1705936A true CN1705936A (zh) 2005-12-07
CN100487672C CN100487672C (zh) 2009-05-13

Family

ID=32228769

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038247852A Expired - Fee Related CN100487672C (zh) 2002-10-28 2003-09-10 用于分割一逻辑块的方法及设备

Country Status (8)

Country Link
US (1) US7039788B1 (zh)
EP (1) EP1561168B1 (zh)
JP (1) JP5005171B2 (zh)
KR (1) KR100923814B1 (zh)
CN (1) CN100487672C (zh)
AU (1) AU2003270528A1 (zh)
TW (1) TWI240865B (zh)
WO (1) WO2004040455A2 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101510173B (zh) * 2008-10-10 2010-12-29 慧帝科技(深圳)有限公司 一种减少储存次数的资料储存方法及其装置
CN102063267A (zh) * 2009-11-13 2011-05-18 西部数据技术公司 包括用于使主机块大小与数据存储装置的物理块大小匹配的映射桥的数据存储系统
CN101655819B (zh) * 2008-08-18 2012-11-28 深圳市朗科科技股份有限公司 对半导体存储介质进行空块回收的方法、系统及设备
CN102866955A (zh) * 2012-09-14 2013-01-09 记忆科技(深圳)有限公司 一种闪存数据管理方法及系统
CN104657083A (zh) * 2013-11-19 2015-05-27 群联电子股份有限公司 数据写入方法、存储器储存装置、存储器控制电路单元

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI324309B (en) * 2002-08-26 2010-05-01 Interdigital Tech Corp Communication circuit
KR101122511B1 (ko) * 2002-10-28 2012-03-15 쌘디스크 코포레이션 비휘발성 저장 시스템들에서 자동 웨어 레벨링
JP2006519444A (ja) * 2003-03-04 2006-08-24 深▲せん▼市朗科科技有限公司 フラッシュメモリーのデータ管理方法
EP1659497A4 (en) * 2003-08-29 2008-01-23 Matsushita Electric Ind Co Ltd NON-VOLATILE MEMORY BLOCK AND WRITING PROCESS THEREFOR
GB0426241D0 (en) * 2004-11-30 2004-12-29 Ibm A method and apparatus for configuring a storage device
KR100684887B1 (ko) * 2005-02-04 2007-02-20 삼성전자주식회사 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
US8122193B2 (en) 2004-12-21 2012-02-21 Samsung Electronics Co., Ltd. Storage device and user device including the same
US20090172269A1 (en) * 2005-02-04 2009-07-02 Samsung Electronics Co., Ltd. Nonvolatile memory device and associated data merge method
US20060184718A1 (en) 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
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
US7877539B2 (en) 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US20060184719A1 (en) 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
EP1912123A4 (en) * 2005-07-29 2008-10-29 Matsushita Electric Ind Co Ltd MEMORY CONTROL UNIT, NON-VOLATILE MEMORY, NON-VOLATILE MEMORY SYSTEM, AND MEMORY ADDRESS MANAGEMENT METHOD
US7949845B2 (en) 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US7984084B2 (en) 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
US7669003B2 (en) 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
JP4751163B2 (ja) * 2005-09-29 2011-08-17 株式会社東芝 メモリシステム
US7814262B2 (en) 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
US7877540B2 (en) 2005-12-13 2011-01-25 Sandisk Corporation Logically-addressed file storage methods
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
KR20120034746A (ko) * 2006-07-31 2012-04-12 가부시끼가이샤 도시바 비휘발성 메모리 시스템 및 비휘발성 메모리 시스템을 위한 데이터 판독/기입 방법
KR100826654B1 (ko) * 2007-04-24 2008-05-06 주식회사 하이닉스반도체 플래시 메모리소자의 동작방법 및 이를 위한 제어회로
JP5087347B2 (ja) * 2007-09-06 2012-12-05 株式会社日立製作所 半導体記憶装置及び半導体記憶装置の制御方法
JP5166118B2 (ja) * 2008-05-21 2013-03-21 株式会社東芝 半導体メモリの制御方法
JP5216463B2 (ja) 2008-07-30 2013-06-19 株式会社日立製作所 ストレージ装置、その記憶領域管理方法及びフラッシュメモリパッケージ
TWI386800B (zh) * 2008-10-03 2013-02-21 Silicon Motion Inc 快閃記憶體之更新資料的管理方法以及相關之記憶卡
JP5349897B2 (ja) * 2008-10-21 2013-11-20 株式会社日立製作所 ストレージシステム
JP5264459B2 (ja) * 2008-12-17 2013-08-14 パナソニック株式会社 半導体記憶装置
US9201824B2 (en) * 2009-01-22 2015-12-01 Intel Deutschland Gmbh Method and apparatus for adaptive data chunk transfer
US8738621B2 (en) 2009-01-27 2014-05-27 EchoStar Technologies, L.L.C. Systems and methods for managing files on a storage device
JP5185156B2 (ja) * 2009-02-24 2013-04-17 株式会社東芝 メモリコントローラおよび半導体記憶装置
US8341501B2 (en) 2009-04-30 2012-12-25 International Business Machines Corporation Adaptive endurance coding of non-volatile memories
TWI410795B (zh) * 2009-06-23 2013-10-01 Phison Electronics Corp 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統
US8176234B2 (en) * 2009-12-04 2012-05-08 International Business Machines Corporation Multi-write coding of non-volatile memories
US8176235B2 (en) * 2009-12-04 2012-05-08 International Business Machines Corporation Non-volatile memories with enhanced write performance and endurance
KR101025375B1 (ko) * 2009-12-17 2011-03-28 성균관대학교산학협력단 비휘발성 메모리 장치의 데이터 기록 방법 및 이를 수행하는 비휘발성 메모리 장치
TWI446349B (zh) * 2010-03-04 2014-07-21 Phison Electronics Corp 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器
TWI498731B (zh) * 2010-03-17 2015-09-01 Phison Electronics Corp 非揮發性記憶體儲存系統
US8769374B2 (en) 2010-10-13 2014-07-01 International Business Machines Corporation Multi-write endurance and error control coding of non-volatile memories
US8732431B2 (en) * 2011-03-06 2014-05-20 Micron Technology, Inc. Logical address translation
KR101329497B1 (ko) * 2011-03-10 2013-11-13 한양대학교 산학협력단 파티션에 따라서 저장 위치를 물리적으로 구분하는 nvram 기반의 저장 장치 및 상기 저장 장치의 동작 방법
US11275687B2 (en) * 2020-07-07 2022-03-15 Micron Technology, Inc. Memory cache management based on storage capacity for parallel independent threads

Family Cites Families (29)

* 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
DE69024086T2 (de) 1989-04-13 1996-06-20 Sundisk Corp EEprom-System mit Blocklöschung
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 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
JP3078946B2 (ja) 1993-03-11 2000-08-21 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置
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
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
JP3588231B2 (ja) 1997-08-04 2004-11-10 東京エレクトロンデバイス株式会社 データ処理システム及びブロック消去型記憶媒体
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
US6405295B1 (en) 1999-09-07 2002-06-11 Oki Electric Industry, Co., Ltd. Data storage apparatus for efficient utilization of limited cycle memory material
KR100577380B1 (ko) * 1999-09-29 2006-05-09 삼성전자주식회사 플래시 메모리와 그 제어 방법
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
KR100644602B1 (ko) 2000-10-11 2006-11-10 삼성전자주식회사 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조
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
WO2002088148A1 (en) * 2001-04-30 2002-11-07 The Regents Of The University Of Michigan Isoreticular metal-organic frameworks, process for forming the same, and systematic design of pore size and functionality therein,with application for gas storage
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 (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101655819B (zh) * 2008-08-18 2012-11-28 深圳市朗科科技股份有限公司 对半导体存储介质进行空块回收的方法、系统及设备
CN101510173B (zh) * 2008-10-10 2010-12-29 慧帝科技(深圳)有限公司 一种减少储存次数的资料储存方法及其装置
CN102063267A (zh) * 2009-11-13 2011-05-18 西部数据技术公司 包括用于使主机块大小与数据存储装置的物理块大小匹配的映射桥的数据存储系统
CN102063267B (zh) * 2009-11-13 2015-06-10 西部数据技术公司 包括用于使主机块大小与数据存储装置的物理块大小匹配的映射桥的数据存储系统
CN102866955A (zh) * 2012-09-14 2013-01-09 记忆科技(深圳)有限公司 一种闪存数据管理方法及系统
CN104657083A (zh) * 2013-11-19 2015-05-27 群联电子股份有限公司 数据写入方法、存储器储存装置、存储器控制电路单元
CN104657083B (zh) * 2013-11-19 2017-12-22 群联电子股份有限公司 数据写入方法、存储器储存装置、存储器控制电路单元

Also Published As

Publication number Publication date
AU2003270528A1 (en) 2004-05-25
CN100487672C (zh) 2009-05-13
KR100923814B1 (ko) 2009-10-27
EP1561168B1 (en) 2015-11-18
TWI240865B (en) 2005-10-01
WO2004040455A2 (en) 2004-05-13
JP2006504198A (ja) 2006-02-02
TW200417856A (en) 2004-09-16
JP5005171B2 (ja) 2012-08-22
AU2003270528A8 (en) 2004-05-25
EP1561168A2 (en) 2005-08-10
US7039788B1 (en) 2006-05-02
KR20050065631A (ko) 2005-06-29
WO2004040455A3 (en) 2004-12-23

Similar Documents

Publication Publication Date Title
CN1705936A (zh) 用于分割一逻辑块的方法及设备
US7254668B1 (en) Method and apparatus for grouping pages within a block
KR101453264B1 (ko) 메모리 디바이스에 대한 저장 어드레스 리매핑을 위한 방법과 시스템
US7702880B2 (en) Hybrid mapping implementation within a non-volatile memory system
US7877540B2 (en) Logically-addressed file storage methods
CN1282089C (zh) 控制串行快闪存储器中适当执行的装置和方法及相应芯片
CN1290021C (zh) 编程和读取更新数据的非易失性存储器系统和方法
US7526599B2 (en) Method and apparatus for effectively enabling an out of sequence write process within a non-volatile memory system
CN1701390A (zh) 跟踪非易失性存储器系统中最频繁擦除区块
US20070136553A1 (en) Logically-addressed file storage systems
CN1701309A (zh) 非易失性存储系统中的损耗平衡
CN1745433A (zh) 对非易失性存储器中缺陷的区界调整
KR20100139149A (ko) 다중 뱅크 메모리 장치에 대한 저장 주소 재매핑을 위한 방법과 시스템
CN1701307A (zh) 管理擦除计数区块的方法和设备
CN1540672A (zh) 用于非易失存储系统的电源管理数据块
CN1701308A (zh) 维护非易失性存储系统中的擦除计数
CN1701300A (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: 20120329

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

Effective date of registration: 20120329

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

Termination date: 20200910