操作存储控制器的方法、执行该方法的存储控制器及包括该存储控制器的存储器系统与流程

文档序号:32746513发布日期:2022-12-30 22:25阅读:171来源:国知局
操作存储控制器的方法、执行该方法的存储控制器及包括该存储控制器的存储器系统与流程
操作存储控制器的方法、执行该方法的存储控制器及包括该存储控制器的存储器系统
1.相关申请的交叉引用
2.本技术要求于2021年6月30日在韩国知识产权局(kipo)递交的韩国专利申请no.10-2021-0085267的优先权,上述申请的全部内容通过引用合并于此。
技术领域
3.本公开的方面总体涉及半导体集成电路,更具体地,涉及操作存储控制器的方法、执行该方法的存储控制器及包括该存储控制器的存储器系统。


背景技术:

4.半导体存储器件可以分成诸如闪存之类的非易失性存储器件和诸如动态随机存取存储器(dram)之类的易失性存储器件。易失性存储器件的高速操作和成本效益使其可以用于系统存储器所使用的易失性存储器件。存储器件的小型化和/或更高的集成度是半导体存储器件制造中的期望目标。由于易失性存储器件的制造设计规则的尺寸不断减小,易失性存储器件的存储器单元中的比特错误可能迅速增多并且易失性存储器件的产量可能下降。此外,可以以存储器模块的形式提供多个易失性存储器件,以提供较大的存储容量。因此,正在进行用于改善易失性存储器件和存储器模块的可靠性的各种研究项目。


技术实现要素:

5.本公开的一些方面提供了一种操作存储控制器的方法,其能够根据存储器模块的状态高效地执行最优纠错码(ecc)解码。
6.本公开的一些方面提供了存储控制器及包括所述存储控制器的存储器系统,所述存储控制器执行操作存储器模块的方法。
7.根据一些方面,在操作被配置为控制存储器模块的存储控制器的方法中,可以从包括多个数据芯片和至少一个奇偶校验位芯片的所述存储器模块接收解码状态标志。所述多个数据芯片和所述至少一个奇偶校验位芯片中的每一个可以包括管芯上纠错码(ecc)引擎。所述解码状态标志可以由所述管芯上ecc引擎生成。可以基于所述解码状态标志获得第一数量和第二数量。所述第一数量表示包括不可由相应的管芯上ecc引擎纠正的不可纠正错误的第一芯片的数量。所述第二数量表示包括可由所述相应的管芯上ecc引擎纠正的可纠正错误的第二芯片的数量。基于所述第一数量和所述第二数量中的至少一个选择多个解码方案中的至少一个解码方案。可以由所述存储控制器中包括的系统ecc引擎基于所选择的解码方案对所述第一芯片和所述第二芯片中的至少一个执行ecc解码。
8.根据一些方面,一种被配置为控制存储器模块的存储控制器可以包括解码状态标志解码器和系统纠错码(ecc)引擎。所述解码状态标志解码器可以从所述存储器模块接收解码状态标志,并且基于所述解码状态标志获得第一数量和第二数量。所述存储器模块可以包括多个数据芯片和至少一个奇偶校验位芯片。所述多个数据芯片和所述至少一个奇偶
校验位芯片中的每一个可以包括管芯上ecc引擎。所述解码状态标志可以由所述管芯上ecc引擎生成。所述第一数量表示包括不可由相应的管芯上ecc引擎纠正的不可纠正错误的第一芯片的数量。所述第二数量表示在所述多个数据芯片和所述至少一个奇偶校验位芯片中包括可由所述管芯上ecc引擎纠正的可纠正错误的第二芯片的数量。所述系统ecc引擎可以基于所述第一数量和所述第二数量中的至少一个选择多个解码方案中的至少一个解码方案,并且可以基于所选择的解码方案对所述第一芯片和所述第二芯片中的至少一个执行ecc解码。
9.根据一些方面,存储器系统包括存储器模块和存储控制器。所述存储器模块包括多个数据芯片和至少一个奇偶校验位芯片。所述多个数据芯片和所述至少一个奇偶校验位芯片中的每一个包括管芯上纠错码(ecc)引擎。存储控制器控制存储器模块。所述存储控制器包括解码状态标志解码器和系统ecc引擎。所述解码状态标志解码器从所述存储器模块接收解码状态标志,并且基于所述解码状态标志获得第一数量和第二数量。所述解码状态标志可以由所述管芯上ecc引擎生成。所述第一数量表示包括不可由相应的管芯上ecc引擎纠正的不可纠正错误的第一芯片的数量。所述第二数量表示包括可由所述相应的管芯上ecc引擎纠正的可纠正错误的第二芯片的数量。所述系统ecc引擎基于所述第一数量和所述第二数量中的至少一个选择多个解码方案中的至少一个解码方案,并且基于所选择的解码方案对所述第一芯片和所述第二芯片中的至少一个执行ecc解码。所述系统ecc引擎响应于所述第一数量小于或等于第一参考值而基于所述第二数量选择所述多个解码方案中的至少一个解码方案,并且响应于所述第一数量大于所述第一参考值而基于所述第一数量选择所述多个解码方案中的至少一个解码方案。每个管芯上ecc引擎包括校正子生成电路(syndrome generation circuit)、错误定位器、数据纠正器和解码状态标志生成器。所述校正子生成电路基于读取的数据和奇偶校验位数据生成校正子。所述错误定位器通过对所述校正子进行解码而生成错误位置信号。所述错误位置信号表示所读取的数据中的错误比特的位置。所述数据纠正器通过基于所述错误位置信号对所读取的数据中包括的所述错误比特进行纠正,输出经纠正的数据。所述解码状态标志生成器基于所述校正子和所述错误位置信号生成所述解码状态标志。所述解码状态标志表示所读取的数据中的错误比特的状态。
10.在根据示例实施例的操作存储控制器的方法、所述存储控制器和所述存储器系统中,所述存储控制器可以接收由包括在存储器芯片中的管芯上ecc引擎生成的解码状态标志,其中所述存储器芯片包括在存储器模块中,并且所述存储控制器中包括的系统ecc引擎可以通过基于所述解码状态标志信号选择适于所述存储器模块中当前出现错误的情况的解码方案来执行所述ecc解码。因此,可以改进或提高ecc解码的性能和/或效率。
附图说明
11.根据结合附图的以下详细描述,将更清楚地理解实施例的一些说明性的非限制性示例。
12.图1是示出根据一些示例实施例的操作存储控制器的方法的流程图。
13.图2是示出根据一些示例实施例的存储控制器和包括该存储控制器的存储器系统的框图。
14.图3是示出根据一些示例实施例的存储控制器的示例的框图。
15.图4a和图4b是示出根据一些示例实施例的存储器系统中的与多个突发长度相对应的数据集的示例的图。
16.图5是示出根据一些示例实施例的存储控制器中包括的系统ecc引擎的示例的框图。
17.图6a、图6b、图6c和图6d是示出图5的系统ecc引擎中使用的奇偶校验位生成矩阵的示例的图。
18.图7是示出图5的系统ecc引擎中包括的ecc编码器的示例的框图。
19.图8a和图8b是示出图5的系统ecc引擎中使用的奇偶校验位检验矩阵的示例的图。
20.图9是示出图5的系统ecc引擎中包括的ecc解码器的示例的框图。
21.图10是示出根据一些示例实施例的存储器模块中包括的数据芯片的示例的框图,其中存储器模块包括在存储器系统中。
22.图11是示出图10的数据芯片中包括的存储体阵列的示例的图。
23.图12是示出根据一些示例实施例的存储器模块中包括的管芯上ecc引擎的示例的框图,其中存储器模块包括在存储器系统中。
24.图13是示出图12的管芯上ecc引擎中包括的ecc编码器的示例的框图。
25.图14是示出图12的管芯上ecc引擎中包括的ecc解码器的示例的框图。
26.图15是示出图1中的选择多个解码方案中的至少一个解码方案的示例的流程图。
27.图16和图17是示出选择多个解码方案中的至少一个解码方案的示例和在图1中执行ecc解码的示例的流程图。
28.图18、图19a、图19b、图19c、图19d、图19e、图19f和图19g是用于描述图16和图17的操作的图。
29.图20和图21是示出选择多个解码方案中的至少一个解码方案的另一示例和在图1中执行ecc解码的示例的流程图。
30.图22、图23a、图23b、图23c、图23d和图23e是用于描述图20和图21的操作的图。
31.图24是示出根据一些示例实施例的可以用于存储器系统的存储器模块的示例的框图。
32.图25是示出根据一些示例实施例的存储器系统的示例的框图。
33.图26是示出包括根据一些示例实施例的存储器模块的电子系统的框图。
具体实施方式
34.将参考其中示出了一些示例实施例的附图更全面地描述各个示例实施例。然而,本公开可以以许多不同的形式来体现,并且不应被解释为受限于本文所阐述的那些实施例。在本技术中,类似的附图标记表示类似的元件。
35.本公开的一些方面提供了根据一些示例实施例的操作存储控制器的方法,如示出这样的方法的流程图的图1所示。存储控制器可以包括在存储器系统中,该存储器系统还包括由存储控制器控制的存储器模块。在一些实施例中,存储器模块包括多个数据芯片和至少一个奇偶校验位芯片,并且多个数据芯片和至少一个奇偶校验位芯片中的每一个包括管芯上ecc引擎。存储控制器包括系统ecc引擎。将参考图2至图14描述存储器系统、存储控制
器和存储器模块的具体配置。
36.参考图1,在根据一些示例实施例的操作存储控制器的方法中,可以应用、使用、操作或驱动存储控制器以执行纠错码(ecc)解码。在本文中可以将示例实施例称为或描述为操作存储器系统的方法和/或针对存储器系统中包括的存储器模块执行ecc解码的方法。
37.存储控制器可以从存储器模块接收解码状态标志(步骤s100)。解码状态标志可以由管芯上ecc引擎生成。解码状态标志可以表示或指示每个存储器芯片是否包括不可由管芯上ecc引擎纠正的不可纠正错误(ue),和/或每个存储器芯片是否包括可由管芯上ecc引擎纠正的可纠正错误(ce)。换言之,解码中的错误可以被分成不可以由管芯上ecc引擎纠正的不可纠正错误或可以由管芯上ecc引擎纠正的可纠正错误。
38.存储控制器可以基于解码状态标志获得第一数量和第二数量(步骤s200)。第一数量可以表示多个数据芯片和至少一个奇偶校验位芯片中的具有不可纠正错误的第一芯片的数量(或量)。第二数量可以表示多个数据芯片和至少一个奇偶校验位芯片中的具有可纠正错误的第二芯片的数量(或量)。换言之,解码状态标志可以包括与不可由管芯上ecc引擎纠正的不可纠正错误和可由管芯上ecc引擎纠正的可纠正错误相关联或有关的信息。
39.存储控制器可以基于第一数量和第二数量中的至少一个选择多个解码方案中的至少一个解码方案(步骤s300)。存储控制器中包括的系统ecc引擎可以基于所选择的解码方案对第一芯片和第二芯片中的至少一个执行ecc解码(步骤s400)。换言之,可以通过选择适合于或适于存储器模块中当前的情况(或状态)和/或出现的错误的解码方案来执行ecc解码。将参考图15至图23更详细地描述步骤s300和步骤s400。
40.图2是示出根据一些示例实施例的存储控制器和包括该存储控制器的存储器系统的框图。
41.参考图2,存储器系统10可以包括存储器控制器100和存储器模块mm。存储器模块mm可以包括多个存储器芯片200a至200k(例如,200a、200b、200c、

、200k)和200p。多个存储器芯片200a至200k和200p可以包括多个数据芯片200a至200k和至少一个奇偶校验位芯片200p。多个存储器芯片200a至200k和200p中的每一个可以被称为半导体存储器件或存储器件。
42.存储控制器100可以控制存储器系统10的整体操作。存储控制器100可以控制外部主机设备与多个存储器芯片(或存储器件)200a至200k和200p之间的全部数据交换。例如,存储控制器100可以响应于来自主机的请求,在多个存储器芯片200a至200k和200p中写入数据和/或从多个存储器芯片200a至200k和200p读取数据。备选地或附加地,存储控制器100可以向多个存储器芯片200a至200k和200p发出操作命令,以控制多个存储器芯片200a至200k和200p。
43.在一些示例实施例中,多个存储器芯片200a至200k和200p中的每一个可以包括含有易失性存储器单元的易失性存储器,例如动态随机存取存储器(dram)。
44.在一些示例实施例中,多个数据芯片200a至200k的数量可以是8或16。然而,数据芯片200a至200k的数量不限于此,并且可以多于8或16,或少于8或16,并且可以是2的幂或者可以不是2的幂。在一些示例实施例中,数据芯片200a至200k中的每一个可以被称为数据存储器,并且奇偶校验位芯片200p中的每一个可以被称为ecc存储器或冗余存储器。
45.存储控制器100可以向存储器模块mm发送命令cmd和地址addr,可以与存储器模块
mm交换码字集合scw,并且可以从存储器模块mm接收解码状态标志dsf。
46.存储控制器100可以包括系统(sys)ecc引擎(或第一ecc引擎)130和解码状态标志(dsf)解码器185。多个存储器芯片200a至200k和200p中的每一个可以包括生成解码状态标志dsf的多个管芯上(od)ecc引擎(或第二ecc引擎)400a至400k(例如,400a、400b、400c、

、400k)和400p中的相应的管芯上ecc引擎。
47.在存储器系统10的写操作中,系统ecc引擎130可以通过使用奇偶校验位生成矩阵针对用户数据集和元数据执行ecc编码而生成奇偶校验位数据集,并且可以向存储器模块mm提供包括用户数据集、元数据和奇偶校验位数据集的码字集合scw。用户数据集(或主数据)可以存储在数据芯片200a至200k中,并且元数据和奇偶校验位数据集可以存储在奇偶校验位芯片200p中。
48.在存储器系统10的读操作中,解码状态标志解码器185可以从存储器模块mm接收解码状态标志dsf,并且可以基于解码状态标志dsf检验码字集合scw中(例如,用户数据集中)是否包括不可由管芯上ecc引擎400a至400k和400p纠正的不可纠正错误和/或可由管芯上ecc引擎400a至400k和400p纠正的可纠正错误。此外,当码字集合scw中包括不可由管芯上ecc引擎400a至400k和400p纠正的不可纠正错误和/或可由管芯上ecc引擎400a至400k和400p纠正的可纠正错误时,解码状态标志解码器185可以基于解码状态标志dsf检验包括不可纠正错误和/或可纠正错误的芯片的类型和数量。系统ecc引擎130可以基于包括不可纠正错误和/或可纠正错误的芯片的类型和数量选择多个解码方案dec1、

