存储装置、存储系统和操作该装置的方法与流程

文档序号:14721823发布日期:2018-06-17 17:23阅读:230来源:国知局

技术领域

发明构思涉及一种存储装置、一种存储系统和一种操作存储装置的方法,更具体地说,涉及改善可靠性的一种存储装置、一种存储系统和一种操作存储装置的方法。



背景技术:

由于存储装置的集成度的增加和存储装置的尺寸的减小,所以更可能发生错误。这些错误的示例包括读取错误的数据(即,从存储器中的一个位置读取除了写入到该位置的实际数据之外的数据)或写入错误的数据(即,向存储器中的一个位置写入除了意图将要被写入到该位置的实际数据之外的数据)。纠错技术可以用来纠正这些错误。然而,纠错技术会使用存储器的过多的可用空间。因此,需要一种提高纠正错误的能力的方法。



技术实现要素:

发明构思的至少一个实施例提供了改善可靠性的一种存储装置、一种存储系统和一种操作存储装置的方法。

根据发明构思的示例性实施例,提供了一种操作包括多个随机存取存储器(RAM)芯片的存储装置的方法。所述方法包括:输入读取命令;从多个RAM芯片中的每个RAM芯片读取包括与读取命令对应的第一块数据的多条块数据;通过组合从RAM芯片中的每个RAM芯片读取的多条块数据来产生二维(2D)数据;通过利用2D数据处理读取命令。

根据发明构思的示例性实施例,提供了一种操作包括存储控制器和存储装置的存储系统的方法。所述方法包括:通过存储控制器将读取命令发送到存储装置;响应于读取命令,产生包括从第一存储区域和第二存储区域读取的数据的第一组合数据;确定第一组合数据中是否包括M个错误,其中,N是正整数,M是大于N的正整数;当第一组合数据中包括M个错误时,读取包括从第一存储区域和第二存储区域读取的数据的多条数据;重建第二组合数据;通过利用第二组合数据处理第一组合数据中的错误。

根据发明构思的示例性实施例,提供了一种包括多个存储区域和错误控制电路的存储装置,其中,多个存储区域被配置成响应于读取命令输出第一块数据,错误控制电路被配置成基于通过对1D数据执行单校双检(SEC-DED)操作而获得的结果,确定是否将产生包括第一组合块数据的2D数据,其中,1D数据通过组合分别从多个存储区域读取的多条第一块数据来产生。

根据发明构思的示例性实施例,提供了一种包括存储控制器和存储装置的存储系统。所述存储装置包括多个存储器芯片和错误控制电路,其中,错误控制电路被配置成当第一组合数据中包括M个错误时,组合存储在多个存储器芯片中的至少一个中的多条用户数据,并且重建2D第二组合数据以执行ECC操作,其中,通过组合分别从多个存储器芯片接收到的多条用户数据来产生第一组合数据,其中,N是正整数,M是大于N的正整数。

根据发明构思的示例性实施例,提供了一种操作包括多个随机存取存储器(RAM)芯片的存储装置的方法。所述方法包括:输入参考RAM芯片之中的第一RAM芯片的地址的读取命令;产生具有包括每个存储器芯片的地址处的字线的第一数据部分的单行的一维(1D)数据;对1D数据执行错误检测和纠正步骤以产生结果;当结果指示存在双错误时,利用二维(2D)数据处理读取命令,其中,2D数据的每列包括第一RAM芯片的字线的不同部分。

附图说明

从下面结合附图进行的详细描述,将更清楚地理解发明构思的示例性实施例,在附图中:

图1是根据发明构思的示例性实施例的操作存储装置的方法的流程图;

图2是根据发明构思的示例性实施例的存储装置的图;

图3是图2中示出的随机存取存储器(RAM)芯片的读取操作的图;

图4是根据发明构思的示例性实施例的二维(2D)读取数据的图;

图5是根据发明构思的示例性实施例的存储系统的图;

图6是根据发明构思的示例性实施例的存储装置的图;

图7是根据发明构思的示例性实施例的操作存储装置的方法的流程图;

图8是根据发明构思的示例性实施例的一维(1D)读取数据的图;

图9是根据发明构思的示例性实施例的操作存储装置的方法的流程图;

图10是根据发明构思的示例性实施例的更新与2D写入数据相关的奇偶校验数据的方法的流程图;

图11A、图11B、图11C和图11D是根据发明构思的示例性实施例的第一RAM芯片根据图10的方法的写入操作的图;

图12是根据发明构思的示例性实施例的更新与2D写入数据相关的奇偶校验数据的方法的流程图;

图13是根据发明构思的示例性实施例的根据图12的方法的第一RAM芯片的写入操作的图;

图14是根据发明构思的示例性实施例的存储装置的图;

图15是根据发明构思的示例性实施例的操作存储系统的方法的流程图;

图16是根据发明构思的示例性实施例的存储系统的图;

图17和图18是根据发明构思的示例性实施例的图16的存储装置的图;

图19是根据发明构思的示例性实施例的存储系统的图;

图20和图21是根据发明构思的示例性实施例的操作图19的存储系统的方法的流程图;

图22和图23是根据发明构思的示例性实施例的处理第一组合数据中的错误的方法的流程图;

图24是根据发明构思的示例性实施例的存储系统的图;

图25是根据发明构思的示例性实施例的存储装置的框图。

具体实施方式

现在将在下文中参照附图更充分地描述本发明构思,附图中示出了示例性实施例。同样的附图标记始终指示同样的元件。

