CN101657801A - 对固态存储的统一支持 - Google Patents

对固态存储的统一支持 Download PDF

Info

Publication number
CN101657801A
CN101657801A CN200880008143A CN200880008143A CN101657801A CN 101657801 A CN101657801 A CN 101657801A CN 200880008143 A CN200880008143 A CN 200880008143A CN 200880008143 A CN200880008143 A CN 200880008143A CN 101657801 A CN101657801 A CN 101657801A
Authority
CN
China
Prior art keywords
solid
solid state
state storage
dissimilar
storage device
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.)
Pending
Application number
CN200880008143A
Other languages
English (en)
Inventor
B·拉西伯斯基
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 Corp
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 CN101657801A publication Critical patent/CN101657801A/zh
Pending legal-status Critical Current

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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

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)

Abstract

在提供对固态存储的统一支持的方法中,提供固态存储类驱动程序来允许对多个相异固态存储设备的统一操作系统访问。通过固态存储端口驱动程序来抽象多个相异固态存储设备的通用功能。利用固态存储总线驱动程序来展示固态存储设备的接口特征,其中该固态存储设备选自多个相异固态存储设备,使得在使操作系统能够支持按统一的方式访问多个相异固态存储设备的同时,提供该接口特征。

Description

对固态存储的统一支持
背景
历史上,个人计算机(PC)使用硬盘驱动器作为用户数据和系统数据的持久存储的手段。当前的硬盘驱动器包括从中读取数据和对其写入数据的旋转磁性介质。这些硬盘驱动器包含最终会磨损的机械、移动部分;这导致故障和可能的数据丢失。因为这些硬盘驱动器的盘片必须几乎持续旋转,它们还消耗更多功率。
以后,各种非易失性存储器存储设备将开始替代或结合硬盘驱动器被用于持久存储。此类非易失性存储器存储设备的一些示例包括:闪存、通用串行总线(USB)闪存、“安全数字”(“SD”)存储器、“多媒体卡”(MMC)存储器、“极限数字”(″XD″)存储器、“压缩闪速”存储器、“记忆棒”存储器、以及“智能介质”存储器等等。这些非易失性存储器存储设备可被统称为固态存储或固态存储设备。此类固态存储当前能够替代硬盘驱动器来用于持久存储。即便如此,在PC中将固态存储用于持久存储还是受固态存储比硬盘驱动器每千兆字节造价更高的每千兆字节所限。
然而近来,像数码相机、数字音频播放器、以及蜂窝电话等移动设备的增长创造了对固态存储的大量需求而使得价格下跌。固态存储的价格现在低到足以将固态存储认为是对在PC中将硬盘驱动器用于持久存储的经济的替换。
在PC中将固态存储用于持久存储提供了超过硬盘驱动器的若干优点。例如,固态存储没有移动部分、更小、更轻、消耗更少功率、并且更不易受到机械压力(例如抖动或冲击影响)的损坏。
硬盘驱动器将数据存储在可由硬盘驱动器头磁访问的特定盘片上的扇区和簇中。这要求存储器访问到硬盘驱动器的旋转介质的盘片上的特定位置的映射。然而,固态存储提供对每个可寻址存储器单元格的直接访问,并因此不要求到旋转磁介质上的特定位置的此类映射。
固态存储作为持久存储的广泛使用处于其初级阶段。因此,固态存储技术之间存在可观的竞争。例如,现在消费者可以从许多固态存储设备(其中一些在上文中提到)中选择,这些固态存储设备必须以某种方式由操作系统支持。
目前,操作系统如同固态存储是另一种形式的旋转介质那样来将固态存储展示给应用程序。此“旋转介质模型”要求此类固态存储的驱动程序如同它具有和硬盘驱动器相同类型的机械部分(扇区、盘片、柱面、磁头等)和机械限制那样来访问该固态存储。即使在访问固态存储中的数据时不需要旋转介质等待时间,但仍在数据访问请求中内置此类等待时间来补偿移动部分的缓慢,例如磁头寻道时间。此数据访问范例浪费时间并使得操作系统和应用程序的固态存储数据访问更为复杂。另外,将固态存储如同其是旋转介质那样来对待要求为几乎每种竞争的固态存储技术设计专用高级驱动程序(如端口驱动程序)。这对固态存储解决方案的制造商施加了很重的负担。
因此,解决与在PC中将固态存储用作持久存储相关联的上述不利和缺点中的一些的技术将是有利的。
概述
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
在为固态存储提供统一支持的方法中,提供一种固态存储类驱动程序来允许对多个相异固态存储设备的统一操作系统访问。通过固态存储端口驱动程序来抽象多个相异固态存储设备的通用功能。利用固态存储总线驱动程序来展示固态存储设备的接口特征,其中固态存储设备选自多个相异固态存储设备,使得在使操作系统能够支持按统一的方式访问多个相异固态存储设备的同时提供该接口特征。
以上述方式为固态存储提供统一支持在与操作系统相关联的存储栈中创建独特固态存储抽象层。这些独特固态存储抽象层允许对多种相异固态存储技术的数据访问对操作系统和其上运行的应用程序而言看上去相同。提供独特固态存储抽象层消除了对用于访问固态存储的“旋转介质模型”的操作系统依赖性。这通过释放操作系统以及其上运行的应用程序,以便在没有在如同固态存储是另一种形式的旋转介质那样访问固态存储时所强加的等待时间和低效率的情况下访问固态存储,而简化和流线化了访问固态存储的现有方法。
附图描述
合并在本说明书中并形成其一部分的附图示出了用于对固态存储的统一支持的技术的各个实施例,并且与本说明书一起用于解释以下讨论的原理:
图1是根据本发明的用于对固态存储的统一支持的技术的各实施例来使用的示例计算机系统的示图。
图2示出根据本发明的一个实施例的与操作系统相关联的示例存储栈。
图3是根据本发明的一个实施例的在用于向固态存储提供统一支持的方法中执行的操作的示例流程图。
图4是根据本发明的一个实施例的在访问固态存储设备的方法中执行的操作的示例流程图。
除非具体注明,否则本说明书中所引用的附图应被理解为不是按比例绘制的。
详细描述
现将详细参考本发明的用于对固态存储的统一支持的技术的各实施例,其示例在附图中示出。尽管将结合各种实施例来描述用于对固态存储的统一支持的技术,但可以理解,并不旨在将本发明的用于对固态存储的统一支持的技术限于这些实施例。相反,本发明的用于对固态存储的统一支持的技术的各实施例旨在涵盖可被包括在所附权利要求书所定义的各实施例的精神和范围内的替换、修改和等效技术方案。此外,在以下详细描述中,阐明了众多具体细节以提供对本发明的用于对固态存储的统一支持的技术的各实施例的全面理解。然而,用于对固态存储的统一支持的本发明的各实施例可以在无需这些具体细节的情况下实施。在其它情况下,未详细描述公知的方法、过程、组件和电路以免不必要地使本发明各实施例的各方面显得晦涩难懂。
如从以下讨论中清楚的,除非具体地另外指明,否则可以理解,贯穿本详细描述,利用诸如“提供”、“抽象”、“利用”、“展示”、“定义”、“方便”、“接收”、“支持”等术语的讨论涉及计算机系统(如图1的计算机系统100)或类似的电子计算设备的动作和处理。计算机系统或类似的电子计算设备操纵计算机系统的寄存器和存储器内被表示为物理(电子)量的数据并将其变换成计算机系统存储器或寄存器或其它此类信息存储、传输或显示设备内类似地被表示为物理量的其它数据。本发明的用于对固态存储的统一支持的技术的某些实施例也适用于其它计算机系统,如光学和虚拟计算机。
讨论概览
讨论将以对本发明技术的各实施例可以与其一起或在其上操作的示例计算机系统环境的描述开始。讨论将继续至与操作系统相关联的示例存储栈的描述。该示例存储栈包括在存储栈中创建对固态存储独特的抽象层的若干模块。这些独特固态存储抽象层允许对多个相异固态存储设备的数据访问对操作系统和其上运行的应用程序而言看上去相同。以这种方式,提供了对多个相异固态存储设备的统一支持。将提供存储栈的概括描述,以及创建独特固态存储抽象层的模块的更深入的讨论。随后将结合提供对固态存储的统一支持的示例方法的描述,还结合访问固态存储设备的示例方法,来更详细地描述存储栈和独特固态存储抽象层的操作。
示例计算机系统环境
现在参考图1,用于固态存储的统一支持的技术的某些实施例的全部或部分包括驻留在例如计算机系统的计算机可使用介质中的计算机可读和计算机可执行指令。即,图1示出可用于实现以下讨论的本发明的用于固态存储的统一支持的技术的各实施例的一类计算机的一个示例。图1示出根据本发明的用于固态存储的统一支持的技术的各实施例来使用的示例计算机系统100。可以理解,图1的系统100仅是示例,并且本发明的用于固态存储的统一支持的技术的各实施例可以在多个不同的计算机系统上或内部操作,包括通用网络化计算机系统、嵌入式计算机系统、路由器、交换机、服务器设备、客户机设备、各种中间设备/节点、独立计算机系统、媒体中心、手持式计算机系统等。
如图1所示,计算机系统100很好地适于具有诸如例如,软盘、紧致盘等耦合到其上的外围计算机可读介质102。此外,如图1所示,计算机系统100很好地适于具有耦合到其上的固态存储150,该固态存储150可以是固定(不可移动)或可移动的。闪存、通用串行总线(USB)闪存、“安全数字”(“SD”)存储器、“多媒体卡”(MMC)存储器、“极限数字”(″XD″)存储器、“压缩闪速”存储器、“记忆棒”存储器、以及“智能介质”存储器提供了此固态存储150的一些具体示例。
图1的系统100包括用于传递信息的地址/数据总线104,以及耦合到总线104来处理信息和指令的处理器106A。如图1所示,系统100还很好地适用于其中存在多个处理器106A、106B和106C的多处理器环境。相反,系统100也适用于具有诸如,例如处理器106A等单个处理器。处理器106A、106B和106C可以是各种类型的微处理器中的任一种。系统100还包括诸如计算机可使用易失性存储器108等耦合到总线104来为处理器106A、106B和106C储存信息和指令的数据存储功能部件,例如随机存取存储器(RAM)。系统100还包括耦合到总线104来为处理器106A、106B和106C储存静态信息和指令的计算机可使用非易失性存储器110,例如只读存储器(ROM)。系统100中还存在耦合到总线104来储存信息和指令的数据存储单元112(例如,磁或光盘以及盘驱动器或例如闪存等固态存储)。系统100还包括耦合到总线104来向处理器106A或处理器106A、106B和106C传递信息和命令选择的可任选字母数字输入设备114,其包括字母数字和功能键。系统100还包括耦合到总线104来向处理器106A或处理器106A、106B和106C传递用户输入信息和命令选择的可任选光标控制设备116。本实施例的系统100还包括耦合到总线104来显示信息的可任选显示设备118。
仍参考图1,图1的可任选显示设备118可以是液晶设备、阴极射线管、等离子显示设备、或适用于创建用户可识别的图形图像和字母数字字符的其它显示设备。可任选光标控制设备116允许计算机用户动态地用信号表示可见符号(光标)在显示设备118的显示屏上的移动,并指示对显示在显示设备118上的可选择项的用户选择。光标控制设备116的许多实现在本领域中是已知的,包括跟踪球、鼠标、触摸垫、操纵杆、或字母数字输入设备114上能够用信号表示给定方向或位移方式的移动的特殊键。另选地,可以理解,光标可以经由来自字母数字输入设备114的使用特殊键和键序列命令的输入来定向和/或激活。系统100还很好地适用于具有由诸如,例如语音命令等其它手段定向的光标。系统100还包括用于将系统100与外部实体相耦合的I/O设备120。例如,在一个实施例中,I/O设备120是用于启用系统100和诸如但不限于因特网等外部网络之间的有线或无线通信的调制解调器。
仍参考图1,描绘了系统100的各种其它组件。具体地,当存在时,操作系统122、应用程序124、模块126和数据128中的全部或部分被示为通常驻留在例如随机存取存储器(RAM)等计算机可使用易失性存储器108和数据存储单元112中的一个或两者的某种组合中。然而,可以理解,在某些实施例中,操作系统122可被存储在其它位置,如在网络上或在固态存储150上;并且另外,操作系统122、应用程序124、模块126、和/或数据128可以经由例如到因特网的耦合来从远程位置访问。
此外,操作系统122可以包括或关联于内核207(图2),该内核被用于抽象大容量存储设备的特征。
在某些实施例中,将本发明的用于对固态存储的统一支持的技术的全部或部分作为操作系统122、应用程序124、模块126、或其某一组合存储在RAM 108中的存储器位置、存储单元112中的介质、和/或外围计算机可读介质102的介质中。同样,在某些实施例中,本发明的技术中的全部或部分可被存储在与计算机100分开的位置并通过例如到因特网的耦合来访问。
存储栈
现在参考图2,图2示出了根据本发明的技术的一个实施例的存储栈200。存储栈200与例如操作系统122等个人计算机操作系统相关联。应该理解,存储栈200可以与各种各样的各人计算机操作系统相关联。作为示例而非局限,“Microsoft Windows Vista”是存储栈200可以与之相关联的操作系统122的一个示例。
一般而言,存储栈200在诸如大容量存储设备(112、150)等存储设备与在操作系统上运行的应用程序之间提供了一系列抽象层。如图所示,存储栈200与例如在栈200顶部所示的应用程序124等应用程序。应用程序124由用户205用于在诸如,例如计算机系统100等计算机系统上或使用该计算机系统来执行某些功能。应该理解,多个应用程序可以按此处由应用程序124所示的方式与栈200相关联。应用程序124以下的每一层提供大容量存储设备(112、150)的抽象,其中较接近内核207的顶部的抽象是概括的,并且在栈200中每一连续的较低层处变得更具体。以这种方式,每一抽象层用作到其下一层的接口。同样,以此方式,应用程序124只需要例如关于文件系统的信息等概括信息,以便访问大容量存储设备(112、150)上的数据。
在图2所示的示例实施例中,存储栈200由可以由用户205使用或访问的应用程序124,以及与操作系统122关联或是其一部分的内核207组成。内核207由多个抽象层组成。这些抽象层包括文件系统220、卷管理器230、分区管理器240、类驱动程序250、端口驱动程序260、总线驱动程序270、以及硬件抽象层280。
文件系统层
文件系统220抽象层的操作在本领域中是公知的。文件系统220通信耦合至应用程序124和操作系统122。一般而言,对于文件系统220,将要访问的数据作为可以在文件夹中排列的一个或多个文件展示给应用程序124。此处所述的访问数据涵盖读取、写入、以及搜索数据的动作。如图所示,文件系统220抽象层由例如FAT(文件分配表)221、NTFS(新技术文件系统)222、UDFS(通用盘文件系统)223、以及CDFS(紧致盘文件系统)等一个或多个模块,以及用于其它存储介质和/或存储技术的其它可能的模块组成。例如FAT 221、NTFS 222、UDFS 223、以及CDFS 224等文件系统在本领域中是已知的。这些文件系统模块(例如,221、222、223、224等)中的每一个展示了用于不同类型的存储介质的文件系统和/或展示了经由特定存储技术的文件系统。在一个实例中,文件系统220还可以包括用于展示用于固态存储设备的文件系统的模块。在其它实例中,在用于固态存储设备的文件系统与另一个存储设备(例如盘)的文件系统相似或相同的情况下,可以使用由计算机系统为此类型存储设备(例如,UDFS 221)采用的文件系统模块来展示固态存储设备的文件系统。
卷管理器层
卷管理器230抽象层的操作在本领域中也是公知的。卷管理器230通信耦合到文件系统220。一般而言,对于卷管理器230抽象层,将要访问的数据或位置作为在一个或多个诸如,例如盘驱动器或固态存储设备等大容量存储设备上分配的空间形式的“卷”展示给文件系统220。此类卷可以是实际物理卷或可以是虚拟卷,并可以位于各种位置。此外,此类卷可以由一个或多个分区(由分区管理器240所展示)组成。如图所示,卷管理器230抽象层由诸如“FtDisk”(容错盘)231、“LDM”(逻辑盘管理器)、以及VolMan(逻辑卷管理器)233等一个或多个模块组成。这些模块中(例如,231、232、233等)的每一个向文件系统220展示了一个或多个可用于数据访问的卷。在例如计算机系统100等典型的个人计算机系统中,这些卷可以由例如“A:”、“B:”、“C:”等可以自动指定或由用户指定的标志符来表示。这些卷通常俗称为“驱动器”,例如“C驱动器”,即使这些卷可能不驻留在旋转介质上。
分区管理器层
分区管理器240抽象层的操作在本领域中也是公知的。分区管理器240通信耦合到卷管理器230。一般而言,对于分区管理器240,将要访问的数据或位置作为在一个或多个诸如例如盘驱动器或固态存储设备等大容量存储设备上分配的空间形式的分区展示给卷管理器230。通常,每个卷由一个或多个分区组成。在大多数情况下,存在卷和分区之间的一对一映射。然而,在卷由多个分区组成时,分区可以驻留在单个大容量存储设备(112、150)上,或在多个不同的大容量存储设备(112、150)上。
类驱动程序层
一般而言,类驱动程序250抽象层提供关于大容量存储设备(112、150)的抽象固有信息。类驱动程序250通信耦合到分区管理器240。类驱动程序250抽象层的若干模块(盘251、磁带252、以及CD ROM 253)的操作的概念在本领域中是公知的。在现有技术中,例如,盘251模块提供对由旋转介质组成的盘驱动器独特的固有信息的抽象。这允许操作系统122以统一的方式来透明地访问各种各样相异类型的旋转介质。此外,现有技术通常依赖于盘251模块来访问固态存储,即使固态存储与旋转介质在物理上不相似。
本发明的用于对固态存储的统一支持的本技术将另一个模块,即“闪速盘”254,添加到类驱动程序250的模块。“闪速盘”254是固态存储类驱动程序,它允许在没有“旋转介质模块”对通过盘251模块路由的固态存储数据访问所施加的阻碍的情况下对固态存储的数据访问。“闪速盘”254模块抽象关于固态存储设备的固有信息。在一个实施例中,“闪速盘”254模块抽象关于多个相异固态存储设备的固有信息,例如:闪存、通用串行总线(USB)闪存、“安全数字”(“SD”)存储器、“多媒体卡”(MMC)存储器、“极限数字”(″XD″)存储器、“压缩闪速”存储器、“记忆棒”存储器、以及“智能介质”存储器。
此类抽象固有信息的一个示例是关于特定固态存储设备是否可以从例如计算机系统100等个人计算机系统移除的抽象固有信息。此类抽象固有信息的另一个示例是关于特定固态存储设备是否是例如计算机系统100等个人计算机系统的固定的、不可移动的部分的抽象固有信息。此类抽象固有信息的又一个示例是关于特定固态存储设备是否可用于引导例如计算机系统100等个人计算机系统的抽象固有信息。“闪速盘”254向分区管理器240提供或“展示”关于一个或多个固态存储设备的此抽象固有信息。以此方式,“闪速盘”254支持通过例如操作系统122等操作系统对多个相异固态存储设备的统一访问。统一访问允许多个相异固态存储设备对分区管理器240而言“看起来”相同,从而简化对相异设备的访问。
端口驱动程序
一般而言,端口驱动程序260抽象层提供包含涉及多个相异大容量存储设备(112、150)的一个或多个共同特征的抽象信息的一个或多个模块。端口驱动程序260通信耦合到类驱动程序250。端口驱动程序260抽象层的若干模块(“SCSI端口”261、“存储端口”262、以及“USB存储”263)的操作的概念在本领域中是公知的。在现有技术中,例如,“SCSI端口”261抽象多个相异SCSI(小型计算机系统接口)设备的共同特征。通过抽象这些共同特征,SCSI设备的制造商无需为SCSI设备编写完整大小的端口驱动程序,而仅需编写展示SCSI设备的独特特征的较小的小型端口驱动程序,其中该独特特征与在“SCSI端口”261模块中抽象的共同特征不同或是其补充。
本发明的用于对固态存储的统一支持的技术将固态存储端口驱动程序(“闪速存储”264)添加到端口驱动程序260抽象层的模块。“闪速存储”264模块提供涉及多个相异固态存储设备的一个或多个共同特征的抽象信息。例如,尽管固态存储设备可以在机械上相异或具有相异的引脚分配,但它们共享一个或多个共同特征诸如,例如:用于描述存储区域大小的信息、用于呈现要存储的数据分组的机制、或用于取回数据分组的存储部分的机制。“闪速存储”264模块抽象多个相异固态存储设备的共同特征,诸如:闪存、通用串行总线(USB)闪存、“安全数字”(“SD”)存储器、“多媒体卡”(MMC)存储器、“极限数字”(″XD″)存储器、“压缩闪速”存储器、“记忆棒”存储器、以及“智能介质”存储器。
在一个实例中,某些此类共同特征抽象成一通用通信协议中,以便从操作系统统一地访问多个固态存储设备。例如,此类通信协议可以包括用于对所发送的数据打包以便存储在固态存储设备上的标准格式。通过抽象这些共同特征,固态存储设备的制造商无需为固态存储设备编写完整大小的端口驱动程序,而仅需编写展示固态存储设备的独特特征的较小的小型端口驱动程序,其中该独特特征与在“闪速存储”264模块中抽象的共同特征不同或是其补充。
小型端口驱动程序
小型端口驱动程序是包含关于固态存储设备的一个或多个独特特征的信息的可任选端口驱动程序,其中这些独特特征与在固态存储端口驱动程序中抽象的共同特征不同或是其补充。本发明的技术允许可任选地添加例如小型端口程序驱动程序265等小型端口驱动程序,其将特定固态存储设备的一个或多个独特特征展示给例如“闪速存储”264模块等固态存储端口驱动程序。例如,在一个实施例中,USB闪速驱动器的OEM(原始设备制造商)编写并提供与“闪速存储”264接口来将USB闪速驱动器的独特、非共同抽象特征展示给“闪速存储”264模块的小型端口驱动程序。
总线驱动程序
一般而言,总线驱动程序270抽象层提供一个或多个模块,其中的每一个模块展示可以耦合到例如各人计算机100的总线104等总线的组件的一个或多个接口特征。总线驱动程序270通信耦合到端口驱动程序260并将组件的一个或多个接口特征展示给端口驱动程序260。总线驱动程序270抽象层的若干模块(PCI(外围部件接口)271、USB(通用串行总线)272、“1394”(电子和电气工程师协会1394接口)273、以及IDE(集成开发环境)274)的操作的概念在本领域中是公知的。在现有技术中,例如,USB 271模块提供关于经由例如USB 2.0标准总线等通用串行总线耦合和交换数据的具体信息。
本发明的用于对固态存储的统一支持的技术将一个或多个固态总线驱动程序模块(例如,“SD”275和“直接”276)添加到总线驱动程序270的模块。例如,“SD”275模块提供与耦合到“安全数字”固态存储设备并访问其数据相关联的接口信息。同样,总线驱动程序270抽象层中可以包括各种此类固态存储总线驱动程序来提供其它固态存储设备的接口信息,例如:闪存、“安全数字”存储器、通用串行总线(USB)闪存、“多媒体卡”(MMC)存储器、“极限数字”(″XD″)存储器、“压缩闪速”存储器、“记忆棒”存储器、以及“智能介质”存储器。在另一示例中,“直接”276模块提供用于耦合到例如闪存等固态存储设备并访问其数据的接口信息,该固态存储设备可以焊接到或以其它方式直接耦合到例如计算机系统100等计算机的主板。此类固态存储总线驱动器展示关于固态存储设备的具体配置信息。例如,所展示的接口信息可以是正确地将特定固态存储设备与例如计算机系统100的总线104等总线接口所需的特定协议或特定通信信息。
硬件应用层
“HAL”(硬件应用层)280用于将实际硬件与操作系统分离。“HAL”280与总线驱动程序270通信耦合。“HAL”280包含产生硬件和任何使用它的软件(例如应用程序124或操作系统122)之间的接口的代码。“HAL”280对内核207的其它层抽象或隐藏任何剩余的未展示或抽象的硬件相关细节。例如“HAL”280等硬件应用层的操作和构造在本领域中是公知的。
示例操作方法
以下讨论详细阐明本发明的用于对固态存储的统一支持的技术的各实施例的某些示例操作方法的操作。参考图3和图4,流程图300和400各自示出本发明的用于对固态存储的统一支持的技术的各实施例所使用的示例步骤。流程图300和400包括在各实施例中由处理器在计算机可读和计算机可执行指令的控制下实现的各种过程。计算机可读和计算机可执行指令驻留在例如数据存储功能部件中,这些数据存储功能部件诸如图1的计算机可使用易失性存储器108、计算机可使用/可读非易失性存储器110、外围计算机可读介质102和/或数据存储单元112。可驻留在计算机可使用/可读介质上的计算机可读和计算机可执行指令用于控制例如图1的处理器106A和/或处理器106A、106B和106C或结合其来操作。虽然在流程图300和400中公开了各具体步骤,但这些步骤是示例。即,各实施例很好地适于执行各种其它步骤或流程图300和400中所描述的步骤的变型。可以理解,流程图300和400中的步骤可以用与所呈现的不同的次序来执行,并且并非要执行流程图300和400中的全部步骤。
提供对固态存储的统一支持
图3示出提供对固态存储的统一支持的方法的示例实施例的流程图300。参考图1、图2的各元素,在以下描述流程图300的各元素。
在流程图300的步骤310处,在一个实施例中,该方法提供固态存储类驱动程序来允许对多个相异固态存储设备的统一操作系统访问。在一个实施例中,这包括提供例如“闪速盘”254等固态类驱动程序。如上所述,此类固态类驱动程序抽象关于多个相异固态存储设备的固有信息。此类多个相异固态存储设备可以包括诸如以下的固态存储:闪存、通用串行总线(USB)闪存、“安全数字”(“SD”)存储器、“多媒体卡”(MMC)存储器、“极限数字”(″XD″)存储器、“压缩闪速”存储器、“记忆棒”存储器、以及“智能介质”存储器等等。
在一个实施例中,固态存储类驱动程序向存储栈的一部分,例如存储栈200的分区管理器240提供抽象固有信息。提供抽象固有信息隐藏了关于多个相异存储设备的细节,使得在由计算机的操作系统查看时,相异固态存储设备中的每一个以相同样子出现。因此,计算机的操作系统能够如同相异设备本质上是相同的那样以统一的方式访问多个相异固态存储设备中的每一个。
在一个实例中,提供抽象固有信息包括展示特定固态存储设备是否固定耦合到计算机系统。固定固态存储设备的一个示例是焊接到计算机系统的主板上的闪存。在一个实例中,提供抽象固有信息包括展示特定固态存储设备是否可以从计算机系统移除。可移动固态存储设备的一个示例是基于卡的固态存储设备,例如“安全数字”存储卡。在一个实例中,提供抽象固有信息包括展示特定固态存储设备是否可由计算机系统引导。
在流程图300的步骤320处,在一个实施例中,该方法经由固态存储端口驱动程序抽象多个相异固态存储设备的通用功能。在一个实施例中,例如,将一个或多个通用功能抽象到例如图2的“闪速存储”264等固态存储端口驱动程序中。在另一个实施例中,可以扩展和/或增强例如“USB存储“263等现有端口驱动程序以在特定总线(例如,通用串行总线)上提供固态存储能力。这会提供较好的与当前可用的固态存储设备的后向兼容。如上所述,可以使用例如“闪速存储“264或扩展/增强的“USB存储”263等固态存储端口驱动程序来定义例如通信协议等协议,以便访问多个相异固态存储设备中的一个或多个。抽象对多个相异固态存储设备通用的特征和功能消除了提供包含固态存储设备的每个特征的单独的“完整大小”固态存储端口驱动程序的必要。于是这也消除了为多个相异固态存储设备中的每一个具有此类“完整大小”端口驱动程序的必要。
在一个实施例中,步骤320还包括经由固态存储小型端口驱动程序使固态存储设备的独特特征能够被展示。在此实施例中,固态存储设备选自上述多个相异固态存储设备。以此方式,在例如存储栈200等存储栈使例如操作系统122等操作系统能够支持以统一的方式访问多个相异固态存储设备的同时,固态存储的独特特征由该存储栈提供。例如,这可以包括允许OEM提供例如小型总线驱动程序265等小型总线驱动程序,该驱动程序与例如“闪速存储”264等固态存储端口驱动程序接口来展示特定固态存储设备的一个或多个独特、非通用的抽象特征。
在流程图300的步骤330处,在一个实施例中,该方法利用固态存储总线驱动程序来展示固态存储设备的接口特征。在此实施例中,固态存储设备选自上述多个相异固态存储设备。以此方式,在例如存储栈200等存储栈使例如操作系统122等操作系统能够支持以统一的方式访问多个相异固态存储设备的同时,固态存储的接口特征由该存储栈提供。在一个实施例中,例如,将单个固态存储设备的一个或多个通用接口功能抽象到固态存储总线驱动程序中,例如存储栈200的“SD”275或“直接”276。如前所述,可以使用这一固态存储总线驱动程序来展示关于将固态存储设备耦合到例如计算机系统100的总线104等总线的特定配置信息。应该理解,在步骤330处,可以利用多个此类固态存储总线驱动程序,其中这多个固态存储总线驱动程序中的每一个与关联于多个相异固态存储设备中的一个的接口要求相关联。
访问固态存储设备
图4示出访问固态存储设备的示例方法的流程图400。参考图1、图2和图3的各元素,在以下解释流程图400的各元素。
在流程图400的步骤410处,在一个实施例中,该方法方便了操作系统与数据访问请求者之间的统一数据访问请求通信。该统一数据访问请求通信经由关于多个相异固态存储设备的抽象固有信息来方便。这多个相异固态存储设备可以包括诸如以下的固态存储:闪存、通用串行总线(USB)闪存、“安全数字”(“SD”)存储器、“多媒体卡”(MMC)存储器、“极限数字”(″XD″)存储器、“压缩闪速”存储器、“记忆棒”存储器、以及“智能介质”存储器等等。
步骤410类似于流程图300的步骤310。在一个实施例中,例如,统一数据访问请求通信通过提供例如“闪速盘”254等固态存储类驱动程序来方便。这允许例如存储栈200等存储栈在不使用旋转介质模型或抽象的情况下统一地访问多个相异固态存储设备。这消除了因经由旋转介质模型或抽象访问固态存储而引入的许多低效和等待时间。如前所述,抽象固有信息可以包括展示被访问的固态存储设备的固定特性、展示被访问的固态存储设备的可移动特性、和/或展示方便从被访问的固态存储设备中引导计算机系统的信息的固态存储类驱动程序。
在流程图400的步骤420,在一个实施例中,该方法接收操作系统中的数据访问请求。该数据访问请求可以是读请求、写请求、或搜索请求。该数据访问请求可以从数据访问请求者处接收。在一个实例中,该数据访问请求者是例如操作系统122等操作系统的一部分。在一个实例中,该数据访问请求者是例如应用程序124等应用程序。将该数据访问请求被定向到固态存储设备,该固态存储设备可以是固定或可移动固态存储设备。固定设备的一个示例是焊接到或以其它方式耦合到例如计算机系统100等计算机系统的主板的闪存。可移动固态存储设备的一个示例是俗称“拇指型驱动器”或“钥匙链驱动器”的USB闪速驱动器。
在流程图400的步骤430处,在一个实施例中,该方法利用关于多个相异固态存储设备的通用功能的抽象数据来允许数据访问请求从操作系统到多个相异固态相异存储设备中的一固态存储设备的传递。这允许操作系统支持以统一方式对多个相异固态存储设备的访问。因此,尽管设备可以彼此不同,但是使它们在由操作系统或运行于其上的应用程序访问时看起来相似。如前所述,此类通用功能可以经由例如“闪速存储”264等固态存储端口驱动程序来抽象。在一个实例中,例如,该固态存储端口驱动程序定义用于统一地访问多个相异固态存储设备的通用通信协议。此通信协议可以定义例如响应于数据访问请求来对发送到或接收自固态存储设备的数据进行分组的通用装置。
在一个实施例中,图4的流程图400还包括展示被访问的固态存储设备的接口特征的步骤。这可以例如通过使用展示关于被访问的固态存储设备的特定配置信息的固态存储总线驱动程序来实现。可以出于将固态存储设备与计算机系统的总线相耦合的目的而这样做。例如,假设操作系统122或应用程序124正经由方法400访问“安全数字”存储器。在此示例中,固态存储总线驱动程序“SD”275将展示“安全数字”存储器的接口特征,以便它可以与计算机系统100的总线104通信耦合并从而由操作系统104或应用程序124访问。
在一个实施例中,图4的流程图400还包括展示被访问的固态存储设备的独特、非通用抽象特征的步骤。这可以例如通过允许例如“闪速存储”264模块等固态存储端口驱动程序访问例如小型端口驱动程序265等展示关于被访问的特定固态存储设备的特定配置信息的固态存储小型端口驱动程序来实现。
由此描述了本发明的用于对固态存储的统一支持的技术的示例实施例。尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。

