CN101663655A - 合成固态驱动器标识和优化技术 - Google Patents

合成固态驱动器标识和优化技术 Download PDF

Info

Publication number
CN101663655A
CN101663655A CN200880012531A CN200880012531A CN101663655A CN 101663655 A CN101663655 A CN 101663655A CN 200880012531 A CN200880012531 A CN 200880012531A CN 200880012531 A CN200880012531 A CN 200880012531A CN 101663655 A CN101663655 A CN 101663655A
Authority
CN
China
Prior art keywords
cssd
interface
computing system
descriptor
ssd
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
CN200880012531A
Other languages
English (en)
Other versions
CN101663655B (zh
Inventor
F·J·舒
N·S·奥布
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN101663655A publication Critical patent/CN101663655A/zh
Application granted granted Critical
Publication of CN101663655B publication Critical patent/CN101663655B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

供操作系统基于对应的描述符来标识SSD和CSSD设备并用于相对于该SSD/CSSD设备来优化操作系统功能的技术。优化包括禁用诸如HDD碎片整理等非SSD/CSSD功能,以及启用诸如写优化存储功能等SSD/CSSD专用功能。

Description

合成固态驱动器标识和优化技术
背景
固态驱动器(“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与SSD 130a进行接口以在SSD 130a上存储数据并从中访问数据。接口120a的示例包括高级技术附件(“ATA”)和小型计算机系统接口(“SCSI”)接口。
与诸如常规HDD、软盘、紧致盘等磁性或光学存储介质不同,示例SSD130a是使用固态存储器设备等作为存储介质来制造的固态存储设备。这些固态存储器设备可以是闪存或任何其它类型或组合的固态存储器等。这些SSD设备可以是引导设备,并可被认为是主存储设备或大容量存储设备,如结合图4所描述的那些设备。此处对SDD设备的功能或动作的描述一般指的是该SSD设备和/或对应的SSD驱动程序。需要特别注意的是,SSD130a向操作系统110a将自己标识为常规HDD,并且操作系统110a识别SSD130a并将其作为常规HDD来进行接口。即便这样,SSD 130a也可以是结合图2所描述的合成SSD。
示例新操作系统110b包括经由示例新接口113b耦合到示例新合成SSD(“CSSD”)驱动程序114b的示例新文件系统112b,CSSD驱动程序114b又经由新示例接口120b耦合到CSSD 130b。一般而言,元素110b、112b、113b、114b、120b和130b的功能对应于其类似地标号的1xxa常规对应物的功能,但对本发明添加了新功能。
文件系统112b利用新接口113b来与CSSD驱动程序114b通信,以经由新接口120b从CSSD 130b标识并检索CSSD描述信息。这种CSSD描述信息通常使操作系统110b尤其能够识别CSSD 130b并将其作为CSSD设备而非常规HDD来进行接口。接口113b通常在功能上与接口113a相对应,但还可用于至少传递CSSD描述信息。在一个示例中,接口113b符合具有用于传递CSSD描述信息的附加功能的IOCTL接口。接口113b可以符合适用于耦合文件系统和CSSD驱动程序的、足以传递CSSD描述信息的任何格式和/或结构。
接口120b通常对应于接口120a,但还可用于传递CSSD描述信息。在一个示例中,接口120b符合具有用于传递CSSD描述信息的附加功能的ATA接口。在又一个示例中,接口120b符合具有用于传递CSSD描述信息的附加功能的SCSI接口。接口120b可以符合适用于耦合CSSD驱动程序和CSSD设备的、足以传递CSSD描述信息的任何格式和/或结构。
图2是示出示例合成固态驱动器(“CSSD”)200的结构的框图。CSSD200通常包括不同性能类别的固态存储器,如存储器230和240到290,每一性能类别通常提供不同的读和/或写访问速度。对于CSSD设备,主要性能考虑通常是访问速度或存储器速度。在一个示例中,该存储器包括闪存设备,如包括与非(“NAND”)型设备等的非易失性闪存设备。在其它示例中,可以使用其它类型的闪存,如或非(“NOR”)型设备等。在又一些示例中,可以使用任何类型的固态存储器或设备类型的任何组合。在又一些示例中,可以将磁性介质、光学介质、磁带介质、或任何类型的存储器设备或存储设备等用于CSSD的一个或多个性能类别的存储器,从而产生固态存储器和磁性介质的组合。即,CSSD 200的存储器290可以是HDD。在又一示例中,CSSD可以是诸如结合图4所描述的计算环境等计算环境的一部分。例如,这种CSSD可以与计算机系统的主板集成在一起。另选地,CSSD可与这种环境不同。例如,这种CSSD可以是便携式设备、插件设备、无线设备、网络设备等。此外,术语“CSSD”可以指任何类型的合成存储器设备或合成存储设备等,包括非固态设备。
在CSSD设备中,存储器设备通常根据级别来分类。例如,1级存储器230通常是最快或速度最高的存储器(包括一个或多个1级设备)。2级存储器240通常比1级存储器230慢,但比该CSSD设备中可包括的其它级别的存储器快。n级存储器290表示该CSSD设备中所包括的最慢类别的存储器。一般而言,CSSD设备可包括两种或更多种性能类别的存储器,每一类别或级别的存储器包括一个或多个物理存储器设备。在一个示例中,CSSD包括两个级别或性能类别的存储器。
存储器230和240-290通常经由CSSD总线204耦合,CSSD总线204还将该存储器耦合到CSSD接口202和CSSD管理器210。CSSD接口202通常用来将CSSD 200耦合到计算环境,如结合图4所描述的计算环境400。在一个示例中,CSSD接口202对应于图1的接口120b,并可用于将CSSD200耦合到通常包括CSSD驱动程序的操作系统。要存储在CSSD 200中和/或要从CSSD 200中检索的数据通常通过CSSD接口202和通过总线204传递。
CSSD管理器210通常包括处理器等和足以管理CSSD 200的操作的处理器可执行指令。一般而言,这包括将具有最高访问率的数据等置于1级存储器230中,而将较少访问的数据置于相应较低级别的存储器240-290中。这种基于访问率对数据的重新分配通常以对使用CSSD 200的系统透明的方式执行。此外,CSSD 200可用于将CSSD描述符220通过CSSD接口202传递到操作系统等。CSSD描述符220提供CSSD的描述信息,其通常包括标识CSSD存储器的性能类别、每一性能类别的存储器的量等的信息。CSSD描述符220的格式和/或其中的描述信息可以随时间随CSSD存储器特征的改变而改变,CSSD存储器特征诸如有可用/已用存储空间的百分比、存储器的性能特征等。
示例CSSD描述符220在表1中示出。该示例可以是为常规ATA接口构造的。可以为诸如SCSI等其它接口构造类似的描述符。
  字   位   描述
  0   5-15   保留
  4   1=合成SSD
  1-3   保留
  0   1=SSD
  1   0-15   以MB为单位的1级SSD存储器大小(LSW)
  2   0-15   以MB为单位的1级SSD存储器大小(MSW)
  3   0-15   以字节为单位的SSD页大小(LSW)
  4   0-15   以字节为单位的SSD页大小(MSW)
  5   0-15   以字节为单位的SSD块大小(LSW)
  6   0-15   以字节为单位的SSD块大小(MSW)
  7-32   保留
表1
表1中所示的示例CSSD描述符220还可被用来描述非合成SSD设备或其它类型的存储器设备或存储设备等。可以另外或另选地提供其它格式和/或信息。表1中的示例枚举一个级别的存储器(SSD 1级存储器)的以兆字节(“MB”)为单位的大小信息。可以在未示出的附加字段中类似地描述附加级别的存储器。大小被示为以最低有效字(“LSW”)和最高有效字(“MSW”)格式来描述。CSSD描述符220通常作为存储在CSSD 200中的存储器或某一其它形式的计算机可读介质中的数据结构来维护。
可在示例CSSD描述符200中使用的其它示例字段在表2中示出。
 字   位  描述
 XXX   0-15  以KB为单位的最优写大小(MSB)
 XXX+1   0-15  以KB为单位的最优写大小(LSB)
 YYY   0-15  以KB为单位的最优读大小(MSB)
 YYY+1   0-15  以KB为单位的最优读大小(LSB)
 ZZZ   0-15  以KB为单位的最优分配大小(MSB)
 ZZZ+1   0-15  以KB为单位的最优分配大小(LSB)
表2
表2中所示的每一示例字段是由16位LSB部分和16位MSB部分构成的32位值。各示例字段以千字节(“KB”)为单位来指示大小。另选地,可以使用其它格式和/或数据大小。示例最优写大小字段包括指示向CSSD提供最优写性能的写数据传输的KB数的值。示例最优读大小字段包括指示向CSSD提供最优读性能的读数据传输的KB数的值。示例最优分配大小字段包括指示提供CSSD读和写性能的最优对齐的KB数的值。
描述符220通常经由接口202提供给操作系统等,以使CSSD 200可以被该操作系统标识为SSD和/或CSSD而非常规HDD。此外,描述符220向操作系统提供足够的描述信息,以便除其它CSSD特征之外,确定CSSD200的每一存储器性能级别的可用存储器的量。这种描述信息可由操作系统用来优化与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”)、微处理器(“μP”)等)407、系统存储器409、以及通常耦合各组件的系统总线408。处理器407通常处理或执行各种计算机可执行指令以控制计算设备401的操作,并且经由诸如网络连接414等各种通信连接与其它电子和/或计算设备、系统或环境(未示出)进行通信。系统总线408表示任何数量的若干类型的总线结构,包括存储器总线或存储器控制器、外围总线、串行总线、加速图形端口、使用各种总线体系结构中的任一种的处理器或局部总线等等。
系统存储器409可包括诸如随机存取存储器(“RAM”)等易失性存储器形式的和/或诸如只读存储器(“ROM”)或闪存(“FLASH”)等非易失性存储器形式的计算机可读介质。基本输入/输出系统(“BIOS”)可以存储在非易失性等中。系统存储器409通常存储数据、计算机可执行指令和/或包括计算机可执行指令的程序模块,包括可由一个或多个处理器407立即访问或目前正在其上操作的计算机可执行指令。
大容量存储设备404和410可经由耦合到系统总线或存储总线等来耦合到计算设备401或被合并到计算设备401中。这些大容量存储设备404和410可包括非易失性RAM;对可移动、非易失性磁盘(例如“软盘”)405进行读和/或写的磁盘驱动器;和/或对诸如CD ROM、DVD ROM 406等非易失性光盘进行读和/或写的光盘驱动器。或者,诸如硬盘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通常提供到诸如网络等通信介质的耦合。通信介质通常使用诸如载波或其它传输机制等已调制数据信号来提供计算机可读以及计算机可执行指令、数据结构、文件、程序模块和其它数据。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质可包括诸如有线网络或直接连线连接等有线介质,以及诸如声学、射频、红外线或其它无线通信机制等无线介质。
诸如电池或电源等电源490通常向计算环境400的部分和全部提供电力。在计算环境400是移动设备或便携式设备等的情况下,电源490可以是电池。另选地,在计算环境400是台式计算机或服务器等的情况下,电源490可以是被设计成诸如经由墙上插座连接到交流(“AC”)源的电源。
某些移动设备可能不包括结合图4所描述的组合中的多个。例如,电子证件可包括线圈连同简单处理单元407等,该线圈被配置成在其靠近读卡器设备等时用作电源490。这种线圈还可被配置成用作耦合到处理单元407等的天线,该线圈天线能够在电子证件和读卡器设备之间提供某种形式的通信。这种通信可以不涉及连网,但可以替换地是经由遥测、点对点、RF、IR、音频、或其它手段的通用或专用通信。电子卡可以不包括显示器402、I/O设备403、或结合图4描述的其它组件中的多个。可能不包括结合图4所描述的组件中的多个的其它移动设备包括电子腕带、电子标签、可移植设备等。
本领域的技术人员将认识到用于提供计算机可读以及计算机可执行指令和数据的存储设备可分布在网络上。例如,远程计算机或存储设备可以存储软件应用程序和数据形式的计算机可读以及计算机可执行指令。本地计算机可以经由该网络访问远程计算机或存储设备,并下载软件应用程序或数据的部分或全部并且可执行任何计算机可执行指令。另选地,本地计算机可按需下载软件或数据的片断,或者通过在本地机器执行一些指令并且在远程计算机和/或设备执行一些指令来分布式地处理该软件。
本领域的技术人员还将认识到,通过利用常规技术,软件的计算机可执行指令的全部或部分可由诸如数字信号处理器(“DSP”)、可编程逻辑阵列(“PLA”)、分立电路等专用电子电路来执行。术语“电子装置”可包括含有任何软件、固件等的计算设备或消费电子设备,或不含有软件、固件等的电子设备或电路。
术语“固件”通常指的是在诸如ROM等电子设备中维护的可执行指令、代码、数据、应用程序、程序等。术语“软件”通常指的是在任何形式的计算机可读介质之中或之上维护的可执行指令、代码、数据、应用程序、程序等。术语“计算机可读介质”通常指的是系统存储器、存储设备、及其相关联的介质等。
鉴于可应用所公开的本发明的原理和上述示例的许多可能的实施例,应当认识到,此处所描述的各示例仅旨在是说明性的,并且不应被认为是限制本发明的范围。因此,此处所描述的本发明构想了可落入所附权利要求书和其任何等效方案的范围内的所有这样的实施例。