在本发明构思的实施例中,提供了一种三维(3D)存储阵列。3D存储阵列整体地形成在使有源区设置在硅基底上的存储单元的阵列的一个或更多个物理级和与这些存储单元的操作相关的电路中,无论这样的相关电路在这样的基底之上或在这样的基底内。术语“整体的”意味着阵列的每一级的层直接沉积在阵列的每个基础级的层上。在本发明构思的实施例中,3D存储阵列包括竖直取向的竖直NAND串,使得至少一个存储单元位于另一个存储单元之上。所述至少一个存储单元可以包括电荷俘获层。下面的专利文件(通过引用包含于此)描述可适合三维存储阵列的构造,其中,三维存储阵列被配置为多个级,并且字线和/或位线在各个级之间被共享:U.S.专利号7,679,133、8,553,466、8,654,587、8,559,235以及US专利公布号2011/0233648。

图1是根据发明构思的示例性实施例的操作存储装置的方法100的流程图。参照图1,根据示例性实施例的操作存储装置的方法100包括:输入读取命令(S120);响应于读取命令从多个随机存取存储器(RAM)芯片中的每个,读取包括与读取命令对应的第一读取块数据的多条读取块数据(S140);通过使从每个RAM芯片读取的多条读取块数据组合来产生二维(2D)读取数据(S160);通过利用2D读取数据来处理对读取命令的响应(S180)。

图2是根据发明构思的示例性实施例的存储装置200的图。参照图2,存储装置200包括多个RAM芯片220_1、220_2、……、和220_N。RAM芯片220_1、220_2、……、和220_N中的每个可以由动态随机存取存储器(DRAM)、静态RAM(SRAM)、磁性RAM(MRAM)、铁电RAM(FRAM)或者电阻式RAM(RRAM)来实现。多个RAM芯片220_1、220_2、……、和220_N可以是同一类型的RAM芯片,多个RAM芯片220_1、220_2、……、和220_N中的至少一个可以是不同类型的RAM芯片。例如,多个RAM芯片220_1、220_2、……、和220_N中的第一RAM芯片220_1可以是MRAM芯片,剩余的RAM芯片可以是DRAM芯片。

存储装置200还可以包括被构造成控制RAM芯片220_1、220_2、……、和220_N中的每个的控制芯片240。控制芯片240可以接收外部施加的命令并控制RAM芯片220_1、220_2、……、和220_N中的每个的操作。例如,控制芯片240可以处理响应于外部施加的写入命令或读取命令而将被写入或读取的数据中的错误。为此,控制芯片240可以包括错误控制单元242(例如,错误控制电路)。然而,错误控制单元242可以作为附加逻辑单元被包括在存储装置200中而不是在控制芯片240中。下面将详细地描述错误控制单元242。虽然在图2中示出了,但是根据示例性实施例的存储装置200可以不包括控制芯片240,控制逻辑单元可以包括在RAM芯片220_1、220_2、……、和220_N中的每个中并且可以作为控制芯片240。

可以通过图2的存储装置200来执行图1的操作存储装置的方法100。现在将参照图1和图2详细地描述操作根据示例性实施例的存储装置200的方法。当缓冲命令输入到存储装置200(S120)时,RAM芯片220_1、220_2、……、和220_N中的每个读取存储在读取地址处的数据,其中,所述读取地址与读取命令一起被传输或者被包括在读取命令中(S140)。为了简洁起见,响应于读取命令而将要被读取的数据将被称作第一读取块数据。

图3是图2的RAM芯片220_1、220_2、……、和220_N中的每个中的读取操作的图。参照图3,RAM芯片220_1、220_2、……、和220_N中的每个包括存储单元阵列MCA和行缓冲器RBUF。在示例性实施例中,多个RAM芯片220_1、220_2、……、和220_N将存储在加载读取地址处的第一读取块数据DTA11、DTA21、……、和DTAN1同时且分别地加载到行缓冲器RBUF中。即,响应于一个读取命令,多个RAM芯片220_1、220_2、……、和220_N同时地读取各个第一读取块数据DTA11、DTA21、……、和DTAN1。第一读取块数据DTA11、DTA21、……、和DTAN1向各个RAM芯片220_1、220_2、……、和220_N的行缓冲器RBUF的加载可以与第一读取块数据DTA11、DTA21、……、和DTAN1从各个RAM芯片220_1、220_2、……、和220_N的输出同义。

在示例性实施例中,多个RAM芯片220_1、220_2、……、和220_N也分别将具有与第一读取块数据DTA11、DTA21、……、和DTAN1相同的行地址的多条数据加载到行缓冲器RBUF中。例如,第一RAM芯片220_1同时向行缓冲器RBUF加载存储在连接到映射到行地址RAdr[a]的字线的存储单元中的多条数据DTA11、DTA12……和DTA1x。

在示例性实施例中,响应于在多个存储器芯片之中的单一存储器芯片内利用地址来引用特定字线的读取命令,在基本同一时刻,将每个存储器芯片内的同一字线处的数据的第一部分复制到不同行缓冲器。例如,当出现两个存储器芯片时,如果读取命令利用与第一RAM芯片220_1的给定字线相关的行地址Radr[a],于是在基本同一时刻,将第一RAM芯片220_1中的字线的数据的第一部分(例如,DTA11)复制到第一RAM芯片220_1的行缓冲器,将第二RAM芯片220_2中的字线的数据的第一部分(例如,DTA21)复制到第二RAM芯片220_2的行缓冲器。第一部分可以位于每个RAM芯片中的字线内的同一相对位置处。在示例性实施例中,响应于读取命令,各个字线的附加部分与第一部分一起被复制到各个行缓冲器。例如,当出现两个存储器芯片时,如果读取命令利用与第一RAM芯片220_1的给定的字线相关的行地址Radr[a],那么在基本同一时刻,第一RAM芯片220_1中的字线的数据的第一部分和第二部分(例如,DTA11和DTA12)被复制到第一RAM芯片220_1的行缓冲器,第二RAM芯片220_2中的字线的数据的第一部分和第二部分(例如,DTA21和DTA22)被复制到第二RAM芯片220_2的行缓冲器。被复制的附加部分可以包括字线的所有部分。