、decx中的至少一个解码方案,并且可以通过使用所选择的解码方案对码字集合scw执行ecc解码而纠错码字集合scw中的错误(或错误比特)。换言之,解码状态标志解码器185可以执行图1中的步骤s100和s200,并且系统ecc引擎130可以执行图1中的步骤s300和s400。
49.虽然图2示出从存储器模块mm接收一个解码状态标志dsf,但是示例实施例不限于此。例如,每个存储器芯片(或每个存储器芯片中包括的每个管芯上ecc引擎)可以生成一个解码状态标志,并且可以从存储器模块mm接收多个解码状态标志。在这个示例中,每个解码状态标志可以包括对应的存储器芯片的错误信息。例如,第一解码状态标志dsf可以包括第一存储器芯片200a的错误信息,第二解码状态标志dsf可以包括第二存储器芯片200b的错误信息等。
50.图3是示出根据示例实施例的存储控制器的示例的框图。
51.参考图3,存储控制器100可以包括处理器110、主机接口120、数据寄存器125、系统ecc引擎130、解码状态标志解码器185、命令缓冲器190和地址缓冲器195。系统ecc引擎130可以包括ecc编码器140、ecc解码器150和存储器180。
52.主机接口120可以从外部主机设备接收请求req和用户数据集sdq,可以生成与用户数据集sdq相关联的元数据mdt,可以向数据寄存器125提供用户数据集sdq,并且可以向ecc编码器140提供元数据mdt。数据寄存器125可以向ecc编码器140连续地(和/或顺序地和/或持续地)输出用户数据集sdq。
53.ecc编码器140可以通过使用奇偶校验位生成矩阵对用户数据集sdq和元数据mdt执行ecc编码而生成第一码字集合scw1。第一码字集合scw1可以与提供给存储器模块mm并存储在存储器模块mm中的写入数据相对应。
54.ecc解码器150可以通过使用奇偶校验位检验矩阵针对第二码字集合scw2执行ecc
解码而生成用户数据集sdq和/或经纠正的用户数据集c_sdq,并且可以向处理器110提供用户数据集sdq和/或经纠正的用户数据集c_sdq。第二码字集合scw2可以与从存储器模块mm取得的读取数据相对应。
55.存储器180可以存储奇偶校验位生成矩阵和奇偶校验位检验矩阵。
56.处理器110可以接收用户数据集sdq和/或经纠正的用户数据集c_sdq,并且可以控制系统ecc引擎130、命令缓冲器190和/或地址缓冲器195。例如,处理器110可以包括中央处理单元(cpu)。
57.在处理器110的控制下,命令缓冲器190可以存储与请求req相对应的命令cmd,并且可以向存储器模块mm发送命令cmd。在处理器110的控制下,地址缓冲器195可以存储地址addr并且可以向存储器模块mm发送地址addr。
58.dsf解码器185可以通过对从存储器模块mm接收的解码状态标志dsf进行解码而生成解码信号ds,并且可以向ecc解码器150和处理器110提供解码信号ds。解码信号ds可以表示第二码字集合scw2中(例如,从存储器模块mm提供的用户数据集sdq中)包括的错误的类型、位置和数量。ecc解码器150和/或处理器110可以基于解码信号ds选择多个解码方案dec1至decx中的至少一个解码方案,并且ecc解码器150可以基于所选择的解码方案执行ecc解码。换言之,图1中的步骤s300可以由ecc解码器150执行,或者可以在处理器110的控制下执行。
59.图4a和图4b是示出根据示例实施例的存储器系统中的与多个突发长度相对应的数据集的示例的图。
60.参考图4a,存储器模块mm可以包括多个存储器芯片201a至201k(例如,201a、201b、201c、

、200k)、201pa和201pb。多个存储器芯片201a至201k、201pa和201pb可以包括多个数据芯片201a至201k、第一奇偶校验位芯片201pa和第二奇偶校验位芯片201pb。例如,多个数据芯片201a至201k可以包括第一数据芯片至第n数据芯片,其中n是大于或等于2的自然数。在图4a的示例中,一个存储器芯片可以连接到四个数据输入/输出(i/o)引脚,并且可以向一个存储器芯片输入和/或从其输出四个数据信号dq1、dq2、dq3和dq4。图4a的示例可以被称为x4结构。
61.如图4a所示,数据芯片201a至201k以及奇偶校验位芯片201pa和201pb中的每一个可以执行突发操作。
62.在本文中,突发操作可以表示通过顺序地增大和/或减小从存储控制器100提供的初始地址来写入和/或读取大量数据的操作。突发操作的基本单位可以被称为突发长度(bl)。
63.与多个突发长度相对应的数据集dq_bl1、

