CN108205499A - 用于将数据处理转移到混合存储设备的方法和装置 - Google Patents

用于将数据处理转移到混合存储设备的方法和装置 Download PDF

Info

Publication number
CN108205499A
CN108205499A CN201710832285.9A CN201710832285A CN108205499A CN 108205499 A CN108205499 A CN 108205499A CN 201710832285 A CN201710832285 A CN 201710832285A CN 108205499 A CN108205499 A CN 108205499A
Authority
CN
China
Prior art keywords
data
nvm
hssd
conversion
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710832285.9A
Other languages
English (en)
Other versions
CN108205499B (zh
Inventor
L.V.卡格尼尼
V.A.杜贝科
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.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
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 Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of CN108205499A publication Critical patent/CN108205499A/zh
Application granted granted Critical
Publication of CN108205499B publication Critical patent/CN108205499B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-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)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

描述了将数据转换从主机转移到混合固态驱动器(HSSD)的系统和方法。在一种这样的方法中,HSSD从主机接收初始数据并将该数据存储在第一非易失性存储器(NVM)中。HSSD从主机接收转换命令以转移数据转换。HSSD将该数据从第一NVM复制到第二NVM,该第二NVM配置为提供比第一NVM更精细的数据访问粒度。然后HSSD利用配置的处理电路转换在第二NVM处的数据。HSSD可以将结果存储在第一NVM和/或第二NVM中,并将其发送到主机。

Description

