CN108073357A - 以raid方式存储数据的存储装置 - Google Patents

以raid方式存储数据的存储装置 Download PDF

Info

Publication number
CN108073357A
CN108073357A CN201710986336.3A CN201710986336A CN108073357A CN 108073357 A CN108073357 A CN 108073357A CN 201710986336 A CN201710986336 A CN 201710986336A CN 108073357 A CN108073357 A CN 108073357A
Authority
CN
China
Prior art keywords
band
memory
controller
odd check
collection
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
CN201710986336.3A
Other languages
English (en)
Other versions
CN108073357B (zh
Inventor
朴东镇
金吉焕
禹成勋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN108073357A publication Critical patent/CN108073357A/zh
Application granted granted Critical
Publication of CN108073357B publication Critical patent/CN108073357B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1028Distributed, i.e. distributed RAID systems with parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID

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)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种以RAID方式存储数据的存储装置。存储装置包括多个非易失性存储器和控制器。所述多个非易失性存储器被配置为分配地存储条带集的第一条带和第二条带。所述控制器包括所述控制器内的第一存储器和第二存储器。所述控制器被配置为:从主机接收第一条带和第二条带,将第一条带和第二条带分配地存储在所述多个非易失性存储器中,并基于第一条带和第二条带执行奇偶校验运算。所述控制器被配置为:基于第一条带,产生中间奇偶校验;将中间奇偶校验存储在第一存储器中。如果奇偶校验运算被停止,则所述控制器被配置为将存储在第一存储器中的中间奇偶校验移动到第二存储器。

Description