、dq_blk中的每个数据集可以被输入到数据芯片201a至201k中的每个数据芯片和/或从其输出。数据集dq_bl1至dq_blk中的每个数据集可以包括与多个突发长度中的每个突发长度相对应的数据段dq_bl_sg1、dq_bl_sg2、dq_bl_sg3、dq_bl_sg4、dq_bl_sg5、dq_bl_sg6、dq_bl_sg7和dq_bl_sg8。数据集dq_bl1至dq_blk可以与用户数据集sdq相对应。例如,图4a示出了突发长度是8的示例,然而示例实施例和本公开不限于此。
64.虽然对数据芯片201a至201k中的每一个执行突发操作,但是可以向第一奇偶校验位芯片201pa输入和/或从其输出与多个突发长度相对应的元数据mdt和第一奇偶校验位数
据prtl,并且可以向第二奇偶校验位芯片201pb输入和/或从其输出与多个突发长度相对应的第二奇偶校验位数据prtm。第二奇偶校验位数据prtm可以包括第一子奇偶校验位数据prtm1和第二子奇偶校验位数据prtm2。
65.第一奇偶校验位数据prtl可以被称为错误定位奇偶校验位数据,并且可以与用户数据集sdq中的错误比特的位置相关联。第二奇偶校验位数据prtm可以被称为错误大小奇偶校验位数据,并且可以与用户数据集sdq中的错误比特的大小(或数量或计数)相关联。图4a示出了将错误定位奇偶校验位数据和错误大小奇偶校验位数据存储在不同的奇偶校验位芯片中的示例。
66.参考图4b,存储器模块mm可以包括多个存储器芯片202a至202p。将省略与图4a重复的描述。
67.多个存储器芯片202a至202p可以包括多个数据芯片202a和第一奇偶校验位芯片202p。例如,多个数据芯片202a至202p可以包括第一数据芯片至第m数据芯片,其中m是大于或等于2的自然数。在图4b的示例中,一个存储器芯片可以连接到8个数据i/o引脚,并且可以向一个存储器芯片输入和/或从其输出8个数据信号dq1、dq2、dq3、dq4、dq5、dq6、dq7和dq8。图4b的示例可以被称为x8结构。
68.向图4b中的一个存储器芯片输入和/或从其输出的数据集dq_bl1a和dq_bl1b的大小可以是向图4a中的一个存储器芯片输入和/或从其输出的数据集dq_bl1的大小的两倍。当图4a的存储器模块mm和图4b的存储器模块mm包括相同数量的数据i/o引脚时,图4b中的数据芯片202a的数量可以是图4a中的数据芯片201a至201k的数量的一半(例如,m=n/2)。例如,n=16和m=8。此外,图4b示出了将错误定位奇偶校验位数据和错误大小奇偶校验位数据存储在一个奇偶校验位芯片中的示例。
69.图5是示出根据一些示例实施例的存储控制器中包括的系统ecc引擎的示例的框图。
70.参考图5,系统ecc引擎130可以包括ecc编码器140、ecc解码器150和存储器180。存储器180可以被称为ecc存储器。虽然将ecc编码器140和ecc解码器150示出为分离的组件,但是示例实施例和本公开不限于此。
71.ecc编码器140可以使用奇偶校验位生成矩阵pcm针对用户数据集sdq和元数据mbt执行ecc编码,以生成包括第一奇偶校验位数据prtl和第二奇偶校验位数据prtm的奇偶校验位数据集sprt,并且可以输出包括用户数据集sdq、元数据mbt和奇偶校验位数据集sprt的第一码字集合scw1。
72.ecc解码器150可以从存储器模块mm接收包括用户数据集sdq、元数据mbt和奇偶校验位数据集sprt的第二码字集合scw2,并且可以从解码状态标志解码器185接收解码信号ds。ecc解码器150可以基于解码信号ds选择多个解码方案dec1至decx中的至少一个解码方案,可以使用奇偶校验位检验矩阵pcm和所选择的解码方案针对第二码字集合scw2执行ecc解码以生成经纠正的用户数据集c_sdq,并且可以输出用户数据集sdq和/或经纠正的用户数据集c_sdq。
73.图6a、图6b、图6c和图6d是示出图5的系统ecc引擎中使用的奇偶校验位生成矩阵的示例的图。
74.参考图6a,奇偶校验位生成矩阵pgm可以包括第一奇偶校验位子矩阵hs
11
、第二奇
偶校验位子矩阵hs
12
和第三奇偶校验位子矩阵hs
13

