CN103197899A - 增强基于闪存的存储的寿命和性能 - Google Patents

增强基于闪存的存储的寿命和性能 Download PDF

Info

Publication number
CN103197899A
CN103197899A CN2013101116049A CN201310111604A CN103197899A CN 103197899 A CN103197899 A CN 103197899A CN 2013101116049 A CN2013101116049 A CN 2013101116049A CN 201310111604 A CN201310111604 A CN 201310111604A CN 103197899 A CN103197899 A CN 103197899A
Authority
CN
China
Prior art keywords
data
flash memory
write
memory
memory 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.)
Granted
Application number
CN2013101116049A
Other languages
English (en)
Other versions
CN103197899B (zh
Inventor
Ky·斯里尼瓦桑
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 CN103197899A publication Critical patent/CN103197899A/zh
Application granted granted Critical
Publication of CN103197899B publication Critical patent/CN103197899B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/466Metadata, control data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了增强基于闪存的存储的寿命和性能。一种存储管理系统使得应用写请求与对基于闪存的存储设备的写请求解耦。通过在写入数据的应用请求和存储设备之间放置软件智能层,该系统能够做出关于何时何地写入数据的更有效的决策,这减少了存储设备的损耗并提高了存储设备的性能。应用具有一组性能特性并且按适于该应用的频率写入数据,但这对于硬件而言不一定是高效的。通过分析应用正如何使用数据,该系统能够策略性地在存储设备中放置数据或甚至对于某些操作避免使用存储设备以最小化损耗。一种用于这样做的技术是创建担当应用请求和存储硬件之间的缓冲区的存储器中高速缓存。

Description

增强基于闪存的存储的寿命和性能
技术领域
本发明涉及增强基于闪存的存储的寿命和性能。
背景技术
近年来数据存储硬件发生改变以使得基于闪存的存储常见得多。诸如硬盘驱动器和光盘驱动器等旋转介质正逐渐被诸如固态盘(SSD)驱动器等基于闪存的存储替代,基于闪存的存储不具有或具有更少移动部件。固态盘稳定得多,并且不会受到对先前的介质有害的许多种类的环境条件的影响。例如,旋转介质特别容易受到可能发生的震动,例如当包含一个旋转介质的移动计算设备跌落时。基于闪存的存储通常还具有快得多的存取时间并且该存储的每一区域都能够在统一的等待时间的情况下存取。旋转介质基于数据被存储在离中央主轴有多近(盘旋转更快)来展示不同的速度特性。另一方面,SSD具有访问给定存储器位置的固定时间量,并且不具有传统的寻道时间(该寻道时间指的是将读头移至旋转介质的给定位置的时间)。
不幸的是,SSD的确引入了关于它们如何被读取、写入、特别是擦除的新限制。典型的基于闪存的存储只能一次擦除一块,但一块中的非重叠位可以在任何时刻设置。在典型的计算系统中,操作系统将第一数据集写入SSD页,并且如果用户或系统修改该数据,则操作系统要么重新写入整页或将数据的某一部分重新写入一新位置,要么擦除整个块并且重新写入该页的全部内容。SSD寿命是由一块在该驱动器区域不再能够保持数据完整性(或至少无法被有效地擦除和重写)之前能够被擦除的平均次数来确定的。操作系统分别对块和页的重复擦除和重写仅仅加快了SSD的期满时间。
已经引入了若干技术来帮助SSD维持更久。例如,许多驱动器现在在内部执行损耗均匀化,其中驱动器的固件以保持每一块被擦除大约相同的次数的方式选择存储数据的位置。这意味着驱动器将不会由于驱动器中的一个区域被过度使用同时其他区域未被使用而发生故障(这可能导致该驱动器看上去随时间变得更小或完全失效)。另外,TRIM命令被引入到高级技术附件(ATA)标准中以允许操作系统告知SSD哪些数据块不再被使用以使得SSD能够决定何时擦除。讽刺的是,所有类型的盘驱动器都不知道哪些块在使用中。这是因为操作系统写入数据并且然后通常只标记指示何时在文件系统层删除数据的标志。因为驱动器通常不明白文件系统,所以驱动器无法将文件系统正在使用的块与不再使用的块区分开来,这是因为数据已经被标记为已被文件系统删除。TRIM命令将该信息提供给驱动器,以使得驱动器能够回收未使用的块。
虽然这些技术是有帮助的,但它们仍然依靠驱动器来主要管理驱动器本身,并且不在驱动器和操作系统之间提供足以允许在驱动器之外做出智能决策以延长驱动器寿命的通信。写在当今以应用确定的频率进行并由此不结合如何随时间且跨应用地写入设备的任何知识。应用可重复修改和保存相同的数据块,从而导致基于闪存的设备上的多个擦除和重写循环,这导致设备的更多损耗。
发明内容
本文描述了一种使得应用写请求与对基于闪存的存储设备的写请求解耦的存储管理系统。通过在写入数据的应用请求和存储设备之间放置软件智能层,该系统能够做出关于何时何地写入数据的更有效的决策,这减少了存储设备的损耗并提高了存储设备的性能。损耗平均化是SSD和其他基于闪存的存储设备中的一个问题,这个问题聚焦于使数据标识和放置技术在延长SSD使用的闪存和提高性能方面扮演重要角色。应用具有一组性能特性并且按适于该应用的频率写入数据,但这对于硬件而言不一定是高效的。通过分析应用正如何使用数据,该系统能够策略性地在存储设备中放置数据或甚至对于某些操作避免使用存储设备以最小化损耗。一种用于这样做的技术是创建担当应用请求和存储硬件之间的缓冲区的存储器中高速缓存。该系统可提供什么看上去是对基于闪存的存储设备的写访问,但实际上可能直到数据的易失性减退才写入设备。通过在存储器中高速缓存写,该系统能够减少对基于闪存的设备的写入次数。由此,该存储管理系统利用操作系统对数据已如何被使用和将被如何使用的知识,以便以更高效的方式在基于闪存的存储设备上放置数据。
提供本发明内容以便以简化形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
附图说明
图1是示出一个实施例中的存储管理系统的组件的框图。
图2是示出一个实施例中的存储管理系统用于处理来自软件应用的写请求的处理的流程图。
图3是示出一个实施例中的存储管理系统用于将数据转储清除到基于闪存的存储设备的处理的流程图。
图4是示出一个实施例中的存储管理系统在高层次的操作组件的框图。
具体实施方式
本文描述了一种使得应用写请求与对基于闪存的存储设备的写请求解耦的存储管理系统。通过在写入数据的应用请求和存储设备之间放置软件智能层,该系统能够做出关于何时何地写入数据的更有效的决策,这减少了存储设备的损耗并提高了存储设备的性能。损耗平均化是SSD和其他基于闪存的存储设备中的一个问题,这个问题聚焦于使数据标识和放置技术在延长SSD使用的闪存和提高性能方面扮演重要角色。应用具有一组性能特性并且按适于该应用的频率写入数据,但这对于硬件而言不一定是高效的。操作系统具有包括关于应用(或多个应用)的请求以及正用于存储的硬件的简档的信息的眼界。
使用固态驱动器(SSD)中的损耗平均化来回收存储器并延长基于闪存的存储设备的寿命。在不进行损耗平均化的情况下,高度写入的位置将快速磨损,而其他位置最终可能被罕见地使用。通过分析应用正如何使用数据,该系统能够策略性地在存储设备中放置数据或甚至对于某些操作避免使用存储设备以最小化损耗。一种用于这样做的技术是创建担当应用请求和存储硬件之间的缓冲区的存储器中高速缓存。高速缓存类似于写时复制(COW)技术行动,其中多方被给予对它们相信是私有副本的共享数据的访问,但直到一方修改该数据才提供私有副本。类似地,该系统可规定什么看上去是对基于闪存的存储设备的写访问,但实际上可能直到数据的易失性减退才写入设备。例如,考虑从存储器中读取文件的应用在几分钟时间段内每几秒钟对该文件做出修改,并且然后关闭该文件。使用普通的基于闪存的存储范例,每一次写入都可涉及耗尽一新块或重复擦除一块以写入修改。通过在存储器中高速缓存这些写入,该系统能够在文件被关闭时将写入次数减至一,其中该单次写入结合了该应用所做出的所有变更。以此方式,基于闪存的设备只有一块被擦除,而不是随时间多次擦除。由此,该存储管理系统利用操作系统对数据已如何被使用和将被如何使用的知识,以便以更高效的方式在基于闪存的存储设备上放置数据。
作为另一示例,考虑顺序地对被存储在闪存的同一块中的两个相邻或邻近的存储位置做出修改。如果操作系统遵循应用的请求并将第一组修改写入第一位置,之后将第二组修改写入第二位置,则这可导致使用两个新块或两次擦除现有块以写入修改。通过高速缓存应用做出的单独写入并且观察这些写入影响存储的同一块,该系统能够通过转储清除高速缓存并在同一动作中提交这两个操作来减少所使用的新块的数量或擦除次数。作为另一示例,许多应用写入临时文件,并且在应用创建文件、若干次修改文件并最终删除该文件期间,对于基于闪存的设备可能发生该系统能够一起避免或减少的大量损耗。
该存储管理系统提供用于增强基于闪存的存储器设备的寿命的策略,该策略减少设备损耗并增强设备的读/写性能。因为从系统或其他存储器进行读和写的等待时间通常少于基于闪存的存储的平均等待时间,所以对存储器中高速缓存的写操作和从存储器高速缓存的读操作快于对基于闪存的设备的读/写。在一些实施例中,该系统实现以下策略:在操作系统设备驱动程序中管理对闪存设备的写入以使得基于闪存的设备的所有用户(例如,应用、文件系统、操作系统服务等)都能够明显地从这些改进中受益。诸如在两个应用访问同一数据时,这还允许该系统对性能做出跨应用提高。
在控制基于闪存的设备后,存储管理系统的设备驱动程序或其他实施例检查存储设备的几何结构和能力并为该设备分配存储器中高速缓存。该高速缓存将被用来退回定向在闪存设备的写入并且能够响应读请求。因此,例如,如果将在闪存设备中修改逻辑块X号,则该系统将修改后的逻辑块X号定向至驱动程序管理的存储器中高速缓存。本质上,该驱动程序通过在存储器高速缓存中高速缓存写入来为正在管理的闪存设备实现“写时复制”策略。驱动程序维护足够的状态来在读取侧检索正确的逻辑块。当发出读取时,驱动程序检查以确定块当前是否已被高速缓存;如果是,则从高速缓存中满足读取;如果否,则从闪存设备满足读取。高速缓存的写入最终与闪存设备上的数据进行同步以确保写入持久存储,但对闪存设备的写入的数量和频率可不同于写入闪存设备的应用请求的数量和频率。该系统仔细地管理该同步以便1)提高数据的可用性、性能和持久性以及2)最小化闪存设备上的损耗。
高速缓存的写入被周期性地同步回闪存设备以确保写入在系统崩溃的情况下不会丢失。由于写高速缓存的大小与闪存设备的容量相比通常较小,因此该系统还可以在耗尽写高速缓存中可用的自由块时进行同步。
图1是示出一个实施例中的存储管理系统的组件的框图。系统100包括基于闪存的存储设备110、设备接口组件120、数据高速缓存组件130、高速缓存写组件140、高速缓存读组件150、高速缓存转储清除组件160、应用接口组件170和故障管理组件。这些组件中的每一个都在此处进一步详细讨论。
基于闪存的存储设备110是包括至少一些基于闪存的非易失性存储器的存储设备。基于闪存的存储器设备可包括SSD、通用串行总线(USB)驱动器、构建在主板上的存储、构建到移动智能电话中的存储、与传统旋转存储介质组合的闪存存储以及其他形式的存储。基于闪存的存储设备通常包括NAND或NOR闪存,但可包括其他形式的非易失性随机存取存储器(RAM)。基于闪存的存储设备通常由快速存取时间、基于块的擦除、能够每页执行的非重叠写入的有限数量来表征。不再能够被写入的闪存驱动器被称为已过期或发生故障。
设备接口组件120提供了系统100的其他组件和基于闪存的存储设备110之间的接口。设备接口组件120可利用一个或多个操作系统应用编程接口(API)来访问存储设备,并且可使用一个或多个协议,诸如串行ATA(SATA)、并行ATA(PATA)、USB或其他协议。组件120还可理解一个或多个设备或固件所支持的一个或多个专有或特定协议,这些协议允许系统100检索描述基于闪存的存储设备110的可用存储位置和布局的附加信息。
数据高速缓存组件130提供应用请求写入设备的数据的存储器中高速缓存。系统100可以将或不将高速缓存中的数据转储清除到设备110,或者可取决于此处进一步描述的高速缓存转储清除组件160的决策来选择将高速缓存中的数据转储清除到设备110的特定时机。数据高速缓存组件130提供其中能够在招致将数据写入基于闪存的存储的惩罚或不利方面的情况下保存应用请求存储的数据的中间位置,同时系统100等待确定招致这些惩罚实际上是否必要,并且同时该系统采取行动以便通过减少基于闪存的存储的写入或擦除的数量来减少这些惩罚。与此同时,被保存在高速缓存中的数据可供以比被写入基于闪存的存储设备100的数据更低的等待时间来更快地访问。
高速缓存写组件140接收将数据写入基于闪存的存储设备110的请求并将该数据写入数据高速缓存组件130。高速缓存写组件140可确定基于闪存的存储设备110的特定块是否已经被存储在该高速缓存中,并且可执行管理性保管以便在数据结构中存储指示设备110的特定块的新数据在该高速缓存中可用的信息。高速缓存写组件140能够快速向高速缓存写入数据,并且然后能够在低等待时间的情况下响应做出请求的应用,以使得该应用可以继续其他任务,而不是等待通常较慢的存储请求。由此,高速缓存写组件140使得应用与基于闪存的存储设备110的特定设备能力和参数解耦。
高速缓存读组件150接收从基于闪存的存储设备110读取数据的请求,并且从数据高速缓存组件130或基于闪存的存储设备110读取该数据。因为高速缓存担当设备110和应用之间的中间位置,所以高速缓存包含比存储在设备110上的信息更新的信息是可能的。因为读取操作通常依靠接收数据的最新副本,所以高速缓存读组件150确定数据的较新副本在高速缓存中是否可用,并且如果是,则从该高速缓存服务读取请求。如果特定块在高速缓存中不可用,则组件150从设备中检索数据,并且任选地在应用(或另一应用)随后试图重新读取或修改(即,写入)相同位置的情况下高速缓存该数据。从高速缓存服务请求更快,并由此采取这些动作提高应用的性能,同时减少基于闪存的存储设备110上的损耗。
高速缓存转储清除组件160将存储在数据高速缓存组件130中的数据复制到基于闪存的存储设备110。转储清除是如下操作:最终将已经被存储在高速缓存中的数据协调至非易失性存储,以使得该数据甚至在电源故障的情况下且跨可能持续较长时间的各计算会话可用。高速缓存转储清除组件160可使用本领域内公知的各种技术和过程来确定何时转储清除高速缓存。高速缓存可以因为如下原因而被转储清除:高速缓存已满、数据已经在高速缓存中保留超过阈值时间量(并由此有较高的丢失风险)、将由于使用高速缓存而受益更多的新数据可用,等等。系统100可应用这些技术中的任一种来管理高速缓存的操作以获得所期望的性能和损耗益处。在一些实施例中,系统100提供管理员可将其配置成更改提高的性能和高速缓存转储清除组件160获得的数据安全性之间的折衷的选项。
应用接口组件170提供系统100的其他组件和请求对基于闪存的存储设备110进行读写的应用之间的接口。应用接口组件170可作为内核或用户模式设备驱动程序来与操作系统进行互操作。操作系统一般提供用于向存储设备写入数据的一个或多个API,而组件170可截取去往基于闪存的存储设备110的这些请求,以使得能够应用本文描述的技术来更高效地使用设备110。系统100可以在同时附连到计算平台的任何数量的基于闪存的存储设备上进行操作。例如,平台可包括多个基于闪存的硬盘驱动器、USB设备等,每一个都可被用来存储数据。
故障管理组件180任选地在设备接近其损耗极限或在发生故障时处理去往或来自基于闪存的存储设备110的数据访问和/或移动。在为数据引入诸如此处的高速缓存等中间存储位置的任何时候,由于电源故障或其他故障而导致的数据丢失的可能性增加。组件180可帮助用户将数据移至设备110的较少损耗的区域或从设备110之外获取数据以避免数据丢失。例如,如果一文件已经有七年没有被访问过了,则组件180可建议用户允许系统100从较少损耗的位置删除该文件,以允许其他更重要的数据被写入该位置。类似地,组件180可帮助用户定位可被删除或移动以便为设备110的过渡损耗的区域内的更难以替代的数据文件腾出空间的可被容易地替代的文件(例如,可以从光盘重装的操作系统文件)。
在其上面实现了存储管理系统的计算设备可包括中央处理单元、存储器、输入设备(例如,键盘和指示设备)、输出设备(例如,显示设备),以及存储设备(例如,磁盘驱动器或其他非易失性存储介质)。存储器和存储设备是可以用实现或启用该系统的计算机可执行指令(如软件)来编码的计算机可读存储介质。另外,数据结构和消息结构可被存储在计算机可读存储介质上。本文所要求的任何计算机可读介质包括仅那些落在法定可受专利保护的类别中的介质。该系统还可包括一个或多个通信链路,通过通信链路可传送数据。可以使用各种通信链路,诸如因特网、局域网、广域网、点对点拨号连接、蜂窝电话网络等。
该系统的实施例可以在各种操作环境中实现,这些操作环境包括个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、可编程消费电子产品、数码相机、网络PC、小型计算机、大型计算机、包括上述系统或设备等中任一种的分布式计算环境、机顶盒、片上系统(SOC)等。计算机系统可以是蜂窝电话、个人数字助理、智能电话、个人计算机、可编程消费电子设备、数码相机等。
该系统可以在由一个或多个计算机或其他设备执行的诸如程序模块等计算机可执行指令的通用上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。通常,程序模块的功能可在各个实施例中按需进行组合或分布。
图2是示出一个实施例中的存储管理系统用于处理来自软件应用的写请求的处理的流程图。
开始于框210,系统从应用接收将数据写入基于闪存的存储设备的请求。该请求可源自由软件应用接收到、然后由操作系统接收到的用户请求,在该操作系统中存储管理系统被实现为用于管理基于闪存的设备上的数据存储的文件系统驱动程序或其他组件。接收到的请求可包括关于数据的某些信息,诸如文件系统中将存储数据的位置,并且可给出数据所需的关于目的、存取频率和存取类型(读/写)的某些信息。例如,如果数据正被写入文件系统中为临时文件保留的位置,则该系统可预测该数据将在短时间内被频繁写入并且然后被删除。类似地,如果在设置“关闭时删除”标志的情况下打开一文件,则该系统可得出该文件将被简要地使用并且然后被删除的结论。
继续至框220,该系统确定接收到的请求被定向到的存储设备。该系统确定目标存储设备是否是基于闪存的以及是否将从存储器中高速缓存和该系统执行的技术受益。许多计算机系统包括基于闪存的和非基于闪存的设备的组合,并且一些设备将基于闪存的部分与旋转或其他介质相组合。该设备可通过基本输入/输出系统(BIOS)信息或扩展固件接口(EFI)向操作系统提供信息,该系统可查询该信息以确定设备的物理特性。
继续至判定框230,如果系统确定存储设备是基于闪存的,则该系统继续至框240,否则该系统完成并且以传统方式处理写请求。该系统可甚至为非基于闪存的存储设备执行其他传统高速缓存技术。本文描述的技术是与其他存储性能增强策略兼容的,并且可以与这些策略耦合以便进一步提高存储设备的性能,无论该设备是不是基于闪存的。
继续至框240,该系统标识用于收集应用请求写入存储设备的数据的存储器中高速缓存。如果高速缓存尚不存在,则该系统可以在该阶段分配存储器中高速缓存以处理目前和后续数据写入请求。高速缓存可以是在不招致立即将数据写入基于闪存的存储设备的损耗或其他惩罚的情况下系统能够向其写入数据的RAM或其他存储器中的区域。本文描述的高速缓存在应用和存储设备之间操作并且可独立于且附加于诸如设备本身中的硬件高速缓存、计算机系统的CPU的处理器高速缓存等其他高速缓存来行动。高速缓存可以在将数据从高速缓存转储清除到基于闪存的存储设备之前收集多个写请求并服务读请求。
继续至框250,该系统将与请求一起接收到的数据写入所标识的存储器中高速缓存,而不将该数据写入基于闪存的存储设备。该系统还可更新指示与基于闪存的存储相关联的哪些数据当前被保存在高速缓存中的元数据或其他数据结构。在某一时刻,该系统将数据从存储器中高速缓存转储清除到基于闪存的存储设备,或者确定由于数据已被删除或不再需要,因此写入该数据是不必要的。通过组合对基于闪存的存储器的特定块的多个写请求,该系统避免了基于闪存的设备上的过多损耗并提高了设备性能。同时,由于高速缓存存储器的较低等待时间,读取写入数据或同一块中的数据(如果整个块都被高速缓存的话)的任何请求都能够被快得多地服务。
继续至框260,该系统向做出请求的应用返回指示对存储器中高速缓存的写操作的成功或失败的写结果。通常,写入将会是成功的,并且应用将由于存储器中高速缓存的较低等待时间而用比将数据直接写入基于闪存的存储更少的时间接收到结果。这允许应用继续其他生产工作并提高性能,即使高速缓存无法在稍后避免对基于闪存的存储的任何写操作。
继续至框270,该系统在将来自第一写请求和至少一个附加写操作的数据写入基于闪存的存储设备之前在存储器中高速缓存中收集该附加写操作。以此方式,该系统减少了对基于闪存的存储设备的写请求的数量,并使得应用写请求的时机和频率与设备写请求解耦。这提高了应用性能并减少了基于闪存的存储设备上的损耗。在框270之后,这些步骤结束。
图3是示出一个实施例中的存储管理系统用于将数据转储清除到基于闪存的存储设备的处理的流程图。
开始于框310,该系统从一个或多个应用接收在基于闪存的存储设备上存储数据的多个请求,并在中间高速缓存中高速缓存该数据,而不在服务该请求时将该数据存储在基于闪存的存储设备上。该系统可以在一段时间内使用如参考图2描述的过程来接收请求,在接收到每一请求时高速缓存数据,并且然后确定将高速缓存中的该数据转储清除到基于闪存的存储设备的适当时间。
继续至框320,该系统标识中间高速缓存中的高速缓存的数据,并确定该高速缓存的数据是否将被写入基于闪存的存储设备。该系统可使用各种准则来确定将存储在中间高速缓存中的数据写入基于闪存的存储设备的时间点。例如,在高速缓存中的数据已满时、在特定数据在高速缓存中驻留阈值时间后、在接收到比较早的高速缓存的数据更有可能被引用的较新近的数据时等,该系统可以转储清除高速缓存或其一部分。
继续至判定框330,如果该系统确定已经满足至少一个高速缓存转储清除准则,则该系统继续至框340,否则该系统完成并等待满足高速缓存转储清除准则。该系统可以在发生某一事件时检查对高速缓存准则的满足,诸如接收到指示写请求已经到达已满的高速缓存或计时器对于检查高速缓存的状态已期满的指示。该系统使用所存储的描述高速缓存中的数据的薄记信息来确定是否已满足高速缓存准则。该薄记信息可包括基于闪存的存储设备中的驻留在高速缓存中的各块的标识信息(例如,地址)、特定数据已经在高速缓存中存储了多久、应用是否仍旧在访问高速缓存的一部分,等等。
继续至框340,该系统标识接收到的请求被定向到的基于闪存的存储设备,其中该基于闪存的存储设备担当用于中间高速缓存中的数据的非易失性存储。在某些情况下,该系统可管理多个基于闪存的存储设备并为每一个设备分隔高速缓存。在这样的情况下,该系统可以同时或独立为每一高速缓存做出转储清除决策。每一个设备都可由操作系统或其他软件分配给该设备的驱动器字母、路径或其他标识信息来标识。
继续至框350,该系统将存储在中间高速缓存中的数据中的至少某一些写入所标识的基于闪存的存储设备。在存储数据后,该系统可以清除或不清除高速缓存。例如,如果该系统确定应用很有可能继续读或写数据,则将该数据保存在高速缓存中将允许更快地访问该数据,并且进一步优化对基于闪存的存储设备的写数量和频率。另一方面,如果其他数据竞争使用高速缓存,则该系统可清除高速缓存并允许其他数据使用高速缓存。对基于闪存的存储设备的数据写入在已经完成将数据存储到中间高速缓存的原始写操作之后进行。这导致应用写入与设备写入解耦,并允许系统减少写数量及所导致的设备上的损耗。对于频繁写入或临时数据,这可导致大大减少设备损耗并提高性能。在框350之后,这些步骤结束。
图4是示出一个实施例中的存储管理系统在高层次的操作组件的框图。实现存储管理系统的智能闪存驱动程序420位于闪存设备410和一个或多个应用430之间。闪存驱动程序420截取来自应用430的对闪存设备410进行读写的请求。闪存驱动程序420将写请求重定向至存储器中高速缓存440,并取决于在哪里最容易地获得所请求的数据来从闪存设备410或存储器中高速缓存440服务读请求。有时候,闪存驱动程序420通过将数据写入闪存设备410来转储清除存储的存储器中高速缓存440中的数据。通常,来自智能闪存驱动程序420的将数据写入闪存设备410的请求的数量将少于来自应用430的写入数据请求的数量。因此,智能闪存驱动程序420减少了闪存设备410上的负担和损耗。
在一些实施例中,存储管理系统结合用于基于闪存的存储设备的传统的损耗平均化技术来操作。经常的写入使用块重新映射来管理,块重新映射以平衡对每一块的写入的方式确定写入基于闪存的存储设备中的哪一块。该系统可应用相同的技术,但结合本文描述的存储器中高速缓存,这将最终仍旧执行对基于闪存的设备的较少写入,以使得总体效果是基于闪存的设备上的较低的平均损耗。类似地,该相同可以与其他高速缓存、损耗平均化或其他性能增强一起操作。
在一些实施例中,存储管理系统应用日志记录或类似技术来保证被写入高速缓存的数据可以在发生故障的情况下被恢复或被可靠地回退。将数据写入高速缓存和将数据从高速缓存转储清除到基于闪存的存储设备之间的窗口通常较小,但仍旧可能发生故障。在这种情况下,该系统可使用日志记录或其他技术来使文件系统处于已知状态且如果可能的话恢复数据,而不是丢失数据或使数据处于不一致状态。
在一些实施例中,存储管理系统使用批量转移来将数据从高速缓存转储清除到基于闪存的存储。换言之,即使应用在各单独写请求中写入若干连续块,该系统也能够使用在单个请求中复制连续块的批量转移来将被写入高速缓存的所有数据转移至基于闪存的存储设备。这可导致基于闪存的存储设备上的更好的数据组织以及更少的碎片。
从前面的描述中可以看出,可以理解,此处描述的存储管理系统的特定实施例只是为了说明,但是,在不偏离本发明的精神和范围的情况下,可以进行各种修改。因此,本发明只受所附权利要求限制。
图1
存储管理系统
基于闪存的存储设备  设备接口组件  数据高速缓存组件  高速缓存写组件
高速缓存读组件  高速缓存转储清除组件  应用接口组件  故障管理组件
图2
处理应用写请求
接收应用写请求
确定目标设备
基于闪存?
Y是
N否
标识中间高速缓存
将数据写入高速缓存
向应用返回写结果
在高速缓存中收集后续写入
完成
图3
转储清除高速缓存
接收多个应用写请求
标识高速缓存的数据
满足转储清除准则?
Y是
N否
标识基于闪存的存储
将高速缓存的数据写入存储
完成
图4
闪存设备  智能闪存驱动程序  应用
存储器中高速缓存