Claims (20)

1.一种提供对固态存储的统一支持的方法(300),所述方法包括:
提供固态存储类驱动程序来允许对多个相异固态存储设备的统一操作系统访问(310);
通过固态存储端口驱动程序来抽象所述多个相异固态存储设备的通用功能(320);以及
利用固态存储总线驱动程序来展示固态存储设备的接口特征,其中所述固态存储设备选自所述多个相异固态存储设备(330),使得在使所述操作系统能够支持按统一的方式访问所述多个相异固态存储设备的同时提供所述接口特征。
2.如权利要求1所述的方法(300),其特征在于,所述提供固态存储类驱动程序来允许对多个相异固态存储设备的统一操作系统访问(310)包括:
抽象关于所述多个相异固态存储设备的固有信息。
3.如权利要求2所述的方法(300),其特征在于,所述抽象关于所述多个相异固态存储设备的固有信息包括:
将所述固态存储设备展示为计算机系统的固定部分。
4.如权利要求2所述的方法(300),其特征在于,所述抽象关于所述多个相异固态存储设备的固有信息包括:
将所述固态存储设备展示为可以从计算机系统移除。
5.如权利要求2所述的方法(300),其特征在于,所述抽象关于所述多个相异固态存储设备的固有信息包括:
将所述固态存储设备展示为可由计算机系统来引导。
6.如权利要求1所述的方法(300),其特征在于,所述通过固态存储端口驱动程序来抽象所述多个相异固态存储设备的通用功能(320)包括:
定义用于访问所述多个相异固态存储设备的协议。
7.如权利要求1所述的方法(300),其特征在于,所述通过固态存储端口驱动程序来抽象所述多个相异固态存储设备的通用功能(320)还包括:
允许通过小型端口驱动程序来展示所述固态存储设备的独特特征。
8.如权利要求1所述的方法(300),其特征在于,所述利用固态存储总线驱动程序来展示固态存储设备的接口特征(330)包括:
展示关于将所述固态存储设备耦合到计算机系统的总线的特定配置信息。
9.一种具有用于执行访问固态存储设备的方法(400)的计算机可执行指令的计算机可读介质(102,108,110,112,150),所述方法包括以下步骤:
方便操作系统和数据访问请求者之间的统一数据访问请求通信(410),所述统一数据访问请求通信经由关于多个相异固态存储设备的抽象固有信息来方便;
接收所述操作系统中的数据访问请求(420);以及
利用关于所述多个相异固态存储设备的通用功能的抽象信息来允许所述数据访问请求从所述操作系统到所述多个相异固态存储设备中的一固态存储设备的传递(430),使得所述操作系统支持以统一方式访问所述多个相异固态存储设备。
10.如权利要求9所述的计算机可读介质(102、108、110、112、150),其特征在于,还包括用于执行以下步骤的计算机可执行指令:
出于将所述固态存储设备耦合到计算机系统的总线的目的来展示所述固态存储设备的接口特征。
11.如权利要求9所述的计算机可读介质(102、108、110、112、150),其特征在于,所述用于方便操作系统与数据访问请求者之间的统一数据访问请求通信(410)的计算机可执行指令包括用于执行以下步骤的计算机可执行指令:
展示所述固态存储设备的固定特性。
12.如权利要求9所述的计算机可读介质(102、108、110、112、150),其特征在于,所述用于方便操作系统与数据访问请求者之间的统一数据访问请求通信(410)的计算机可执行指令包括用于执行以下步骤的计算机可执行指令:
展示所述固态存储设备的可移动特性。
13.如权利要求9所述的计算机可读介质(102、108、110、112、150),其特征在于,所述用于方便操作系统与数据访问请求者之间的统一数据访问请求通信(410)的计算机可执行指令包括用于执行以下步骤的计算机可执行指令:
方便从所述固态存储设备来引导计算机系统。
14.如权利要求9所述的计算机可读介质(102、108、110、112、150),其特征在于,所述用于利用关于所述多个相异固态存储设备的通用功能的抽象信息(430)的计算机可执行指令包括用于执行以下步骤的计算机可执行指令:
定义用于统一地访问所述多个相异固态存储设备的通用通信协议。
15.一种与操作系统(122)相关联的存储栈(200),所述存储栈(200)包括:
文件系统(221、222、223、224)
通信耦合到所述文件系统(221、222、223、224)的卷管理器(231、232、233);
通信耦合到所述卷管理器(231、232、233)的分区管理器(240);以及
通信耦合到所述分区管理器(240)的固态存储类驱动程序(254),所述固态存储类驱动程序(254)被配置成支持通过所述操作系统对多个相异固态存储设备的统一访问。
16.如权利要求15所述的存储栈(200),其特征在于,所述固态存储类驱动程序(254)包括关于固定固态存储设备的固有特征的抽象信息和关于可移动固态存储设备的固有特征的抽象信息。
17.如权利要求15所述的存储栈(200),其特征在于,还包括:
通信耦合到所述固态存储类驱动程序(254)的固态存储端口驱动程序(264),所述固态存储端口驱动程序提供所述多个相异固态存储设备的通用功能的抽象。
18.如权利要求17所述的存储栈(200),其特征在于,所述固态存储端口驱动程序(264)定义用于使用所述操作系统来统一地访问所述多个相异固态存储设备的通用通信协议。
19.如权利要求17所述的存储栈(200),其特征在于,还包括:
通信耦合到所述固态存储端口驱动程序(264)的固态存储小型端口驱动程序(265),所述小型端口驱动程序(265)展示所述多个相异固态存储设备中的一固态存储设备的独特特征。
20.如权利要求19所述的存储栈(200),其特征在于,还包括:
通信耦合到所述固态存储端口驱动程序(264)的固态存储总线驱动程序(275、276),所述总线驱动程序(275、276)展示所述多个相异固态存储设备中的一固态存储设备的接口特征。
CN200880008143A 2007-03-13 2008-03-11 对固态存储的统一支持 Pending CN101657801A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/717,457 2007-03-13
US11/717,457 US20080229046A1 (en) 2007-03-13 2007-03-13 Unified support for solid state storage