由RAM芯片220_1、220_2、……、和220_N响应于读取命令而同时加载到行缓冲器RBUF中的多条数据可以被称作多条读取块数据。因此,多条读取块数据可以包括与读取命令对应的第一读取块数据。虽然图3示出了具有相同行地址的所有数据被同时加载到行缓冲器RBUF中的情况,但是本发明构思不限于此。在示例性实施例中,仅具有相同行地址的一些数据被加载到行缓冲器RBUF中。

返回参照图1和图2,控制芯片240的错误控制单元242将从各个RAM芯片220_1、220_2、……、和220_N中读取的多条读取块数据组合而产生2D读取数据(S160)。例如,错误控制单元242可以将第一RAM芯片220_1的多条读取块数据DTA11、DTA12、……、和DTA1x组合而产生2D读取数据。例如,错误控制单元242可以顺序地或同时地产生与RAM芯片220_1、220_2、……、和220_N中的每个相关的2D读取数据。2D读取数据可以指具有形成在行和列中的位的数据。然而,2D读取数据不限于通过将同一RAM芯片的多条读取块数据组合而产生的数据。例如,可以通过利用不同RAM芯片的读取块数据来产生2D读取数据。可选择地是,可以通过利用每个RAM芯片的第一读取块数据产生2D读取数据。然而,为了简洁起见将假设通过利用同一RAM芯片的多条第一读取块数据来产生2D读取数据。

图4是根据发明构思的示例性实施例的第一RAM芯片220_1的2D读取数据的图。参照图4,可以产生第一RAM芯片220_1的2D读取数据2DRD使得第一RAM芯片220_1的多条读取块数据DTA11、DTA12、……、和DTA1x分别形成不同的行。具体地说,读取块数据DTA11可以形成2D读取数据2DRD的第一行R1,读取块数据DTA12可以形成2D读取数据2DRD的第二行R2,读取块数据DTA1x可以形成2D读取数据2DRD的第x行Rx。在这种情况下,多条读取块数据DTA11、DTA12、……和DTA1x的位于相同位置中的位形成2D读取数据2DRD的列。例如,多条读取块数据DTA11、DTA12、……、和DTA1x的第一位b1可以形成2D读取数据2DRD的第一列C1,多条读取块数据DTA11、DTA12、……、和DTA1x的第二位b2可以形成2D读取数据2DRD的第二列C2,多条读取块数据DTA11、DTA12、……、和DTA1x的最后的位by可以形成第y列Cy。

在示例性实施例中,响应于具有行地址的读取命令而从存储器芯片的给定行地址读取的一行数据被转换成被称作2D读取数据2DRD的一列多位数据。例如,如果在给定的行地址处的一行数据包括布置在第一行第一列的DTA11、布置在第1行第2列的DTA12、布置在第1行第3列的DTA1X-1与布置在第1行第4列的DTA1X,那么2D读取数据2DRD包括布置在第1行第1列的DTA11、布置在第2行第1列的DTA12、布置在第3行第1列的DTA1X-1以及布置在第4行第1列的DTA1X,其中,最后一行(即,行4)是针对2D读取数据2DRD的剩余数据的奇偶校验数据(paritydata)。在示例性实施例中,2D读取数据2DRD包括来自于存储器芯片中的另外一个存储器芯片的附加行。

在示例性实施例中,读取块数据DTA1x是不同于多条读取块数据DTA11、DTA12、……、和DTA1x-1的奇偶校验数据。为了简洁起见,2D读取数据2DRD可以指通过组合全部的多条读取块数据DTA11、DTA12、……、和DTA1x而产生的数据,或者指包括多条读取块数据DTA11、DTA12、……、和DTA1x的数据,只是将读取块数据DTA1x用作奇偶校验数据。2D读取数据2DRD的奇偶校验数据可以指2D奇偶校验数据2DPA。

参照图1和图2,可以通过利用产生的2D读取数据2DRD来处理对读取命令的响应(S180)。存储控制器可以将读取命令施加到存储装置200,并且从存储装置200接收2D读取数据2DRD。

图5是根据发明构思的示例性实施例的存储系统500的图。参照图5,根据示例性实施例的存储系统500包括存储装置200和存储控制器520。如上所述,根据示例性实施例的存储装置200可以由包括控制芯片240和多个RAM芯片220的存储模块来实现。存储控制器520可以将命令、数据、地址和控制信号发送到存储装置200。可以通过被配置成电连接存储控制器520和存储装置200的总线540来发送命令、数据和地址。此外,存储装置200可以将对读取命令的响应通过总线540发送到存储控制器520。总线540可以包括有线通信信道和无线通信信道。可以通过被配置成电连接存储控制器520和存储装置200的连接线560来发送控制信号。图5示出了作为控制信号的错误信号XER。错误信号XER可以指包括与检测错误和纠正错误有关的信息的信号。