Claims (20)

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.如权利要求10所述的方法,其特征在于,所述描述符包括描述所述CSSD中所包括的多个性能级别的存储器的信息。
12.如权利要求10所述的方法,其特征在于,所述接收经由将所述CSSD耦合到所述操作系统在其上操作的计算系统的CSSD接口发生,并且其中所述CSSD接口是基于高级技术附件(“ATA”)接口的。
13.如权利要求10所述的方法,其特征在于,所述接收经由将所述CSSD耦合到所述操作系统在其上操作的计算系统的CSSD接口发生,并且其中所述CSSD接口是基于小型计算机系统接口(“SCSI”)接口的。
14.如权利要求10所述的方法,其特征在于,所述接收经由将所述CSSD耦合到所述操作系统在其上操作的计算系统的CSSD接口发生,并且其中所述CSSD接口是基于输入/输出控制(“IOCTL”)接口的。
15.如权利要求10所述的方法,其特征在于,所述CSSD是引导设备。
16.如权利要求10所述的方法,其特征在于,所述禁用包括对于所述CSSD禁用硬盘驱动器碎片整理功能。
17.如权利要求10所述的方法,其特征在于,所述启用包括对于所述CSSD启用写优化存储功能。
18.如权利要求10所述的方法,其特征在于,所述操作系统包括CSSD驱动程序。
19.一种包括计算机可执行指令的计算机可读介质,所述计算机可执行指令具体化一种针对利用合成存储设备(“CSD”)的操作来优化操作系统的方法,所述方法包括:
从所述CSD接收描述符;
基于所述描述符将所述CSD标识为存储设备(“SD”);
基于所述描述符进一步将所述CSD标识为合成SD;
对于所述CSD启用所述CSD所支持的操作系统功能;以及
对于所述CSD禁用适用于其它类型的大容量存储设备而非所述CSD的操作系统功能。
20.如权利要求19所述的计算机可读介质,其特征在于,所述描述符包括描述所述CSD中所包括的多个性能级别的存储器的信息。
CN2008800125315A 2007-04-19 2008-04-01 用于合成固态驱动器的访问、标识和优化的方法及系统 Active CN101663655B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US91272607P 2007-04-19 2007-04-19
US60/912,726 2007-04-19
US12/035,425 2008-02-21
US12/035,425 US8429677B2 (en) 2007-04-19 2008-02-21 Composite solid state drive identification and optimization technologies
PCT/US2008/059059 WO2008130800A1 (en) 2007-04-19 2008-04-01 Composite solid state drive identification and optimization technologies

