用于固态驱动器优化的删除时移除技术的制作方法

文档序号:12362553阅读:247来源:国知局
用于固态驱动器优化的删除时移除技术的制作方法与工艺

背景

固态驱动器(“SSD”)在用作可引导大容量存储设备方面正变得经济。SSD一般被制造成包括闪存设备,如包括与非(“NAND”)型设备的非易失性闪存设备。因此,SSD写操作具有与典型的硬盘驱动器(“HDD”)所不同的考虑,其中HDD可在盘上的同一物理位置处用有效(新)数据盖写无效(已删除)数据。SSD写操作通常包括面向页的合并操作,以便将新数据与同一存储块的现有数据合并到新存储块中。如果现有数据是无效的,则这样的合并操作可能不必要地影响SSD性能。另外,出于可靠性的目的,SSD通常执行“磨损均匀化”操作以减少存储单元寿命降级。这样的操作通常将数据从一个块或页移动到另一个块或页。如果一个页上的数据是无效的,则对于该页的磨损均匀化操作可能不必要地影响SSD性能,并可能降低SSD可靠性。此外,典型的文件系统通常维护指示哪些数据被认为是已删除(无效)以及哪些数据不被认为是已删除的状态信息。但该数据通常不以对应于所有数据并且数据例如作为一个或多个逻辑块地址来物理地存储在设备上的方式迁移到对应的存储设备,如HDD或SSD。因此,与文件系统不同,存储设备通常不知道什么数据是有效的以及什么数据是无效的,并且因此通常不能够识别无效数据以避免对这些数据的不必要的操作。

概述

下面提供本发明的简要概述以便向读者提供基本的理解。本概述不是本发明的详尽概观,并且既不标识本发明的关键/决定性要素也不描绘本发明的范围。其唯一目的是以简化形式提供在此公开一些概念作为稍后提供的更详细描述的序言。

本发明的各示例提供用于标识对应于与删除事件相关联的数据的、存储在固态驱动器(“SSD”)上的数据以及用于将存储在该SSD上的已删除数据标记为无效以使该SSD可以避免对该无效数据的不必要的操作的技术。所包括的有可用于传递无效数据信息并提供删除时移除(remove-on-delete)命令的接口,该命令提供足以标识要被标记为无效的对应的SSD数据的无效数据信息。

许多附带特征将随着参考下面的详细描述并结合附图进行理解而得到更好的认识。

附图描述

结合附图考虑以下详细描述,将更好地理解本说明书,在附图中:

图1是示出常规操作系统和到固态驱动器的接口以及新操作系统和到该固态存储器的接口的框图。

图2是示出示例删除时移除方法的框图。

图3是示出在其中可以实现此处所描述的技术的示例计算环境的框图。

附图中使用相同的附图标记来指代相同的部分。

详细描述

下面结合附图所提供的详细描述旨在作为对本发明各示例的描述,而非表示用于构造或利用本发明各示例的唯一形式。本说明书阐明各示例的功能和/或用于构造和操作各示例的步骤序列的至少某一些。然而,相同或等价的功能与序列可由不同的示例来实现。

虽然在本文中将本发明的示例描述并示出为在计算环境中实现,但是所描述的系统只是作为示例而非限制来提供。本领域的技术人员将理解,本发明的各示例适于在各种不同类型的计算环境中应用。

图1是示出常规操作系统110a和到固态驱动器130的接口120a以及新操作系统110b和到该固态存储器(“SSD”)130的接口120b的框图。常规操作系统110a包括经由常规接口113a耦合到示例常规SSD驱动程序114a的示例常规文件系统112a。接口113a的一个示例是输入/输出控制(“IOCTL”)接口。文件系统112a通常管理诸如文件、文件夹、属性等数据的抽象。数据可以是任何类型的数字信息、可执行指令等。这些抽象通常被SSD驱动程序114a转换成物理数据访问和存储构造,SSD驱动程序114a经由接口120a与SSD 130进行接口以在SSD 130上存储数据并从中访问数据。接口120a的示例包括高级技术附件(“ATA”)接口和小型计算机系统接口(“SCSI”)等。

与诸如常规HDD、软盘、紧致盘等磁性或光学存储介质不同,示例SSD130是使用固态存储器设备等作为存储介质来制造的固态存储设备。这样的固态存储器设备可以是闪存、或任何其它类型或组合的固态存储器、随机存取存储器(“RAM”)等。这样的SSD设备可以是引导设备,并可被认为是主存储设备或大容量存储设备,如结合图3所描述的那些设备。这样的SSD设备可以是合成SSD设备,即SSD设备包括多个存储器类型或类别,其中每一类别具有不同的性能特征或访问速度。此处对SDD设备的功能或动作的描述一般指的是该SSD设备和/或对应的SSD驱动程序,如示例驱动程序114a和114b。