不被执行错误检测和纠正(ECC)操作的2D读取数据2DRD可以通过总线540发送到存储控制器520。此外,存储控制器520可以对2D读取数据2DRD执行ECC操作。在这种情况下,存储装置200可以将2D读取数据2DRD发送到存储控制器520。2D奇偶校验数据2DPA可以被包括在2D读取数据2DRD中,存储控制器520可以包括被配置成对2D读取数据2DRD执行ECC操作的2DECC引擎ECCE2。存储控制器520可以从无误或已纠错的2D读取数据2DRD提取各个RAM芯片220_1、220_2、……、和220_N的第一读取块数据(参照图3中的DTA11、DTA21、……、和DTAN1),并且处理已提取的第一读取块数据作为对读取命令的响应。此外,存储控制器520还可以包括被配置成对将要在下面描述的1D读取数据执行ECC操作的1DECC引擎ECCE1。下面将详细描述存储控制器520的ECC操作。

图5示出了将没有执行ECC操作的2D读取数据2DRD发送到存储控制器520的示例,但是发明构思不限于此。例如,可以从存储装置200输出被执行ECC操作的2D读取数据2DRD。

图6是根据发明构思的示例性实施例的存储装置的控制芯片的图。参照图6,控制芯片240包括错误控制单元242(例如,错误控制电路)和2DECC引擎ECCE2。如上所述,错误控制单元242可以产生2D读取数据2DRD。2D读取数据2DRD可以施加到2DECC引擎ECCE2。2DECC引擎ECCE2可以以2D读取数据的列为单位检测错误。例如,2DECC引擎ECCE2可以检测在图4的2D读取数据2DRD的第一列C1中的错误,检测在该2D读取数据2DRD的第二列C2中的错误,并且以相同的方式检测在第y列Cy中的错误。此外,2DECC引擎ECCE2可以以2D读取数据2DRD的行为单位检测错误。以上述方式,2DECC引擎ECCE2被配置成对RAM芯片220_1、220_2、……、和220_N中的每个的2D读取数据2DRD中的双错误进行检测。

2DECC引擎ECCE2可以将通过对RAM芯片220_1、220_2、……、和220_N中的每个的2D读取数据2DRD执行2DECC操作而获得的结果作为错误信号XER来发送到错误控制单元242。错误控制单元242可以接收错误信号XER,当每条2D读取数据2DRD没有错误时或者当纠正了每条2D读取数据2DRD中的错误时从2D读取数据2DRD中提取第一读取块数据DTA11、DTA21、……、和DTAN1,并且作为对读取数据的响应来输出被提取的第一读取块数据。相反,当多条2D读取数据2DRD中的错误没有被纠正时,错误控制单元242可以通知存储控制器520读取操作失败。如后面详细描述的,即使多条2D读取数据2DRD中的所有的错误没有得到纠正或如果仅有一个错误,错误控制单元242可以从2D读取数据2DRD中提取第一读取块数据DTA11、DTA21、……、和DTAN1并且作为对读取命令的响应输出已提取的第一读取块数据。

如上所述,在根据示例性实施例的存储装置200和操作存储装置200的方法100中,当由于存储装置的集成度的增大与存储装置的尺寸减小导致可能经常发生多比特错误时,与应用博斯-查德胡里-霍昆格母(BCH)方法的情况不同,不会大幅度地增加用于产生奇偶校验数据的开销。在根据示例性实施例的存储装置200和操作存储装置的方法100中,当未发生多比特错误时,可以通过单校双检(SEC-DED)处理法处理错误,使得如下面所述,可以减小存储装置200的操作延迟。

图7是根据发明构思的示例性实施例的操作存储装置的方法700的流程图。参照图2和图7,当响应于读取命令分别从多个RAM芯片220_1、220_2、……、和220_N中读取包括第一读取块数据的多条读取块数据(参照图1中的S140)时,操作存储装置的方法700还包括通过组合多个芯片220_1、220_2、……、和220_N的多条读取块数据来产生1D读取数据(S720),并且在产生2D读取数据2DRD(S160)之前,确认通过对1D读取数据执行SEC-DED操作而获得的结果(S740)。当如在图1的操作存储装置的方法100中,1D读取数据中包括双错误(参照S760中的YES)时,产生2D读取数据2DRD(S160),通过利用2D读取数据2DRD来处理对读取命令的响应(S180)。然而,当1D读取数据中不包括双错误时(参照S760中的NO),对读取命令的响应被处理为1D读取数据或被纠错了的1D读取数据(S780)。

图8是根据发明构思的示例性实施例的1D读取数据的图。参照图8,通过组合各个RAM芯片220_1、220_2、……、和220_N的第一读取块数据DTA11、DTA21、……、和DTAN1来产生1D读取数据1DRD。即,可以通过组合第一RAM芯片220_1的第一读取块数据DTA11、DTA21、……、和DTAN1以及第二RAM芯片220_2的第一读取块数据DTA11、DTA21、……、和DTAN1来产生第一读取块数据DTA11、DTA21、……DTAN1。在示例性实施例中,1D读取数据1DRD是从若干个RAM芯片的行的各个部分产生的单行数据。如上所述,RAM芯片220_1、220_2、……、和220_N可以响应于一个读取命令同时输出第一读取块数据DTA11、DTA21、……、和DTAN1。因此,即使错误控制单元242不执行附加的控制操作,1D读取数据也响应于读取命令而产生。

可以由图6的SEC-DEDECC引擎ECCE1来执行对通过对1D读取数据1DRD执行SEC-DED操作而获得的结果进行确定的操作S740。SEC-DEDECC引擎ECCE1将作为错误信号XER的通过对1D读取数据1DRD执行SEC-DED操作而获得的结果发送到错误控制单元242。当错误信号XER指示1D读取数据1DRD中不包括错误或者错误被纠正时,错误控制单元242输出1D读取数据1DRD作为对读取命令的响应(S780)。当错误信号XER指示1D读取数据1DRD中包括双错误(或者两个错误比特)时,错误控制单元242产生2D读取数据2DRD。

