非易失性存储系统中未使用的逻辑地址的挂载时去映射的制作方法

文档序号:6370784阅读:223来源:国知局
专利名称:非易失性存储系统中未使用的逻辑地址的挂载时去映射的制作方法
技术领域
本发明总体上涉及非易失性存储系统中未使用的逻辑地址的挂载时去映射以及包括非易失性存储器(NVM)的电子设备。
背景技术
NAND闪存以及其它类型的非易失性存储器(NVM)普遍在电子设备中用于海量存储。例如,消费电子设备诸如便携式媒体播放器通常包括NAND闪存以存储音乐、视频和其它媒体程序。电子设备可以实施文件系统以管理设备的存储部件诸如NVM的文件和文件夹结构。文件系统可以分配逻辑地址到NVM中的每个文件。为了存储或取回文件,文件系统可以发出连同文件的逻辑地址一起的读取或写入请求。当存储于NVM中的文件不再被需要而被从文件系统命名空间去除时,文件系统可以释放相关的逻辑地址并发送去映射请求到NVM系统。如果去映射请求未被NVM系统适当 地处理,则NVM系统可以继续像该逻辑地址仍在使用中那样操作。因此NVM系统将维持存储于文件中的数据,即使该数据不再被需要且将不会被文件系统请求。特别地,NVM系统将在无用单元收集操作和耗损平均操作期间保留该数据,这降低了系统的操作效率。它仅在特定的逻辑地址被其它文件的内容覆写时被重新使用。

发明内容
因此,系统和方法被提供来在文件系统的挂载时去映射未使用的逻辑地址。这样,如果文件系统的先前去映射请求由于不正常关机(例如,由于掉电、用户突然强迫关机或内核错误引起)而未被NVM系统完全处理的话,这些差异可以被校正且系统的操作效率可得到优化。包括非易失性存储器的一种电子设备可以通过操作系统的文件系统和NVM管理器(例如NVM驱动器)来访问和管理非易失性存储器。在电子设备操作期间的某些时点,诸如在引导时,操作系统可以触发挂载以将存储于NVM中的文件包括到文件系统的已有文件和文件夹结构中。该时点可以称为文件系统或NVM的“挂载吋”。在挂载时,文件系统可以产生与NVM相关但是当前未被分配使用的逻辑地址(例如逻辑块地址(LBA))的列表。例如,文件系统可以维护包括指示哪些LBA当前被分配的位图的LBA分配表,文件系统可以完全扫描位图以产生未分配逻辑地址的列表。在一些实施例中,由于未分配的逻辑地址通常分组成“组块(extent)”,所以文件系统可以使用位图来产生未分配的LBA组块的列表,其中每个组块由起始LBA和组块中的LBA数来表示。一旦文件系统完成了产生至少一部分列表,文件系统就可以开始将列表发送到NVM管理器。通过在挂载时向NVM管理器提供该信息,文件系统和NVM管理器之间的任何LBA分配差异可在驱动器投入使用之前被NVM管理器校正。此外,可以进行LBA同步而无需NVM管理器必须维护其自己的最新的LBA分配表。
在一些实施例中,为了将未分配逻辑地址的列表传送到NVM管理器,文件系统可以发出ー个或多个去映射请求。因为列表是全面的(即包括全部未分配的逻辑地址),所以NVM管理器未能完成的任何先前的去映射请求被有效地再发出。这给了 NVM管理器第二次机会来完成请求。其它的去映射请求可以与已经被NVM管理器正常地释放或者从未被分配开始使用的逻辑地址相关,因此NVM管理器可以丢弃或者忽略这些请求。在一些实施例中,ー种系统可以包括非易失性存储器(NVM);电路,能操作来执行操作系统和NVM管理器,其中所述操作系统包括文件系统,该文件系统配置成响应于该操作系统触发该NVM的挂载,识别与该NVM相关的未分配逻辑地址,以及向所述NVM管理器发出至少ー个去映射请求以去映射所识别的未分配逻辑地址。在一些实施例中,ー种电子设备可以包括非易失性存储器(NVM);控制电路,能操作来执行文件系统和NVM管理器,其中所述文件系统配置成识别与所述NVM相关的待释放的逻辑地址;响应于识别逻辑地址,向所述NVM管理器发出第一去映射请求以释放该逻辑地址;以及在后面的NVM挂载期间,向所述NVM管理器发出第二去映射请求以释放该逻辑地 址。在一些实施例中,ー种电子设备可以包括非易失性存储器(NVM) ;NVM管理器;以及操作単元,用于执行包括文件系统的操作系统;其中所述操作単元可以包括识别单元,用于响应于该操作系统触发该NVM的挂载,识别与该NVM相关的未分配逻辑地址,以及请求发送单元,用于向所述NVM管理器发出至少ー个去映射请求以去映射所识别的未分配逻辑地址。在一些实施例中,ー种电子设备可以包括非易失性存储器(NVM) ;NVM管理器;以及操作単元,用于执行文件系统,其中所述操作単元包括识别单元,用于识别与所述NVM相关的待释放的逻辑地址;以及请求发送单元,包括第一发送单元,用于响应于识别逻辑地址,向所述NVM管理器发出第一去映射请求以释放该逻辑地址;以及第二发送单元,用于在后面的NVM挂载期间,向所述NVM管理器发出第二去映射请求以释放该逻辑地址。


