CN106354745A - 用于提供计算机装置的接口的方法和计算机装置 - Google Patents
用于提供计算机装置的接口的方法和计算机装置 Download PDFInfo
- Publication number
- CN106354745A CN106354745A CN201610546162.4A CN201610546162A CN106354745A CN 106354745 A CN106354745 A CN 106354745A CN 201610546162 A CN201610546162 A CN 201610546162A CN 106354745 A CN106354745 A CN 106354745A
- Authority
- CN
- China
- Prior art keywords
- data
- file
- statistics
- renewal
- data item
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000015654 memory Effects 0.000 claims abstract description 25
- 230000004048 modification Effects 0.000 claims abstract description 6
- 238000012986 modification Methods 0.000 claims abstract description 6
- 238000003860 storage Methods 0.000 claims description 32
- 238000009434 installation Methods 0.000 claims description 27
- 238000009825 accumulation Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 11
- 238000012217 deletion Methods 0.000 claims description 8
- 230000037430 deletion Effects 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 6
- 239000000203 mixture Substances 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 241000258963 Diplopoda Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000007850 degeneration Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005621 ferroelectricity Effects 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1727—Details of free space management performed by the file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0269—Incremental or concurrent garbage collection, e.g. in real-time systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
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)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
提供一种用于计算机装置的接口的方法和计算机装置。所述接口被配置为:在计算机装置中执行操作系统级别的软件组件,该软件组件监视非易失性存储器装置中的数据项修改的更新统计,其中,更新统计包括数据项的至少一部分的更新频率、针对每个文件类型的累积的更新和删除频率以及数据项的来源中的一个或多个;由软件组件将数据项和数据项类型的更新统计存储在数据库中;拦截由应用对数据项执行的所有操作,并基于数据库中的当前的更新统计将数据属性标识符自动地分配给数据项中的每个数据项,使得数据项和分配的数据属性标识符通过存储器通道被发送到非易失性存储器装置用于存储,其中,所述所有操作包括创建、写入和更新。
Description
本申请要求于2015年7月13日提交的第62/192,045号美国临时专利申请、于2015年10月22日提交的第62/245,100号美国临时专利申请和2016年4月5日提交的第15/090,799号美国专利申请的权益,所述申请通过引用包含于此。
背景技术
基于闪存的固态硬盘(SSD)已经在消费计算机和企业服务器中被广泛使用。存在两种主要类型的闪存,分别以NAND逻辑门和NOR逻辑门命名。NAND类型的闪存可按照块来写和读,其中,每个块包括多个页。
由于SSD中的NAND闪存存储单元具有非常独特的属性,所以SSD的正常使用非常低效。例如,尽管一次可随机对一个字节或一个字进行读取或编程,但是NAND闪存一次只能擦除一个块。为重写单个NAND闪存页,首先必须擦除整个擦除块(这种擦除块包含大量闪存页)。
由于基于NAND闪存的存储器装置(例如,SSD)不允许原位更新(in-placingupdating),所以当可用的空闲块的计数达到特定阈值时执行垃圾回收操作,以便为后续的写入准备空间。垃圾回收包括在无效数据未被传送至新块的同时从一个擦除块读取有效数据并将有效数据写入另一块。擦除NAND擦除块花费相对大量的时间,并且每个擦除块具有有限数量的擦除周期(大约从3千次至1万次)。因此,垃圾回收开销是技术类别中的最大的速度限制因素之一,导致更高的数据I/O延迟和更低的I/O性能。
因此,与区别对待热数据和冷数据的OS和应用相比,不区别对待热/冷数据并且将它们存储在一起的操作系统(OS)和应用将随着时间推移而看到性能的退化,并且因需要更多的擦除周期而SSD寿命越短,导致NAND单元更快地损耗。
SSD供应商和存储技术委员会提出了一种称作“多流(multi-stream)SSD”新的SSD和标准,以通过向OS和应用提供将具有不同寿命的数据分开存储的接口(称作“流”)来克服这个问题。流是指示当数据写入彼此关联或具有类似寿命时的主机提示(host hint)。即,单个数据写入的组是共同的流,并且每个流被OS或应用给予流ID。例如,“热”数据可被分配唯一流ID并且该流ID的数据会被写入SSD中的相同的擦除块。因为擦除块内的数据具有类似寿命或彼此关联,所以当数据被主机系统删除时整个擦除块空闲的可能性较大,从而由于整个目标块会是有效的(因此不需要擦除)或无效的(可以擦除,但不需要写入)而显著地降低垃圾回收开销。因此,装置耐久性和性能会提高。
然而,为了利用这种新接口,需要应用(其中,这种应用包括源代码)和OS的许多改变。因为通常的计算机可具有安装并运行的几十或上百的软件应用,所以对于所有应用,特别是对于旧式的和非开源的应用而言,很难应用那些改变,来更有效地使用SSD。另外,由于多流SSD仅被操作系统和应用兼容使用,因此多流SSD具有有限的适用性。
需要一种改进的存储器装置中的基于数据属性的数据布局(data placement),更具体地讲,一种使计算机装置能利用基于数据属性的数据布局(例如,多流)的固态硬盘的自主过程(autonomous process)。
发明内容
示例实施例提供用于提供使计算机装置能够利用在非易失性存储器装置内的基于数据属性的数据布局的接口的方法和系统。示例实施例的各方面包括:在计算机装置中执行操作系统级别的软件组件,该软件组件监视非易失性存储器装置中的数据项修改的更新统计,其中,更新统计包括数据项的至少一部分的更新频率、针对每个文件类型的累积的更新和删除频率以及数据项的来源中的一个或多个;由软件组件将数据项和数据项类型的更新统计存储在数据库中;拦截由应用对数据项执行的所有操作,并基于数据库中的当前的更新统计将数据属性标识符自动地分配给数据项中的每个数据项,使得数据项和分配的数据属性标识符通过存储器通道被发送到非易失性存储器装置用于存储,其中,所述所有操作包括创建、写入和更新。
示例实施例还提供一种计算机装置,包括:存储器;操作系统;处理器,结合到存储器,其中,处理器执行设置于操作系统内的软件组件,软件组件被配置为:监视非易失性存储器装置中的数据项修改的更新统计,其中,更新统计包括数据项的至少一部分的更新频率、针对每个文件类型的累积的更新和删除频率以及数据项的来源中的一个或多个;将数据项和数据项类型的更新统计存储在数据库中;拦截由应用对数据项执行的包括创建、写入和更新的所有操作,并基于数据库中的当前的更新统计自动地将数据属性标识符分配给数据项中的每个数据项,使得数据项和分配的数据属性标识符通过存储器通道被发送到非易失性存储器装置用于存储,从而使计算机装置利用非易失性存储器装置内的基于数据属性的数据布局。
示例实施例还提供一种存储在非暂时性计算机可读存储介质上的可执行软件产品,所述可执行软件产品包含用于提供使计算机装置能够利用在非易失性存储器装置内的基于数据属性的数据布局的接口的程序指令,所述程序指令用于:软件组件,该软件组件监视非易失性存储器装置中的数据项修改的更新统计,其中,更新统计包括数据项的至少一部分的更新频率、针对每个文件类型的累积的更新和删除频率以及数据项的来源中的一个或多个;由软件组件将数据项和数据项类型的更新统计存储在数据库中;拦截由应用对数据项执行的所有操作,并基于数据库中的当前的更新统计将数据属性标识符自动地分配给数据项中的每个数据项,使得数据项和分配的数据属性标识符通过存储器通道被发送到非易失性存储器装置用于存储,其中,所述所有操作包括创建、写入和更新。
附图说明
本发明总的构思的这些和/或其他特征和用途将通过结合附图的以下实施例的描述而变得清楚和更加容易理解,其中:
图1是示出用于由启发式接口(heuristic interface)提供的非易失性存储器装置中的基于数据属性的数据布局的系统的示例实施例的框图;
图2是示出根据一个示例实施例的在主机系统上执行的用于提供使计算机装置能够利用在非易失性存储器装置内的基于数据属性的数据布局的启发式接口的处理的流程图;
图3是示出在各种类型的计算装置中实现的使计算机装置与具有基于数据属性的数据布局的SSD兼容的示例实施例的启发式接口的示图;
图4是示出根据示例实施例的由非易失性存储器装置的存储控制器执行的基于数据属性的数据布局的处理的流程图;
图5是示出针对由存储具有不同寿命和不同属性的数据的数据库应用执行的存储操作的启发式接口的操作的示例的框图。
具体实施方式
现在,将详细参照附图中示出有其示例的本发明总的构思的实施例,其中,同样的标号始终指示同样的元件。为了解释本发明的总的构思,下面同时参照附图来描述实施例。
通过参照下面的实施例的详细描述和附图,本发明的优点和特征以及实现其的方法会更加容易理解。然而,本发明总的构思可以以许多不同的形式来实施,并且不应该被解释为限制于这里阐述的实施例。相反,提供这些实施例使得本公开将是彻底的和完整的,并将总的发明构思充分地传达给本领域技术人员,并且本发明总的构思将仅由权利要求所限定。在附图中,为了清楚,夸大了层和区域的厚度。
除非在这里另外指示或与上下文清楚地矛盾,否则在描述本发明的上下文中(特别是在权利要求的上下文中)所使用的单数术语和类似概念将被解释为覆盖单数和复数二者。除非另外标出,否则术语“包括”、“具有”、“包含”和“含有”将被解释为开放式术语(即,意思是“包含,但不限于此,”)。
如在这里使用的,术语“算法”或“模块”表示(但不限于)软件组件或硬件组件,诸如特定任务的现场可编程门阵列(FPGA)或专用集成电路(ASIC)。算法或模块可被方便地配置为驻留在可寻址存储介质上或被配置为在一个或多个处理器上执行。因此,作为示例,算法或模块可包括组件(诸如,软件组件、面向对象的软件组件、类组件和任务组件)、进程、函数、属性、程序、子例程、程序代码段、驱动器、固件、微码、电路、数据、数据库、数据结构、表、数组和变量。为组件和组件或模块提供的功能可被组合为更少的组件或模块,或可被分成另外的组件和组件或模块。
除非另外地限定,否则这里使用的所有技术术语和科学术语具有与本发明所属的领域的普通技术人员所通常理解的含义相同的含义。还要注意,这里提供的任意和所有示例或者示例性术语的使用仅意在更好地说明本发明,而非本发明的范围的限制,除非另有指定。此外,除非另外地限定,否则在通用字典中限定的所有术语不会被过度解释。
在一个方面,示例实施例提供一种用于使计算机系统能够在存储器装置(诸如,SSD)中利用基于数据属性的数据布局方法(例如,多流)启发式和自主的接口,其不需要对应用进行改变。
图1是示出用于由启发式接口提供的非易失性存储器装置中的基于数据属性的数据布局的系统的示例实施例的框图。这里描述的示例实施例可应用于需要垃圾收集的任意非易失性存储器装置,并且将针对非易失性存储器装置包括固态硬盘(SSD)的实施例来解释示例实施例。
所述系统包括通过通道14结合到SSD 12的主机系统10。如公知的,SSD没有用于存储数据的移动部分并且不需要恒定的电力来保留那些数据。与本公开相关的主机系统10的组件包括执行来自存储器18的计算机指令的处理器16,其中,存储器18包括操作系统(OS)20和文件系统21。主机系统10可包括其他组件(未示出),诸如用于与通道14进行接口连接的存储控制器。主机系统10和SSD 12通过通道14来进行命令和数据项28的通信。在一个实施例中,主机系统10可以是运行任意类型的OS的通常的计算机或服务器。OS类型的示例包括单用户和多用户、分布式、模板化、嵌入式、实时和库。在另一实施例中,系统可以是独立组件(诸如,装置控制器),在这种情况下OS可包括轻量级OS(或OS的部件)或者甚至固件。
SSD 12包括存储控制器22和非易失性存储器(NVM)阵列24,来存储来自主机系统10的数据。存储控制器22管理存储在NVM阵列24中的数据并且经由通信协议通过通道14与主机系统进行通信。NVM阵列24可包括任意类型的非易失性随机存取存储器(NVRAM),包括闪存、铁电RAM(F-RAM)、磁阻RAM(MRAM)、相变存储器(PCM)、千足虫存储器(Millipedememory)等。SSD 12和通道14二者可支持多通道存储器结构(诸如,双通道结构),并且还可支持单倍速率、双倍速率或四倍速率的数据传送。
根据示例实施例,为降低SSD 12中的垃圾收集开销,示例实施例提供一种SSD中的改进的基于数据属性的数据布局。这通过提供使应用和硬件组件二者能够在SSD 12中分开存储具有不同寿命的数据项的启发式接口26来实现。另外,在一些实施例中,启发式接口26的使用不需要对运行在主机系统10上的用户应用进行改变。
在一个实施例中,启发式接口26包括安装在操作系统级别的至少一个软件组件,其中,所述至少一个软件组件持续监视和存储所有数据项28(诸如,文件)的使用和更新统计。在初始的预热或训练阶段之后,由主机系统10执行任何创建/写/更新操作的数据项28根据当前使用和更新统计而被分配动态数据属性标识符30。在一个实施例中,数据属性标识符30的实际分配可由在OS 20的文件系统21中的软件钩子(software hook)执行。
图2是示出根据一个示例实施例的在主机系统上执行的用于提供使计算机装置能够利用在非易失性存储器装置内的基于数据属性的数据布局的启发式接口的处理的流程图。所述处理可包括:执行计算机装置中的操作系统级别的软件组件(例如,启发式接口),其中,所述软件组件监视非易失性存储器装置中的数据项(例如,文件)修改的更新统计,其中,更新统计包括数据项的至少一部分的更新频率、针对每个文件类型的更新和删除的累积频率以及数据文件的来源(块200)。
软件组件将数据项的更新统计和数据项类型存储在数据库中(块202)。在一个实施例中,更新统计可被存储在主机系统存储器18和SSD 12二者中。
软件组件拦截由应用对数据项执行的大部分(如果不是所有的)操作(这种操作包括创建、写入和更新),并基于数据库中的当前的更新统计而自动地向每个数据项分配数据属性标识符,使得数据项和分配的属性标识符通过存储器通道被发送到非易失性存储器装置用于存储(块204)。在一个实施例中,数据属性标识符充当标签,并且不需要实际发送关于标识符表示什么数据属性的任何信息。
根据一个实施例,启发式接口26使用当前的更新统计来基于表示数据相似度(诸如,数据寿命、数据类型、数据大小和物理数据源)的一个或多个数据属性将数据属性标识符30与数据项28中的每个关联或将数据属性标识符30分配给数据项28中的每个。在进一步实施例中,逻辑块地址(LBA)范围也可被用于表示数据相似度的数据属性。例如,LBA存取的模式可以是相似度的指标并且调用数据的组。以这种方式,具有相同或相似的数据属性的数据项28被分配相同的数据属性标识符值。
因为在操作系统级别提供启发式接口26,所以不需要对现有应用进行改变来使这些应用与示例实施例的基于数据属性的数据布局处理兼容。因此,启发式接口26可在具有处理器和操作系统的计算装置中实现以超过应用和操作系统而扩展传统多流的使用。
图3是示出在各种类型的计算装置300A至300D中实现的使计算机装置与具有基于数据属性的数据布局(例如,多流)的SSD 12兼容的示例实施例的启发式接口的示图。计算装置300A和300B可表示启发式接口26A和26B分别被设置在操作系统20A和20B内的主机装置,诸如,PC或服务器或存储子系统。启发式接口26A拦截由应用304A执行的数据项操作,并基于当前的更新统计自动地向来自应用304A的每个数据项分配数据属性标识符30A。类似地,启发式接口26B拦截由OS 20B的块层(block layer)23B执行的数据项操作,并基于当前的更新统计自动地向被块层23B操作的每个数据项分配数据属性标识符30B。
计算装置300C和300D可表示启发式接口26C和26D分别被设置在硬件装置控制器306C和306D内的硬件装置,诸如,交换机、路由器、RAID系统或主机总线适配器(HBA)系统、传感器系统或独立装置(诸如扫描仪或相机))。启发式接口26C拦截由装置控制器306C执行的数据项操作,并基于当前的更新统计自动地向来自装置控制器306C的每个数据项分配数据属性标识符30C。类似地,启发式接口26D拦截由装置控制器306D执行的数据项操作,并基于当前的更新统计自动地向来自装置控制器306D的每个数据项分配数据属性标识符30D。
图4是示出根据示例实施例的由非易失性存储器装置的存储控制器执行的基于数据属性的数据布局的处理的流程图。参照图3和图4,所述处理可包括:通过通道从操作系统或运行应用(例如,OS 20B或应用304A)中的至少一个接收将被存储的第一系列数据项,其中,第一系列数据项中的每个数据项包括基于表示数据相似度(所述数据相似度可包括数据寿命、数据类型、数据大小和物理数据源)的一个或多个数据属性而与数据项关联的第一数据属性标识符(块400)。
在一个实施例中,数据类型可包括来源的应用外部的属性。在进一步实施例中,一个或多个数据属性还可包括逻辑块地址(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关联的数据项存储在相同的擦除块308C内,并将与数据属性ID 30D关联的数据项存储在相同的擦除块308D内。
根据示例实施例的启发式接口26,数据属性ID 30可被分配给从任意类型的输入装置输出的数据项28用于存储。例如,假设启发式接口28在周期地(例如,每秒一次)拍摄图像的数字安全相机内实现。启发式接口28可基于表示数据相似度(诸如,图像的捕获速率、图像文件大小和图像的来源(例如,装置ID和/或GPS位置))的数据属性向每个图像文件分配数据属性ID 30。注意的是,由于这种数据属性是被传统多流使用的元数据,因此不需要与特定的应用或文件系统关联。
图5是示出作为标识符分配处理的一个示例的更详细的启发式接口的框图。与图1和图3类似,示出在主机系统10的操作系统20级别提供启发式接口26。启发式接口26监视应用300、文件系统21、块层23和装置驱动器的操作,并基于更新统计中的表示数据相似度的数据属性向数据项分配数据属性标识符30。SSD 12读取数据属性标识符30并识别SSD 12的哪些块被用于存储相应的数据项,以使具有相同的数据属性标识符30的数据项被存储在相同的块中。
根据一些示例实施例,启发式接口26包括两个软件组件:安装在操作系统20内的统计守护进程(stats demon)600和在文件系统级别被实现为系统调用钩子的映射钩子(map hook)602。统计守护进程600可在后台持续地运行以管理和维持对SSD 12的数据项修改的至少一个启发式/统计的数据库604(示出于扩展的虚线框中)。映射钩子602可拦截所有的文件更新操作并根据数据库604中的当前的统计自动地向每个文件更新操作610分配数据属性ID 30。
在一个实施例中,存储在启发式数据库604中的统计数据可包括两种类型,基于文件名的统计和基于文件类型的统计。基于文件名的统计可记录针对每个数据文件的更新的(所述更新包括重写、更新、删除、截断(truncate)操作)更新频率。基于文件类型的统计可记录针对特定文件类型的累积的更新和删除频率。在一个实施例中,统计数据的这两个集合均被每次文件更新所更新,并且可被存储在存储器18中和SSD 12上。
在一个实施例中,启发式数据库604可使用各个表(这些表在这里被称为基于文件名的统计表606和基于文件类型的统计表608)来存储这两类统计数据。在一个实施例中,这些表可被实现为哈希表。基于文件名的统计表606中的每个条目可包括可以是文件名的关键字和值,其中,该值可包括在文件的整个寿命期间文件的更新(所述更新包括重写、更新、截断)的总数。响应于新文件的创建,统计守护进程600可向基于文件名的统计表606创建新条目。响应于文件被删除,统计守护进程600可删除基于文件名的统计数据表606中的相应条目。
基于文件类型的统计表608中的每个条目可包括可以是文件类型的关键字(mp3、mpg、xls等)和值,其中,该值可包括对该文件类型的文件所做的更新(所述更新包括重写、更新、截断)的总数除以该文件类型的文件的数量的值。响应于新类型的创建,统计守护进程600可在基于文件类型的统计表608中创建新条目,并且统计守护进程600可在添加条目之后不删除任何条目。
统计守护进程600还负责在操作系统启动之后从SSD 12将这两个哈希表加载到存储器18,并周期地将表冲刷(flush)到SSD,用于永久存储。这两个哈希表均可作为普通数据文件被存储在SSD 12中。
对于新安装的操作系统,启发式接口26可需要可配置的预热阶段来收集足够的统计来有效地分配数据属性标识符30。
映射钩子602可被实现为在文件系统级别的系统调用钩子以拦截由应用300和OS20对所有文件所做的所有文件更新操作(创建/写/更新/删除)610。大部分操作系统(诸如Windows和Linux)提供用于系统编程目的的文件系统钩子。
响应于拦截文件更新操作610,映射钩子602可经由启发式数据库更新操作612向统计守护进程600发送相关信息。然后映射钩子602经由数据属性ID计算操作614读取启发式数据库604并根据当前的统计计算实际文件写入的数据属性标识符30并经由分配数据属性ID操作616分配实际文件写入的数据属性标识符30。文件创建或刷新文件写入可根据文件的类型和当前的文件类型统计而被分配数据属性ID 30;同时文件数据更新可根据文件数据更新的更新频率和当前的更新频率统计而被分配数据属性ID 30。最后,映射钩子602经由转发实际写入操作618将实际文件写入转发到底层文件系统21。
映射钩子602可使用基于两个统计哈希表606和608的算法来计算和分配数据属性ID,以下是简化的示例实施方式。哈希表查找和计算的开销可以是极小的,因此SSD读/写吞吐量不会受影响。更多的信息可被添加到这些统计哈希表606和608中,并且可使用更复杂的流ID计算算法。
在一个实施例中,简化数据属性ID计算算法的示例如下:
1、拦截文件创建:在基于文件名的统计表中添加新条目;如果是新的文件类型,也在基于文件类型的统计表中添加新条目。
2、拦截文件读取:无操作。
3、拦截文件删除:删除基于文件名的统计表中的文件的条目。
4、拦截刷新文件写入:
·如果过了预热阶段,则按如下方式计算流ID;否则,分配可用的最低的流ID。
·Data property ID=floor((Write_Frequency_This_FileType/Max_Write_Frequency_in_FileType_HashTable)×Number_of_Available_Streams_in_NVM_Device)
这里,函数floor(x)表示小于或等于x的最大整数,Data property ID表示数据属性标识符,Write_Frequency_This_FileType表示这种文件类型的写入频率,Max_Write_Frequency_in_FileType_HashTable表示哈希表中的文件类型的最大写入频率,Number_of_Available_Streams_in_NVM_Device表示NVM装置中的可用流的数量。
·将流ID分配给实际的文件写入并将实际的文件写入转发到文件系统和SSD。
5、拦截文件更新:
·通过增加该文件的条目中的更新次数来更新基于文件名的统计表。
·通过增加该文件类型的条目中的累积写入频率来更新基于文件类型的统计表。
·如果过了预热阶段,则如下计算数据属性ID;否则,分配可用的最低的数据属性ID。
·Data propertyID=floor((Total_Writes_This_File/Max_Writes_in_FileName_HashTable)×Number_of_Available_Streams_in_NVM_Device)
这里,函数floor(x)表示小于或等于x的最大整数,Data property ID表示数据属性标识符,Total_Writes_This_File表示这种文件的总写入次数,Max_Writes_in_FileName_HashTable表示哈希表中的文件名称的最大写入次数,Number_of_Available_Streams_in_NVM_Device表示NVM装置中的可用流的数量。
作为数据属性ID计算的示例,做出如下假设:用户正在编辑照片应用以编辑名称为foo.jpg(JPEG文件类型)的照片文件;用户的计算机的SSD被配置为处理最多四个数据属性ID或流ID。当用户将照片保存在SSD 12上时,映射钩子602拦截文件保存请求,确定文件类型并在启发式数据库604中更新该特定文件的更新频率并将其更新为JPEG文件类型。
映射钩子602还搜索该JPEG文件类型的(例如,每天的)写入频率的当前统计以及遍及所有文件类型中的最大写入频率。在本示例中,假设这种JPEG文件类型具有每天10次的写入频率并且“.meta”文件类型具有每天100次的写入频率,其中,该100次的写入频率为遍及所有文件类型中的最高或最大写入频率。然后映射钩子602可使用以下等式来计算将被分配给文件保存操作的数据属性ID:
Data property ID=floor((Write_Frequency_This_FileType/Max_Write_Frequency_in_FileType_HashTable)×Number_of_Available_Streams_in_NVM_Device)
Data property ID=floor((10/100)*4)+1=1
然后,1的数据属性ID与文件数据一起通过文件系统21和块层23被发送到SSD 12用于存储,并且存储其他数据的块具有分配的数据属性ID 0。
在可选实施例中,启发式接口26(例如,统计守护进程600和映射钩子602)以及基于启发式数据库604中的更新统计的数据属性ID的分配可在OS块存储层23内或甚至在SSD12内实现。对于这两种情况,统计守护进程604仅需要维持查找表来存储针对每个存储块的更新统计,并且映射钩子602可根据存储在查找表中的更新频率来计算数据属性ID并向每个块更新分配数据属性ID。在OS块存储层23内实现的情况下,映射钩子602可被实现于OS块存储层中而不是文件系统21中,统计守护进程604可以是作为操作系统的一部分的内核模式守护进程,并且统计数据表606和608可被存储在SSD12内的特定分区和存储器二者中。在基于数据属性的SSD 12内的实现的情况下,统计数据表606和608可被存储在NAND闪存空闲区域中以节省存储空间,并且统计数据表606和608的存储器内的部分可与当前的SSD FTL映射表一起被存储和合并。
在一个实施例中,启发式接口26被实现为软件组件。在另一实施例中,启发式接口26可被实现为硬件和软件的组合。尽管统计守护进程600和映射钩子602被示出为分开的组件,但是它们各自的功能可被组合为更少或更多数据的模块/组件。例如,在另一实施例中,统计守护进程600和映射钩子602可被实现为一个集成组件。
示例实施例的启发式接口26可应用于从客户到企业的广泛的存储市场,其可应用于单个独立机器(诸如,台式机、笔记本、工作站、服务器等)的盘、存储阵列、软件定义存储器(SDS)、应用特定存储器、虚拟机(VM)、虚拟桌面架构(VDI)、内容分发网络等。
在一个实施例中,例如,SSD 12的NVM阵列24可由多个非易失性存储器芯片(例如,多个闪存)形成。作为另一示例,NVM阵列可由不同类型的非易失性存储器芯片(例如,PRAM、FRAM、MRAM等)而不是闪存芯片形成。可选地,阵列24可由易失性存储器(例如,DRAM或SRAM)形成,并且可具有混合两种或更多种类型的存储器的混合类型。
已经公开了一种使计算机系统能够利用数据布局方法的启发式和自主的接口的方法和系统。已经根据示出的实施例描述了本发明,对于实施例可以存在变化,并且任何变化将在本发明的精神和范围内。例如,示例性实施例可使用硬件、软件、包含程序指令的计算机可读介质或者它们的组合来实现。根据本发明编写的软件将以计算机可读介质(诸如,存储器、硬盘或CD/DVD-ROM)的某种形式存储,并由处理器执行。因此,在不脱离权利要求的精神和范围的情况下,本领域普通技术人员可做出许多修改。
Claims (25)
1.一种用于提供使计算机装置利用在非易失性存储器装置内的基于数据属性的数据布局的接口的方法,所述方法包括:
在计算机装置中执行操作系统级别的软件组件,该软件组件监视非易失性存储器装置中的数据项修改的更新统计,其中,更新统计包括数据项的至少一部分的更新频率、针对每个文件类型的累积的更新和删除频率以及数据项的来源中的一个或多个;
由软件组件将数据项和数据项类型的更新统计存储在数据库中;
拦截由应用对数据项执行的所有操作,并基于数据库中的当前的更新统计将数据属性标识符自动地分配给数据项中的每个数据项,使得数据项和分配的数据属性标识符通过存储器通道被发送到非易失性存储器装置用于存储,其中,所述所有操作包括创建、写入和更新。
2.如权利要求1所述的方法,其中,软件组件在计算机装置的装置控制器内被执行。
3.如权利要求1所述的方法,其中,软件组件使用当前的更新统计来基于表示数据相似度的一个或多个数据属性将数据属性标识符分配给数据项,其中,数据相似度包括数据寿命、数据类型、数据大小、逻辑块地址范围,逻辑块地址存取模式和物理数据源。
4.如权利要求1所述的方法,其中,软件组件包括:
统计守护进程,安装在计算机装置的操作系统中;
系统调用钩子,实现在文件系统级别。
5.如权利要求4所述的方法,其中,统计守护进程在后台持续地运行以管理和维持所述数据库。
6.如权利要求5所述的方法,其中,数据项包括文件,其中,所述数据库包括基于文件名的统计表和基于文件类型的统计表,其中,基于文件名的统计表记录针对数据项的包括重写、更新、删除和截断操作的更新的更新频率,其中,基于文件类型的统计表记录特定文件类型的累积的更新和删除频率。
7.如权利要求6所述的方法,其中,基于文件名的统计表和基于文件类型的统计表中的至少一部分被存储在计算机装置的存储器和非易失性存储器装置二者中。
8.如权利要求7所述的方法,其中,基于文件名的统计表和基于文件类型的统计表被实现为哈希表。
9.如权利要求8所述的方法,其中,基于文件名的统计表中的每个条目包括关键字和值,其中,所述值包括在文件的寿命期间该文件的更新的总次数。
10.如权利要求9所述的方法,其中,响应于新文件的创建,统计守护进程在基于文件名的统计表中创建新条目;响应于文件被删除,统计守护进程删除在基于文件名的统计数表中的相应条目。
11.如权利要求8所述的方法,其中,基于文件类型的统计表中的每个条目包括关键字和值,其中,所述值包括对于特定类型的文件做出的总更新次数除以该特定文件类型的文件的数量。
12.如权利要求11所述的方法,其中,响应于新类型的创建,统计守护进程在基于文件类型的表中创建新条目;统计守护进程在条目被添加之后不删除任何条码。
13.如权利要求7所述的方法,其中,统计守护进程在操作系统启动之后将基于文件名的统计表和基于文件类型的统计表加载到计算机装置的存储器,并周期地将所述表冲刷到非易失性存储器用于永久存储。
14.如权利要求4所述的方法,其中,系统调用钩子拦截所有文件更新操作并根据数据库中的当前的统计来自动地将动态属性标识符分配给文件更新操作中的每个文件更新操作。
15.如权利要求7所述的方法,其中,所述统计被存储在所述至少一个数据库中,其中,系统调用钩子被配置为:
响应于拦截文件更新操作,执行数据库更新操作以向统计守护进程发送相关信息;
读取数据库,根据当前的统计而计算和分配实际文件写入的数据属性标识符,其中,文件创建或刷新文件写入根据文件的类型和当前的文件类型统计而被分配数据属性标识符,而文件数据更新根据文件数据更新的更新频率和当前的更新频率统计而被分配数据属性标识符;
将实际文件写入转发到文件系统。
16.如权利要求15所述的方法,其中,响应于刷新文件写入的数据属性标识符计算基于下面的等式执行,
Data property ID=floor((Write_Frequency_This_FileType/
Max_Write_Frequency_in_FileType_HashTable)
Number_of_Available_Streams_in_NVM)
这里,函数floor(x)表示小于或等于x的最大整数,
Data property ID表示数据属性标识符,
Write_Frequency_This_FileType表示这种文件类型的写入频率,
Max_Write_Frequency_in_FileType_HashTable表示基于文件类型的统计表中的文件类型的最大写入频率,
Number_of_Available_Streams_in_NVM_Device表示非易失性存储器装置中的可用流的数量。
17.如权利要求15所述的方法,其中,响应于文件更新的数据属性标识符计算基于下面的等式执行:
Data property ID=floor((Total_Writes_This_File/
Max_Writes_in_FileName_HashTable)
Number_of_Available_Streams_in_NVM)
这里,函数floor(x)表示小于或等于x的最大整数,
Data property ID表示数据属性标识符,
Total_Writes_This_File表示这种文件的总写入次数,
Max_Writes_in_FileName_HashTable表示基于文件名称的统计表中的文件名统计表中的文件名的最大写入次数,
Number_of_Available_Streams_in_NVM_Device表示非易失性存储器装置中的可用流的数量。
18.如权利要求1所述的方法,还包括:响应于新安装的操作系统,需要软件组件具有可配置的预热阶段来收集足够的统计以有效地分配数据属性标识符。
19.一种计算机装置,包括:
存储器;
操作系统;
处理器,结合到存储器,其中,处理器执行设置于操作系统内的软件组件,软件组件被配置为:
监视非易失性存储器装置中的数据项修改的更新统计,其中,更新统计包括数据项的至少一部分的更新频率、针对每个文件类型的累积的更新和删除频率以及数据项的来源中的一个或多个;
将数据项和数据项类型的更新统计存储在数据库中;
拦截由应用对数据项执行的包括创建、写入和更新的所有操作,并基于数据库中的当前的更新统计自动地将数据属性标识符分配给数据项中的每个数据项,使得数据项和分配的数据属性标识符通过存储器通道被发送到非易失性存储器装置用于存储。
20.如权利要求19所述的计算机系统,其中,软件组件在计算机装置的装置控制器内被执行。
21.如权利要求19所述的计算机装置,其中,软件组件使用当前的更新统计数据来基于表示数据相似度的一个或多个数据属性向数据项分配数据属性标识符,其中,数据相似度包括数据寿命、数据类型、数据大小、逻辑块地址范围,逻辑块地址存取模式和物理数据源。
22.如权利要求19所述的计算机装置,其中,软件组件包括:
统计守护进程,被安装在计算装置的操作系统中;
系统调用钩子,被实现在文件系统级别。
23.如权利要求22所述的计算机装置,其中,守护进程在后台持续地运行以管理和维持所述数据库。
24.如权利要求24所述的计算机装置,其中,数据项包括文件,其中,所述数据库包括基于文件名的统计数据和基于文件类型的统计数据,其中,基于文件名的统计表记录数据项的包括重写、更新、删除和截断操作的更新的更新频率,其中,基于文件类型的统计表记录特定文件类型的累积的更新和删除频率。
25.如权利要求24所述的计算机装置,其中,基于文件名的统计表和基于文件类型的统计表中的至少一部分被存储在计算机装置的存储器和非易失性存储器装置中。
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/090,799 | 2016-04-05 | ||
US15/090,799 US10509770B2 (en) | 2015-07-13 | 2016-04-05 | Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106354745A true CN106354745A (zh) | 2017-01-25 |
CN106354745B CN106354745B (zh) | 2021-09-03 |
Family
ID=56092840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610546162.4A Active CN106354745B (zh) | 2015-07-13 | 2016-07-12 | 用于提供计算机装置的接口的方法和计算机装置 |
Country Status (5)
Country | Link |
---|---|
US (3) | US10509770B2 (zh) |
EP (1) | EP3118745B1 (zh) |
JP (1) | JP2017021805A (zh) |
KR (1) | KR102401596B1 (zh) |
CN (1) | CN106354745B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213438A (zh) * | 2017-07-03 | 2019-01-15 | 三星电子株式会社 | 预先管理待分配给写入数据的物理地址的存储装置 |
CN112347166A (zh) * | 2019-08-09 | 2021-02-09 | 烽火通信科技股份有限公司 | 一种提高接口表查找效率的方法及系统 |
CN112650691A (zh) * | 2019-10-10 | 2021-04-13 | 戴尔产品有限公司 | 基于改变频率的分层数据存储和垃圾回收系统 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US10282324B2 (en) | 2015-07-13 | 2019-05-07 | Samsung Electronics Co., Ltd. | Smart I/O stream detection based on multiple attributes |
US11461010B2 (en) * | 2015-07-13 | 2022-10-04 | Samsung Electronics Co., Ltd. | Data property-based data placement in a nonvolatile memory device |
US20170220295A1 (en) * | 2016-02-02 | 2017-08-03 | Intel Corporation | Technologies for reducing duplication of stored data |
US10031689B2 (en) * | 2016-09-15 | 2018-07-24 | Western Digital Technologies, Inc. | Stream management for storage devices |
US10740294B2 (en) * | 2017-01-12 | 2020-08-11 | Pure Storage, Inc. | Garbage collection of data blocks in a storage system with direct-mapped storage devices |
KR102340094B1 (ko) * | 2017-03-31 | 2021-12-17 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
CN107168654B (zh) * | 2017-05-26 | 2019-08-13 | 华中科技大学 | 一种基于数据对象热度的异构内存分配方法及系统 |
US10878859B2 (en) | 2017-12-20 | 2020-12-29 | Micron Technology, Inc. | Utilizing write stream attributes in storage write commands |
US11966359B1 (en) | 2018-03-22 | 2024-04-23 | Amazon Technologies, Inc. | Automated tier-based transitioning for data objects |
US10572159B1 (en) | 2018-03-22 | 2020-02-25 | Amazon Technologies, Inc. | Smart data storage tiers for data object transitioning |
US11803325B2 (en) * | 2018-03-27 | 2023-10-31 | Micron Technology, Inc. | Specifying media type in write commands |
US10802757B2 (en) * | 2018-07-30 | 2020-10-13 | EMC IP Holding Company LLC | Automated management of write streams for multi-tenant storage |
KR20200053965A (ko) * | 2018-11-09 | 2020-05-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
KR20200065489A (ko) | 2018-11-30 | 2020-06-09 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 내 자원 사용에 대응하여 데이터 패스를 동적 할당하는 방법 및 장치 |
US11231873B2 (en) * | 2018-12-07 | 2022-01-25 | Intel Corporation | Apparatus and method for assigning velocities to write data |
WO2021015174A1 (ja) * | 2019-07-25 | 2021-01-28 | 株式会社ソニー・インタラクティブエンタテインメント | ストレージ管理装置、ストレージ管理方法およびプログラム |
KR20210156190A (ko) | 2020-06-17 | 2021-12-24 | 삼성전자주식회사 | 스토리지 장치 지원 실시간 가상 머신 마이그레이션 |
KR20220060397A (ko) * | 2020-11-04 | 2022-05-11 | 삼성전자주식회사 | 전자 장치 및 이를 이용한 스토리지 관리 방법 |
CN112434117B (zh) * | 2020-11-05 | 2021-07-30 | 广州和辰信息科技有限公司 | 一种基于Vue的WebGIS的可视化配置方法和系统 |
US11500587B2 (en) * | 2020-11-20 | 2022-11-15 | Samsung Electronics Co., Ltd. | System and method for in-SSD data processing engine selection based on stream IDs |
US20230054002A1 (en) * | 2021-08-18 | 2023-02-23 | Samsung Electronics Co., Ltd. | Lifecycle-aware persistent storage |
US11947772B2 (en) | 2021-09-07 | 2024-04-02 | Samsung Electronics Co., Ltd. | Electronic device for displaying source information of file and operation method of same |
US20230315661A1 (en) * | 2022-04-01 | 2023-10-05 | Texas Instruments Incorporated | Methods and apparatus to configure an integrated circuit using a direct memory access controller |
CN115793980A (zh) * | 2022-12-08 | 2023-03-14 | 三星(中国)半导体有限公司 | 数据存储方法和数据存储的装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02302855A (ja) * | 1989-05-18 | 1990-12-14 | Nec Corp | メモリ制御装置 |
JPH11327978A (ja) * | 1998-05-13 | 1999-11-30 | Toshiba Corp | データ記憶装置およびデータ管理方法 |
WO2012170751A2 (en) * | 2011-06-09 | 2012-12-13 | Microsoft Corporation | Managing data placement on flash-based storage by use |
CN103620549A (zh) * | 2011-06-20 | 2014-03-05 | 微软公司 | 用于统一数据存储的存储介质抽象 |
CN103842962A (zh) * | 2011-08-08 | 2014-06-04 | 先进数字广播股份有限公司 | 用于改进计算设备的启动的方法 |
CN103942010A (zh) * | 2013-01-22 | 2014-07-23 | Lsi公司 | 用于写入非易失性存储器的管理及区域选择 |
CN104111898A (zh) * | 2014-05-26 | 2014-10-22 | 中国能源建设集团广东省电力设计研究院 | 基于多维数据相似性的混合存储系统及数据管理方法 |
US8874835B1 (en) * | 2014-01-16 | 2014-10-28 | Pure Storage, Inc. | Data placement based on data properties in a tiered storage device system |
WO2015005634A1 (ko) * | 2013-07-08 | 2015-01-15 | 주식회사 윌러스표준기술연구소 | 메모리 시스템 및 이의 제어 방법 |
CN104423800A (zh) * | 2013-08-23 | 2015-03-18 | 三星电子株式会社 | 电子设备以及执行其应用程序的方法 |
CN104572491A (zh) * | 2014-12-30 | 2015-04-29 | 华为技术有限公司 | 一种基于固态硬盘的读缓存管理方法及装置 |
Family Cites Families (137)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5381856A (en) | 1976-12-24 | 1978-07-19 | Toyoda Mach Works Ltd | Fluid bearing equipment |
JPS5723812A (en) | 1980-07-19 | 1982-02-08 | Yamatake Honeywell Co Ltd | Displacement-to-electricity transducer |
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 |
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 |
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 |
ATE341141T1 (de) | 2000-08-31 | 2006-10-15 | Ontrack Data International Inc | System und verfahren für datenverwaltung |
US6704467B2 (en) | 2000-12-21 | 2004-03-09 | Canon Kabushiki Kaisha | Image editing with block selection |
US20020103860A1 (en) | 2001-01-31 | 2002-08-01 | Masahiro Terada | Particular-information displaying method and menu service method and system |
US7346519B2 (en) | 2001-04-10 | 2008-03-18 | Metropolitan Regional Information Systems, Inc | Method and system for MRIS platinum database |
US7266843B2 (en) | 2001-12-26 | 2007-09-04 | Mcafee, Inc. | Malware scanning to create clean storage locations |
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 |
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 | 送信装置、受信装置、送信方法、受信方法、送信プログラム、受信プログラムおよびコンピュータ読み取り可能な記録媒体 |
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 |
KR20080064176A (ko) | 2005-10-21 | 2008-07-08 | 닐슨 미디어 리서치 인코퍼레이티드 | 휴대용 미디어 플레이의 측정 방법 및 장치 |
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 | ジヤトコ株式会社 | フラッシュメモリを備えた制御装置 |
US7870128B2 (en) | 2006-07-28 | 2011-01-11 | Diskeeper Corporation | Assigning data for storage based on speed with which data may be retrieved |
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 | パイオニア株式会社 | ナビゲーションシステム |
JP4283315B2 (ja) | 2007-02-01 | 2009-06-24 | シャープ株式会社 | 画像履歴保管方法、画像履歴保管システム及び画像履歴保管プログラム並びに記録媒体 |
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 |
JP5268447B2 (ja) | 2008-06-26 | 2013-08-21 | キヤノン株式会社 | 医療用撮影装置 |
US8140485B2 (en) | 2008-07-31 | 2012-03-20 | International Business Machines Corporation | Data recovery using a minimum number of recovery streams |
US9280466B2 (en) | 2008-09-09 | 2016-03-08 | Kabushiki Kaisha Toshiba | Information processing device including memory management device managing access from processor to memory and memory management method |
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 |
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 | メモリ管理装置及び方法 |
CN102473140B (zh) | 2009-07-17 | 2015-05-13 | 株式会社东芝 | 存储器管理装置 |
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 |
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 |
WO2011090500A1 (en) | 2010-01-19 | 2011-07-28 | 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 |
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 | 射出発泡成形品 |
US20120042134A1 (en) | 2010-08-11 | 2012-02-16 | Hank Risan | Method and system for circumventing usage protection applicable to electronic media |
US8601217B2 (en) * | 2010-08-31 | 2013-12-03 | Oracle International Corporation | Method and system for inserting cache blocks |
JP2012084127A (ja) | 2010-09-15 | 2012-04-26 | Toshiba Corp | 半導体装置 |
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 |
US20120278532A1 (en) | 2010-11-24 | 2012-11-01 | Wladyslaw Bolanowski | 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 |
CN103354926B (zh) | 2011-01-31 | 2016-04-06 | 三菱电机株式会社 | 存储器控制器 |
JP2012170751A (ja) | 2011-02-23 | 2012-09-10 | Olympus Medical Systems Corp | 画像表示装置、方法、及びプログラム、並びにカプセル型内視鏡システム |
US8738882B2 (en) | 2011-06-03 | 2014-05-27 | Apple Inc. | Pre-organization of data |
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 |
US10089017B2 (en) | 2011-07-20 | 2018-10-02 | Futurewei Technologies, Inc. | Method and apparatus for SSD storage access |
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 |
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 |
WO2013084414A1 (ja) | 2011-12-08 | 2013-06-13 | パナソニック株式会社 | デジタル標本作製装置、デジタル標本作製方法およびデジタル標本作製サーバ |
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 |
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代行デーモンプログラム |
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 |
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 |
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 |
WO2014093198A1 (en) | 2012-12-10 | 2014-06-19 | DANIELSSON, Bjorn | Rules based data processing system and method |
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 |
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 |
KR102023351B1 (ko) * | 2013-03-19 | 2019-11-04 | 삼성전자 주식회사 | 저장 장치 내 할당 촉진을 위한 데이터 분석 방법 및 장치 |
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 |
JP6248412B2 (ja) | 2013-05-13 | 2017-12-20 | ソニー株式会社 | 撮像装置、撮像方法、プログラム |
CN103324703A (zh) | 2013-06-14 | 2013-09-25 | 西安工程大学 | 基于工作流引擎和知识引擎双驱动的知识推送方法 |
JP6099496B2 (ja) | 2013-06-24 | 2017-03-22 | Kddi株式会社 | 管理装置及びプログラム |
US20150026257A1 (en) | 2013-07-16 | 2015-01-22 | Dropbox, Inc. | Music box |
US20160170873A1 (en) | 2013-07-18 | 2016-06-16 | Hitachi, Ltd. | Information processing device |
CN105612503B (zh) | 2013-08-09 | 2018-10-23 | 桑迪士克科技有限责任公司 | 持久性数据结构 |
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 |
CN105593859B (zh) | 2013-09-26 | 2019-07-12 | 西门子保健有限责任公司 | 用于管理和处理医学机构的数据的方法和系统 |
KR102203131B1 (ko) | 2013-10-16 | 2021-01-14 | 삼성전자주식회사 | 파일 관리 방법 및 그 전자 장치 |
JP6038763B2 (ja) | 2013-11-22 | 2016-12-07 | 京セラドキュメントソリューションズ株式会社 | 画像形成装置 |
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 |
WO2016011589A1 (zh) | 2014-07-21 | 2016-01-28 | 宇龙计算机通信科技(深圳)有限公司 | 图像分类方法和图像分类装置 |
US9619214B2 (en) | 2014-08-13 | 2017-04-11 | International Business Machines Corporation | Compiler optimizations for vector instructions |
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 | 东南大学 | 基于认知与情绪状态多模态感知的脑机接口系统 |
WO2016063254A1 (en) | 2014-10-23 | 2016-04-28 | Pageproof.Com Limited | Encrypted collaboration system and method |
US9836229B2 (en) | 2014-11-18 | 2017-12-05 | Netapp, Inc. | N-way merge technique for updating volume metadata in a storage I/O stack |
US10409526B2 (en) | 2014-12-17 | 2019-09-10 | Violin Systems Llc | Adaptive garbage collection |
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 |
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 |
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 |
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 |
-
2016
- 2016-04-05 US US15/090,799 patent/US10509770B2/en active Active
- 2016-05-31 EP EP16172142.8A patent/EP3118745B1/en active Active
- 2016-06-21 KR KR1020160077483A patent/KR102401596B1/ko active IP Right Grant
- 2016-07-12 JP JP2016137928A patent/JP2017021805A/ja active Pending
- 2016-07-12 CN CN201610546162.4A patent/CN106354745B/zh active Active
-
2019
- 2019-11-06 US US16/676,356 patent/US11249951B2/en active Active
-
2022
- 2022-02-14 US US17/671,481 patent/US11989160B2/en active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02302855A (ja) * | 1989-05-18 | 1990-12-14 | Nec Corp | メモリ制御装置 |
JPH11327978A (ja) * | 1998-05-13 | 1999-11-30 | Toshiba Corp | データ記憶装置およびデータ管理方法 |
WO2012170751A2 (en) * | 2011-06-09 | 2012-12-13 | Microsoft Corporation | Managing data placement on flash-based storage by use |
JP2014522537A (ja) * | 2011-06-09 | 2014-09-04 | マイクロソフト コーポレーション | 使用によるフラッシュ・ベースの記憶装置へのデータ配置の管理 |
CN103620549A (zh) * | 2011-06-20 | 2014-03-05 | 微软公司 | 用于统一数据存储的存储介质抽象 |
CN103842962A (zh) * | 2011-08-08 | 2014-06-04 | 先进数字广播股份有限公司 | 用于改进计算设备的启动的方法 |
KR20140094468A (ko) * | 2013-01-22 | 2014-07-30 | 엘에스아이 코포레이션 | 비휘발성 메모리에 대한 기록들의 관리 및 그 기록들의 영역 선택 |
CN103942010A (zh) * | 2013-01-22 | 2014-07-23 | Lsi公司 | 用于写入非易失性存储器的管理及区域选择 |
JP2014167790A (ja) * | 2013-01-22 | 2014-09-11 | Lsi Corp | 不揮発性メモリへの書き込みの管理および領域選択 |
WO2015005634A1 (ko) * | 2013-07-08 | 2015-01-15 | 주식회사 윌러스표준기술연구소 | 메모리 시스템 및 이의 제어 방법 |
CN104423800A (zh) * | 2013-08-23 | 2015-03-18 | 三星电子株式会社 | 电子设备以及执行其应用程序的方法 |
US8874835B1 (en) * | 2014-01-16 | 2014-10-28 | Pure Storage, Inc. | Data placement based on data properties in a tiered storage device system |
CN104111898A (zh) * | 2014-05-26 | 2014-10-22 | 中国能源建设集团广东省电力设计研究院 | 基于多维数据相似性的混合存储系统及数据管理方法 |
CN104572491A (zh) * | 2014-12-30 | 2015-04-29 | 华为技术有限公司 | 一种基于固态硬盘的读缓存管理方法及装置 |
Non-Patent Citations (1)
Title |
---|
CHAO SUN 等: "SEA-SSD: A Storage Engine Assisted SSD With Application-Coupled Simulation Platform", 《 IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS I: REGULAR PAPERS》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213438A (zh) * | 2017-07-03 | 2019-01-15 | 三星电子株式会社 | 预先管理待分配给写入数据的物理地址的存储装置 |
CN109213438B (zh) * | 2017-07-03 | 2024-06-04 | 三星电子株式会社 | 预先管理待分配给写入数据的物理地址的存储装置 |
CN112347166A (zh) * | 2019-08-09 | 2021-02-09 | 烽火通信科技股份有限公司 | 一种提高接口表查找效率的方法及系统 |
CN112347166B (zh) * | 2019-08-09 | 2023-01-31 | 烽火通信科技股份有限公司 | 一种提高接口表查找效率的方法及系统 |
CN112650691A (zh) * | 2019-10-10 | 2021-04-13 | 戴尔产品有限公司 | 基于改变频率的分层数据存储和垃圾回收系统 |
CN112650691B (zh) * | 2019-10-10 | 2024-05-24 | 戴尔产品有限公司 | 基于改变频率的分层数据存储和垃圾回收系统 |
Also Published As
Publication number | Publication date |
---|---|
US20170017663A1 (en) | 2017-01-19 |
EP3118745A1 (en) | 2017-01-18 |
KR102401596B1 (ko) | 2022-05-24 |
US11249951B2 (en) | 2022-02-15 |
CN106354745B (zh) | 2021-09-03 |
EP3118745B1 (en) | 2020-09-16 |
US10509770B2 (en) | 2019-12-17 |
KR20170008153A (ko) | 2017-01-23 |
US20200073856A1 (en) | 2020-03-05 |
US20220171740A1 (en) | 2022-06-02 |
US11989160B2 (en) | 2024-05-21 |
JP2017021805A (ja) | 2017-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106354745A (zh) | 用于提供计算机装置的接口的方法和计算机装置 | |
CN106354425B (zh) | 基于数据属性的数据布局的方法和系统 | |
TWI710900B (zh) | 儲存裝置及方法 | |
TWI702495B (zh) | 對使用者資料執行選擇性下伏暴露映射之設備、方法以及多模式儲存裝置 | |
CN102999431B (zh) | 用于非易失性存储器系统的编织序列计数器 | |
Chang et al. | Efficient management for large-scale flash-memory storage systems with resource conservation | |
US11263149B2 (en) | Cache management of logical-physical translation metadata | |
CN106708423B (zh) | 多模存储管理系统 | |
US20180307620A1 (en) | Persistent memory for key-value storage | |
CN106874217A (zh) | 存储器系统及控制方法 | |
CN106874211A (zh) | 存储器系统及非易失性存储器的控制方法 | |
CN109558084B (zh) | 一种数据处理方法以及相关设备 | |
CN104714893A (zh) | 用于缩放垃圾收集的方法和系统 | |
Chang et al. | A low-cost wear-leveling algorithm for block-mapping solid-state disks | |
CN104246764A (zh) | 利用非均匀散列函数在非均匀访问存储器中放置记录的方法和装置 | |
CN109086141B (zh) | 内存管理方法和装置以及计算机可读存储介质 | |
Wu et al. | An adaptive flash translation layer for high-performance storage systems | |
Tsao et al. | Performance enhancement of garbage collection for flash storage devices: An efficient victim block selection design | |
KR20220040348A (ko) | 데이터 스트림 관리 방법 및 장치 | |
Nguyen et al. | Optimizing mongodb using multi-streamed ssd | |
CN104391652A (zh) | 一种硬盘的损耗均衡方法及装置 | |
CN111796757A (zh) | 一种固态硬盘缓存区管理方法和装置 | |
Debnath | Integrating Flash Memory into the Storage Hierarchy |
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 |