然而,发明构思不限于此。例如,如图5和图6中所示,存储装置200的错误控制单元242可以接收错误信号XER,该错误信号是在存储控制器520的SEC-DEDECC引擎ECCE1对1D读取数据1DRD执行SEC-DED操作时获得的结果。SEC-DEDECC引擎ECCE1能够纠正1D读取数据1DRD中包括的一个错误并且能够检测1D读取数据1DRD中包括的两比特错误。因此,在根据示例性实施例的存储装置200和操作存储装置的方法700中,在不降低存储装置200的操作特性的情况下,顺序地应用具有不同的纠错能力的ECC引擎以提高可靠性。虽然图8示出了1D读取数据1DRD包括与1D读取数据1DRD有关的奇偶校验数据1DPA的情况,但是由于除了1D读取数据1DRD以外,也可以处理与1D读取数据1DRD有关的奇偶校验数据1DPA,所以发明构思不限于此。

图9是根据发明构思的示例性实施例的操作存储装置200的方法900的流程图。参照图2和图9,操作存储装置200的方法900包括:输入写入命令和对应于写入命令的第一写入块数据(S920);响应于写入命令将写入到多个RAM芯片220_1、220_2、……、和220_N中的每个的第二写入块数据更新成第一写入块数据(S940);将包括第二写入块数据的2D写入数据的奇偶校验数据更新成包括第一写入块数据的2D写入数据的奇偶校验数据(S960)。

第二写入块数据可以指存储在RAM芯片220_1、220_2、……、和220_N中的每个的写入地址处的数据,响应于写入命令第一写入块数据将要被写入RAM芯片220_1、220_2、……、和220_N。例如,当写入地址指示图3的各个RAM芯片220_1、220_2、……、和220_N中的行地址RAdr[a]的第一块时,第二写入块数据可以是DTA11、DTA21、……、和DTAN1。响应于写入命令,各个RAM芯片220_1、220_2、……、和220_N的第二写入块数据DTA11、DTA21、……、和DTAN1可以分别更新成第一写入块数据DTA11'、DTA21'、……、和DTAN1'。因此,与读取操作相似,可以同时对各个RAM芯片220_1、220_2、……、和220_N执行写入操作。响应于一个写入命令而同时写入的第一写入块数据DTA11'、DTA21'、……、和DTAN1'可以被称作1D写入数据。

如上所述,通过利用2D读取数据2DRD来处理对读取命令的响应,在数据的写入期间,可以产生并存储2D奇偶校检数据2DPA。因此,操作存储装置200的方法900可以包括产生与具有第一写入块数据的2D写入数据有关的奇偶校检数据(S960)。

图10是根据发明构思的示例性实施例的更新2D写入数据的奇偶校检数据的方法的流程图。参照图10,将与包括第二写入块数据的2D写入数据有关的奇偶校检数据更新成与包括第一写入块数据的2D写入数据有关的奇偶校检数据的方法S960a包括将第一写入块数据与第二写入块数据进行比较(S1062)并且将第一写入块数据和第二写入块数据之间的差施加到与包括第二写入块数据的2D写入数据有关的奇偶校检数据(S1064)。

图11A至图11D是根据发明构思的示例性实施例的第一RAM芯片利用图10的方法的写入操作的图。

在图11A中,假设在数据DTA11、DTA12和DTA13以及与数据DTA11、DTA12和DTA13有关的2D奇偶校验数据2DPA存储在第一RAM芯片220_1的存储单元阵列MCA的行地址RAdr[a]处时施加写入命令。数据DTA11可以被称作第二写入块数据。为了简洁起见,包括第一写入块数据DTA11'或第二写入块数据DTA11并且在写入命令的行地址处被写入的数据被称作多条写入块数据。多条写入块数据组合成2D数据并且被称作2D写入数据。2D奇偶校验数据指与2D写入数据有关的奇偶校验数据。

当施加写入命令来写入与图11B的1010对应的第一写入块数据DTA11'时(S920),错误控制单元242将第一写入块数据DTA11'与第二写入块数据DTA11进行比较(S1062)。可以通过对第一写入块数据DTA11'与第二写入块数据DTA11执行可以执行的诸如逻辑异或(XOR)操作来执行比较操作。例如,与XOR门可以用于执行XOR操作。因为第二写入块数据DTA11是1011,第一写入块数据DTA11'是1010,所以可以确定的是,一个比特值发生了变化。例如,仍然设定在XOR的结果中的位数指示多少位值发生了变化。

如果确定第一写入块数据DTA11'与第二写入块数据DTA11之间的差值是1,那么错误控制单元242基于该差值更新与包括第二写入块数据DTA11的2D写入数据2DWD有关的2D奇偶校检数据2DPA。如图11C中所示,因为与包括第二写入块数据DTA11的2D写入数据2DWD有关的2D奇偶校检数据2DPA是1111,所以更新的2D奇偶校检数据2DPA'可以具有1110的值。例如,可以从2D奇偶校检数据2DPA中减去差值以产生更新的2D奇偶校检数据2DPA'。如图11D中所示,更新的2D奇偶校检数据2DPA'可以是与包括第一写入块数据DTA11'的2D写入数据2DWD'有关的奇偶校检数据。第一写入块数据DTA11'和2D奇偶校检数据2DPA'可以被写入到存储单元阵列MCA。

