合成固态驱动器标识和优化技术的制作方法

文档序号:6476912阅读:144来源:国知局

专利名称::合成固态驱动器标识和优化技术的制作方法合成固态驱动器标识和优化
背景技术
:固态驱动器("SSD")在用作可引导大容量存储设备方面正变得经济。SSD—般被制造成包括闪存设备,如包括与非("NAND")型设备的非易失性闪存设备。合成SSD("CSSD")通常用两种或更多种性能类别的存储器设备——高速存储器设备(并且因而成本较高)以及较低写速度设备(并且因而成本较低)一来制造。这些合成SSD往往比单独用髙速存储器设备制造的SSD成本更低。因为对大容量存储设备的写访问通常是局部化的,所以合成SSD能够提供结合了用于提供具有较不频繁写访问的可读大容量存储的较低写速度存储器元件的、可被充分利用来用于频繁写访问的高速存储器元件。由于引入了SSD设备,制造商通常将它们配置成对计算系统而言表现为常规硬盘驱动器("HDD")。但SSD和HDD之间往往有显著的性能差异。丙为许多SSD设备是使用闪存来制造的,所以典型的写操作具有与进行常规HDD的写操作所不同的考虑,其中HDD可以在盘上的同一物理位置用有效(新)数据盖写无效(已删除)数据。SSD写操作通常需要写合并操作,以便将新数据与同一存储块的其它现有数据合并到新存储块中。这种合并操作通常涉及块擦除操作,块擦除操作可能很慢并且降低设备的寿命。因此,不必要的写操作能降低SSD性能和/或可靠性。概述下面提供本发明的简要概述以便向读者提供基本的理解。本概述不是本发明的详尽概观,并且既不标识本发明的关键/决定性要素也不描绘本发明的范围。其唯一目的是以简化形式提供在此公开一些概念作为稍后提供的更详细描述的序言。本发明的各示例向操作系统提供基于对应的描述符来标识SSD和CSSD设备,并用于相对于该SSD/CSSD设备来优化操作系统功能的技术。优化包括禁用诸如HDD碎片整理等非SSD/CSSD功能,以及启用诸如写优化存储功能等SSD/CSSD专用功能。此外,这些技术也可应用于其它形式的存储器设备或存储设备等。许多附带特征将随着参考下面的详细描述并结合附图进行理解而得到更好的认识。附图描述结合附图考虑以下详细描述,将更好地理解本说明书,在附图中图1是示出常规操作系统和到固态驱动器的接口以及示例新操作系统和到该固态存储器的接口的框图。图2是示出示例合成固态驱动器的结构的框图。图3是示出用于标识SSD/CSSD设备并针对这些设备来优化操作系统操作的示例方法的框图。图4是示出在其中可以实现此处所描述的技术的示例计算环境的框图。附阁中使用相同的附图标记来指代相同的部分。详细描述下面结合附图所提供的详细描述旨在作为对本发明各示例的描述,而非表示用于构造或利用本发明各示例的唯一形式。本说明书阐明各示例的功能和/或用于构造和操作各示例的步骤序列的至少某一些。然而,相同或等价的功能与序列可由不同的示例来实现。虽然在本文中将本发明的示例描述并示出为在计算环境中实现,但是所描述的系统只是作为示例而非限制来提供。本领域的技术人员将理解,本发明的各示例适于在各种不同类型的计算环境中应用。图1是示出常规操作系统110a和到固态驱动器("SSD")130a的接口120a以及示例新操作系统110b和到合成固态存储器("CSSD")130b的接口120b的框图。常规操作系统110a包括经由常规接口113a耦合到示例常规SSD驱动程序114a的示例常规文件系统112a。接口113a的一个示例是输入/输出控制("IOCTL")接口。文件系统112a通常管理诸如文件、文件夹、属性等数据的抽象。这些抽象通常被SSD驱动程序114a转换成物理数据访问和存储构造,SSD驱动程序114a经由接口120a与SSD130a进行接口以在SSD130a上存储数据并从中访问数据。接口120a的示例包括高级技术附件("ATA")和小型计算机系统接口("SCSI")接口。与诸如常规HDD、软盘、紧致盘等磁性或光学存储介质不同,示例SSD130a是使用固态存储器设备等作为存储介质来制造的固态存储设备。这些固态存储器设备可以是闪存或任何其它类型或组合的固态存储器等。这些SSD设备可以是引导设备,并可被认为是主存储设备或大容量存储设备,如结合图4所描述的那些设备。此处对SDD设备的功能或动作的描述一般指的是该SSD设备和/或对应的SSD驱动程序。需要特别注意的是,SSD130a向操作系统110a将自己标识为常规HDD,并且操作系统110a识别SSD130a并将其作为常规HDD来进行接口。即便这样,SSD130a也可以是结合图2所描述的合成SSD。示例新操作系统110b包括经由示例新接口113b耦合到示例新合成SSD("CSSD")驱动程序114b的示例新文件系统112b,CSSD驱动程序114b又经由新示例接口120b耦合到CSSD130b。一般而言,元素110b、112b、113b、114b、120b和130b的功能对应于其类似地标号的lxxa常规对应物的功能,但对本发明添加了新功能。文件系统112b利用新接口113b来与CSSD驱动程序114b通信,以经由新接口120b从CSSD130b标识并检索CSSD描述信息。这种CSSD描述信息通常使操作系统110b尤其能够识别CSSD130b并将其作为CSSD设备而非常规HDD来进行接口。接口113b通常在功能上与接口113a相对应,但还可用于至少传递CSSD描述信息。在一个示例中,接口113b符合具有用于传递CSSD描述信息的附加功能的IOCTL接口。接口113b可以符合适用于耦合文件系统和CSSD驱动程序的、足以传递CSSD描述信息的任何格式和/或结构。接口120b通常对应于接口120a,但还可用于传递CSSD描述信息。在一个示例中,接口120b符合具有用于传递CSSD描述信息的附加功能的7ATA接口。在又一个示例中,接口120b符合具有用于传递CSSD描述信息的附加功能的SCSI接口。接口120b可以符合适用于耦合CSSD驱动程序和CSSD设备的、足以传递CSSD描述信息的任何格式和/或结构。图2是示出示例合成固态驱动器("CSSD")200的结构的框图。CSSD200通常包括不同性能类别的固态存储器,如存储器230和240到290,每一性能类别通常提供不同的读和/或写访问速度。对于CSSD设备,主要性能考虑通常是访问速度或存储器速度。在一个示例中,该存储器包括闪存设备,如包括与非("NAND")型设备等的非易失性闪存设备。在其它示例中,可以使用其它类型的闪存,如或非("NOR")型设备等。在又一些示例中,可以使用任何类型的固态存储器或设备类型的任何组合。在又一些示例中,可以将磁性介质、光学介质、磁带介质、或任何类型的存储器设备或存储设备等用于CSSD的一个或多个性能类别的存储器,从而产生固态存储器和磁性介质的组合。B卩,CSSD200的存储器2卯可以是HDD。在又一示例中,CSSD可以是诸如结合图4所描述的计算环境等计算环境的一部分。例如,这种CSSD可以与计算机系统的主板集成在一起。另选地,CSSD可与这种环境不同。例如,这种CSSD可以是便携式设备、插件设备、无线设备、网络设备等。此外,术语"CSSD"可以指任何类型的合成存储器设备或合成存储设备等,包括非固态设备。在CSSD设备中,存储器设备通常根据级别来分类。例如,1级存储器230通常是最快或速度最髙的存储器(包括一个或多个1级设备)。2级存储器240通常比1级存储器230慢,但比该CSSD设备中可包括的其它级别的存储器快。n级存储器2卯表示该CSSD设备中所包括的最慢类别的存储器。一般而言,CSSD设备可包括两种或更多种性能类别的存储器,每一类别或级别的存储器包括一个或多个物理存储器设备。在一个示例中,CSSD包括两个级别或性能类别的存储器。存储器230和240-2卯通常经由CSSD总线204耦合,CSSD总线204还将该存储器耦合到CSSD接口202和CSSD管理器210。CSSD接口202通常用来将CSSD200耦合到计算环境,如结合图4所描述的计算环境400。在一个示例中,CSSD接口202对应于图1的接口120b,并可用于将CSSD200耦合到通常包括CSSD驱动程序的操作系统。要存储在CSSD200中和/或要从CSSD200中检索的数据通常通过CSSD接口202和通过总线204传递。CSSD管理器210通常包括处理器等和足以管理CSSD200的操作的处理器可执行指令。一般而言,这包括将具有最髙访问率的数据等置于1级存储器230中,而将较少访问的数据置于相应较低级别的存储器240-2卯中。这种基于访问率对数据的重新分配通常以对使用CSSD200的系统透明的方式执行。此外,CSSD200可用于将CSSD描述符220通过CSSD接口202传递到操作系统等。CSSD描述符220提供CSSD的描述信息,其通常包括标识CSSD存储器的性能类别、每一性能类别的存储器的量等的信息。CSSD描述符220的格式和/或其中的描述信息可以随时间随CSSD存储器特征的改变而改变,CSSD存储器特征诸如有可用/已用存储空间的百分比、存储器的性能特征等。示例CSSD描述符220在表1中示出。该示例可以是为常规ATA接口构造的。可以为诸如SCSI等其它接口构造类似的描述符。<table>tableseeoriginaldocumentpage9</column></row><table>表1或其它类型的存储器设备或存储设备等。可以另外或另选地提供其它格式和/或信息。表l中的示例枚举一个级别的存储器(SSDl级存储器)的以兆字节("MB")为单位的大小信息。可以在未示出的附加字段中类似地描述附加级别的存储器。大小被示为以最低有效字("LSW")和最髙有效字("MSW")格式来描述。CSSD描述符220通常作为存储在CSSD200中的存储器或某一其它形式的计算机可读介质中的数据结构来维护。可在示例CSSD描述符200中使用的其它示例字段在表2中示出。<table>tableseeoriginaldocumentpage10</column></row><table>表2表2中所示的每一示例字段是由16位LSB部分和16位MSB部分构成的32位值。各示例字段以千字节("KB")为单位来指示大小。另选地,可以使用其它格式和/或数据大小。示例最优写大小字段包括指示向CSSD提供最优写性能的写数据传输的KB数的值。示例最优读大小字段包括指示向CSSD提供最优读性能的读数据传输的KB数的值。示例最优分配大小字段包括指示提供CSSD读和写性能的最优对齐的KB数的值。描述符220通常经由接口202提供给操作系统等,以使CSSD200可以被该操作系统标识为SSD和/或CSSD而非常规HDD。此外,描述符220向操作系统提供足够的描述信息,以便除其它CSSD特征之外,确定CSSD200的每--存储器性能级别的可用存储器的量。这种描述信息可由操作系统10用来优化与CSSD的交互和/或优化在该CSSD上执行的操作。例如并且参考表1,如果字0的位0被设置为1,则该设备是SSD设备而非HDD或其它设备。在一个示例中,如果设备是SSD设备,则操作系统可以对该设备禁用HDD碎片整理,并启用SSD碎片整理(如果可用的话)。操作系统可以类似地对该设备禁用其它非SSD功能,而启用其它面向SSD的功能。如果字1的位4被设置为1,则该设备是合成SSD设备。在一个示例中,如果该设备是CSSD,则操作系统可以启用被设计成基于包括多个性能类别的存储器的CSSD设备的性能特征来优化写操作的写优化存储("WOS")功能。在这一示例中,操作系统可以通过读取表1所示的描述符的字1和字2来确定1级存储器的大小。该信息可被用来优化WOS功能。在具有两个性能级别的CSSD设备中,1级大小和总大小之间的差通常指示2级存储器的大小,从而消除了在描述符中显式地报告它的需求。此外,操作系统可以利用描述符的页和块大小数据来进一步优化SSD/CSSD操作,如写和读操作等。图3是示出用于标识SSD/CSSD设备并针对这些设备优化操作系统操作的示例方法300的框图。方法300通常由操作系统结合SSD/CSSD设备来执行。该操作系统通常包括文件系统和SSD和/或CSSD驱动程序;以下被认为是该操作系统所执行的操作可以由文件系统、SSD/CSSD驱动程序、和/或该操作系统的其它元素来执行。框310指示操作系统从SSD/CSSD设备接收描述符,该描述符包括描述该设备的描述性信息,如以上结合表1并结合关于图2所描述的描述符220所描述的信息。一旦接收到描述符,则方法300通常继续至框320。框320指示操作系统读取描述符并将对应于该描述符的设备标识为SSD设备。在一个示例中,通过在诸如在表1中所描述的描述符中寻找字0的位0被设置为1的描述符来将该设备标识为SSD设备。一旦该设备被标识为SSD设备,则方法300通常继续至框330。框330指示操作系统读取描述符并将对应于该描述符的SSD设备标识为CSSD设备。在一个示例中,通过诸如在表1中所描述的描述符中寻找字0的位4被设置为1的描述符来将该SSD设备标识为CSSD设备。一且该SSD设备被标识为CSSD设备,则方法300通常继续至框340。框340指示操作系统基于CSSD设备特征来优化与该.CSSD设备的交互和/或其上的操作。在一个示例中,对CSSD设备禁用非SSD/CSSD功能,如HDD碎片整理。在另一个示例中,对CSSD设备启用SSD/CSSD功能,如WOS功能。图4是示出在其中可以实现此处所描述的技术的示例计算环境400的框图。合适的计算环境可用多种通用或专用系统来实现。公知系统的示例可包括但不限于蜂窝电话、个人数字助理("PDA")、个人计算机("PC")、手持式或膝上型设备、基于微处理器的系统、多处理器系统、服务器、工作站、消费电子设备、机顶盒等。计算环境400通常包括耦合到诸如外围设备402、403、404等各种组件的计算设备401形式的通用计算系统。系统400可以经由一个或多个输入/输出("I/O")接口412耦合到各种其它组件,如输入设备403,包括语音识别、触摸垫、按钮、键盘、和/或诸如鼠标或跟踪球等定点设备。计算设各401的组件可包括-个或多个处理器(包括中央处理单元("CPU")、图形处理单元("GPU")、微处理器("jiP")等)407、系统存储器409、以及通常耦合各组件的系统总线408。处理器407通常处理或执行各种计算机可执行指令以控制计算设备401的操作,并且经由诸如网络连接414等各种通信连接与其它电子和/或计算设备、系统或环境(未示出)进行通信。系统总线408表示任何数量的若干类型的总线结构,包括存储器总线或存储器控制器、外围总线、串行总线、加速图形端口、使用各种总线体系结构中的任一种的处理器或局部总线等等。系统存储器409可包括诸如随机存取存储器("RAM")等易失性存储器形式的和/或诸如只读存储器("ROM")或闪存("FLASH")等非易失性存储器形式的计算机可读介质。基本输入/输出系统("BIOS")可以存储在非易失性等中。系统存储器409通常存储数据、计算机可执行指令和/或包括计算机可执行指令的程序模块,包括可由一个或多个处理器407立即访问或目前正在其上操作的计算机可执行指令。大容量存储设备404和410可经由耦合到系统总线或存储总线等来耦合到计算设备401或被合并到计算设备401中。这些大容量存储设备404和410可包括非易失性RAM;对可移动、非易失性磁盘(例如"软盘")405进行读和/或写的磁盘驱动器;和/或对诸如CDROM、DVDROM406等非易失性光盘进行读和/或写的光盘驱动器。或者,诸如硬盘410等大容量存储设备可包括不可移动存储介质。其它大容量存储设备可包括存储卡、记忆棒、磁带存储设备等。任何数量的计算机程序、文件、数据结构等可被存储在大容量存储410、其它存储设备404、405、406以及系统存储器409(通常受可用空间限制)上,作为示例而非限制,包括操作系统、应用程序、数据文件、目录结构、计算机可执行指令等。诸如显示设备402等输出组件或设备可通常经由诸如显示适配器411等接口耦合到计算设备401。输出设备402可以是液晶显示器("LCD")。其它示例输出设备可包括打印机、音频输出、语音输出、阴极射线管("CRT")显示器、触觉设各或其它传感输出机制等等。输出设备可以使计算设备401能够与人类操作员或其它机器、系统、计算环境等进行交互。用/'可以经由诸如触摸垫、按钮、键盘、鼠标、操纵杆、游戏手柄、数据端口等任何数量的不同I/O设备403来与计算环境400进行接口。这些和其它I/O设备可以经由耦合到系统总线408的I/O接口412来耦合到处理器407,和/或可以经山诸如串行端口、游戏端口、通用串行总线("USB")、火线、红外("IR")端口等其它接口和总线结构来耦合。计算设备401可以经由通过一个或多个蜂窝网络、无线网络、局域网("LAN")、广域网("WAN")、存储区域网络("SAN")、因特网、无线电链路、光学链路等到一个或多个远程计算设备的通信连接来在网络化环境中操作。计算设备401可经由网络适配器413等,或作为替换,经由调制解调器、数字用户线("DSL")链路、综合业务数字网("ISDN")链路、因特网链路、无线链路等来耦合到网络。诸如网络连接等通信连接414通常提供到诸如网络等通信介质的耦合。通信介质通常使用诸如载波或其它传输机制等已调制数据信号来提供13计算机可读以及计算机可执行指令、数据结构、文件、程序模块和其它数据。术语"已调制数据信号"指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质可包括诸如有线网络或直接连线连接等有线介质,以及诸如声学、射频、红外线或其它无线通信机制等无线介质。诸如电池或电源等电源4卯通常向计算环境400的部分和全部提供电力。在计算环境400是移动设备或便携式设备等的情况下,电源4卯可以是电池。另选地,在计算环境400是台式计算机或服务器等的情况下,电源4卯可以是被设计成诸如经由墙上插座连接到交流("AC")源的电源。某些移动设备可能不包括结合图4所描述的组合中的多个。例如,电子证件可包括线圈连同简单处理单元407等,该线圈被配置成在其靠近读卡器设备等时用作电源4卯。这种线圈还可被配置成用作耦合到处理单元407等的天线,该线圈天线能够在电子证件和读卡器设备之间提供某种形式的通信。这种通信可以不涉及连网,但可以替换地是经由遥测、点对点、RF、IR、音频、或其它手段的通用或专用通信。电子卡可以不包括显示器402、I/O设备403、或结合图4描述的其它组件中的多个。可能不包括结合图4所描述的组件中的多个的其它移动设各包括电子腕带、电子标签、可移杭设备等。本领域的技术人员将认识到用于提供计算机可读以及计算机可执行指令和数据的存储设备可分布在网络上。例如,远程计算机或存储设备可以存储软件应用程序和数据形式的计算机可读以及计算机可执行指令。本地计算机可以经由该网络访问远程计算机或存储设备,并下载软件应用程序或数据的部分或全部并且可执行任何计算机可执行指令。另选地,本地计算机可按需下载软件或数据的片断,或者通过在本地机器执行一些指令并且在远程计算机和/或设备执行一些指令来分布式地处理该软件。本领域的技术人员还将认识到,通过利用常规技术,软件的计算机可执行指令的全部或部分可由诸如数字信号处理器("DSP")、可编程逻辑阵列("PLA")、分立电路等专用电子电路来执行。术语"电子装置"可包括含有任何软件、固件等的计算设备或消费电子设各,或不含有软件、固件等的电子设备或电路。术语"固件"通常指的是在诸如ROM等电子设备中维护的可执行指令、代码、数据、应用程序、程序等。术语"软件"通常指的是在任何形式的计算机可读介质之中或之上维护的可执行指令、代码、数据、应用程序、程序等。术语"计算机可读介质"通常指的是系统存储器、存储设备、及其相关联的介质等。鉴于可应用所公开的本发明的原理和上述示例的许多可能的实施例,应当认识到,此处所描述的各示例仅旨在是说明性的,并且不应被认为是限制本发明的范围。因此,此处所描述的本发明构想了可落入所附权利要求书和其任何等效方案的范围内的所有这样的实施例。权利要求1.一种可用于访问合成固态驱动器(“CSSD”)的计算系统,所述计算系统包括处理器;包括可由所述处理器执行的指令的存储器,所述指令具体化CSSD驱动程序;以及耦合到所述CSSD的CSSD接口,所述CSSD包括多个性能类别的存储器,其中所述CSSD经由所述CSSD接口向所述计算系统提供足以使所述计算系统能够将所述CSSD与其它类型的大容量存储设备进行区分的描述信息。2.如权利要求1所述的计算系统,其特征在于,所述计算系统对于所述CSSD禁用硬盘驱动器("HDD")专用功能。3.如权利要求2所述的计算系统,其特征在于,所述HDD功能包括HDD碎片整理功能。4.如权利要求1所述的计算系统,其特征在于,所述CSSD接口是基于高级技术附件("ATA")接口的。5.如权利要求1所述的计算系统,其特征在于,所述CSSD接口是基于小型计算机系统接口("SCSI")接口的。6.如权利要求1所述的计算系统,其特征在于,所述CSSD接口是基于输入/输出控制("IOCTL")接口的。7.如权利要求1所述的计算系统,其特征在于,所述CSSD是引导设各。8.如权利要求1所述的计算系统,其特征在于,响应于所述描述信息,所述计算系统对于所述CSSD启用写优化存储功能。9.如权利要求1所述的计算系统,其特征在于,响应于所述描述信息,所述计算系统对于所述CSSD启用固态驱动器碎片整理功能。10.—种针对利用合成固态驱动器("CSSD")的操作来优化操作系统的方法,所述方法包括从所述CSSD接收描述符;基于所述描述符将所述CSSD标识为固态驱动器("SSD");基于所述描述符进一步将所述CSSD标识为合成SSD;对于所述CSSD启用所述CSSD所支持的操作系统功能;以及对于所述CSSD禁用适用于其它类型的大容量存储设备而非所述CSSD的操作系统功能。11.如权利要求IO所述的方法,其特征在于,所述描述符包括描述所述CSSD中所包括的多个性能级别的存储器的信息。12.如权利要求10所述的方法,其特征在于,所述接收经由将所述CSSD耦合到所述操作系统在其上操作的计算系统的CSSD接口发生,并且其中所述CSSD接口是基于髙级技术附件("ATA")接口的。13.如权利要求10所述的方法,其特征在于,所述接收经由将所述CSSD耦合到所述操作系统在其上操作的计算系统的CSSD接口发生,并且其中所述CSSD接口是基于小型计算机系统接口("SCSI")接口的。14.如权利要求IO所述的方法,其特征在于,所述接收经由将所述CSSD耦合到所述操作系统在其上操作的计算系统的CSSD接口发生,并且其中所述CSSD接口是基亍输入/输出控制("IOCTL")接口的。15.如权利要求IO所述的方法,其特征在于,所述CSSD是引导设备。16.如权利要求IO所述的方法,其特征在于,所述禁用包括对于所述CSSD禁用硬盘驱动器碎片整理功能。17.如权利要求IO所述的方法,其特征在于,所述启用包括对于所述CSSD启用写优化存储功能。18.如权利要求10所述的方法,其特征在于,所述操作系统包括CSSD驱动程序。19.一种包括计算机可执行指令的计算机可读介质,所述计算机可执行指令具体化一种针对利用合成存储设备("CSD")的操作来优化操作系统的方法,所述方法包括从所述CSD接收描述符;基于所述描述符将所述CSD标识为存储设备("SD");基于所述描述符进一步将所述CSD标识为合成SD;对于所述CSD启用所述CSD所支持的操作系统功能;以及对于所述CSD禁用适用于其它类型的大容量存储设备而非所述CSD的操作系统功能。20.如权利要求19所述的计算机可读介质,其特征在于,所述描述符包括描述所述CSD中所包括的多个性能级别的存储器的信息。全文摘要供操作系统基于对应的描述符来标识SSD和CSSD设备并用于相对于该SSD/CSSD设备来优化操作系统功能的技术。优化包括禁用诸如HDD碎片整理等非SSD/CSSD功能,以及启用诸如写优化存储功能等SSD/CSSD专用功能。文档编号G06F13/00GK101663655SQ200880012531公开日2010年3月3日申请日期2008年4月1日优先权日2007年4月19日发明者F·J·舒,N·S·奥布申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1