CN106354425B - 基于数据属性的数据布局的方法和系统 - Google Patents

基于数据属性的数据布局的方法和系统 Download PDF

Info

Publication number
CN106354425B
CN106354425B CN201610548879.2A CN201610548879A CN106354425B CN 106354425 B CN106354425 B CN 106354425B CN 201610548879 A CN201610548879 A CN 201610548879A CN 106354425 B CN106354425 B CN 106354425B
Authority
CN
China
Prior art keywords
data
workflow
volatile memory
data attribute
executing application
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.)
Active
Application number
CN201610548879.2A
Other languages
English (en)
Other versions
CN106354425A (zh
Inventor
崔昌皓
霍囝囝
曾世贤
普拉文·克里希纳穆尔蒂
禤庆钧
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN106354425A publication Critical patent/CN106354425A/zh
Application granted granted Critical
Publication of CN106354425B publication Critical patent/CN106354425B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0688Non-volatile semiconductor memory arrays
    • 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/0689Disk arrays, e.g. RAID, JBOD
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

一种基于数据属性的数据布局的方法和系统。用于由非易失性存储器装置的存储控制器执行的非易失性存储器装置内的基于数据属性的数据布局的方法包括:在计算装置上执行软件组件,软件组件检测执行的应用和连接到计算装置的硬件装置中的至少一个;响应于检测到至少一个执行的应用和硬件装置,通过软件组件搜索工作流储存库以找到与所述至少一个执行的应用和硬件装置相关联的预定工作流;通过软件组件将所述至少一个执行的应用和硬件装置的活动与所述预定工作流进行比较;使用预定工作流将数据属性指示符自动分配给由执行的应用或硬件装置使用的数据项,使得数据项和分配的数据属性指示符经由通道被发送到非易失性存储器装置以进行存储。

Description

基于数据属性的数据布局的方法和系统
该申请要求于2015年7月13日提交的第62/192,045号临时专利申请、2015年10月22日提交的第62/245,100号临时专利申请及2016年5月2日提交的第15/144,588号专利申请的权益,所述三个专利申请通过引用包含于此。
技术领域
本公开涉及一种在存储装置中基于数据属性的数据布局的方法和系统,更具体地,涉及需要一种使得计算装置能够使用基于数据属性的数据布局(例如,多流)固态驱动器的自主处理的方法和系统。
背景技术
基于闪存的固态驱动器(SSD)已被广泛用于消费计算机和企业服务器两者中。存在被称为NAND和NOR逻辑门的两种主要类型的闪存。NAND类型闪存可在块中被写入和读取,每个块包括多个页。
由于SSD中的NAND闪速存储单元具有非常独特的属性,因此,SSD的正常使用效率非常低。例如,虽然可一次随意对页进行读取或编程,但是NAND闪存一次仅可擦除一个块。为了对单个NAND闪存页进行重写,必需首先擦除整个擦除块(包含多个闪存页)。
由于基于NAND闪存的存储装置(例如,SSD)不允许就地更新,因此当可用空闲块计数达到特定阈值时执行垃圾回收操作以便为随后的写入准备空间。垃圾回收包括从目标擦除块读取有效数据及将有效数据写入另一块,而无效数据不被传送到新的块。需要花费相当大量时间擦除NAND擦除块,每个擦除块具有有限数量的擦除循环(从大约3千次至1万次)。因此,垃圾回收开销是技术中最大的速度限制之一,导致较高的数据I/O延迟和较低的I/O性能。
因此,同样地对待热/冷数据并且将它们存储在一起的操作系统(OS)和应用随着时间性能将降低(相比于不同地对待热数据和冷数据的OS和应用),并且随着需要更多的擦除循环SSD寿命将更短,导致NAND单元磨损更快。
SSD供应商和存储技术委员会提出被称为“多流”的新的SSD和标准,“多流”允许主机将数据按照被称为流的保存类分组在一起。每个流被SSD独立地保存。流中的数据理论上可因任何原因被分组在一起,一个这样的原因是为了将相似寿命的数据存储在一起以便减少垃圾回收事件的目的。
然而,为了使用这种新的接口,需要在应用(包括源代码)和OS内做出许多改变。随着典型计算机可安装和运行几十或几百个软件应用,使所有应用(尤其是延迟和非开源应用)适应这些改变以便更有效地使用SSD是非常困难的。此外,多流SSD具有有限适用性,这是因为这种多流SSD仅在被操作系统和知道如何使用其的应用使用时兼容。
在存储装置中需要改进的基于数据属性的数据布局,更具体地,涉及需要一种使得计算装置能够使用基于数据属性的数据布局(例如,多流)固态驱动器的自主处理。
发明内容
示例实施例提供用于由非易失性存储器装置的存储控制器执行的非易失性存储器装置内的基于数据属性的数据布局的方法和系统。在一个方面,实施例包括:在计算装置上执行软件组件,所述软件组件检测执行的应用和连接到计算装置的硬件装置中的至少一个;响应于检测到至少一个执行的应用和硬件装置,通过所述软件组件搜索工作流储存库以找到与所述至少一个执行的应用和硬件装置相关联的预定工作流,其中,所述预定工作流将预定义的数据属性指示符与通过执行的应用或硬件装置写入到非易失性存储器装置的不同类型的数据项相关联;通过所述软件组件将所述至少一个执行的应用和硬件装置的活动与所述预定工作流进行比较;使用所述预定工作流将数据属性指示符自动分配给由执行的应用或硬件装置使用的数据项,使得数据项和分配的数据属性指示符经由通道被发送到非易失性存储器装置以进行存储,其中,非易失性存储器装置读取数据属性指示符并识别非易失性存储器装置的哪些块用来存储相应数据项,使得具有相同数据属性指示符的数据项被存储在同一块中。
示例实施例还包括一种系统,包括:非易失性存储器装置;结合到非易失性存储器装置的计算装置。计算装置执行软件组件,所述软件组件用作用于使计算装置能够使用非易失性存储器装置内的基于数据属性的数据布局的接口。所述软件组件被配置为:检测执行的应用和连接到计算装置的硬件装置中的至少一个;响应于检测到至少一个执行的应用和硬件装置,搜索工作流储存库以找到与所述至少一个执行的应用和硬件装置相关联的预定工作流,其中,所述预定工作流将预定义的数据属性指示符与通过执行的应用或硬件装置写入到非易失性存储器装置的不同类型的数据项相关联;将所述至少一个执行的应用和硬件装置的活动与所述预定工作流进行比较;使用所述预定工作流将数据属性指示符自动分配给由执行的应用或硬件装置使用的数据项,使得数据项和分配的数据属性指示符经由通道被发送到非易失性存储器装置以进行存储,其中,非易失性存储器装置读取数据属性指示符并识别非易失性存储器装置的哪些块用来存储相应数据项,使得具有相同数据属性指示符的数据项被存储在同一块中。
示例实施例还包括一种非易失性存储器装置,包括:存储器阵列;结合到存储器阵列和存储器通道的存储控制器。存储控制器被配置为:经由存储器通道从操作系统和执行的应用中的至少一个接收将被存储的第一系列数据项,其中,第一系列数据项中的每个数据项包括基于指示数据相似性的一个或更多个数据属性与数据项相关联的第一数据属性指示符,一个或更多个数据属性包括数据寿命、数据类型和物理数据源;经由存储器通道从硬件装置控制器接收将被存储的第二系列数据项,其中,第二系列数据项中的每个数据项包括基于指示数据相似性的一个或更多个数据属性与第二系列数据项相关联的第二数据属性指示符,一个或更多个数据属性包括数据寿命、数据类型和物理数据源;读取数据属性指示符并识别非易失性存储器装置的哪些块用来存储相应的第一系列数据项和第二系列数据项,使得具有相同数据属性指示符的数据项被存储在同一块中;将数据项存储到识别的块。
示例实施例还包括一种用于由非易失性存储器装置的存储控制器执行的非易失性存储器装置内的基于数据属性的数据布局的方法。所述方法包括:经由存储器通道从操作系统和执行的应用中的至少一个接收将被存储的第一系列数据项,其中,第一系列数据项中的每个数据项包括基于指示数据相似性的一个或更多个数据属性与数据项相关联的第一数据属性指示符,一个或更多个数据属性包括数据寿命、数据类型、数据大小、逻辑块地址(LBA)范围、LBA访问模式和物理数据源;经由存储器通道从硬件装置控制器接收将被存储的第二系列数据项,其中,第二系列数据项中的每个数据项包括基于指示数据相似性的一个或更多个数据属性与第二系列数据项相关联的第二数据属性指示符,一个或更多个数据属性包括数据寿命、数据类型、数据大小、逻辑块地址(LBA)范围、LBA访问模式和物理数据源;读取数据属性指示符并识别非易失性存储器装置的哪些块用来存储相应的第一系列数据项和第二系列数据项,使得具有相同数据属性指示符的数据项被存储在同一块中;将数据项存储到识别的块。
示例实施例还可包括一种由非易失性存储器装置的存储控制器执行的非易失性存储器装置内的基于数据属性的数据布局的方法。在一个方面,实施例可包括在计算机上执行软件组件;由软件组件询问工作流储存库以找到与软件组件相关联的预定工作流,其中,所述预定工作流将预定义的数据属性指示符与将被写入到非易失性存储器装置的不同类型的数据项相关联;在软件组件的操作期间,将对与由软件组件使用的数据项相关联的一个或更多个数据属性指示符的请求发送到所述预定工作流;响应于软件组件从所述预定工作流接收到一个或更多个数据属性指示符,将数据属性指示符自动分配到由软件组件使用的数据项并将数据项和分配的数据属性指示符发送到非易失性存储器装置以进行存储,其中,非易失性存储器装置读取数据属性指示符并识别非易失性存储器装置的哪些块用来存储相应数据项,使得具有相同数据属性指示符的数据项被存储在同一块。
附图说明
从结合附图对实施例的以下描述,本总体发明构思的这些和/或其它特征和用途将变得清楚和更易理解:
图1是示出用于由工作流监视器接口提供的在非易失性存储器装置中的基于数据属性的数据布局的系统的示例实施例的框图;
图2是示出根据一个示例实施例的在用于提供用于使计算装置能够使用非易失性存储器装置内的基于数据属性的数据布局的工作流监视器接口的主机系统上执行的处理的流程图;
图3是示出在各种类型的计算装置中实现的示例实施例的工作流监视器接口,以使此计算装置与具有基于数据属性的数据布局的SSD兼容的示图。
图4是示出根据示例实施例的由非易失性存储器装置的存储控制器执行的基于数据属性的数据布局的处理的流程图;
图5是示出针对由存储具有不同寿命和不同属性的数据的数据库应用执行的存储操作的工作流监视器接口的操作的示例的框图;
图6是更详细地示出工作流监视器接口的框图;
图7是示出数据指示符分配方法的另一实施例的框图。
具体实施方式
现在,将详细参考本总体发明构思的实施例,实施例的示例在附图中被示出,其中,相同的参考标号始终表示相同的元件。以下通过参照附图来描述实施例以解释本总体发明构思。
通过参照以下的实施例和附图的详细描述,本发明的优点和特征以及实现本发明的方法可被更加容易理解。然而,本总体发明构思可以以许多不同的形式来实现,并且不应被解释为受限于在此阐述的实施例。相反,提供这些实施例使得本公开将是彻底和完整的,并且将总体发明构思的构思完整地传达给本领域的技术人员,并且本总体发明构思将仅由权利要求定义。在附图中,为了清楚,层和区域的厚度被夸大。
除非在此另有指示或者与上下文清楚地矛盾,否则在描述本发明的上下文中(尤其在权利要求的上下文中)的单数术语的使用将被解释为涵盖单数和复数。除非另有指示,否则术语“包括”、“具有”和“包含”将被解释为开放式术语(即,表示“包含,但不限于”)。
在此使用的术语“算法”或“模块”表示(但不限于)执行特定任务的软件或硬件组件,诸如,现场可编程门阵列(FPGA)或专用集成电路(ASIC)。算法或模块可方便地被配置为驻留在可寻址的存储器介质中,并且被配置为执行一个或多个处理器。因此,作为示例,算法和模块可包括:组件(诸如,软件组件、面向对象的软件组件、类组件和任务组件)、进程、功能、属性、程序、子程序、程序代码段、驱动器、固件、微代码、电路、数据、数据库、数据结构、表、阵列以及变量。针对组件以及组件或模块提供的功能可被组合在更少的组件或模块中,或者进一步地被分离到额外的组件以及组件或模块中。
除非另有定义,否则这里使用的所有技术和科学术语具有与本发明所属领域的普通技术人员通常理解的含义相同的含义。应注意,除非另外说明,否则这里提供的任何和全部示例或示例性术语的使用仅意在更好地阐明本发明,并且不意在限制本发明的范围。此外,除非另有定义,否则在常用词典中定义的所有术语将不被过度地解释。
在一个方面,示例实施例提供一种用于使计算装置(即使没有被编程为使用多流的应用和装置)能够使用非易失性存储器装置内的基于数据属性的数据布局(即,多流)的接口。具体地,示例实施例提供一种基于应用模型的流身份识别处理,所述处理监视计算装置的活动并使用执行应用的或连接的装置的工作流的知识来将预定数据属性指示符分配给保存到非易失性存储器装置的数据项。与多流一致,接收存储器装置可假设具有相同数据属性指示符的所有数据将在(大约)同时失效,并将这种数据置于通用擦除块中。
图1是示出用于由工作流监视器接口提供的在非易失性存储器装置中的基于数据属性的数据布局的系统的示例实施例的框图。这里描述的示例实施例可适用于需要垃圾回收的任何非易失性存储器装置,并将针对非易失性存储器装置包括固态驱动器(SSD)的实施例被解释。
系统包括经由通道14连接到SSD 12的主机系统10。如这里所使用的,通道表示将非易失性存储器(NVM)装置(例如,SSD)连接到计算机或使用SSD的任何其他硬件的任何物理接口。接口可包括有线接口(诸如SATA、SCSI、PCI、USB、iSCSI、FC和以太网)和无线接口(诸如Wi-Fi)。众所周知,SSD不具有移动部分来存储数据,并且不需要恒功率来保持该数据。主机系统10与该公开相关的组件包括执行来自包括操作系统(OS)20和文件系统21的存储器18的计算机指令的处理器16。主机系统10可包括诸如用于与通道14进行接口连接的存储器控制器的其他组件(未示出)。主机系统10和SSD 12经由通道14传送命令和数据项26。在一个实施例中,主机系统可以是运行任何类型的OS的典型的计算机或服务器。OS的示例类型包括单用户OS和多用户OS、分布式OS、模板化OS、嵌入式OS、实时OS和库。在另一实施例中,系统可以是单独的组件(诸如,装置控制器),在这种情况下,OS可包括轻量级OS(或轻量级OS的部分)或者甚至包括固件。
SSD 12包括用于存储来自主机系统10的数据的存储控制器22和非易失性存储器(NVM)阵列24。存储控制器22管理存储在NVM阵列24中的数据并根据通信协议通过通道14与主机系统通信。NVM阵列24可包括包含闪存、铁电RAM(F-RAM)、磁阻RAM(MRAM)、相变存储器(PCM)、千足虫存储器等的任何类型的非易失性随机存取存储器(NVRAM)。SSD 12和通道14可支持多通道存储器架构(诸如双通道架构)并还可支持单倍数据速率传输、双倍数据速率传输或四倍数据速率传输。
根据示例实施例,为了减少SSD 12中的垃圾回收开销,示例实施例提供一种在SSD中的改进的基于数据属性的数据布局。这通过提供使应用和硬件组件能够在SSD中分开存储具有不同寿命的数据项的工作流监视器接口26来实现。此外,工作流监视器接口26的使用不需要改变运行在主机系统10上的用户应用。
在一个实施例中,工作流监视器接口26包括由处理器16执行的至少一个软件组件,所述至少一个软件组件持续监视主机系统10的执行的应用和/或连接的硬件装置。工作流监视器接口26了解用于应用和连接的装置的预定工作流模式,并基于这些工作流模式将数据属性指示符(例如,流ID)分配给由应用和装置写入的数据项。
根据示例实施例的一方面,工作流监视器接口26可包括用作用于各种应用和装置的已知工作流的库的工作流储存库27。工作流储存库27中的每个工作流可与在工作流的不同阶段产生的具有给定属性指示符(例如,流ID)的一个或更多个流(即,一个或更多个单独的数据写入)相关联。在一个实施例中,工作流储存库27是与工作流监视器接口26分开的组件。然而,在可选择的实施例中,工作流储存库27可与工作流监视器接口26集成。在一个实施例中,可由OS 20的文件系统21中的软件挂钩(software hook)执行数据属性指示符30的实际分配。
图2是示出根据一个示例实施例的在用于提供用于使计算装置能够使用非易失性存储器装置内的基于数据属性的数据布局的工作流监视器接口的主机系统上执行的处理的流程图。所述处理可包括在计算装置上执行检测执行的应用和连接到计算装置的硬件装置中的至少一个的软件组件(例如,工作流监视器接口26)(框200)。在一个实施例中,检测执行的应用可包括检测处理和/或线程。硬件装置连接的示例可包括连接到主机系统10并与主机系统10通信的相机。
在一个实施例中,检测执行的应用和/或硬件装置可被统称为检测新的数据布局客户端,软件组件随后向新的数据布局客户端提供基于数据属性的数据布局(例如,多流能力),即使应用或硬件装置被设计为不具有这种兼容性。
响应于检测到执行的应用和/或硬件装置连接,软件组件搜索工作流储存库以查找与执行的应用和/或硬件装置相关联的预定工作流,其中,预定工作流将数据属性指示符与通过执行的应用和/硬件装置写入非易失性存储器装置的不同类型的数据项相关联(框202)。
在一个实施例中,工作流储存库可与工作流监视器接口26集成或实现为单独的组件。在一个实施例中,工作流储存库27可位于计算装置内,而在另一实施例中,工作流储存库可远离计算装置。在任何一种情况下,在一个实施例中,工作流监视器接口26可接收新的和更新的工作流以使工作流储存库容纳新的应用和硬件装置。
软件组件将执行的应用和/或硬件装置的活动与预定工作流进行比较(框204)。在一个实施例中,比较活动可包括检查由应用和/或硬件装置执行的一个或更多个当前处理或步骤,并将当前处理或步骤与预定工作流中的一系列类似处理或步骤进行匹配。如以上所描述的,工作流将在工作流的不同阶段期间的一系列处理或步骤期间执行的一个或更多个单独的数据写入与给定数据属性指示符相关联。
软件组件使用预定工作流将数据属性指示符自动地分配给由执行的应用和/硬件装置使用的数据项,从而数据项和分配的数据属性指示符被发送到非易失性存储器装置以进行存储(框206)。
根据一个实施例,工作流监视器接口26基于指示数据相似性的一个或更多个数据属性(诸如数据寿命、数据类型、数据大小及物理或或逻辑数据源)使用工作流储存库27将数据属性指示符30与每个数据项28相关联或者将数据属性指示符30分配给每个数据项28。以这种方式,具有相同或相似数据属性的数据项28被分配相同的数据属性指示符值。
由于在一个实施例中在操作系统级提供工作流监视器接口26,因此现有的应用无需改变以使这些应用与示例实施例的基于数据属性的数据布局处理兼容。因此,工作流监视器接口26可在具有处理器和操作系统的任何类型的计算装置中被实现以在应用和操作系统之外扩展传统多流的使用。
图3是示出在各种类型的计算装置300A至300D中实现的示例实施例的工作流监视器接口,以此使计算装置与具有基于数据属性的数据布局(例如,多流)的SSD 12兼容的示图。计算装置300A和300B可表示主机装置(诸如PC或服务器或存储子系统),其中,各个工作流监视器接口26A和26B被设置在操作系统20A和20B内或选择性地被提供为单独的应用。工作流监视器接口26A监视由应用304A执行的数据项操作,并基于工作流储存库中的匹配的工作流将数据属性指示符30A自动地分配给来自应用304A的每个数据项。类似地,工作流监视器接口26B监视由OS 20B的块层23B执行的数据项操作,并基于工作流储存库中的匹配的工作流将数据属性指示符30B自动地分配给由块层23B操作的每个数据项。
计算装置300C和300D可表示使用非易失性存储器装置的任何类型的硬件装置,包括相机、麦克风、温度计、GPS、时钟、传感器、开关、路由器、独立冗余磁盘阵列(RAID)系统或主机总线适配器(HBA)系统。对于特定类型的硬件装置,工作流监视器接口26C可被设置在硬件装置控制器306C内。工作流监视器接口26C基于已知工作流将数据属性指示符30C自动地分配给来自装置控制器306C的数据项操作(例如,写入)。对于其他类型的装置300D(诸如相机),工作流监视器接口26D可被实现为OS的一部分,或者在处理器上作为单独的应用运行。工作流监视器接口26D监视由处理器306D执行的数据项操作,并基于工作流储存库中的已知工作流或匹配的工作流将数据属性指示符30D自动地分配给来自处理器306D的每个数据项。
图4是示出根据示例实施例的由非易失性存储器装置的存储控制器执行的基于数据属性的数据布局的处理的流程图。参照图3和图4两者,处理可包括经由通道从操作系统和执行的应用(例如,OS 20B或应用304A)中的至少一个接收将被存储的第一系列数据项,其中,每个数据项包括基于指示数据相似性的一个或更多个数据属性(可包括诸如数据寿命、数据类型、数据大小、逻辑块地址(LBA)范围、LBA访问模式和物理数据源)与数据项相关联的第一数据属性指示符(框400)。应注意,针对访问相似性,许多类型的数据属性(诸如数据寿命、数据类型、数据大小、逻辑块地址(LBA)范围、LBA访问模式和物理数据源)可被考虑,包括这里没有列出的数据属性或者当前未知的数据属性。
在一个实施例中,数据类型可包括原始应用之外的属性。在一个实施例中,从操作系统或应用接收的数据项可包括通过工作流监视器接口26之外的另一处理与数据项相关联的数据属性指示符。
存储控制器通过通道从硬件装置(例如,控制器306C或处理器306D)接收将被存储的另一系列数据项,其中,每个数据项包括基于指示数据相似性的数据属性中的一个或更多个数据属性与数据项相关联的第二数据属性指示符(框402)。
存储控制器读取数据属性指示符并识别存储器装置的哪些块用来存储相应的数据项,从而具有相同数据属性指示符的数据项被存储在同一组块中(框404),并将数据项存储在识别的块中(框406)。
例如,针对图3,SSD 12的存储控制器22分别从计算装置300A和300B接收已被分配数据属性ID 30A和30B的数据项。存储控制器22随后将与数据属性ID 30A相关联的数据项存储在相同擦除块308A内,并将与数据属性ID 30B相关联的数据项存储在相同擦除块308B内。类似地,SSD 12的存储控制器22分别从计算装置300C和300D的装置控制器306C和306D接收已被分配数据属性ID 30C和30D的数据项。存储控制器22随后将与数据属性ID30C相关联的数据项存储在相同擦除块30C内,并将与数据属性ID 30D相关联的数据项存储在相同擦除块308D内。注意,在一个实施例中,如果数据指示符指示源之间的数据实际上类似,则擦除块308C和308D不需要是互不包含的一组块。
根据一些示例实施例的工作流监视器接口26,数据属性ID 30可被分配给从任何类型的输入装置输出的数据项28以进行存储。例如,假设工作流监视器接口26被实现在周期性地(例如,一秒一次)拍照的数字安全相机内。工作流监视器接口26可基于指示数据相似性的数据属性(诸如,图像的捕捉速率、图像文件大小和图像的来源(诸如装置ID和/或GPS位置))将数据属性ID 30分配给每个图像文件。注意,这样的数据属性不需要如传统多流使用的元数据那样与特定应用或文件系统相关联。
作为另一示例,图5是示出针对由存储具有不同寿命和不同属性的数据的数据库应用执行的存储操作的工作流监视器接口26的操作的示例的框图。在一个实施例中,数据库可指RocksDBTM,RocksDBTM是一种用于快速存储的可嵌入永久关键值(key-value)存储。RocksDB是用于IO限制的工作量的被优化为使用许多CPU核并有效使用快速存储的LevelDBTM的分支。在操作中,具有一组分类的关键值对的数据文件(例如,SST文件)被顺序地写入第一级文件。在写入操作期间,代替修改文件,改变被收集在存储器中一段时间,随后被写为具有改变的第二级文件。对于更多的改变,可添加另一级。
当工作流监视器接口26检测到RocksDB已被启动时,工作流监视器接口26可检索并使用与RocksDB应用相关联的RocksDB工作流27’,以将独特的数据属性指示符分配给由RocksDB操纵的数据。RocksDB工作流27’可包括树工作流,诸如LSM树工作流。RocksDB是LSM树工作流的一个示例实现方式,LSM树工作流的其他示例实现方式可包括BigTable、ApacheHBase、LevelDB、WiredTiger、Apache Cassandra、Riak、SQLite4和Cockroachdb。
在主机系统的存储器18中示出数据库500、工作流监视器接口26和RocksDB工作流27’。数据库500使用存储在存储器18中的存储表502。在SSD 12内,数据库500使用按照不同级(例如,级0、级1……级m)存储的预写日志504和各种SST文件506(例如,SST文件1、SST文件2……SST文件n)。
当数据库500执行写入操作510时,数据库将数据存储在存储表502中的结构中,并还将写入附加到预写日志504。预写日志504接收即使在停电时也永久存在的每个写入。工作流监视器接口26监视写入操作510并可基于RocksDB工作流27’将数据属性指示符#1分配给日志文件。
存储表502存储写入,直到存储表502的内容达到可配置的阈值为止,在可配置的阈值处,清理(flush)操作512被执行,以将写入清理到SSD 12中的SST文件506。在存储表502中的相应数据被清理到SST文件506之后,预写日志504中的数据可被清除。在存储表502被清理之后,SST文件506通常不被再次写入。工作流监视器接口26监视清理操作512并可基于RocksDB工作流27’将数据属性指示符#2分配给级0SST文件506。
随着插入/更新发生,代替对行进行重写,数据库500可将插入或更新的数据的新的时间戳写入另一SST文件506中。数据库500使用压缩来管理SSD12上的SST文件506的累积。一旦存储在级0的数据达到数据阈值,数据库500通过移除在更新期间产生的删除的数据、列和行,并将有效数据从级0SST文件合并到按照级1存储新的SST文件,执行压缩操作以压缩数据库文件。数据库500使用新的合并的SST文件代替多个旧SST文件,使读取请求相比于压缩之前能够被更有效地完成。任何使用文件的即将进行的读取一结束,旧SST文件就被删除。工作流监视器接口26监视压缩操作514并可基于RocksDB工作流27’将数据属性指示符#3分配给级1SST文件506。
一旦按照级1存储的数据达到数据阈值,数据库500就执行移除未使用的数据并将有效数据从级1SST文件合并到按照级2存储的新的SST文件的压缩操作516。工作流监视器接口26监视压缩操作516并可基于RocksDB工作流27’将数据属性指示符#4分配给级2SST文件506等。该示例示出根据本发明,针对单个类型的文件,一个应用可具有多个流。
根据示例实施例,基于预期寿命分组将数据属性指示符分配给数据(在这种情况下,分配给SST级),可基于这些预期寿命将数据存储在SSD中。不知道数据将在什么时候失效或被删除,但是工作流监视器接口26假设具有相同数据属性指示符的数据将同时或基本上同时失效。
图6是更详细地示出作为指示符分配方法的一个示例的工作流监视器接口的框图。类似于图1和图3,示出在主机系统10的操作系统20级提供工作流监视器接口26。工作流监视器接口26监视应用300、文件系统21和块层23、装置驱动器以及连接的装置的操作,并基于相应的工作流27’将数据属性指示符30分配给数据项。SSD 12读取数据属性指示符30并识别使用SSD12的哪些块来存储相应数据项,使得具有相同数据属性指示符30的数据项被存储在同一块。
根据一些实例实施例,工作流监视器接口26可持续在后台运行以监视应用300和连接的装置302的启动。在一个实施例中,工作流监视器接口26可将数据项修改的数据库(未示出)保持到SSD 12。工作流监视器接口26可监视由应用/装置执行的文件更新操作并根据工作流27’将数据属性ID 30分配给每个文件更新操作。
工作流监视器接口26可包括以下组件,所述组件在文件系统级使用系统调用挂钩以监视由应用300、OS 20和/或连接的装置302对文件做出的文件更新操作(创建/写入/更新/删除)。大多数操作系统(诸如Windows和Linux)提供用于系统编程目的的文件系统挂钩。工作流监视器接口26可在工作流27’中查看文件更新操作(或一系列这样的操作)以找到分配给该操作的预定数据属性ID。
工作流监视器接口26随后可将预定数据属性指示符30分配给更新操作。在一个实施例中,工作流27’可根据文件的类型或数据的任何其他特征分配文件创建或新的文件写入数据属性ID 30。最终,工作流监视器接口26可将实际文件写入转送到下面的文件系统21。
作为数据属性ID分配的示例,进行以下假设:用户正在编辑照片应用以编辑名称为foo.jpg(JPEG文件类型)的照片文件;用户的计算机的SSD被配置为处理多达四个数据属性ID或流ID。当用户将照片保存到SSD 12上时,工作流监视器接口26监视并查看与照片应用相关联的工作流27’中的文件保存请求。工作流27’指定四个数据属性ID中的哪个(例如,1)应被分配到保存请求。
工作流监视器接口26分配如工作流中指定的数据属性ID 1,该数据属性ID随后与文件数据一起通过文件系统21和块层23被发送到SSD 12,以存储在存储具有分配的数据属性ID 1的其他数据的块中。
在可选择的实施例中,工作流监视器接口26和工作流储存库27可被实现在块层和装置驱动器23内或甚至在SSD 12内。
图7是示出数据指示符分配方法的另一实施例的框图。代替提供分配数据属性指示符的单独的工作流监视器接口26(参照图6),本实施例使执行的软件组件(诸如应用300)、操作系统20的各层(例如,文件系统21、块层25和装置驱动器29)和嵌入在连接的装置302中的软件可直接访问存储已知工作流和数据布局设置的工作流储存库27。工作流储存库31可存储将预定义的数据属性指示符与在由软件组件执行的活动/功能期间写入到非易失性存储器装置的不同类型的数据项相关联的一个或更多个预定工作流33。
各种软件组件自己可询问工作流储存库31并获得关于使用什么数据属性ID 30的信息。因此,例如,软件组件可:1)向工作流储存库31识别自己,2)获得用于各种功能的数据属性ID 30,3)将数据属性ID 30分配给数据项。
相比于监视现有组件操作并自动应用数据属性ID的工作流监视器实施例,本实施例依赖使用工作流储存库31的请求/响应机制,使得已经存在的组件可添加多流能力。工作流监视器实施例需要对现有软件组件非常少的重新编程,但是在创建和运行工作流监视器接口中需要做出附加工作。本实施例需要对现有软件组件的少量的重新编程,但是无需创建、运行和维持工作流监视器。
在本实施例的更详细的细节中,软件组件可询问工作流储存库31自身以找到与软件组件相关联的预定工作流33。在一个实施例中,询问可包括软件组件的识别。来自工作流储存库31的响应可包括分配给软件组件的工作流33的身份。
在操作期间,软件组件可将对一个或更多个数据属性指示符的一个或更多个请求发送给识别的工作流33以与由软件组件使用的数据项相关联。在一个实施例中,请求可包括将由软件组件执行的当前操作和将被执行的当前操作的一个或更多个属性(例如,数据类型)。在一个实施例中,软件组件可使用软件组件的指示符(例如,名称或某种形式的ID)向工作流储存库31做出识别软件组件的询问,之后做出对与来自识别的工作流33的软件组件相关联的数据属性指示符的第二询问。在另一实施例中,软件组件可做出包括软件组件的身份以及对数据属性指示符的请求的单个询问。
不是如应用那样使用名称或ID询问工作流储存库31,在软件组件包括操作系统(OS)的实施例中,操作系统的每级可将与相应操作系统级相关的输入提供到工作流储存库31,以便获得一个或更多个数据属性指示符。例如,在文件系统级,当对数据属性指示符进行询问时,OS可使用文件类型、大小等。在块级,OS可使用LBA范围等。在另一实施例中,OS可使用附连的装置的装置ID以从工作流储存库31获得数据属性指示符。
响应于来自软件组件的询问,工作流33将针对操作和数据项的类型在工作流33中指定的一个或更多个数据属性ID返回到软件组件。
响应于从工作流33接收到数据属性ID,软件组件可将数据属性ID自动分配给由软件组件使用的数据项,并将数据项和分配的数据属性指示符发送到非易失性存储器装置(例如,SSD 12),以进行存储。
SSD 12读取数据属性ID 30并识别使用SSD 12的哪些块存储相应的数据项,使得具有相同数据属性ID 30的数据项被存储在同一块中。
作为数据属性ID分配的示例,进行以下假设:用户正在编辑照片应用以编辑名称为foo.jpg(JPEG文件类型)的照片文件;用户的计算机的SSD被配置为处理多达四个数据属性ID或流ID。当用户将照片保存到SSD 12上时,照片应用可将对分配给文件保存操作的数据属性ID的请求发送到与照片应用相关联的工作流27’。工作流27’指定四个数据属性ID中的哪个(例如,1)应被分配到保存操作。
照片应用分配如工作流中指定的数据属性ID 1,该数据属性ID随后与文件数据一起通过文件系统21和块层23被发送到SSD 12,以存储在存储具有分配的数据属性ID 1的其他数据的块中。
在一个实施例中,工作流储存库31可被实现为数据库应用。
在一个实施例中,工作流监视器接口26被实现为软件组件。在另一实施例中,工作流监视器接口26可被实现为硬件和软件的组合。虽然工作流监视器接口26被示出为单个组件,但是可使用更多数量的模块/组件来实现工作流指示器接口26的功能。
示例实施例的工作流监视器接口26可被应用于从客户到企业的宽范围的存储市场,这可应用于针对单个独立的机器(诸如,台式电脑、笔记本电脑、工作站、服务器等)的磁盘、存储器阵列、软件定义的存储器(SDS)、专用存储器、虚拟机器(VM)、虚拟桌面架构(VDI)、内容分发网络(CDN)等。
在一个实施例中,例如,SSD 12的NVM阵列24可由多个非易失性存储器芯片(即,多个闪存存储器)来形成。如另一示例,NVM阵列24可由不同类型的非易失性存储器芯片(例如,PRAM、FRAM、MRAM等)代替闪存存储器芯片来形成。可选地,NVM阵列24可由易失性存储器(即,DRAM或SRAM)来形成,并且可具有混合两种或多种类型的存储器的混合类型。
已经公开了一种在存储装置中基于数据属性的数据布局的方法和系统,以及用于使计算机系统能够使用所述数据布局方法的工作流监视器接口。已经根据示出的实施例描述了本发明,可对实施例进行改变,任何改变将在本发明的精神和范围内。例如,可使用硬件、软件、包含程序指令的计算机可读介质或它们的组合来实现示例性实施例。根据本发明编写的软件将被存储在一些形式的计算机可读介质(诸如,存储器、硬盘)或CD/DVD-ROM中,并且将被处理器执行。因此,在不脱离权利要求的精神和范围的情况下,本领域的普通技术人员可进行许多修改。