图12是根据发明构思的示例性实施例的更新与2D写入数据有关的奇偶校检数据的流程图。参照图12,产生与包括第一写入块数据的2D写入数据有关的奇偶校检数据的操作S960b包括:读取存储在与存储单元的将要存储第一写入块数据的行地址相同的行地址处的多条写入块数据(S1262);通过组合包括已读取的第一写入块数据的多条写入块数据来产生包括第一写入块数据的2D写入数据(S1264);对包括第一写入块数据的2D写入数据执行ECC编码操作(S1266)。

图13是根据发明构思的示例性实施例的第一RAM芯片的利用图10的方法的写入操作的图。参照图13,错误控制单元242对包括第一写入块数据DTA11'的多条写入块数据DTA11'、DTA12'、……、和DTAx-1进行组合并且产生2D写入数据。如上所述,可以通过在不同的行中形成各条块数据来产生2D数据。在实施例中,错误控制单元242中包括的编码器ENC对2D写入数据的各个列进行编码并且产生与包括第一写入块数据DTA11'的2D写入数据有关的2D奇偶校检数据2DPA'。

上述方法中产生的与2D数据有关的奇偶校验数据可以被写入到RAM芯片220_1、220_2、……、和220_N的每个RAM芯片中的存储单元阵列MC。根据上面描述的图3的示例,与2D数据有关的奇偶校验数据2DPA或2DPA'可以存储在与2D数据的行地址相同的行地址处。然而,发明构思不限于此。参照图14,图14示出了根据示例性实施例的存储装置200,存储装置200还包括被配置成存储奇偶校验数据的芯片260。例如,芯片260可以专用于仅存储奇偶校验数据。被配置成存储奇偶校验数据的芯片260可以包括存储与1D数据(1D读取数据和1D写入数据)有关的奇偶校检数据的区域。此外,芯片260可以包括存储与2D数据(2D读取数据和2D写入数据)有关的奇偶校检数据的区域。

图15是根据发明构思的示例性实施例的操作存储系统的方法1500的流程图。参照图15,根据示例性实施例的操作存储系统的方法1500包括:通过存储控制器将读取命令发送到存储装置(S1510);响应于读取命令,由存储装置产生包括多条数据的第一组合数据,其中,分别且同时从第一存储区域和第二存储区域读取所述多条数据并且所述多条数据与读取命令对应(S1520);确定大于N个错误的M个错误是否被包括在第一组合数据中(S1530);从第一存储区域读取包括与读取命令对应的数据的多条数据并且当第一组合数据中包括M个错误时重建第二组合数据(S1540);通过利用与第一存储区域有关的第二组合数据来处理第一组合数据中的错误(S1550)。可以由图16的存储系统来执行操作存储系统的方法1500。在实施例中,N是正整数,M是大于N的正整数。

图16是根据发明构思的示例性实施例的存储系统1600的图。参照图16,根据示例性实施例的存储系统1600包括存储装置1610、存储控制器1620和被配置成电连接存储装置1610和存储控制器1620的总线1640。存储控制器1620可以将命令、数据、地址和用于控制存储装置1610的操作的控制信号施加到存储装置1610。存储装置1610可以在存储控制器1620的控制下执行操作。响应于任意的操作,存储装置1610可以将操作结果发送到存储控制器1620。例如,存储控制器1620可以通过总线1640将读取命令发送到存储装置1610,存储装置1610可以响应于读取命令通过总线1640将读取数据发送到存储控制器1620。

存储装置1610包括第一存储区域1612_1、第二存储区域1612_2和错误控制单元1614。第一存储区域1612_1包括被配置成存储用户数据DTA1的区域,第二存储区域1612_2包括被配置成存储用户数据DTA2的区域。用户数据DTA1和DTA2可以响应于存储控制器1620的写入命令分别存储在第一存储区域1612_1和第二存储区域1612_2中。当读取命令发送到存储装置1610时(参照图15中的S1510),第一存储区域1612_1和第二存储区域1612_2响应于读取命令分别输出用户数据DTA1和DTA2。在这种情况下,可以响应于一个写入命令同时向第一存储区域1612_1和第二存储区域1612_2执行用户数据DTA1和DTA2的写入。

相似地,可以响应于一个读取命令从第一存储区域1612_1和第二存储区域1612_2同时执行用户数据DTA1和DTA2的读取。可以根据如何确定被配置成响应于一个读取命令而同时输出用户数据的区域来不同地实现第一存储区域1612_1和第二存储区域1612_2。当由如图3中示出的存储模块来实现存储装置1610时,第一存储区域1612_1和第二存储区域1612_2可以分别是第一RAM芯片220_1和第二RAM芯片220_2。然而,存储装置1610还可以包括除了第一存储区域1612_1和第二存储区域1612_2之外的存储区域。除了第一存储区域1612_1和第二存储区域1612_2之外的存储区域可以是除了图3的第一RAM芯片220_1和第二RAM芯片220_2之外的RAM芯片。

可选择地是,当存储装置1610由如图17中示出的存储器芯片来实现时,第一存储区域1612_1和第二存储区域1612_2中的每个可以由存储器芯片中包括的存储体(bank)来实现。如图17中示出的,当存储装置1610包括四个存储体时,第一存储区域1612_1可以由第一存储体来实现,第二存储区域1612_2可以由第二存储体来实现。可选择地是,第一存储区域1612_1可以由第一存储体和第三存储体来实现,第二存储区域1612_2可以由第二存储体和第四存储体来实现。在图17的存储装置1610中,错误控制单元1614可以被包括在外围区域中。