Publications (1)

Publication Number Publication Date
CN101657801A true CN101657801A (zh) 2010-02-24

Family

ID=39759956

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880008143A Pending CN101657801A (zh) 2007-03-13 2008-03-11 对固态存储的统一支持

Country Status (5)

Country Link
US (1) US20080229046A1 (zh)
EP (1) EP2122471A1 (zh)
CN (1) CN101657801A (zh)
TW (1) TW200846906A (zh)
WO (1) WO2008112668A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102760061A (zh) * 2012-06-11 2012-10-31 记忆科技(深圳)有限公司 屏蔽固态硬盘存储接口差异的方法及存储系统
CN104541252A (zh) * 2012-05-20 2015-04-22 简易存储有限公司 用于实现基于服务器的分层大容量存储系统的系统和方法
CN105723347A (zh) * 2013-11-15 2016-06-29 微软技术许可有限责任公司 通过写扼制的廉价固态存储

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US8706968B2 (en) 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
US8443134B2 (en) 2006-12-06 2013-05-14 Fusion-Io, Inc. Apparatus, system, and method for graceful cache device degradation
CN101681282A (zh) 2006-12-06 2010-03-24 弗森多系统公司(dba弗森-艾奥) 用于共享的、前端、分布式raid的装置、系统和方法
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
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
WO2011031796A2 (en) * 2009-09-08 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for caching data on a solid-state storage device
WO2012092347A2 (en) * 2010-12-28 2012-07-05 Digital Storage Solutions, Inc. System for writing and dispensing solid-state storage devices
WO2012106362A2 (en) 2011-01-31 2012-08-09 Fusion-Io, Inc. Apparatus, system, and method for managing eviction of data
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
US10102117B2 (en) 2012-01-12 2018-10-16 Sandisk Technologies Llc Systems and methods for cache and storage device coordination
US9251052B2 (en) 2012-01-12 2016-02-02 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US10019353B2 (en) 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
US10417147B2 (en) * 2016-08-12 2019-09-17 Nxp B.V. Buffer device, an electronic system, and a method for operating a buffer device

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5199033A (en) * 1990-05-10 1993-03-30 Quantum Corporation Solid state memory array using address block bit substitution to compensate for non-functional storage cells
US5430859A (en) * 1991-07-26 1995-07-04 Sundisk Corporation Solid state memory system including plural memory chips and a serialized bus
US5809303A (en) * 1995-10-18 1998-09-15 Sun Microsystems, Inc. Device I/O monitoring mechanism for a computer operating system
US6754828B1 (en) * 1999-07-13 2004-06-22 Intel Corporation Algorithm for non-volatile memory updates
US6622260B1 (en) * 1999-12-30 2003-09-16 Suresh Marisetty System abstraction layer, processor abstraction layer, and operating system error handling
US6671802B1 (en) * 2000-04-13 2003-12-30 Hewlett-Packard Development Company, L.P. Performance optimization of computer system by dynamically and immediately updating a configuration setting based on detected change in preferred use
US6915524B2 (en) * 2001-04-06 2005-07-05 International Business Machines Corporation Method for controlling multiple storage devices from a single software entity
US6907482B2 (en) * 2001-12-13 2005-06-14 Microsoft Corporation Universal graphic adapter for interfacing with hardware and means for encapsulating and abstracting details of the hardware
US20030229745A1 (en) * 2002-06-07 2003-12-11 Hsuan-Ming Shih Driver for non-volatile solid-state memory
US7082495B2 (en) * 2002-06-27 2006-07-25 Microsoft Corporation Method and apparatus to reduce power consumption and improve read/write performance of hard disk drives using non-volatile memory
US7277978B2 (en) * 2003-09-16 2007-10-02 Micron Technology, Inc. Runtime flash device detection and configuration for flash data management software
US8888600B2 (en) * 2004-08-25 2014-11-18 Igt Emulation methods and devices for a gaming machine
US7581229B2 (en) * 2005-03-11 2009-08-25 Microsoft Corporation Systems and methods for supporting device access from multiple operating systems
US7568056B2 (en) * 2005-03-28 2009-07-28 Nvidia Corporation Host bus adapter that interfaces with host computer bus to multiple types of storage devices
US7392172B2 (en) * 2005-04-28 2008-06-24 Hewlett-Packard Development Company, L.P. Providing virtual device access via firmware

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104541252A (zh) * 2012-05-20 2015-04-22 简易存储有限公司 用于实现基于服务器的分层大容量存储系统的系统和方法
US10552385B2 (en) 2012-05-20 2020-02-04 Microsoft Technology Licensing, Llc System and methods for implementing a server-based hierarchical mass storage system
CN102760061A (zh) * 2012-06-11 2012-10-31 记忆科技(深圳)有限公司 屏蔽固态硬盘存储接口差异的方法及存储系统
CN102760061B (zh) * 2012-06-11 2016-01-13 记忆科技(深圳)有限公司 屏蔽固态硬盘存储接口差异的方法及存储系统
CN105723347A (zh) * 2013-11-15 2016-06-29 微软技术许可有限责任公司 通过写扼制的廉价固态存储