Claims (15)

1.一种计算机实现的处理来自软件应用的被定向至基于闪存的存储设备的写请求的方法,所述方法包括:
从所述应用接收(210)将数据写入所述基于闪存的存储设备的请求;
确定(220)接收到的请求被定向到的存储设备;
当确定(230)所述存储设备是基于闪存的时候,标识(240)用于收集应用请求写入所述存储设备的数据的存储器中高速缓存;
将与所述请求一起接收到的数据写入(250)所标识的存储器中高速缓存,而不将所述数据写入所述基于闪存的存储设备;
向做出请求的所述应用返回(260)指示对所述存储器中高速缓存的写操作的成功或失败的写结果;以及
在将来自第一写请求和至少一个附加写操作的数据发送到所述基于闪存的存储设备之前,在所述存储器中高速缓存中收集(270)所述附加写操作,
其中,前述步骤由至少一个处理器来执行。
2.如权利要求1所述的方法,其特征在于,接收所述请求包括响应于软件应用中的用户动作来接收所述请求,其中所述软件应用调用操作系统应用编程接口(API)来将数据存储在所述基于闪存的存储设备上。
3.如权利要求1所述的方法,其特征在于,接收所述请求包括接收与所述数据相关的信息,包括所述数据的预期访问频率的指示。
4.如权利要求1所述的方法,其特征在于,确定所述存储设备包括确定目标存储设备是否是基于闪存的以及是否将从写请求的存储器中高速缓存受益。
5.如权利要求1所述的方法,其特征在于,确定所述存储设备包括读取基本输入/输出系统(BIOS)或扩展固件接口(EFI)所提供的信息以确定所述设备的物理特性。
6.如权利要求1所述的方法,其特征在于,标识存储器中高速缓存包括确定所述高速缓存尚不存在并且分配存储器中高速缓存以处理当前和后续数据写入请求。
7.如权利要求1所述的方法,其特征在于,标识存储器中高速缓存包括标识随机存取存储器(RAM)中的区域,所述系统能够在不招致立即将数据写入所述基于闪存的存储设备的损耗或其他惩罚的情况下向所述区域写入所述数据。
8.如权利要求1所述的方法,其特征在于,所述高速缓存在将所述数据从所述高速缓存转储清除到所述基于闪存的存储设备之前收集多个写请求并服务任何接收到的读请求。
9.如权利要求1所述的方法,其特征在于,将所述数据写入所述高速缓存包括更新指示与所述基于闪存的存储相关联的哪些数据当前被保存在所述高速缓存中的元数据。
10.如权利要求1所述的方法,其特征在于,还包括将所述数据从所述存储器中高速缓存转储清除到所述基于闪存的存储设备,或者确定由于所述数据已被删除,因此写入所述数据是不必要的。
11.如权利要求1所述的方法,其特征在于,将数据写入所述高速缓存并且稍后转储清除所述数据组合对基于闪存的存储器的特定块的多个写请求,由此避免所述基于闪存的设备上的过多损耗并提高设备性能。
12.如权利要求1所述的方法,其特征在于,返回写结果包括由于所述存储器中高速缓存的较低等待时间而用比将所述数据直接写入所述基于闪存的存储更少的时间向所述应用提供所述结果。
13.一种用于增强基于闪存的存储的寿命和性能的计算机系统,所述系统包括:
基于闪存的存储设备(110),所述基于闪存的存储设备包括至少一些基于闪存的非易失性存储器;
设备接口组件(120),所述设备接口组件提供所述系统的其他组件和所述基于闪存的存储设备之间的接口;
数据高速缓存组件(130),所述数据高速缓存组件提供应用请求写入所述基于闪存的存储设备的数据的存储器中高速缓存;
高速缓存写组件(140),所述高速缓存写组件接收将数据写入所述基于闪存的存储设备的请求并改为将所述数据写入所述数据高速缓存组件;
高速缓存读组件(150),所述高速缓存读组件接收从所述基于闪存的存储设备读取数据的请求,并且确定在不访问所述基于闪存的存储设备的情况下是否可以从所述数据高速缓存组件获取所请求的数据;
高速缓存转储清除组件(160),所述高速缓存转储清除组件在与写入数据的应用请求解耦的时刻将存储在所述数据高速缓存组件中的数据复制到所述基于闪存的存储设备(110);
应用接口组件(170),所述应用接口组件提供所述系统的其他组件和请求对所述基于闪存的存储设备进行读写的一个或多个应用之间的接口。
14.如权利要求13所述的系统,其特征在于,所述数据高速缓存组件提供中间位置,在所述中间位置中能够保存应用请求存储的数据,而不招致将所述数据写入基于闪存的存储的惩罚,并且同时所述系统通过减少对所述基于闪存的存储的写入/擦除的数量来减少这些惩罚。
15.如权利要求13所述的系统,其特征在于,所述高速缓存写组件确定所述基于闪存的存储设备的特定块是否已被存储在所述高速缓存中,并且在数据结构中存储指示所述设备的特定块的新数据在所述高速缓存中可用的信息。
CN201310111604.9A 2012-04-02 2013-04-01 增强基于闪存的存储的寿命和性能 Active CN103197899B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/437,006 US8918581B2 (en) 2012-04-02 2012-04-02 Enhancing the lifetime and performance of flash-based storage
US13/437,006 2012-04-02