Claims (21)

1.一种用于提供用于使计算装置能够使用非易失性存储器装置内的基于数据属性的数据布局的接口的方法,所述方法包括:
在计算装置上执行软件组件,所述软件组件检测执行的应用和连接到计算装置的硬件装置中的至少一个;
响应于检测到所述执行的应用和硬件装置中的至少一个,通过所述软件组件搜索工作流储存库以找到与所述执行的应用和硬件装置中的至少一个相关联的预定工作流,其中,所述预定工作流将预定义的数据属性指示符与通过执行的应用或硬件装置写入到非易失性存储器装置的不同类型的数据项相关联,所述预定工作流包括由所述执行的应用和硬件装置中的至少一个执行的处理的已知模式和步骤的已知模式中的至少一个,处理的已知模式包括不同的处理,步骤的已知模式包括不同的步骤,不同的处理和不同的步骤包括多个数据项更新操作;
通过所述软件组件将所述执行的应用和硬件装置中至少一个的活动与所述预定工作流进行比较,其中,所述比较的步骤的包括:检查由所述执行的应用和硬件装置中的至少一个执行的一个或更多个当前处理或步骤,并将当前处理或步骤与所述预定工作流中的处理和步骤的已知模式中的至少一部分进行匹配;
基于指示数据相似性的一个或更多个数据属性,使用所述预定工作流将数据属性指示符自动分配给由所述执行的应用或硬件装置使用的数据项,使得数据项和分配的数据属性指示符经由通道被发送到非易失性存储器装置以进行存储,其中,非易失性存储器装置读取数据属性指示符并识别非易失性存储器装置的哪些块用来存储相应数据项,使得具有相同数据属性指示符的数据项被存储在同一块中。
2.如权利要求1所述的方法,其中,硬件装置包括以下项中的至少一项:相机、麦克风、温度计、GPS、时钟、传感器、开关、路由器、独立磁盘冗余阵列(RAID)系统和主机总线适配器(HBA)系统。
3.如权利要求1所述的方法,其中,检测执行的应用和连接到计算装置的硬件装置中的至少一个的步骤包括:检测新的数据布局客户端,即使所述执行的应用和硬件装置中的至少一个没有被设计为具有基于数据属性的数据布局能力,所述软件组件随后也向新的数据布局客户端提供基于数据属性的数据布局。
4.如权利要求1所述的方法,其中,所述软件组件包括用于使计算装置能够使用非易失性存储器装置的基于数据属性的数据布局的工作流监视器接口,
其中,具有相同数据属性指示符的数据项被存储在同一擦除块中,
其中,具有相同数据属性指示符的数据项将同时失效。
5.如权利要求4所述的方法,还包括:工作流监视器接口,接收新的工作流和更新的工作流,以使工作流储存库容纳新的应用和硬件装置。
6.一种提供用于使计算装置能够使用非易失性存储器装置内的基于数据属性的数据布局的接口的系统,包括:
非易失性存储器装置;
计算装置,结合到非易失性存储器装置,计算装置执行软件组件,所述软件组件用作用于使计算装置能够使用非易失性存储器装置内的基于数据属性的数据布局的接口,所述软件组件被配置为:
检测执行的应用和连接到计算装置的硬件装置中的至少一个;
响应于检测到所述执行的应用和硬件装置中的至少一个,搜索工作流储存库以找到与所述执行的应用和硬件装置中的至少一个相关联的预定工作流,其中,所述预定工作流将预定义的数据属性指示符与通过执行的应用或硬件装置写入到非易失性存储器装置的不同类型的数据项相关联,所述预定工作流包括由所述执行的应用和硬件装置中的至少一个执行的处理的已知模式和步骤的已知模式中的至少一个,处理的已知模式包括不同的处理,步骤的已知模式包括不同的步骤,不同的处理和不同的步骤包括多个数据项更新操作;
将所述执行的应用和硬件装置中的至少一个的活动与所述预定工作流进行比较,其中,所述比较的步骤的包括:检查由所述执行的应用和硬件装置中的至少一个执行的一个或更多个当前处理或步骤,并将当前处理或步骤与所述预定工作流中的处理和步骤的已知模式中的至少一部分进行匹配;
基于指示数据相似性的一个或更多个数据属性,使用所述预定工作流将数据属性指示符自动分配给由执行的应用或所述硬件装置使用的数据项,使得数据项和分配的数据属性指示符经由通道被发送到非易失性存储器装置以进行存储,其中,非易失性存储器装置读取数据属性指示符并识别非易失性存储器装置的哪些块用来存储相应数据项,使得具有相同数据属性指示符的数据项被存储在同一块中。
7.如权利要求6所述的系统,其中,硬件装置包括以下项中的至少一项:相机、麦克风、温度计、GPS、时钟、传感器、开关、路由器、独立磁盘冗余阵列(RAID)系统和主机总线适配器(HBA)系统。
8.如权利要求6所述的系统,其中,检测执行的应用和连接到计算装置的硬件装置中的至少一个的步骤包括:检测新的数据布局客户端,即使所述执行的应用和硬件装置中的至少一个没有被设计为具有基于数据属性的数据布局能力,软件组件随后也向新的数据布局客户端提供基于数据属性的数据布局。
9.如权利要求6所述的系统,其中,软件组件包括用于使计算装置能够使用非易失性存储器装置的基于数据属性的数据布局的工作流监视器接口,
其中,具有相同数据属性指示符的数据项被存储在同一擦除块中,
其中,具有相同数据属性指示符的数据项将同时失效。
10.如权利要求9所述的系统,其中,工作流监视器接口接收新的工作流和更新的工作流,以使工作流储存库容纳新的应用和硬件装置。
11.一种非易失性存储器装置,包括:
存储器阵列;
存储控制器,结合到存储器阵列和通道,存储控制器被配置为:
经由存储器通道从操作系统和执行的应用中的至少一个接收将被存储的第一系列数据项,其中,第一系列数据项中的每个数据项包括基于指示数据相似性的一个或更多个数据属性与第一系列数据项相关联的第一数据属性指示符,其中,数据相似性基于执行的应用的第一预定工作流,所述第一预定工作流包括由执行的应用执行的处理的第一已知模式和步骤的第一已知模式中的至少一个,处理的第一已知模式包括不同的处理,步骤的第一已知模式包括不同的步骤,不同的处理和不同的步骤包括多个数据项更新操作;
经由存储器通道从硬件装置控制器接收将被存储的第二系列数据项,其中,第二系列数据项中的每个数据项包括基于指示数据相似性的一个或更多个数据属性的与第二系列数据项相关联的第二数据属性指示符,其中,数据相似性基于硬件装置的第二预定工作流,所述第二预定工作流包括由硬件装置执行的处理的第二已知模式和步骤的第二已知模式中的至少一个;
读取第一数据属性指示符和第二数据属性指示符并识别非易失性存储器装置的哪些块用来存储相应的第一系列数据项和第二系列数据项,使得具有相同数据属性指示符的数据项被存储在同一块中;
将数据项存储到被识别的块。
12.如权利要求11所述的非易失性存储器装置,其中,硬件装置包括以下项中的至少一项:相机、麦克风、温度计、GPS、时钟、传感器、开关、路由器、独立磁盘冗余阵列(RAID)系统和主机总线适配器(HBA)系统。
13.如权利要求11所述的非易失性存储器装置,其中,所述操作系统和执行的应用中的至少一个或硬件装置控制器是计算装置的部分。
14.如权利要求11所述的非易失性存储器装置,其中,计算装置包括用于使计算装置能够使用非易失性存储器装置的基于数据属性的数据布局的工作流监视器接口,
其中,具有相同数据属性指示符的数据项被存储在同一擦除块中,
其中,具有相同数据属性指示符的数据项将同时失效。
15.如权利要求14所述的非易失性存储器装置,其中,工作流监视器接口在计算装置中以操作系统级运行并被配置为:
检测执行的应用和连接到计算装置的硬件装置控制器中的至少一个;
响应于检测到所述执行的应用和硬件装置控制器中的至少一个,搜索工作流储存库以找到与所述执行的应用和硬件装置控制器中的至少一个相关联的预定工作流,其中,所述预定工作流包括第一预定工作流和第二预定工作流中的至少一个,其中,所述预定工作流将预定义的数据属性指示符与通过执行的应用或硬件装置控制器写入到非易失性存储器装置的不同类型的数据项相关联;
将所述执行的应用和硬件装置控制器中的至少一个的活动与所述预定工作流进行比较;
使用所述预定工作流将数据属性指示符自动分配给由执行的应用或硬件装置控制器使用的数据项,使得数据项和分配的数据属性指示符经由通道被发送到非易失性存储器装置以进行存储。
16.一种用于由非易失性存储器装置的存储控制器执行的非易失性存储器装置内的基于数据属性的数据布局的方法,所述方法包括:
经由存储器通道从操作系统和执行的应用中的至少一个接收将被存储的第一系列数据项,其中,第一系列数据项中的每个数据项包括基于指示数据相似性的一个或更多个数据属性的与第一系列数据项相关联的第一数据属性指示符,其中,数据相似性基于执行的应用的第一预定工作流,所述第一预定工作流包括由执行的应用执行的处理的第一已知模式和步骤的第一已知模式中的至少一个,处理的第一已知模式包括不同的处理,步骤的第一已知模式包括不同的步骤,不同的处理和不同的步骤包括多个数据项更新操作;
经由存储器通道从硬件装置控制器接收将被存储的第二系列数据项,其中,第二系列数据项中的每个数据项包括基于指示数据相似性的一个或更多个数据属性的与第二系列数据项相关联的第二数据属性指示符,其中,数据相似性基于硬件装置的第二预定工作流,所述第二预定工作流包括由硬件装置执行的处理的第二已知模式和步骤的第二已知模式中的至少一个;
读取第一数据属性指示符和第二数据属性指示符并识别非易失性存储器装置的哪些块用来存储相应的第一系列数据项和第二系列数据项,使得具有相同数据属性指示符的数据项被存储在同一块中;
将数据项存储到识别的块中。
17.如权利要求16所述的方法,其中,硬件装置包括以下项中的至少一项:相机、麦克风、温度计、GPS、时钟、传感器、开关、路由器、独立磁盘冗余阵列(RAID)系统和主机总线适配器(HBA)系统。
18.如权利要求16所述的方法,其中,所述操作系统和执行的应用中的至少一个或硬件装置控制器是计算装置的部分。
19.如权利要求16所述的方法,其中,计算装置包括用于使计算装置能够使用非易失性存储器装置的基于数据属性的数据布局的工作流监视器接口,
其中,具有相同数据属性指示符的数据项被存储在同一擦除块中,其中,具有相同数据属性指示符的数据项将同时失效。
20.如权利要求19所述的方法,其中,工作流监视器接口在计算装置中以操作系统级运行并被配置为:
检测执行的应用和连接到计算装置的硬件装置控制器中的至少一个;
响应于检测到执行的应用和硬件装置控制器中的至少一个,搜索工作流储存库以找到与所述执行的应用和硬件装置控制器中的至少一个相关联的预定工作流,其中,所述预定工作流包括第一预定工作流和第二预定工作流中的至少一个,其中,所述预定工作流将预定义的数据属性指示符与通过执行的应用或硬件装置控制器写入到非易失性存储器装置的不同类型的数据项相关联;
将所述执行的应用和硬件装置控制器中的至少一个的活动与所述预定工作流进行比较;
使用所述预定工作流将数据属性指示符自动分配给由执行的应用或硬件装置控制器使用的数据项,使得数据项和分配的数据属性指示符经由通道被发送到非易失性存储器装置以进行存储。
21.一种用于提供用于使计算装置能够使用非易失性存储器装置内的基于数据属性的数据布局的接口的方法,所述方法包括:
在计算装置上执行软件组件;
通过软件组件询问工作流储存库以找到与软件组件相关联的预定工作流,其中,所述预定工作流将预定义的数据属性指示符与将被写入到非易失性存储器装置的不同类型的数据项相关联,所述预定工作流包括由软件组件执行的处理的已知模式和步骤的已知模式中的至少一个,处理的已知模式包括不同的处理,步骤的已知模式包括不同的步骤,不同的处理和不同的步骤包括多个数据项更新操作;
在软件组件的操作期间,将对与由软件组件使用的数据项相关联的一个或更多个数据属性指示符的请求发送到工作流储存库;
检查由软件组件执行的一个或更多个当前处理或步骤,并将当前处理或步骤与所述预定工作流中的处理和步骤的已知模式中的至少一部分进行匹配;
响应于软件组件从所述预定工作流接收到一个或更多个数据属性指示符,基于指示数据相似性的所述一个或更多个数据属性将数据属性指示符自动分配到由软件组件使用的数据项并将数据项和分配的数据属性指示符发送到非易失性存储器装置以进行存储,其中,非易失性存储器装置读取数据属性指示符并识别非易失性存储器装置的哪些块用来存储相应数据项,使得具有相同数据属性指示符的数据项被存储在同一块。
CN201610548879.2A 2015-07-13 2016-07-13 基于数据属性的数据布局的方法和系统 Active CN106354425B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201562192045P 2015-07-13 2015-07-13
US62/192,045 2015-07-13
US201562245100P 2015-10-22 2015-10-22
US62/245,100 2015-10-22
US15/144,588 2016-05-02
US15/144,588 US11461010B2 (en) 2015-07-13 2016-05-02 Data property-based data placement in a nonvolatile memory device