75.第一奇偶校验位子矩阵hs
11
可以包括与图4a中的数据芯片201a至201k和图4b中的数据芯片202a相对应的多个偏移子矩阵osm1至osmk(例如,osm1、osm2、

、osmk)、以及与图4a中的奇偶校验位芯片201pa和201pb以及图4b中的奇偶校验位芯片202p相对应的两个零子矩阵zsm。例如,偏移子矩阵osm1至osmk和零子矩阵zsm中的每一个可以包括p*p元素,其中p是大于或等于2的自然数。
76.第二奇偶校验位子矩阵hs
12
可以包括交替布置的多个单位子矩阵ism和多个零子矩阵zsm。例如,单位子矩阵ism和零子矩阵zsm中的每一个可以包括p*p元素。第三奇偶校验位子矩阵hs
13
可以包括交替布置的多个零子矩阵zsm和多个单位子矩阵ism。例如,零子矩阵zsm和单位子矩阵ism中的每一个可以包括p*p元素。第二奇偶校验位子矩阵hs
12
和第三奇偶校验位子矩阵hs
13
可以彼此不同的布置。
77.参考图6b,示出了用于生成图6a中的第一奇偶校验位子矩阵hs
11
中包括的偏移子矩阵osm1至osmk的基础偏移子矩阵osmb的示例。基础偏移子矩阵osmb可以包括(p+3)个高级别元素(在图6b中用“1”表示)。例如,可以通过基础偏移子矩阵osmb的幂而获得偏移子矩阵osm1至osmk中的偏移子矩阵osm1。可以通过将偏移子矩阵osm1和通过基础偏移子矩阵osmb的偏移次幂而获得的子矩阵相乘,获得偏移子矩阵osm1至osmk中的偏移子矩阵osm2。
78.参考图6c,示出了图6a中的第一奇偶校验位子矩阵hs
11
、第二奇偶校验位子矩阵hs
12
和第三奇偶校验位子矩阵hs
13
中包括的零子矩阵zsm的示例。在零子矩阵zsm中,所有元素都可以是零(“0”)。
79.参考图6d,示出了图6a中的第二奇偶校验位子矩阵hs
12
和第三奇偶校验位子矩阵hs
13
中包括的单位子矩阵ism的示例。单位子矩阵ism可以包括在对角方向上(例如,沿着矩阵的主对角线)布置的p个高级别元素。除了高级别元素以外的元素可以是零。
80.在图6a、图6b、图6c和图6d的示例中,p可以是16。例如,p可以对应于在单个突发操作期间向图4a中的数据芯片201a至201k中的每一个输入和/或从其输出的数据集dq_bl1至dq_blk的比特数,和/或可以对应于在单个突发操作期间向图4b中的数据芯片202a中的每一个输入和/或从其输出的数据集dq_bl1a和dq_bl1b的比特数。此外,第一奇偶校验位子矩阵hs
11
中的非零元素的数量可以大于第二奇偶校验位子矩阵hs
12
中的非零元素的数量或第三奇偶校验位子矩阵hs
13
中的非零元素的数量。
81.图7是示出图5的系统ecc引擎中包括的ecc编码器的示例的框图。
82.参考图7,ecc编码器140可以包括错误定位奇偶校验位生成器141、第一错误大小奇偶校验位生成器143、第二错误大小奇偶校验位生成器145和缓冲器147。
83.错误定位奇偶校验位生成器141可以使用第一奇偶校验位子矩阵hs
11
对用户数据集sdq和元数据mdt执行ecc编码以生成第一奇偶校验位数据prtl,其可以用于确定错误的位置。错误定位奇偶校验位生成器141可以向缓冲器147提供第一奇偶校验位数据prtl。第一奇偶校验位数据prtl可以被称为错误定位奇偶校验位数据。
84.错误定位奇偶校验位生成器141可以通过用第一奇偶校验位子矩阵hs
11
对用户数据集sdq以及元数据mdt执行矩阵乘法操作而生成第一奇偶校验位数据prtl。如果用户数据集sdq和元数据mdt的向量表示与ms相对应,并且如果第一奇偶校验位数据prtl的向量表示与p
l
相对应,则p
l
=hs
11
[ms 0]
t
。此处,t表示转置矩阵,并且0表示零矩阵。
[0085]
第一错误大小奇偶校验位生成器143可以使用第二奇偶校验位子矩阵hs
12
对用户数据集sdq和元数据mdt执行ecc编码,以生成第一子奇偶校验位数据prtm1,其可以用于确定比特错误的数量。第一错误大小奇偶校验位生成器143可以向缓冲器147提供第一子奇偶校验位数据prtm1。第一子奇偶校验位数据prtm1可以被称为第一错误大小奇偶校验位数据。
[0086]
第一错误大小奇偶校验位生成器143可以通过用第二奇偶校验位子矩阵hs
12
对用户数据集sdq以及元数据mdt执行矩阵乘法操作而生成第一子奇偶校验位数据prtm1。如果第一子奇偶校验位数据prtm1的向量表示与p
m1
相对应,则p
m1
=hs
12
[ms p
l 0]
t

[0087]
第二错误大小奇偶校验位生成器145可以使用第三奇偶校验位子矩阵hs
13
对用户数据集sdq和元数据mdt执行ecc编码,以生成第二子奇偶校验位数据prtm2,其可以用于确定比特错误的数量。第二错误大小奇偶校验位生成器145可以向缓冲器147提供第二子奇偶校验位数据prtm2。第二子奇偶校验位数据prtm2可以被称为第二错误大小奇偶校验位数据。
[0088]
第二错误大小奇偶校验位生成器145可以通过用第三奇偶校验位子矩阵hs
13
对用户数据集sdq以及元数据mdt执行矩阵乘法操作而生成第二子奇偶校验位数据prtm2。如果第二子奇偶校验位数据prtm2的向量表示与p
m2
相对应,则p
m2
=hs
13
[ms p
l 0]
t
。第一子奇偶校验位数据prtm1和第二子奇偶校验位数据prtm2可以包括在第二奇偶校验位数据prtm中。
[0089]
缓冲器147可以接收用户数据集sdq、元数据mdt、第一奇偶校验位数据prtl以及包括第一子奇偶校验位数据prtm1和第二子奇偶校验位数据prtm2的第二奇偶校验位数据prtm,并且可以向存储器模块mm提供包括用户数据集sdq、元数据mdt、第一奇偶校验位数据prtl、第一子奇偶校验位数据prtm1和第二子奇偶校验位数据prtm2的第一码字集合scw1。
[0090]
图8a和图8b是示出图5的系统ecc引擎中使用的奇偶校验位检验矩阵的示例的图。
[0091]
参考图8a,奇偶校验位检验矩阵pcm可以包括第一奇偶校验位子矩阵hs
21
、第二奇偶校验位子矩阵hs
22
和第三奇偶校验位子矩阵hs
23

[0092]
第一奇偶校验位子矩阵hs
21
可以包括与存储器芯片200a至200k相对应的偏移子矩阵osm1至osmk(例如,osm1、osm2、

、osmk)、以及零子矩阵zsm。第二奇偶校验位子矩阵hs
22
可以包括交替布置的单位子矩阵ism和零子矩阵zsm。第三奇偶校验位子矩阵hs
23
可以包括交替布置的零子矩阵zsm和单位子矩阵ism。例如,偏移子矩阵osm1至osmk、零子矩阵zsm和单位子矩阵ism中的每一个可以包括p*p元素。
[0093]
如图6a和图8a所示,第一奇偶校验位子矩阵hs
21
、第二奇偶校验位子矩阵hs
22
和第三奇偶校验位子矩阵hs
23
可以分别与第一奇偶校验位子矩阵hs
11
、第二奇偶校验位子矩阵hs
12
和第三奇偶校验位子矩阵hs
13
实质上相同。在一些示例实施例中,图5中的ecc编码器140和ecc解码器150可以共享奇偶校验位生成矩阵pgm,并且可以分别执行ecc编码和ecc解码。换言之,图5中的奇偶校验位生成矩阵pgm与图5中的奇偶校验位检验矩阵pcm可以等同。
[0094]
ecc解码器150可以使用奇偶校验位检验矩阵pcm以符号为单位(例如,在逐符号的基础上)纠正用户数据集sdq中包括的错误。例如,ecc解码器150可以使用奇偶校验位检验矩阵pcm纠正在用户数据集sdq的一个符号中包括的多个错误。数据集dq_bl1至dq_blk、dq_bl1a和dq_bl1b中的每一个可以与一个符号相对应。
[0095]
参考图8b,示出了偏移子矩阵osm的示例,该偏移子矩阵osm与图8a的第一奇偶校
验位子矩阵hs
21
中包括的偏移子矩阵osm1至osmk中的一个相对应。可以通过基础偏移子矩阵osmb的偏移ofs次幂而获得偏移子矩阵osm。
[0096]
如图8a和图8b所示,第一奇偶校验位子矩阵hs
21
中的非零元素的数量可以大于第二奇偶校验位子矩阵hs
22
中的非零元素的数量或第三奇偶校验位子矩阵hs
23
中的非零元素的数量。因此,图5中的ecc解码器150可以使用第二奇偶校验位子矩阵hs
22
和第三奇偶校验位子矩阵hs
23
生成第一子校正子sdr_m1和第二子校正子sdr_m2,并且可以通过对第一子校正子sdr_m1与第二子校正子sdr_m2求和而生成第二校正子sdr_m。
[0097]
图9是示出图5的系统ecc引擎中包括的ecc解码器的示例的框图。
[0098]
参考图9,ecc解码器150可以包括第一错误大小校正子生成器151、第二错误大小校正子生成器152、错误定位校正子生成器153和数据纠正器155。
[0099]
第一错误大小校正子生成器151可以通过对第二码字集合scw2与第二奇偶校验位子矩阵hs
22
执行矩阵乘法操作而生成表示错误比特的数量的第一子校正子sdr_m1。如果第二码字集合scw2的向量表示与r
t
相对应,并且如果第一子校正子sdr_m1的向量表示与s
m01
相对应,则s
m01
=hs
22rt

[0100]
第二错误大小校正子生成器152可以通过对第二码字集合scw2与第三奇偶校验位子矩阵hs
23
执行矩阵乘法操作而生成表示错误比特的数量的第二子校正子sdr_m2。如果第二子校正子sdr_m2的向量表示与s
m02
相对应,则s
m02
=hs
23rt
。第一子校正子sdr_m1和第二子校正子sdr_m2可以包括在作为错误大小校正子的第二校正子sdr_m中。
[0101]
错误定位校正子生成器153可以通过对第二码字集合scw2与第一奇偶校验位子矩阵hs
21
执行矩阵乘法操作而生成表示错误的位置的第一校正子sdr_l,并且可以向数据纠正器155提供第一校正子sdr_l。如果第一校正子sdr_l的向量表示与s
l
相对应,则s
l
=hs
21rt