以RAID方式存储数据的存储装置
本申请要求于2016年11月7日提交的第10-2016-0147673号韩国专利申请的优先权,所述申请的全部内容通过引用包含于此。
技术领域
本公开涉及半导体存储器装置,更具体地讲,涉及一种以RAID方式存储数据的存储装置。
背景技术
闪存装置被广泛用作信息装置(诸如,计算机、智能电话、数字相机、摄影机、录音机、MP3播放器和手持PC等)的声音和图像数据存储介质。然而,闪存的特性为:在将数据写入闪存中之前执行擦除操作,并且被写入的数据的单位小于被删除的数据的单位。即使在闪存被用作辅助存储器装置的情况下,该特性也成为了阻碍一般硬盘的文件系统的使用的因素。此外,该特性意味着存储器的顺序输入/输出处理比非顺序输入/输出处理更高效。
基于闪存的高容量存储装置的典型示例包括SSD(固态驱动器)。随着对SSD的需求增加,SSD的用途正在变得被更多方面地划分。例如,SSD的用途可被细分为用于服务器的SSD、用于客户端的SSD和用于条带集(stripe set)中心的SSD。SSD的接口应能够根据各个用途提供最佳速度和最佳可靠性。SATA、PCIe、SAS等作为最佳SSD接口被应用,以满足这个需要。
包括多个存储装置的存储系统被用于保证高可靠性。例如,RAID(独立磁盘冗余阵列)存储系统将与一个条带集对应的数据进行划分,并将划分的条带分配地存储在多个存储装置中。由于所述多个存储装置不太可能同时产生问题,所以该存储系统能提供高可靠性的数据。
发明内容
一些示例实施例涉及一种存储装置。所述存储装置可包括多个非易失性存储器和控制器。所述多个非易失性存储器可被配置为分配地存储条带集的第一条带和第二条带。所述控制器可包括所述控制器内的第一存储器和第二存储器。所述控制器可被配置为从主机接收第一条带和第二条带。所述控制器可被配置为将第一条带和第二条带分配地存储在所述多个非易失性存储器中。所述控制器可被配置为基于第一条带和第二条带执行奇偶校验运算。所述控制器可被配置为:基于第一条带,产生中间奇偶校验;将中间奇偶校验存储在第一存储器中;如果奇偶校验运算被停止,则将存储在第一存储器中的中间奇偶校验移动到第二存储器。
一些示例实施例涉及一种包括多个非易失性存储器和控制器的存储装置。所述多个非易失性存储器被配置为分配地存储第一条带集的第一条带和第二条带以及第二条带集的第三条带。所述控制器被配置为从主机接收第一条带、第二条带和第三条带并将第一条带、第二条带和第三条带分配地存储在所述多个非易失性存储器中。所述控制器包括所述控制器内的第一存储器和第二存储器。所述控制器被配置为基于第一条带产生第一中间奇偶校验并将第一中间奇偶校验存储在第一存储器中。如果所述存储器在第一条带之后而非在第二条带之后从主机接收到第三条带,则所述控制器被配置为:将存储在第一存储器中的第一中间奇偶校验移动到第二存储器,基于第三条带产生第二中间奇偶校验,并将第二中间奇偶校验存储在第一存储器中。
在一些示例实施例中,一种存储装置可包括:多个非易失性存储器,被配置为分配地存储至少一个条带集的多个条带;控制器,连接到所述多个非易失性存储器。所述至少一个条带集包括第一条带集。所述控制器被配置为从主机接收所述至少一个条带集的所述多个条带。所述控制器包括第一存储器和第二存储器。所述控制器被配置为对所述至少一个条带集的所述多个条带执行奇偶校验运算。奇偶校验运算包括:使用第一存储器缓冲中间奇偶校验结果,同时所述控制器基于第一条带集的所述多个条带产生第一条带集的最终奇偶校验并将第一条带集的所述多个条带分配到所述多个存储器。如果在奇偶校验运算期间,在从主机到所述控制器的第一条带集的所述多个条带的流中发生错误,则所述控制器被配置为停止奇偶校验运算并将中间奇偶校验结果传送到第二存储器。如果第一条带集的所述多个条带中的错误被解决,则所述控制器被配置为:通过将中间奇偶校验结果传送到第一存储器并基于第一条带集的所述多个条带的剩余部分和中间奇偶校验执行奇偶校验运算以产生第一条带集的最终奇偶校验,来继续奇偶校验运算。
附图说明
基于附图和具体实施方式,本发明构思将变得更清楚。
图1是示出根据一些示例实施例的电子系统的框图。
图2是示出图1的存储装置中的控制器的配置的框图。
图3是示出在图1的存储装置中使用RAID方式处理条带集的方法的框图。
图4是示出在存储装置中使用RAID方式处理条带集的方法的框图。
图5是描述在存储装置中产生奇偶校验的处理的示意图。
图6是示出在图1的存储装置中使用RAID方式处理条带集的方法的框图。
图7是示出根据在图6的RAID引擎中处理条带集的方法在第一存储器与第二存储器之间移动的中间奇偶校验的框图。
图8是描述在图6的RAID引擎中使用RAID方式处理条带集的方法的流程图。
图9是示出在图1的存储装置中使用RAID方式处理条带集的方法的框图。
图10是描述在图9的RAID引擎中产生奇偶校验的处理的示意图。
图11是示出在图1的存储装置中使用RAID方式处理条带集的方法的框图。
图12是示出根据在图11的RAID引擎中处理条带集的方法而在第一存储器与第二存储器之间移动的中间奇偶校验的框图。
图13是描述在图11的RAID引擎中产生奇偶校验的处理的示意图。
图14是描述在图11的RAID引擎中使用RAID方式处理条带集的方法的流程图。
图15是示出在图1的存储装置中使用RAID方式处理条带集的方法的框图。
图16是描述在图15的RAID引擎中产生奇偶校验的处理的示意图。
图17A至图17C是示出根据在图15的RAID引擎中处理条带集的方法在第一存储器与第二存储器之间移动的中间奇偶校验的框图。
具体实施方式
以下将参照附图对本发明构思的示例实施例进行详细描述。
图1是示出根据一些示例实施例的电子系统的框图。电子系统1000可包括主机1100和存储装置1200。
主机1100可与存储装置1200交换数据。主机1100可将命令发送到存储装置1200,以从存储装置1200读取数据DATA。存储装置1200可响应于命令而将请求的数据DATA提供给主机1100。例如,存储装置1200可从多个非易失性存储器1210读取请求的条带集,并将条带集提供给主机1100。
主机1100可被实现为包括至少一个处理器核。例如,主机1100可包括通用处理器、专用处理器或应用处理器。主机1100可以自身是处理器,或者是包括处理器的电子装置或电子系统。
存储装置1200可包括多个非易失性存储器1210和控制器1220。包括在非易失性存储器1210中的非易失性存储器1211、1212、1213和1214中的每一个可存储写入数据或输出由主机1100请求的读取数据。为此,非易失性存储器1211、1212、1213和1214中的每一个可包括用于存储数据的存储区域。虽然图1示出四个非易失性存储器1211、1212、1213和1214,但是本发明构思不限于此。非易失性存储器的数量可被不同地改变或修改。
在一些示例实施例中,非易失性存储器1211、1212、1213和1214中的每一个可被实现为包括三维(3D)存储器阵列。可在基底(例如,半导体基底(诸如,硅基底)或绝缘体上半导体(semiconductor-on-insulator)基底)上单片地形成3D存储器阵列。3D存储器阵列可包括具有设置在基底之上的有源区域的存储器单元以及与这些存储器单元的操作相关联的电路的两个或更多个物理级,3D存储器单元是在这样的基底上或在基底内。阵列的每级的层可直接设置在阵列的每一基础级(underlying level)的层上。3D存储器阵列可包括垂直NAND串,其中,垂直NAND串垂直取向使得至少一个存储器单元位于另一存储器单元上方。所述至少一个存储器单元包括电荷俘获层。通过引用完整地合并于此的下面的专利文档(第7,679,133号、第8,553,466号、第8,654,587号和第8,559,235号美国专利,以及公开号为2011/0233648的美国专利)来描述用于三维存储器阵列的合适的配置,其中,三维存储器阵列被配置为具有在级之间共享的字线和/或位线的多个级。
当非易失性存储器1211、1212、1213和1214中的每一个包括NAND型闪存时,非易失性存储器1211、1212、1213和1214中的每一个可包括沿多条字线和多条位线形成的存储器单元阵列。然而,本发明构思不限于此,并且非易失性存储器1211、1212、1213和1214中的每一个可包括PRAM(相变随机存取存储器)、MRAM(磁电阻式RAM)、ReRAM(电阻式RAM)和FRAM(铁电RAM)等中的至少一个。非易失性存储器1211、1212、1213和1214中的每一个的配置可被不同地改变或修改。在一些示例实施例中,可使用易失性存储器(诸如,SRAM(静态RAM)、DRAM(动态RAM)和SDRAM(同步DRAM)等)来替换非易失性存储器1211、1212、1213和1214中的一些或全部。
控制器1220可包括RAID引擎1221、第一存储器1222和第二存储器1223。控制器1220能控制存储装置1200的整体操作。控制器1220可对在存储装置1200中处理的信号/数据进行编码和解码。
控制器1220可包括用于执行那些不同操作和稍后将描述的操作的硬件配置、软件配置和它们的混合配置。例如,控制器1220可包括被配置为执行特定操作的专用硬件电路。控制器1220可包括能执行被配置为执行特定操作的程序代码的指令集的至少一个处理器核。
RAID引擎1221可以以RAID方式将数据存储在非易失性存储器1211、1212、1213和1214中。RAID可具有各种级别。RAID可以是以下项之一:RAID级别0(没有奇偶校验的条带集或条带化)、RAID级别1(没有奇偶校验的镜像集或镜像化)、RAID级别2(海明码(Hammingcode)奇偶校验)、RAID级别3(具有专用奇偶校验、位交叉奇偶校验或字节级别奇偶校验的条带集)、RAID级别4(块级别奇偶校验)、RAID级别5(具有分布式奇偶校验或交叉奇偶校验的条带集)、RAID级别6(具有双重分布式奇偶校验的条带集)、RAID级别7、RAID级别10和RAID级别53,或者RAID可以是通过将上述RAID级别中的至少两个进行合并而获得的RAID级别(例如,RAID0+1、RAID 1+0、RAID 5+0或RAID 0+1+5)。将参照图3进一步描述RAID方式。
第一存储器1222和第二存储器1223中的每一个可存储用在控制器1220的操作中的数据。为此,第一存储器1222和第二存储器1223中的每一个可包括各种非易失性/易失性存储器中的一个或多个。第一存储器1222可高速操作以提供控制器1220的高性能。例如,第一存储器1222可包括SRAM。在一些示例实施例中,电子系统1000可被实现为单个电子装置。电子装置1000可以是包括主机1100和存储装置1200的各种电子装置(诸如,家电、台式计算机、膝上型计算机、平板计算机、智能电话、可穿戴装置、视频游戏机等)中的一个。
图2是示出图1的存储装置中的控制器的配置的框图。控制器1220可包括RAID引擎1221、第一存储器1222、第二存储器1223、中央处理器(CPU)1224、主机接口1225、数据管理器1226和闪存接口1227。
RAID引擎1221能以条带为单位处理请求写入的数据,从而以RAID方式将请求写入的数据存储在非易失性存储器1210中。例如,请写入求的数据可作为条带集单元被管理。条带集可被划分为分别存储在非易失性存储器1210中的条带。RAID引擎1221可基于条带执行奇偶校验运算。
RAID引擎1221可缓冲当在第一存储器1222中产生奇偶校验时发生的中间结果。当在由控制器1220接收的数据流中发生错误时,RAID引擎1221可停止奇偶校验运算。当控制器1220对数据的接收被延迟或者在数据未被全部接收的状态下其他数据被控制器1220接收到时,错误可能会发生。当错误发生在控制器1220的硬件配置或软件配置中因而数据流不被控制时,RAID引擎1221可停止奇偶校验运算。当RAID引擎1221的奇偶校验运算被停止时,存储在第一存储器1222中的中间结果可移动到第二存储器1223。
当数据被控制器1220正常接收或者发生在控制器1220中的错误被解决时,RAID引擎1221可继续奇偶校验运算。为了使RAID引擎1221继续奇偶校验运算,存储在第二存储器1223中的中间结果可移动到第一存储器1222。将参照图6至图17C描述奇偶校验运算的停止操作和继续操作。
CPU 1224可将用于对非易失性存储器1210的读/写操作的各种控制信息发送到主机接口1225和闪存接口1227的寄存器。CPU 1224可根据针对控制器1220的各种控制操作而设置的固件进行操作。例如,CPU 1224可执行垃圾回收以管理非易失性存储器1210或闪存转换层(FTL)执行地址映射、损耗平衡等。
当控制器1220的硬件配置或软件配置中发生错误时,CPU 1224可控制RAID引擎1221的奇偶校验运算停止。当由控制器1220接收的数据流中发生错误时,CPU 1224可控制RAID引擎1221的奇偶校验运算停止。CPU 1224可进行控制,使得存储在第一存储器1222中的中间结果移动到第二存储器1223。
当数据被控制器1220正常接收或者发生在控制器1220中的错误被解决时,CPU1224可进行控制,使得在RAID引擎1221中继续奇偶校验运算。
主机接口1225可执行与主机1100的通信。例如,主机接口1225提供关于主机1100的通信通道。主机接口1225可提供主机1100与存储装置1200之间的物理连接。主机接口1225可响应于主机1100的总线格式而提供与存储装置1200的接口。主机1100的总线格式可对应于USB(通用串行总线)、SCSI(小型计算机系统接口)、PCI express、ATA、PATA(并行ATA)、SATA(串行ATA)、SAS(串行连接SCSI)和UFS(通用闪存)中的一个或多个。
数据管理器1226可管理从主机1100接收的数据流(例如,条带集)。数据管理器1226可确认构成条带集的多个条带中的每个条带的元信息或头信息。数据管理器1226可基于元信息或头信息确认接收的条带的顺序。当接收与待接收的条带集对应的条带所花费的时间相比于参考时间而被延迟,或者与其他条带集对应的条带被接收时,数据管理器1226可将这个信息提供给CPU 1224和RAID引擎1221中的至少一个。
闪存接口1227与非易失性存储器1210交换数据(例如,条带集)。闪存接口1227通过存储器通道(未示出)将数据写入到非易失性存储器1210中。通过存储器通道从非易失性存储器1210提供的读取的数据可由闪存接口1227收集。
图3是示出在图1的存储装置中使用RAID方式处理条带集的方法的框图。在RAID方式中,可以以条带为单位来管理数据。控制器1220可从主机1100接收第一条带集S_SET1。第一条带集S_SET1可对应于一条数据。第一条带集S_SET1可被构造为多个条带。每个条带可对应于数据区块(data chunk)。作为示例,第一条带集S_SET1可被构造为包括(和/或可被分解成)第一条带至第三条带S11、S12和S13。
RAID引擎1221可从主机1100接收包括条带S11、S12和S13的第一条带集S_SET1。RAID引擎1221可基于条带S11、S12和S13产生奇偶校验P13。当条带S11、S12和S13中的一些条带丢失或损坏时,奇偶校验P13可被用于恢复丢失或损坏的条带。
RAID引擎1221可执行用于基于条带S11、S12和S13产生奇偶校验P13的各种操作。第一存储器1222和/或第二存储器1223可存储或缓冲在操作被执行时产生/处理的中间结果。RAID引擎1221可将在奇偶校验P13的产生期间产生的中间结果缓冲在第一存储器1222中。当在控制器1220的操作中发生错误时,RAID引擎1221可将存储在第一存储器1222中的中间结果移动到第二存储器1223。
条带S11、S12和S13和奇偶校验P13可被分配地(distributively)存储在非易失性存储器1211、1212、1213和1214中。作为示例,控制器1220可将条带S11、S12和S13和奇偶校验P13分别存储在非易失性存储器1211、1212、1213和1214中。
当在非易失性存储器1211、1212、1213和1214中的至少一个中发生错误时,与包括在发生错误的非易失性存储器中的条带对应的数据区块可被损坏。在这种情况下,控制器1220可基于奇偶校验P13和条带S11、S12和S13中的未损坏的条带,来恢复与损坏的条带对应的数据区块。RAID方式能提高存储装置1200的可靠性。
图4是示出在存储装置中使用RAID方式处理条带集的方法的框图。图5是描述在存储装置中产生奇偶校验的处理的示意图。
参照图4,RAID引擎1221可接收条带S11、S12和S13。RAID引擎1221可以以第一条带集S_SET1上的第一条带S11、第二条带S12和第三条带S13的顺序来接收条带S11、S12和S13。
RAID引擎1221可执行用于基于条带S11、S12和S13产生奇偶校验P13的奇偶校验运算。奇偶校验运算可包括按位异或逻辑运算。RAID引擎1221可包括用于执行奇偶校验运算的运算器。
第一存储器1222可存储由RAID引擎1221计算的中间奇偶校验和/或最终奇偶校验。中间奇偶校验可表示在计算最终奇偶校验时产生的中间结果,最终奇偶校验可表示存储在非易失性存储器1210中的奇偶校验。
第二存储器1223可存储由RAID引擎1221计算的中间奇偶校验。当在RAID引擎1221产生最终奇偶校验之前在控制器1220的操作中发生错误时,存储在第一存储器1222中的中间奇偶校验可移动到第二存储器1223。
参照图4和图5,在时间t11,RAID引擎1221可接收第一条带S11。RAID引擎1221可基于第一条带S11产生中间奇偶校验P11。中间奇偶校验P11可与第一条带S11基本上相同。在时间t12,中间奇偶校验P11可被存储在第一存储器1222中,第一条带S11可被存储在非易失性存储器1210中。
在时间t13,RAID引擎1221可接收第二条带S12。RAID引擎1221还可从第一存储器1222接收中间奇偶校验P11。RAID引擎1221可对第二条带S12和中间奇偶校验P11执行奇偶校验运算,以产生中间奇偶校验P12。在时间t14,RAID引擎1221可将中间奇偶校验P12存储在第一存储器1222中。RAID引擎1221可将第二条带S12存储在非易失性存储器1210中。
在时间t15,RAID引擎1221可接收第三条带S13。RAID引擎1221还可从第一存储器1222接收中间奇偶校验P12。RAID引擎1221可对第三条带S13和中间奇偶校验P12执行奇偶校验运算,以产生最终奇偶校验P13(或奇偶校验P13)。在时间t16,RAID引擎1221可将奇偶校验P13存储在第一存储器1222中。RAID引擎1221可将第三条带S13存储在非易失性存储器1210中。第一存储器1222可将奇偶校验P13存储在非易失性存储器1210中。
图6是示出在图1的存储装置中使用RAID方式处理条带集的方法的框图。图7是示出根据在图6的RAID引擎中处理条带集的方法在第一存储器与第二存储器之间移动的中间奇偶校验的框图。
参照图6,RAID引擎1221可接收条带S11、S12和S13。RAID引擎1221可以以第一条带集S_SET1上的第一条带S11、第二条带S12和第三条带S13的顺序来接收条带S11、S12和S13。
第二条带S12的输入与第三条带S13的输入之间可发生时间延迟td。随着主机1100的第三条带S13的输出被延迟,可发生时间延迟td。当在第一条带至第三条带S11、S12和S13被控制器1220接收之后,在控制器1220的硬件配置或软件配置中发生错误时,可发生时间延迟td。
当时间延迟td变得比参考时间长时,可停止RAID引擎的奇偶校验运算。参照图7,存储在第一存储器1222中的中间奇偶校验P12可移动到第二存储器1223。存储在第一存储器1222中的在第二条带S12上产生的中间奇偶校验P12可移动到第二存储器1223。为对其他条带集执行奇偶校验运算,可删除第一存储器1222的中间奇偶校验P12。
图8是描述在图6的RAID引擎中使用RAID方式处理条带集的方法的流程图。参照图6至图8,在操作S110中,RAID引擎1221可接收与第一条带集S_SET1有关的首先被处理的条带。
在操作S115中,RAID引擎1221可基于条带产生中间奇偶校验,并且产生的中间奇偶校验可存储在第一存储器1222中。在操作S120中,RAID引擎1221可确定是否发生了必须停止奇偶校验运算的情况。当在控制器1220的操作中发生错误时,可停止RAID引擎1221的奇偶校验运算。当在控制器1220的操作中发生错误时,可不处理与条带对应的数据。当控制器1220对条带的接收被延迟时,可停止RAID引擎1221的奇偶校验运算。
当在RAID引擎1221中发生必须停止奇偶校验运算的情况(是)时,在操作S125中,RAID引擎1221停止奇偶校验运算。奇偶校验运算被停止,然后在操作S130中,存储在第一存储器1222中的中间奇偶校验可移动到第二存储器1223。RAID引擎1221的奇偶校验运算可被结束。
当在RAID引擎1221中未发生必须停止奇偶校验运算的情况(否)时,在操作S135中,RAID引擎1221可基于接收的条带和存储在第一存储器1222中的中间奇偶校验来产生中间奇偶校验。RAID引擎1221可将产生的中间奇偶校验存储在第一存储器1222中。
在操作S140中,控制器1220可确定第一条带集S_SET1的最后的条带是否被接收。RAID引擎1221可从数据管理器1226(参照图2)接收关于条带的顺序的信息。当接收的条带不是第一条带集S_SET1的最后的条带(否)时,RAID引擎1221可基于在操作S135中接收的条带和存储在第一存储器1222中的中间奇偶校验来产生中间奇偶校验。
当接收的条带是第一条带集S_SET1的最后的条带(是)时,在操作S145中,RAID引擎1221可基于最后的条带和存储在第一存储器1222中的中间奇偶校验来产生奇偶校验(例如,最终奇偶校验)。产生的奇偶校验可存储在非易失性存储器1210中。
图9是示出在图1的存储装置中使用RAID方式处理条带集的方法的框图。图10是描述在图9的RAID引擎中产生奇偶校验的处理的示意图。
参照图9,RAID引擎1221可不接收第一条带集S_SET1的条带S11、S12和S13中的全部。例如,仅第一条带集S_SET1的条带S11、S12和S13中的一些可被RAID引擎1221接收。在第一条带集S_SET1的一些条带(例如,S11、S12)被RAID引擎1221接收的状态下,第二条带集S_SET2的条带S21、S22和S23可被RAID引擎1221接收。将参照图10描述RAID引擎1221产生和存储奇偶校验的方法。
参照图9和图10,在时间t21,RAID引擎1221可接收第一条带S11。RAID引擎1221可基于第一条带S11产生中间奇偶校验P11。中间奇偶校验P11可与第一条带S11基本上相同。在时间t22,中间奇偶校验P11可被存储在第一存储器1222中,第一条带S11可被存储在非易失性存储器1210中。
在时间t23,RAID引擎1221可接收第二条带S12。RAID引擎1221还可从第一存储器1222接收中间奇偶校验P11。RAID引擎1221可对第二条带S12和中间奇偶校验P11执行奇偶校验运算,以产生中间奇偶校验P12。在时间t24,RAID引擎1221可将中间奇偶校验P12存储在第一存储器1222中。RAID引擎1221可将第二条带S12存储在非易失性存储器1210中。
在时间t25,RAID引擎1221可接收第二条带集S_SET2的第一条带S21。在第一条带集S_SET1的条带没有被全部接收的状态下,第二条带集S_SET2被接收。因为这样,所以对第一条带集S_SET1的奇偶校验运算可被停止。
在时间t26,中间奇偶校验P12可从第一存储器1222移动到第二存储器1223。存储在第一存储器1222中的中间奇偶校验P12可被删除,使得在RAID引擎1221中对第二条带集S_SET2的条带S21、S22和S23执行奇偶校验运算。
在时间t27,RAID引擎1221可基于第一条带S21产生中间奇偶校验P21。中间奇偶校验P21可与第一条带S21基本上相同。在时间t28,中间奇偶校验P21可被存储在第一存储器1222中,第一条带S21可被存储在非易失性存储器1210中。
在时间t29,RAID引擎1221可接收第二条带S22。RAID引擎1221还可从第一存储器1222接收中间奇偶校验P21。RAID引擎1221可对第二条带S22和中间奇偶校验P21执行奇偶校验运算,以产生中间奇偶校验P22。在时间t30,RAID引擎1221可将中间奇偶校验P22存储在第一存储器1222中。RAID引擎1221可将第二条带S22存储在非易失性存储器1210中。
在时间t31,RAID引擎1221可接收第三条带S23。RAID引擎1221可从第一存储器1222接收中间奇偶校验P22。RAID引擎1221可对第三条带S23和中间奇偶校验P22执行奇偶校验运算,以产生最终奇偶校验P23(或奇偶校验P23)。在时间t32,RAID引擎1221可将奇偶校验P23存储在第一存储器1222中。RAID引擎1221可将第三条带S23存储在非易失性存储器1210中。第一存储器1222可将奇偶校验P23存储在非易失性存储器1210中。
在一些示例实施例中,当控制器1220的数据接收被延迟或者在控制器1220的内部操作中发生错误时,RAID引擎1221可停止对接收的条带集的奇偶校验运算。存储在第一存储器1222中的中间奇偶校验可移动到第二存储器1223。存储在第一存储器1222中的中间奇偶校验可被删除,RAID引擎1221可准备对其他条带集执行奇偶校验运算。因此,关于奇偶校验的产生的延迟可被降低,存储装置1200的性能可被提高。
图11是示出在图1的存储装置中使用RAID方式处理条带集的方法的框图。图12是示出根据在图11的RAID引擎中处理条带集的方法在第一存储器与第二存储器之间移动的中间奇偶校验的框图。图13是描述在图11的RAID引擎中产生奇偶校验的处理的示意图。
参照图11,在数据被控制器1220正常接收或者在控制器1220中发生的错误被解决的情况下,关于第一条带集S_SET1的第三条带S13可再次被RAID引擎1221接收。参照图9,在第二条带集S_SET2的条带S21、S22和S33的奇偶校验运算被完成之后,关于第一条带集S_SET1的第三条带S13可再次被RAID引擎1221接收。RAID引擎1221可继续对第一条带集S_SET1的奇偶校验运算。同时,第三条带S13是第一条带集S_SET1上的最后处理的条带,RAID引擎1221可仅对第一条带集S_SET1执行一次奇偶校验运算。
参照图12,RAID引擎1221可继续对第一条带集S_SET1的奇偶校验运算。为了继续奇偶校验运算,存储在第二存储器1223中的中间奇偶校验P12可移动到第一存储器1222。将参照图13进一步描述RAID引擎1221的产生奇偶校验的处理。
参照图11和图13,在时间t41,第三条带S13可被RAID引擎1221接收。在时间t42,中间奇偶校验P12可从第二存储器1223移动到第一存储器1222。
在时间t43,RAID引擎1221可对第三条带S13和中间奇偶校验P12执行奇偶校验运算。在时间t44,RAID引擎1221可将奇偶校验P13存储在第一存储器1222中。RAID引擎1221可将第三条带S13存储在非易失性存储器1210中。第一存储器1222可将奇偶校验P13存储在非易失性存储器1210中。
图14是描述在图11的RAID引擎中使用RAID方式处理条带集的方法的流程图。在操作S210中,控制器1220可确定是否可在RAID引擎1221中继续对第一条带集S_SET1的奇偶校验运算。当可继续对第一条带集S_SET1的奇偶校验运算(是)时,RAID引擎1221可接收第一条带集S_SET1的条带。接收的条带可以是第一条带集S_SET1的条带中的未被处理的条带。
在操作S220中,存储在第二存储器1223中的中间奇偶校验可移动到第一存储器1222。作为示例,存储在第二存储器1223中的中间奇偶校验是对在接收的条带之前接收的条带的奇偶校验运算的结果。
在操作S230中,RAID引擎1221可基于接收的条带和移动到第一存储器1222的中间奇偶校验产生中间奇偶校验,产生的中间奇偶校验可存储在第一存储器1222中。
在操作S240中,控制器1220可确定第一条带集S_SET1的最后的条带是否被接收。RAID引擎1221可从数据管理器1226接收关于条带的顺序的信息(参照图2)。
当接收的条带不是第一条带集S_SET1的最后的条带(否)时,RAID引擎1221可基于接收的条带和存储在第一存储器1222中的中间奇偶校验产生中间奇偶校验。当接收的条带是第一条带集S_SET1的最后的条带(是)时,在操作S250中,RAID引擎1221可基于最后的条带和存储在第一存储器1222中的中间奇偶校验产生奇偶校验(或最终奇偶校验)。产生的奇偶校验可存储在非易失性存储器1210中。
图15是示出在图1的存储装置中使用RAID方式处理条带集的方法的框图。参照图15,第一条带集S_SET1的条带S11、S12和S13以及第二条带集S_SET2的条带S21、S22和S33可被非顺序地输入到RAID引擎1221。
条带可按照第一条带集S_SET1的第一条带S11和第二条带S12、第二条带集S_SET2的第一条带S21和第二条带S22、第一条带集S_SET1的第三条带S13和第二条带集S_SET2的第三条带S23的顺序被输入到RAID引擎1221。当条带被非顺序地输入到RAID引擎1221时,参照图16描述产生奇偶校验的处理。
第一存储器1222可被划分成多个存储区域1222_1和1222_2。存储区域1222_1和1222_2中的每个存储区域可存储关于第一条带集S_SET1的中间奇偶校验和关于第二条带集S_SET2的中间奇偶校验。第二存储器1223可被划分成多个存储区域1223_1和1223_2。存储区域1223_1和1223_2中的每个存储区域可存储从第一存储器1222的存储区域1222_1和1222_2接收的中间奇偶校验。虽然第一存储器1222和第二存储器1223中的每个存储器示出两个存储区域,但是本发明构思不限于此,并且存储区域的数量可被不同地改变和修改。
图16是描述在图15的RAID引擎中产生奇偶校验的处理的示意图。图17A至图17C是示出根据图15的在RAID引擎中处理条带集的方法在第一存储器与第二存储器之间移动的中间奇偶校验的框图。
参照图15和图16,在时间t51,RAID引擎1221可接收第一条带集S_SET1的第一条带S11。RAID引擎1221可基于第一条带S11产生中间奇偶校验P11。中间奇偶校验P11可与第一条带S11基本上相同。在时间t52,中间奇偶校验P11可被存储在第一存储器1222中的第一存储区域1222_1中,第一条带S11可被存储在非易失性存储器1210中。
在时间t53,RAID引擎1221可接收第一条带集S_SET1的第二条带S12。RAID引擎1221可从第一存储器1222的第一存储区域1222_1接收中间奇偶校验P11。RAID引擎1221可对第二条带S12和中间奇偶校验P11执行奇偶校验运算,以产生中间奇偶校验P12。在时间t54,RAID引擎1221可将中间奇偶校验P12存储在第一存储器1222的第一存储区域1222_1中。RAID引擎1221可将第二条带S12存储在非易失性存储器1210中。
在时间t55,RAID引擎1221可接收第二条带集S_SET2的第一条带S21。在第一条带集S_SET1的条带没有被全部接收的状态下,第二条带集S_SET2被接收。因为这样,所以对第一条带集S_SET1的奇偶校验运算可被停止。
一起参照图16与图17A,在时间t56,存储在第一存储器1222的第一存储区域1222_1中的中间奇偶校验P12可移动到第二存储器1223的第一存储区域1223_1(①)。为了在RAID引擎1221中对第二条带集S_SET2的条带S21、S22和S33执行奇偶校验运算,存储在第一存储器1222中的中间奇偶校验P12可被删除。
在时间t57,RAID引擎1221可基于第二条带集S_SET2的第一条带S21产生中间奇偶校验P21。中间奇偶校验P21可与第一条带S21基本上相同。在时间t58,中间奇偶校验P21可被存储在第一存储器1222的第二存储区域1222_2中,第一条带S21可被存储在非易失性存储器1210中。
在时间t59,RAID引擎1221可接收第二条带集S_SET2的第二条带S22。RAID引擎1221可从第一存储器1222的第二存储区域1222_2接收中间奇偶校验P21。RAID引擎1221可对第二条带S22和中间奇偶校验P21执行奇偶校验运算,以产生中间奇偶校验P22。在时间t60,RAID引擎1221可将中间奇偶校验P22存储在第一存储器1222的第二存储区域1222_2中。RAID引擎1221可将第二条带S22存储在非易失性存储器1210中。
在时间t61,RAID引擎1221可接收第一条带集S_SET1的第三条带S13。RAID引擎1221可继续对第一条带集S_SET1的奇偶校验运算。RAID引擎1221可停止对第二条带集S_SET2的奇偶校验运算,以对第一条带集S_SET1的第三条带S13执行奇偶校验运算。
一起参照图16与图17B,在时间t62,存储在第二存储器1223的第一存储区域1223_1中的关于第一条带集S_SET1的中间奇偶校验P12可移动到第一存储器1222的第一存储区域1222_1(②)。存储在第一存储器1222的第二存储区域1222_2中的关于第二条带集S_SET2的中间奇偶校验P22可移动到第二存储器1223的第二存储区域1223_2(③)。可同时执行第一存储器1222与第二存储器1223之间的多个中间奇偶校验的移动。
在时间t63,RAID引擎1221可从第一存储器1222的存储区域1222_1接收中间奇偶校验P12。RAID引擎1221可对第三条带S13和中间奇偶校验P12执行奇偶校验运算,以产生最终奇偶校验P13(或奇偶校验P13)。在时间t64,RAID引擎1221可将奇偶校验P13存储在第一存储器1222的第一存储区域1222_1中。RAID引擎1221可将第三条带S13存储在非易失性存储器1210中。第一存储器1222可将奇偶校验P13存储在非易失性存储器1210中。
在时间t65,RAID引擎1221可接收第二条带集S_SET2的第三条带S23。RAID引擎1221可继续对第二条带集S_SET2的奇偶校验运算。一起参照图16与图17C,为了继续对第二条带集S_SET2的奇偶校验运算,存储在第二存储器1223的第二存储区域1223_2中的中间奇偶校验P22可移动到第一存储器1222的第二存储区域1222_2中(④)。
在时间t66,RAID引擎1221可从第一存储器1222的第二存储区域1222_2接收中间奇偶校验P22。RAID引擎1221可对第三条带S23和中间奇偶校验P22执行奇偶校验运算,以产生最终奇偶校验P23(或奇偶校验P23)。在时间t67,RAID引擎1221可将奇偶校验P23存储在第一存储器1222的第二存储区域1222_2中。RAID引擎1221可将第三条带S23存储在非易失性存储器1210中。第一存储器1222可将奇偶校验P23存储在非易失性存储器1210中。
当控制器1220对条带的接收被延迟或者条带的流由于控制器1220内发生的错误而不被控制时,RAID引擎1221可停止对接收的条带集的奇偶校验运算。RAID引擎1221可将第一存储器1222中的在奇偶校验运算期间产生的中间奇偶校验移动到第二存储器1223。RAID引擎1221可准备删除存储在第一存储器1222中的中间奇偶校验,并执行对其他条带集的奇偶校验运算。当数据被控制器1220正常接收或者在控制器1220中发生的错误被解决时,RAID引擎1221可继续奇偶校验运算。因此,关于奇偶校验的产生的延迟可被降低,存储装置1200的性能可被提高。
根据本发明构思的一些示例实施例,当对数据的奇偶校验运算被停止时,存储装置可将存储在存储器中的中间奇偶校验存储在其他存储器中,并可对其他数据执行奇偶校验运算。因此,关于奇偶校验的产生的延迟可被降低,存储装置的性能可被提高。
虽然已经具体示出和描述了一些示例实施例,但是本领域普通技术人员将理解,在不脱离权利要求书的精神和范围的情况下,可对其做出形式和细节上的改变。

Claims (20)

1.一种存储装置,包括:
多个非易失性存储器,被配置为分配地存储条带集的第一条带和第二条带;
控制器,包括第一存储器和第二存储器,所述控制器被配置为从主机接收第一条带和第二条带,所述控制器被配置为将第一条带和第二条带分配地存储在所述多个非易失性存储器中,所述控制器被配置为基于第一条带和第二条带执行奇偶校验运算,
所述控制器被配置为:基于第一条带,产生中间奇偶校验;将中间奇偶校验存储在第一存储器中;如果奇偶校验运算被停止,则将存储在第一存储器中的中间奇偶校验移动到第二存储器。
2.如权利要求1所述的存储装置,其中,所述控制器包括:用于执行奇偶校验运算的独立磁盘冗余阵列RAID引擎。
3.如权利要求2所述的存储装置,其中,
所述控制器被配置为:如果在RAID引擎基于第一条带和第二条带执行奇偶校验运算时发生错误,则停止奇偶校验运算,并将中间奇偶校验从第一存储器移动到第二存储器。
4.如权利要求2所述的存储装置,其中,如果所述控制器在所述控制器接收到第一条带之后的参考时间内没有接收到第二条带,则所述控制器被配置为:使用RAID引擎停止奇偶校验运算,并将存储在第一存储器中的中间奇偶校验移动到第二存储器。
5.如权利要求4所述的存储装置,其中,
所述条带集是第一条带集,
所述控制器被配置为:如果所述控制器从主机接收与第一条带集不同的第二条带集,则使用RAID引擎对第二条带集的第三条带和第四条带执行奇偶校验运算。
6.如权利要求5所述的存储装置,其中,
所述控制器被配置为使用RAID引擎基于第三条带产生第一中间奇偶校验,所述控制器被配置为将第一中间奇偶校验存储在第一存储器中,
所述控制器被配置为在从主机接收到第三条带之后接收第四条带,
所述控制器被配置为:如果第四条带是第二条带集的最后的条带,则基于第四条带和存储在第一存储器中的第一中间奇偶校验,产生关于第二条带集的奇偶校验,并将产生的关于第二条带集的奇偶校验存储在第一存储器中。
7.如权利要求6所述的存储装置,其中,
第一存储器还将关于第二条带集的奇偶校验输出到所述多个非易失性存储器,
所述多个非易失性存储器被配置为分配地存储第三条带和第四条带以及关于第二条带集的奇偶校验。
8.如权利要求1所述的存储装置,其中,所述控制器被配置为:如果奇偶校验运算被继续,则将存储在第二存储器中的中间奇偶校验移动到第一存储器。
9.如权利要求8所述的存储装置,其中,如果第二条带是所述条带集的最后的条带,则所述控制器被配置为:使用RAID引擎,基于第二条带和存储在第一存储器中的中间奇偶校验,产生关于所述条带集的奇偶校验,并将产生的关于所述条带集的奇偶校验存储在第一存储器中。
10.如权利要求9所述的存储装置,其中,第一存储器被配置为将关于所述条带集的奇偶校验输出到所述多个非易失性存储器。
11.一种存储装置,包括:
多个非易失性存储器,被配置为分配地存储第一条带集的第一条带和第二条带以及第二条带集的第三条带;
控制器,包括第一存储器和第二存储器,所述控制器被配置为从主机接收第一条带、第二条带和第三条带并将第一条带、第二条带和第三条带分配地存储在所述多个非易失性存储器中,
所述控制器被配置为基于第一条带产生第一中间奇偶校验并将第一中间奇偶校验存储在第一存储器中,
如果所述存储器在第一条带之后从主机接收到第三条带而不是接收到第二条带,则所述控制器被配置为:将存储在第一存储器中的第一中间奇偶校验移动到第二存储器,基于第三条带产生第二中间奇偶校验,并将第二中间奇偶校验存储在第一存储器中。
12.如权利要求11所述的存储装置,其中,
所述控制器还包括:独立磁盘冗余阵列RAID引擎,其中,RAID引擎被配置为基于第一条带产生第一中间奇偶校验,将第一中间奇偶校验存储在第一存储器中,基于第三条带产生第二中间奇偶校验,并将第二中间奇偶校验存储在第一存储器中。
13.如权利要求12所述的存储装置,其中,如果所述控制器在第三条带之后接收到第二条带而不是接收到第二条带集的第四条带,则所述控制器被配置为:将存储在第一存储器中的第二中间奇偶校验移动到第二存储器,并将存储在第二存储器中的第一中间奇偶校验移动到第一存储器。
14.如权利要求13所述的存储装置,其中,如果第二条带是第一条带集的最后的条带,则RAID引擎被配置为基于第二条带和存储在第一存储器中的第一中间奇偶校验产生奇偶校验并将产生的奇偶校验存储在第一存储器中。
15.如权利要求14所述的存储装置,其中,
产生的奇偶校验是第一奇偶校验,
第一存储器被配置为将第一奇偶校验输出到所述多个非易失性存储器,
如果所述控制器接收到第四条带,则所述控制器被配置为将存储在第二存储器中的第二中间奇偶校验移动到第一存储器,
如果第四条带是第二条带集的最后的条带,则所述控制器被配置为:使用RAID引擎,基于第四条带和存储在第一存储器中的第二中间奇偶校验,产生第二奇偶校验;将第二奇偶校验存储在第一存储器中。
16.一种存储装置,包括:
多个非易失性存储器,被配置为分配地存储至少一个条带集的多个条带,所述至少一个条带集包括第一条带集;
控制器,连接到所述多个非易失性存储器,
所述控制器被配置为从主机接收所述至少一个条带集的所述多个条带,
所述控制器包括第一存储器和第二存储器,
所述控制器被配置为对所述至少一个条带集的所述多个条带执行奇偶校验运算,奇偶校验运算包括:使用第一存储器缓冲中间奇偶校验结果,同时所述控制器基于第一条带集的所述多个条带产生第一条带集的最终奇偶校验并将所述多个条带分配到所述多个非易失性存储器,
如果在奇偶校验运算期间,在从主机到所述控制器的第一条带集的所述多个条带的流中发生错误,则所述控制器被配置为停止奇偶校验运算并将中间奇偶校验结果传送到第二存储器,
如果第一条带集的所述多个条带中的错误被解决,则所述控制器被配置为:通过将中间奇偶校验结果传送到第一存储器并基于第一条带集的所述多个条带的剩余部分和中间奇偶校验结果执行奇偶校验运算以产生第一条带集的最终奇偶校验,来继续奇偶校验运算。
17.如权利要求16所述的存储装置,其中,
所述控制器包括独立磁盘冗余阵列RAID引擎,
所述控制器被配置为使用RAID引擎对第一条带集的所述多个条带执行奇偶校验运算。
18.如权利要求16所述的存储装置,其中,
至少一个条带集包括第二条带集,
如果所述控制器在所述控制器接收到第一条带集的所述多个条带中的至少一个条带之后并且在所述控制器接收到第一条带集中的所述多个条带中的最后一个条带之前接收到第二条带集的所述多个条带中的一个条带,则所述控制器被配置为:停止对第一条带集的奇偶校验运算;基于第一条带集的所述多个条带中的所述控制器在对第一条带集的奇偶校验运算期间接收的最近一个条带产生中间奇偶校验结果,开始对第二条带集的奇偶校验运算,
如果所述控制器接收到第一条带集的所述多个条带中的剩余部分中的一个条带,则所述控制器被配置为继续对第一条带执行奇偶校验运算。
19.如权利要求18所述的存储装置,其中,
第一存储器包括多个第一存储区域,
第二存储器包括多个第二存储区域,
如果所述控制器停止对第一条带集的奇偶校验运算,则所述控制器被配置为将对第一条带集的奇偶校验运算的中间奇偶校验结果传递到所述多个第二存储区域的第一个,
如果所述存储器停止对第二条带集的奇偶校验运算,则所述控制器被配置为将对第二条带集的奇偶校验运算的中间奇偶校验结果传送到所述多个第二存储区域中的第二个。
20.如权利要求16所述的存储装置,其中,所述多个非易失性存储器中的每个非易失性存储器是NAND型闪存。
CN201710986336.3A 2016-11-07 2017-10-20 以raid方式存储数据的存储装置 Active CN108073357B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020160147673A KR20180051703A (ko) 2016-11-07 2016-11-07 Raid 방식으로 데이터를 저장하는 스토리지 장치
KR10-2016-0147673 2016-11-07

Publications (2)

Publication Number Publication Date
CN108073357A true CN108073357A (zh) 2018-05-25
CN108073357B CN108073357B (zh) 2022-07-26

Family

ID=62063949

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710986336.3A Active CN108073357B (zh) 2016-11-07 2017-10-20 以raid方式存储数据的存储装置

Country Status (3)

Country Link
US (1) US10521152B2 (zh)
KR (1) KR20180051703A (zh)
CN (1) CN108073357B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108920094A (zh) * 2018-06-01 2018-11-30 深圳忆联信息系统有限公司 擦除单元raid方法、装置、计算机设备及存储介质
CN109189340A (zh) * 2018-08-29 2019-01-11 上海兆芯集成电路有限公司 用于存取独立硬盘冗余阵列的系统与方法
CN110908826A (zh) * 2019-10-16 2020-03-24 长江存储科技有限责任公司 数据处理方法及相关产品
US20210271546A1 (en) * 2019-05-24 2021-09-02 Violin Systems Llc Dynamic memory management system
WO2023028820A1 (en) * 2021-08-31 2023-03-09 Yangtze Memory Technologies Co., Ltd. System and apparatus for redundant array of independent disks striping against programming failures
WO2023098207A1 (zh) * 2021-11-30 2023-06-08 深圳忆联信息系统有限公司 多Pass编程NAND的RAID优化方法、装置及计算机设备

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10713117B2 (en) * 2017-06-15 2020-07-14 Hitachi, Ltd. Storage system and method for controlling storage system
US10353606B2 (en) * 2017-10-12 2019-07-16 International Business Machines Corporation Partial data replay in a distributed memory buffer system
TWI661307B (zh) * 2017-12-06 2019-06-01 慧榮科技股份有限公司 資料儲存裝置、主機裝置、以及資料寫入方法
US10838805B2 (en) * 2018-02-23 2020-11-17 Micron Technology, Inc. Generating parity data based on a characteristic of a stream of data
KR20200108650A (ko) 2019-03-11 2020-09-21 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US11822429B2 (en) * 2022-04-08 2023-11-21 Dell Products L.P. Storage device raid data write intermediate parity system

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5958078A (en) * 1996-02-28 1999-09-28 Hitachi, Ltd. Storage unit and storage unit subsystem
US20140025887A1 (en) * 2012-07-23 2014-01-23 Samsung Electronics Co., Ltd Nonvolatile memory device and related data management method
CN104641419A (zh) * 2012-07-13 2015-05-20 三星电子株式会社 固态驱动器控制器、固态驱动器、固态驱动器的数据处理方法、多通道固态驱动器、raid控制器以及其中记录有用于向固态驱动器提供顺序信息的计算机程序的计算机可读记录介质
CN104809032A (zh) * 2014-01-23 2015-07-29 Dssd股份有限公司 用于存储系统中服务感知的奇偶校验放置的方法和系统
CN104956311A (zh) * 2013-10-09 2015-09-30 株式会社日立制作所 存储系统以及存储控制方法
CN104965768A (zh) * 2014-01-23 2015-10-07 Dssd股份有限公司 用于存储系统中的服务感知数据放置的方法和系统
US20160283143A1 (en) * 2015-03-27 2016-09-29 Intel Corporation Method and apparatus for improving immunity to defects in a non-volatile memory

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5157670A (en) 1989-12-04 1992-10-20 Avasem Corporation Error correction code interruption system
WO1993023803A1 (fr) * 1992-05-21 1993-11-25 Fujitsu Limited Appareil de commande pour pile de disques
JP3458804B2 (ja) * 1999-12-27 2003-10-20 日本電気株式会社 情報記録装置およびその制御方法
US6912687B1 (en) 2000-05-11 2005-06-28 Lsi Logic Corporation Disk array storage subsystem with parity assist circuit that uses scatter-gather list
US7392428B2 (en) 2004-11-19 2008-06-24 International Business Machines Corporation Method and system for recovering from abnormal interruption of a parity update operation in a disk array system
US7392458B2 (en) 2004-11-19 2008-06-24 International Business Machines Corporation Method and system for enhanced error identification with disk array parity checking
CN101454745B (zh) 2006-05-24 2012-09-05 克姆佩棱特科技公司 用于raid管理、重新分配以及重新分段的系统和方法
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
US8583987B2 (en) 2010-11-16 2013-11-12 Micron Technology, Inc. Method and apparatus to perform concurrent read and write memory operations
US20120167100A1 (en) 2010-12-23 2012-06-28 Yan Li Manual suspend and resume for non-volatile memory
US8756371B2 (en) 2011-10-12 2014-06-17 Lsi Corporation Methods and apparatus for improved raid parity computation in a storage controller
US20160217040A1 (en) 2013-08-27 2016-07-28 Agency For Science, Technology And Research Raid parity stripe reconstruction
US9891993B2 (en) 2014-05-23 2018-02-13 International Business Machines Corporation Managing raid parity stripe contention
KR102368071B1 (ko) * 2014-12-29 2022-02-25 삼성전자주식회사 레이드 스토리지 시스템에서의 스트라이프 재구성 방법 및 이를 적용한 가비지 컬렉션 동작 방법 및 레이드 스토리지 시스템

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5958078A (en) * 1996-02-28 1999-09-28 Hitachi, Ltd. Storage unit and storage unit subsystem
CN104641419A (zh) * 2012-07-13 2015-05-20 三星电子株式会社 固态驱动器控制器、固态驱动器、固态驱动器的数据处理方法、多通道固态驱动器、raid控制器以及其中记录有用于向固态驱动器提供顺序信息的计算机程序的计算机可读记录介质
US20140025887A1 (en) * 2012-07-23 2014-01-23 Samsung Electronics Co., Ltd Nonvolatile memory device and related data management method
CN104956311A (zh) * 2013-10-09 2015-09-30 株式会社日立制作所 存储系统以及存储控制方法
CN104809032A (zh) * 2014-01-23 2015-07-29 Dssd股份有限公司 用于存储系统中服务感知的奇偶校验放置的方法和系统
CN104965768A (zh) * 2014-01-23 2015-10-07 Dssd股份有限公司 用于存储系统中的服务感知数据放置的方法和系统
US20160283143A1 (en) * 2015-03-27 2016-09-29 Intel Corporation Method and apparatus for improving immunity to defects in a non-volatile memory

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108920094A (zh) * 2018-06-01 2018-11-30 深圳忆联信息系统有限公司 擦除单元raid方法、装置、计算机设备及存储介质
CN109189340A (zh) * 2018-08-29 2019-01-11 上海兆芯集成电路有限公司 用于存取独立硬盘冗余阵列的系统与方法
CN109189340B (zh) * 2018-08-29 2021-11-09 上海兆芯集成电路有限公司 用于存取独立硬盘冗余阵列的系统与方法
US20210271546A1 (en) * 2019-05-24 2021-09-02 Violin Systems Llc Dynamic memory management system
US11586501B2 (en) * 2019-05-24 2023-02-21 Innovations In Memory Llc Dynamic memory management system
CN110908826A (zh) * 2019-10-16 2020-03-24 长江存储科技有限责任公司 数据处理方法及相关产品
CN110908826B (zh) * 2019-10-16 2021-04-20 长江存储科技有限责任公司 数据处理方法及相关产品
WO2023028820A1 (en) * 2021-08-31 2023-03-09 Yangtze Memory Technologies Co., Ltd. System and apparatus for redundant array of independent disks striping against programming failures
US11972155B2 (en) 2021-08-31 2024-04-30 Yangtze Memory Technologies Co., Ltd. System and apparatus for redundant array of independent disks striping against programming failures
WO2023098207A1 (zh) * 2021-11-30 2023-06-08 深圳忆联信息系统有限公司 多Pass编程NAND的RAID优化方法、装置及计算机设备

Also Published As

Publication number Publication date
US20180129451A1 (en) 2018-05-10
US10521152B2 (en) 2019-12-31
CN108073357B (zh) 2022-07-26
KR20180051703A (ko) 2018-05-17

Similar Documents

Publication Publication Date Title
CN108073357A (zh) 以raid方式存储数据的存储装置
US10324639B2 (en) Data storage device having multiple solid state drives for data duplication, and data processing system including the same
CN109213440B (zh) 存储器系统、存储器控制器及其操作方法
US10127166B2 (en) Data storage controller with multiple pipelines
US9990146B2 (en) Apparatus and method of data sequencing
CN106255953B (zh) 持久性数据存储体中的前向参考记录的方法和系统
TWI645404B (zh) 資料儲存裝置以及非揮發式記憶體操作方法
KR101933763B1 (ko) 연판정 디코딩을 위한 물리적 페이지 어드레스들을 상관시키는 것
US8612836B2 (en) Non-volatile memory device with uncorrectable information region and operation method using the same
US9971515B2 (en) Incremental background media scan
CN107122317A (zh) 数据存储装置
CN109992202A (zh) 数据存储设备、其操作方法以及包括其的数据处理系统
CN109992201A (zh) 数据存储设备及其操作方法
CN108459978A (zh) 包括非易失性存储器装置的数据存储装置及其操作方法
CN109240937A (zh) 数据存储装置及其操作方法
CN109426453A (zh) 数据存储装置及其操作方法
CN109240949A (zh) 数据存储装置及其操作方法
CN109815157B (zh) 编程命令处理方法与装置
US11733920B2 (en) NVMe simple copy command support using dummy virtual function
CN109656471A (zh) 数据存储设备及其操作方法
CN114579484A (zh) 数据存储装置及其操作方法
CN114730291A (zh) 具有分区的ssd的数据停放
US11733875B2 (en) Method of writing data in nonvolatile memory device and nonvolatile memory device performing the same
US11640336B2 (en) Fast cache with intelligent copyback
US11709781B2 (en) Method of managing data in storage device based on variable size mapping, method of operating storage device using the same and storage device performing 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