Publications (2)

Publication Number Publication Date
CN103197899A true CN103197899A (zh) 2013-07-10
CN103197899B CN103197899B (zh) 2017-04-26

Family

ID=48614104

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310111604.9A Active CN103197899B (zh) 2012-04-02 2013-04-01 增强基于闪存的存储的寿命和性能

Country Status (3)

Country Link
US (1) US8918581B2 (zh)
CN (1) CN103197899B (zh)
WO (1) WO2013151948A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294202A (zh) * 2015-06-12 2017-01-04 联想(北京)有限公司 一种数据存储方法和装置
CN107622023A (zh) * 2016-07-13 2018-01-23 希捷科技有限公司 限制数据存储设备中的访问操作
CN107622022A (zh) * 2016-07-13 2018-01-23 希捷科技有限公司 数据存储设备中的高速缓存超量配置
CN108885589A (zh) * 2015-12-22 2018-11-23 华睿泰科技有限责任公司 用于cdm工作负载的闪存友好型高速缓存的方法
CN110837479A (zh) * 2018-08-17 2020-02-25 华为技术有限公司 数据处理方法、相关设备及计算机存储介质
CN112074905A (zh) * 2018-05-03 2020-12-11 微软技术许可有限责任公司 使用余热增加闪存保留时间
CN113435109A (zh) * 2021-06-04 2021-09-24 衢州学院 一种混合ssd的性能与寿命的优化方法
US20220156166A1 (en) * 2017-07-27 2022-05-19 International Business Machines Corporation Using a track format code in a cache control block for a track in a cache to process read and write requests to the track in the cache

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819208B2 (en) 2010-03-05 2014-08-26 Solidfire, Inc. Data deletion in a distributed data storage system
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US9542324B1 (en) * 2012-04-05 2017-01-10 Seagate Technology Llc File associated pinning
US20130290601A1 (en) * 2012-04-26 2013-10-31 Lsi Corporation Linux i/o scheduler for solid-state drives
US9195598B2 (en) * 2012-06-08 2015-11-24 International Business Machines Corporation Synchronous and asynchronous discard scans based on the type of cache memory
US9336150B2 (en) * 2012-06-08 2016-05-10 International Business Machines Corporation Performing asynchronous discard scans with staging and destaging operations
US9354764B2 (en) 2012-06-29 2016-05-31 Dell Products L.P. Playback of flash content at a client by redirecting execution of a script by a flash redirection plugin at a server to a flash redirection browser at the client
US9626450B2 (en) * 2012-06-29 2017-04-18 Dell Products L.P. Flash redirection with browser calls caching
US9208099B2 (en) 2012-08-08 2015-12-08 International Business Machines Corporation Adjustment of the number of task control blocks allocated for discard scans
US9754648B2 (en) 2012-10-26 2017-09-05 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
US9176892B2 (en) 2013-01-22 2015-11-03 International Business Machines Corporation Performing staging or destaging based on the number of waiting discard scans
US9734097B2 (en) 2013-03-15 2017-08-15 Micron Technology, Inc. Apparatuses and methods for variable latency memory operations
GB2514571A (en) * 2013-05-29 2014-12-03 Ibm Cache allocation in a computerized system
US9563565B2 (en) * 2013-08-14 2017-02-07 Micron Technology, Inc. Apparatuses and methods for providing data from a buffer
US9727493B2 (en) 2013-08-14 2017-08-08 Micron Technology, Inc. Apparatuses and methods for providing data to a configurable storage area
US10225352B2 (en) * 2013-12-20 2019-03-05 Sony Corporation Work sessions
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US20160077945A1 (en) * 2014-09-11 2016-03-17 Netapp, Inc. Storage system statistical data storage and analysis
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
CN104572491B (zh) 2014-12-30 2017-10-17 华为技术有限公司 一种基于固态硬盘的读缓存管理方法及装置
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US10089233B2 (en) 2016-05-11 2018-10-02 Ge Aviation Systems, Llc Method of partitioning a set-associative cache in a computing platform
US10521126B2 (en) * 2016-08-11 2019-12-31 Tuxera, Inc. Systems and methods for writing back data to a storage device
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US10740015B2 (en) 2017-04-06 2020-08-11 Apple Inc. Optimized management of file system metadata within solid state storage devices (SSDs)
US10514865B2 (en) * 2018-04-24 2019-12-24 EMC IP Holding Company LLC Managing concurrent I/O operations
US20200104384A1 (en) * 2018-10-02 2020-04-02 Nutanix, Inc. Systems and methods for continuous trim commands for memory systems

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0392895A2 (en) * 1989-04-13 1990-10-17 Sundisk Corporation Flash EEprom system
WO2009031727A1 (en) * 2007-09-05 2009-03-12 Samsung Electronics Co., Ltd. Cache management method and cache device using sector set
CN101583930A (zh) * 2006-12-14 2009-11-18 微软公司 用于数据安全性的非易失性盘高速缓存
US20100306448A1 (en) * 2009-05-27 2010-12-02 Richard Chen Cache auto-flush in a solid state memory device

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026027A (en) 1994-01-31 2000-02-15 Norand Corporation Flash memory system having memory cache
US7752391B2 (en) * 2006-01-20 2010-07-06 Apple Inc. Variable caching policy system and method
US8566505B2 (en) 2008-04-15 2013-10-22 SMART Storage Systems, Inc. Flash management using sequential techniques
US20100017556A1 (en) 2008-07-19 2010-01-21 Nanostar Corporationm U.S.A. Non-volatile memory storage system with two-stage controller architecture
TWI473100B (zh) * 2008-09-05 2015-02-11 A Data Technology Co Ltd Flash memory system and its operation method
TWI405209B (zh) * 2009-04-01 2013-08-11 Phison Electronics Corp 資料管理方法及使用此方法的快閃儲存系統與控制器
US8219776B2 (en) 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US8176367B2 (en) 2009-05-28 2012-05-08 Agere Systems Inc. Systems and methods for managing end of life in a solid state drive
US8239617B1 (en) * 2010-02-12 2012-08-07 Emc Corporation Enterprise data storage system using multi-level cell flash memory
US8725951B2 (en) 2010-04-12 2014-05-13 Sandisk Enterprise Ip Llc Efficient flash memory-based object store
JP5535128B2 (ja) * 2010-12-16 2014-07-02 株式会社東芝 メモリシステム
US8935484B2 (en) * 2011-03-31 2015-01-13 Hewlett-Packard Development Company, L.P. Write-absorbing buffer for non-volatile memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0392895A2 (en) * 1989-04-13 1990-10-17 Sundisk Corporation Flash EEprom system
CN101583930A (zh) * 2006-12-14 2009-11-18 微软公司 用于数据安全性的非易失性盘高速缓存
WO2009031727A1 (en) * 2007-09-05 2009-03-12 Samsung Electronics Co., Ltd. Cache management method and cache device using sector set
US20100306448A1 (en) * 2009-05-27 2010-12-02 Richard Chen Cache auto-flush in a solid state memory device

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294202A (zh) * 2015-06-12 2017-01-04 联想(北京)有限公司 一种数据存储方法和装置
CN108885589A (zh) * 2015-12-22 2018-11-23 华睿泰科技有限责任公司 用于cdm工作负载的闪存友好型高速缓存的方法
CN108885589B (zh) * 2015-12-22 2022-10-04 华睿泰科技有限责任公司 用于cdm工作负载的闪存友好型高速缓存的方法
CN107622023A (zh) * 2016-07-13 2018-01-23 希捷科技有限公司 限制数据存储设备中的访问操作
CN107622022A (zh) * 2016-07-13 2018-01-23 希捷科技有限公司 数据存储设备中的高速缓存超量配置
US20220156166A1 (en) * 2017-07-27 2022-05-19 International Business Machines Corporation Using a track format code in a cache control block for a track in a cache to process read and write requests to the track in the cache
US11704209B2 (en) * 2017-07-27 2023-07-18 International Business Machines Corporation Using a track format code in a cache control block for a track in a cache to process read and write requests to the track in the cache
CN112074905A (zh) * 2018-05-03 2020-12-11 微软技术许可有限责任公司 使用余热增加闪存保留时间
CN110837479A (zh) * 2018-08-17 2020-02-25 华为技术有限公司 数据处理方法、相关设备及计算机存储介质
CN110837479B (zh) * 2018-08-17 2023-09-01 华为云计算技术有限公司 数据处理方法、相关设备及计算机存储介质
CN113435109A (zh) * 2021-06-04 2021-09-24 衢州学院 一种混合ssd的性能与寿命的优化方法
CN113435109B (zh) * 2021-06-04 2024-01-30 衢州学院 一种混合ssd的性能与寿命的优化方法