可选择地是,当如图18中示出的,存储装置1610由包括多个存储层的堆叠型存储模块来实现时,第一存储区域1612_1和第二存储区域1612_2中的每个由堆叠型存储模块中包括的存储层来实现。在图18中示出的存储装置1610中,第一存储区域1612_1由第一存储层来实现,第二存储区域1612_2由第二存储层来实现。可选择地是,存储装置1610还可以包括除了第一存储区域1612_1和第二存储区域1612_2之外的存储区域。除了第一存储区域1612_1和第二存储区域1612_2之外的存储区域可以由其他存储层实现。

可以通过硅通孔(TSV)来执行命令或数据向每个存储层的传输。图18的存储装置1610还可以包括被配置成对每个存储层的操作进行控制的控制层CLAY。错误控制单元1614可以包括在控制层CLAY中。然而,发明构思不限于此。在实施例中,存储装置1610不包括额外的控制层CLAY,而每个存储层包括被配置成起控制层功能的控制逻辑件。在这种情况下,错误控制单元1614也可以被包括在任意存储层中。

返回参照图16,上面在一个示例中描述的响应于一个读取命令而从第一存储区域1612_1和第二存储区域1612_2同时输出的用户数据DTA1和DTA2将被称作第一组合数据CDTA1。第一组合数据CDTA1可以对应于图8的1D读取数据1DRD。存储装置1610可以在数据队列单元(未示出)或缓冲器(未示出)中组合用户数据DTA1和DTA2并且产生第一组合数据CDTA1(参照图15中的S1520),其中,分别从第一存储区域1612_1和第二存储区域1612_2同时读取用户数据DTA1和DTA2。图16示出错误控制单元1614分别从第一存储区域1612_1和第二存储区域1612_2接收用户数据DTA1和DTA2并且输出第一组合数据CDTA1的示例,但是发明构思不限于此。如上所述,可以由于RAM的标准规范而产生第一组合数据CDTA1。

错误控制单元1614可以确定第一组合数据CDTA1中是否包括M个错误(M是大于N的正整数)(参照图15中的S1530)。在这种情况下,N指的是可以由被配置成对第一组合数据CDTA1执行ECC操作的ECC引擎来纠正的比特的数量,M指的是可以由被配置成对第一组合数据CDTA1执行ECC操作的ECC引擎来检测的比特的数量。因为上面参照图5描述的SEC-DEDECC引擎ECCE1可以纠正1个比特错误并且检测2个比特错误,所以N可以是1,M可以是2。然而,发明构思不限于此,N可以具有除了1之外的值,M可以具有除了2之外的值。可以基于通过对第一组合数据CDTA1执行ECC操作而获得的结果来确定第一组合数据CDTA1中是否包括大于N个错误的M个错误。

当第一组合数据CDTA1中包括大于N个错误的M个错误时,错误控制单元1614将控制信号XCON施加到第一存储区域1612_1和第二存储区域1612_2并且控制将要产生的第二组合数据CDTA2(参照图15中的S1540)。因为第二组合数据CDTA2的产生或第二组合数据CDTA2的重建可以与参照图3和图4描述的2D读取数据2DRD相似,所以这里省略对第二组合数据CDTA2的详细的描述。

存储系统1600可以对第二组合数据CDTA2执行ECC操作并且处理第一组合数据CDTA1中的错误(参照图15中的S1550)。可以通过存储控制器1620或存储装置1610来对第一组合数据CDTA1和第二组合数据CDTA2执行ECC操作。首先描述通过存储控制器1620来对第一组合数据CDTA1和第二组合数据CDTA2执行ECC操作的情况。

图19是根据发明构思的示例性实施例的存储系统1900的图,图20是根据发明构思的示例性实施例的操作图19的存储系统1900的方法的图。参照图19和图20,存储系统1900的存储控制器1620包括第一ECC引擎ECCE1和第二ECC引擎ECCE2。当存储控制器1620将读取命令发送到存储装置1610(S2005)时,存储装置1610产生第一组合数据CDTA1(S2010)并且将第一组合数据CDTA1发送到存储控制器1620(S2015)。被配置成纠正N个比特错误并检测M个比特错误的第一ECC引擎ECCE1对第一组合数据CDTA1执行ECC操作(S2020)。当第一组合数据CDTA1中包括N个错误或更少的错误时,第一ECC引擎ECCE1纠正第一组合数据CDTA1中的错误并且将读取操作处理为成功(S2025)。错误被纠正的第一组合数据CDTA1被发送到存储装置1610(S2030)并且被写入到存储装置1610(S2035)。相反,当第一组合数据CDTA1中包括M个错误(M是大于N的正整数)时,第一ECC引擎ECCE1向存储装置1610发送指示第一组合数据CDTA1中包括M个错误的错误信号XER(S2040)。

存储装置1610的错误信号接收单元1614_1可以接收错误信号XER并通知数据重建单元1614_2第一组合数据CDTA1中包括大于N个错误的M个错误。因此,数据重建单元1614_2产生与第一存储区域1612_1有关的第二组合数据CDTA2(S2045),并且将第二组合数据CDTA2发送到存储控制器1620(S2050)。被配置成对存储控制器1620执行2DECC操作的第二ECC引擎ECCE2对第一存储区域1612_1的第二组合数据CDTA2执行ECC操作(S2055)。因为对第一存储区域1612_1的第二组合数据CDTA2的2DECC操作可以与对2D读取数据2DRD的上述ECC操作相似,所以省略对第二组合数据CDTA2的2DECC操作的详细的描述。

