用于修剪在非易失性闪速介质上的数据的方法

文档序号:6338666阅读:245来源:国知局
专利名称:用于修剪在非易失性闪速介质上的数据的方法
技术领域
本发明的实施例总体上涉及数据存储领域,并且更具体地,涉及用于修剪(trim) 在非易失性闪速介质上的数据的方法。
背景技术
闪速存储器正在被更频繁地用于在计算设备中的数据存储,并且在一些情况下正 在替代传统的硬盘驱动器。操作系统(OS) “删除”并且考虑可用空间的在闪速存储器中存 储的数据可能实际上被维持在闪速存储器中会潜在地降低性能。修剪操作已经被技术委员 会T13标准化,以提供一种方式来向闪速存储器设备指示对于哪些逻辑地址它不再必须维 持有效的逻辑到物理地址映射。


在附图中通过示例而不是限定的方式来说明本发明,在附图中,相似的标号表示 类似的部件,并且其中图1是根据本发明的一个示例性实施例的示例性闪速存储器的说明;图2是根据本发明的一个示例性实施例的适合于实现所公开的方法的示例性电 子装置的框图;图3是根据本发明的一个示例性实施例的用于修剪在非易失性闪速介质上的数 据的示例性方法的流程图;以及图4是包括内容的示例性制品的框图,当被设备访问时所述内容使得该设备实现 本发明的一个或多个实施例的一个或多个方案。
具体实施例方式在下面的描述中,出于解释的目的给出了许多具体细节,以提供对本发明的透彻 理解。然而,对于本领域技术人员将显而易见的是,可以在没有这些具体细节的情况下实践 本发明的实施例。在其他实例中,以框图形式示出结构和设备,以免模糊本发明。在整个本说明书中对“一个实施例”、“实施例”的引用表示结合这些实施例描述的 特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,在整个本说明书各处出 现的短语“在一个实施例中”、“在实施例中”不必然都指的是相同的实施例。此外,在一个 或多个实施例中,可以以任何适当的方式来组合这些特定特征、结构或特性。图1是根据本发明的一个示例性实施例的示例性闪速存储器的说明。根据所说明 的示例性实施例,文件系统存储器100可以包括一个或多个逻辑块102。虽然被示出为包括 64个逻辑块102,但是文件系统存储器100可以具有任何数量的块。如所示出的,文件系统 存储器100可以包括已分配的文件系统块104(其可以包含有效数据)、已删除的文件系统 块106(其可以包含已经删除的数据)和未分配的文件系统块108(其可以不包含数据)。 在一个实施例中,文件系统存储器100包括例如在固态盘或硬盘驱动器高速缓存中的NAND闪速存储器。在一个实施例中,文件系统存储器100的可用自由空间包括已删除的文件系 统块106和未分配的文件系统块108 二者。虽然被示出为连续区域,但是已分配的文件系 统块104、已删除的文件系统块106和未分配的文件系统块108可以是不连续的。作为例如关于图3所描述的用于修剪在文件系统存储器100上的数据的方法的一 部分,可以在文件系统存储器100中创建临时文件110并向其分配空间。作为例如关于图3所描述的用于确认逻辑块102未被重新映射的方法的一部分, 可以创建测试文件112。测试文件112可以包括唯一标识符(ID) 114。图2是根据本发明的一个示例性实施例的适合于实现所公开的方法的示例性电 子装置的框图。电子装置200意在表示各种各样的传统和非传统电子装置、膝上型计算机、 台式计算机、蜂窝电话、无线通信用户单元、无线通信电话基础结构部件、个人数字助理、机 顶盒或将受益于本发明的教导的任何电子装置中的任何一种。根据所说明的示例性实施 例,电子装置200可以包括如图2中所示耦合的处理器202、存储器控制器204、系统存储器 206、输入/输出控制器208、网络控制器210、输入/输出设备212、固态盘214、总线216和 修剪代理218中的一个或多个。在一个实施例中,固态盘214包括闪速存储器,诸如文件系 统存储器100。在一个实施例中,作为参照图3更详细描述的用于修剪在非易失性闪速介质 上的数据的方法的一部分,修剪代理218产生临时文件110和测试文件112。处理器202可以表示各种各样的控制逻辑中的任何一种,包括但是不限于微处 理器、可编程逻辑器件(PLD)、可编程逻辑阵列(PLA)、专用集成电路(ASIC)、微控制器等中 的一个或多个,但是本发明并不限于此。在一个实施例中,处理器202是Intel 兼容处理 器。处理器202可以具有指令集,该指令集包含例如可以被应用或操作系统调用的多个机 器级指令。存储器控制器204可以表示将系统存储器206与电子装置200的其他组件进行接 口连接的任何类型的芯片组或控制逻辑。在一个实施例中,在处理器202和存储器控制器 204之间的连接可以是点到点的串行链路。在另一个实施例中,存储器控制器204可以被称 为北桥。系统存储器206可以表示用于存储可能已经被或将被处理器202使用的数据和指 令的任何类型的存储器设备。通常,系统存储器206将由动态随机存取存储器(DRAM)构成, 但是本发明并不限于此。在一个实施例中,系统存储器206可以由Rambus DRAM (RDRAM)构 成。在另一个实施例中,系统存储器206可以由双倍数据率同步DRAM(DDRSDRAM)构成。输入/输出(I/O)控制器208可以表示将I/O设备212与电子装置200的其他组 件进行接口连接的任何类型的芯片组或控制逻辑。在一个实施例中,I/O控制器208可以 被称为南桥。在另一个实施例中,I/O控制器208可以符合外围组件互连(PCI)专业组在 2003年4月15日发布的快速PCI 基本规范的修订版1.0a。网络控制器210可以表示允许电子装置200与其他电子装置或设备进行通信 的任何类型的设备。在一个实施例中,网络控制器210可以符合电气与电子工程师协会 (IEEE) 802. Ilb标准(在1999年9月16日被批准,其是对ANSI/IEEE标准802. 11的1999 版本的补充)。在另一个实施例中,网络控制器210可以是以太网网络接口卡。输入/输出(I/O)设备212可以表示向电子装置200提供输入或处理来自电子装 置200的输出的任何类型的设备、外设或组件。
总线216被示出为将固态盘214与I/O控制器208耦合,然而,固态盘214可以耦 合到电子装置200的其他组件。在一个实施例中,总线216表示串行高级技术附件(SATA) 总线。虽然被示出为固态盘214的一部分,但是可以将修剪代理218并入电子装置200 的另一组件(诸如I/O控制器208)内。在一个实施例中,修剪代理218可以是软件或软件 和硬件的组合。在一个实施例中,修剪代理218表示在用户模式中运行的操作系统(OS)应用。图3是根据本发明的一个示例性实施例的用于修剪在非易失性闪速介质上的数 据的示例性方法的流程图。对于本领域技术人员将显而易见的是,虽然下面的操作可以被 描述为顺序处理,但是事实上可以并行或并发地执行这些操作中的许多操作。另外,在不偏 离本发明的实施例的精神的情况下,可以重新安排这些操作的顺序。在一个实施例中,方法300从确认(30 文件系统存储器100的逻辑存储器块102 未被重新映射开始。在一个示例性实施例中,创建包含ID 114的测试文件112。测试文件 112然后被写入文件系统存储器100。然后确定测试文件112占用的特定文件系统逻辑块 102,并且读取对应的SSD逻辑块(或最后块)的原始内容以确定ID 114是否被存储为被写 入而没有进行重新映射。在一个实施例中,该确认步骤被执行一次,以保证方法300不会疏 忽地修剪错误的逻辑块地址(LBA)和在重新映射(例如RAID)的情况下可能有效的数据。 在其他实施例中,可以跳过或以其他方式来完成该步骤。接下来是分配(304)临时文件110以占用文件系统存储器100的自由空间。在一 个实施例中,临时文件110被分配到基本上所有的已删除的文件系统块106和未分配的文 件系统块108。在另一个实施例中,例如通过查询OS来确定在文件系统存储器100上的自 由空间的量。在一个实施例中,临时文件110被分配对文件系统存储器100上的自由空间 的专有权利。方法300继续确定(306)文件系统存储器100的由临时文件110占用的特定逻辑 块。在一个实施例中,产生分区管理器查询,以返回临时文件110占用的卷偏移和文件系统簇。接下来是产生(308)针对特定块的修剪命令。在一个示例性实施例中,在OS不知 晓或不支持TRIM的情况下,在用户模式小应用程序中产生修剪命令。在一个实施例中,经 由ATA穿透(pass through)将修剪命令直接地传送到文件系统存储器100。然后,方法300可以以下述操作为结束在从介质清理了空间后,删除(310)临时 文件110以使得该空间对于文件系统为可用。可以间歇地或按照定期重发调度来执行方法 300。图4说明了包括内容的示例性存储介质的框图,当被访问时所述内容使得电子装 置实现所公开的方法300的一个或多个方案。在此方面,存储介质400包括内容402 (例如, 指令、数据或其任何组合),当被执行时内容402使得所述装置实现上文描述的方法的一个 或多个方案。机器可读(存储)介质400可以包括但是不限于软盘、光盘、⑶-ROM和磁光盘、 ROM、RAM、EPROM、EEPR0M、磁卡或光卡、闪速存储器或适合于存储电子指令的其他类型的介 质/机器可读介质。此外,本发明也可以被下载为计算机程序产品,其中,所述程序可以经
6由通信链路(例如,调制解调器、无线电或网络连接)通过实施在载波或其他传播介质中的 数据信号的方式从远程计算机被传送到请求计算机。在上面的描述中,出于解释的目的给出了许多具体细节,以提供对本发明的透彻 理解。然而,对于本领域技术人员将显而易见的是,可以在没有这些具体细节中的一些的情 况下实践本发明。在其他实例中,以框图形式示出公知结构和设备。可以在各种应用中使用本发明的实施例。但是本发明并不限于此,本文公开的本 发明可以用在微控制器、通用微处理器、数字信号处理器(DSP)、精简指令集计算(RISC)、 复杂指令集计算(CISC)以及其他电子组件中。然而,应当理解,本发明的范围不限于这些 示例。本发明的实施例也可以被包括在称为核心存储器、高速缓冲存储器的集成电路块 中,或者被包括在存储由微处理器执行的电子指令或存储可以在算术运算中使用的数据的 其他类型的存储器中。通常,根据所要求保护的主题的使用多级多米诺逻辑的实施例可以 向微处理器提供益处,并且具体地说,可以被并入存储器设备的地址解码器中。注意,可以 将这些实施例集成到无线电系统或手持便携设备内,特别是当设备依赖于降低的功耗时可 以进行该集成。因此,意欲将膝上型计算机、蜂窝无线电话通信系统、双向无线电通信系统、 单向寻呼机、双向寻呼机、个人通信系统(PCS)、个人数字助理(PDA)、照相机和其他产品包 括在本发明的范围内。本发明包括各种操作。本发明的操作可以由硬件组件执行,或可以被实施在机器 可执行内容(例如,指令)内,所述机器可执行内容可以用于使得用所述指令编程的通用或 专用处理器或逻辑电路执行这些操作。可替代地,可以通过硬件和软件的组合来执行这些 操作。此外,虽然已经在计算装置的环境中描述了本发明,但是本领域技术人员将意识到, 这些功能可以被良好地实施在多个替代实施例中的任何一个中,例如集成在通信装置(例 如,蜂窝电话)内。虽然以其最基本的形式来描述这些方法中的许多方法,但是在不偏离本发明的基 本范围的情况下,可以为任何这些方法添加或删除操作,并且可以为所描述的任何消息添 加或减去信息。本发明的思想的任何数量的变型预期在本发明的范围和精神内。在此方面, 具体说明的示例性实施例并非被提供来限制本发明,而仅是说明本发明。因此,本发明的范 围不是由上文所提供的示例确定,而是由所附权利要求的明语确定。
权利要求
1.一种包括内容的存储介质,当被访问机器执行时所述内容使得所述访问机器 分配占用在文件系统中的自由空间的临时文件;确定所述文件系统的由所述临时文件占用的逻辑块地址(LBA); 产生针对特定的所述LBA的TRIM命令;以及 删除所述临时文件。
2.根据权利要求1所述的存储介质,还包括当被访问机器执行时使得所述访问机器确 认所述文件系统未重新映射LBA的内容。
3.根据权利要求2所述的存储介质,其中,用于确认所述文件系统未重新映射LBA的所 述内容包括用于进行下述操作的内容创建包含唯一标识符的测试文件;将所述测试文件写入所述文件系统;确定所述文件系统中由所述测试文件占用的特定块;以及从至少一个闪速存储器块读取原始内容,以确定所述唯一标识符是否被存储而未重新 映射。
4.根据权利要求1所述的存储介质,其中,所述文件系统包括NAND闪速存储器。
5.根据权利要求4所述的存储介质,其中,所述NAND闪速存储器包括固态盘。
6.根据权利要求4所述的存储介质,其中,所述NAND闪速存储器包括硬盘驱动器高速缓存。
7.根据权利要求1所述的存储介质,其中,用于确定所述文件系统的由所述临时文件 占用的LBA的所述内容包括用于向分区管理器查询所述临时文件占用的卷偏移和文件系 统簇的内容。
8.根据权利要求1所述的存储介质,其中,用于分配占用在文件系统中的自由空间的 临时文件的所述内容包括用于进行下述操作的内容确定所述文件系统中的自由空间的量;以及分配占用所述文件系统中的基本上所有的所述自由空间的专有权利文件。
9.一种系统,包括 处理器;网络控制器;以及存储设备,其中,所述存储设备包括闪速存储器和修剪引擎,所述修剪引擎用于 分配占用在闪速存储器上的自由空间的临时文件; 确定所述闪速存储器的由所述临时文件占用的特定块; 产生针对所述特定块的TRIM命令;以及 删除所述临时文件。
10.根据权利要求9所述的系统,还包括所述修剪引擎用于确认所述闪速存储器的逻 辑块地址未被重新映射。
11.根据权利要求10所述的系统,其中,所述修剪引擎用于确认所述闪速存储器的逻 辑块地址未被重新映射包括所述修剪引擎用于创建包含唯一标识符的测试文件; 将所述测试文件写入所述闪速存储器;确定所述闪速存储器的由所述测试文件占用的特定块;以及从至少一个闪速存储器块读取原始内容,以确定所述唯一标识符是否被存储而未重新 映射。
12.根据权利要求9所述的系统,其中,所述闪速存储器包括NAND闪速存储器。
13.根据权利要求9所述的系统,其中,所述修剪引擎用于确定所述闪速存储器的由所 述临时文件占用的特定块包括所述修剪引擎用于向分区管理器查询所述临时文件占用的 卷偏移和文件系统簇。
14.根据权利要求9所述的系统,其中,所述修剪引擎用于分配占用在闪速存储器上的 自由空间的临时文件包括所述修剪引擎用于确定在所述闪速存储器上的自由空间的量;以及分配占用在所述闪速存储器上的基本上所有的所述自由空间的专有权利文件。
15.一种方法,包括分配占用在文件系统中的自由空间的临时文件;确定固态驱动器(SSD)的由所述临时文件占用的特定逻辑块地址(LBA)产生针对所述特定LBA的TRIM命令;以及删除所述临时文件。
16.根据权利要求15所述的方法,还包括确认所述文件系统的LBA未被重新映射。
17.根据权利要求16所述的方法,其中,确认所述文件系统的LBA未被重新映射包括创建包含唯一标识符的测试文件;将所述测试文件写入闪速存储器;确定所述闪速存储器的由所述测试文件占用的特定块;以及从至少一个闪速存储器块读取原始内容,以确定所述唯一标识符是否被存储而未重新 映射。
18.根据权利要求15所述的方法,其中,确定所述SSD的由所述临时文件占用的特定 LBA包括向分区管理器查询所述临时文件占用的卷偏移和文件系统簇。
19.根据权利要求15所述的方法,其中,分配占用在文件系统中的自由空间的临时文 件包括确定在所述文件系统中的自由空间的量;以及分配占用所述文件系统中的基本上所有的所述自由空间的专有权利文件。
20.根据权利要求15所述的方法,其中,所述文件系统包括NAND闪速存储器。
全文摘要
总地阐述了用于修剪在非易失性闪速介质上的数据的方法。在此方面,在一个实施例中,介绍了一种方法,包括分配占用在闪速存储器上的自由空间的临时文件;确定所述闪速存储器的由所述临时文件占用的特定块;产生针对所述特定块的修剪命令;以及删除所述临时文件。描述了并要求保护其他实施例。
文档编号G06F12/02GK102096639SQ201010588429
公开日2011年6月15日 申请日期2010年12月10日 优先权日2009年12月15日
发明者J·A·博伊德, K·S·格里姆斯鲁德 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1