Also Published As

Publication number Publication date
WO2008112668A1 (en) 2008-09-18
US20080229046A1 (en) 2008-09-18
TW200846906A (en) 2008-12-01
EP2122471A1 (en) 2009-11-25

Similar Documents

Publication Publication Date Title
CN101657801A (zh) 对固态存储的统一支持
CN101627372B (zh) 选择性地利用多个异类固态存储位置
JP6138275B2 (ja) データ・ストレージ方法およびストレージ・デバイス
EP1650665B1 (en) File management method and information processing device
US20090132621A1 (en) Selecting storage location for file storage based on storage longevity and speed
US20100250825A1 (en) Method and apparatus for mounting files and directories to a local or remote host
TW201145022A (en) Virtualization of storage devices
US20110225371A1 (en) Data prefetch for scsi referrals
CN103699372A (zh) 从中央存储装置引导计算机系统
CN105190525A (zh) 管理在节电模式中对混合式驱动器的访问
CN115657961B (zh) Raid磁盘阵列管理方法、系统、电子设备及存储介质
US8595426B2 (en) Handling commands within a write-once read-many storage device configuration
CN202257359U (zh) 一种独立无盘个人智能处理设备及其系统
CN110287064B (zh) 一种磁盘数据的还原方法、装置及电子设备
CN110045929B (zh) 一种挂载点管理方法及相关装置
JPWO2005045680A1 (ja) 情報記録媒体及びその制御方法
US8719498B2 (en) Data storage device and data providing method therein
US20110106861A1 (en) Interface Techniques Providing Contiguous Storage For Files
CN102622301A (zh) 一种闪存文件的读取和更新方法及系统
CN117909023A (zh) 云平台部署方法、装置、计算机设备和存储介质
CN105260231A (zh) 一种降低物理磁盘io读写的方法
WO2014070342A1 (en) Drive emulation for devices with mass storage feature
US20070258314A1 (en) Driving method based on a binary architecture
KR20180090617A (ko) 전자 장치 및 전자 장치에서 데이터 처리 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20100224