CN107193486A - 数据存储设备和包括该数据存储设备的数据处理系统 - Google Patents
数据存储设备和包括该数据存储设备的数据处理系统 Download PDFInfo
- Publication number
- CN107193486A CN107193486A CN201710151764.4A CN201710151764A CN107193486A CN 107193486 A CN107193486 A CN 107193486A CN 201710151764 A CN201710151764 A CN 201710151764A CN 107193486 A CN107193486 A CN 107193486A
- Authority
- CN
- China
- Prior art keywords
- data
- ssd
- data segment
- memory
- write
- 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
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/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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- 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
- G06F3/0656—Data buffering arrangements
-
- 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
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- 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
-
- 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/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
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)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种数据存储设备包括多个固态盘(SSD)和被配置为控制SSD的控制器。控制器响应于主机的第一写请求,分别将第一数据段和第一数据段的复制数据写入所述多个SSD中的两个相应SSD的第一类型存储器,响应于主机的第二写请求,分别将第二数据段和第二数据段的复制数据写入所述多个SSD中的两个相应SSD的第一类型存储器,并且将基于所述复制数据产生的奇偶校验数据写入奇偶校验SSD的第一类型存储器或第二类型存储器。该数据存储设备可以包括在数据处理系统中。
Description
相关申请的交叉引用
本申请要求于2016年3月14日提交的韩国专利申请No.10-2016-0030241的优先权,其公开内容通过引用的方式完整地并入本文。
技术领域
本发明构思的实施例涉及一种数据存储设备,更具体地,涉及一种包括非易失性随机存取存储器的数据存储设备和包括该数据存储设备的数据处理系统。
背景技术
大容量存储设备通常包括多个存储器设备。存储器设备用于存储数据,并且可以分为易失性存储器设备和非易失性存储器设备。闪存设备是电可擦除可编程只读存储器(EEPROM)的示例,其中在单个编程操作中对多个存储器单元进行擦除或编程。对每个页执行编程或读操作,并且对每个块执行擦除操作。块可以包括多个页。一种类型的闪存设备是NAND闪存设备。
同时,在存储设备故障或电源故障的情况下,经常使用数据复制来进行数据恢复。
发明内容
根据本发明构思的一些实施例,提供了一种数据存储设备,其包括多个固态盘(SSD)和被配置为控制SSD的控制器。所述控制器可以被配置为响应于主机的第一写请求而将第一数据段和第一数据段的复制数据写入所述多个SSD中的两个相应SSD的第一类型存储器,可以被配置为响应于主机的第二写请求而将第二数据段和第二数据段的复制数据写入所述多个SSD中的两个相应SSD的第一类型存储器,并且可以被配置为将基于第一数据段的复制数据和第二数据段的复制数据所产生的奇偶校验数据写入所述多个SSD中的奇偶校验SSD的第一类型存储器和第二类型存储器中的任何一个。
根据本发明构思的其他实施例,提供了一种数据处理系统,其包括主机和连接到主机的数据存储设备以及控制器,所述数据存储设备包括第一至第N SSD,其中N是至少为2的整数,所述控制器被配置为控制第一至第N SSD。
所述控制器可以被配置为将与从主机接收的多个写请求相对应的数据段的每一个存储在第一至第(N-1)SSD中相应的SSD的第一类型存储器中,可以被配置为将基于至少一些所述数据段的复制数据存储在第N SSD的第一类型存储器中,并且可以被配置为将基于所有所述数据段的奇偶校验数据存储在第N SSD的第一类型存储器或第二类型存储器中。
根据本发明构思的另外实施例,提供了一种操作数据存储设备的方法,所述数据存储设备包括控制器、缓冲器和多个SSD。所述方法包括:从主机接收第一写请求;响应于第一写请求而将第一数据段写入缓冲器;将第一数据段写入所述多个SSD中的第一SSD;将第一数据段写入所述多个SSD中的第N SSD;将对第一写请求的响应发送到主机;从主机接收第二写请求;响应于第二写请求而将第二数据段写入缓冲器;将第二数据段写入第二SSD;将基于第二数据段的复制数据写入第N SSD;以及将对第二写请求的响应发送到主机。
根据本发明构思的另外实施例,提供了一种数据存储设备,其包括:多个固态盘(SSD),至少包括第一SSD、第二SSD和奇偶校验SSD,其中,每个SSD包括至少一个第一类型存储器和至少一个第二类型存储器;以及控制器,被配置为控制所述多个SSD的操作,其中,所述控制器被配置为响应于从主机接收的第一写命令而将第一数据段写入第一SSD的第一类型存储器,响应于从主机接收的第二写命令而将第二数据段写入第二SSD的第一类型存储器,并且还响应于从主机接收的第一写命令和第二写命令中的至少一个而将基于第一数据段和第二数据段的数据写入奇偶校验SSD的第一类型存储器,并且随后将至少从第一数据段和第二数据段产生的奇偶校验数据写入奇偶校验SSD的第一类型存储器和第二类型存储器中的至少一个。
附图说明
通过参照附图详细描述本发明构思的示例性实施例,本发明构思的上述及其他特点和优点将变得更清楚。
图1是根据本发明构思的一些实施例的数据处理系统的框图。
图2是根据本发明构思的一些实施例的图1所示的主机和控制器的框图。
图3是图1所示的数据存储设备的实施例的框图。
图4A、图4B和图4C是图3所示的第一固态驱动器或固态盘(SSD)的示例的框图。
图5A是根据本发明构思的一些实施例的NAND型闪存设备的二维存储器单元阵列的示图。
图5B是根据本发明构思的一些实施例的NAND型闪存设备的三维存储器单元阵列的示图。
图6是用于解释根据本发明构思的一些实施例的数据存储设备的操作的示图。
图7是用于解释根据本发明构思的其他实施例的数据存储设备的操作的示图。
图8是用于解释根据本发明构思的另外实施例的数据存储设备的操作的示图。
图9A、图9B、图9C和图9D示出了根据本发明构思的一些实施例的控制器向SSD发出的命令。
图10是根据本发明构思的一些实施例的复制数据的方法的流程图。
图11是根据本发明构思的其他实施例的复制数据的方法的流程图。
图12是根据本发明构思的一些实施例的数据处理系统的框图。
具体实施方式
本发明构思的一些实施例提供了一种数据存储设备,其可以包括多个固态驱动器或固态盘(SSD),每个SSD包括用于主复制(例如,RAID 1复制)的第一类型存储器(例如,非易失性随机存取存储器(NVRAM))和用于辅复制(例如,RAID 5/6复制)的第二类型存储器(例如,NAND(例如,NAND闪存))。
图1是根据本发明构思的一些实施例的数据处理系统100的框图。图2是根据本发明构思的一些实施例的图1所示的主机200和控制器310的框图。
参考图1和图2,数据处理系统100可以包括主机200和通过接口110与主机200传送命令和/或数据的数据存储设备300。数据处理系统100可以被实现为个人计算机(PC)、工作站、数据中心、互联网数据中心(IDC)、存储区域网络(SAN)、网络附属存储器(NAS)或移动计算设备,但是本发明构思不限于这些示例。移动计算设备可以被实现为膝上型计算机、蜂窝电话、智能电话、平板PC、个人数字助理(PDA)、企业数字助理(EDA)、数字静止相机、数字视频相机、便携式多媒体播放器(PMP)、个人导航设备或便携式导航设备(PND)、手持式游戏控制台、移动互联网设备(MID)、可穿戴计算机、物联网(IoT)设备、物联网(IoE)设备、无人机或电子书,但是本发明构思不限于这些示例。
接口110可以是串行高级技术附件(SATA)接口、SATA快速(SATAe)接口、SAS(串行附件小型计算机系统接口(SCSI))、外围组件互连高速(PCIe)接口、非易失性存储器快速(NVMe)接口、高级主机控制器接口(AHCI)或多媒体卡(MMC)接口,但不限于此。接口110可以传输电信号或光信号。
主机200可以经由接口110控制数据存储设备300的数据处理操作(例如,写操作或读操作)。主机200可以指主机控制器。
数据存储设备300可以包括控制器310、缓冲器360和多个存储器设备410至450。数据存储设备300还可以包括电源管理集成电路(PMIC)370,如图2所示。图1中的多个存储器设备410至450可以统称为存储器群集400,并且图2中的存储器设备410至430可以称为存储器群集400a。存储器群集400和400a均可以包括N个SSD,其中N是至少为2的任何整数。尽管在图1所示的实施例中N为5(包括SSD 410至450)以及在图2所示的实施例中N为3(包括SSD410至430),但是本发明构思不限于那些实施例,SSD的数量可以改变。
数据存储设备300可以是基于闪存的存储器设备,但不限于此。数据存储设备300可以被实现为SSD、嵌入式SSD(eSSD)、通用闪速存储器(UFS)、MMC、嵌入式MMC(eMMC)或受管理的NAND,但是本发明构思不限于这些示例。基于闪存的存储器设备可以包括存储器单元阵列。存储器单元阵列可以包括多个存储器单元。存储器单元阵列可以包括二维存储器单元阵列或三维存储器单元阵列。
三维存储器单元阵列可以单片地形成在具有设置在硅衬底上或上方的有源区的存储器单元阵列中的一个或多个物理层级处,并且可以包括存储器单元的操作所涉及的电路。所述电路可以形成在硅衬底中、硅衬底上或上方。术语“单片”意指阵列中的每一层级的层直接沉积在阵列中的下层级的层上。三维存储器单元阵列可以包括竖直取向的竖直NAND串,使得至少一个存储器单元置于另一存储器单元上或上方。所述至少一个存储器单元可以包括电荷俘获层。
以下专利文献(通过引用并入本文)描述了用于三维存储器阵列的适当构造,其中三维存储器阵列被构造为多个层级,并在层级之间共享字线和/或位线:美国专利No.7,679,133;8,553,466;8,654,587;8,559,235;以及美国专利公开No.2011/0233648。
备选地,数据存储设备300可以被实现为硬盘驱动器(HDD)、相变随机存取存储器(PRAM)设备、磁阻RAM(MRAM)设备、自旋转移力矩MRAM(STT-MRAM)设备、铁电RAM(FRAM)设备或电阻RAM(RRAM)设备,但是本发明构思不限于这些实例。
控制器310可以控制主机200、缓冲器360和存储器群集400之间的命令和/或数据的传输或处理。控制器310可以实现在集成电路(IC)或片上系统(SoC)中。
参考图2,主机200可以包括总线架构210、中央处理单元(CPU)220和第一接口设备230。控制器310可以包括总线架构311、内部存储器(例如,静态随机存取存储器(SRAM))315、第二接口设备320、CPU 330、缓冲器控制器340和第三接口设备350。
CPU 220和第一接口设备230可以经由总线架构210彼此传送命令和/或数据。尽管在图2所示的实施例中主机200包括总线架构210、CPU220和第一接口设备230,但是本发明构思不限于图2所示的主机200。主机200可以被实现为IC、主板、SoC、应用处理器(AP)、移动AP、网络服务器、数据服务器或数据库服务器,但是本发明构思不限于这些示例。
总线架构210可以被实现为高级微控制器总线架构(AMBA)、高级高性能总线(AHB)、高级外围总线(APB)、高级可扩展接口(AXI)、高级系统总线(ASB)、AXI一致性扩展(AGE)或其组合,但是本发明构思不限于这些示例。
CPU 220可以产生用于控制数据存储设备300的写操作的写请求或用于控制数据存储设备300的读操作的读请求。写请求可以包括写地址(例如,逻辑地址),读请求可以包括读地址(例如,逻辑地址)。CPU220可以包括至少一个内核。请求可以指代命令。
第一接口设备230可以改变要发送给数据存储设备300的命令和/或数据的格式,并且可以通过接口110将格式改变的命令和/或数据发送给数据存储设备300。第一接口设备230还可以改变从数据存储设备300接收的响应和/或数据的格式,并且可以通过总线架构210将格式改变的响应和/或数据发送给CPU 220。第一接口设备230可以包括发送和接收命令和/或数据的收发器。第一接口设备230的结构和操作可以被配置为与接口110兼容。
总线架构311可以被实现为AMBA、AHB、APB、AXI、ASB、ACE或其组合,但是本发明构思不限于这些示例。
内部存储器315可以存储控制器310的操作所需的数据和/或从由控制器310执行的数据处理操作(例如,写操作或读操作)产生的数据。内部存储器315可以存储可以由CPU330执行的第一闪存转换层(FTL)代码。FTL代码可以简称为FTL。当数据存储设备300被启动时,第一FTL代码可以从存储器群集400加载到内部存储器315并且可以由CPU330执行。内部存储器315可以被实现为RAM、动态RAM(DRAM)、SRAM、缓冲器、缓冲存储器、高速缓存或紧耦合存储器(TCM),但是本发明构思不限于这些示例。
第二接口设备320可以改变要发送给主机200的响应和/或数据的格式,并且可以通过接口110将格式改变的响应和/或数据发送给主机200。第二接口设备320还可以从主机200接收命令和/或数据,改变命令和/或数据的格式,并且将改变格式的命令和/或数据发送给CPU 330和/或缓冲器控制器340。第二接口设备320可以包括发送和接收信号和/或数据的收发器。
第二接口设备320的结构和操作可以被配置为与接口110兼容。第二接口设备320可以是SATA接口、SATAe接口、SAS、PCIe接口、NVMe接口、AHCI、MMC接口、NAND型闪存接口或NOR型闪存接口,但不限于此。
CPU 330可以通过总线架构311控制内部存储器315、第二接口设备320、缓冲器控制器340和第三接口设备350。CPU 330可以包括至少一个内核。CPU 330还可以控制PMIC370。
根据CPU 330的控制,缓冲器控制器340可以向缓冲器360写入数据和/或从缓冲器360读取数据。缓冲器控制器340可以控制对缓冲器360的写操作和读操作。缓冲器控制器340还可以被称为控制器或缓冲器管理器。
第三接口设备350可以根据CPU 330的控制通过主通道CHA、CHB和CHC中的一个控制针对存储器群集400a的数据处理操作(例如,写操作或读操作)。第三接口设备350可以是SATA接口、SATAe接口、SAS、PCIe接口、NVMe接口、AHCI、MMC接口、NAND型闪存接口或NOR型闪存接口,但不限于此。
第三接口设备350可以包括纠错码(ECC)引擎(未示出)。ECC引擎可以校正要存储在存储器群集400a中的数据和/或从存储器群集400a输出的数据中的错误。ECC引擎可以实现在控制器310中的任何地方。
缓冲器360可以根据缓冲器控制器340的控制来写入从主机200接收的数据或读取所存储的数据。缓冲器360可以被实现为诸如缓冲存储器、RAM、SRAM或DRAM之类的易失性存储器,但是本发明构思不限于这些示例。
缓冲器360可以包括:第一区域,存储用于相对于多个SSD 410至450的逻辑地址到物理地址转换的映射表;以及第二区域,用作高速缓存,但是本发明构思不限于当前实施例。
当控制器310和缓冲器360分别形成在不同的半导体芯片中时,控制器310和缓冲器360可以实现在诸如层叠封装(PoP)、多芯片封装(MCP)或系统内封装(SiP)的单个封装中,但是本发明构思不限于这些示例。可以使用堆叠球(stack ball)将包括缓冲器360的第一芯片堆叠在包括控制器310的第二芯片上方。
PMIC 370可以控制施加到控制器310、缓冲器360和/或存储器群集400a的操作电压。施加到控制器310的第一操作电压、施加到缓冲器360的第二操作电压和施加到存储器群集400a的第三操作电压可以彼此相同或不同。
如上所述,存储器群集400a可以包括SSD 410、420和430。第一SSD 410可以连接到第一主通道CHA,第二SSD 420可以连接到第二主通道CHB,第三SSD 430可以连接到第三主通道CHC。将参考图3和图4A至图4C详细描述SSD 410至450的每个的结构。SSD 410至450可以具有彼此相同的结构或彼此相似的结构。
这里,主通道可以指存在于控制器310的第三接口设备350和一个SSD之间的独立数据路径。数据路径可以包括传输数据和/或控制信号的传输线。
图3是图1所示的数据存储设备300的示例实施例的框图。图4A至图4C是图3所示的第一SSD 410的示例410A、410B和410C的框图。参考图3至图4C,SSD 410、420和450中的每一个包括至少一个第一类型存储器412、422或452以及至少一个第二类型存储器415、425或455。第一类型存储器412、422和452可以是非易失性RAM(NVRAM),第二类型存储器415、425和455可以是非易失性存储器。有利地,第二类型存储器415、425和455可以是不同于NVRAM的不同类型的存储器。例如,第二类型存储器415、425和455可以是NAND型闪存(NAND)。然而,本发明构思不限于此。第一类型存储器412、422或452可以被实现为PRAM、MRAM、STT-MRAM、FRAM或RRAM。SSD 410、420和450中的每一个的结构和操作与其他SSD的结构和操作基本上相同或相似。因此,将代表性地描述第一SSD 410的结构和操作。
参考图4A,第一SSD 410A可以包括SSD控制器411、至少一个NVRAM 412A和至少一个非易失性存储器件415。有利地,非易失性存储器件415可以是不同于NVRAM的不同类型的存储器。例如,非易失性存储器件415可以是NAND型闪存设备NAND。SSD控制器411可以响应于控制器310的命令来控制第一SSD 410A的操作。SSD控制器411可以连接到第一主通道CHA、通道CH11和CH12以及NVRAM412A。通道CH11和CH12中的每一个可以连接到非易失性存储器件NAND。例如,非易失性存储器件416可以连接到通道CH11,非易失性存储器件417可以连接到通道CH12。虽然在图4A中仅示出了两个通道CH11和CH12,但是在其他实施例中,通道的数量可以不同。
每个非易失性存储器件NAND可以是NAND型闪存或受管理的NAND闪存,但不限于此。通道CH11和CH12中的每一个可以是存在于SSD控制器411和非易失性存储器件416或417之间的独立数据路径。
NVRAM 412A可以被实现为支持电容器的DRAM。NVRAM 412A可以包括DRAM 413和电容器414A。电容器414A可以接收和存储从外部提供的输入电源电压,并且可以在外部电源电压被切断时为DRAM413提供电源电压。即使当外部电源电压被切断时,DRAM 413也可以保留数据。SSD控制器411可以通过通道CH11和CH12中的每一个控制非易失性存储器件NAND的操作。
参考图4B,第一SSD 410B可以包括SSD控制器411、至少一个NVRAM 412B和至少一个非易失性存储器件415,例如NAND型闪存设备NAND。图4B所示的第一SSD 410B的结构和操作类似于图4A所示的第一SSD 410A的结构和操作。为了避免冗余,将重点描述SSD410A和410B之间的差异。
NVRAM 412B可以被实现为支持电池的DRAM。NVRAM 412B可以包括DRAM 413和电池414B。当外部电源电压被切断时,电池414B可以向DRAM 413供电。因此,即使当外部电源电压被切断时,DRAM413也可以保留数据。
参考图4C,第一SSD 410C可以包括SSD控制器411、至少一个第一类型存储器412C和至少一个第二类型存储器件415,例如NAND型闪存设备NAND。与第二类型存储器415相比,第一类型存储器412C可以具有更快的存取时间(例如,写入时间)。在第一类型存储器412C和第二类型存储器件415是NAND型闪存的情况下,第一类型存储器412C可以是具有单级存储器单元的闪存,并且第二类型存储器件415可以是具有多级存储器单元的闪存。图4C所示的第一SSD 410C的结构和操作类似于图4A所示的第一SSD 410A或图4B所示的第一SSD410B的结构和操作。为了避免冗余,将重点描述SSD 410A、410B和410C之间的差异。
参考图4C,第一类型存储器412C可以被实现为NAND型闪存设备NAND。NAND型闪存设备NAND可以包括二维存储器单元阵列或三维存储器单元阵列。
三维存储器单元阵列可以单片地形成在具有设置在硅衬底上或上方的有源区的存储器单元阵列中的一个或多个物理层级处,并且可以包括存储器单元的操作所涉及的电路。所述电路可以形成在硅衬底中、硅衬底上或上方。术语“单片”意指阵列中的每一层级的层直接沉积在阵列中的下层级的层上。三维存储器单元阵列可以包括竖直取向的竖直NAND串,使得至少一个存储器单元置于另一存储器单元上或上方。所述至少一个存储器单元可以包括电荷俘获层。
图5A是根据本发明构思的一些实施例的NAND型闪存设备的二维存储器单元阵列20的示图。参考图5A,存储器单元阵列20包括多个NAND存储器单元串20-1、20-2、...、20-m,其中“m”是自然数。NAND存储器单元串20-1至20-m中的每一个包括彼此串联连接的多个非易失性存储器单元21和虚设(dummy)单元25。NAND存储器单元串20-1到20-m可以布置或实现在二维的一个平面或层上。
NAND存储器单元串20-1包括在连接到位线BL1的第一选择晶体管(或串选择晶体管)ST1和连接到公共源极线(CSL)的第二选择晶体管(或地选择晶体管)ST2之间串联连接的多个非易失性存储器单元21和虚设单元25。
第一选择晶体管ST1的栅极连接到串选择线(SSL)。各个非易失性存储器单元21的栅极分别连接到多条字线WL0至WL63。第二选择晶体管ST2的栅极连接到地选择线(SSL)。各个虚设单元25的栅极分别连接到虚设字线DWL0和DWL1。
NAND存储器单元串20-2至20-m的结构与NAND存储器单元串20-1的结构基本上相同。
尽管为了描述清楚在图5A和图5B中示出了64条字线WL0至WL63和两条虚设字线DWL0和DWL1,但是本发明构思的思想不受字线和虚设字线的数量的限制。虚设字线DWL0和DWL1分别位于64条字线WL0至WL63的组的两端,即,虚设字线DWL0和DWL1分别与SSL和GSL相邻,但是虚设字线的位置不限于所示实施例。在其他实施例中,可以省略虚设字线DWL0和DWL1。
包括在NAND存储器单元串20-1至20-m中的每个非易失性存储器单元21可以存储一个或多个比特。因此,每个非易失性存储器单元21可以由存储一个比特或至少一个比特的NAND闪存单元(例如,单级单元(SLC)或多级单元(MLC))实现。
图5B是根据本发明构思的一些实施例的NAND型闪存设备的三维存储器单元阵列20′的示图。参考图5B,NAND存储器单元串20′-1、20′-2、...、20′-k(其中“k”是自然数)可以布置在三维的不同平面上。此时,可以访问NAND存储器单元串20′-1至20′-k中的每一个的存取电路可以被NAND存储器单元串20′-1至20′-k共享。
第一NAND存储器单元串20′-1可以布置在第一层21-1上,第二NAND存储器单元串20′-2可以布置在与第一层21-1不同的第二层21-2上,并且第k NAND存储器单元串20′-k可以布置在与第二层21-2不同的第k层21-k上。层21-1至21-k可以形成为晶片堆叠、芯片堆叠或单元堆叠。层21-1至21-k可以使用硅通孔(TSV)、凸块或引线接合彼此连接。层21-1至21-k中的每一个包括多个单元串。
第一层21-1上的第一NAND存储器单元串20′-1包括串联连接在多个选择晶体管ST11和ST21之间的多个非易失性存储器单元(例如,NAND闪存单元)21和虚设单元25。第二层21-2上的第二NAND存储器单元串20′-2包括串联连接在多个选择晶体管ST12和ST22之间的多个非易失性存储器单元(例如,NAND闪存单元)21和虚设单元25。第k层21-k上的第kNAND存储器单元串20′-2包括串联连接在多个选择晶体管ST1k和ST2k之间的多个非易失性存储器单元(例如,NAND闪存单元)21和虚设单元25。
如图5B所示,NAND存储器单元串20′-1至20′-k可以彼此共享字线WL0至WL63、CSL和位线BL1。换句话说,在各个层21-1至21-k中的对应位置处实现的NAND存储器单元串可以连接到页缓冲器和感测放大器块70中包括的页缓冲器71-1至71-m中的一个。
图6是用于解释根据本发明构思的一些实施例的数据存储设备的操作的示图。图6所示的操作可以由参考图1至图4C描述的数据存储设备300执行。这里,假定SSD的数量N为4。
参考图1至图6,控制器310可以从主机200接收多个写请求。写请求可以存储在写请求队列中。写请求队列可以实现在第一类型存储器(例如,NVRAM)412、422或452中或单独的模块中。图6至图8所示的写请求队列中的各种形状(即星形、三角形、圆形、六边形等等)表示与写请求之一相对应的数据段。
控制器310将由星形表示且对应于第一写请求的第一数据段存储在第一SSD 410中。第一SSD 410可以将第一数据段(即,星形)存储在第一SSD 410中的第一类型存储器(例如,NVRAM)412中。控制器310还可以将第一数据段(即,星形)的复制数据存储在第N SSD中,用于复制第一数据段。复制数据可以是这样的数据,该数据被存储以便在多个SSD中的SSD发生故障或者由一个或多个SSD存储的数据丢失的情况下恢复丢失的数据。由于假定N为4,所以控制器310可以将第一数据段(即,星形)存储在第四SSD 440中。第一数据段(即,星形)的复制数据可以与第一数据段相同,但是本发明构思不限于此。例如,第一数据段的复制数据可以是基于第一数据段的逻辑操作所产生的用来恢复第一数据段的数据。
如上所述,控制器310将第一数据段(即,星形)存储在第一SSD410的第一类型存储器412和第四SSD 440的第一类型存储器442中,从而执行第一数据段(即,星形)的主复制。将第一数据段(即,星形)存储在第一SSD 410的第一类型存储器412中的操作和将第一数据段(即,星形)存储在第四SSD 440的第一类型存储器442中的操作可以被并行或顺序地执行。
由控制器310使用的用于将第一数据段(即,星形)存储在第一SSD 410中的命令可以与由控制器310使用的用于将第一数据段(即,星形)存储在第四SSD 440中的命令相同或不同。例如,当控制器310将第一数据段(即,星形)存储在第一SSD 410中时,可以不指定第一数据段(即,星形)是否将被刷新到第二类型存储器415。另一方面,当控制器310将第一数据段(即,星形)的复制数据存储在第四SSD 440中时,控制器310可以指定第一数据段(即,星形)将不被刷新到第二类型存储器。
图9A示出了控制器310向SSD发出的新命令。控制器310向SSD410、420、430和440发出命令“WriteNV(LBA,DATA,Flush_manually)”。括号中的因子是命令行参数。命令“WriteNV(LBA,DATA,Flush_manually)”可以指示数据应被写入SSD的第一类型存储器的指定逻辑块地址(LBA)。此时,可以使用参数“Flush_manually”来设置是否将数据从第一类型存储器刷新到第二类型存储器。当“Flush_manually”的值为“0”时,意味着控制器310不指定是否刷新数据。因此,SSD可以自身确定是否以及何时将数据从第一类型存储器刷新到第二类型存储器而无需控制器310的介入。当“Flush_manually”的值为“1”时,意味着控制器310指示不应将数据从第一类型存储器刷新到第二类型存储器。因此,在没有来自控制器310的刷新命令的情况下,SSD不将数据从第一类型存储器刷新到第二类型存储器。
由控制器310发出的命令“DeleteNV(LBA)”可以指示SSD应从第一类型存储器的指定地址LBA中删除数据。
控制器310可以在将第一数据段(即,星形)存储在第一SSD 410中时将“Flush_manually”的值设置为“0”,并且在将第一数据段(即,星形)存储在第四SSD 440中时将“Flush_manually”的值设置为“1”。在这种情况下,第一SSD 410可以在随机点处将第一数据段(即,星形)从第一类型存储器412刷新到第二类型存储器415。一旦第一数据段(即,星形)被存储在第二类型存储器415中,则可以从第一类型存储器412中删除第一数据段,即星形。同时,第四SSD 440可以不将第一数据段(即,星形)从第一类型存储器442刷新到第二类型存储器445,除非它从控制器310接收到单独的命令或请求。
控制器310可以通过与第一数据段(即,星形)类似的方式处理由三角形表示且对应于第二写请求的第二数据段。控制器310将第二数据段(即,三角形)存储在第二SSD 420的第一类型存储器422中。另外,控制器310将第二数据段(即,三角形)存储在第四SSD 440的第一类型存储器442中。换句话说,控制器310通过将第二数据段(即,三角形)存储在第二SSD 420的第一类型存储器422和第四SSD 440的第一类型存储器442中来执行第二数据段(即,三角形)的主复制。将第二数据段(即,三角形)存储在第二SSD 420的第一类型存储器422中的操作和将第二数据段(即,三角形)存储在第四SSD 440的第一类型存储器442中的操作可以被并行或顺序地执行。
控制器310可以通过与第一数据段(即,星形)和第二数据段(即,三角形)类似的方式处理由圆形表示且对应于第三写请求的第三数据段。控制器310将第三数据段(即,圆形)存储在第三SSD 430的第一类型存储器432中。另外,控制器310将第三数据段(即,圆形)存储在第四SSD 440的第一类型存储器442中。换句话说,控制器310通过将第三数据段(即,圆形)存储在第三SSD 430的第一类型存储器432和第四SSD 440的第一类型存储器442中来执行第三数据段(即,圆形)的主复制。将第三数据段(即,圆形)存储在第三SSD 430的第一类型存储器432中的操作和将第三数据段(即,圆形)存储在第四SSD 440的第一类型存储器442中的操作可以被并行或顺序地执行。
主复制可以是RAID 1复制,但不限于此。当存储在多个SSD中的数据形成预定数据组时,控制器310可以向奇偶校验SSD(即其中已经存储了复制数据的SSD(例如,第四SSD440))发出奇偶校验产生和存储命令。预定数据组可以是RAID条带(stripe)。预定数据组(例如,RAID条带)可以被定义为在其上执行RAID恢复操作的基本单元。RAID条带可以包括用于产生奇偶校验的多个数据段(例如,页)。例如,当存储在第一至第N SSD中的数据完成单个RAID条带时,控制器310可以向奇偶校验SSD(即其中已经存储了复制数据的SSD)发出奇偶校验产生和存储命令。
图9B示出了由控制器310向第四SSD 440发出的奇偶校验产生和存储命令的示例。本发明构思不限于这些示例。
由控制器310发出的命令“Calculate_Parity_And_Writel(DataSize,StartLBA,EndLBA,DestinationLBA)”可以指示第四SSD440针对在第一类型存储器442中从起始地址StartLBA到结束地址EndLBA的范围内具有预定数据大小DataSize的数据产生奇偶校验,并将奇偶校验写入目的地址DestinationLBA。换句话说,命令“Calculate_Parity_And_Write1(DataSize,StartLBA,EndLBA,DestinationLBA)”指定将要计算奇偶校验数据的数据段的起始地址StartLBA和结束地址EndLBA,并且还指定将要存储奇偶校验数据的区域的地址DestinationLBA。当数据段被存储在顺序逻辑块地址(LBA)处时,可以使用该命令。
由控制器310发出的命令“Calculate_Parity_And_Write2(DataSize,FirstLBA,SecondLBA,...,LastLBA,DestinationLBA)”可以指示第四SSD440针对在第一类型存储器442中从第一地址FirstLBA到最后地址LastLBA的范围内具有预定数据大小DataSize的数据产生奇偶校验,并将奇偶校验写入目的地址DestinationLBA。换句话说,命令“Calculate_Parity_And_Write2(DataSize,FirstLBA,SecondLBA,...,LastLBA,DestinationLBA)”指定将要计算奇偶校验数据的每个数据段的数据大小和地址LBA。当数据段被存储在非顺序LBA处时,可以使用该命令。
由控制器310发出的命令“Calculate_Parity_And_Write3(DataSize,StartLBA,Offset,DestinationLBA)”可以指示第四SSD 440针对在第一类型存储器442中从起始地址StartLBA到预定偏移Offset的范围内具有预定数据大小DataSize的数据产生奇偶校验,并将奇偶校验写入目的地址DestinationLBA。换句话说,命令“Calculate_Parity_And_Write3(DataSize,StartLBA,Offset,DestinationLBA)”指定数据大小DataSize、起始地址StartLBA和偏移Offset,以限定要用于计算奇偶校验数据的数据范围。
奇偶校验SSD 440可以基于存储在第一类型存储器442中的复制数据(即,第一至第三数据段,即星形、三角形和圆形)产生由五边形表示的奇偶校验数据,并且可以响应于奇偶校验产生和存储命令将奇偶校验数据存储在第二类型存储器445中。奇偶校验SSD 440可以通过对第一至第三数据段(即星形、三角形和圆形)执行XOR运算来产生奇偶校验数据,即五边形,但是本发明构思不限于此。一旦奇偶校验数据(即,五边形)被存储在第二类型存储器445中,则奇偶校验SSD 440可以从第一类型存储器442中删除复制数据,即第一至第三数据段(即星形、三角形和圆形)。
如上所述,当用于第一至第三数据段(即星形、三角形和圆形)的奇偶校验数据(即五边形)被存储在第二类型存储器445中时,执行辅复制。辅复制可以是RAID 5/6复制,但不限于此。
参考图6,形成RAID条带的每个数据段被主要存储在SSD 410、420和430之一的第一类型存储器中,即NVRAM中。每个数据段(即每个数据段的复制数据)被主要存储在奇偶校验SSD 440的第一类型存储器中,即NVRAM中。当控制器310发出奇偶校验产生和存储命令时,存储在奇偶校验SSD 440的第一类型存储器442中的数据经过XOR运算以产生奇偶校验数据,并且奇偶校验数据被存储在第二类型存储器445中。
在第一至第三SSD 410、420和430的每一个中的第一类型存储器NVRAM中存储的数据可以在各种时间被刷新到第二类型存储器。数据可以在被存储在第一类型存储器NVRAM中之后,或者在被存储在第一类型存储器NVRAM中之后的预定时间之后,或者当在被存储在第一类型存储器NVRAM中之后发生特定事件时,被刷新到第二类型存储器。该特定事件可以是当前SSD的电源故障、超过预定阈值的缓冲器或垃圾收集,但不限于此。
在图6所示的实施例中,在奇偶校验数据被产生之前,所有数据段(即第一至第三数据段,即星形、三角形和圆形)的复制数据被存储在第四SSD 440的第一类型存储器442中,然后控制器310向第四SSD 440发出奇偶校验产生和存储命令。
图7是用于解释根据本发明构思的一些实施例的数据存储设备的操作的示图。图7所示的操作可以由参考图1至图4C描述的数据存储设备300执行。假定SSD的数量N为4。图7所示的操作类似于图6所示的操作。因此,将重点描述差异。
参考图7,控制器310不将第一至第三数据段(即,星形、三角形和圆形)的复制数据存储在第四SSD 440的第一类型存储器442中,而是仅将最新的奇偶校验数据存储在第一类型存储器442中。详细地,控制器310将第一数据段(即,星形)存储在第四SSD 440的第一类型存储器442中,但是在第四SSD 440的第一类型存储器442中仅存储用于下一数据段(即,三角形和圆形)的奇偶校验数据,而不在第四SSD 440的第一类型存储器442中存储复制数据(即,三角形和圆形)。
对于此操作,控制器310可以与第二数据段(即,三角形)一起向第四SSD 440发送奇偶校验产生和存储命令。换句话说,控制器310可以在向第四SSD 440发送第二数据段(即,三角形)时指定产生奇偶校验数据所需的区域。第四SSD 440可以基于从控制器310接收的第二数据段(即,三角形)和存储在第一类型存储器442中的第一数据段(即,星形)产生部分奇偶校验数据(即,正方形),并且可以将该部分奇偶校验数据(即,正方形)存储在第一类型存储器442中。一旦该部分奇偶校验数据(即,正方形)被存储在第一类型存储器442中,则奇偶校验SSD 440可以从第一类型存储器442中删除复制数据,即第一数据段(即星形)。
控制器310还可以与第三数据段(即,圆形)一起向第四SSD 440发送奇偶校验产生和存储命令。换句话说,控制器310可以在向第四SSD 440发送第三数据段(即,圆形)时指定产生奇偶校验数据所需的区域。
图9C示出了包括数据段且由控制器310向第四SSD 440发出的奇偶校验产生和存储命令的示例。本发明构思不限于这些示例。
由控制器310发出的命令“Write_and_Calc_Parity1(Data,DataSize,StartLBA,EndLBA,DestinationLBA)”可以指示第四SSD 440针对在第一类型存储器442中从起始地址StartLBA到结束地址EndLBA的范围内具有预定数据大小DataSize的数据和新数据Data产生奇偶校验,并将奇偶校验写入目的地址DestinationLBA。当将要产生奇偶校验数据的所有复制数据未存储在奇偶校验SSD 440中时,可以使用该命令。换句话说,当奇偶校验SSD440中仅存储了将要产生奇偶校验数据的一部分复制数据时,发出该命令以发送用于产生奇偶校验数据的新的或附加的数据,并指定已经存储在奇偶校验SSD 440中的数据。
命令“Write_and_Calc_Parity2(Data,DataSize,FirstLBA,SecondLBA,...,LastLBA,DestinationLBA)”类似于命令“Calculate_Parity_And_Write2(DataSize,FirstLBA,SecondLBA,...,LastLBA,DestinationLBA)”,但不同之处在于前者还包括新数据Data。命令“Write_and_Calc_Parity3(Data,DataSize,StartLBA,Offset,DestinationLBA)”类似于命令“Calculate_Parity_And_Write3(DataSize,StartLBA,Offset,DestinationLBA)”,但不同之处在于前者还包括新数据Data。
当控制器310指定产生奇偶校验数据所需的区域并向第四SSD 440发送第三数据段(即,圆形)时,第四SSD 440可以基于从控制器310接收的第三数据段(即,圆形)和存储在第一类型存储器442中的部分奇偶校验数据(即,正方形)产生奇偶校验数据(即,五边形),并且可以将奇偶校验数据(即,五边形)存储在第二类型存储器445中。一旦奇偶校验数据(即,五边形)被存储在第二类型存储器445中,则奇偶校验SSD 440可以从第一类型存储器442中删除部分奇偶校验数据,即正方形。
在图7所示的实施例中,奇偶校验SSD 440不两次存储数据段,而是仅存储最新的奇偶校验数据,从而节省第一类型存储器442的空间。
图8是用于解释根据本发明构思的另外实施例的数据存储设备的操作的示图。图8所示的操作可以由参考图1至图4C描述的数据存储设备300执行。假定SSD的数量N为4。图8所示的操作类似于图7所示的操作。因此,将重点描述差异。参考图8,当在写请求队列处累积了许多写请求时,控制器310从要被复制的数据产生奇偶校验数据,并将奇偶校验数据存储在奇偶校验SSD 440中。
在图7所示的实施例中,在将第一数据段(即,星形)的复制数据存储在第四SSD440的第一类型存储器442中之后,控制器310仅在第一类型存储器442中产生和存储最新的奇偶校验数据。然而,在图8所示的实施例中,控制器310针对第一和第二数据段(即,星形和三角形)产生部分奇偶校验数据(即,正方形),并将该部分奇偶校验数据(即,正方形)存储在第四SSD 440的第一类型存储器442中。此后,对于下一数据段(即,圆形),控制器310可以向第四SSD 440发送包括第三数据段(即,圆形)在内的奇偶校验产生和存储命令。换句话说,控制器310可以在向第四SSD 440发送第三数据段(即,圆形)时指定产生奇偶校验数据所需的区域。
图9D示出了包括数据段且由控制器310向第四SSD 440发出的奇偶校验产生和存储命令的示例。本发明构思不限于这些示例。
命令“Calculate_Parity_And_Write_NV(PrevLBA,Data,DataSize,DataLBA)”是控制器310向奇偶校验SSD440发出的命令的另一示例。当控制器310在奇偶校验SSD 440中存储奇偶校验数据的更新而不复制数据时,可以使用命令“Calculate_Parity_And_Write_NV(PrevLBA,Data,DataSize,DataLBA)”。
命令“Calculate_Parity_And_Write_NV(PrevLBA,Data,DataSize,DataLBA)”指定已经存储在第四SSD 440的第一类型存储器442中的数据段或部分奇偶校验数据的现有LBA PrevLBA,并指定新数据Data、数据大小DataSize和要存储的数据的LBA值DataLBA。第四SSD 440可以使用存储在第四SSD 440的第一类型存储器442中的数据段或部分奇偶校验数据以及新数据Data来产生奇偶校验数据,并且可以响应于命令“Calculate_Parity_And_Write_NV(PrevLBA,Data,DataSize,DataLBA)”将奇偶校验数据存储在LBA值DataLBA处。详细地,第四SSD 440可以基于现有LBA PrevLBA从第一类型存储器442读取数据,使用新数据Data和与数据大小DataSize相对应的读取数据来计算奇偶校验数据,并且将奇偶校验数据存储在LBA值DataLBA处。LBA值DataLBA可以与现有LBA PrevLBA相同。
根据图8所示的实施例,一些复制数据不需要存储在奇偶校验SSD440的第一类型存储器442中,使得可以减少奇偶校验SSD 440的第一类型存储器NVRAM中的存储空间开销。
根据本发明构思的一些实施例,数据存储设备300使用第一类型存储器(例如,SSD中的NVRAM)作为用于存储复制数据(例如,针对主复制的数据)的存储空间,使得除SSD外的单独的NVRAM不必存储复制数据。结果,可以增加系统的存储密度。此外,由于不需要用于数据复制的单独的存储器设备(例如,NVRAM设备),所以可以节省诸如用于安装存储器设备的插槽之类的硬件资源。结果,可以降低功率和成本。
图10是根据本发明构思的一些实施例的复制数据的方法的流程图。图10所示的方法可以由参考图1至图4C描述的数据存储设备300执行。这里,假定SSD的数量N为5。
参考图1至图4C和图10,控制器310可以接收多个写请求REQ1至REQk,其中“k”是至少为2的整数。写请求REQ1至REQk可以顺序地存储在写请求队列中。在操作S101-1中,控制器310从主机200接收第一写请求REQ1,并且在操作S103-1中,首先将与第一写请求REQ1相对应的第一数据段DAT1写入缓冲器360。
在操作S105-1中,控制器310还响应于第一写请求REQ1将第一数据段DAT1写入第一SSD 410。第一SSD 410可以在其第一类型存储器(例如,NVRAM 412)中存储第一数据段DAT1。在操作S107-1中,控制器310还可以将第一数据段DAT1的复制数据存储在第N SSD450中。第N SSD 450可以在其第一类型存储器(例如,NVRAM 452)中存储第一数据段DAT1。
如上所述,控制器310可以通过将第一数据段DAT1写入第一SSD410的第一类型存储器412和第N SSD 450的第一类型存储器452来执行第一数据段DAT1的主复制。操作S105-1和S107-1可以被并行或顺序地执行。由控制器310使用的用于请求第一SSD 410存储第一数据段DAT1的命令可以与由控制器310使用的用于请求奇偶校验SSD(即,第N SSD 450)存储第一数据段DAT1的命令相同或不同。控制器310可以向相关SSD发送图9A所示的命令WriteNV,以写入第一数据段DAT1。在操作S109-1中,控制器310向主机200发送对第一写请求REQ1的响应RESP1。
控制器310可以通过与第一写请求REQ1类似的方式处理从主机200接收的第二写请求REQ2。详细地,在操作S101-2中,控制器310从主机200接收第二写请求REQ2,并且在操作S103-2中,首先将与第二写请求REQ2相对应的第二数据段DAT2写入缓冲器360。
在操作S105-2中,控制器310还响应于第二写请求REQ2将第二数据段DAT2写入第二SSD 420。在操作S107-2中,控制器310还可以将第二写请求REQ2写入第N SSD 450的第一类型存储器452。换句话说,控制器310通过将第二数据段DAT2写入第二SSD 420的第一类型存储器422和第N SSD 450的第一类型存储器452来执行第二数据段DAT2的主复制。操作S105-2和S107-2可以被并行或顺序地执行。在操作S109-2中,控制器310向主机200发送对第二写请求REQ2的响应RESP2。
控制器310可以通过与第一写请求REQ1和第二写请求REQ2类似的方式处理其他写请求(例如REQ3至REQk),直到与从主机200接收的多个写请求相对应的数据段形成预定数据组。虽然未示出,但是控制器310可以通过与第一写请求REQ1和第二写请求REQ2类似的方式处理第三写请求REQ3。
控制器310还可以通过与第一写请求REQ1和第二写请求REQ2类似的方式处理第k写请求REQk。详细地,在操作S101-k中,控制器310从主机200接收第k写请求REQk,并且在操作S103-k中,首先将与第k写请求REQk相对应的第k数据段DATk写入缓冲器360。
在操作S105-k中,控制器310还响应于第k写请求REQk将第k数据段DATk写入第kSSD 440的第一类型存储器442。在操作S107-k中,控制器310还可以将第k写请求REQk写入第N SSD 450的第一类型存储器452。换句话说,控制器310通过将第k数据段DATk写入第kSSD 440的第一类型存储器442和第N SSD 450的第一类型存储器452来执行第k数据段DATk的主复制。操作S105-k和S107-k可以被并行或顺序地执行。在操作S109-k中,控制器310向主机200发送对第k写请求REQk的响应RESPk。这里,“k”可以是N-1,但不限于此。主复制可以是RAID 1复制。
当存储在SSD 410至440中的数据形成预定数据组时,控制器310可以在操作S110中向SSD 450(即,存储了复制数据的奇偶校验SSD450)发送奇偶校验产生和存储命令Parity_Write_NV。控制器310向第N SSD 450发出的奇偶校验产生和存储命令Parity_Write_NV可以是图9B所示的命令之一。
响应于奇偶校验产生和存储命令Parity_Write_NV,奇偶校验SSD450可以基于存储在第一类型存储器452中的复制数据(即,第一数据段DAT1至第k数据段DATk)产生奇偶校验数据,并将奇偶校验数据存储在第一类型存储器452或第二类型存储器455中。奇偶校验SSD 450可以通过对第一数据段DAT1至第k数据段DATk执行XOR运算来产生奇偶校验数据,但是本发明构思不限于此。一旦奇偶校验数据被存储在第二类型存储器455中,则奇偶校验SSD 450可以从SSD 450的第一类型存储器452中删除复制数据(即第一数据段DAT1至第k数据段DATk)。
参考图10,形成RAID条带的每个数据段主要存储在SSD 410至440之一的第一类型存储器中,例如NVRAM中。当每个数据段(即,每个数据段的复制数据)被写入奇偶校验SSD450时,其主要存储在第一类型存储器452中。当奇偶校验SSD 450从控制器310接收到奇偶校验产生和存储命令时,存储在奇偶校验SSD 450的第一类型存储器452中的数据可以用于产生奇偶校验数据,然后奇偶校验数据最终被存储在第一类型存储器452或第二类型存储器455中。当奇偶校验数据被存储在第二类型存储器455中时,可以删除存储在第一类型存储器452中的复制数据和/或奇偶校验数据。
图11是根据本发明构思的其他实施例的复制数据的方法的流程图。图11所示的方法可以由参考图1至图4C描述的数据存储设备300执行。这里,假定SSD的数量N为5。图11所示的方法类似于图10所示的方法。因此,将重点描述方法之间的差异。在图11所示的实施例中,代替在奇偶校验SSD 450中存储每个数据段的复制数据,控制器310在奇偶校验SSD 450中仅存储预定数据组(例如,RAID条带)中的一个数据段(例如,第一数据段DAT1)的复制数据,然后针对从第二数据段DAT2开始的后续数据段在奇偶校验SSD 450中存储奇偶校验数据的更新。
参考图1至图4C和图11,控制器310可以接收多个写请求REQ1至REQk,其中“k”是至少为2的整数。写请求REQ1至REQk可以顺序地存储在写请求队列中。控制器310可以通过与参考图10所描述的方式相同的方式(即,操作S101-1、S103-1、S105-1、S107-1和S109-1)处理第一写请求REQ1。
响应于第二写请求REQ2,在操作S103-2中,控制器310首先将第二数据段DAT2写入缓冲器360,并且在操作S105-2中,还将第二数据段DAT2写入第二SSD 420。在操作S207-2中,控制器310可以将第二数据段DAT2以及奇偶校验产生和存储命令Cal_Parity2发送给第N SSD 450。换句话说,控制器310可以在向第N SSD 450发送第二数据段DAT2时指定产生奇偶校验数据所需的区域。对于该操作,控制器310可以使用图9C所示的命令之一作为奇偶校验产生和存储命令Cal_Parity2。
第N SSD 450可以基于从控制器310接收的第二数据段DAT2和存储在第一类型存储器452中的第一数据段DAT1产生奇偶校验数据,并且可以将奇偶校验数据存储在第二类型存储器455中。虽然未示出,但是控制器310可以通过与第二写请求REQ2类似的方式处理从主机200接收的第三写请求REQ3。
控制器310还可以通过与第二写请求REQ2和第三写请求REQ3类似的方式处理第k写请求REQk。详细地,响应于第k写请求REQk,在操作S103-k中,控制器310首先将第k数据段DATk写入缓冲器360,并且在操作S105-k中,还将第k数据段DATk写入第k SSD 440。
在操作S207-k中,控制器310可以将第k数据段DATk以及奇偶校验产生和存储命令Cal_Parityk发送给第N SSD 450。换句话说,控制器310可以在向第N SSD 450发送第k数据段DATk时指定产生奇偶校验数据所需的区域。第N SSD 450可以基于从控制器310接收的第k数据段DATk和存储在第一类型存储器452中的数据段DAT1、DAT2和DAT3产生奇偶校验数据,并且可以将奇偶校验数据存储在指定地址处。
在操作S210中,控制器310可以向第N SSD 450发送命令以在第二类型存储器455中永久地存储已存储在第一类型存储器452中的最终奇偶校验数据。在图11所示的实施例中,控制器310向奇偶校验SSD 450发送奇偶校验产生和存储命令Parity_Write_NV,并且奇偶校验SSD 450响应于命令Parity_Write_NV产生奇偶校验数据。
然而,在其他实施例中,控制器310可以产生奇偶校验数据并将奇偶校验数据写入奇偶校验SSD 450。例如,控制器310可以使用至少两个数据段来产生奇偶校验数据,并将奇偶校验数据写入奇偶校验SSD450的第一类型存储器452。控制器310还可以使用至少一个新数据段和现有奇偶校验数据来产生新的奇偶校验数据或更新奇偶校验数据,并且可以将更新的奇偶校验数据写入奇偶校验SSD 450的第一类型存储器452。
图12是根据本发明构思的一些实施例的数据处理系统500的框图。参考图1至图12,数据处理系统500可以包括数据库520、数据库服务器530、第二网络540以及多个客户端计算机550和551。数据库520和数据库服务器530可以包括在数据中心510中。数据中心510可以是互联网数据中心或云数据中心。
数据库520可以包括多个数据存储设备300。数据存储设备300可以安装在机架中。数据存储设备300的结构和操作与以上参考图1至图11描述的数据存储设备300的结构和操作基本上相同或相似。
数据库服务器530可以控制每个数据存储设备300的操作。数据库服务器530可以用作图1所示的主机200。数据库服务器530可以经由第一网络535(例如,局域网(LAN))连接到第二网络540,例如互联网或Wi-Fi。客户端计算机550和551可以经由第二网络540连接到数据库服务器530。
如上所述,根据本发明构思的一些实施例,数据存储设备使用第一类型存储器(例如,SSD中的NVRAM)作为用于存储复制数据(例如,针对主复制的数据)的存储空间,使得除SSD外的单独的NVRAM不必存储复制数据。结果,可以增加系统的存储密度。此外,由于不需要用于数据复制的另一存储器设备(例如,NVRAM设备),所以可以不需要诸如用于插入存储器设备的插槽之类的硬件资源。结果,可以实现功率和成本降低。
尽管已经参考本发明构思的示例性实施例具体示出和描述了本发明构思,但本领域普通技术人员将理解,在不脱离所附权利要求所限定的本发明构思的精神和范围的情况下,可以进行形式和细节上的多种改变。
Claims (20)
1.一种数据处理系统,包括:
主机;以及
数据存储设备,连接到所述主机,所述数据存储设备包括:
第一至第N固态盘“SSD”,其中N是至少为2的整数,以及
控制器,被配置为控制第一至第N SSD,
其中,所述控制器被配置为将与从所述主机接收的多个写请求相对应的数据段中的每一个存储在第一至第(N-1)SSD中相应的SSD的第一类型存储器中,将基于至少一些所述数据段的复制数据存储在第N SSD的第一类型存储器中,并将基于所有所述数据段的奇偶校验数据存储在第N SSD的第一类型存储器和第二类型存储器中的任何一个中。
2.根据权利要求1所述的数据处理系统,其中,所述控制器被配置为响应于第一写请求而将第一数据段写入第一SSD并将与第一数据段相同的数据写入第N SSD,并且响应于第二写请求而将第二数据段写入第二SSD并将与第二数据段相同的数据写入第N SSD。
3.根据权利要求2所述的数据处理系统,其中,第N SSD被配置为响应于从所述控制器接收的奇偶校验产生和存储命令而使用存储在第N SSD的第一类型存储器中的第一至第(N-1)数据段来产生奇偶校验数据,将所述奇偶校验数据存储在第N SSD的第二类型存储器中,并从第N SSD的第一类型存储器中删除第一至第(N-1)数据段。
4.根据权利要求1所述的数据处理系统,其中,所述复制数据是使用第一数据段和第二数据段计算的第一部分奇偶校验数据。
5.根据权利要求4所述的数据处理系统,其中,第N SSD被配置为将第一数据段存储在第N SSD的第一类型存储器中,使用从所述控制器接收的第二数据段和存储在第N SSD的第一类型存储器中的第一数据段来产生第一部分奇偶校验数据,将第一部分奇偶校验数据存储在第N SSD的第一类型存储器中,并且随后从第N SSD的第一类型存储器中删除第一数据段。
6.根据权利要求1所述的数据处理系统,其中,第N SSD被配置为从所述控制器接收基于第一数据段和第二数据段产生的复制数据,并将所述复制数据存储在第N SSD的第一类型存储器中。
7.根据权利要求1所述的数据处理系统,其中,每个SSD的第一类型存储器是非易失性随机存取存储器“NVRAM”,每个SSD的第二类型存储器是NAND闪存。
8.一种操作数据存储设备的方法,所述数据存储设备包括控制器、缓冲器和多个固态盘“SSD”,所述方法包括:
从主机接收第一写请求;
响应于第一写请求而将第一数据段写入所述缓冲器;
将第一数据段写入所述多个SSD中的第一SSD;
将第一数据段写入所述多个SSD中的第N SSD;
向所述主机发送对第一写请求的响应;
从所述主机接收第二写请求;
响应于第二写请求而将第二数据段写入所述缓冲器;
将第二数据段写入所述多个SSD中的第二SSD;
将基于第二数据段的复制数据写入第N SSD;以及
向所述主机发送对第二写请求的响应。
9.根据权利要求8所述的方法,还包括:将基于第一至第(N-1)数据段的奇偶校验数据存储在第N SSD中。
10.根据权利要求9所述的方法,其中,基于第二数据段的复制数据与第二数据段相同。
11.根据权利要求10所述的方法,其中,将奇偶校验数据存储在第N SSD中包括:
使用存储在第N SSD的第一类型存储器中的第一数据段和第二数据段产生奇偶校验数据;
将所述奇偶校验数据存储在第N SSD的第二类型存储器中;以及
从第N SSD的第一类型存储器中删除第一数据段和第二数据段。
12.根据权利要求8所述的方法,其中,基于第二数据段的复制数据是使用第一数据段和第二数据段计算的第一部分奇偶校验数据。
13.根据权利要求12所述的方法,其中,将基于第二数据段的复制数据写入第N SSD包括:
从所述控制器接收第二数据段;
使用第二数据段和存储在第N SSD的第一类型存储器中的第一数据段产生基于第二数据段的复制数据;
将基于第二数据段的复制数据存储在第N SSD的第一类型存储器中;以及
从第N SSD的第一类型存储器中删除第一数据段。
14.一种数据存储设备,包括:
多个固态盘“SSD”,至少包括第一SSD、第二SSD和奇偶校验SSD,其中,每个SSD包括至少一个第一类型存储器和至少一个第二类型存储器;以及
控制器,被配置为控制所述多个SSD的操作,
其中,所述控制器被配置为响应于从主机接收的第一写命令而将第一数据段写入第一SSD的第一类型存储器,响应于从主机接收的第二写命令而将第二数据段写入第二SSD的第一类型存储器,并且还响应于从主机接收的第一写命令和第二写命令中的至少一个而将基于第一数据段和第二数据段的数据写入奇偶校验SSD的第一类型存储器,并且随后将至少从第一数据段和第二数据段产生的奇偶校验数据写入奇偶校验SSD的第一类型存储器和第二类型存储器中的至少一个。
15.根据权利要求14所述的数据存储设备,其中,第一类型存储器是非易失性随机存取存储器“NVRAM”。
16.根据权利要求15所述的数据存储设备,其中,第二类型存储器是NAND闪存。
17.根据权利要求14所述的数据存储设备,其中,基于第一数据段和第二数据段的数据包括第一数据段和第二数据段,并且其中,所述控制器被配置为响应于第一写命令而将第一数据段写入奇偶校验SSD的第一类型存储器,并且响应于第二写命令而将第二数据段写入奇偶校验SSD的第一类型存储器。
18.根据权利要求14所述的数据存储设备,其中,基于第一数据段和第二数据段的数据包括第一数据段和针对第一数据段和第二数据段的部分奇偶校验数据,并且其中,所述控制器被配置为响应于第一写命令而将第一数据段写入奇偶校验SSD的第一类型存储器,并且响应于第二写命令而将针对第一数据段和第二数据段的所述部分奇偶校验数据写入奇偶校验SSD的第一类型存储器。
19.根据权利要求14所述的数据存储设备,其中,基于第一数据段和第二数据段的数据包括第一数据段和针对第一数据段和第二数据段的部分奇偶校验数据,并且其中,所述控制器被配置为响应于第二写命令而将针对第一数据段和第二数据段的所述部分奇偶校验数据写入奇偶校验SSD的第一类型存储器。
20.根据权利要求14所述的数据存储设备,其中,第一数据段和第二数据段属于包括k个数据段在内的预定数据组,其中k>2,并且其中,从第一数据段和第二数据段产生的奇偶校验数据包括从所有k个数据段产生的奇偶校验数据,并且其中,所述控制器在从主机接收到用于将第k数据段写入第k SSD的第一类型存储器的第k写命令之后,将所述奇偶校验数据写入奇偶校验SSD的第一类型存储器和第二类型存储器中的所述至少一个。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160030241A KR102527992B1 (ko) | 2016-03-14 | 2016-03-14 | 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템 |
KR10-2016-0030241 | 2016-03-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107193486A true CN107193486A (zh) | 2017-09-22 |
CN107193486B CN107193486B (zh) | 2021-11-26 |
Family
ID=59786472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710151764.4A Active CN107193486B (zh) | 2016-03-14 | 2017-03-14 | 数据存储设备和包括该数据存储设备的数据处理系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10324639B2 (zh) |
KR (1) | KR102527992B1 (zh) |
CN (1) | CN107193486B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108334278A (zh) * | 2017-12-15 | 2018-07-27 | 中兴通讯股份有限公司 | 一种存储系统均衡管理方法和装置 |
CN110231914A (zh) * | 2018-03-05 | 2019-09-13 | 三星电子株式会社 | 数据存储装置及其操作方法 |
CN110556156A (zh) * | 2018-06-01 | 2019-12-10 | 三星电子株式会社 | 半导体存储器件、存储系统及操作半导体存储器件的方法 |
CN111274062A (zh) * | 2018-12-05 | 2020-06-12 | 美光科技公司 | Nand装置混合奇偶校验管理 |
CN111709872A (zh) * | 2020-05-19 | 2020-09-25 | 北京航空航天大学 | 一种图三角形计数算法的自旋存内计算架构 |
CN112717419A (zh) * | 2021-01-04 | 2021-04-30 | 厦门梦加网络科技股份有限公司 | 一种游戏数据的保存方法 |
CN112823331A (zh) * | 2018-10-10 | 2021-05-18 | 阿里巴巴集团控股有限公司 | 用于具有较细粒度的并行多租户ssd中的数据恢复的系统和方法 |
CN112817533A (zh) * | 2021-01-29 | 2021-05-18 | 深圳忆联信息系统有限公司 | Ssd管理方法、装置计算机设备及存储介质 |
Families Citing this family (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE533007C2 (sv) | 2008-10-24 | 2010-06-08 | Ilt Productions Ab | Distribuerad datalagring |
US9244769B2 (en) | 2010-09-28 | 2016-01-26 | Pure Storage, Inc. | Offset protection data in a RAID array |
US9218244B1 (en) | 2014-06-04 | 2015-12-22 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US11604598B2 (en) | 2014-07-02 | 2023-03-14 | Pure Storage, Inc. | Storage cluster with zoned drives |
US10853311B1 (en) | 2014-07-03 | 2020-12-01 | Pure Storage, Inc. | Administration through files in a storage system |
US10430079B2 (en) | 2014-09-08 | 2019-10-01 | Pure Storage, Inc. | Adjusting storage capacity in a computing system |
US10164841B2 (en) | 2014-10-02 | 2018-12-25 | Pure Storage, Inc. | Cloud assist for storage systems |
US9489132B2 (en) | 2014-10-07 | 2016-11-08 | Pure Storage, Inc. | Utilizing unmapped and unknown states in a replicated storage system |
US9710165B1 (en) | 2015-02-18 | 2017-07-18 | Pure Storage, Inc. | Identifying volume candidates for space reclamation |
US10082985B2 (en) | 2015-03-27 | 2018-09-25 | Pure Storage, Inc. | Data striping across storage nodes that are assigned to multiple logical arrays |
US10178169B2 (en) | 2015-04-09 | 2019-01-08 | Pure Storage, Inc. | Point to point based backend communication layer for storage processing |
US11503031B1 (en) | 2015-05-29 | 2022-11-15 | Pure Storage, Inc. | Storage array access control from cloud-based user authorization and authentication |
US10846275B2 (en) | 2015-06-26 | 2020-11-24 | Pure Storage, Inc. | Key management in a storage device |
US9768953B2 (en) | 2015-09-30 | 2017-09-19 | Pure Storage, Inc. | Resharing of a split secret |
US10762069B2 (en) | 2015-09-30 | 2020-09-01 | Pure Storage, Inc. | Mechanism for a system where data and metadata are located closely together |
US10572460B2 (en) | 2016-02-11 | 2020-02-25 | Pure Storage, Inc. | Compressing data in dependence upon characteristics of a storage system |
US9811264B1 (en) | 2016-04-28 | 2017-11-07 | Pure Storage, Inc. | Deploying client-specific applications in a storage system utilizing redundant system resources |
US10261690B1 (en) | 2016-05-03 | 2019-04-16 | Pure Storage, Inc. | Systems and methods for operating a storage system |
US10331588B2 (en) | 2016-09-07 | 2019-06-25 | Pure Storage, Inc. | Ensuring the appropriate utilization of system resources using weighted workload based, time-independent scheduling |
US10235229B1 (en) | 2016-09-07 | 2019-03-19 | Pure Storage, Inc. | Rehabilitating storage devices in a storage array that includes a plurality of storage devices |
US11531577B1 (en) | 2016-09-07 | 2022-12-20 | Pure Storage, Inc. | Temporarily limiting access to a storage device |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
US10481798B2 (en) | 2016-10-28 | 2019-11-19 | Pure Storage, Inc. | Efficient flash management for multiple controllers |
US11550481B2 (en) | 2016-12-19 | 2023-01-10 | Pure Storage, Inc. | Efficiently writing data in a zoned drive storage system |
US11461273B1 (en) | 2016-12-20 | 2022-10-04 | Pure Storage, Inc. | Modifying storage distribution in a storage system that includes one or more storage devices |
US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
US10521344B1 (en) | 2017-03-10 | 2019-12-31 | Pure Storage, Inc. | Servicing input/output (‘I/O’) operations directed to a dataset that is synchronized across a plurality of storage systems |
US11442825B2 (en) | 2017-03-10 | 2022-09-13 | Pure Storage, Inc. | Establishing a synchronous replication relationship between two or more storage systems |
US10459664B1 (en) | 2017-04-10 | 2019-10-29 | Pure Storage, Inc. | Virtualized copy-by-reference |
WO2018231350A1 (en) | 2017-06-12 | 2018-12-20 | Pure Storage, Inc. | Accessible fast durable storage integrated into a bulk storage device |
US11609718B1 (en) | 2017-06-12 | 2023-03-21 | Pure Storage, Inc. | Identifying valid data after a storage system recovery |
US11592991B2 (en) * | 2017-09-07 | 2023-02-28 | Pure Storage, Inc. | Converting raid data between persistent storage types |
US11593036B2 (en) | 2017-06-12 | 2023-02-28 | Pure Storage, Inc. | Staging data within a unified storage element |
US10402266B1 (en) | 2017-07-31 | 2019-09-03 | Pure Storage, Inc. | Redundant array of independent disks in a direct-mapped flash storage system |
US10831935B2 (en) | 2017-08-31 | 2020-11-10 | Pure Storage, Inc. | Encryption management with host-side data reduction |
US10671435B1 (en) | 2017-10-19 | 2020-06-02 | Pure Storage, Inc. | Data transformation caching in an artificial intelligence infrastructure |
US12067466B2 (en) | 2017-10-19 | 2024-08-20 | Pure Storage, Inc. | Artificial intelligence and machine learning hyperscale infrastructure |
US11861423B1 (en) | 2017-10-19 | 2024-01-02 | Pure Storage, Inc. | Accelerating artificial intelligence (‘AI’) workflows |
US10484174B1 (en) | 2017-11-01 | 2019-11-19 | Pure Storage, Inc. | Protecting an encryption key for data stored in a storage system that includes a plurality of storage devices |
US10929226B1 (en) | 2017-11-21 | 2021-02-23 | Pure Storage, Inc. | Providing for increased flexibility for large scale parity |
US10929031B2 (en) | 2017-12-21 | 2021-02-23 | Pure Storage, Inc. | Maximizing data reduction in a partially encrypted volume |
US10834190B2 (en) | 2018-01-18 | 2020-11-10 | Portworx, Inc. | Provisioning of clustered containerized applications |
US11150834B1 (en) | 2018-03-05 | 2021-10-19 | Pure Storage, Inc. | Determining storage consumption in a storage system |
US10942650B1 (en) | 2018-03-05 | 2021-03-09 | Pure Storage, Inc. | Reporting capacity utilization in a storage system |
US10924548B1 (en) | 2018-03-15 | 2021-02-16 | Pure Storage, Inc. | Symmetric storage using a cloud-based storage system |
US11436344B1 (en) | 2018-04-24 | 2022-09-06 | Pure Storage, Inc. | Secure encryption in deduplication cluster |
US10929229B2 (en) * | 2018-06-21 | 2021-02-23 | International Business Machines Corporation | Decentralized RAID scheme having distributed parity computation and recovery |
US11416298B1 (en) | 2018-07-20 | 2022-08-16 | Pure Storage, Inc. | Providing application-specific storage by a storage system |
US12067274B2 (en) | 2018-09-06 | 2024-08-20 | Pure Storage, Inc. | Writing segments and erase blocks based on ordering |
US11500570B2 (en) | 2018-09-06 | 2022-11-15 | Pure Storage, Inc. | Efficient relocation of data utilizing different programming modes |
CN110989918B (zh) | 2018-10-03 | 2023-03-28 | 慧荣科技股份有限公司 | 写入控制方法以及数据存储装置及其控制器 |
CN110990175B (zh) | 2018-10-03 | 2023-03-14 | 慧荣科技股份有限公司 | 错误处置方法以及数据存储装置及其控制器 |
TWI684988B (zh) * | 2018-10-03 | 2020-02-11 | 慧榮科技股份有限公司 | 錯誤處置方法以及資料儲存裝置及其控制器 |
US11526405B1 (en) | 2018-11-18 | 2022-12-13 | Pure Storage, Inc. | Cloud-based disaster recovery |
US11023179B2 (en) | 2018-11-18 | 2021-06-01 | Pure Storage, Inc. | Cloud-based storage system storage management |
US11003369B1 (en) | 2019-01-14 | 2021-05-11 | Pure Storage, Inc. | Performing a tune-up procedure on a storage device during a boot process |
US11487665B2 (en) | 2019-06-05 | 2022-11-01 | Pure Storage, Inc. | Tiered caching of data in a storage system |
US11487715B1 (en) | 2019-07-18 | 2022-11-01 | Pure Storage, Inc. | Resiliency in a cloud-based storage system |
US12079502B2 (en) | 2019-11-22 | 2024-09-03 | Pure Storage, Inc. | Storage element attribute-based determination of a data protection policy for use within a storage system |
US11941116B2 (en) | 2019-11-22 | 2024-03-26 | Pure Storage, Inc. | Ransomware-based data protection parameter modification |
US20220327208A1 (en) * | 2019-11-22 | 2022-10-13 | Pure Storage, Inc. | Snapshot Deletion Pattern-Based Determination of Ransomware Attack against Data Maintained by a Storage System |
US11930112B1 (en) | 2019-12-06 | 2024-03-12 | Pure Storage, Inc. | Multi-path end-to-end encryption in a storage system |
US11494128B1 (en) | 2020-01-28 | 2022-11-08 | Pure Storage, Inc. | Access control of resources in a cloud-native storage system |
US11494267B2 (en) | 2020-04-14 | 2022-11-08 | Pure Storage, Inc. | Continuous value data redundancy |
US11474986B2 (en) | 2020-04-24 | 2022-10-18 | Pure Storage, Inc. | Utilizing machine learning to streamline telemetry processing of storage media |
US11442652B1 (en) | 2020-07-23 | 2022-09-13 | Pure Storage, Inc. | Replication handling during storage system transportation |
US11593017B1 (en) | 2020-08-26 | 2023-02-28 | Pure Storage, Inc. | Protection of objects in an object store from deletion or overwriting |
US11487455B2 (en) | 2020-12-17 | 2022-11-01 | Pure Storage, Inc. | Dynamic block allocation to optimize storage system performance |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
US11531467B1 (en) | 2021-01-29 | 2022-12-20 | Pure Storage, Inc. | Controlling public access of resources in a secure distributed storage system |
US11520516B1 (en) | 2021-02-25 | 2022-12-06 | Pure Storage, Inc. | Optimizing performance for synchronous workloads |
US11507597B2 (en) | 2021-03-31 | 2022-11-22 | Pure Storage, Inc. | Data replication to meet a recovery point objective |
US12086649B2 (en) | 2021-05-12 | 2024-09-10 | Pure Storage, Inc. | Rebalancing in a fleet of storage systems using data science |
US11733927B2 (en) * | 2021-11-30 | 2023-08-22 | Microsoft Technology Licensing, Llc | Hybrid solid-state drive |
US11886295B2 (en) | 2022-01-31 | 2024-01-30 | Pure Storage, Inc. | Intra-block error correction |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5603001A (en) * | 1994-05-09 | 1997-02-11 | Kabushiki Kaisha Toshiba | Semiconductor disk system having a plurality of flash memories |
US5659704A (en) * | 1994-12-02 | 1997-08-19 | Hewlett-Packard Company | Methods and system for reserving storage space for data migration in a redundant hierarchic data storage system by dynamically computing maximum storage space for mirror redundancy |
US20010029570A1 (en) * | 1997-09-12 | 2001-10-11 | Akira Yamamoto | Storage controller |
US6725392B1 (en) * | 1999-03-03 | 2004-04-20 | Adaptec, Inc. | Controller fault recovery system for a distributed file system |
CN103645969A (zh) * | 2013-12-13 | 2014-03-19 | 华为技术有限公司 | 数据复制方法及数据存储系统 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040117414A1 (en) * | 2002-12-17 | 2004-06-17 | Capital One Financial Corporation | Method and system for automatically updating operating systems |
JP5242264B2 (ja) | 2008-07-07 | 2013-07-24 | 株式会社東芝 | データ制御装置、ストレージシステムおよびプログラム |
JP4719802B2 (ja) | 2009-03-09 | 2011-07-06 | 富士通株式会社 | ストレージ管理装置、ストレージ管理方法およびストレージシステム |
KR101079367B1 (ko) * | 2010-01-13 | 2011-11-02 | 성균관대학교산학협력단 | 플래시 메모리를 사용하는 raid 저장 장치에서 패리티 데이터 관리 방법 및 그 장치 |
JP5066199B2 (ja) | 2010-02-12 | 2012-11-07 | 株式会社東芝 | 半導体記憶装置 |
US8583866B2 (en) | 2010-02-22 | 2013-11-12 | International Business Machines Corporation | Full-stripe-write protocol for maintaining parity coherency in a write-back distributed redundancy data storage system |
JP5388976B2 (ja) | 2010-09-22 | 2014-01-15 | 株式会社東芝 | 半導体記憶制御装置 |
US8615681B2 (en) | 2010-12-14 | 2013-12-24 | Western Digital Technologies, Inc. | System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss |
JP5605238B2 (ja) * | 2011-01-25 | 2014-10-15 | ソニー株式会社 | メモリシステムおよびその動作方法 |
US8862804B2 (en) | 2011-04-29 | 2014-10-14 | Western Digital Technologies, Inc. | System and method for improved parity determination within a data redundancy scheme in a solid state memory |
JP5776436B2 (ja) | 2011-08-22 | 2015-09-09 | 富士通株式会社 | ストレージシステム、ストレージ制御装置およびストレージ制御方法 |
US8707090B2 (en) | 2011-10-19 | 2014-04-22 | Hitachi, Ltd. | Storage system |
KR102318478B1 (ko) | 2014-04-21 | 2021-10-27 | 삼성전자주식회사 | 스토리지 컨트롤러, 스토리지 시스템 및 상기 스토리지 컨트롤러의 동작 방법 |
KR20150127434A (ko) * | 2014-05-07 | 2015-11-17 | 에스케이텔레콤 주식회사 | 메모리제어장치 및 메모리제어장치의 동작 방법 |
KR102368071B1 (ko) * | 2014-12-29 | 2022-02-25 | 삼성전자주식회사 | 레이드 스토리지 시스템에서의 스트라이프 재구성 방법 및 이를 적용한 가비지 컬렉션 동작 방법 및 레이드 스토리지 시스템 |
-
2016
- 2016-03-14 KR KR1020160030241A patent/KR102527992B1/ko active IP Right Grant
-
2017
- 2017-02-06 US US15/425,587 patent/US10324639B2/en active Active
- 2017-03-14 CN CN201710151764.4A patent/CN107193486B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5603001A (en) * | 1994-05-09 | 1997-02-11 | Kabushiki Kaisha Toshiba | Semiconductor disk system having a plurality of flash memories |
US5659704A (en) * | 1994-12-02 | 1997-08-19 | Hewlett-Packard Company | Methods and system for reserving storage space for data migration in a redundant hierarchic data storage system by dynamically computing maximum storage space for mirror redundancy |
US20010029570A1 (en) * | 1997-09-12 | 2001-10-11 | Akira Yamamoto | Storage controller |
US6725392B1 (en) * | 1999-03-03 | 2004-04-20 | Adaptec, Inc. | Controller fault recovery system for a distributed file system |
CN103645969A (zh) * | 2013-12-13 | 2014-03-19 | 华为技术有限公司 | 数据复制方法及数据存储系统 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108334278A (zh) * | 2017-12-15 | 2018-07-27 | 中兴通讯股份有限公司 | 一种存储系统均衡管理方法和装置 |
CN110231914A (zh) * | 2018-03-05 | 2019-09-13 | 三星电子株式会社 | 数据存储装置及其操作方法 |
CN110231914B (zh) * | 2018-03-05 | 2024-04-09 | 三星电子株式会社 | 数据存储装置及其操作方法 |
CN110556156A (zh) * | 2018-06-01 | 2019-12-10 | 三星电子株式会社 | 半导体存储器件、存储系统及操作半导体存储器件的方法 |
CN110556156B (zh) * | 2018-06-01 | 2024-05-24 | 三星电子株式会社 | 半导体存储器件、存储系统及操作半导体存储器件的方法 |
CN112823331B (zh) * | 2018-10-10 | 2024-03-29 | 阿里巴巴集团控股有限公司 | 用于具有较细粒度的并行多租户ssd中的数据恢复的系统和方法 |
CN112823331A (zh) * | 2018-10-10 | 2021-05-18 | 阿里巴巴集团控股有限公司 | 用于具有较细粒度的并行多租户ssd中的数据恢复的系统和方法 |
CN111274062A (zh) * | 2018-12-05 | 2020-06-12 | 美光科技公司 | Nand装置混合奇偶校验管理 |
US11609819B2 (en) | 2018-12-05 | 2023-03-21 | Micron Technology, Inc. | NAND device mixed parity management |
CN111274062B (zh) * | 2018-12-05 | 2023-09-08 | 美光科技公司 | Nand装置混合奇偶校验管理 |
CN111709872A (zh) * | 2020-05-19 | 2020-09-25 | 北京航空航天大学 | 一种图三角形计数算法的自旋存内计算架构 |
CN112717419A (zh) * | 2021-01-04 | 2021-04-30 | 厦门梦加网络科技股份有限公司 | 一种游戏数据的保存方法 |
CN112817533A (zh) * | 2021-01-29 | 2021-05-18 | 深圳忆联信息系统有限公司 | Ssd管理方法、装置计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107193486B (zh) | 2021-11-26 |
US20170262202A1 (en) | 2017-09-14 |
KR20170106752A (ko) | 2017-09-22 |
KR102527992B1 (ko) | 2023-05-03 |
US10324639B2 (en) | 2019-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107193486A (zh) | 数据存储设备和包括该数据存储设备的数据处理系统 | |
US10949094B2 (en) | Storage device and operating method of storage device | |
US11914531B2 (en) | Host controller interface using multiple circular queue, and operating method thereof | |
KR101573591B1 (ko) | 메모리 시스템 제어기를 구비하는 장치 및 관련 방법 | |
US9990146B2 (en) | Apparatus and method of data sequencing | |
CN107229417A (zh) | 数据存储设备及其操作方法 | |
US20120260020A1 (en) | Non-volatile semiconductor memory module enabling out of order host command chunk media access | |
CN108073357A (zh) | 以raid方式存储数据的存储装置 | |
CN110347330A (zh) | 存储器系统及其操作方法 | |
US10866764B2 (en) | Memory system with parity cache scheme and method of operating such memory system | |
US12045470B2 (en) | Method of writing data in nonvolatile memory device and nonvolatile memory device performing the same | |
US11698855B2 (en) | Method, memory controller and storage device to perform garbage collection based on fragmentation ratio of blocks | |
US11762572B2 (en) | Method of operating storage device and method of operating storage system using the same | |
US11681638B2 (en) | Method of synchronizing time between host device and storage device and system performing the same | |
KR102643067B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US11593031B2 (en) | Operating method of host device and storage device using credit | |
US20230130884A1 (en) | Method of scheduling commands for memory device and memory system performing the same | |
US11055011B2 (en) | Storage device | |
US11531605B2 (en) | Memory system for handling program error and method thereof | |
US12014772B2 (en) | Storage controller and storage device including the same | |
US11500728B2 (en) | Storage controller and method of restoring error of the same | |
US12056048B2 (en) | System and method for management of electronic memory | |
US11829228B2 (en) | Storage devices of performing metadata management and methods of operating the same |
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 |