[0102]
数据纠正器155可以基于第一校正子sdr_l和第二校正子sdr_m以符号为单位(例如,在逐符号的基础上)来对第二码字集合scw2中包括的用户数据集sdq中的可纠正错误比特进行纠正,以输出经纠正的用户数据集c_sdq。当第二码字集合scw2(例如,用户数据集sdq)包括不可纠正错误时,数据纠正器155可以输出用户数据集sdq。
[0103]
在一些示例实施例中,当第一校正子sdr_l具有零值并且第二校正子sdr_m具有零值时,其可以表示第二码字集合scw2中包括的用户数据集sdq不包括错误。当第一校正子sdr_l具有非零值并且第二校正子sdr_m具有非零值时,其可以表示第二码字集合scw2中包括的用户数据集sdq包括可以基于第一校正子sdr_l和第二校正子sdr_m进行纠正的可纠正错误。当第一校正子sdr_l具有零值并且第二校正子sdr_m具有非零值时,其可以表示第二码字集合scw2中包括的用户数据集sdq包括不可使用第一校正子sdr_l和第二校正子sdr_m进行纠正的不可纠正错误。
[0104]
图10是示出根据一些示例实施例的存储器模块中包括的数据芯片的示例的框图,其中存储器模块包括在存储器系统中。
[0105]
参考图10,数据芯片200a可以包括控制逻辑电路210、地址寄存器220、存储体控制逻辑电路230、行地址复用器240、列地址锁存器250、行解码器260、列解码器270、存储器单元阵列300、读出放大器单元285、输入/输出(i/o)选通电路290、数据i/o缓冲器295、管芯上ecc引擎400a和/或刷新计数器245。数据芯片200a可以包括以上各项中的单个或多个或每一个。
[0106]
存储器单元阵列300可以包括第一存储体阵列310至第八存储体阵列380(例如,第一存储体阵列至第八存储体阵列310、320、330、340、350、360、370和380)。行解码器260可以包括被分别连接到第一存储体阵列310至第八存储体阵列380的第一存储体行解码器260a至第八存储体行解码器260h。列解码器270可以包括被分别连接到第一存储体阵列310至第八存储体阵列380的第一存储体列解码器270a至第八存储体列解码器270h。读出放大器单元285可以包括被分别连接到的第一存储体阵列310至第八存储体阵列380的第一存储体读出放大器285a至第八存储体读出放大器285h。
[0107]
第一存储体阵列310至第八存储体阵列380、第一存储体行解码器260a至第八存储体行解码器260h、第一存储体列解码器270a至第八存储体列解码器270h以及第一存储体读出放大器285a至第八存储体读出放大器285h可以形成第一存储体至第八存储体。第一存储体阵列310至第八存储体阵列380中的每一个可以包括多条字线wl、多条位线btl、以及位于字线wl与位线btl的交点处的多个存储器单元mc。
[0108]
虽然图10示出了数据芯片200a包括8个存储体(以及8个存储体阵列、8个行解码器等),但是数据芯片200a可以包括任意数量的存储体;例如,1个、2个、4个、8个、16个或32个存储体,或1与32个之间的任意数量。
[0109]
地址寄存器220可以从存储控制器100接收包括存储体地址bank_addr、行地址row_addr和列地址col_addr的地址addr。地址寄存器220可以将接收到的存储体地址bank_addr提供给存储体控制逻辑电路230,可以将接收到的行地址row_addr提供给行地址复用器240,并且可以将接收到的列地址col_addr提供给列地址锁存器250。
[0110]
存储体控制逻辑电路230可以响应于存储体地址bank_addr生成存储体控制信号。可以响应于存储体控制信号而激活第一存储体行解码器260a至第八存储体行解码器260h中与存储体地址bank_addr相对应的存储体行解码器,并且可以响应于存储体控制信号而激活第一存储体列解码器270a至第八存储体列解码器270h中与存储体地址bank_addr相对应的存储体列解码器。
[0111]
行地址复用器240可以从地址寄存器220接收行地址row_addr,并且可以从刷新计数器245接收刷新行地址ref_addr。行地址复用器240可以选择性地输出行地址row_addr或刷新行地址ref_addr作为行地址ra。从行地址复用器240输出的行地址ra可以应用于第一存储体行解码器260a至第八存储体行解码器260h。
[0112]
第一存储体行解码器260a至第八存储体行解码器260h中激活的存储体行解码器可以对从行地址复用器240输出的行地址ra进行解码,并且可以激活对应的存储体阵列中与行地址ra相对应的字线wl。例如,所激活的存储体行解码器可以生成字线驱动电压,并且可以将字线驱动电压应用于与行地址ra相对应的字线wl。
[0113]
列地址锁存器250可以从地址寄存器220接收列地址col_addr,并且可以临时存储接收到的列地址col_addr。在一些示例实施例中,在突发模式下,列地址锁存器250可以生成从接收到的列地址col_addr递增的列地址。列地址锁存器250将临时存储或生成的列地址应用于第一存储体列解码器270a至第八存储体列解码器270h。
[0114]
第一存储体列解码器270a至第八存储体列解码器270h中激活的存储体列解码器可以对从列地址锁存器250输出的列地址col_addr进行解码,并且可以控制i/o选通电路290,以输出与列地址col_addr相对应的数据。
[0115]
i/o选通电路290可以包括被配置为对输入/输出数据进行选通的电路。i/o选通电路290还可以包括被配置为存储从第一存储体阵列310至第八存储体阵列380输出的数据的读取数据锁存器,并且还可以包括用于将数据写到第一存储体阵列310至第八存储体阵列380的写入控制装置。
[0116]
从第一存储体阵列310至第八存储体阵列380之一读取的码字cw可以由与从中读取码字cw的一个存储体阵列相连的读出放大器285感测,并且可以被存储在读取数据锁存器中。可以在管芯上ecc引擎400a对存储在读取数据锁存器中的码字cw执行ecc解码之后,经由数据i/o缓冲器295向存储控制器100提供码字cw。可以将码字cw提供给存储控制器100作为数据集(或用户数据或主数据)dq_bl。
[0117]
要写入第一存储体阵列310至第八存储体阵列380之一的数据集dq_bl可以从存储控制器100提供给数据i/o缓冲器295,并且可以从数据i/o缓冲器295提供给管芯上ecc引擎400a。管芯上ecc引擎400a可以对数据集dq_bl执行ecc编码以生成奇偶校验位数据,管芯上ecc引擎400a可以向i/o选通电路290提供包括数据集dq_bl和奇偶校验位数据的码字cw,并且i/o选通电路290可以通过写入驱动器将码字cw写入一个存储体阵列中的目标页中的子页。
[0118]
数据i/o缓冲器295可以在数据芯片200a的写操作中向管芯上ecc引擎400a提供来自存储控制器100的数据集dq_bl,并且可以在数据芯片200a的读操作中向存储控制器100提供来自管芯上ecc引擎400a的数据集dq_bl。
[0119]
当执行ecc解码并且检测到至少一个错误比特时,管芯上ecc引擎400a可以向控制逻辑电路210提供错误生成信号egs。此外,管芯上ecc引擎400a可以生成解码状态标志dsf,解码状态标志dsf包括与不可纠正错误或不可由管芯上ecc引擎400a纠正的错误以及可纠正错误或可由管芯上ecc引擎400a纠正的错误相关联的信息。
[0120]
控制逻辑电路210可以控制数据芯片200a的操作。例如,控制逻辑电路210可以生成用于数据芯片200a的控制信号以执行写操作和/或读操作。控制逻辑电路210可以包括对从存储控制器100接收到的命令cmd进行解码的命令解码器211、以及设置数据芯片200a的操作模式的模式寄存器212。在一些示例实施例中,本文描述为由控制逻辑电路210执行的操作可以由处理电路执行。
[0121]
例如,命令解码器211可以通过对写使能信号、行地址选通信号、列地址选通信号、芯片选择信号等进行解码来产生与命令cmd相对应的控制信号。例如,控制逻辑电路210可以生成控制i/o选通电路290的第一控制信号ctl1以及控制管芯上ecc引擎400a的第二控制信号ctl2。
[0122]
奇偶校验位芯片200p可以具有与数据芯片200a相同或实质上相同的配置。奇偶校验位芯片200p可以输入/输出对应的奇偶校验位数据。
[0123]
图11是示出图10的数据芯片中包括的存储体阵列的示例的图。
[0124]
参考图11,第一存储体阵列310可以包括:多条字线wl1、wl2、

、wl2m-1、wl2m(其中m是大于或等于2的自然数);多条位线btl1、btl2、