Publications (2)

Publication Number Publication Date
CN101663655A true CN101663655A (zh) 2010-03-03
CN101663655B CN101663655B (zh) 2012-02-29

Family

ID=39873527

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008800125315A Active CN101663655B (zh) 2007-04-19 2008-04-01 用于合成固态驱动器的访问、标识和优化的方法及系统

Country Status (5)

Country Link
US (4) US8429677B2 (zh)
EP (1) EP2135168A4 (zh)
CN (1) CN101663655B (zh)
TW (1) TW200846911A (zh)
WO (1) WO2008130800A1 (zh)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8402201B2 (en) 2006-12-06 2013-03-19 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery in solid-state storage
US8719501B2 (en) 2009-09-08 2014-05-06 Fusion-Io Apparatus, system, and method for caching data on a solid-state storage device
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US8307131B2 (en) * 2007-11-12 2012-11-06 Gemalto Sa System and method for drive resizing and partition size exchange between a flash memory controller and a smart card
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
TWI499906B (zh) 2008-12-08 2015-09-11 Apacer Technology Inc Memory reorganization method of storage device, computer storage medium, computer program product, reorganization method
US8812770B2 (en) 2009-07-13 2014-08-19 Microsoft Corporation Health reporting from non-volatile block storage device to processing device
US8601222B2 (en) 2010-05-13 2013-12-03 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
CN102597910B (zh) 2009-09-09 2015-03-25 弗森-艾奥公司 存储设备中用于功率减小管理的装置、系统及方法
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
WO2011031903A2 (en) 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for allocating storage
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
US20110119462A1 (en) * 2009-11-19 2011-05-19 Ocz Technology Group, Inc. Method for restoring and maintaining solid-state drive performance
TWI608418B (zh) * 2010-06-07 2017-12-11 Felicity Taiwan Corp Storage device with multiple storage units and its control method
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
WO2012016089A2 (en) 2010-07-28 2012-02-02 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
WO2012082792A2 (en) 2010-12-13 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for auto-commit memory
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US20120239860A1 (en) 2010-12-17 2012-09-20 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
WO2012100087A2 (en) 2011-01-19 2012-07-26 Fusion-Io, Inc. Apparatus, system, and method for managing out-of-service conditions
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
CN103970675A (zh) * 2013-01-29 2014-08-06 Lsi公司 用于使引导操作系统加速的快速引导列表
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US10289421B2 (en) * 2017-02-17 2019-05-14 Dell Products, L.P. Booting of IHS from SSD using PCIe
US11003381B2 (en) 2017-03-07 2021-05-11 Samsung Electronics Co., Ltd. Non-volatile memory storage device capable of self-reporting performance capabilities
US11163482B2 (en) 2019-06-26 2021-11-02 International Business Machines Corporation Dynamic performance-class adjustment for storage drives
US11049570B2 (en) 2019-06-26 2021-06-29 International Business Machines Corporation Dynamic writes-per-day adjustment for storage drives
US11137915B2 (en) 2019-06-27 2021-10-05 International Business Machines Corporation Dynamic logical storage capacity adjustment for storage drives
CN115951942B (zh) * 2023-03-09 2023-05-12 湖南博匠信息科技有限公司 一种提高龙芯平台系统盘运行效率的方法及系统

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5430859A (en) * 1991-07-26 1995-07-04 Sundisk Corporation Solid state memory system including plural memory chips and a serialized bus
US5519843A (en) * 1993-03-15 1996-05-21 M-Systems Flash memory system providing both BIOS and user storage capability
US6173385B1 (en) * 1993-11-19 2001-01-09 Disk Emulation Systems, Inc. Address generator for solid state disk drive
GB2291991A (en) * 1995-09-27 1996-02-07 Memory Corp Plc Disk drive emulation with a block-erasable memory
US6016402A (en) * 1996-05-21 2000-01-18 Iomega Corporation Method for integrating removable media disk drive into operating system recognized as fixed disk type and modifying operating system to recognize as floppy disk type
US6032224A (en) * 1996-12-03 2000-02-29 Emc Corporation Hierarchical performance system for managing a plurality of storage units with different access speeds
US6467022B1 (en) * 1998-04-16 2002-10-15 International Business Machines Corporation Extending adapter memory with solid state disks in JBOD and RAID environments
US6574588B1 (en) * 1998-09-23 2003-06-03 Microsoft Corporation Solid-state memory device that emulates a known storage device
EP1128267A1 (en) * 2000-02-25 2001-08-29 Hewlett-Packard Company, A Delaware Corporation Disk storage system having redundant solid state data storage devices
US6760805B2 (en) * 2001-09-05 2004-07-06 M-Systems Flash Disk Pioneers Ltd. Flash management system for large page size
US7627464B2 (en) * 2002-04-18 2009-12-01 Standard Microsystems Corporation Bootable solid state floppy disk drive
KR100442091B1 (ko) * 2002-07-09 2004-07-27 삼성전자주식회사 내장된 각 칩들의 성능을 충분히 동작시킬 수 있는 멀티 칩
US7036040B2 (en) * 2002-11-26 2006-04-25 Microsoft Corporation Reliability of diskless network-bootable computers using non-volatile memory cache
TW555100U (en) * 2002-11-27 2003-09-21 Power Quotient Int Co Ltd High speed of data transfer of solid state disk on module
US7908416B2 (en) * 2004-06-01 2011-03-15 Ssd Company Limited Data processing unit and bus arbitration unit
US20060149899A1 (en) * 2004-12-30 2006-07-06 Zimmer Vincent J Method and apparatus for ongoing block storage device management
KR100621631B1 (ko) * 2005-01-11 2006-09-13 삼성전자주식회사 반도체 디스크 제어 장치
US7581229B2 (en) * 2005-03-11 2009-08-25 Microsoft Corporation Systems and methods for supporting device access from multiple operating systems
KR100704037B1 (ko) * 2005-04-15 2007-04-04 삼성전자주식회사 이종의 비휘발성 메모리를 가지는 데이터 저장장치와 그의구동 방법
JP2007026094A (ja) * 2005-07-15 2007-02-01 Matsushita Electric Ind Co Ltd 実行装置およびアプリケーションプログラム
US7395401B2 (en) * 2005-09-30 2008-07-01 Sigmatel, Inc. System and methods for accessing solid-state memory devices
US7467276B1 (en) * 2005-10-25 2008-12-16 Network Appliance, Inc. System and method for automatic root volume creation
US7921142B2 (en) * 2007-01-08 2011-04-05 International Business Machines Corporation Method and apparatus for storing and accessing data records on solid state disks
KR101638061B1 (ko) * 2009-10-27 2016-07-08 삼성전자주식회사 플래시 메모리 시스템 및 그것의 플래시 조각 모음 방법