在另一示例中,SSD 130可以是常规HDD、光盘驱动器、存储区域网络(“SAN”)、磁带存储设备、和/或可包括可被认为无效的数据的任何其它形式的存储设备,包括结合图3所描述的大容量存储设备。本发明可适用于任何这样的存储设备、系统、机制等。

考虑描述通常如何在SSD上表示无效数据的以下示例。诸如人或系统等用户可以经由任何合适的接口来指示某些数据(如文件)应被删除。文件系统通常修改指示文件已被删除的持久数据结构,如通过从目录等中移除对已删除文件的引用。此外,文件系统可以将SSD上表示该文件的数据标记为是无效的。在一个示例中,这包括经由逻辑块编址(“LBA”)来向SSD发送指示该文件的开头的文件位置信息,其后通常伴随文件长度。描述要被删除的数据的LBA或数据位置信息通常通过命令经由接口来发送到SSD设备。在接收到该命令和相关联的数据位置信息后,SSD和/或其驱动程序可以将存储在SSD上的对应于已删除文件的数据标识为无效数据。在常规计算系统中,文件系统可知道已被删除的文件,但SSD不知道。典型的SSD只知道向其写入和从中读出的数据,但有效和无效数据之间没有区分。某些SSD及其相关联的驱动程序可以执行将从知道其上存储的数据是无效的之中受益的操作。例如,典型的SSD写操作具有与典型的硬盘驱动器(“HDD”)所不同的考虑,其中HDD可在盘上的同一物理位置处用有效(新)数据盖写无效(已删除)数据。与典型的HDD不同,SSD写操作通常包括面向页的合并操作,该操作旨在将新数据与存储块上的现有数据合并到新存储块。如果现有数据是无效的,则这样的合并操作可能不必要地影响SSD性能。另外,出于可靠性的目的,SSD通常执行“磨损均匀化”操作以减少存储单元寿命降级。这些操作通常将数据从一个存储块移动到另一个块,等等。如果页和/或块数据是无效的,则对于该页/块的磨损均匀化操作可能不必要地影响SSD性能,并可能降低SSD可靠性。

如此处所使用的,无效数据可以是存储在诸如SSD存储位置等存储位置中的、已由更高级别系统(诸如文件系统、驱动程序、应用程序等)删除的、或未使用的等等的数据。例如,在删除文件时,与该文件相关联的数据可被认为是无效的。注意,这种已删除或无效数据通常不被移除或擦除,而是可以简单地被分类为无效。在一个示例中,这种无效数据保持存储在存储设备上。在另一示例中,无效数据可被“无用信息收集(garbagecollect)”或以其它方式移除、盖写等。未被分类为无效的数据通常被认为是有效的。一般而言,与SSD不同,文件系统等知道数据分类是有效的还是无效的。

示例新操作系统110b包括经由常规接口113b和新接口140耦合到示例新SSD驱动程序114b的示例新文件系统112b。一般而言,元素110b、112b、和114b的功能对应于其类似地标号的“1xxa”常规对应物的功能,但对本发明添加了新功能。另选地,示例文件系统112b可以是包含文件系统功能的应用程序等。

文件系统112b利用新接口140来向SSD驱动程序114b传递无效数据信息。这种无效数据信息可包括文件位置和大小信息。接口140使文件系统112b能够经由无效数据信息向SSD驱动程序114b精确地指示存储在SSD 130上的哪些数据是无效的。在一个示例中,接口140是新IOCTL命令。在另一示例中,接口140是现有IOCTL命令的扩展。接口140可以符合适用于耦合文件系统和SSD驱动程序的、足以传递无效数据信息的任何格式和/或结构。此外,接口140还可以使文件系统112b能够向SSD驱动程序114b指示被写入SSD 130的有效数据是有效的,从而使得存储在SSD130上的有效数据不被标记为无效。

在一个示例中,接口120b符合具有用于传递无效数据信息的附加功能的ATA接口。而在另一个示例中,接口120b符合具有用于传递无效数据信息的附加功能的SCSI接口。接口120b可以符合适用于耦合SSD驱动程序和SSD设备的、足以传递无效数据信息的任何格式和/或结构。

给定无效数据信息,SSD驱动程序114b通常经由接口120b与SSD 130进行交互,以便根据该无效数据信息来将适当的数据、块、页等标记为无效。因此,可以在没有不必要地操作无效数据的情况下执行写合并操作、磨损均匀化操作等。此外,可以对被标记为包含无效数据的SSD块、页等执行优化操作。