、btl2n-1、btl2n(其中n是大于或等于2的自然数,且可以与m相同或不相同);以及在字线wl1至wl2m与位线btl1至btl2n之间的交点处或靠近其布置的多个存储器单元mc。例如,多个存储器单元mc中的每一个可以包括dram单元结构。连接到多个存储器单元mc的多条字线wl1至wl2m可以被称为第一存储体阵
列310的行,并且连接到多个存储器单元mc的多条位线bl1至bl2n可以被称为第一存储体阵列310的列。
[0125]
图12是示出根据一些示例实施例的存储器模块中包括的管芯上ecc引擎的示例的框图,其中存储器模块包括在存储器系统中。
[0126]
参考图12,管芯上ecc引擎400a可以包括ecc编码器410、存储器415和ecc解码器430。
[0127]
存储器415可以存储ecc 420。例如,ecc 420可以是单错纠正(sec)码,或者可以是单错纠正/双错检测(secded)码。然而,示例实施例和本公开不限于此。
[0128]
使用ecc 420,ecc编码器410可以生成与要存储在第一存储体阵列310的正常单元阵列nca中的写入数据wmd相关联的奇偶校验位数据prt。奇偶校验位数据prt可以存储在第一存储体阵列310的冗余单元阵列rca中。
[0129]
使用ecc420,ecc解码器430可以基于分别从第一存储体阵列310的正常单元阵列nca和冗余单元阵列rca读取的读取数据rmd和奇偶校验位数据prt,对读取数据rmd执行ecc解码。在读操作中,当读取数据rmd包括至少一个错误比特作为ecc解码的结果时,ecc解码器430可以向控制逻辑电路210提供错误生成信号egs,可以生成解码状态标志dsf并向存储控制器100提供解码状态标志dsf,并且可以对读取数据rmd中的错误比特进行纠正并输出经纠正的主数据c_md。
[0130]
图13是示出图12的管芯上ecc引擎中包括的ecc编码器的示例的框图。
[0131]
参考图13,ecc编码器410可以包括奇偶校验位生成器412。奇偶校验位生成器412可以接收写入数据wmd和基础比特bb,并且可以通过执行例如异或(xor)阵列操作来生成奇偶校验位数据prt。
[0132]
图14是示出图12的管芯上ecc引擎中包括的ecc解码器的示例的框图。
[0133]
参考图14,ecc解码器430可以包括校正子生成电路440、错误定位器460、数据纠正器470和解码状态标志生成器480。校正子生成电路440可以包括检验位生成器441和校正子生成器443。
[0134]
校正子生成电路440可以基于读取数据rmd和奇偶校验位数据prt生成校正子sdr。检验位生成器441可以通过执行异或(xor)阵列操作来基于读取数据rmd生成检验位chb。校正子生成器443可以通过对奇偶校验位数据prt和检验位chb的对应比特进行比较而生成校正子sdr。
[0135]
当校正子sdr的所有比特非零时,错误定位器460可以生成表示读取数据rmd中的错误比特的位置的错误位置信号eps,并且可以向数据纠正器470提供错误位置信号eps。此外,当读取数据rmd包括错误比特时,错误定位器460可以生成错误生成信号egs,并且可以向控制逻辑电路210提供错误生成信号egs。
[0136]
数据纠正器470可以接收读取数据rmd,可以在读取数据rmd包括错误比特时基于错误位置信号eps纠正读取数据rmd中的错误比特,并且可以生成并输出经纠正的主数据c_md。
[0137]
解码状态标志生成器480可以基于校正子sdr和错误位置信号eps生成表示读取数据rmd中的错误比特的状态的解码状态标志dsf。例如,解码状态标志dsf可以表示读取数据rmd不包括任何错误(例如,无错误;ne),可以表示读取数据rmd包括不可由管芯上ecc引擎
400a纠正的错误(例如,不可纠正错误;ue),或者可以表示读取数据rmd包括可以由管芯上ecc引擎400a纠正的错误(例如,可纠正错误;ce)。
[0138]
图15是示出例如本文参考图1所讨论的选择多个解码方案中的至少一个解码方案的示例的流程图。
[0139]
参考图1和图15,在图1的步骤s300中,当包括不可由管芯上ecc引擎纠正的不可纠正错误的第一芯片的第一数量小于或等于第一参考值(步骤s310:是)时,可以基于包括可由管芯上ecc引擎纠正的可纠正错误的第二芯片的第二数量选择多个解码方案中的至少一个解码方案(步骤s330)。当第一数量大于第一参考值(步骤s310:否)时,可以基于第一数量选择多个解码方案中的至少一个解码方案(步骤s350)。
[0140]
在一些示例实施例中,第一参考值可以是0。例如,当第一数量为0时可以执行步骤s330,并且当第一数量为1或更大时可以执行步骤s350。
[0141]
图16和图17是示出选择多个解码方案中的至少一个解码方案的示例和在图1中执行ecc解码的示例的流程图。
[0142]
参考图1、图15和图16,在图15的步骤s330中,可以通过将第二数量与第二参考值和第三参考值进行比较而选择解码方案。在图1的步骤s400中,可以基于所选择的解码方案执行ecc解码。
[0143]
例如,当第二数量小于或等于第二参考值(步骤s332:是)时,可以选择第一解码方案,并且系统ecc引擎可以基于第一解码方案针对第二芯片执行ecc解码(步骤s412)。
[0144]
当第二数量大于第二参考值(步骤s332:否)时,并且当第二数量小于或等于第三参考值(步骤s334:是)时,可以选择第一解码方案,并且系统ecc引擎可以基于第一解码方案对第二芯片执行ecc解码(步骤s414)。
[0145]
当第二数量大于第三参考值(步骤s334:否)时,可以选择第一解码方案,并且系统ecc引擎可以基于第一解码方案对第二芯片执行ecc解码(步骤s416)。
[0146]
在一些示例实施例中,当即使执行了步骤s334和s414时ecc解码也失败时,可以在步骤s336为“否”时确定可能有附加的纠正,即使有出现最终错误的风险也可以附加选择与第一解码方案不同的第三解码方案,并且系统ecc引擎还可以基于第三解码方案对第二芯片附加执行ecc解码(步骤s418)。在其他示例实施例中,当即使执行步骤s334和s414时ecc解码也失败时,可以在步骤s336为“是”时确定通过系统ecc引擎进行ecc解码是不可纠正的或是不可能的,并且可以用宣称ecc解码是不可能的来终止处理。
[0147]
参考图1、图15和图17,在图15的步骤s350中,可以通过将第一数量与第四参考值和第五参考值进行比较来选择解码方案。在图1的步骤s400中,可以基于所选择的解码方案执行ecc解码。
[0148]
例如,当第一数量大于第一参考值(步骤s310:否)时并且当第一数量小于或等于第四参考值(步骤s352:是)时,可以选择与第一解码方案不同的第二解码方案,并且系统ecc引擎可以基于第二解码方案对第一芯片执行ecc解码(步骤s422)。
[0149]
当第一数量大于第四参考值(步骤s335:否)时并且当第一数量小于或等于第五参考值(步骤s354:是)时,可以选择与第一解码方案和第二解码方案不同的第三解码方案,并且系统ecc引擎可以基于第三解码方案对第一芯片执行ecc解码(步骤s424)。
[0150]
当第一数量大于第五参考值(步骤s354:否)时,可以确定通过系统ecc引擎进行
ecc解码是不可能的(步骤s426),并且可以用宣称ecc解码是不可能的来终止处理。
[0151]
图18、图19a、图19b、图19c、图19d、图19e、图19f和图19g是用于描述图16和图17的操作的图。
[0152]
参考图18、图19a、图19b、图19c、图19d、图19e、图19f和图19g,基于图16和图17示出了当第二参考值为1、第三参考值为2、第四参考值为1和第五参考值为2时的具体示例。在图19a、图19b、图19c、图19d、图19e、图19f和图19g中,存储器模块可以包括输入和输出数据集dq_bl1、dq_bl2、dq_bl3、dq_bl4、

、dq_bl15、dq_bl16的16个数据芯片c0、c1、c2、c3、