当纠正了第一存储区域1612_1的第二组合数据CDTA2中的错误时,将读取操作处理为成功(S2060)。此外,从其中错误被纠正的第二组合数据CDTA2提取的第一组合数据CDTA1或者其中错误被纠正的第二组合数据CDTA2被发送到存储装置1610(S2065),其中错误被纠正的第一组合数据CDTA1写入到存储装置1610(S2070)。然而,在这种情况下,写入操作不是响应于写入命令而执行,而被处理为响应于读取命令的操作。

如图21中所示,当在第一存储区域1612_1的第二组合数据CDTA2中纠正了比需要纠正的错误少的错误时,产生与附加存储区域(即,第二存储区域1612_2)相关的第二组合数据CDTA2,对产生的第二组合数据CDTA2执行上述操作(S2075)。在这种情况下,如下所述,可以根据处理第一组合数据CDTA1中的错误的方法来不同地确定第二组合数据CDTA2中需要纠正的错误的数量。

图22和图23是根据发明构思的示例性实施例的处理第一组合数据中的错误的方法的流程图。以下,假设在第一组合数据中检测到M个错误。首先,参照图19和图22,处理第一组合数据CDTA1中的错误的方法S1550a包括对与第一存储区域1612_1有关的第二组合数据CDTA2执行ECC操作(S2252)并且确定与第一存储区域1612_1有关的第二组合数据CDTA2中的M个错误是否被纠正(S2254)。如果与第一存储区域1612_1有关的第二组合数据CDTA2中的M个错误被纠正(参照S2254中的YES),那么读取操作被处理为成功(S2256)。由于上述操作,从其中M个错误被纠正的第二组合数据CDTA2提取的第一组合数据CDTA1可以不包括任何错误。

相反,当在第一存储区域1612_1中没有纠正第二组合数据CDTA2中的M个错误时(参照S2254中的NO),产生与第二存储区域1612_2有关的第二组合数据CDTA2,并执行ECC操作(S2258)。当与第一存储区域1612_1有关的第二组合数据CDTA2和与第二存储区域1612_2有关的第二组合数据CDTA2中纠正了总共M个错误时,读取操作可以被处理为成功。当与第一存储区域1612_1有关的第二组合数据CDTA2和与第二存储区域1612_2有关的第二组合数据CDTA2中纠正了小于M个错误的错误时,读取操作可以处理为成功。当存储装置1610还包括被配置成存储用户数据的其他存储区域时,可以通过顺序地处理与剩余存储区域有关的第二组合数据来处理第一组合数据CDTA1中的错误。

接下来,参照图23,处理第一组合数据CDTA1中的错误的方法S1550b还包括对与第一存储区域1612_1相关的第二组合数据CDTA2执行ECC操作(S2352)。基于对第二组合数据CDTA2执行ECC操作的结果,读取操作被处理为成功(S2356)或对与第二存储区域1612_2相关的第二组合数据CDTA2执行附加操作(S2358)。

然而,如图23中所示,处理第一组合数据CDTA1中的错误的方法S1550b可以包括确定第二组合数据CDTA2中是否纠正了(M-N)个错误而不是M个错误(S2354)。即使第二组合数据CDTA2中没有纠正所有的M个错误,第一组合数据CDTA1也可以仅包括可以在第一ECC引擎ECCE1的错误可纠正范围内的N个错误。从第二组合数据CDTA2提取第一组合数据CDTA1并且第一组合数据CDTA1被写入存储装置1610。因此,当随后施加读取第一组合数据CDTA1的新读取命令时,可以通过常规途径纠正第一组合数据CDTA1中的错误,即,不产生第二组合数据CDTA2。

图24是根据发明构思的示例性实施例的存储系统2400的图。参照图24,存储系统2400的存储装置1610包括具有第一ECC引擎ECCE1和第二ECC引擎ECCE2的ECC单元1616。在这种情况下,当存储装置1610响应于从存储控制器1620施加的读取命令来执行读取操作时,存储装置1610对第一组合数据CDTA1或第二组合数据CDTA2执行ECC操作,并且作为对读取命令的响应向存储控制器1620发送错误最终被纠正的第一组合数据CDTA1。存储控制器1620可以将接收到的第一组合数据CDTA1发送到主机并且将读取操作处理为成功。如果通过处理第二组合数据CDTA2没有纠正第一组合数据CDTA1中的错误,那么存储装置1610可以通知存储控制器1620读取命令失败。

虽然没有参照图16、图19和图20对存储系统的写入操作进行描述,但是因为根据示例性实施例的存储装置或存储系统的写入操作与上面参照图10至图13描述的写入操作相似,所以这里省略了对其详细的描述。

图25是包括根据发明构思的示例性实施例的存储装置的计算系统2500的框图。RAM2520可以安装在诸如移动装置或桌面计算机的计算系统2500中。RAM2520可以是根据上述示例性实施例的存储装置中的任意一种。此外,图25的RAM2520可以包括存储装置和存储控制器两者。

根据示例性实施例的计算系统2500包括均可以电连接到总线2550的中央处理单元(CPU)2510、RAM2520、用户接口2530和非易失性存储器2540。非易失性存储器2540可以是诸如诸如固态硬盘(SSD)或硬盘驱动器(HDD)的大容量存储设备。

虽然已经参照发明构思的示例性实施例具体地示出并且描述了发明构思,但将理解的是,在不脱离发明构思的精神和范围的情况下,这里可以做出形式上或细节上的各种改变。例如,图21示出了将第一组合数据CDTA1和第二组合数据CDTA2顺序地发送到存储控制器1620并且被处理的情况,但是发明构思不限于此。可以将第一组合数据CDTA1和第二组合数据CDTA2同时发送到存储控制器1620并且进行处理。

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