Also Published As

Publication number Publication date
US20130262746A1 (en) 2013-10-03
WO2013151948A1 (en) 2013-10-10
CN103197899B (zh) 2017-04-26
US8918581B2 (en) 2014-12-23

Similar Documents

Publication Publication Date Title
CN103197899A (zh) 增强基于闪存的存储的寿命和性能
EP3118745B1 (en) A heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device
CN102782683B (zh) 用于数据库服务器的缓冲池扩展
CN103597444A (zh) 按照使用来管理基于闪存的存储上的数据放置
CN106548789B (zh) 用于操作叠瓦式磁记录设备的方法和装置
US10176190B2 (en) Data integrity and loss resistance in high performance and high capacity storage deduplication
US8719501B2 (en) Apparatus, system, and method for caching data on a solid-state storage device
CN101627373B (zh) 通过预擦除机制的存储器设备性能增强
US20150039837A1 (en) System and method for tiered caching and storage allocation
US20110320733A1 (en) Cache management and acceleration of storage media
US20090193182A1 (en) Information storage device and control method thereof
US20130024599A1 (en) Method and Apparatus for SSD Storage Access
US10140031B2 (en) Hierarchical flash translation layer structure and method for designing the same
CN107025070B (zh) 版本化存储设备和方法
CN104572478A (zh) 数据存取方法和数据存取装置
CN103095686B (zh) 热点元数据访问控制方法和服务器
CN111796765B (zh) 优化数据存储系统性能的方法
US9959046B2 (en) Multi-streaming mechanism to optimize journal based data storage systems on SSD
CN112799595B (zh) 数据处理方法、设备及存储介质
CN112051970A (zh) 混合驱动器的脏数据管理
US11204869B2 (en) System and method for facilitating data storage with low-latency input/output and persistent data
CN111752479A (zh) 有效存储数据的方法和系统
US20230273751A1 (en) Resiliency and performance for cluster memory
US20230297257A1 (en) Resiliency and performance for cluster memory
CN102160038A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1185170

Country of ref document: HK

ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150722

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

Effective date of registration: 20150722

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1185170

Country of ref document: HK