、c14、c15以及输入和输出奇偶校验位数据prtl和prtm的两个奇偶校验位芯片clp和cmp,并且每个存储器芯片可以连接到四个数据i/o引脚。换言之,在图19a、图19b、图19c、图19d、图19e、图19f和图19g中示出了图4a中的n=16时的示例。“ce”和“ue”分别表示可由管芯上ecc引擎纠正的可纠正错误和不可由管芯上ecc引擎纠正的不可纠正错误。
[0153]
在情况11的示例中,例如,如图19a和图19b所示,当包括不可纠正错误的芯片的数量为0并且包括可纠正错误的芯片的数量为0或1时,“ne”(例如,无错误)可以具有未检测到的可能性,并且“ce”可以具有误纠正的可能性,因此如步骤s412所示,系统ecc引擎可以使用第一解码方案cpk_x4对数据芯片c0执行ecc解码。
[0154]
在情况21的示例中,例如,如图19c所示,当包括不可纠正错误的芯片的数量为0并且包括可纠正错误的芯片的数量为2时,如步骤s414所示,系统ecc引擎可以使用第一解码方案cpk_x4对数据芯片c0和c1中的至少一个执行ecc解码,并且如步骤s418所示,可以使用第三解码方案2ced_x4对数据芯片c0和c1中的至少一个选择性地/附加地执行ecc解码。
[0155]
在情况31的示例中,例如,如图19d所示,当包括不可纠正错误的芯片的数量为0并且包括可纠正错误的芯片的数量为3或更多时,如步骤s416所示,系统ecc引擎可以使用第一解码方案cpk_x4对数据芯片c0、c1和c2中的至少一个执行ecc解码。
[0156]
在情况41的示例中,例如,如图19e所示,当包括不可纠正错误的芯片的数量为1时,“ue”可以是比“ne”和“ce”更准确的信息,因此如步骤s422所示,系统ecc引擎可以使用第二解码方案1ced_x4对数据芯片c0执行ecc解码。
[0157]
在情况51的示例中,例如,如图19f所示,当包括不可纠正错误的芯片的数量为2时,如步骤s424所示,系统ecc引擎可以使用第三解码方案2ced_x4对数据芯片c0和c1中的至少一个执行ecc解码。
[0158]
在情况61的示例中,例如,如图19g所示,当包括不可纠正错误的芯片的数量为3或更多时,如步骤s426所示,可以宣称通过系统ecc引擎进行ecc解码是不可能的(例如,secc_ue)。
[0159]
在一些示例实施例中,彼此不同的第一解码方案cpk_x4、第二解码方案1ced_x4和第三解码方案2ced_x4可以分别表示chipkill方案、1芯片擦除解码方案和2芯片擦除解码方案。可以对一个数据芯片执行第一解码方案cpk_x4,可以对一个数据芯片执行第二解码方案1ced_x4,并且可以对两个数据芯片执行第三解码方案2ced_x4。
[0160]
chipkill是高级错误检查和纠正(ecc)计算机存储器技术中的一种技术,其保护计算机存储器系统免于任意单个存储器芯片故障和单个存储器芯片的任意部分的多比特错误。用于执行这个功能的一个较简单的方案可以使汉明码ecc码字散布在多个存储器芯片上,以使任意单个存储器芯片的故障将仅影响每个码字的一个ecc比特。这允许重构存储
器内容而不管一个芯片是否完全故障。典型的实施方式使用更高级的码,例如bch(bose-chaudhuri-hocquenghem)码,其利用更少的开销纠正多个比特。
[0161]
在编码理论中,擦除解码(或编码)是在比特擦除(而不是比特错误)的假设下使用前向纠正(fec)码的技术,其将k个符号的消息变换成具有n个符号的更长的消息(码字),从而可以基于n个符号的子集恢复原始消息。分数r=k/n称为码率。分数k

/k被称为接收效率,其中k

表示恢复需要的符号的数量。
[0162]
在一些示例实施例中,可以通过增加错误大小校正子(例如,图9中的第二校正子sdr_m)、然后通过重新计算错误定位校正子(例如,图9中的第一校正子sdr_l)来执行第二解码方案1ced_x4,以纠正针对仅一个特定存储器芯片的错误。
[0163]
在一些示例实施例中,可以使用校正子和错误的位置执行第三解码方案2ced_x4,以纠正两个特定的存储器芯片的错误。例如,在步骤s418和s424中,可以通过基于等式1计算2*2线性系统的解,来使用第三解码方案2ced_x4对数据芯片c0和c1执行ecc编码。
[0164]
[等式1]
[0165][0166]
在一些示例实施例中,可以检验校正子为非零,可以检验的解码状态标志dsf的情况以识别不可纠正错误和/或可纠正错误的数量,可以基于检验结果选择合适的解码方案,因此可以基于所选择的解码方案执行步骤s412、s414、s418、s422和s424。
[0167]
在x4结构中,通过传统方法仅可以纠正存储器模块中的一个芯片错误,然而,通过上述示例实施例可以纠正存储器模块中的高达两个芯片错误。
[0168]
图20和图21是示出选择多个解码方案中的至少一个解码方案的另一示例和在图1中执行ecc解码的示例的流程图。为了简洁将省略图20和图21的描述中与图16和图17中的描述重叠的至少一些描述。
[0169]
参考图1、图15和图20,在图15的步骤s330中,可以通过将第二数量与第六参考值和第七参考值进行比较而选择解码方案。在图1的步骤s400中,可以基于所选择的解码方案执行ecc解码。
[0170]
步骤s342、s344、s346、s432、s434、s436和s438可以分别与图16中的步骤s332、s334、s336、s422、s424、s426和s428类似。
[0171]
参考图1、图15和图21,在图15的步骤s350中,可以通过将第一数量与第八参考值进行比较而选择解码方案。在图1的步骤s400中,可以基于所选择的解码方案执行ecc解码。
[0172]
步骤s362、s442和s444可以分别与图17中的步骤s352、s422和s426类似。步骤s364和s446可以分别与图20中的步骤s346和s438类似。
[0173]
图22、图23a、图23b、图23c、图23d和图23e是用于描述图20和图21的操作的图。为了简洁将省略图22和图23a至图23e的描述中与图18、图19a、图19b、图19c、图19d、图19e、图19f和图19g的描述重复的一些描述。
[0174]
参考图22、图23a、图23b、图23c、图23d和图23e,基于图20和图21示出了当第六参考值为0、第七参考值为1和第八参考值为1时的具体示例。在图23a、图23b、图23c、图23d和图23e中,存储器模块可以包括输入和输出数据集dq_bl1a、dq_bl1b、dq_bl2a、dq_bl2b、

、dq_bl8a、dq_bl8b的8个数据芯片c0

、c1



、c7

以及输入和输出奇偶校验位数据prtl和
prtm的一个奇偶校验位芯片cp,并且每个存储器芯片可以连接到8个数据i/o引脚。换言之,在图23a、图23b、图23c、图23d和图23e中示出了图4b中的m=8时的示例。
[0175]
在情况12的示例中,例如,如图23a所示,当包括不可纠正错误的芯片的数量为0并且包括可纠正错误的芯片的数量为0时,如步骤s432所示,系统ecc引擎可以使用第一解码方案hcpk_x8执行ecc解码。
[0176]
在情况22的示例中,例如,如图23b所示,当包括不可纠正错误的芯片的数量为0并且包括可纠正错误的芯片的数量为1时,如步骤s434所示,系统ecc引擎可以使用第一解码方案hcpk_x8对数据芯片c0

执行ecc解码,并且如步骤s438所示,可以使用第二解码方案1ced_x8对数据芯片c0

选择性地/附加地执行ecc解码。
[0177]
在情况32的示例中,例如,如图23c所示,当包括不可纠正错误的芯片的数量为0并且包括可纠正错误的芯片的数量为2或更多时,如步骤s436所示,系统ecc引擎可以使用第一解码方案hcpk_x8对数据芯片c0

和c1

中的至少一个执行ecc解码。
[0178]
在情况42的示例中,例如,如图23d所示,当包括不可纠正错误的芯片的数量为1时,如步骤s442所示,系统ecc引擎可以使用第一解码方案hcpk_x8对数据芯片c0

执行ecc解码,并且如步骤s446所示,可以使用第二解码方案1ced_x8对数据芯片c0