图2是示出示例删除时移除方法200的框图。这种方法可被用来将已删除SSD数据标记为无效,或称为“删除时移除”。无效或已移除数据因而不被SSD设备考虑为有效数据。这使SSD设备免于执行保存或维护这种数据的任何操作。

框210指示影响SSD设备上所存储的数据的删除事件。这样的删除事件的一个示例是文件系统所执行的文件删除操作,其中被删除的文件当前存储在SSD设备上。在其它示例中,任何系统或机制可以执行影响SSD设备上所存储的数据的删除操作。通常,对应于SSD设备的SSD驱动程序接收和/或检测删除事件。方法200通常在框220处继续。

框220指示标识存储在SSD设备上的哪些数据对应于被删除的数据。在一个示例中,这涉及将被删除的文件的数据映射到存储在SSD上的对应的数据。这一映射产生标识存储在SSD适当的哪些数据要被标记为无效的无效数据信息。这一映射可由执行删除操作的系统来执行。无效数据信息标识存储在SSD上的、对应于被删除的文件以及被标记为无效的精确数据。这些数据可以作为页、块等来存储在SSD上。一旦标识了对应于删除操作且存储在SSD上的无效数据,则方法200通常在框230处继续。

框230指示删除时移除命令。该命令通常包括无效数据信息,并指示SSD设备和/或其驱动程序将所指示的数据标记为无效。在一个示例中,这一命令由执行删除操作的系统发出,如文件系统。一旦发出了删除时移除命令,方法200通常在框240处继续。

框240指示将已删除数据标记为无效。这一标记可以采取足以向SSD设备标识无效数据的任何形式。取决于SSD如何构造其数据,这一标记可以涉及将页和/或块等标记为无效。另选地,这一标记可包括将一定范围的无效数据移除到无效数据表中,等等。一旦将已删除数据标记为无效,则SSD设备免于执行对无效数据进行保存、维护等的任何操作。注意,该数据被诸如文件系统等更高级别系统认为是已删除的,并且对应的数据现在以SSD可以将该对应的数据识别为无效的方式在该SSD上被标记为无效。例如,如果文件系统正在删除文件“foo.bar”,则存储在SSD上的包括文件foo.bar的所有数据都被标记为无效。术语信息还可以指数据。一旦已删除数据被标记为无效,则方法200通常完成。

图3是示出在其中可以实现此处所描述的技术的示例计算环境300的框图。合适的计算环境可用多种通用或专用系统来实现。公知系统的示例可包括但不限于蜂窝电话、个人数字助理(“PDA”)、个人计算机(“PC”)、手持式或膝上型设备、基于微处理器的系统、多处理器系统、服务器、工作站、消费电子设备、机顶盒等。

计算环境300通常包括耦合到诸如外围设备302、303、304等各种组件的计算设备301形式的通用计算系统。系统300可以经由一个或多个输入/输出(“I/O”)接口312耦合到各种其它组件,如输入设备303,包括语音识别、触摸垫、按钮、键盘、和/或诸如鼠标或跟踪球等定点设备。计算设备301的组件可包括一个或多个处理器(包括中央处理单元(“CPU”)、图形处理单元(“GPU”)、微处理器(“μP”)等)307、系统存储器309、以及通常耦合各组件的系统总线308。处理器307通常处理或执行各种计算机可执行指令以控制计算设备301的操作,并且经由诸如网络连接314等各种通信连接与其它电子和/或计算设备、系统或环境(未示出)进行通信。系统总线308表示任何数量的若干类型的总线结构,包括存储器总线或存储器控制器、外围总线、串行总线、加速图形端口、使用各种总线体系结构中的任一种的处理器或局部总线等等。

系统存储器309可包括诸如随机存取存储器(“RAM”)等易失性存储器形式的和/或诸如只读存储器(“ROM”)或闪存(“FLASH”)等非易失性存储器形式的计算机可读介质。基本输入/输出系统(“BIOS”)可以存储在非易失性等中。系统存储器309通常存储数据、计算机可执行指令和/或包括计算机可执行指令的程序模块,包括可由一个或多个处理器307立即访问或目前正在其上操作的计算机可执行指令。

大容量存储设备304和310可经由耦合到系统总线和/或存储总线等来耦合到计算设备301或被合并到计算设备301中。这些大容量存储设备304和310可包括非易失性RAM;对可移动、非易失性磁盘(例如“软盘”)305进行读和/或写的磁盘驱动器;和/或对诸如CD ROM、DVD ROM 306等非易失性光盘进行读和/或写的光盘驱动器。或者,诸如硬盘310等大容量存储设备可包括不可移动存储介质。其它大容量存储设备可包括存储卡、记忆棒、磁带存储设备等。