用于将数据处理转移到混合存储设备的方法和装置
技术领域
本公开的方面通常涉及固态存储装置,更具体地,涉及使用不同类型的数据存储的混合固态存储设备。
背景技术
在各种消费电子产品和计算机中,并入了非易失性存储器(NVM)的固态驱动器经常替代或补充用于大容量存储的传统旋转硬盘驱动器。这些非易失性存储器可以包括一个或多个闪存设备,闪存设备可以在逻辑上被划分成块,并且每个块可以进一步逻辑地分成可寻址页面。在一些应用中,主机可以从固态驱动器(SSD)中读取数据,对数据执行转换,并将转换的数据写回到SSD。然而,主机和SSD之间的输入和输出栈或接口可能呈现出瓶颈,限制了主机可以转换存储在SSD中的数据的速度。
发明内容
以下呈现本公开的一个或多个方面的简化概述,以便提供对这些方面的基本理解。本发明内容不是对本公开的所有预期特征的广泛概述,并且既不旨在识别本公开的所有方面的关键或重要要素,也不旨在描述本公开的任何或所有方面的范围。其唯一目的是以简化的形式呈现本公开的一个或多个方面的一些概念,作为稍后呈现的更详细描述的序言。
本公开的方面提供了将数据转换从主机转移(offload)的方法和数据存储装置。从主机转移数据转换可以避免或减轻主机与数据存储装置之间的数据接口瓶颈。一般来说,它将当前数据转换处理范例(paradigm)从以CPU为中心切换为以存储器为中心。
在本公开的一个方面,本公开涉及一种用于操作包括第一非易失性存储器(NVM)、第二NVM和处理电路的混合固态驱动器(HSSD)的方法。HSSD从主机接收数据并将数据(初始数据)存储在第一NVM。为了将数据转换操作转移到HSSD,主机可以向HSSD发送转换命令。响应于接收到的转换命令,HSSD可以将该数据的复制本存储在第二NVM,该第二NVM配置为提供比第一NVM更精细的数据访问粒度。然后,HSSD可以基于转换命令,利用其处理电路来转换存储在第二NVM中的数据。在转换之后,HSSD可将转换后的数据存储在第一NVM和/或第二NVM中。可选地,如有请求,HSSD可以将转换后的数据或结果发送到主机。
在本公开的另一方面,本公开涉及被配置为从主机转移数据转换操作的混合固态驱动器(HSSD)。HSSD包括第一NVM和配置为提供比第一NVM更精细的数据访问粒度的第二NVM。HSSD还包括可操作地耦合到第一NVM和第二NVM的处理电路。该处理电路被配置为从主机接收数据并将数据(初始数据)存储在第一NVM。响应于从主机接收到的转换命令,处理电路被配置为在第二NVM中存储该数据的复制本。然后,处理电路还被配置为基于转换命令来转换存储在第二NVM中的数据。处理电路可以将转换后的数据存储在第一NVM和/或第二NVM中。可选地,如有请求,处理电路可以将转换后的数据或结果发送到主机。
在本公开的另一方面,本公开涉及混合固态驱动器(HSSD)。HSSD包括第一非易失性存储器(NVM)和配置为提供比第一NVM更精细的数据访问粒度的第二NVM。HSSD还包括用于从主机接收数据并将该数据存储在第一NVM中的装置、用于从主机接收转换命令的装置、用于在第二NVM中存储该数据的复制本的装置、以及用于基于该转换命令来转换存储在第二NVM中的数据的装置。HSSD还可以包括用于在第一NVM和/或第二NVM中存储转换后的数据、并且可选地如有请求将转换后的数据发送到主机的装置。
附图说明
图1是根据本公开的一个实施例被配置为从主机转移数据处理的混合固态设备(HSSD)的图。
图2是示出根据本公开的一个实施例用于将数据处理转移到HSSD的处理的图。
图3是根据本公开的一个实施例包括多个可配置功能块的HSSD的数据处理块的图。
图4是示出根据本公开的一个实施例使用MapReduce模型的数据转换处理的图。
图5是示出根据本公开的一个实施例主机与HSSD共享文件系统元数据的图。
图6是示出根据本公开的一个实施例用于登记数据类型和数据转换方法之间的关联的特殊表的示例的图。
图7是根据本公开的一个实施例用于将数据转换转移到HSSD的处理的流程图。
图8是根据本公开的一个实施例用于在HSSD处转换数据的处理的流程图。
图9是根据本公开的一个实施例用于在HSSD处转换数据的另一处理的流程图。
图10是根据本公开的一个实施例用于配置HSSD的数据处理电路以转换从主机转移的数据的处理的流程图。
具体实施方式
现在参考附图,示出了用于将数据处理从主机转移到混合固态设备(HSSD)的系统和方法。在一些实施例中,HSSD从主机接收数据并将数据存储在第一非易失性存储器(NVM)中。在这种情况下,HSSD可以从主机接收转换命令,并且基于该命令,利用处理电路和提供比第一NVM更精细的数据访问的粒度的第二NVM而转换数据。该命令可以使HSSD将数据从第一NVM复制到第二NVM,并对第二NVM上的数据执行一个或多个数据转换操作。在转换之后,HSSD可以将转换后的数据存储在第一NVM和/或第二NVM中。如有请求,HSSD可以将转换后的数据发送到主机。因此,可以从主机转移数据转换操作。
图1是根据本公开的一些实施例可以执行从主机转移数据处理的各种功能的HSSD的框图。系统100包括主机102和耦合到主机102的HSSD 104。主机102向HSSD 104提供用于在主机102和HSSD 104之间传送数据各种命令。例如,主机102可以向HSSD 104提供用于将数据写入HSSD 104的写命令,或者向HSSD 104提供用于从HSSD 104读取数据的读命令。主机102可以是需要数据存储或检索、并且具有用于与HSSD 104通信的兼容接口的任何系统或设备。例如,主机102可以是计算设备、个人计算机、便携式计算机、或工作站、服务器、个人数字助理、数字照相机、数字电话等。
HSSD 104包括主机接口106、控制器108、易失性存储器110、和永久性存储装置112。永久性存储装置112可以包括两种或更多类型的非易失性存储器(NVM),例如类型1NVM114和类型2NVM 116。这些NVM可以在可以由控制器108访问和利用(即,读访问和/或写访问)的方式方面不同。这些NVM及其应用的示例将在以下详细说明。主机接口106耦合到控制器108并且促进主机102和控制器108之间的通信。此外,控制器108耦合到易失性存储器110和永久性存储装置112。主机接口106可以是任何类型的通信接口,例如集成驱动电子(IDE)接口、通用串行总线(USB)接口、串行外设(SP)接口、高级技术附加装置(ATA)接口、小型计算机系统接口(SCSI)、IEEE 1394(Firewire)接口、外设部件互连高速(PCIe)接口、非易失性存储器高速(NVMe)接口等。在一些实施例中,主机102包括HSSD 104。在其他实施例中,HSSD 104相对于主机102是远程的,或者被包含在与主机102通信的远程计算系统中。例如,主机102可以通过有线和/或无线通信链路与HSSD 104通信。
控制器108控制HSSD104的操作。在各种实施例中,控制器108通过主机接口106从主机102接收命令,并执行命令以在主机102和永久性存储装置112之间传送数据。控制器108可以包括用于控制HSSD 104的操作的任何类型的处理装置,例如微处理器、微控制器、嵌入式控制器、逻辑电路、软件、固件等。
在一些实施例中,本文所描述的由控制器108执行的功能中的一些或全部功能可以替代地由HSSD 104的另一元件执行。例如,HSSD 104可以包括微处理器、微控制器、嵌入式控制器、逻辑电路、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、软件、固件或任何种类的处理设备,用于执行在本文被描述为由被控制器108执行的功能中的一个或多个。一些实施例中,在本文被描述为由控制器108执行的功能中的一个或多个功能替代地由主机102执行。在一些实施例中,在本文被描述为由控制器108执行的功能中的一些或所有功能可以替代地由另一元件、例如包括非易失性存储器元件和磁存储元件两者的混合驱动器中的控制器来执行。
易失性存储器110可以是能够存储数据的任何存储器、计算设备、或系统。易失性存储器110可以在设备被供电时保持其数据。例如,易失性存储器110可以是随机存取存储器(RAM),例如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)等等。在各种实施例中,控制器108在于主机102和永久性存储装置112之间传送数据期间,使用存储器110或其一部分存储数据。例如,易失性存储器110或存储器110的一部分可以是可用于存储最近访问的数据以提高访问速度的缓存存储器。
控制器108可以控制向永久性存储装置112写入数据和从永久性存储装置112读取数据。永久性存储装置112可以包括一种或多种类型的非易失性数据存储装置,例如闪存存储系统、固态驱动器、闪存卡、安全数字(SD)卡、通用串行总线(USB)存储设备、紧凑快闪(CompactFlash)卡、智能媒体(SmartMedia)设备、闪存阵列、闪存装置、可擦除可编程只读存储器(EPROM)、电性可擦除可编程只读存储器(EEPROM)、磁阻随机存取存储器、非易失性RAM、铁电RAM、或相变RAM等。
在一些应用中,主机102从HSSD 104读取数据,转换该数据,并将转换后的数据写回到HSSD 104。然而,在这种情况下,主机102与HSSD 104之间的接口常常由于主机102需要从HSSD 104读取数据并将转换后的数据写回到HSSD 104而成为瓶颈。可以通过将数据转换处理转移到HSSD 104来减轻或避免该瓶颈。
图2是示出根据本公开的一个实施例用于将数据转换处理转移到HSSD 104的过程200的框图。在该实施例中,主机102可以将各种数据转换功能转移到HSSD 104。主机102可以执行利用或操纵存储在预选文件系统204中的数据的各种用户空间应用202。该文件系统可以用于控制如何将数据存储在HSSD 104中并从HSSD 104取回。该文件系统可以将存储在HSSD 104的各种数据标识为文件或文件名。该文件系统可以维护用于文件的元数据,并且与每个文件相关联的元数据可以包括描述数据的各种信息。例如,元数据可以包括文件中包含的数据的长度、创建和最后修改文件的时间、访问许可、文件属性、文件在HSSD 104上的位置等等。在一些示例中,元数据还可以包括HSSD 104上的未使用的存储位置。当主机需要转换由文件系统204存储的某些数据或文件时,主机102可以将数据的转换处理转移到HSSD 104,并且使该数据由HSSD 104转换而无需将初始数据传送到主机。
数据转换的一些示例是MapReduce、数据库请求、和机器学习操作。MapReduce程序可以包括映射过程和归约(reduce)过程。映射过程(Map())可以执行某些过滤和分类功能(例如,将学生记录按姓名分类成队列,每个姓名有一个队列)。归约过程(Reduce())可以执行合计(summary)操作(例如,计算每个队列中的学生数量,产生姓名频率)。可以适合MapReduce模型的任何数据处理模型可以被转移到HSSD 104。
可以将一些数据库请求处理转移到HSSD 104。例如,主机102需要在存储在HSSD104的数据库的某个(某些)表上应用数据查询(例如,SELECT SQL查询)。主机102可以向HSSD侧发送这种查询的条件(例如,SELECT first_name,last_name,age FROM employeeWHERE first_name=‘Eric’(从雇员中选择名、姓、年龄,其中名=埃里克))。然后可以在HSSD 104处理该查询,并且可以将结果返回到主机102。
在另一示例中,一些机器学习或数据分析算法可以被转移到HSSD 104。例如,可以将数据的初始集合存储到第一类型的NVM 206中。然后,HSSD 104可以借助数据处理块210和第二类型的NVM 208内部地或本地地处理数据的初始集合。
在一个示例中,HSSD 104可以包括两个或更多不同类型的非易失性存储器(NVM),例如,第一NVM 206和第二NVM 208。第一NVM 206可以与图1的类型1NVM 114相同,并且第二NVM 208可以与图1的类型2NVM 116相同。在一个示例中,第一NVM 206的存储器或数据存储位置被布置为多个块,并且每个块可以包括多个页面。页面可以是第一NVM 206的最小存储器单元。第二NVM 208可以使其存储器以不同的方式、例如类似DRAM的方式来布置。通常,第二NVM 208配置为提供比第一NVM 206更精细的数据访问(例如,擦除、写和/或读)粒度。在一个示例中,可以写入(或编程)到第一NVM 206的数据的最小单元大于第二NVM 208的最小单元。在另一示例中,可以从第一NVM 206读取(或取回)的数据的最小单元大于第二NVM208的最小单元。在另一示例中,可以被擦除(或复位)的第一NVM 206的数据存储的最小单元大于第二NVM 208的最小单元。数据或数据存储的单元可以是位、半字节、字节、字、页面、块等。在一个示例中,第一NVM 206是页面可寻址式,并且第二NVM 208是字节可寻址式。页面可寻址式意味着可以寻址的数据的最小单元是页面。字节可可寻址式意味着可以寻址的数据的最小单元是字节。
在一个示例中,第一NVM 206可以是与非(NAND)闪存等。可以写入NAND闪存的数据的最小单元是页面(例如,一个页面包含多个数据字节)。如果一个页面已经写有数据,则在新数据可以被写入或编程到同一页面之前需要将其擦除或复位。通常,NAND闪存在块级别块擦除但在块级别以下不可擦除。在本公开中,当必须擦除整个块以便擦除该块中包含的单个页面时,存储器设备被称为块可擦除式。块可以包括多个比特、多个字节、多个字或多个页面的数据。
在一个示例中,可以使用比第一NVM 206的数据单元更小的数据单元访问(读和/或写)第二NVM 208。也就是说,第二NVM 208具有比第一NVM 206更精细的数据访问粒度。第二NVM 208的一些示例是磁阻随机存取存储器、非易失性RAM、铁电RAM、电阻随机存取存储器(ReRAM)和/或相变RAM。为了转移数据转换,主机102将初始数据写入HSSD 104,HSSD 104将初始数据存储到第一NVM 206中。然后,HSSD可将初始数据复制到第二NVM 208(例如,字节可寻址式NVM),并在第二NVM 208处执行该初始数据的数据转换。
在几个实施例中,第一NVM 206(例如,NAND闪存)通常可以具有比第二NVM 208更高的延迟和/或比第二NVM 208更便宜。因此,尽管第一NVM 206可以以降低的成本提供所需的容量来存储初始数据,第二NVM 208可以提供(从第一NVM 206不可得的)更低的延迟和更精细的随机存取粒度来更快地传送结果数据,并促进在HSSD处的更快的数据处理。也就是说,HSSD可以将数据从第一NVM复制到第二NVM 208,并在第二NVM处处理该数据。因此,HSSD104可以结合两种类型的非易失性存储器的优点,以促进从主机102转移数据转换。
第二NVM 208可以减轻仅使用第一NVM从主机转移数据转换的某些缺点。例如,与第二NVM 208相比,第一NVM 206(例如,NAND闪存)可能具有相对复杂或受限的读/写过程和/或高误码率(BER)。因此,不希望直接在第一NVM 206处转换数据。此外,由于第二NVM208提供永久性存储,如果转换过程被中断,例如,由于对HSSD的意外功率中断,其可以减小数据丢失的可能性。
HSSD 104可以使用数据处理块210根据从主机102接收的命令212、例如由用户空间应用202在主机处提供的数据转换命令来转换初始数据。用户空间应用的一些示例为数据库系统管理器和MapReduce应用。数据处理块210可以被配置为执行本文所述的任何主机数据处理转移操作。在一些实施例中,数据处理块210可以包括处理器、FPGA、ASIC或任何种类的处理设备。在一个示例中,数据处理块210可以包括已经被编程为执行可以从主机102转移的各种数据转换功能的FPGA。在FPGA(数据处理块210)可以由用户空间应用202利用以转移数据转换功能之前,主机102可以配备有适当的软件和/或固件以例如使用硬件描述语言(HDL)编程FPGA。来自用户空间应用202的命令212可以包括一个或多个启动、停止、或控制可由数据处理块210执行的特定数据转换功能的命令。命令212还可以标识要转换的数据(例如,文件识别)。
参考图3,数据处理块210可以包括可由HSSD利用来同时和/或依次执行各种数据转换功能的多个功能块(例如,在图3中示出九个FPGA 302块)。在用户空间应用202可以利用FPGA块302转移数据转换之前,FPGA块302由主机102或其他编程设备(例如,与数据处理块210数据通信的单独的编程计算机)用例如FPGA编程码而编程。在一些示例中,可以配置或编程多个功能块302以执行相同的数据转换功能。在一些示例中,不同的功能块302可以被配置为执行不同的数据转换功能。例如,用户空间应用202可以向数据处理块210发送一个或多个命令以利用某些预编程功能块302来应用预配置的数据转换功能,用于转换最初存储在第一NVM 206中的文件或数据。响应于命令212,数据处理块210定位文件并利用一个或几个配置的功能块302(FPGA块)来用已经被编程到功能块中的一个或多个数据转换功能来处理该文件。
第一NVM 206可用于当从主机102接收到初始数据时存储该初始数据,并且第二NVM 208可用于对数据执行数据转换。为了转换数据,数据处理块210或控制器可以将初始数据从第一NVM(例如,页面可寻址式NVM)复制到第二NVM(例如,字节可寻址式NVM)。数据处理块210还可以在第二NVM处存储中间数据和转换结果。在转换期间,数据处理块可以将数据从第二NVM中的一个位置移动或复制到另一位置。在转换之后,数据处理块210可以将结果存储在第一NVM和/或第二NVM中,并且如有请求可以将它们发送到主机。在一些示例中,存储在第一NVM中的结果可以是用于另一数据转换操作的初始数据。通常,在数据转换期间,中间数据被存储在第二NVM中。然而,在一个示例中,如果处理数据集将大于第二NVM的容量,可以在转换期间将中间数据存储在第一NVM中。在一个示例中,参考图4,数据处理块210可以被配置为使用本领域已知的MapReduce模型来处理初始数据。MapReduce模型可以使用映射调用过程(例如,Map())来执行例如初始数据的过滤和分类以生成一些临时键或值。然后,MapReduce模型使用一个或多个归约调用过程(例如,Reduce())来执行合计操作以生成最终结果。在一些示例中,MapReduce模型可以通过使用多个线程来处理数据。也就是说,映射调用过程和归约调用过程可以在许多线程中执行,并且一些或所有线程可以同时或并行执行。例如,每个功能块302可以用于执行一个或多个线程。MapReduce模型可用于同时使用大量线程、计算机、或节点解决跨大型数据集的可并行化问题。
MapReduce处理可用于使用文件系统(非结构化的)或数据库(结构化的)处理存储的数据。在这个例子中,MapReduce模型可以利用数据的位置。也就是说,由于初始数据在本地存储在第一NVM 206处,所以数据处理块210可以在数据被存储的地点附近转换该数据而无需经由主机接口106将数据传送到主机102或其他处理设备。
在一个具体示例中,MapReduce模型可以按以下顺序执行。(1)映射功能:数据处理块210将映射函数应用于本地存储的数据(例如,在第一NVM 206处的初始数据),并将输出写入暂时性存储器(例如,第二NVM 208)。数据处理块210确保仅处理冗余输入数据的一个复制本。(2)随机排列(shuffle)功能:数据处理块210基于输出键(由映射函数产生)重新分布数据,使得属于相同键的所有数据被分组在一起。(3)归约功能:数据处理块210并行处理每个键的每组输出数据,以产生最终结果。
在一些实施例中,可以通知HSSD 104(例如,数据处理块210)关于文件系统204如何在第一NVM 206处存储其数据,以便促进上述用于从主机转移数据转换的处理。数据文件可以表示为字节流块(chunk)的序列。文件系统204可以以块表或区段树的形式存储关于这些块的信息。参考图5,可以将该信息包括在主机102与HSSD 104之间共享的元数据中。例如,每一个这样的块可以根据逻辑块寻址(LBA)、节点ID、逻辑开始偏移、长度、数据类型等等描述。
主机102和HSSD 104可以以各种方式共享区段的元数据502。在第一个示例中,来自主机的每个写请求可以包含区段的LBA、inode ID、逻辑偏移、长度、和数据类型。在第二示例中,在HSSD(例如,第一NVM 206)处的元数据区域可以由可用于存储包含元数据信息(例如,LBA、inode ID、逻辑偏移、长度、数据类型等)的记录的特殊流块(具有特殊ID)来表示。LBA可用于定位与区段相关联的记录。在第三个例子中,文件系统可以在写请求中使用特殊标志,该特殊标志通知HSSD关于区段树的元数据。HSSD可以在写操作期间解析该元数据,并以预定格式或由该文件系统使用的格式本地地存储区段树详细信息504。
在一个实施例中,主机102和/或HSSD 104可以登记数据类型和可由数据处理块210执行以转换数据类型的数据处理方法之间的关联。每个字节流块可以被视为某个数据类型的项的序列。可以通过与相关联的数据类型的转换相关联的或该转换专用的方法来处理项序列。
参考图6,在一个示例中,HSSD 104可以维护登记数据类型和转换方法之间的关联的特殊表或数据结构602。在一个实施例中,表602可以被实现为内容可寻址存储器(CAM)。数据类型和转换方法之间的关联可以由主机102(例如,用户空间应用)提供。在图6的示例中,可以使用在第一FPGA功能块(例如,FPGA1)上实现的第一关联处理方法来转换第一数据类型(数据类型#1),可以使用在第二FPGA功能块(例如,FPGA2)上实现的第二关联处理方法来转换第二数据类型(数据类型#2),并且可以使用在第三FPGA功能块(例如,FPGA3)上实现的第三关联处理方法来转换第三数据类型。可以根据需要由主机重新配置数据类型和转换方法之间的关联。在一个实施例中,第一、第二和第三数据处理方法可以由处理块210同时和/或依次执行。
在一个实施例中,FPGA功能块可以设置为不同的配置以执行不同的数据处理方法。在主机102可以如上所述地利用FPGA执行数据处理或转换之前,FPGA由主机102或使用本领域已知的特殊FPGA编程软件的合适的计算设备编程或配置。在一些示例中,FPGA可以重新配置或重新编程以执行不同的数据转换方法。在编程FPGA期间,数据转换方法可能与相应的默认数据类型相关联。在一些示例中,FPGA可以被重新编程以改变转换方法和数据类型之间的关联。
图7是根据本公开的一个实施例用于从主机向HSSD 104转移数据转换的处理700的流程图。在一个示例中,处理700可以用于执行图2-6中描述的数据转换转移过程。在块702,HSSD 104可以从主机102接收数据,并将该数据(例如,初始数据)存储在第一NVM(例如,NVM 206)中。第一NVM例如可以是NAND闪存等。在某些方面,块702可以以控制器108实现,或者如图1所示用控制器108与主机102结合实现。在块704,HSSD 104可以从主机104接收转换命令。例如,HSSD 104可以利用主机接口106从主机接收转换命令。HSSD 104可以利用其数据处理块210(处理电路)根据接收到的转换命令处理或转换数据。在一个示例中,数据处理块210可以被实现为包括已经使用已知的FPGA编程方法预配置以执行各种数据转换功能的多个功能块302(参见图3)的FPGA。在某些方面,块704可以用控制器108实现,或者如图1所示用控制器108与主机102结合实现。
在块706,HSSD 104在第二NVM处存储初始数据的复制本,该第二NVM被配置为提供比第一NVM更精细的数据访问粒度。例如,第二NVM可以在页面级别、字节级别、和/或位级别上随机访问(读和/或写),而第一NVM可以在页面级别或以上访问。第二NVM可以与第二NVM208相同。在某些方面,块706可以用控制器108实现,或者如图1所示用控制器108与主机102结合实现。在块708,HSSD 104可以使用处理电路基于转换命令转换存储在第二NVM中的数据,并将转换后的数据存储在第一NVM中。在本公开的一个实施例中,数据处理块210(例如,FPGA)可以使用其内部寄存器(未示出)来处理数据,然后将结果存储在第二NVM中。在本公开的另一个实施例中,数据处理块210可以将初始数据从第一NVM(例如,NAND)复制到第二NVM,并且在第二NVM处处理数据。然后,数据处理块210可以将转换后的数据存储在第二NVM的相同或不同的位置。在某些方面,块708可以用控制器108实现,或者如图1所示用控制器108与主机102结合实现。
在块710,HSSD 104可以将转换后的数据发送回主机102。例如,HSSD 104可利用主机接口将转换后的数据发送回主机。在本公开的一些实施例中,HSSD 104可以通知或不通知主机关于转换的完成,并且可以将或可以不将转换后的数据发送回主机102。在某些方面,块708可以用控制器108实现,或者如图1所示用控制器108与主机102结合实现。
在一个实施例中,HSSD 104(例如,控制器108)决定哪个NVM(例如,第一NVM或第二NVM)用于存储转换后的数据。在另一实施例中,主机102可以决定如何将转换后的数据存储在HSSD104中。例如,主机可以向HSSD发送开始数据转换的第一命令、读取第二NVM 208中的结果的第二命令以及以将转换后的数据从第二NVM移动到第一NVM的第三命令。主机还可以发送从第二NVM删除结果而不将该结果存储在第一NVM中的命令。主机可能能够以比HSSD更有效的方式管理存储在HSSD中的数据,因为主机(或用户空间应用202)可以更加了解关于数据处理的当前工作负荷。
图8是根据本公开的一个实施例用于在HSSD 104处转换数据的处理800的流程图。该处理可以被包括在用于从主机102转移数据转换的处理700的块706中。由于初始数据已经存储在HSSD中,主机可以请求HSSD执行数据转换而不将数据写入HSSD。在一些示例中,主机102可以请求HSSD对存储在第一NVM 206处的数据执行多个数据转换操作或命令。在块802,HSSD 104可以基于从主机接收的第一转换命令来转换存储在第一NVM 206中的数据。HSSD 104可以首先将初始数据复制到第二NVM并在第二NVM处转换复制的数据。在块804,HSSD可以将任何中间结果或数据存储在第二NVM 208中。例如,HSSD可以使用如图4所示的MapReduce模型来转换数据并将临时键和值(中间结果)存储在第二NVM 208中。在块806,HSSD可以基于从主机102接收的第二转换命令来转换第二NVM中的中间结果。虽然图8仅示出了顺序执行的两个转换命令,但是在其他示例中,可以按顺序执行两个以上的转换命令,直到获得最终结果为止。在块808,当数据转换完成时,HSSD可以将最终结果(例如,转换后的数据)存储在第一NVM 206和/或第二NVM 208中。在一些示例中,HSSD可以将结果发送给主机。
图9是根据本公开的一个实施例的用于在HSSD 104处转换数据的处理900的流程图。该处理可以被包括在用于从主机102转移数据转换的处理700的块706中。在一些示例中,主机102可以请求HSSD对存储在第一NVM 206处的数据执行多个数据转换操作或命令。不同于上面关于图8描述的处理800,HSSD可以并行地执行这些数据转换命令。在一些示例中,一些转换命令可以同时执行,而一些转换命令可以顺序地执行。
在块902,HSSD可以基于第一转换命令来转换在第二NVM处的数据。在块904,HSSD可以基于第二转换命令来转换在第二NVM处的数据。在块906,HSSD可以基于第三转换命令来转换在第二NVM处的数据。HSSD可以使用相应的功能块302(参见图3)同时执行这些转换命令。在块908,HSSD可以在第二NVM处存储任何中间结果。在块910,HSSD可以将结果存储在第一NVM和/或第二NVM中,并且如有请求可以将其发送到主机。
图10是根据本公开的一个实施例用于利用数据处理块210从主机102转移数据转换操作的处理1000的流程图。该处理可以包括在上面关于图3描述的处理700中。在一个实施例中,数据处理块210(例如,FPGA)可以包括如图3所示的多个可配置功能块302。功能块302已被配置为执行各种数据转换功能。在块1002,HSSD 104可以接收利用第一功能块来用第一转换方法转换数据的命令。在块1004,HSSD 104可以接收利用第二功能块来用第二转换方法转换数据的命令。在一些示例中,HSSD 104可以在相同或不同的数据上同时或按顺序地使用第一功能块和第二功能块,以便增加设备的数据处理能力或吞吐量。在块1006,HSSD 104可以用第一和第二数据转换方法例如同时地或顺序地转换存储在第一NVM 206中的初始数据。在一个实施例中,在块1008,HSSD 104可以接收利用第三功能块执行与第一和第二数据转换方法不同的第三数据转换方法的命令。这样,数据处理电路210可以用于对数据执行不同的数据处理方法。
虽然以上描述包含本发明的许多具体实施例,但是这些不应被解释为对本发明的范围的限制,而是作为其具体实施例的示例。因此,本发明的范围不应由所示实施例而应由所附权利要求及其等同物来确定。
上述各种特征和过程可以彼此独立地使用,或者可以以各种方式组合。所有可能的组合和子组合旨在落入本公开的范围内。此外,在一些实现中可以省略某些方法、事件、状态或处理块。本文描述的方法和过程也不限于任何特定的序列,并且与其相关的块或状态可以以适合的其它顺序来执行。例如,描述的任务或事件可以以除了具体公开的顺序之外的顺序而执行,或者多个可以组合在单个块或状态中。示例性任务或事件可以串行、并行或以某种其他合适的方式执行。可以向所公开的示例性实施例中添加或从其中删除任务或事件。本文描述的示例性系统和组件可以不同于所描述而被配置。例如,与所公开的示例性实施例相比,可以添加、移除或重排要素。

Claims (36)

1.一种操作包括第一非易失性存储器NVM、第二NVM和处理电路的混合固态驱动器的方法,所述方法包括:
从主机接收数据并将该数据存储在第一NVM处;
从主机接收转换命令;
将该数据的复制本存储在配置为提供比第一NVM更精细的数据访问粒度的第二NVM处;以及
基于转换命令,利用处理电路来转换存储在第二NVM处的数据以生成转换后的数据。
2.根据权利要求1所述的方法,其中所述处理电路包括处理器、现场可编程门阵列FPGA、或专用集成电路ASIC中的至少一个。
3.根据权利要求1所述的方法,其中所述转换包括:
利用MapReduce模型来处理存储在第二NVM处的数据;以及
将由MapReduce模型生成的临时值存储在第二NVM处。
4.根据权利要求1所述的方法,其中所述转换包括:
根据转换命令处理存储在第二NVM处的数据以生成中间数据;以及
将所述中间数据存储在第二NVM处。
5.根据权利要求1所述的方法,还包括:
从所述主机接收所述数据的元数据,其中所述元数据包括关于存储在所述第一NVM处的数据的信息。
6.根据权利要求1所述的方法,还包括:
根据转换命令登记多个数据类型和多个数据处理方法之间的关联。
7.根据权利要求6所述的方法,其中所述转换包括:
确定所述多个数据类型的第一数据类型;以及
选择所述多个数据处理方法的第一数据处理方法,其中所述第一数据处理方法对应于所述第一数据类型。
8.根据权利要求1所述的方法,其中所述转换包括:
使用第一数据处理方法处理第一数据类型的数据;以及
使用第二数据处理方法,与第一数据类型的处理同时处理第二数据类型的数据。
9.根据权利要求1所述的方法,其中所述转换包括:
对数据执行第一数据转换;以及
对数据执行与第一数据转换不同的第二数据转换。
10.根据权利要求1所述的方法,
其中所述第一NVM包括NAND闪存,并且
其中所述第二NVM包括磁阻随机存取存储器、非易失性RAM、铁电RAM、相变RAM、或电阻随机存取存储器ReRAM中的至少一个。
11.根据权利要求10所述的方法,其中所述第一NVM为页面可寻址的,并且所述第二NVM为字节可寻址的。
12.根据权利要求1所述的方法,还包括以下中的至少一个:
将转换后的数据存储在第一NVM中;
将转换后的数据存储在第二NVM中;或者
将转换后的数据发送到主机。
13.一种混合固态驱动器HSSD,包括:
第一非易失性存储器NVM;
配置为提供比第一NVM更精细的数据访问粒度的第二NVM;以及
处理电路,其可操作地耦合到所述第一NVM和所述第二NVM,其中所述处理电路被配置为:
从主机接收数据并将该数据存储在第一NVM处;
从主机接收转换命令;
在第二NVM处存储该数据的复制本;和
基于转换命令转换存储在第二NVM处的数据以生成转换后的数据。
14.根据权利要求13所述的HSSD,其中所述处理电路包括处理器、现场可编程门阵列FPGA、或专用集成电路ASIC中的至少一个。
15.根据权利要求13所述的HSSD,其中所述处理电路还被配置为:
利用MapReduce模型来处理在所述第二NVM处存储的数据;和
将由MapReduce模型生成的临时值存储在第二NVM处。
16.根据权利要求13所述的HSSD,其中所述处理电路还被配置为:
根据转换命令处理存储在第二NVM处的数据以生成中间数据;以及
在第二NVM处存储所述中间数据。
17.根据权利要求13所述的HSSD,其中所述处理电路还被配置为从所述主机接收所述数据的元数据,并且其中所述元数据包括关于存储在所述第一NVM处的数据的信息。
18.根据权利要求13所述的HSSD,其中所述处理电路还被配置为根据所述转换命令来登记多个数据类型与多个数据处理方法之间的关联。
19.根据权利要求18所述的HSSD,其中所述处理电路还被配置为通过以下来转换所述数据:
确定所述多个数据类型的第一数据类型;以及
选择所述多个数据处理方法的第一数据处理方法,其中所述第一数据处理方法对应于所述第一数据类型。
20.根据权利要求13所述的HSSD,其中所述处理电路还被配置为通过以下来转换所述数据:
使用第一数据处理方法处理第一数据类型的数据;以及
使用第二数据处理方法,与第一数据类型的处理同时处理第二数据类型的数据。
21.根据权利要求13所述的HSSD,其中所述处理电路还被配置为通过以下来转换所述数据:
对数据执行第一数据转换;以及
对数据执行与第一数据转换不同的第二数据转换。
22.如权利要求13所述的HSSD,
其中所述第一NVM包括NAND闪存,以及
其中所述第二NVM包括磁阻随机存取存储器、非易失性RAM、铁电RAM、相变RAM、或电阻随机存取存储器ReRAM中的至少一个。
23.根据权利要求22所述的HSSD,其中,所述第一NVM为页面可寻址的,并且所述第二NVM为字节可寻址的。
24.根据权利要求13所述的HSSD,其中所述处理电路还被配置为进行以下中的至少一个:
将转换后的数据存储在第一NVM中;
将转换后的数据存储在第二NVM中;或者
将转换后的数据发送到主机。
25.一种混合固态驱动器HSSD,包括:
第一非易失性存储器NVM;
配置为提供比第一NVM更精细的数据访问粒度的第二NVM;
用于从主机接收数据并将该数据存储在第一NVM处的部件;
用于从主机接收转换命令的部件;
用于在第二NVM处存储该数据的复制本的部件;以及
用于基于转换命令转换存储在第二NVM处的数据的部件。
26.根据权利要求25所述的HSSD,其中所述用于转换的部件包括处理器、现场可编程门阵列FPGA、或专用集成电路ASIC中的至少一个。
27.根据权利要求25所述的HSSD,其中所述用于转换的部件被配置为:
利用MapReduce模型来处理存储在第二NVM处的数据;以及
将由MapReduce模型生成的临时值存储在第二NVM处。
28.根据权利要求25所述的HSSD,其中所述用于转换的部件被配置为:
根据转换命令处理存储在第二NVM处的数据以生成中间数据;以及
在第二NVM处存储所述中间数据。
29.根据权利要求25所述的HSSD,还包括:
用于从所述主机接收所述数据的元数据的部件,其中所述元数据包括关于存储在所述第一NVM处的数据的信息。
30.根据权利要求25所述的HSSD,还包括:
用于根据转换命令登记多个数据类型和多个数据处理方法之间的关联的部件。
31.根据权利要求30所述的HSSD,其中所述用于转换的部件还被配置为:
确定所述多个数据类型的第一数据类型;以及
选择多个数据处理方法的第一数据处理方法,其中所述第一数据处理方法对应于所述第一数据类型。
32.根据权利要求25所述的HSSD,其中所述用于转换的部件还被配置为:
使用第一数据处理方法处理第一数据类型的数据;以及
与第一数据类型的处理同时使用第二数据处理方法来处理第二数据类型的数据。
33.根据权利要求25所述的HSSD,其中所述用于转换的部件还被配置为:
对数据进行第一次数据转换;以及
对数据进行与所述第一数据转换不同的第二数据转换。
34.根据权利要求25所述的HSSD,
其中所述第一NVM包括NAND闪存,并且
其中所述第二NVM包括磁阻随机存取存储器、非易失性RAM、铁电RAM、相变RAM、或电阻随机存取存储器ReRAM中的至少一个。
35.根据权利要求34所述的HSSD,其中所述第一NVM为页面可寻址的,并且所述第二NVM为字节可寻址的。
36.根据权利要求25所述的HSSD,还包括用于以下中的至少一个的部件:
将转换后的数据存储在第一NVM中;
将转换后的数据存储在第二NVM中;或者
将转换后的数据发送到主机。
CN201710832285.9A 2016-12-16 2017-09-15 用于将数据处理转移到混合存储设备的方法和装置 Active CN108205499B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/382,564 2016-12-16
US15/382,564 US10359953B2 (en) 2016-12-16 2016-12-16 Method and apparatus for offloading data processing to hybrid storage devices

Publications (2)

Publication Number Publication Date
CN108205499A true CN108205499A (zh) 2018-06-26
CN108205499B CN108205499B (zh) 2022-08-09

Family

ID=62251379

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710832285.9A Active CN108205499B (zh) 2016-12-16 2017-09-15 用于将数据处理转移到混合存储设备的方法和装置

Country Status (3)

Country Link
US (1) US10359953B2 (zh)
CN (1) CN108205499B (zh)
DE (1) DE102017120787A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111399752A (zh) * 2019-01-03 2020-07-10 慧荣科技股份有限公司 不同类型存储单元的控制装置及方法
CN111736757A (zh) * 2019-03-25 2020-10-02 西部数据技术公司 用于机器学习的增强型存储设备存储架构
CN113767361A (zh) * 2019-03-14 2021-12-07 马维尔亚洲私人有限公司 启用以太网的固态驱动器(ssd)
US11748022B2 (en) 2019-01-03 2023-09-05 Silicon Motion, Inc. Method and apparatus for controlling different types of storage units

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11769042B2 (en) 2018-02-08 2023-09-26 Western Digital Technologies, Inc. Reconfigurable systolic neural network engine
US11494620B2 (en) 2018-02-08 2022-11-08 Western Digital Technologies, Inc. Systolic neural network engine capable of backpropagation
US10509600B2 (en) * 2018-02-27 2019-12-17 Goke Us Research Laboratory Method and apparatus for data compression and decompression using a standardized data storage and retrieval protocol
US10509698B2 (en) * 2018-02-27 2019-12-17 Goke Us Research Laboratory Method and apparatus for data encoding and decoding using a standardized data storage and retrieval protocol
US10452871B2 (en) * 2018-02-27 2019-10-22 Goke Us Research Laboratory Method and apparatus for data encryption using a standardized data storage and retrieval protocol
US10929058B2 (en) 2019-03-25 2021-02-23 Western Digital Technologies, Inc. Enhanced memory device architecture for machine learning
US11010097B2 (en) 2019-09-18 2021-05-18 International Business Machines Corporation Apparatus, systems, and methods for offloading data operations to a storage system
US20220236902A1 (en) * 2021-01-27 2022-07-28 Samsung Electronics Co., Ltd. Systems and methods for data transfer for computational storage devices

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070086260A1 (en) * 2005-10-13 2007-04-19 Sinclair Alan W Method of storing transformed units of data in a memory system having fixed sized storage blocks
US20120079175A1 (en) * 2010-09-28 2012-03-29 Fusion-Io, Inc. Apparatus, system, and method for data transformations within a data storage device
US20140133237A1 (en) * 2012-11-09 2014-05-15 Sandisk Technologies Inc. On-Device Data Analytics Using NAND Flash Based Intelligent Memory
CN103946810A (zh) * 2011-09-30 2014-07-23 英特尔公司 具有包含可配置分区的非易失性随机访问存储器的平台储存层次结构
CN104346290A (zh) * 2013-08-08 2015-02-11 三星电子株式会社 存储装置、计算机系统及其操作方法
CN104375956A (zh) * 2013-08-16 2015-02-25 Lsi公司 用于使用可变大小快闪转变层的方法及设备

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7650331B1 (en) * 2004-06-18 2010-01-19 Google Inc. System and method for efficient large-scale data processing
US20090203430A1 (en) * 2008-02-07 2009-08-13 Igt Hybrid memory system and spin-buffer journaling in a gaming machine
US8560779B2 (en) * 2011-05-20 2013-10-15 International Business Machines Corporation I/O performance of data analytic workloads
US8868869B2 (en) 2011-08-08 2014-10-21 International Business Machines Corporation Enhanced copy-on-write operation for solid state drives
US8549518B1 (en) * 2011-08-10 2013-10-01 Nutanix, Inc. Method and system for implementing a maintenanece service for managing I/O and storage for virtualization environment
JP5831324B2 (ja) * 2012-03-27 2015-12-09 富士通株式会社 制御装置,制御方法,プログラム及び分散処理システム
US9015525B2 (en) * 2012-06-19 2015-04-21 Lsi Corporation Smart active-active high availability DAS systems
US9501483B2 (en) * 2012-09-18 2016-11-22 Mapr Technologies, Inc. Table format for map reduce system
US8780635B2 (en) * 2012-11-09 2014-07-15 Sandisk Technologies Inc. Use of bloom filter and improved program algorithm for increased data protection in CAM NAND memory
US8792279B2 (en) * 2012-11-09 2014-07-29 Sandisk Technologies Inc. Architectures for data analytics using computational NAND memory
US9552288B2 (en) * 2013-02-08 2017-01-24 Seagate Technology Llc Multi-tiered memory with different metadata levels
US9489148B2 (en) * 2013-03-13 2016-11-08 Seagate Technology Llc Selecting between non-volatile memory units having different minimum addressable data unit sizes
US8819335B1 (en) * 2013-08-30 2014-08-26 NXGN Data, Inc. System and method for executing map-reduce tasks in a storage device
US9619167B2 (en) 2013-11-27 2017-04-11 Intel Corporation System and method for computing message digests
US9141292B2 (en) 2014-01-03 2015-09-22 Smart High Reliability Solutions Llc Enhanced interface to firmware operating in a solid state drive
CN105390501A (zh) 2015-11-25 2016-03-09 上海新储集成电路有限公司 一种fpga芯片及其制作方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070086260A1 (en) * 2005-10-13 2007-04-19 Sinclair Alan W Method of storing transformed units of data in a memory system having fixed sized storage blocks
US20120079175A1 (en) * 2010-09-28 2012-03-29 Fusion-Io, Inc. Apparatus, system, and method for data transformations within a data storage device
CN103946810A (zh) * 2011-09-30 2014-07-23 英特尔公司 具有包含可配置分区的非易失性随机访问存储器的平台储存层次结构
US20140133237A1 (en) * 2012-11-09 2014-05-15 Sandisk Technologies Inc. On-Device Data Analytics Using NAND Flash Based Intelligent Memory
CN104346290A (zh) * 2013-08-08 2015-02-11 三星电子株式会社 存储装置、计算机系统及其操作方法
CN104375956A (zh) * 2013-08-16 2015-02-25 Lsi公司 用于使用可变大小快闪转变层的方法及设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KAI BU 等: "The Optimization of the Hierarchical Storage System Based on the Hybrid SSD Technology", 《2012 SECOND INTERNATIONAL CONFERENCE ON INTELLIGENT SYSTEM DESIGN AND ENGINEERING APPLICATION》 *
何耀 等: "面向NVM的混合粒度文件系统", 《软件导刊》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111399752A (zh) * 2019-01-03 2020-07-10 慧荣科技股份有限公司 不同类型存储单元的控制装置及方法
US11748022B2 (en) 2019-01-03 2023-09-05 Silicon Motion, Inc. Method and apparatus for controlling different types of storage units
CN111399752B (zh) * 2019-01-03 2023-11-28 慧荣科技股份有限公司 不同类型存储单元的控制装置及方法
CN113767361A (zh) * 2019-03-14 2021-12-07 马维尔亚洲私人有限公司 启用以太网的固态驱动器(ssd)
CN111736757A (zh) * 2019-03-25 2020-10-02 西部数据技术公司 用于机器学习的增强型存储设备存储架构

Also Published As

Publication number Publication date
DE102017120787A1 (de) 2018-06-21
US20180173441A1 (en) 2018-06-21
US10359953B2 (en) 2019-07-23
CN108205499B (zh) 2022-08-09

Similar Documents

Publication Publication Date Title
CN108205499A (zh) 用于将数据处理转移到混合存储设备的方法和装置
KR101397353B1 (ko) Key-value 스토어를 포함하는 메모리 시스템
CN105103137B (zh) 数据存储系统的数据的压缩和格式化
US11630766B2 (en) Memory system and operating method thereof
CN109085997A (zh) 用于非易失性存储器的存储器高效持续键值储存
CN108572933A (zh) 用于直接存储器存取的数据缓冲器指针找取
CN101986305B (zh) 一种文件系统的操作方法及一种通信装置
US10216418B2 (en) Storage apparatus and method for autonomous space compaction
CN106168925A (zh) 用于存储和从闪存恢复数据的方法和系统
CN105745627A (zh) 用于非易失性存储器存储设备的地址转换
US9274978B2 (en) Migration of encrypted data for data storage systems
CN105683953B (zh) 支持加速数据库操作的数据存储设备
CN101271383A (zh) 操作数据处理系统的系统、方法以及计算机程序产品
CN105408875B (zh) 在存储器接口上的分布式过程执行和文件系统
US11042328B2 (en) Storage apparatus and method for autonomous space compaction
US20170357462A1 (en) Method and apparatus for improving performance of sequential logging in a storage device
TW201942751A (zh) 資料儲存系統之控制單元以及邏輯至物理映射表更新方法
CN108958646A (zh) 改变储存参数
CN111796759B (zh) 多平面上的片段数据读取的计算机可读取存储介质及方法
US11269771B2 (en) Storage device for improving journal replay, operating method thereof, and electronic device including the storage device
US20200310668A1 (en) Methods and systems of efficiently storing data
CN110489056A (zh) 控制器以及包括该控制器的存储器系统
CN102129476A (zh) 利用zip压缩格式的虚拟文件系统应用
CN113994314A (zh) 扩展存储器接口
US10095433B1 (en) Out-of-order data transfer mechanisms for data storage systems

Legal Events

Date Code Title Description
PB01 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