CN101663654A - 用于连接到主机的存储设备的优化的提示模型和用于存储设备的写优化方案 - Google Patents

用于连接到主机的存储设备的优化的提示模型和用于存储设备的写优化方案 Download PDF

Info

Publication number
CN101663654A
CN101663654A CN200880013143A CN200880013143A CN101663654A CN 101663654 A CN101663654 A CN 101663654A CN 200880013143 A CN200880013143 A CN 200880013143A CN 200880013143 A CN200880013143 A CN 200880013143A CN 101663654 A CN101663654 A CN 101663654A
Authority
CN
China
Prior art keywords
data
subsystem
prompting
memory
information
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
CN200880013143A
Other languages
English (en)
Other versions
CN101663654B (zh
Inventor
V·萨多弗斯基
R·亚历山大
F·舒
N·奥布
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
Priority to CN201210111321.XA priority Critical patent/CN102750238B/zh
Publication of CN101663654A publication Critical patent/CN101663654A/zh
Application granted granted Critical
Publication of CN101663654B publication Critical patent/CN101663654B/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • 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/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种用于基于生成“意图”或“提示”并将其传递给存储设备来进行数据通信优化和/或较快/较慢固态存储器优化的体系结构。可对预定存储在存储设备(能够进行提示处理)上的数据进行分类以利用与该提示处理相关联的提升的性能。数据能够以块格式传递以使得能够发生一系列单独的块交换。提示处理在存储设备处是可任选的。在被传递给存储设备时,固件方便优化内部数据流和设备操作。向诸如固态存储设备等存储系统提供一种写优化方案。例如,频繁修改的数据可被存储在较快的存储器中以提供更高效的总体应用程序数据处理,而较不频繁修改的数据可被处理进出较低成本(或较慢)的存储器。

Description

用于连接到主机的存储设备的优化的提示模型和用于存储设备的写优化方案
背景
大容量存储设备的容量和内部操作速度正呈指数地增长,从而使得这些存储设备更加复杂。因此,制造商在这些设备上包括强大的嵌入式微处理器。此外,对于数据能够并且需要在应用层中以其进行处理的较快的速度而言,对存储设备的读/写访问可能变成通信管道中的瓶颈,从而影响用户体验和总体机器操作。
用于操作这些设备的传统模型仍然还是在使用面向块的设备协议来与存储设备通信的主机上运行的文件系统。有了有能力的处理器固件,存储设备可取决于主机软件在发起高级逻辑操作时所具有的确切意图来优化内部操作。然而,可用于固件的唯一常规协议是块协议,其造成了对于提供适应并优化数据和设备操作的能力的重大障碍。因此,固件设计者求助于诸如监听来自主机的分组并尝试猜测较高级OS软件数据管理的意图等技术。这一方法是脆弱且非最优的。此外,与固态驱动器(SSD)相关联的快速进步和相关联的成本下降正迫使设计者重新审视优化主机系统中的数据流的方式。
概述
以下提出了简化概述以便提供对在此描述的某些新颖实施例的基本理解。本概述不是详尽的概览,并且它不旨在标识关键/重要的元素,也不旨在描绘其范围。其唯一的目的是以简化的形式来介绍一些概念,作为稍后提出的更为详细的描述的序言。
所公开的体系结构包括一种通信方法,该方法基于能够基于生成“意图”或“提示”并将其传递给存储设备来优化数据通信的较高级操作系统(OS)层。然后可对预定存储在存储设备(能够进行提示处理)上的数据进行分类(bracket)(或标记)以利用与该提示处理相关联的提升的性能。数据能够以例如块格式传递以使得能够发生一系列单独的块交换。提示处理在存储设备处是可任选的。当确定设备中存在该能力时,传递给存储设备固件的信息方便优化内部数据流和设备操作。
该体系结构提供一种工作流模型,其中设备和OS进行通信(例如,基于存储设备固件报告能力)以检测提示处理能力。该提示模型包括可扩展并且可被分层在块通信之上的语言。另外,基于该可扩展性,主机栈的自定义部分可以发起用于专有事务的到存储设备(例如,固件)的提示通信。
该体系结构还包括用于诸如固态存储设备等存储设备的写优化方案。例如,在多种类型的数据存储(例如,单层单元(SLC)闪存、多层单元(MLC)闪存)可用的情况下,频繁修改的数据可被存储在较快的存储器中以提供至少相对于文件系统数据存储而言的更高效的总体应用程序数据处理。类似地,在数据是只读或较不频繁修改的情况下,这种数据可被处理进出较低成本(或较慢)的存储器。这一选择性提供了更优的资源使用以及组件成本。在涉及固态驱动器大容量存储技术的情况下,存储器成本的差别在区域中销售和市场份额中可以是显著的优势,这在消费者市场中肯定是非常有竞争力的。
为实现上述及相关目的,本文结合下面的描述和附图描述某些说明性方面。然而,这些方面仅指示了可利用此处公开的原理的各种方法中的少数几种,且旨在包括所有这些方面及其等效方面。结合附图阅读下面的详细描述,则其它优点和新颖特征将变得显而易见。
附图简述
图1示出用于生成并传递用于优化数据存储操作的提示信息的系统。
图2示出表示提示模型的可扩展性的系统。
图3示出进一步表示所公开的提示模型的可扩展性的系统。
图4示出其中向具有拥有不同提示能力的存储设备的存储子系统发送提示信息的系统。
图5示出用于提示数据处理的主机系统的更详细实现。
图6示出对可以使用的提示信息的更详细描述。
图7示出使用SSD数据存储子系统来优化数据存储的系统。
图8示出用于优化数据存储的存储系统。
图9示出管理数据存储的方法。
图10示出打包基于提示的数据以供传输的方法。
图11示出优化存储设备中的数据利用的方法。
图12示出基于数据修改的频率来管理固态设备上的数据存储的方法。
图13示出可用于执行根据所公开的体系结构的提示和写优化的计算系统的框图。
图14示出用于提示和写优化处理的示例性计算环境的示意性框图。
详细描述
所公开的体系结构包括基于向存储设备传递“意图”或“提示”的较高级应用层(例如,操作系统(OS))的通信方法,该存储设备能够处理这些提示数据。提示数据随后可用数字(例如,用提示标识符)来分类或标记以利用存储设备和提示应用程序之间的提升性能的提示处理。
现在参考附图,附图中相同的附图标记用于指代在全文中相同的元素。在以下描述中,为解释起见,描绘了众多具体细节以提供对本发明的全面理解。然而,显然,这些新颖实施例可以在没有这些具体细节的情况下实现。在其它情况下,以框图形式示出了公知的结构和设备以便于描述它们。
最初参考附图,图1示出用于生成并传递用于优化数据存储操作的提示信息的系统100。主机系统102运行用于包括应用层处的高级应用程序106在内的主机系统进程的操作系统(OS)104。OS 104接口到用于存储数据(例如,块)的数据存储子系统108(例如,机械驱动器、固态驱动器等)。OS 104和子系统108接口到提示组件110,该组件使用提示协议来方便OS104和子系统108之间的正式通信管道。如果子系统108是有提示能力的,则该功能可在例如系统启动和/或子系统启动后传递给OS 104。因此,可显著改进OS 104和子系统108之间的数据操作。
提示协议可被认为是可由较高级的层(例如,OS、应用程序)用来向存储子系统108(例如,子系统固件)传递“意图”或提示的副业(sideline)正式通信方法。在一个实现中,提示协议对数据块的各个块交换组进行封装(或分类)。
例如,如果基于闪存的设备(例如,固态驱动器(SSD))接收一系列块写入,则实现目录移除可以大大优化内部闪存页移动,从而避免读/写循环(取决于特定控制器技术)。类似地,如果有提示能力的数字照相机向与存储相关的有提示能力的固件指示该照相机能够持续流传输各个位(其表示数字图像或视频剪辑),则该固件可以更高效地将即将到来的数据流定向到存储扇区。另一示例包括从闪存设备流传输数据,其中除主机系统102被用数据缓冲来进行优化之外,存储相关的有提示能力的固件可以利用控制器命令来更多地优化数据传输和存储。
图2示出表示提示模型的可扩展性的系统200。在此,提示组件110扩展到应用层中以使得有提示能力的应用程序202能够经由提示协议向OS104发送提示数据块。OS 104随后处理提示数据块以转发到子系统108以便优化应用程序202、OS 104和子系统108之间的数据操纵和处理。在多个有提示能力的应用程序202发送提示数据块的情况下,OS 104可以过滤出重复块处理和/或区分转发到子系统108的提示数据和信息的优先次序。
提示模型是基于报告理解提示协议的能力的存储子系统固件的。提示协议(或语言)被分层在块通信之上,并且如所例示的是可扩展的。可扩展性还包括主机栈中的发起用于专有事务的到固件的提示通信的自定义部分。
在一替换实现中,应用程序202(和/或OS 104)和数据存储子系统108的固件(此处未示出,但在图4中示出)早先在能力协商阶段(例如,在子系统108的安装期间)进行交互,以解决应用程序202与应用程序202的提示能力的提示兼容性。因此,应用程序202能包括超过子系统108的“基本”提示能力的“扩展”提示能力是可能的。在这种情况下,用户可以根据基本兼容性来运行系统102,或将该扩展能力安装到存储子系统固件中以使得应用程序和子系统108现在可以根据扩展提示协议来完全兼容地操作。应用程序202的扩展提示能力能以例如用户安装在系统102上的自定义模块的形式来实现。兼容性协商过程可以利用将常见的硬件标识符匹配到应用程序或自定义模块中的兼容存储子系统标识符的库的匹配算法。操作随后基于该匹配过程的成功或失败。
对提示协议的利用是可任选的。然而,在各层和存储子系统被认为能够进行提示通信时,优化内部数据流和设备操作。
图3示出进一步表示所公开的提示模型的可扩展性的系统300。在此,客户机/服务器环境包括具有对应的有提示能力的客户机应用程序的客户机302(示为客户机1……客户机N)。第一客户机304包括第一有提示能力的应用程序306,而第N客户机308包括相应的有提示能力的应用程序310。客户机302可以根据主机系统102(现在被称为服务器系统102)所请求的服务来读/写。在服务器数据存储子系统108向服务器OS 104报告有提示能力的功能的情况下,OS 104也可以向客户机302报告服务器是有提示能力的。因此,客户机应用程序(306和310)可以根据提示协议来执行到服务器102的数据块通信。
如上所示,OS 104随后可以过滤来自客户机302或服务器应用程序202的提示通信和/或区分其优先次序,以用于到服务器子系统108的块通信。在客户机中的一个没有提示能力的情况下,该客户机的到子系统108的块事务将按照常规块通信技术。
在另一实施例中,在初始化存储设备时,设备固件报告解释特定版本的提示语言的能力。例如,由于协议是可扩展的,所以可以使用不同的提示协议版本。因此,提示组件110可以适应可在存储设备固件中使用的不同的协议版本,以及在可能的情况下方便对该固件的更新。
在一替换实现中,应用程序202(和/或OS 104)和数据存储子系统108的固件(此处未示出,但在图4中示出)早先在能力协商阶段(例如,在子系统108的安装期间)进行交互,以解决应用程序202与应用程序202的提示版本能力的提示版本兼容性。因此,应用程序202能包括超过较老协议版本中的子系统108的“基本”提示能力的较新协议版本中的“扩展”提示能力是可能的。
在这种情况下,用户可以根据基本版本兼容性来运行系统102,或将扩展能力的更新版本安装到存储子系统固件中,以使得应用程序和子系统108现在可以根据同一版本的扩展提示协议来完全兼容地操作。兼容性协商过程可以利用在硬件和应用程序之间进行提示协议版本匹配的匹配算法。操作随后基于得自协议版本的交集的能力。
可以使提示操作是可任选的,因为虽然提示模型可用但不要求使用它。在一个实现中,在源应用程序(例如,OS或其它应用程序)发起提示协议以便进行块处理时,主机OS将关闭数据序列。在一替换实施例中,该序列将由主机的源应用程序来关闭。
提示协议语言可以表示具有用数字代码标识的提示的开放语法。此外,存储子系统固件不必回复提示信息,虽然该子系统可以在提示数据无效的情况下拒绝该数据。
图4示出其中向具有拥有不同的提示能力的存储设备406的存储子系统404发送提示信息402的系统400。为支持通常使用多个存储设备的计算系统(例如,个人计算机、服务器),存储子系统404可包括管理来自数据源410的数据的路由的存储管理组件408,数据源410可以向适当的有提示能力的存储设备提供提示信息402和/或向传统存储设备414提供非提示信息412。在设备406初始化时,设备406的提示能力经由设备固件中的提示算法来报告给主机OS。此后,可以适当地路由提示信息402(例如,所标记的数据块)。
例如,提示数据块的第一序列由管理组件408接收、处理并被路由到第一有提示能力的存储设备416。一组非提示数据块由管理组件408接收,并可被路由到设备406中的任意一个或多个,因为有提示能力的设备也可以存储非提示数据块。提示数据块的第二序列随后被从数据源410接收,其在由管理组件408接收时可被路由到第一有提示能力的设备416或第二有提示能力的设备418。
管理组件408可被适当地设计成记住数据块被路由到哪里以供存储。另选地,除此之外,管理组件408可以将存储信息向上传递给数据源410,以使提示数据块用存储位置信息来标记,该信息用于路由后续的相同或相似数据块。或者,数据源410可以访问管理组件408中的管理信息以确定向哪里发送提示数据块。例如,如果第一有提示能力的设备416不能容纳提示数据块的第二序列以供邻接存储,则管理组件408可以使用用于优化块处理和存储的提示协议来将该第二序列路由到第二有提示能力的存储设备418。
提示信息可包括与用于更高效的处理和存储的块数据操作相关的硬件能力、存储设备的类型、供使用的存储设备上的存储器的类型、软件版本等。此外,该信息可以包括主机和存储设备之间的通信的带宽能力,其可被用来确定这些实体之间的数据处理。例如,较大总线(例如,位宽)可以指示可使用较大块。同样,如果数据通路较窄,则这还可以指示可为优化数据处理和存储而调用的替换数据处理操作。使用软提示信息还允许用对硬件和软件的更改来修改和/或更新提示处理。一旦接收到,在存储子系统上执行的提示算法就将提示信息从数据中剥离,并更高效地处理和存储该数据。
图5示出用于提示数据处理的主机系统500的更详细实现。主机系统500包括经由OS 104发送提示信息402的提示组件110、用于定义与提示处理相关的策略的策略组件502、以及用于执行与提示生成和处理相关的规则的规则组件504,这些组件是独立的(例如,插件)或是OS的一部分。主机系统500还可包括诸如应用程序、模块等数据生成器506和用于根据提示协议来格式化主机数据以供通信和存储的数据格式化器508(例如,文件系统驱动程序、栈等)。
如果给定存储设备能够解释提示,则文件系统驱动程序(或分层在文件系统之上的自定义过滤器驱动程序)开始用“开始提示”/“结束提示”序列来对复杂操作进行分类。在一个示例性格式中,提示数据(例如,数据1、数据2……)可被分类为块,例如数据1块、其后是数据2块等。还构想了所公开的体系结构可以处理流数据,其中该流数据能以提示头部(例如,开始提示)开始并以提示尾部(例如,结束提示)结束。在又一示例中,数据块用提示信息而非使用头部/尾部消息来标记。
在有提示能力的存储设备(例如,SSD)处,设备固件包括用于接收、剥离提示头部/尾部消息、存储数据(例如,数据1、数据2……)的提示算法。在SSD驱动器中,可能包括多组固态存储器,其各自以不同的速度操作以便更高效地利用。例如,在SSD子系统的多类型存储器的上下文中,数据存储可以按照较快存储器中的较频繁使用的数据和较慢存储器中的较不频繁使用的数据。尽管较少优化,但在使用了旋转磁性存储子系统(例如,硬盘驱动器)的情况下,没有快或慢存储器可用。然而,在一个相对于这种机械磁性存储系统的示例性优化中,较频繁使用的数据可以存储在访问较快的盘片区域(例如,外周区域)而非盘片内部。
图6示出对可以使用的提示信息402的更详细描述。提示组件110提供用于向存储子系统108给出来自提示数据源600(例如,OS)的、关于该数据源600将如何使用子系统108所存储的数据的信息的机制。基本上,可以认为在数据源600和子系统108之间建立了低级约定,其指示子系统108以优化数据源600的使用的方式来执行数据存储。这通过主存提示算法604的子系统固件602(作为提示组件110的一部分)来促进。
在一个示例中,提示信息402可包括用于标识彼此相关联的各组块的原子访问信息。这与其中数据块被存储在其它类似数据块的附近(例如,邻接)的常规碎片整理类似但不相同。常规碎片整理完全取决于以下假设:通过从存储介质中一起读取所有块并随后使用LBA(逻辑块编址)来将这些块顺序地写回,将这些块彼此靠近地放置以供较快的访问。然而,在许多设备上情况不是这样的。
提示协议中的原子访问信息向子系统108提供一定范围的块,以便向该子系统108指示在访问该范围信息中的任一个块时,也将访问其它相关联的块。另外的情况可以是请求子系统108确保对该范围中的所有块的访问能够以最少量的努力来访问。换言之,所公开的提示模型向存储子系统108给出足够信息以做出智能决定。如果子系统108不能使用该信息,则这只是机会损失,而不存在数据丢失或数据破坏。设备继续正确地工作。可能存在当子系统108接收到该信息时,由于其当前状态而仍然不能操作它的情况。
目标是提供OS(或提示数据源600)可以告诉存储设备该OS如何工作的方式。这还提供了提示组件、协议、和算法中的可扩展性,该可扩展性用于适应不断变化的情况而不必进行修订、不必改变核心假设、或可能不需要做出关于是否应针对各种常规操作系统来优化存储的决定。
提示信息402还可处理数据的移除和删除。常规上,如果文件系统删除了数据,则该数据仍然能够存在,而指向该数据的指针已被擦除。在数据被保留在存储介质上的情况下,存储设备实际上可基于不知道该数据是无用的来维护该数据。该原子访问方便告诉设备已删除但仍然保留的数据不再重要。因此,该设备可以决定对该信息做点事情。。基本上,这是指示这些块将在被再次读取之前被写入的约定。
提示信息402可包括频率信息。一旦指定各组块将以特定方式访问,访问频率就还可在提示信息402中传递。可以用信号通知存储子系统108(或设备)主机将基于预定准则来频繁或不频繁地访问块。例如,如果在每次系统引导时都知道块将在特定时间量内被访问,则可以推断块在每次会话将被访问至少一次。这可以与可以是在几个月内未打开的临时文件或文字处理文档的、将被不频繁地访问的另一组块形成对比。另一示例是经常经历读/写处理并且因而被非常频繁地访问的页文件。
提示信息402可包括等待时间信息。因为数据块可被非常频繁地读取和写入不意味着该数据是紧急的。可能存在被极少读取和写入但非常紧急的数据因此,紧急性不能与频率相关联。例如,位于盘上且系统将要执行的可执行程序将被延迟。此外,因为在该可执行程序之前可能存在系统进程,所以即使一个月只使用一次,当该系统进程使用该可执行程序时,该进程也立即想要它。这与诸如日志等可能频繁但不紧急的后台进程形成对比。
提示信息402可包括分配和解除分配信息,其允许高速缓存对于存储子系统的信息并随后在不再需要时清空高速缓存。可以知道,数据源准备进行大量即将发生的块写入并且知道扇区。文件系统可以向存储子系统提供关于即将发生的写入和扇区的信息以使的该子系统能够有所准备。因此,基于提前预测的即将发生的大规模写入,可以命令子系统分配用于处理大量数据的空间和扇区。
图7示出使用SSD数据存储子系统702来优化数据存储的系统700。系统700包括文件系统704,该系统用于准备数据和使用存储驱动程序栈706来向数据子系统702传递供存储的数据。在SSD子系统702包括至少两种类型的存储器(例如,闪存),即较快存储器和较慢存储器的情况下,可利用该硬件特性来优化数据存储和处理。
在计算机的日常使用期间频繁修改的系统数据的量对于给定OS而言几乎是常量。在一个示例中,对客户机而言,该数据量可接近8GB。因此,文件系统704可被配置成标识频繁修改的数据并将该频繁修改的数据存储在较优化的存储器区域中以便较快访问。例如,在多种类型的数据存储(例如,单层单元(SLC)闪存、多层单元(MLC)闪存)可用的情况下,频繁修改的数据可被存储在较快存储器中以提供至少相对于文件系统数据存储而言的更高效的总体应用程序数据处理。
类似地,在数据是只读或较不频繁修改的情况下,这种数据可被处理进出较低成本(或较慢)的存储器。这一选择性提供了更优的资源使用以及组件成本。在涉及SSD大容量存储技术的情况下,存储器成本的差别在消费者市场的销售和市场份额中可以是显著的优势。
另外,频繁修改的数据展示诸如局部性等特征。换言之,诸如$log、$MFT和$Bitmap等文件是往往被较频繁地使用并且因此更适于较快存储器存储的数据的一些示例。例如,在SSD存储子系统702的上下文中,为针对写操作来优化SSD,从安装OS开始,本地化数据文件就应被置于优化(或较快)的存储器区域。文件系统704随后可以按需从存储器位置中取得数据并操纵该数据。
文件系统702还使用来自SSD设备的、关于优化的存储器地址和存储大小的知识,并能够在整个操作时间期间使用同一策略来将数据存储在正确的位置中。
使用固定文件名来标记频繁修改的数据提供了用于标识该数据的简单手段,并且需要较少开销。然而,文件系统可能并非将知道所有数据文件,尤其是用户应用程序数据。因此,文件系统702可以使用监控对数据的写入频率的自适应算法708来有效地实现该方案。在优化的存储器已满的情况下,数据可溢出到常规存储器空间。因为通过设计,溢出的数据量将很小,所以溢出将不影响SSD对OS的总体性能。
图8示出用于优化数据存储的存储系统800。例如,系统800可包括例如,利用闪存的SSD。系统800可包括存储固件802,其存储用于管理存储系统800上的数据的一个或多个软件算法(例如可任选地,提示算法604)。在一个双存储器实现中,系统800包括供如上所述地使用的较快SLC闪存804和较慢MLC闪存806。固件802向OS文件系统报告SLC存储器804和MLC存储器806的地址,以将较频繁修改的数据存储在SLC存储器804中并将较不频繁修改的数据存储在MLC存储器806中。
在主机存储系统中存在多个(即,第一和第二)系统800的情况下,用于较频繁修改的数据的数据存储可以在跨多个驱动器的SLC存储器804中,只要存储器804中有足够空间可用。此外,第一系统的SLC存储器的溢出数据可被存储在第二系统的SLC存储器中。
以下是表示用于执行所公开的体系结构的各新颖方面的示例性方法的一系列流程图。尽管出于解释简明的目的,此处例如以流图或流程图形式示出的一个或多个方法被示出并描述为一系列动作,但是可以理解和明白,这些方法不受动作的次序的限制,因为根据本发明,某些动作可以按与此处所示并描述的不同的次序和/或与其它动作同时发生。例如,本领域技术人员将会明白并理解,方法可被替换地表示为一系列相互关联的状态或事件,诸如以状态图的形式。此外,并非一方法中所示的所有动作都是对于新颖实现所必需的。
图9示出管理数据存储的方法。在900处,从数据存储设备接收提示模式数据。提示模式数据向应用程序(例如,OS)指示设备可以根据提示协议来操作以优化通信和数据处理。在902处,应用程序根据提示协议来打包数据以传递给设备。在904处,将打包的数据从应用程序发送到设备。在906处,设备包括根据提示信息来解包数据并存储该数据的提示算法。
图10示出打包基于提示的数据以便传输的方法。在1000处,开始存储设备的初始化。在1002处,存储设备向主机OS报告该设备包括提示能力。在1004处,主机文件系统包括用提示信息来对数据进行分类的驱动程序。在1006处,存储设备处理经分类的提示数据以便存储。在1008处,主机在数据流停止时终止对数据的提示分类操作。
换言之,在初始化存储设备时,设备固件报告解释特定版本的提示语言的设备能力。如果给定存储设备能够解释提示,则文件系统驱动程序(或分层在文件系统之上的自定义过滤器驱动程序),即主机文件系统开始用例如提示头部/尾部信息(例如,“开始提示”/“结束提示”)序列来对复杂数据操作进行分类。用于标识提示数据的其它技术包括例如用提示标签来标记该数据。
可以理解,虽然存储设备可包括提示能力,但该存储设备可任选地使用提示操作。在经分类的序列开始时,其可由主机终止。提示语言表示具有可用数字代码标识的提示的开放语法。设备固件不需要回复来自主机的提示操作,但如果发起,则存储设备可以在提示无效的情况下拒绝该提示。
图11示出优化存储设备中的数据利用的方法。在1100处,向主机传递存储设备能力。在1102处,将数据存储在存储设备上。在1104处,标识较频繁修改的数据。在1106处,标识较不频繁修改的数据。在1108处,主机通过文件系统驱动程序处理提示数据以将较频繁使用的数据定向到存储设备存储器的较快部分。在1110处,主机通过文件系统驱动程序处理提示数据以将较不频繁使用的数据定向到设备存储器的较慢部分。在1110处,将较快存储器和/或较慢存储器的溢出定向到常规存储器空间。
提示信息可以与即将来自主机的数据是否是压缩的、文本、视频、音频、流传输等有关。因此,该数据不必基于块,但基于展示诸如文件、文件大小等数据的元数据。另外,提示可包括关于数据是应被动态处理还是应被临时高速缓存在主机中以便对存储子系统的进行大批量数据处理(即,批存储)的信息。
此外,具有多个驱动器是常见的,其中从多个驱动器接收到的提示信息可由主机来一起处理以决定如何格式化数据以便对存储设备的全部或部分进行存储处理。在这样的SSD存储系统的大型实现中,基于提示信息和多驱动器系统的可用的较快/较慢存储器来使某些驱动器断电(或休眠、待机)也成为可能。
SSD存储子系统适用于ATA(高级技术附件,例如串行、并行等),即用于连接存储设备的标准接口、和IDE(集成驱动器电子产品)技术、以及PCI(外围组件接口)、PCIe(PCI express)、SCSI(小型计算机系统接口)、以及其它类似存储设备接口技术。
图12示出基于数据修改的频率来管理固态设备上的数据存储的方法。在1200处,设备接收数据并将其存储在该设备的慢存储器的一部分中。在1202处,设备固件监控慢存储器中的数据的数据活动。在1204处,设备固件基于数据的数据修改频率来将该数据从慢存储器移动到该设备的快存储器。在1206处,设备固件监控数据并基于该数据的数据修改频率来在慢和快存储器之间移动数据。
如在本申请中所使用的,术语“组件”和“系统”旨在表示计算机相关的实体,其可以是硬件、硬件和软件的组合、软件、或者执行中的软件。例如,组件可以是但不限于,在处理器上运行的进程、处理器、硬盘驱动器、多个(光和/或磁存储介质的)存储驱动器、对象、可执行代码、执行的线程、程序、和/或计算机。作为说明,运行在服务器上的应用程序和服务器都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程内,且组件可以位于一台计算机内上/或分布在两台或更多的计算机之间。
现在参考图13,示出了可用于执行根据所公开的体系结构的提示和写优化的计算系统1300的框图。为了提供用于其各方面的附加上下文,图13及以下讨论旨在提供对其中可实现该各方面的合适的计算系统1300的简要概括描述。尽管以上描述是在可在一个或多个计算机上运行的计算机可执行指令的一般上下文中进行的,但是本领域的技术人员将认识到,新颖实施例也可结合其它程序模块和/或作为硬件和软件的组合来实现。
一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构等等。此外,本领域的技术人员可以理解,本发明的方法可用其它计算机系统配置来实施,包括单处理器或多处理器计算机系统、小型计算机、大型计算机、以及个人计算机、手持式计算设备、基于微处理器的或可编程消费电子产品等,其每一个都可操作上耦合到一个或多个相关联的设备。
所示各方面也可以在其中某些任务由通过通信网络链接的远程处理设备来执行的分布式计算环境中实施。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
计算机通常包括各种计算机可读介质。计算机可读介质可以是可由计算机访问的任何可用介质,且包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以存储如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或者其它存储器技术、CD-ROM、数字视频盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁存储设备、或可以用于存储所需信息并且可以由计算机访问的任何其它介质。
再次参考图13,用于实现各方面的示例性计算系统1300包括具有处理单元1304、系统存储器1306和系统总线1308的计算机1302。系统总线1308向包括但不限于系统存储器1306的各系统组件提供到处理单元1304的接口。处理单元1304可以是市场上可购买到的各种处理器中的任意一种。双微处理器和其它多处理器体系结构也可用作处理单元1304。
系统总线1308可以是若干种总线结构中的任一种,这些总线结构还可互连到存储器总线(带有或没有存储器控制器)、外围总线、以及使用各类市场上可购买到的总线体系结构中的任一种的局部总线。系统存储器1306可包括非易失性存储器(NON-VOL)1310和/或易失性存储器1312(例如随机存取存储器(RAM))。基本输入/输出系统(BIOS)可被储存在非易失性存储器1310(例如ROM、EPROM、EEPROM等)中,其中BIOS包含帮助诸如在启动期间在计算机1302内的元件之间传输信息的基本例程。易失性存储器1312还可包括诸如静态RAM等高速RAM来用于高速缓存数据。
计算机1302还包括内置硬盘驱动器(HDD)1314(例如,EIDE、SATA),该内置HDD 1314还可被配置成在合适的机壳中外部使用;磁软盘驱动器(FDD)1316(例如,从可移动磁盘1318中读取或向其写入);以及光盘驱动器1320(例如,从CD-ROM盘1322中读取,或从诸如DVD等其它高容量光学介质中读取或向其写入)。HDD 1314可用从所公开的提示和优化体系结构中受益的闪存的固态驱动器来替换。作为SSD,驱动器1314包括固件(未示出),该固件可进一步包括提示算法604。
HDD 1314、FDD 1316、以及光盘驱动器1320可分别由HDD接口1324、FDD接口1326和光盘驱动器接口1328来连接到系统总线1308。用于外置驱动器实现的HDD接口1324可包括通用串行总线(USB)和IEEE 1394接口技术中的至少一种或两者。
驱动器及相关联的计算机可读介质提供了对数据、数据结构、计算机可执行指令等的非易失性存储。对于计算机1302,驱动器和介质容纳适当的数字格式的任何数据的存储。尽管以上对计算机可读介质的描述涉及HDD、可移动磁盘(例如FDD)以及诸如CD或DVD等可移动光学介质,但是本领域的技术人员应当理解,示例性操作环境中也可使用可由计算机读取的任何其它类型的介质,诸如zip驱动器、磁带盒、闪存卡、盒式磁带等等,并且任何这样的介质可包含用于执行所公开的体系结构的新颖方法的计算机可执行指令。
多个程序模块可存储在驱动器和RAM 1312中,包括操作系统1330、一个或多个应用程序1332、其它程序模块1334和程序数据1336。操作系统1330可采用提示组件110来与合适的存储设备(例如,驱动器1334)进行提示协议通信。应用程序1332还可包括用于接口到提示组件110并提供数据打包以便于到存储设备的提示通信的模块。
操作系统、应用程序、模块和/或数据的全部或部分也可被高速缓存在易失性存储器1312中。应该明白,所公开的体系结构可以用市场上可购得的各种操作系统或操作系统的组合来实施。
用户可以通过一个或多个有线/无线输入设备,例如键盘1338和诸如鼠标1340等定点设备将命令和信息输入到计算机1302中。其它输入设备(未示出)可包括话筒、IR遥控器、操纵杆、游戏垫、指示笔、触摸屏等等。这些和其它输入设备通常通过耦合到系统总线1308的输入设备接口1342连接到处理单元1304,但也可通过其它接口连接,如并行端口、IEEE1394串行端口、游戏端口、USB端口、IR接口等等。
监视器1344或其它类型的显示设备也经由接口,诸如视频适配器1346连接至系统总线1308。除了监视器1344之外,计算机通常包括诸如扬声器、打印机等其它外围输出设备(未示出)。
计算机1302可使用经由有线和/或无线通信至一个或多个远程计算机,诸如远程计算机1348的逻辑连接在网络化环境中操作。远程计算机1348可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其它常见的网络节点,并且通常包括相对于计算机1302描述的许多或所有元件,尽管为简明起见仅示出了存储器/存储设备1350。所描绘的逻辑连接包括到局域网(LAN)1352和/或例如广域网(WAN)1354等更大的网络的有线/无线连接。这一LAN和WAN连网环境常见于办公室和公司,并且方便了诸如内联网等企业范围计算机网络,所有这些都可连接到例如因特网等全球通信网络。
当在LAN连网环境中使用时,计算机1302通过有线和/或无线通信网络接口或适配器1356连接到LAN 1352。适配器1356可以方便到LAN 1352的有线和/或无线通信,并且还可包括其上设置的用于使用适配器1356的无线功能进行通信的无线接入点。
当在WAN连网环境中使用时,计算机1302可包括调制解调器1358,或连接到WAN 1354上的通信服务器,或具有用于通过WAN 1354,诸如通过因特网建立通信的其它装置。或为内置或为外置以及有线和/或无线设备的调制解调器1358经由串行端口接口1342连接到系统总线1308。在网络化环境中,相对于计算机1302所描述的程序模块或其部分可以存储在远程存储器/存储设备1350中。应该理解,所示网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其它手段。
计算机1302可用于与操作上设置在无线通信中的任何无线设备或实体通信,这些设备或实体例如有打印机、扫描仪、台式和/或便携式计算机、便携式数据助理、通信卫星、与无线可检测标签相关联的任何一个设备或位置(例如,公用电话亭、报亭、休息室)以及电话机。这至少包括Wi-Fi和蓝牙TM无线技术。由此,通信可以如对于常规网络那样是预定义结构,或者仅仅是至少两个设备之间的自组织(ad hoc)通信。
现在参考图14,示出了用于提示和写优化处理的示例性计算环境1400的示意性框图。系统1400包括一个或多个客户机1402。客户机1402可以是硬件和/或软件(例如,线程、进程、计算设备)。例如,客户机1402可容纳cookie和/或相关联的上下文信息。
系统1400还包括一个或多个服务器1404。服务器1404也可以是硬件和/或软件(例如,线程、进程、计算设备)。服务器1404可以例如通过使用本体系结构来容纳线程以执行变换。在客户机1402和服务器1404之间的一种可能的通信能够以适合在两个或多个计算机进程之间传输的数据分组的形式进行。数据分组可包括例如cookie和/或相关联的上下文信息。系统1400包括可以用来使客户机1402和服务器1404之间通信更容易的通信框架1406(例如,诸如因特网等全球通信网络)。
通信可经由有线(包括光纤)和/或无线技术来促进。客户机1402操作上被连接到可以用来存储对客户机1402本地的信息(例如,cookie和/或相关联的上下文信息)的一个或多个客户机数据存储1408。同样地,服务器1404可在操作上连接到可以用来存储对服务器1404本地的信息的一个或多个服务器数据存储1410。
客户机1402可包括与服务器1404的有提示能力的数据存储1410进行通信的有提示能力的应用程序。在该特定实现中,例如服务器操作系统可以过滤(例如,复制)对例如服务器数据存储1410的提示协议写入并区分其优先次序。
以上所描述的包括所公开的体系结构的各示例。当然,描述每一个可以想到的组件和/或方法的组合是不可能的,但本领域内的普通技术人员应该认识到,许多其它组合和排列都是可能的。因此,本新颖体系结构旨在涵盖所有这些落入所附权利要求书的精神和范围内的更改、修改和变化。此外,就在说明书或权利要求书中使用术语“包括”而言,这一术语旨在以与术语“包含”在被用作权利要求书中的过渡此时所解释的相似的方式为包含性的。

Claims (20)

1.一种计算机实现的存储器管理系统,包括:
主机系统的用于存储数据的数据存储子系统,所述子系统报告用于处理所述数据的子系统操作模式;以及
提示组件,其使用提示协议基于所述操作模式来将所述数据从所述主机系统的软件层发送到所述子系统。
2.如权利要求1所述的系统,其特征在于,所述提示协议适用于所述主机系统中的至少一个中或到网络连接的块存储设备的数据块通信,并标记一系列块交换以便传递。
3.如权利要求1所述的系统,其特征在于,所述数据存储子系统包括作为所述提示组件一部分的子系统固件中的、用于优化所述子系统中的数据处理的提示算法。
4.如权利要求1所述的系统,其特征在于,所述子系统包括用于根据块写入来存储所述数据的固态设备。
5.如权利要求1所述的系统,其特征在于,所述提示协议包括定义需要访问的一组块的块范围信息,并响应于接收到该组块,所述子系统将其以邻接的方式来存储该组块。
6.如权利要求1所述的系统,其特征在于,所述子系统包括各自以不同的速度操作的各组固态存储器,所述子系统将频繁访问的数据存储在较快的固态存储器中。
7.如权利要求6所述的系统,其特征在于,所述提示组件用信号通知所述子系统将所述数据的块存储在所述各组固态存储器中的一组特定固态存储器中。
8.如权利要求1所述的系统,其特征在于,所述主机系统使用自适应算法来监控存储在所述子系统中的数据的写活动,其中子系统包括固态驱动器,以使得频繁修改的数据被存储在所述固态驱动器中。
9.如权利要求8所述的系统,其特征在于,所述固态驱动器包括快存储器和慢存储器以使得所述频繁修改的数据被存储在所述快存储器中而较不频繁修改的数据被存储在所述慢存储器中。
10.如权利要求1所述的系统,其特征在于,所述提示协议包括定义所述子系统应在读取之前对其进行写入的存储器位置的数据维护信息。
11.如权利要求1所述的系统,其特征在于,所述提示协议包括基于预定准则来定义所述数据将被频繁地还是不频繁地更新的频率信息。
12.如权利要求1所述的系统,其特征在于,所述提示协议包括定义其中相对于被访问的其它数据期望访问所述数据的紧急性的等待时间信息。
13.如权利要求1所述的系统,其特征在于,所述提示协议包括定义数据到所述子系统的预期传递的分配信息,响应于所述分配信息,所述子系统为该数据传递准备存储器位置。
14.如权利要求1所述的系统,其特征在于,所述软件层是操作系统,所述操作系统支持用于在将从较高级应用程序接收到的提示信息发送到所述子系统之前区分该提示信息的优先次序或对其进行过滤的一个或多个输入/输出过滤器。
15.一种管理存储器的计算机实现的方法,所述方法包括以下动作:
从主机的存储设备接收与用于处理数据块的操作模式相关的提示模式数据;
根据提示协议打包应用程序的数据以传递给所述设备;
将所打包的数据从所述应用程序发送到所述设备;以及
根据提示信息将所述数据存储在所述设备上。
16.如权利要求15所述的方法,其特征在于,所述应用程序是主机操作系统、主机应用程序、或远程系统的应用程序中的一个。
17.如权利要求15所述的方法,其特征在于,还包括:
将所述数据打包成数据块序列以便进行块通信并存储在所述设备上;以及
基于所述提示信息来分配和解除分配存储器位置。
18.如权利要求15所述的方法,其特征在于,还包括基于数据的修改频率来在所述设备中的快存储器和慢存储器之间移动所述数据。
19.如权利要求15所述的方法,其特征在于,所打包的数据以块写入序列传递至所述设备中的邻接存储器位置。
20.一种计算机实现的系统,包括:
用于从主机的存储设备接收与用于处理数据块的操作模式相关的提示模式数据的计算机实现的装置;
用于根据提示协议打包应用程序的数据以传递给所述设备的计算机实现的装置;
用于将所打包的数据从所述应用程序发送到所述设备的计算机实现的装置;以及
用于根据提示信息将所述数据存储在所述设备上的计算机实现的装置。
CN2008800131439A 2007-04-23 2008-03-27 用于连接到主机的存储设备的优化的提示模型和用于存储设备的写优化方案 Active CN101663654B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210111321.XA CN102750238B (zh) 2007-04-23 2008-03-27 存储器管理系统以及管理存储器的方法

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US91350007P 2007-04-23 2007-04-23
US60/913,500 2007-04-23
US11/856,167 US7853759B2 (en) 2007-04-23 2007-09-17 Hints model for optimization of storage devices connected to host and write optimization schema for storage devices
US11/856,167 2007-09-17
PCT/US2008/058482 WO2008134165A1 (en) 2007-04-23 2008-03-27 Hints model for optimization of storage devices connected to host and write optimization schema for storage devices

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201210111321.XA Division CN102750238B (zh) 2007-04-23 2008-03-27 存储器管理系统以及管理存储器的方法

Publications (2)

Publication Number Publication Date
CN101663654A true CN101663654A (zh) 2010-03-03
CN101663654B CN101663654B (zh) 2012-06-20

Family

ID=39873372

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2008800131439A Active CN101663654B (zh) 2007-04-23 2008-03-27 用于连接到主机的存储设备的优化的提示模型和用于存储设备的写优化方案
CN201210111321.XA Active CN102750238B (zh) 2007-04-23 2008-03-27 存储器管理系统以及管理存储器的方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201210111321.XA Active CN102750238B (zh) 2007-04-23 2008-03-27 存储器管理系统以及管理存储器的方法

Country Status (6)

Country Link
US (1) US7853759B2 (zh)
EP (1) EP2140356A4 (zh)
CN (2) CN101663654B (zh)
HK (1) HK1177012A1 (zh)
TW (1) TWI348620B (zh)
WO (1) WO2008134165A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591592A (zh) * 2010-12-14 2012-07-18 微软公司 虚拟化环境中的数据去重复
CN103853665A (zh) * 2012-12-03 2014-06-11 华为技术有限公司 存储空间分配方法及设备
US8990171B2 (en) 2011-09-01 2015-03-24 Microsoft Corporation Optimization of a partially deduplicated file
CN106354425A (zh) * 2015-07-13 2017-01-25 三星电子株式会社 基于数据属性的数据布局的方法和系统
CN107220205A (zh) * 2017-05-18 2017-09-29 联想(北京)有限公司 信息提示方法及电子设备
US10394757B2 (en) 2010-11-18 2019-08-27 Microsoft Technology Licensing, Llc Scalable chunk store for data deduplication
CN110612511A (zh) * 2017-03-09 2019-12-24 Netapp股份有限公司 使用流选择性地向分配区域中存储数据
CN113961142A (zh) * 2020-07-20 2022-01-21 美光科技公司 包含各种时延和容量的存储器装置的存储器子系统
CN114746848A (zh) * 2019-12-03 2022-07-12 美光科技公司 用于存储装置的高速缓存架构

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US7934055B2 (en) 2006-12-06 2011-04-26 Fusion-io, Inc Apparatus, system, and method for a shared, front-end, distributed RAID
US8312214B1 (en) 2007-03-28 2012-11-13 Netapp, Inc. System and method for pausing disk drives in an aggregate
US20090043831A1 (en) * 2007-08-11 2009-02-12 Mcm Portfolio Llc Smart Solid State Drive And Method For Handling Critical Files
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
US7984259B1 (en) * 2007-12-17 2011-07-19 Netapp, Inc. Reducing load imbalance in a storage system
US9495116B2 (en) * 2007-12-26 2016-11-15 Sandisk Il Ltd. Storage device coordinator and a host device that includes the same
TWI373768B (en) * 2008-02-05 2012-10-01 Phison Electronics Corp System, controller and method for data storage
US8812805B2 (en) * 2008-08-05 2014-08-19 Broadcom Corporation Mixed technology storage device that supports a plurality of storage technologies
WO2010087858A1 (en) 2009-01-31 2010-08-05 Hewlett-Packard Development Company, L.P. File-name extension characters for file distribution
WO2010106692A1 (en) * 2009-03-17 2010-09-23 Hitachi, Ltd. Storage system and its controlling method
KR20100107089A (ko) * 2009-03-25 2010-10-05 삼성전자주식회사 저장 장치 및 이를 포함하는 데이터 저장 시스템
US8171075B2 (en) * 2009-06-14 2012-05-01 International Business Machines Corporation Generating hints for more optimal processing of requests for information within an environment in which resources are abstracted using a model
US8291131B2 (en) 2009-07-06 2012-10-16 Micron Technology, Inc. Data transfer management
EP2476055B1 (en) 2009-09-08 2020-01-22 SanDisk Technologies LLC Apparatus, system, and method for caching data on a solid-state storage device
KR101689420B1 (ko) 2009-09-09 2016-12-23 샌디스크 테크놀로지스 엘엘씨 저장 장치의 전력 감소 관리를 위한 장치, 시스템, 및 방법
US8601222B2 (en) 2010-05-13 2013-12-03 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
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
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
US8566689B2 (en) * 2009-10-22 2013-10-22 Microsoft Corporation Data integrity units in nonvolatile memory
US20110107042A1 (en) * 2009-11-03 2011-05-05 Andrew Herron Formatting data storage according to data classification
US8683145B2 (en) * 2009-11-09 2014-03-25 Microsoft Corporation Packed storage commands and storage command streams
JP2011128792A (ja) * 2009-12-16 2011-06-30 Toshiba Corp メモリ管理装置
TWI486966B (zh) * 2010-02-04 2015-06-01 Phison Electronics Corp 快閃記憶體儲存裝置、其控制器與寫入管理方法
JP5549260B2 (ja) * 2010-02-16 2014-07-16 富士通株式会社 ストレージシステムおよびデータ書込み方法
US9218135B2 (en) * 2010-06-16 2015-12-22 Microsoft Technology Licensing, Llc Hierarchical allocation for file system storage device
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
EP2598996B1 (en) 2010-07-28 2019-07-10 SanDisk Technologies LLC 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
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
EP2652623B1 (en) 2010-12-13 2018-08-01 SanDisk Technologies LLC Apparatus, system, and method for auto-commit memory
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
WO2012083308A2 (en) 2010-12-17 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US9213594B2 (en) 2011-01-19 2015-12-15 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for managing out-of-service conditions
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
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
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
US8966191B2 (en) 2011-03-18 2015-02-24 Fusion-Io, Inc. Logical interface for contextual storage
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
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US8996762B2 (en) * 2012-02-28 2015-03-31 Qualcomm Incorporated Customized buffering at sink device in wireless display system based on application awareness
US8825724B2 (en) * 2012-03-29 2014-09-02 Lsi Corporation File system hinting
US9665630B1 (en) * 2012-06-18 2017-05-30 EMC IP Holding Company LLC Techniques for providing storage hints for use in connection with data movement optimizations
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US10346095B2 (en) 2012-08-31 2019-07-09 Sandisk Technologies, Llc Systems, methods, and interfaces for adaptive cache persistence
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
US9063861B1 (en) * 2012-12-27 2015-06-23 Emc Corporation Host based hints
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
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
US10013344B2 (en) 2014-01-14 2018-07-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Enhanced SSD caching
US10152263B2 (en) 2014-07-01 2018-12-11 Razer (Asia-Pacific) Pte. Ltd. Data storage systems, computing systems, methods for controlling a data storage system, and methods for controlling a computing system
KR102251811B1 (ko) 2015-01-02 2021-05-13 삼성전자주식회사 하드웨어 필터를 포함하는 데이터 저장 장치 및 상기 데이터 저장 장치를 포함하는 데이터 처리 시스템
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US10282324B2 (en) 2015-07-13 2019-05-07 Samsung Electronics Co., Ltd. Smart I/O stream detection based on multiple attributes
US10162521B2 (en) * 2015-09-30 2018-12-25 Western Digital Technologies, Inc. Media region management based on storage hints for a data storage device
CN109426625A (zh) * 2017-08-30 2019-03-05 深圳市道通科技股份有限公司 一种多驱动兼容的控制装置和实现方法
CN109145053B (zh) 2018-08-01 2021-03-23 创新先进技术有限公司 数据处理方法和装置、客户端、服务器
TWI786288B (zh) * 2019-04-09 2022-12-11 韓商愛思開海力士有限公司 儲存裝置、儲存裝置的控制方法及記錄媒體
CN111176564B (zh) * 2019-12-25 2024-02-27 三星(中国)半导体有限公司 确定ssd内数据摆放策略的方法及装置
US20210048962A1 (en) * 2020-10-29 2021-02-18 Intel Corporation Endurance aware data placement in storage system with multiple types of media
US11829615B2 (en) * 2022-02-16 2023-11-28 Western Digital Technologies, Inc. Out of order data transfer hint calibration

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10154101A (ja) * 1996-11-26 1998-06-09 Toshiba Corp データ記憶システム及び同システムに適用するキャッシュ制御方法
US6085193A (en) 1997-09-29 2000-07-04 International Business Machines Corporation Method and system for dynamically prefetching information via a server hierarchy
WO1999054833A2 (en) 1998-04-20 1999-10-28 Recursion Dynamics Inc. Dynamically configurable data storage and processing system optimized for performing database operations
US6915376B1 (en) 1998-12-22 2005-07-05 Intel Corporation Host controlled optimization of disk storage devices
US6330621B1 (en) * 1999-01-15 2001-12-11 Storage Technology Corporation Intelligent data storage manager
US6771192B1 (en) 2000-11-22 2004-08-03 Silicon Image, Inc. Method and system for DC-balancing at the physical layer
US6957433B2 (en) 2001-01-08 2005-10-18 Hewlett-Packard Development Company, L.P. System and method for adaptive performance optimization of data processing systems
US6745295B2 (en) * 2001-04-19 2004-06-01 International Business Machines Corporation Designing a cache with adaptive reconfiguration
US7092977B2 (en) * 2001-08-31 2006-08-15 Arkivio, Inc. Techniques for storing data based upon storage policies
US7269612B2 (en) * 2002-05-31 2007-09-11 International Business Machines Corporation Method, system, and program for a policy based storage manager
US6898664B2 (en) 2002-08-28 2005-05-24 Hewlett-Packard Development Company, L.P. Optimizing performance for a storage device within a computer system
US20040107319A1 (en) * 2002-12-03 2004-06-03 D'orto David M. Cache management system and method
US7499914B2 (en) 2003-04-04 2009-03-03 Yahoo! Inc. Search system using search subdomain and hints to subdomains in search query statements and sponsored results on a subdomain-by-subdomain basis
US20040243699A1 (en) * 2003-05-29 2004-12-02 Mike Koclanes Policy based management of storage resources
US6983355B2 (en) 2003-06-09 2006-01-03 International Business Machines Corporation Virtualization of physical storage using size optimized hierarchical tables
US20050071560A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corp. Autonomic block-level hierarchical storage management for storage networks
US7669032B2 (en) 2003-11-26 2010-02-23 Symantec Operating Corporation Host-based virtualization optimizations in storage environments employing off-host storage virtualization
US20050125602A1 (en) * 2003-12-04 2005-06-09 Ehrlich Richard M. HDD with storage of critical data in FLASH
US7130967B2 (en) 2003-12-10 2006-10-31 International Business Machines Corporation Method and system for supplier-based memory speculation in a memory subsystem of a data processing system
JP4244319B2 (ja) 2003-12-17 2009-03-25 株式会社日立製作所 計算機システム管理プログラム,記録媒体,ならびに計算機システム管理システムおよびそのための管理装置および記憶装置
US20050149562A1 (en) * 2003-12-31 2005-07-07 International Business Machines Corporation Method and system for managing data access requests utilizing storage meta data processing
JP2005228278A (ja) * 2004-01-14 2005-08-25 Hitachi Ltd 記憶領域の管理方法、管理装置及び管理プログラム
US7636916B2 (en) 2004-05-05 2009-12-22 International Business Machines Corporation Self-optimizing workload distribution among virtual storage controllers
US7427027B2 (en) 2004-07-28 2008-09-23 Sandisk Corporation Optimized non-volatile storage systems
US20070156998A1 (en) * 2005-12-21 2007-07-05 Gorobets Sergey A Methods for memory allocation in non-volatile memories with a directly mapped file storage system
US8646016B2 (en) * 2006-12-06 2014-02-04 Verizon Patent And Licensing Inc. Content storage and delivery systems and associated methods

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10394757B2 (en) 2010-11-18 2019-08-27 Microsoft Technology Licensing, Llc Scalable chunk store for data deduplication
US10073854B2 (en) 2010-12-14 2018-09-11 Microsoft Technology Licensing, Llc Data deduplication in a virtualization environment
US8959293B2 (en) 2010-12-14 2015-02-17 Microsoft Corporation Data deduplication in a virtualization environment
US9342244B2 (en) 2010-12-14 2016-05-17 Microsoft Technology Licensing, Llc Data deduplication in a virtualization environment
CN102591592A (zh) * 2010-12-14 2012-07-18 微软公司 虚拟化环境中的数据去重复
CN102591592B (zh) * 2010-12-14 2017-05-24 微软技术许可有限责任公司 虚拟化环境中的数据去重复
US8990171B2 (en) 2011-09-01 2015-03-24 Microsoft Corporation Optimization of a partially deduplicated file
CN103853665A (zh) * 2012-12-03 2014-06-11 华为技术有限公司 存储空间分配方法及设备
CN103853665B (zh) * 2012-12-03 2017-06-06 华为技术有限公司 存储空间分配方法及设备
CN106354425B (zh) * 2015-07-13 2021-06-29 三星电子株式会社 基于数据属性的数据布局的方法和系统
CN106354425A (zh) * 2015-07-13 2017-01-25 三星电子株式会社 基于数据属性的数据布局的方法和系统
CN110612511A (zh) * 2017-03-09 2019-12-24 Netapp股份有限公司 使用流选择性地向分配区域中存储数据
CN110612511B (zh) * 2017-03-09 2023-10-03 Netapp股份有限公司 使用流选择性地向分配区域中存储数据
CN107220205A (zh) * 2017-05-18 2017-09-29 联想(北京)有限公司 信息提示方法及电子设备
CN114746848A (zh) * 2019-12-03 2022-07-12 美光科技公司 用于存储装置的高速缓存架构
CN114746848B (zh) * 2019-12-03 2023-08-04 美光科技公司 用于存储装置的高速缓存架构
CN113961142A (zh) * 2020-07-20 2022-01-21 美光科技公司 包含各种时延和容量的存储器装置的存储器子系统
CN113961142B (zh) * 2020-07-20 2024-05-17 美光科技公司 包含各种时延和容量的存储器装置的存储器子系统

Also Published As

Publication number Publication date
HK1177012A1 (zh) 2013-08-09
TWI348620B (en) 2011-09-11
WO2008134165A1 (en) 2008-11-06
CN102750238A (zh) 2012-10-24
US7853759B2 (en) 2010-12-14
EP2140356A4 (en) 2012-10-17
EP2140356A1 (en) 2010-01-06
CN102750238B (zh) 2016-08-17
CN101663654B (zh) 2012-06-20
TW200846910A (en) 2008-12-01
US20080263259A1 (en) 2008-10-23

Similar Documents

Publication Publication Date Title
CN101663654B (zh) 用于连接到主机的存储设备的优化的提示模型和用于存储设备的写优化方案
CN101090356B (zh) 使能对远程存储装置的访问的方法和系统
CN101669092B (zh) 管理本机/受管对等体的对象寿命
CN101689119B (zh) 实体和虚拟图像的统一提供
CN101452369B (zh) 用于控制usb大容量存储设备的逻辑单元的方法和系统
TWI444833B (zh) Sas擴充器之資料預取
CN102142024A (zh) 在分布式数据库中使用递增捕捉来进行逻辑数据备份和回退
CN105159800B (zh) 数据恢复方法、数据备份方法及相关设备、系统
CN101589599A (zh) 移动设备管理代理系统
TW201211800A (en) Migration of metadata and storage management of data in a first storage environment to a second storage environment
CN102576323B (zh) 一种促进存储系统中的数据的复制的方法和系统
US11740812B2 (en) Data storage device idle time processing
US11868625B2 (en) Alert tracking in storage
CN101324829A (zh) 通过存储装置管理内部操作
CN103020235A (zh) 自治网络流传输
CN107526616A (zh) 一种主机对bmc进行数据写入和读取的方法及装置
CN107003880A (zh) 内核更新方法和装置、计算机设备
CN109753222A (zh) 数据删除方法、服务器及计算机可读介质
CN102467557B (zh) 重复数据删除的处理方法
JP2005078652A (ja) モジュラコンポーネントを有するメモリカード
WO2022242665A1 (zh) 一种数据存储方法及相关装置
US20090222602A1 (en) Optimized data transfer between a portable device and a remote computer
WO2018028321A1 (zh) 一种虚拟外置存储设备的管理方法、装置及终端
JP2014048810A (ja) ホストシステム、ストレージデバイス、および通信方法
WO2020025016A1 (zh) 多页面通信的节点初始化

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: 20150511

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

Effective date of registration: 20150511

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.