Also Published As

Publication number Publication date
US10564859B2 (en) 2020-02-18
US20130212327A1 (en) 2013-08-15
US9582415B2 (en) 2017-02-28
TW200846911A (en) 2008-12-01
US20170220265A1 (en) 2017-08-03
US20180188979A1 (en) 2018-07-05
US8429677B2 (en) 2013-04-23
EP2135168A1 (en) 2009-12-23
US20080263569A1 (en) 2008-10-23
CN101663655B (zh) 2012-02-29
WO2008130800A1 (en) 2008-10-30
US9940038B2 (en) 2018-04-10
EP2135168A4 (en) 2011-04-06

Similar Documents

Publication Publication Date Title
CN101663655B (zh) 用于合成固态驱动器的访问、标识和优化的方法及系统
CN101663652A (zh) 用于固态驱动器优化的删除时移除技术
CN100504772C (zh) 用于识别在计算机系统上运行的操作系统的方法和设备
US7222212B2 (en) Virtual USB card reader with PCI express interface
KR20200022118A (ko) 데이터 저장 장치 및 그 동작 방법
TWI454912B (zh) 資料處理方法、記憶體控制器與記憶體儲存裝置
CN111913654B (zh) 控制器及具有其的存储器系统
US9483195B2 (en) Response reading method and data transmission system
CN102543184A (zh) 存储器储存装置、其存储器控制器与数据写入方法
KR20030059773A (ko) 정보처리 단말기
US7900073B2 (en) Apparatus for storing management information in a computer system
CN114442911B (zh) 用于固态驱动器的异步输入/输出扫描和聚合的系统和方法
US20090014521A1 (en) Card reader
US11157403B2 (en) Controller and memory system for receiving a format request and configuring a map table
CN101251787A (zh) 用于处理读取和写入请求的方法和系统
KR20220165128A (ko) 메모리 시스템 및 데이터 처리 시스템
KR20220010303A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
US20160034192A1 (en) Data storage device and operation method thereof

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: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150514

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

Effective date of registration: 20150514

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.