选择性地/附加地执行ecc解码。
[0179]
在情况52的示例中,例如,如图23e所示,当包括不可纠正错误的芯片的数量为2或更多时,如步骤s444所示,可以宣称通过系统ecc引擎进行ecc解码是不可能的(例如,secc_ue)。
[0180]
在一些示例实施例中,彼此不同的第一解码方案hcpk_x8和第二解码方案1ced_x8可以分别表示半chipkill方案和1芯片擦除解码方案。可以针对一个数据芯片的部分区域(例如,一半)执行第一解码方案hcpk_x8,并且可以针对一个数据芯片的整个区域执行第二解码方案1ced_x8。第一解码方案hcpk_x8可以与图18中的第一解码方案cpk_x4类似,并且第二解码方案1ced_x8可以与图18中的第三解码方案2ced_x4类似。
[0181]
在x8结构中,通过传统方法只可以纠正存储器模块中的半个芯片错误,然而,通过上述示例实施例可以纠正存储器模块中的高达一个芯片错误。
[0182]
图24是示出根据示例实施例的可以用于存储器系统的存储器模块的示例的框图。
[0183]
参考图24,存储器模块500可以包括:布置在电路板501中或安装在其上的缓冲器芯片590(例如,寄存式时钟驱动器;rcd);多个存储器件601a、601b、601c、601d、601e、602a、602a、602c、602d、602e、603a、603b、603c、603d、604a、604b、604c和604d;模块电阻单元560和570;串行存在检测(spd)芯片580;和/或电源管理集成电路(pmic)585。
[0184]
在存储控制器100的控制下,缓冲器芯片590可以控制半导体存储器件601a至601e、602a至602e、603a至603d和604a至604d以及pmic 585。例如,缓冲器芯片590可以从存储控制器100接收地址addr、命令cmd、用户数据集sdq和元数据mdt。
[0185]
spd芯片580可以是可编程只读存储器(prom)(例如,电可擦除prom(eeprom))。spd芯片580可以包括存储器模块500的初始信息和/或器件信息di。在一些示例实施例中,spd芯片580可以包括初始信息和/或器件信息di,例如存储器模块500的模块形式、模块配置、存储容量、模块类型、执行环境等。
[0186]
当启动包括存储器模块500的存储器系统时,存储控制器100可以从spd芯片580读
取器件信息di,并且可以基于器件信息di识别存储器模块500。存储控制器100可以基于来自spd芯片580的器件信息di控制存储器模块500。例如,存储控制器100可以基于来自spd芯片580的器件信息di识别存储器模块500中包括的存储器件的类型。
[0187]
此处,可以是印刷电路板(pcb)的电路板501可以在第一边缘部503与第二边缘部505之间沿与第一方向d1垂直的第二方向d2延伸。第一边缘部503和第二边缘部505可以在第一方向d1上延伸。缓冲器芯片590可以布置在电路板501的中心。多个存储器件601a至601e、602a至602e、603a至603d和604a至604d可以在缓冲器芯片590与第一边缘部503之间以及在缓冲器芯片590与第二边缘部505之间布置成多行。在一些示例实施例中,本文描述为由缓冲器芯片590执行的操作可以由处理电路执行。
[0188]
在这个示例中,存储器件601a至601e以及602a至602e可以在缓冲器芯片590与第一边缘部503之间布置成多行或沿多行布置。存储器件603a至603d以及604a至604d可以在缓冲器芯片590与第二边缘部505之间布置成多行或沿多行布置。存储器件601a至601d、602a至602d、603a至603d以及604a至604d可以被称为数据芯片,并且存储器件601e和602e可以被称为奇偶校验位芯片。
[0189]
缓冲器芯片590可以基于用户数据集sdq和元数据mdt生成第一奇偶校验位数据和第二奇偶校验位数据,可以将用户数据集sdq和元数据mdt存储在数据芯片中,并且可以将第一奇偶校验位数据和第二奇偶校验位数据存储在奇偶校验位芯片中。
[0190]
缓冲器芯片590可以通过命令/地址传输线561向存储器件601a至601e提供命令/地址信号(例如,ca),并且可以通过命令/地址传输线563向存储器件602a至602e提供命令/地址信号。此外,缓冲器芯片590可以通过命令/地址传输线571向存储器件603a至603d提供命令/地址信号,并且可以通过命令/地址传输线573向存储器件604a至604d提供命令/地址信号。
[0191]
命令/地址传输线561和563可以共同连接到靠近第一边缘部503的模块电阻单元560,并且命令/地址传输线571和573可以共同连接到靠近第二边缘部505的模块电阻单元570。模块电阻单元560和570中的每一个可以包括连接到端接电压vtt的端接电阻器rtt/2。
[0192]
例如,多个存储器件601a至601e、602a至602e、603a至603d以及604a至604d中的每一个或至少一个可以是dram器件或包括dram器件。
[0193]
spd芯片580可以布置为靠近缓冲器芯片590,并且pmic 585可以位于存储器件603d与第二边缘部505之间。pmic 585可以基于输入电压vin生成电源电压vdd,并且可以向存储器件601a至601e、602a至602e、603a至603d以及604a至604d提供电源电压vdd。
[0194]
图25是示出根据一些示例实施例的存储器系统的示例的框图。
[0195]
参考图25,存储器系统800可以包括存储控制器810和/或存储器模块820和存储器模块830。例如,存储器系统800可以具有四存储体存储器模块。虽然图25中描绘了两个存储器模块,但是根据示例实施例的存储器系统中800可以包括更多或更少的存储器模块。
[0196]
存储控制器810可以控制存储器模块820和/或存储器模块830以执行从处理器和/或主机提供的命令。存储控制器810可以使用处理电路(例如,处理器)实现和/或可以用主机、应用处理器(ap)或片上系统(soc)实现。为了信号完整性,可以用在存储控制器810的总线840上的电阻器rtt实现源端接。电阻器rtt可以连接到电源电压vddq。存储控制器810可以包括可以向存储器模块820和/或存储器模块830中的至少一个发送信号的发送器811,以
及可以从存储器模块820和/或存储器模块830中的至少一个接收信号的接收器813。存储控制器810可以包括系统ecc引擎815。系统ecc引擎815可以与图2中的系统ecc引擎130相对应。
[0197]
如本文所讨论的,系统ecc引擎815可以基于从存储器模块820和/或存储器模块830接收的解码状态标志dsf选择多个解码方案dec1至decx中的至少一个解码方案,并且可以使用所选择的解码方案执行ecc解码。因此,可以通过选择适合于或适于多个存储器模块820和/或存储器模块830中当前的情况和/或出现的错误的解码方案来执行ecc解码。
[0198]
存储器模块820和存储器模块830可以被称为第一存储器模块820和第二存储器模块830。第一存储器模块820和第二存储器模块830可以通过总线840连接到存储控制器810。第一存储器模块820和第二存储器模块830中的每一个可以与图2中的存储器模块mm相对应。第一存储器模块820可以包括存储器存储体rk1和rk2,并且第二存储器模块830可以包括存储器存储体rk3和rk4。
[0199]
第一存储器模块820和第二存储器模块830中的每一个可以包括含有多个数据芯片和至少一个奇偶校验位芯片的多个存储器芯片,并且每个存储器芯片可以包括生成解码状态标志dsf的管芯上ecc引擎825。管芯上ecc引擎825可以与图2中的管芯上ecc引擎400a至400k和400p相对应。
[0200]
图26是示出包括根据一些示例实施例的存储器模块的电子系统的框图。
[0201]
参考图26,电子系统900可以包括应用处理器910、连接模块920、用户接口930、非易失性存储器件(nvm)940、诸如dimm之类的存储器模块(mm)950和/或电源970。例如,电子系统900可以是移动系统。
[0202]
应用处理器910可以包括存储控制器911。存储控制器911可以包括系统ecc引擎(例如,图2的系统ecc引擎130)。
[0203]
应用处理器910可以执行诸如网络浏览器、游戏应用、视频播放器等中的至少一项的应用。连接模块920可以执行与外部设备的有线和/或无线通信。
[0204]
存储器模块950可以存储由应用处理器910处理的数据和/或作为工作存储器进行操作。存储器模块950可以包括多个存储器件(md)951、952、953、

、95q(其中q是大于3的正整数)和/或缓冲器芯片(rcd)961。存储器模块950可以是图24的存储器模块500。
[0205]
多个存储器件951至95q可以包括多个存储器芯片,每个存储器芯片均包括管芯上ecc引擎(例如,图2的管芯上ecc引擎400a至400k和400p)。因此,存储控制器911可以基于从存储器模块950接收的解码状态标志dsf选择多个解码方案dec1至decx中的至少一个解码方案,并且可以使用所选择的解码方案执行ecc解码。因此,可以通过选择适合于或适于多个存储器件951至95q中当前的情况和/或出现的错误的解码方案来执行ecc解码。
[0206]
非易失性存储器件940可以存储用于引导电子系统900的引导图像。用户接口930可以包括至少一个输入设备(例如,键区、触摸屏等)和至少一个输出设备(例如,扬声器、显示设备等)。电源970可以向电子系统900供应操作电压。
[0207]
可以使用各种类型的封装来安装电子系统900或电子系统900的组件。
[0208]
可以将本发明构思应用于包括存储器模块和存储系统的各种电子设备和系统。例如,本公开的发明构思可以应用于诸如以下各项的系统:个人计算机(pc)、服务器计算机、数据中心、工作站、移动电话、智能电话、平板电脑、膝上型计算机,个人数字助理(pda)、便
携式多媒体播放器(pmp)、数码相机、便携式游戏机、音乐播放器、摄像机、视频播放器、导航装置、可穿戴装置、物联网(iot)装置、万物联网(ioe)装置、电子书阅读器、虚拟现实(vr)装置、增强现实(ar)装置、机器人装置、无人机等。
[0209]
上面是一些示例实施例的说明,而不应被解释为限制或对本发明构思的限制。尽管已经描述了一些示例实施例,然而本领域技术人员将容易理解,在不实质上脱离示例实施例和本发明构思的新颖教导和优点的前提下,可以在示例实施例中进行许多修改。因此,所有这些修改旨在被包括在如在随附权利要求中所限定的示例实施例的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1