Publications (2)

Publication Number Publication Date
CN106354425A CN106354425A (zh) 2017-01-25
CN106354425B true CN106354425B (zh) 2021-06-29

Family

ID=57775001

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610548879.2A Active CN106354425B (zh) 2015-07-13 2016-07-13 基于数据属性的数据布局的方法和系统

Country Status (5)

Country Link
US (1) US11461010B2 (zh)
JP (1) JP6971542B2 (zh)
KR (1) KR102541458B1 (zh)
CN (1) CN106354425B (zh)
TW (1) TWI710949B (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6403164B2 (ja) * 2015-09-11 2018-10-10 東芝メモリ株式会社 メモリシステム
US9898202B2 (en) 2015-11-30 2018-02-20 Samsung Electronics Co., Ltd. Enhanced multi-streaming though statistical analysis
US9880780B2 (en) * 2015-11-30 2018-01-30 Samsung Electronics Co., Ltd. Enhanced multi-stream operations
US20170220295A1 (en) * 2016-02-02 2017-08-03 Intel Corporation Technologies for reducing duplication of stored data
CN106250064B (zh) * 2016-08-19 2020-05-12 深圳大普微电子科技有限公司 固态硬盘控制装置和基于学习的固态硬盘数据存取方法
US10482111B2 (en) * 2016-12-12 2019-11-19 Vmware, Inc. Custom property cluster definition for a graphic user interface
US10706105B2 (en) 2017-02-09 2020-07-07 Micron Technology, Inc. Merge tree garbage metrics
US10706106B2 (en) 2017-02-09 2020-07-07 Micron Technology, Inc. Merge tree modifications for maintenance operations
US10719495B2 (en) * 2017-02-09 2020-07-21 Micron Technology, Inc. Stream selection for multi-stream storage devices
US10725988B2 (en) 2017-02-09 2020-07-28 Micron Technology, Inc. KVS tree
US10756953B1 (en) * 2017-03-31 2020-08-25 Veritas Technologies Llc Method and system of seamlessly reconfiguring a data center after a failure
US10387160B2 (en) 2017-04-01 2019-08-20 Intel Corporation Shared local memory tiling mechanism
KR102398181B1 (ko) 2017-07-03 2022-05-17 삼성전자주식회사 쓰기 데이터를 위해 할당될 물리 어드레스를 미리 관리하는 스토리지 장치
WO2019038859A1 (ja) * 2017-08-23 2019-02-28 株式会社日立製作所 不揮発メモリデバイスを有するストレージシステム
KR102482035B1 (ko) 2017-11-30 2022-12-28 에스케이하이닉스 주식회사 메모리 컨트롤러, 메모리 시스템 및 그 동작 방법
CN109947592B (zh) * 2017-12-20 2022-11-18 腾讯科技(深圳)有限公司 一种数据同步方法、装置以及相关设备
US10878859B2 (en) 2017-12-20 2020-12-29 Micron Technology, Inc. Utilizing write stream attributes in storage write commands
US11803325B2 (en) 2018-03-27 2023-10-31 Micron Technology, Inc. Specifying media type in write commands
US11100071B2 (en) 2018-10-10 2021-08-24 Micron Technology, Inc. Key-value store tree data block spill with compaction
US10915546B2 (en) 2018-10-10 2021-02-09 Micron Technology, Inc. Counter-based compaction of key-value store tree data block
US11182101B2 (en) * 2018-12-03 2021-11-23 Western Digital Technologies, Inc. Storage system and method for stream management in a multi-host virtualized storage system
US10852978B2 (en) 2018-12-14 2020-12-01 Micron Technology, Inc. Key-value store using journaling with selective data storage format
US11048755B2 (en) 2018-12-14 2021-06-29 Micron Technology, Inc. Key-value store tree with selective use of key portion
US10936661B2 (en) 2018-12-26 2021-03-02 Micron Technology, Inc. Data tree with order-based node traversal
KR20200123898A (ko) 2019-04-22 2020-11-02 삼성전자주식회사 상이한 동작 모드들에서 동작하는 뱅크들을 포함하는 불휘발성 메모리 장치, 메모리 컨트롤러의 동작 방법, 및 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 저장 장치
US11194516B2 (en) * 2019-10-08 2021-12-07 Micron Technology, Inc. Media type selection
KR102264119B1 (ko) * 2019-11-13 2021-06-11 인하대학교 산학협력단 CaseDB: 엣지컴퓨팅을 위한 저비용 Put-Intensive 키-벨류 저장장치
CN113051241B (zh) * 2019-12-27 2023-08-15 中国移动通信集团湖南有限公司 数据库持久化的方法、装置及设备
CN115004167A (zh) * 2020-03-09 2022-09-02 深圳市欢太科技有限公司 数据处理方法及相关产品
KR102345517B1 (ko) * 2020-05-06 2021-12-30 인하대학교 산학협력단 엣지 컴퓨팅을 위해 데이터중복제거 기술이 적용된 casedb(키 벨류 저장장치)
US11366602B2 (en) 2020-06-23 2022-06-21 Western Digital Technologies, Inc. Data storage device with burn-after-read mode
US11954345B2 (en) * 2021-12-03 2024-04-09 Samsung Electronics Co., Ltd. Two-level indexing for key-value persistent storage device
US11694722B1 (en) 2022-02-15 2023-07-04 Western Digital Technologies, Inc. Data timestamp and read counter for magnetic recording devices

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1229721A2 (en) * 2001-01-31 2002-08-07 Fuji Photo Film Co., Ltd. Information displaying method and menu service method and system
CN101237511A (zh) * 2007-02-01 2008-08-06 夏普株式会社 图像历史保管方法和图像历史保管系统
CN101646995A (zh) * 2007-03-26 2010-02-10 国际商业机器公司 用于存储管理器的数据流过滤器和插件
CN101663654A (zh) * 2007-04-23 2010-03-03 微软公司 用于连接到主机的存储设备的优化的提示模型和用于存储设备的写优化方案
WO2013084414A1 (ja) * 2011-12-08 2013-06-13 パナソニック株式会社 デジタル標本作製装置、デジタル標本作製方法およびデジタル標本作製サーバ
CN103597444A (zh) * 2011-06-09 2014-02-19 微软公司 按照使用来管理基于闪存的存储上的数据放置
CN103677654A (zh) * 2012-09-24 2014-03-26 联想(北京)有限公司 一种存储数据的方法及电子设备
CN103703450A (zh) * 2011-07-20 2014-04-02 华为技术有限公司 Ssd存储访问的方法和装置
CN103777905A (zh) * 2014-02-14 2014-05-07 华中科技大学 一种软件定义的固态盘融合存储方法
CN104159021A (zh) * 2013-05-13 2014-11-19 索尼公司 成像设备、成像方法和程序

Family Cites Families (195)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5381856A (en) 1976-12-24 1978-07-19 Toyoda Mach Works Ltd Fluid bearing equipment
GB2089165B (en) * 1980-10-30 1985-10-09 Canon Kk Character and image processing
US4827411A (en) * 1987-06-15 1989-05-02 International Business Machines Corporation Method of maintaining a topology database
JP2600376B2 (ja) 1989-05-18 1997-04-16 日本電気株式会社 メモリ制御装置
US6607081B2 (en) * 1996-11-15 2003-08-19 Diebold, Incorporated Automated transaction machine system
JPH10162098A (ja) * 1996-12-02 1998-06-19 Nec Corp 文書電子化装置及び文書電子化方法
US6282663B1 (en) * 1997-01-22 2001-08-28 Intel Corporation Method and apparatus for performing power management by suppressing the speculative execution of instructions within a pipelined microprocessor
US5930497A (en) 1997-12-11 1999-07-27 International Business Machines Corporation Method and means for generation of realistic access patterns in storage subsystem benchmarking and other tests
JP4197547B2 (ja) 1998-05-13 2008-12-17 株式会社東芝 データ記憶装置およびデータ管理方法
KR100296049B1 (ko) * 1999-03-19 2001-07-28 윤종용 단문메시지서비스를 통한 디지털 휴대용 단말기의 사용자 정보 송수신장치 및 그 방법
US6591338B1 (en) 1999-05-03 2003-07-08 3Ware, Inc. Methods and systems for mirrored disk arrays
US6438555B1 (en) * 1999-11-02 2002-08-20 Nortel Networks Limited Method and apparatus for accessing an ordered array structure
US7103357B2 (en) * 1999-11-05 2006-09-05 Lightsurf Technologies, Inc. Media spooler system and methodology providing efficient transmission of media content from wireless devices
WO2002019655A2 (en) * 2000-08-31 2002-03-07 Ontrack Data International, Inc. System and method for data management
US6704467B2 (en) * 2000-12-21 2004-03-09 Canon Kabushiki Kaisha Image editing with block selection
US7346519B2 (en) * 2001-04-10 2008-03-18 Metropolitan Regional Information Systems, Inc Method and system for MRIS platinum database
US7240347B1 (en) 2001-10-02 2007-07-03 Juniper Networks, Inc. Systems and methods for preserving the order of data
US7173929B1 (en) 2001-12-10 2007-02-06 Incipient, Inc. Fast path for performing data operations
US7266843B2 (en) * 2001-12-26 2007-09-04 Mcafee, Inc. Malware scanning to create clean storage locations
US6996676B2 (en) 2002-11-14 2006-02-07 International Business Machines Corporation System and method for implementing an adaptive replacement cache policy
JP4308555B2 (ja) * 2003-03-10 2009-08-05 パナソニック株式会社 受信装置および情報閲覧方法
US20070050777A1 (en) * 2003-06-09 2007-03-01 Hutchinson Thomas W Duration of alerts and scanning of large data stores
US9342662B2 (en) * 2003-09-16 2016-05-17 Media Rights Technologies, Inc. Method and system for controlling video media
US7346613B2 (en) * 2004-01-26 2008-03-18 Microsoft Corporation System and method for a unified and blended search
US8171479B2 (en) 2004-09-30 2012-05-01 Citrix Systems, Inc. Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers
US7328317B2 (en) 2004-10-21 2008-02-05 International Business Machines Corporation Memory controller and method for optimized read/modify/write performance
US7574409B2 (en) 2004-11-04 2009-08-11 Vericept Corporation Method, apparatus, and system for clustering and classification
JP2006235960A (ja) 2005-02-24 2006-09-07 Fujitsu Ltd ガーベッジコレクション高速化方法
JP2006309348A (ja) * 2005-04-26 2006-11-09 Sharp Corp 送信装置、受信装置、送信方法、受信方法、送信プログラム、受信プログラムおよびコンピュータ読み取り可能な記録媒体
JP4815887B2 (ja) 2005-06-17 2011-11-16 日産自動車株式会社 情報処理装置及び情報処理用表示装置
US7660264B1 (en) 2005-12-19 2010-02-09 Chelsio Communications, Inc. Method for traffic schedulign in intelligent network interface circuitry
US7844445B2 (en) * 2005-10-12 2010-11-30 Storage Appliance Corporation Automatic connection to an online service provider from a backup system
AU2006304933B2 (en) * 2005-10-21 2011-07-21 The Nielsen Company (Us), Llc Methods and apparatus for metering portable media players
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
JP4686358B2 (ja) 2005-12-26 2011-05-25 ジヤトコ株式会社 フラッシュメモリを備えた制御装置
US7930508B2 (en) 2006-03-07 2011-04-19 Apple Inc. File systems for data processing systems
US7870128B2 (en) 2006-07-28 2011-01-11 Diskeeper Corporation Assigning data for storage based on speed with which data may be retrieved
US7774392B2 (en) 2006-09-15 2010-08-10 Sandisk Corporation Non-volatile memory with management of a pool of update memory blocks based on each block's activity and data order
US8112813B1 (en) * 2006-09-29 2012-02-07 Amazon Technologies, Inc. Interactive image-based document for secured data access
JP4390795B2 (ja) 2006-10-25 2009-12-24 パイオニア株式会社 ナビゲーションシステム
US8560760B2 (en) 2007-01-31 2013-10-15 Microsoft Corporation Extending flash drive lifespan
US20080250190A1 (en) * 2007-04-03 2008-10-09 Brian Johnson Portable memory device operating system and method of using same
KR101433859B1 (ko) 2007-10-12 2014-08-27 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 파일 데이터 관리 방법
IL187037A0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Fast update for hierarchical integrity schemes
US8706950B2 (en) 2008-03-01 2014-04-22 Kabushiki Kaisha Toshiba Memory system
JP5268447B2 (ja) * 2008-06-26 2013-08-21 キヤノン株式会社 医療用撮影装置
JP5473267B2 (ja) 2008-07-14 2014-04-16 キヤノン株式会社 ワークフロー実行システム及びワークフロー実行方法
US8140485B2 (en) * 2008-07-31 2012-03-20 International Business Machines Corporation Data recovery using a minimum number of recovery streams
KR101038167B1 (ko) 2008-09-09 2011-05-31 가부시끼가이샤 도시바 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법
US20100146538A1 (en) * 2008-12-09 2010-06-10 Electronics And Telecommunications Research Institute Method and apparatus for transmitting/receiving broadcasting program id
US8312217B2 (en) 2008-12-30 2012-11-13 Rasilient Systems, Inc. Methods and systems for storing data blocks of multi-streams and multi-user applications
US8627039B2 (en) * 2009-04-10 2014-01-07 International Business Machines Corporation Effective memory clustering to minimize page fault and optimize memory utilization
US8837287B2 (en) 2009-04-14 2014-09-16 Alcatel Lucent Application-specific management of high-bandwidth transfers
US20100288828A1 (en) * 2009-05-14 2010-11-18 Aisaku Pradhan Accessible user interface for electronic devices
JP2011186562A (ja) 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置及び方法
WO2011007599A1 (ja) 2009-07-17 2011-01-20 株式会社 東芝 メモリ管理装置
US8838877B2 (en) 2009-09-16 2014-09-16 Apple Inc. File system derived metadata for management of non-volatile memory
US8296496B2 (en) 2009-09-17 2012-10-23 Hewlett-Packard Development Company, L.P. Main memory with non-volatile memory and DRAM
WO2011044154A1 (en) 2009-10-05 2011-04-14 Marvell Semiconductor, Inc. Data caching in non-volatile memory
US20110106780A1 (en) * 2009-11-05 2011-05-05 European Space Agency Method and apparatus for accessing data in a data store
TW201117605A (en) * 2009-11-13 2011-05-16 Primax Electronics Ltd Image capture device
US9021185B2 (en) 2009-11-23 2015-04-28 Amir Ban Memory controller and methods for enhancing write performance of a flash device
US8495250B2 (en) * 2009-12-16 2013-07-23 International Business Machines Corporation Asynchronous file operations in a scalable multi-node file system cache for a remote cluster file system
US8452932B2 (en) * 2010-01-06 2013-05-28 Storsimple, Inc. System and method for efficiently creating off-site data volume back-ups
US8880784B2 (en) 2010-01-19 2014-11-04 Rether Networks Inc. Random write optimization techniques for flash disks
JP2011175615A (ja) 2010-01-27 2011-09-08 Toshiba Corp ホスト装置およびメモリデバイス
US8830300B2 (en) * 2010-03-11 2014-09-09 Dolby Laboratories Licensing Corporation Multiscalar stereo video format conversion
JP2011209973A (ja) 2010-03-30 2011-10-20 Hitachi Ltd ディスクアレイ構成プログラム、計算機、計算機システム
US8812436B2 (en) * 2010-05-04 2014-08-19 Symantec Corporation Schedule based data lifecycle management
US9563397B1 (en) 2010-05-05 2017-02-07 Western Digital Technologies, Inc. Disk drive using non-volatile cache when garbage collecting log structured writes
JP5593254B2 (ja) 2010-05-12 2014-09-17 パナソニック株式会社 半導体メモリ装置及び半導体メモリシステム
US8615703B2 (en) 2010-06-04 2013-12-24 Micron Technology, Inc. Advanced bitwise operations and apparatus in a multi-level system with nonvolatile memory
JP2012019383A (ja) * 2010-07-08 2012-01-26 Panasonic Corp 記録制御装置、半導体記録装置および記録システム
JP2012020544A (ja) 2010-07-16 2012-02-02 Sekisui Chem Co Ltd 射出発泡成形品
US20130138915A1 (en) 2010-08-11 2013-05-30 Nec Corporation Data processing system, data processing method, and program
US20120042134A1 (en) * 2010-08-11 2012-02-16 Hank Risan Method and system for circumventing usage protection applicable to electronic media
US20120047330A1 (en) 2010-08-18 2012-02-23 Nec Laboratories America, Inc. I/o efficiency of persistent caches in a storage system
US8601216B2 (en) 2010-08-31 2013-12-03 Oracle International Corporation Method and system for removing cache blocks
JP2012084127A (ja) 2010-09-15 2012-04-26 Toshiba Corp 半導体装置
US8341350B2 (en) 2010-09-21 2012-12-25 Lsi Corporation Analyzing sub-LUN granularity for dynamic storage tiering
WO2012051600A2 (en) * 2010-10-15 2012-04-19 Kyquang Son File system-aware solid-state storage management system
WO2012063813A1 (ja) 2010-11-08 2012-05-18 シャープ株式会社 移動通信システム、移動局装置、基地局装置、sgsn、ggsn、mme、mbms gw及び移動通信方法
JP5679773B2 (ja) 2010-11-08 2015-03-04 シャープ株式会社 移動通信システム、移動局装置、基地局装置、mme、mbms gw及び移動通信方法
US8356153B2 (en) 2010-11-19 2013-01-15 International Business Machines Corporation Adaptive wear leveling via monitoring the properties of memory reference stream
WO2012069862A1 (en) 2010-11-24 2012-05-31 Sony Ericsson Mobile Communications Ab Dynamically configurable embedded flash memory for electronic devices
US8868618B2 (en) * 2010-12-14 2014-10-21 Microsoft Corporation Usage-optimized tables
US20120158827A1 (en) * 2010-12-21 2012-06-21 Verizon Patent And Licensing Inc. Active server system monitor
EP2672389B1 (en) 2011-01-31 2019-02-27 Mitsubishi Electric Corporation Memory controller
JP2012170751A (ja) 2011-02-23 2012-09-10 Olympus Medical Systems Corp 画像表示装置、方法、及びプログラム、並びにカプセル型内視鏡システム
US9176864B2 (en) 2011-05-17 2015-11-03 SanDisk Technologies, Inc. Non-volatile memory and method having block management with hot/cold data sorting
US9015311B2 (en) 2011-05-24 2015-04-21 Citrix Systems, Inc. Systems and methods for analyzing network metrics
US8738882B2 (en) 2011-06-03 2014-05-27 Apple Inc. Pre-organization of data
US8983911B2 (en) 2011-06-20 2015-03-17 Microsoft Technology Licensing, Llc Storage media abstraction for uniform data storage
US20130013889A1 (en) 2011-07-06 2013-01-10 Jaikumar Devaraj Memory management unit using stream identifiers
KR101954215B1 (ko) * 2011-07-12 2019-06-07 삼성전자주식회사 비휘발성 저장 장치의 이용 방법 및 장치
US9288226B2 (en) * 2011-07-14 2016-03-15 AVG Netherlands B.V. Detection of rogue software applications
US8732831B2 (en) * 2011-07-14 2014-05-20 AVG Netherlands B.V. Detection of rogue software applications
US8892728B2 (en) 2011-07-21 2014-11-18 Hewlett-Packard Development Company, L.P. Automatic zone-based management of a data center
US20130024483A1 (en) * 2011-07-21 2013-01-24 Alcatel-Lucent Canada, Inc. Distribution of data within a database
EP2557497A1 (en) 2011-08-08 2013-02-13 Advanced Digital Broadcast S.A. Method for improving booting of a computing device
US20130050743A1 (en) * 2011-08-31 2013-02-28 Forrest Lane Steely System and Method of Print Job Retrieval from the Cloud
JP2013084176A (ja) * 2011-10-12 2013-05-09 Sony Corp 情報処理装置、情報処理方法およびコンピュータプログラム
WO2013063474A1 (en) * 2011-10-28 2013-05-02 Scargo, Inc. Security policy deployment and enforcement system for the detection and control of polymorphic and targeted malware
US20130111336A1 (en) * 2011-11-01 2013-05-02 Griffin Dorman Platform and application independent system and method for networked file access and editing
US10203881B2 (en) * 2011-12-19 2019-02-12 Apple Inc. Optimized execution of interleaved write operations in solid state drives
US8996450B1 (en) 2011-12-31 2015-03-31 Teradata Us, Inc. System and method for allocating resources in a mixed SSD and HDD storage environment
US20130183951A1 (en) * 2012-01-12 2013-07-18 Shih-Wei Chien Dynamic mobile application classification
US9201804B1 (en) 2012-02-06 2015-12-01 Google Inc. Dynamically adapting the configuration of a multi-queue cache based on access patterns
US20140074899A1 (en) 2012-02-28 2014-03-13 Ben Zion Halevy Methods and system for efficient lifecycle management of storage controller
JP5723812B2 (ja) 2012-03-16 2015-05-27 株式会社 日立産業制御ソリューションズ ファイルサーバ、データ入出力方法、i/oフックモジュールプログラム及びi/o代行デーモンプログラム
US8825724B2 (en) 2012-03-29 2014-09-02 Lsi Corporation File system hinting
US9575981B2 (en) * 2012-04-11 2017-02-21 Box, Inc. Cloud service enabled to handle a set of files depicted to a user as a single file in a native operating system
EP2831715A1 (en) 2012-04-26 2015-02-04 Hitachi, Ltd. Information storage system and method of controlling information storage system
US20130290601A1 (en) * 2012-04-26 2013-10-31 Lsi Corporation Linux i/o scheduler for solid-state drives
US9413587B2 (en) * 2012-05-02 2016-08-09 Box, Inc. System and method for a third-party application to access content within a cloud-based platform
US20130300590A1 (en) * 2012-05-14 2013-11-14 Paul Henry Dietz Audio Feedback
US9183136B2 (en) 2012-05-16 2015-11-10 Hitachi, Ltd. Storage control apparatus and storage control method
US20130326169A1 (en) 2012-05-31 2013-12-05 Amir Shaharabany Method and Storage Device for Detection of Streaming Data Based on Logged Read/Write Transactions
US8856484B2 (en) 2012-08-14 2014-10-07 Infinidat Ltd. Mass storage system and methods of controlling resources thereof
US9244868B2 (en) 2012-09-21 2016-01-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Leased lock in active-active high availability DAS systems
US8799829B2 (en) * 2012-09-28 2014-08-05 Interactive Memories, Inc. Methods and systems for background uploading of media files for improved user experience in production of media-based products
US9158770B1 (en) * 2012-10-09 2015-10-13 Robert Beadles Memorytag hybrid multidimensional bar text code
TWI459202B (zh) 2012-12-05 2014-11-01 Phison Electronics Corp 資料處理方法、記憶體控制器與記憶體儲存裝置
US20150324417A1 (en) * 2012-12-10 2015-11-12 Viditeck Ag Rules based data processing system and method
US9395924B2 (en) 2013-01-22 2016-07-19 Seagate Technology Llc Management of and region selection for writes to non-volatile memory
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9158687B2 (en) 2013-03-04 2015-10-13 Dot Hill Systems Corporation Method and apparatus for processing fast asynchronous streams
KR20140112303A (ko) 2013-03-13 2014-09-23 삼성전자주식회사 불휘발성 메모리 장치, 전자 장치 그리고 그것을 포함하는 컴퓨팅 시스템
US9715445B2 (en) * 2013-03-14 2017-07-25 Sandisk Technologies Llc File differentiation based on data block identification
US9436634B2 (en) 2013-03-14 2016-09-06 Seagate Technology Llc Enhanced queue management
US20170039372A1 (en) * 2013-03-15 2017-02-09 Electro Industries/Gauge Tech Devices, systems and methods for upgrading firmware in intelligent electronic devices
US9042181B2 (en) 2013-03-15 2015-05-26 SanDisk Technologies, Inc. Periodic erase operation for a non-volatile medium
US9335950B2 (en) 2013-03-15 2016-05-10 Western Digital Technologies, Inc. Multiple stream compression and formatting of data for data storage systems
KR102023351B1 (ko) 2013-03-19 2019-11-04 삼성전자 주식회사 저장 장치 내 할당 촉진을 위한 데이터 분석 방법 및 장치
US20140304469A1 (en) 2013-04-05 2014-10-09 Hewlett-Packard Development Company, L. P. Data storage
EP2800013B1 (en) * 2013-04-30 2015-09-09 Systemite AB Integration database framework
US9213633B2 (en) 2013-04-30 2015-12-15 Seagate Technology Llc Flash translation layer with lower write amplification
CN103324703A (zh) 2013-06-14 2013-09-25 西安工程大学 基于工作流引擎和知识引擎双驱动的知识推送方法
JP6099496B2 (ja) 2013-06-24 2017-03-22 Kddi株式会社 管理装置及びプログラム
US9984089B2 (en) 2013-06-28 2018-05-29 Vmware, Inc. Techniques for implementing hybrid flash/HDD-based virtual disk files
WO2015005634A1 (ko) 2013-07-08 2015-01-15 주식회사 윌러스표준기술연구소 메모리 시스템 및 이의 제어 방법
US20150026257A1 (en) * 2013-07-16 2015-01-22 Dropbox, Inc. Music box
WO2015008358A1 (ja) * 2013-07-18 2015-01-22 株式会社日立製作所 情報処理装置
CN105612503B (zh) 2013-08-09 2018-10-23 桑迪士克科技有限责任公司 持久性数据结构
KR20150023151A (ko) 2013-08-23 2015-03-05 삼성전자주식회사 전자 장치 및 이의 어플리케이션 실행 방법
KR102074329B1 (ko) 2013-09-06 2020-02-06 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 처리 방법
WO2015043166A1 (en) * 2013-09-24 2015-04-02 Huawei Technologies Co., Ltd. Method and system for automatic management of dynamically allocated memory in a computing unit
WO2015048140A1 (en) 2013-09-24 2015-04-02 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for storage collision management
WO2015043640A1 (de) * 2013-09-26 2015-04-02 Siemens Aktiengesellschaft Verfahren und system zur verwaltung und bearbeitung von daten einer medizinischen einrichtung
KR102203131B1 (ko) * 2013-10-16 2021-01-14 삼성전자주식회사 파일 관리 방법 및 그 전자 장치
JP6038763B2 (ja) * 2013-11-22 2016-12-07 京セラドキュメントソリューションズ株式会社 画像形成装置
US9344525B2 (en) 2013-11-25 2016-05-17 Violin Memory Inc. Method and apparatus for data migration
JP2015111334A (ja) 2013-12-06 2015-06-18 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
US9330305B2 (en) * 2013-12-29 2016-05-03 Google Technology Holdings LLC Method and device for detecting a seating position in a vehicle
US10747880B2 (en) * 2013-12-30 2020-08-18 University Of Louisiana At Lafayette System and method for identifying and comparing code by semantic abstractions
US20150188960A1 (en) * 2013-12-31 2015-07-02 Mohammad Taj Alhaidar System and method for online media content sharing
US8874835B1 (en) * 2014-01-16 2014-10-28 Pure Storage, Inc. Data placement based on data properties in a tiered storage device system
KR101544309B1 (ko) 2014-02-26 2015-08-12 한양대학교 산학협력단 스트림 기반의 비휘발성 메모리 제어 방법 및 장치
US9354872B2 (en) 2014-04-24 2016-05-31 Xitore, Inc. Apparatus, system, and method for non-volatile data storage and retrieval
US9378152B2 (en) 2014-05-09 2016-06-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for I/O processing using out-of-band hinting to block driver or storage controller
CN104111898A (zh) 2014-05-26 2014-10-22 中国能源建设集团广东省电力设计研究院 基于多维数据相似性的混合存储系统及数据管理方法
EP3196758B1 (en) 2014-07-21 2021-07-07 Yulong Computer Telecommunication Scientific (Shenzhen) Co. Ltd. Image classification method and image classification apparatus
US9495102B2 (en) 2014-07-31 2016-11-15 Samsung Electronics Co., Ltd. Input/output (I/O) interceptor that re-orders a plurality of write I/O into combined with I/O with intelligent flush control logic
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US9619214B2 (en) * 2014-08-13 2017-04-11 International Business Machines Corporation Compiler optimizations for vector instructions
US9274720B1 (en) 2014-09-15 2016-03-01 E8 Storage Systems Ltd. Distributed RAID over shared multi-queued storage devices
US9405928B2 (en) * 2014-09-17 2016-08-02 Commvault Systems, Inc. Deriving encryption rules based on file content
TWI554089B (zh) * 2014-09-29 2016-10-11 緯創資通股份有限公司 影音分享方法與系統
US9892041B1 (en) * 2014-09-30 2018-02-13 Veritas Technologies Llc Cache consistency optimization
CN104391569A (zh) 2014-10-15 2015-03-04 东南大学 基于认知与情绪状态多模态感知的脑机接口系统
EP3210157B1 (en) * 2014-10-23 2020-04-01 Pageproof.com Limited Encrypted collaboration system and method
US10198318B2 (en) 2014-10-27 2019-02-05 Hitachi, Ltd. Storage apparatus having nonvolatile memory device, and nonvolatile memory device
US9940242B2 (en) 2014-11-17 2018-04-10 International Business Machines Corporation Techniques for identifying instructions for decode-time instruction optimization grouping in view of cache boundaries
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
CN104391659A (zh) * 2014-12-03 2015-03-04 浪潮集团有限公司 一种基于磁盘的实现冷热数据自动分层存储技术
US9471229B2 (en) 2014-12-15 2016-10-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Scaling performance for raid storage controllers by predictively caching data for host write requests
US10409526B2 (en) 2014-12-17 2019-09-10 Violin Systems Llc Adaptive garbage collection
US9779021B2 (en) 2014-12-19 2017-10-03 International Business Machines Corporation Non-volatile memory controller cache architecture with support for separation of data streams
CN104572491B (zh) 2014-12-30 2017-10-17 华为技术有限公司 一种基于固态硬盘的读缓存管理方法及装置
TWI541669B (zh) * 2015-01-05 2016-07-11 Rangecloud Information Technology Co Ltd Detection systems and methods for static detection applications, and computer program products
US9998434B2 (en) * 2015-01-26 2018-06-12 Listat Ltd. Secure dynamic communication network and protocol
JP2016170583A (ja) * 2015-03-12 2016-09-23 株式会社東芝 メモリシステムおよび情報処理システム
US20160283125A1 (en) * 2015-03-25 2016-09-29 Kabushiki Kaisha Toshiba Multi-streamed solid state drive
US9760281B2 (en) 2015-03-27 2017-09-12 Intel Corporation Sequential write stream management
US10013177B2 (en) 2015-04-20 2018-07-03 Hewlett Packard Enterprise Development Lp Low write amplification in solid state drive
US9696935B2 (en) * 2015-04-24 2017-07-04 Kabushiki Kaisha Toshiba Storage device that secures a block for a stream or namespace and system having the storage device
US10025747B2 (en) 2015-05-07 2018-07-17 Samsung Electronics Co., Ltd. I/O channel scrambling/ECC disassociated communication protocol
US9851926B2 (en) 2015-06-02 2017-12-26 Quantum Corporation Log structured block device for hard disk drive
US10509770B2 (en) * 2015-07-13 2019-12-17 Samsung Electronics Co., Ltd. Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device
US10324832B2 (en) 2016-05-25 2019-06-18 Samsung Electronics Co., Ltd. Address based multi-stream storage device access
US10656838B2 (en) 2015-07-13 2020-05-19 Samsung Electronics Co., Ltd. Automatic stream detection and assignment algorithm
US9977623B2 (en) 2015-10-15 2018-05-22 Sandisk Technologies Llc Detection of a sequential command stream
US20170123666A1 (en) 2015-10-30 2017-05-04 Sandisk Technologies Inc. System and method for managing maintenance scheduling in a non-volatile memory
US10275275B2 (en) 2015-12-03 2019-04-30 Nvidia Corporation Managing copy operations in complex processor topologies
US10289309B2 (en) 2016-09-12 2019-05-14 Toshiba Memory Corporation Automatic detection of multiple streams

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1229721A2 (en) * 2001-01-31 2002-08-07 Fuji Photo Film Co., Ltd. Information displaying method and menu service method and system
CN101237511A (zh) * 2007-02-01 2008-08-06 夏普株式会社 图像历史保管方法和图像历史保管系统
CN101646995A (zh) * 2007-03-26 2010-02-10 国际商业机器公司 用于存储管理器的数据流过滤器和插件
CN101663654A (zh) * 2007-04-23 2010-03-03 微软公司 用于连接到主机的存储设备的优化的提示模型和用于存储设备的写优化方案
CN103597444A (zh) * 2011-06-09 2014-02-19 微软公司 按照使用来管理基于闪存的存储上的数据放置
CN103703450A (zh) * 2011-07-20 2014-04-02 华为技术有限公司 Ssd存储访问的方法和装置
WO2013084414A1 (ja) * 2011-12-08 2013-06-13 パナソニック株式会社 デジタル標本作製装置、デジタル標本作製方法およびデジタル標本作製サーバ
CN103677654A (zh) * 2012-09-24 2014-03-26 联想(北京)有限公司 一种存储数据的方法及电子设备
CN104159021A (zh) * 2013-05-13 2014-11-19 索尼公司 成像设备、成像方法和程序
CN103777905A (zh) * 2014-02-14 2014-05-07 华中科技大学 一种软件定义的固态盘融合存储方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SSD-optimized workload placement with adaptive learning and classification in HPC environments;L. Wan, Z. Lu, Q. Cao, F. Wang, S. Oral and B. Settlemyer;《2014 30th Symposium on Mass Storage Systems and Technologies (MSST)》;20140630;全文 *
磨损均衡在提高SSD使用寿命中的应用与改进;王增辉;《中国优秀硕士学位论文全文数据库 信息科技辑》;20150531;全文 *

Also Published As

Publication number Publication date
TW201710881A (zh) 2017-03-16
JP6971542B2 (ja) 2021-11-24
CN106354425A (zh) 2017-01-25
TWI710949B (zh) 2020-11-21
KR102541458B1 (ko) 2023-06-08
KR20170008152A (ko) 2017-01-23
US20170017411A1 (en) 2017-01-19
JP2017021804A (ja) 2017-01-26
US11461010B2 (en) 2022-10-04

Similar Documents

Publication Publication Date Title
CN106354425B (zh) 基于数据属性的数据布局的方法和系统
US11989160B2 (en) Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device
JP7089830B2 (ja) 不揮発性メモリデータの書き込み管理のための装置、システム、及び、方法
US9946642B2 (en) Distributed multimode storage management
US10374792B1 (en) Layout-independent cryptographic stamp of a distributed dataset
JP2018125025A (ja) 適応持続性システム、方法、インタフェース
US11263149B2 (en) Cache management of logical-physical translation metadata
US20130013880A1 (en) Storage system and its data processing method
US9817865B2 (en) Direct lookup for identifying duplicate data in a data deduplication system
US11500572B2 (en) Method of optimizing performance of a data storage system
US9864646B2 (en) Managing spaces in memory
US11630595B2 (en) Methods and systems of efficiently storing data
US10671307B2 (en) Storage system and operating method thereof

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant