以RAID方式存储数据的存储装置的制作方法

文档序号:14504889阅读:169来源:国知局

技术领域

本公开涉及半导体存储器装置,更具体地讲,涉及一种以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(海明码(Hamming code)奇偶校验)、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中的错误被解决时,CPU 1224可进行控制,使得在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的性能可被提高。

根据本发明构思的一些示例实施例,当对数据的奇偶校验运算被停止时,存储装置可将存储在存储器中的中间奇偶校验存储在其他存储器中,并可对其他数据执行奇偶校验运算。因此,关于奇偶校验的产生的延迟可被降低,存储装置的性能可被提高。

虽然已经具体示出和描述了一些示例实施例,但是本领域普通技术人员将理解,在不脱离权利要求书的精神和范围的情况下,可对其做出形式和细节上的改变。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1