任何数量的计算机程序、文件、数据结构等可被存储在大容量存储310、其它存储设备304、305、306以及系统存储器309(通常受可用空间限制)上,作为示例而非限制,包括操作系统、应用程序、数据文件、目录结构、计算机可执行指令等。

诸如显示设备302等输出组件或设备可通常经由诸如显示适配器311等接口耦合到计算设备301。输出设备302可以是液晶显示器(“LCD”)。其它示例输出设备可包括打印机、音频输出、语音输出、阴极射线管(“CRT”)显示器、触觉设备或其它传感输出机制等等。输出设备可以使计算设备301能够与人类操作员或其它机器、系统、计算环境等进行交互。用户可以经由诸如触摸垫、按钮、键盘、鼠标、操纵杆、游戏手柄、数据端口等任何数量的不同I/O设备303来与计算环境300进行接口。这些和其它I/O设备可以经由耦合到系统总线308的I/O接口312来耦合到处理器307,和/或可以经由诸如串行端口、游戏端口、通用串行总线(“USB”)、火线、红外(“IR”)端口等其它接口和总线结构来耦合。

计算设备301可以经由通过一个或多个蜂窝网络、无线网络、局域网(“LAN”)、广域网(“WAN”)、存储区域网络(“SAN”)、因特网、无线电链路、光学链路等到一个或多个远程计算设备的通信连接来在网络化环境中操作。计算设备301可经由网络适配器313等,或作为替换,经由调制解调器、数字用户线(“DSL”)链路、综合业务数字网(“ISDN”)链路、因特网链路、无线链路等来耦合到网络。

诸如网络连接等通信连接314通常提供到诸如网络等通信介质的耦合。通信介质通常使用诸如载波或其它传输机制等已调制数据信号来提供计算机可读以及计算机可执行指令、数据结构、文件、程序模块和其它数据。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质可包括诸如有线网络或直接连线连接等有线介质,以及诸如声学、射频、红外线或其它无线通信机制等无线介质。

诸如电池或电源等电源390通常向计算环境300的部分和全部提供电力。在计算环境300是移动设备或便携式设备等的情况下,电源390可以是电池。另选地,在计算环境300是台式计算机或服务器等的情况下,电源390可以是被设计成诸如经由墙上插座连接到交流(“AC”)源的电源。

某些移动设备可能不包括结合图3所描述的组合中的多个。例如,电子证件可包括线圈连同简单处理单元307等,该线圈被配置成在其靠近读卡器设备等时用作电源390。这种线圈还可被配置成用作耦合到处理单元307等的天线,该线圈天线能够在电子证件和读卡器设备之间提供某种形式的通信。这种通信可以不涉及连网,但可以替换地是经由遥测、点对点、RF、IR、音频、或其它手段的通用或专用通信。电子卡可以不包括显示器302、I/O设备303、或结合图3描述的其它组件中的多个。可能不包括结合图3所描述的组件中的多个的其它移动设备包括电子腕带、电子标签、可移植设备等。

本领域的技术人员将认识到用于提供计算机可读以及计算机可执行指令和数据的存储设备可分布在网络上。例如,远程计算机或存储设备可以存储软件应用程序和数据形式的计算机可读以及计算机可执行指令。本地计算机可以经由该网络访问远程计算机或存储设备,并下载软件应用程序或数据的部分或全部并且可执行任何计算机可执行指令。另选地,本地计算机可按需下载软件或数据的片断,或者通过在本地机器执行一些指令并且在远程计算机和/或设备执行一些指令来分布式地处理该软件。

本领域的技术人员还将认识到,通过利用常规技术,软件的计算机可执行指令的全部或部分可由诸如数字信号处理器(“DSP”)、可编程逻辑阵列(“PLA”)、分立电路等专用电子电路来执行。术语“电子装置”可包括含有任何软件、固件等的计算设备或消费电子设备,或不含有软件、固件等的电子设备或电路。

术语“固件”通常指的是在诸如ROM等电子设备中维护的可执行指令、代码、数据、应用程序、软件、程序等。术语“软件”通常指的是在任何形式的计算机可读介质之中或之上维护的可执行指令、代码、数据、驱动程序、应用程序、程序等。术语“计算机可读介质”通常指的是系统存储器、存储设备、及其相关联的介质等。

鉴于可应用所公开的本发明的原理和上述示例的许多可能的实施例,应当认识到,此处所描述的各示例仅旨在是说明性的,并且不应被认为是限制本发明的范围。因此,此处所描述的本发明构想了可落入所附权利要求书和其任何等效方案的范围内的所有这样的实施例。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1