本发明的以上和其它方面和优点将在考虑到下面结合附图进行的详细描述后变得显然,附图中相似的附图标记始终指示相似的部件,附图中图I是根据本发明各种实施例配置的具有非易失性存储器的示范性电子设备的框图;图2是根据本发明各种实施例配置的用于访问和管理非易失性存储器的软件/固件模块的流程图;图3是根据本发明各种实施例的不范性LBA分配表和对应的位图表不的图表;图4是根据本发明各种实施例的基于图3的位图产生且可被文件系统发出到NVM管理器的示范性去映射请求的图表;图5是根据本发明各种实施例的校正文件系统与NVM管理器之间的LBA分配差异的示范性过程的流程图;图6是根据本发明各种实施例的准备适于从文件系统发送到NVM管理器的未分配LBA组块的列表的示范性过程的流程图7是根据本发明ー示范性实施例的电子设备的框图;以及图8是根据本发明另一示范性实施例的电子设备的框图。
具体实施例方式图I是示范性电子设备100的框图。在一些实施例中,电子设备100可以是或者可以包括便携式媒体播放器(例如美国加利福尼亚州库珀蒂诺的Apple公司制造销售的iPod )、蜂窝电话(例如Apple公司制造销售的iPhone )、ロ袋大小的个人计算机、个人数字助理(PDA)、桌面计算机、膝上计算机和任何其它合适类型的电子设备或系统。电子设备100可包括芯片上系统(SoC) 110和非易失性存储器(NVM) 120。NVM120可包括基于浮置栅极或电荷俘获技术的NAND闪存、NOR闪存、可擦除可编程只读存储器(EPR0M)、电可擦除可编程只读存储器(EEPR0M)、铁电RAM (FRAM)、磁致电阻RAM (MRAM)或者它们的任意组合。NVM 120可组织成“块(block)”,块是最小的可擦除単元,NVMl20还可组织成“页·(page)”,页可以是可编程或读取的最小単元。在一些实施例中,NVM 120可包括多个集成电路,每个集成电路可具有多个块。来自对应集成电路的块(例如具有相同位置或者块编号的块)可以形成称为“超级块”的逻辑单元。NVM 120的每个存储位置(例如页或者块)可以利用物理地址(例如物理页地址或者物理块地址)来编址。芯片上系统110可包括控制电路112、存储器114和NVM总线控制器116。控制电路112可总体上控制电子设备100和SoC 110的大体操作和功能。控制电路112可包括任何合适的部件、电路或逻辑器,诸如ー个或更多处理器。控制电路112可在程序诸如加载于存储器114中的NVM驱动器、应用程序和操作系统的控制下操作。存储器114可包括任何合适类型的易失性存储器,诸如随机存取存储器(RAM)(例如静态RAM (SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、双倍数据速率(DDR) RAM)、高速缓冲存储器或者它们的任意组合。在一些实施例中,存储器114可用作用于实施为控制电路112的一部分的任意处理器的主存储器。在一些实施例中,存储器114可用于存储管理NVM 120所需的信息(有时称为元数据)的至少一部分。例如,NVM管理器(例如NVM驱动器)可监视哪个逻辑地址近期被文件系统去映射,从而在后面的某时刻,NVM 120中的相关数据在无用单元收集、耗损平均或其它NVM管理操作期间不被保留。因为该信息存储于易失性的存储器114中,且可能还未反映在NVM 120的持久存储中,所以表示近期去映射的逻辑地址的元数据在不正常关机(例如,由于掉电、用户突然强迫关机或内核错误引起)期间可能丢失。这能导致操作无效,操作无效利用下面描述的方案得以解决和校正。NVM总线控制器116可以使SoC 110能访问NVM 120及其存储位置,且可包括任何合适的电路或部件。例如,NVM总线控制器116可产生与NVM 120的总线协议(例如数据速率)兼容的读取、擦除和编程指令。图2是可被控制电路112 (图I)执行的软件/固件模块200的流程图,其给出了对NVM 120 (图I)中的文件的操作系统访问通道。软件/固件模块200可包括文件系统210和NVM驱动器220。文件系统210可包括任何适当类型的文件系统,诸如文件分配表(FAT)文件系统或者HFS文件系统,且可以是操作系统的一部分。文件系统210可管理电子设备100 (图I)的各种存储部件(包括NVM 120)的文件和文件夹结构。为了访问NVM 120,文件系统210可以向NVM驱动器220发出至少三种不同类型的请求读、写和去映射请求。与每种类型的请求一起,文件系统210可以提供逻辑地址,诸如逻辑块地址(LBA)。文件系统210可维护LBA分配表212。LBA分配表212可表明哪些逻辑地址已被分配给存储于NVM 120中的文件。当向NVM 120发出写文件的写请求时,文件系统210可以在LBA分配表212中将相关的逻辑地址标记为已分配。当向NVM驱动器220发出去映射请求以删除文件吋,文件系统210可以在LBA分配表212中将相关的逻辑地址标记为未分配。因为LBA分配表212在逻辑地址的分配/释放后即时更新,所以LBA分配表212保持最新。在一些实施例中,文件系统210可配置成以称为LBA “组块”的连续组分配LBA。例如,文件系统210可将LBA组块分配给特定的文件。图3给出以此方式分配LBA可以如何反映于LBA分配表212中的示例。特别地,图3提供在某一时点处LBA分配表212的示范性状态的图表300。图表300可以示出与NVM 120相关的LBA的整个区间。LBA分配表212可以包括分配的LBA组块302、306和310 (由图表300的阴影部分表示)。这留下分组 成连续片段的未分配LBA,因此LBA分配表212还可包括未分配LBA组块304和未分配LBA组块308,组块304(在本示例中)始于LBAa且止于LBAa+ N,组块308始于LBAb且止于LBAb + o未分配组块由图表300的标记为“空闲”的无阴影部分表示。在一些实施例中,LBA分配表212可包括位图或者采取位图的形式。继续图3的示例,LBA分配表212可以包括位图320或者采取位图320的形式。在位图320中,每个LBA由ニ元数字表示,其中“I”表示相关的LBA分配给文件,“O”表示相关的LBA未被分配。因此,如图3所示,已分配LBA组块302可由“ I”的位序列322表示,其中组块302中的LBA数目反映于序列322中的是“ I ”的位的数目中。包括M+1个未分配LBA的未分配LBA组块308可以由M+1个“O”的位的序列324表示。在另一些实施例中,LBA分配表212可以使用位图之外的格式来表不与NVM相关的LBA的状态。例如,LBA分配表212可以代替地采用组块树或者关联列表链。然而,为了清楚,在本公开中各种实施例被描述为采用位图。应理解,这样的描述仅是示范性的,不应解释为对本发明进行限制。回到图2,文件系统210可以与NVM驱动器220连接。NVM驱动器220可包括转换层222,诸如闪存转换层(FTL)。转换层222可以维护逻辑地址(例如LBA)到物理地址的映射,物理地址对应于NVM 120的实际存储位置(例如页、块、集成电路等)。转换层222可以使用该映射来将读、写或去映射请求上提供的逻辑地址转换成它们的相关物理地址。因为每个NVM可根据NVM的大小或厂商而具有不同的布局,所以这些转换操作可以因存储器和/或NVM厂商而异。除了逻辑到物理地址映射之外,NVM驱动器220还可以执行任何其它合适的功能。例如,转换层222可以进行对于闪存转换层而言典型的任何其它功能,诸如无用单元收集和耗损平均。图I和图2目前绘示和描述为全部NVM管理在SoC 110 (图I)上进行。应理解,这些与NVM相关的功能不限于此方式。例如,NVM总线控制器116 (图I)和/或NVM驱动器220 (图2)的任何部件或功能可以通过包括于例如NVM 120 (图I)中的单独的存储控制器(例如闪存控制器)来实现和进行。因此,因为NVM管理可以通过部件的其它组合来进行,所以配置来管理非易失性存储器的任意软件、固件、硬件或者它们的组合可以简单称为“NVM管理器”。如上所述,NVM管理器(例如NVM驱动器220)可以接收来自文件系统(例如文件系统210)的带有逻辑地址的去映射请求。当文件系统在其LBA分配表中已经释放了逻辑地址且不再需要与该逻辑地址相关的数据时,NVM管理器可以接收去映射请求。因此,去映射请求通知NVM管理器有存储于NVM中的数据在无用单元收集和耗损平均或者其它NVM管理操作期间不应被保留。然而,响应于接收去映射请求,NVM管理器可能发送去映射请求确认回到文件系统而不在非易失性存储器中进行任何即时改变。NVM管理器可能代替地监视易失性存储器(例如存储器114)中的去映射请求。例如,NVM管理器可以使存储于存储器114中的逻辑到物理地址映射中的对应条目无效。因为去映射请求仅反映在易失性存储器中,所以如果发生不正常关机使得NVM管理器没有机会将去映射请求实施到持久存储的话,则去映射请求将被丢失。在这些情形中,在文件系统的LBA分配表中哪些LBA被分配与从NVM管理器的视角来看哪些LBA仍被分配之间可能有差异。这样的差异可导致NVM管理器进 行额外的无用单元收集操作以维持不再需要的数据。这些额外操作可导致不期望的系统影响,诸如更高的写入放大(wAmp)、降低的效率(即更低的性能和更高的命令等待时间)和更大的功耗。因此,在NVM的挂载时,文件系统(例如文件系统210)可以配置来向NVM管理器(例如NVM驱动器220)提供哪些逻辑地址未被分配的完全列表。例如,在一些实施例中,文件系统可以发送全部未分配LBA的去映射请求。这样,如果任何去映射请求已在先前由于不正常关机(例如)而被丢失,则NVM管理器有效地再次接收去映射请求且有第二次机会来履行该去映射请求。通过在挂载时向NVM管理器提供关于去映射LBA的信息,文件系统与NVM管理器之间的任何LBA分配差异可以在驱动器投入使用之前被NVM管理器校正。此外,使用该方法,可以进行LBA同步而不需要NVM管理器必须在非易失性存储器中维护它自己最新的LBA分配表。相反,在接收去映射请求吋,NVM管理器可以在易失性存储器中(例如在逻辑到物理地址转换表中)将相关的逻辑地址标记为无效且可以延迟在NVM中(例如在存储于NVM的索引页中的转换表中)进行类似的标记。NVM管理器还可以延迟对NVM进行将会反映去映射的任何其它改变,诸如无用单元收集操作或耗损平均操作。NVM管理器可維持与文件系统的LBA同步,而不需要立即对非易失性存储器执行去映射,因为如果发生不正常关机的话,NVM管理器还可以依赖于在下一次挂载时再次接收所需的去映射请求。文件系统可以利用任何合适的格式或协议向NVM管理器提供未分配逻辑地址的列表。在一些实施例中,文件系统可以通过ー个或更多去映射请求来发送列表,其中该去映射请求是与电子设备的运行(即挂载之后)期间发出的去映射请求相同的格式。请求的数量可以取决于需要传达的未分配LBA或LBA组块的数量。在另ー些实施例中,文件系统可以利用不同的协议发送列表,诸如用特殊命令(即,与典型的运行时读取、写入或去映射请求不同)。文件系统可以尝试向NVM管理器一次性发送未分配LBA或LBA组块的整个列表。然而,允许一次性发送整个列表的实施方式可能需要能存储最坏情况场景列表(即,其中每另ー个LBA都未被分配,从而有许多单LBA的组块)的过大的缓冲器。这样大的缓冲器甚至可能超出存储器(例如图I的存储器114)的大小。因此,该实施方式仅可适于特定环境或实施例中。作为选择,文件系统可以配置成反复地产生和发送部分列表到NVM管理器,从而在任何给定时刻最多仅预定量的存储器被使用。也就是说,产生和发送部分列表可以允许文件系统使用占据存储器的适当小的一部分的更小缓冲器。图4提供文件系统(例如文件系统210)能在挂载时向NVM管理器(例如NVM驱动器220)提供未分配逻辑地址的列表的ー种方式的示例。特别地,继续图3开始的示例,图4示出假定图表300中示出的LBA的状态下文件系统可发送到NVM管理器的示范性去映射请求400。去映射请求400能包括标头(header)402以允许NVM管理器将该请求识别为去映射请求。去映射请求402然后可以提供未分配LBA组块的至少一部分列表。在去映射请求400中,每个LBA组块在列表中由(I)组块中的第一 LBA和(2)组块中的LBA的数量(或者组块的“长度”)表示。例如,未分配的LBA组块304 (图3)可以由起始LBA 404和长度406描述,未分配的LBA组块308 (图3)可以由起始LBA 408和长度410描述。 去映射请求400的格式仅是示范性的,文件系统可以利用任何其它合适的方案来传达未分配LBA或LBA组块。例如,文件系统可以通过起始LBA和终止LBA来表示每个未分配组块。作为另ー示例,代替表达未分配的LBA组块,文件系统可以列出每个个体LBA。现在參照图5和图6,示出根据本发明的各种实施例的示范性过程的流程图。首先參照图5,示出用于校正文件系统(例如文件系统210)与NVM管理器(例如NVM驱动器220)之间的LBA分配差异的示范性过程500和520的流程图。过程500可以通过文件系统来进行,过程520可以通过NVM管理器来进行。过程500可以响应于操作系统触发的挂载NVM的挂载程序在步骤502开始。步骤502可以发生于文件系统已经通过NVM管理器获得对NVM的访问通道之后发生(即在下面论述的过程520的步骤522之后)。在一些情形下,操作系统可以在电子设备的引导期间开始挂载程序。在步骤504,文件系统可以访问LBA分配表,特别地,可以访问与NVM相关的表中的条目。在一些实施例中,步骤504可以包括访问位图。然后,在步骤506,文件系统可以准备未分配LBA的列表,诸如未分配LBA组块的列表。列表可以是完全的,因为它包括与NVM相关的当前未被文件系统使用的全部LBA。在步骤508,文件系统可以将该列表提供到NVM管理器。在一些实施例中,列表可以通过向NVM管理器发出ー个或更多去映射请求来提供。现在參照过程520,NVM管理器可以在任何适当的时候开始执行过程520的步骤,诸如在加载NVM驱动器时或者在电子设备的引导时。在步骤522,NVM管理器可以完全扫描NVM的存储位置,诸如完全扫描NVM的每ー页。扫描期间,NVM管理器可以进行构建将逻辑地址(例如LBA)映射到物理地址的转换表的步骤524。例如,NVM的有效编程页可以每个存储相关的LBA,NVM管理器可以使用所存储的LBA来填充所述表。这样,在步骤526,NVM管理器可以识别哪些LBA处于使用中(即已分配)。一旦步骤522完成且已分配的LBA被识别(即被枚挙)且映射到它们各自的物理地址,则NVM管理器可以开始处理文件系统请求。特别地,NVM管理器可以处理读、写和去映射请求,诸如读取与LBA分配表对应的数据的文件系统请求(即,在上面论述的过程500的步骤504)。继续到步骤528,NVM管理器可以从文件系统接收未分配LBA的列表,诸如全部未分配LBA组块的列表。该信息可以例如经在文件系统的挂载时准备和发出的一个或更多去映射请求而被接收。然后,在步骤530,NVM管理器可以确定在步骤526被NVM管理器识别为已分配的LBA与文件系统识别为实际未分配的LBA之间是否有任何不一致。如果有任何不一致,这可能是由于在不正常关机(例如掉电、用户突然强迫关机或者内核错误)期间丢失的先前的去映射请求所导致。如果在步骤530确定没有不一致,则过程520可以在步骤532終止,不进行任何校正措施。例如,如果去映射请求中接收到的LBA中没有一个出现在逻辑到物理地址映射中,则NVM管理器无事可做。因此,NVM管理器可以有效地忽略和丢弃去映射请求,允许过程520終止而不对易失性或非易失性存储器进行任何改变。如果在步骤530,NVM管理器确定有LBA分配不一致的话,则过程520可以继续到步骤534,在步骤534NVM管理器可以执行校正措施以消除不一致。在一些实施例中,当收到包括能在NVM管理器的逻辑到物理地址映射中发现的LBA的去映射请求时,在步骤530认识到不一致。在该情况下,NVM管理器可以处理去映射请求,而不是忽略该请求。例如,在 步骤534,NVM管理器可以将所接收的LBA与逻辑到物理地址映射中的物理地址去关联,在步骤536, NVM管理器可以将相关的NVM存储位置(例如页、块或超级块)标记为无效。如果需要的话,这些校正步骤可以通过在易失性存储器中进行改变来进行,因为NVM管理器可以依赖于文件系统再发送未分配LBA的列表,如果另一次不正常关机发生的话。这样,NVM管理器不需要对非易失性存储器进行改变,直到是进行无用单元收集、耗损平均或其它NVM管理操作的合适时间。在步骤536之后,过程520可以返回到步骤530以检查额外的不一致。例如,NVM管理器可以继续检查包括需要被去映射的LBA的去映射请求。现在參照图6,示出用于准备未分配LBA组块的列表的示范性过程600的流程图。过程600可以通过维护与图3的位图320类似的位图的文件系统诸如图2的文件系统210来执行。在一些实施例中,过程600可以提供文件系统如何能完成过程500 (图5)的步骤506的更详细视图。因此可以执行过程600使得文件系统能向NVM管理器(例如图2的NVM驱动器220)传达全部未分配LBA组块。过程600可以在例如操作系统触发文件系统的挂载之后在步骤602开始。在步骤604,文件系统可以访问与NVM (例如图I的NVM120)相关的LBA的位图。在步骤606,文件系统可以选择位图的第一位,然后在步骤608,文件系统可以确定该第一位是否未被分配。例如,文件系统可以确定位的值是否是表示位未被分配的“O”或者位的值是否是表示位被分配的“ I”。如果在步骤608文件系统确定第一位被分配,则该位不是需要传达到NVM管理器的未分配LBA组块的一部分。因此,过程600可以返回到步骤606,文件系统选择位图中的下一位(于步骤610中确认了位图中有额外的位之后)。文件系统可以继续在步骤606、608和610之间重复,直到文件系统遇到与未分配LBA相关的位(例如,位图中具有“ O ”位值的位)。此时,文件系统可以基于当前位在位图中的位置来识别未分配LBA。在步骤614识别的未分配LBA是文件系统将传达到NVM管理器的未分配LBA组块的起点。既然未分配LBA组块的起点已经建立,文件系统就能确定组块有多长。为了保持对当前组块的长度的监视,文件系统可以维护计数器。毎次发现另一未分配LBA(例如位图中的“O”)而没有遇到已分配LBA (例如,位图中的“I”)或者位图的末尾时,文件系统将计数器加一。特别地,文件系统可以在步骤618选择位图中的下一位(在步骤616确认了位图中有额外的位之后),在步骤620确定所选择的位是否表示相关的LBA也未分配,并且如果LBA未分配的话在步骤622将计数器加一。步骤616至步骤620可以反复执行,直到到达当前的未分配LBA组块的结尾。当在步骤616文件系统确定与NVM相关的位图中没有更多的位吋,或者当在步骤620文件系统确定位图中的下一位对应于已分配LBA吋,当前组块的结尾可以被识别。此时,过程600可以继续从步骤616到步骤624或者从步骤620到步骤626。在步骤624或者步骤626,文件系统具有充分的关于当前未分配LBA组块的信息以识别整个组块且将该信息传送到NVM管理器。文件系统可以以任何合适的形式识别和提供组块,诸如通过给出组块中的起始LBA(在步骤610确立)和组块的长度(通过计数器来表达)。图4的去映射请求400是使用这种方案的请求的ー个示例。从步骤624起,过程600可以终止于步骤612,因为已经到达位图的末尾且没有更多的未分配LBA组块要传达到NVM管理器。然而,从步骤626起,可能有额外的未分配LBA 组块有待识别,因此过程620继续到步骤628。在步骤628,文件系统可以重置计数器,为发现另ー个未分配LBA组块做准备。然后,过程600可以返回到起点,文件系统可以在步骤606,608和610寻找另ー个未分配LBA。如果没有发现额外的未分配LBA组块,则文件系统将最终在步骤610遇到位图的末尾且过程600可以在之后的步骤612終止。应理解,图5和图6的过程500/520和600的步骤分别仅是示范性的。任何步骤可以被修改、去除或组合,且可以包括额外的步骤,而不偏离本发明的范围。根据ー些示范性实施例,图7和图8分别示出根据上述本发明的原理配置的电子设备700和800的功能框图。这些电子设备的功能框图可以通过硬件、软件或者硬件与软件的组合来实施以实现本发明的原理。本领域技术人员将理解,图7和图8描绘的功能框中每个都可以组合或者分离成子框以实施上面描述的本发明的原理。因此,这里的描述可以支持这里描述的功能框的任何可行的组合或分离或者进ー步定义。如图7所示,电子设备700可以包括操作単元710、非易失性存储器(NVM)管理器720、以及非易失性存储器(NVM)730。操作単元710可以用于执行任意合适的操作系统。操作系统可以触发NVM730的挂载。例如,在一些实施例中,操作单元710可以配置成在电子设备700的引导时触发NVM 730的挂载。操作系统可以包括任何适当的文件系统,诸如FAT文件系统或者HFS文件系统。在一些实施例中,操作単元710可以包括用于执行操作系统的处理器。在一些实施例中,NVM管理器720例如可以是NVM驱动器。在一些实施例中,操作単元710可以包括识别单元714和请求发送単元716。识别单元714可以响应于操作系统触发NVM 730的挂载,识别与NVM 730相关的未分配逻辑地址。请求发送単元716可以向NVM管理器720发出至少ー个去映射请求以去映射所识别的未分配逻辑地址。在一些实施例中,请求发送単元716还可以用于向NVM管理器720发送其它请求,诸如写请求、读请求等。在一些实施例中,操作单元710还可以包括分配表维护单元712,用于维护逻辑块地址(LBA)分配表。LBA分配表可以表明哪些逻辑地址已被分配给存储于NVM 730中的文件。在一些实施例中,LBA分配表可以包括位图。识别单元714可以基于位图来识别未分配的逻辑地址。在一些实施例中,NVM管理器720可以包括转换层722。转换层722可以配置成维护逻辑地址到NVM 730的物理地址(例如页、块、集成电路等)的映射,并且响应于接收去映射请求,更新该映射。当NVM管理器720收到从请求发送单元716发送的去映射请求,且与该去映射请求相关的未分配逻辑地址已经被去映射吋,则NVM管理器可以放弃该去映射请求。在一些实施例中,NVM 730可以是NAND闪存。应理解,这里描述的电子设备700在很多方面可以利用前面描述的设备和方法实施例或者与之结合。图8示出根据另ー实施例的电子设备800的功能框图。如图8所示,电子设备800可以包括非易失性存储器(NVM)830、NVM管理器820以及操作单元810。操作单元810可以 执行文件系统。操作単元810可以包括识别单元814和请求发送単元816。识别单元814可以用于识别与NVM 830相关的待释放的逻辑地址的。请求发送単元816可以包括第一发送单元817,用于响应于识别逻辑地址,向NVM管理器820发出第一去映射请求以释放该逻辑地址;以及第二发送单元819,用于在后面的NVM 830挂载期间,向NVM管理器820发出第二去映射请求以释放该逻辑地址。这样,即使第一去映射请求由于例如不正常关机而被丢失,NVM管理器820也可以有效地再次接收第二去映射请求且有第二次机会来履行该去映射请求。在一些实施例中,识别单元814可以配置成准备与NVM 830相关的未分配逻辑地址的完全列表。请求发送単元816可以配置成发出多个去映射请求以释放该完全列表的未分配逻辑地址,且第二映射请求可以包括在所述多个去映射请求中。操作单元810还可以包括维护逻辑地址分配表的分配表维护单元812。在ー些实施例中,例如,分配表维护单元812可以维护表明哪些逻辑地址已被分配给存储于NVM 830中的文件的位图。第二发送单元819可以响应于挂载时在逻辑地址分配表中确定逻辑地址未被分配而发出第二去映射请求。在一些实施例中,NVM管理器820可以包括转换层822。转换层822可以配置成维护逻辑地址到NVM 830的物理地址(例如页、块、集成电路等)的映射。在一些实施例中,电子设备800还可以包括易失性存储器840。易失性存储器840可以存储管理NVM 830所需的信息的至少一部分。在一些实施例中,NVM管理器820可以配置成响应于接收第一去映射请求,在易失性存储器840中将逻辑地址标记为无效,且延迟在NVM 830中进行与所无效的逻辑地址相关的改变。这是因为NVM管理器820可以依赖于在下一次挂载时接收的第二去映射请求。应理解,这里描述的电子设备800在很多方面可以利用前面描述的设备和方法实施例或者与之结合。所描述的本发明的实施例是为了示范而给出,而非用于限制。
权利要求
1.一种准备用于电子设备中的非易失性存储器(NVM)的方法,其中所述电子设备实施文件系统和NVM管理器,所述方法包括 在所述文件系统的挂载时 准备与所述NVM相关的未分配逻辑地址的列表,以及 从所述文件系统提供所述列表到所述NVM管理器;以及 基于所提供的列表使用所述NVM管理器来管理所述NVM。
2.如权利要求I所述的方法,其中所述准备包括汇编未分配的逻辑块地址(LBA)组块的列表。
3.如权利要求2所述的方法,其中所述汇编包括对于每个未分配LBA组块识别该未分配LBA组块的第一 LBA和该未分配LBA组块的长度。
4.如权利要求I所述的方法,还包括维护表示哪些逻辑块地址(LBA)未分配和哪些LBA已分配的LBA分配表,其中所述准备包括完全扫描所述LBA分配表。
5.如权利要求I所述的方法,其中所述提供包括向所述NVM管理器发出至少一个去映射请求。
6.如权利要求I所述的方法,其中所述提供包括向所述NVM管理器提供多个部分列表。
7.如权利要求I所述的方法,其中所述管理包括 识别所述未分配逻辑地址中的哪些尚未被NVM管理器去映射;以及 去映射尚未被去映射的逻辑地址。
8.—种电子设备,包括 非易失性存储器(NVM); NVM管理器;以及 操作单元,用于执行包括文件系统的操作系统; 其中所述操作单元包括 识别单元,用于响应于该操作系统触发该NVM的挂载,识别与该NVM相关的未分配逻辑地址,以及 请求发送单元,用于向所述NVM管理器发出至少一个去映射请求以去映射所识别的未分配逻辑地址。
9.如权利要求8所述的电子设备,其中所述操作单元配置成在所述电子设备的引导时触发所述NVM的挂载。
10.如权利要求8所述的电子设备,其中所述操作单元还包括分配表维护单元,用于维护表示与NVM相关的逻辑地址中的哪些被分配的位图,且 其中所述识别单元配置成基于所述位图识别未分配的逻辑地址。
11.如权利要求8所述的电子设备,其中所述NVM管理器配置成放弃与已经去映射的未分配逻辑地址相关的任何去映射请求。
12.如权利要求8所述的电子设备,其中所述NVM管理器包括转换层,所述转换层配置成 维护逻辑地址到所述NVM的物理地址的映射;以及 响应于接收所述至少一个去映射请求,更新所述映射。
13.如权利要求8所述的电子设备,其中所述NVM管理器包括NVM驱动器,且其中所述操作单元包括用于执行所述操作系统的处理器。
14.如权利要求8所述的电子设备,其中所述NVM是NAND闪存。
15.一种在挂载时准备用于从文件系统发出到非易失性存储器(NVM)管理器的去映射请求的方法,其中所述文件系统和NVM管理器通过具有NVM的电子设备来实施,所述方法包括 在挂载时,访问表明多个逻辑块地址(LBA)中的哪些被分配的位图; 扫描所述位图以识别多个未分配LBA组块;以及 准备包括所识别的多个未分配LBA组块的去映射请求。
16.如权利要求15所述的方法,其中所述扫描包括对于所述多个未分配LBA组块中的每个,确定未分配LBA组块中的第一 LBA和该LBA组块的长度。
17.如权利要求15所述的方法,还包括维护计数器来监视所述多个未分配LBA组块中的每个的长度。
18.如权利要求15所述的方法,其中所述扫描包括基于未分配LBA组块在所述位图中的定位来识别所述多个未分配LBA组块。
19.一种电子设备,包括 非易失性存储器(NVM); NVM管理器;以及 操作单元,用于执行文件系统,其中所述操作单元包括 识别单元,用于识别与所述NVM相关的待释放的逻辑地址;以及 请求发送单元,包括 第一发送单元,用于响应于识别逻辑地址,向所述NVM管理器发出第一去映射请求以释放该逻辑地址;以及 第二发送单元,用于在后面的NVM挂载期间,向所述NVM管理器发出第二去映射请求以释放该逻辑地址。
20.如权利要求19所述的电子设备,其中所述识别单元配置成准备与所述NVM相关的未分配逻辑地址的完全列表;且 其中所述请求发送单元配置成发出多个去映射请求以释放该完全列表的未分配逻辑地址,其中所述第二映射请求包括在所述多个去映射请求中。
21.如权利要求19所述的电子设备,其中所述操作单元还包括维护逻辑地址分配表的分配表维护单元,其中所述第二发送单元响应于挂载时在该逻辑地址分配表中确定逻辑地址未被分配而发出所述第二去映射请求。
22.一种用于准备用于电子设备中的非易失性存储器(NVM)的装置,其中所述电子设备实施文件系统和NVM管理器,所述装置包括 用于在所述文件系统的挂载时准备与所述NVM相关的未分配逻辑地址的列表的装置;用于在所述文件系统的挂载时从所述文件系统提供所述列表到所述NVM管理器的装置;以及 用于基于所提供的列表使用所述NVM管理器来管理所述NVM的装置。
23.如权利要求22所述的装置,其中所述用于在所述文件系统的挂载时准备与所述NVM相关的未分配逻辑地址的列表的装置包括用于汇编未分配的逻辑块地址(LBA)组块的列表的装置。
24.如权利要求22所述的装置,还包括用于维护表示哪些逻辑块地址(LBA)未分配和哪些LBA已分配的LBA分配表的装置,其中所述准备包括完全扫描所述LBA分配表。
25.如权利要求22所述的装置,其中所述用于基于所提供的列表使用所述NVM管理器来管理所述NVM的装置包括 用于识别所述未分配逻辑地址中的哪些尚未被NVM管理器去映射的装置;以及 用于去映射尚未被去映射的逻辑地址的装置。
26.一种用于在挂载时准备用于从文件系统发出到非易失性存储器(NVM)管理器的去映射请求的装置,其中所述文件系统和NVM管理器通过具有NVM的电子设备来实施,所述装置包括 用于在挂载时,访问表明多个逻辑块地址(LBA)中的哪些被分配的位图的装置; 用于扫描所述位图以识别多个未分配LBA组块的装置;以及 用于准备包括所识别的多个未分配LBA组块的去映射请求的装置。
27.如权利要求26所述的装置,还包括维护计数器来监视所述多个未分配LBA组块中的每个的长度的装置。
全文摘要
本发明涉及非易失性存储系统中未使用的逻辑地址的挂载时去映射。一种包括非易失性存储器(NVM)的电子设备可以实施文件系统,在NVM的挂载时,文件系统识别与NVM相关的未分配的全部逻辑地址。文件系统可以在诸如一个或更多去映射请求中将该信息传送到NVM管理器。这能确保NVM管理器不维护与文件系统不再需要的逻辑地址相关的数据。
文档编号G06F12/02GK102855193SQ20121017922
公开日2013年1月2日 申请日期2012年6月1日 优先权日2011年6月3日
发明者D·J·波斯特, E·塔姆拉, V·科麦尔尼斯基, N·J·瓦克拉特, M·拜奥姆 申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1