本申请主张在2017年7月6日提出申请的韩国专利申请第10-2017-0085809号的优先权,所述韩国专利申请的公开内容全文并入本申请供参考。
本公开的示例性实施例涉及存储装置,且更具体来说,涉及半导体存储装置的纠错电路、包括所述纠错电路的半导体存储装置及包括所述半导体存储装置的存储系统。
背景技术:
半导体存储装置可被分类为例如闪存存储装置等非易失性存储装置及例如动态随机存取存储(dynamicrandomaccessmemory,dram)装置等易失性存储装置。动态随机存取存储装置由于运算速度高及具有成本效率而常常用于系统存储器。由于动态随机存取存储装置的制作设计规则持续减小,因此动态随机存取存储装置中的存储单元的位错误可能会增大,且动态随机存取存储装置的良率可能会降低。
技术实现要素:
本公开的示例性实施例提供一种能够提高性能及可靠性的半导体存储装置的纠错电路、包括所述纠错电路的半导体存储装置及包括所述半导体存储装置的存储系统。
根据本公开的示例性实施例,一种包括存储单元阵列的半导体存储装置的纠错电路包括存储纠错码(errorcorrectioncode,ecc)的纠错码存储器以及纠错码引擎。所述纠错码由生成矩阵(generationmatrix)表示。所述纠错码引擎被配置成使用所述纠错码、基于主数据来产生第一奇偶校验数据,并使用所述第一奇偶校验数据来纠正从所述存储单元阵列读取的所述主数据中的至少一个错误位。所述主数据包括多个数据位,所述多个数据位被划分成多个子码字群组。所述纠错码包括多个列向量,所述多个列向量被划分成与所述子码字群组对应的多个码群组。所述列向量具有被配置成限制所述多个子码字群组中出现误纠正位的子码字群组的位置的元素。所述误纠正位是由于所述主数据中的错误位而产生的。
根据本公开的示例性实施例,一种半导体存储装置包括存储单元阵列,所述存储单元阵列包括多个存储体阵列。所述多个存储体阵列中的每一者包括正常单元区及冗余单元区,所述正常单元区存储主数据,所述冗余单元区存储与所述主数据相关联的第一奇偶校验数据。所述半导体存储装置还包括纠错电路,所述纠错电路被配置成使用纠错码(ecc)、基于所述主数据来产生所述第一奇偶校验数据,并使用所述第一奇偶校验数据纠正所述主数据中的至少一个错误位。所述纠错码是由生成矩阵表示。所述半导体存储装置还包括控制逻辑电路,所述控制逻辑电路被配置成基于命令及地址来控制所述纠错电路。所述主数据包括多个数据位,所述多个数据位被划分成多个子码字群组。所述纠错码包括多个列向量,所述多个列向量被划分成与所述子码字群组对应的多个码群组。所述列向量具有被配置成限制所述多个子码字群组中出现误纠正位的子码字群组的位置的元素。所述误纠正位是由于所述主数据中的错误位而产生的。
根据本公开的示例性实施例,一种存储系统包括:存储器模块,包括多个数据存储器及至少一个奇偶校验存储器;以及存储器控制器,被配置成控制所述多个数据存储器及所述至少一个奇偶校验存储器。所述多个数据存储器中的每一者包括存储单元阵列及纠错电路,所述存储单元阵列存储与多个突发长度对应的数据集以及基于所述数据集而产生的第一奇偶校验数据,所述纠错电路被配置成使用第一纠错码(ecc)、基于所述数据集来产生所述第一奇偶校验数据。所述数据集包括多个数据位,所述多个数据位被划分成多个子码字群组。所述第一纠错码包括多个列向量,所述多个列向量被划分成与所述子码字群组对应的多个码群组。所述列向量具有被配置成限制所述多个子码字群组中出现误纠正位的子码字群组的位置的元素。所述误纠正位是由于所述数据集中的错误位而产生的。
根据本公开的示例性实施例,一种操作包括存储单元阵列的半导体存储装置的方法包括:将纠错码(ecc)存储在设置在半导体存储装置的纠错电路中的纠错码存储器中。纠错码的数据格式是生成矩阵。所述方法还包括由设置在纠错电路中的纠错码引擎使用纠错码、基于主数据来产生第一奇偶校验数据。所述方法还包括由纠错码引擎使用所述第一奇偶校验数据来纠正所述主数据中的至少一个错误位。所述主数据包括多个数据位,所述多个数据位被划分成多个子码字群组,且所述纠错码包括多个列向量,所述多个列向量被划分成与所述子码字群组对应的多个码群组。所述列向量具有被配置成限制所述多个子码字群组中出现误纠正位的子码字群组的位置的元素。所述误纠正位是由于所述主数据中的错误位而产生的。
根据本公开的示例性实施例,纠错码由生成矩阵表示且包括多个列向量,且所述列向量被划分成分别与第一子码字群组到第四子码字群组对应的第一码群组到第四码群组。所述列向量具有被配置成限制其中出现误纠正位的子码字群组的位置的元素,其中所述误纠正位是由所述主数据中的错误位而产生的。因此,与纠错相关的性能及可靠性可得到提高。
附图说明
通过参照附图详细阐述本公开的示例性实施例,本公开的以上及其他特征将变得更显而易见。
图1是示出根据本公开示例性实施例的存储系统的方块图。
图2a示出根据本公开示例性实施例的与图1所示存储系统中的多个突发长度对应的数据集。
图2b示出根据本公开示例性实施例的与多个突发长度对应的第二奇偶校验数据,所述多个突发长度被提供到图1所示存储系统中的奇偶校验存储器或从所述奇偶校验存储器输出。
图2c是示意性地示出根据本公开示例性实施例的图1所示存储系统中由n位数据构成的结构的图。
图3是示出根据本公开示例性实施例的图1所示存储器控制器中的奇偶校验产生器的方块图。
图4是示出根据本公开示例性实施例的图1所示存储器控制器中的奇偶校验器(paritychecker)的方块图。
图5是示出根据本公开示例性实施例的图1所示存储器模块中的数据存储器中的一个数据存储器的方块图。
图6是根据本公开示例性实施例的图5所示存储单元的示例性实现方式的电路图。
图7示出根据本公开示例性实施例的图5所示数据存储器中的第一存储体阵列的实例。
图8是示出根据本公开示例性实施例的图5所示数据存储器中的纠错电路的方块图。
图9是示出根据本公开示例性实施例的图8所示纠错电路中的纠错码解码器的方块图。
图10示出根据本公开示例性实施例的图8所示纠错电路中使用的纠错码、数据位、及奇偶校验位的关系。
图11a至图11d示出根据本公开示例性实施例的图10中的码群组。
图12示出根据本公开示例性实施例的图5所示数据存储器中的第一存储体阵列、输入输出门控电路、及纠错电路。
图13示出根据本公开示例性实施例的图1所示存储器模块中的奇偶校验存储器中的第一存储体阵列、输入/输出门控电路及纠错电路。
图14示出根据本公开示例性实施例在图1所示存储器模块中以列组(rank)为单位执行纠错操作。
图15示出根据本公开示例性实施例在图1所示存储器模块中以列组为单位执行纠错操作。
图16示出根据本公开示例性实施例从图5所示数据存储器中的存储单元阵列读取的主数据的配置。
图17示出根据本公开示例性实施例从图5所示数据存储器中的存储单元阵列读取的主数据的配置。
图18示出根据本公开示例性实施例的与图16中的错误位对应的列向量的逐位异或(xor)运算的结果。
图19示出根据本公开示例性实施例的图11a所示第一码群组中的列向量中的一者与其他列向量中的每一者的逐位异或运算的结果。
图20是示出根据本公开示例性实施例的操作半导体存储装置的方法的流程图。
图21是示出根据本公开示例性实施例的操作存储系统的方法的流程图。
图22是示出根据本公开示例性实施例的存储装置的结构图。
图23是示出根据本公开示例性实施例的包括半导体存储装置的移动系统的方块图。
[附图标记]
20:存储系统;
30、911:存储器控制器;
50:奇偶校验产生器;
51:奇偶校验产生电路;
60:奇偶校验器;
61、451:校验位产生器;
62:比较器;
63、455:数据纠正器;
100:存储器模块;
200a、200k:存储装置/半导体存储装置/数据存储器;
200t:存储装置/半导体存储装置/奇偶校验存储器;
210、8107:控制逻辑电路;
211:命令解码器;
212:模式寄存器;
220:地址寄存器;
230:存储体控制逻辑;
240:行地址多路复用器;
245:刷新计数器;
250:列地址锁存器;
260:行解码器;
260a~260h:第一存储体行解码器~第八存储体行解码器;
270:列解码器;
270a~270h:第一存储体列解码器~第八存储体列解码器;
285:感测放大器单元;
285a~285h:第一存储体感测放大器~第八存储体感测放大器;
290、290t:输入/输出门控电路;
291a、291b、291d、292a、292b、292d:开关;
295:数据输入/输出缓冲器;
300、951:存储单元阵列;
310、310t:第一存储体阵列;
380:第八存储体阵列;
311:正常单元区;
311t:第一奇偶校验区;
313:冗余单元区;
313t:第二奇偶校验区;
400、400t:纠错电路;
410:纠错码存储器;
420、822、953:纠错码引擎;
430:纠错码编码器;
450:纠错码解码器;
453:校验子产生器;
511:第一错误位;
513:第二错误位;
515、525、aeb:误纠正位;
517:列级码字/码字;
518:列级码字;
800:存储装置/半导体存储装置;
810:第一半导体集成电路层;
820:第s半导体集成电路层;
821:存储区;
823:外围区;
900:移动系统;
910:应用处理器;
920:连接性模块;
930:用户界面;
940:非易失性存储装置;
950:易失性存储装置;
960:电源;
8101:行驱动器;
8102:列驱动器;
8103:数据输入/输出单元;
8104:命令缓冲器;
8105:地址缓冲器;
bank_addr:存储体地址;
bl0~bl15:突发长度;
btl、btl1、btl2~btln-1、btln:位线;
c_md:经纠正主数据;
cc:单元电容器;
cg1:第一码群组/码群组;
cg2:第二码群组/码群组;
cg3:第三码群组/码群组;
cg4:第四码群组/码群组;
chb:校验位;
clk:时钟信号;
cmd:命令;
col_addr:列地址;
ct:晶体管;
ctl11、ctl21:第一控制信号;
ctl12、ctl22:第二控制信号;
cv11~cv132、cv21~cv232、cv31~cv332、cv41~cv432:列向量;
cw:码字;
d0~d127:数据位;
dq1~dq8:数据;
dq_bl:第一数据集/数据集/数据/主数据;
dq_bl_sg1、dq_bl_sg2、dq_bl_sg3~dq_bl_sg16:数据段;
eb:错误位;
la1~la(s-1)、las:第一半导体集成电路层~第(s-1)半导体集成电路层、第s半导体集成电路层/半导体集成电路层;
mc:存储单元;
md:主数据;
pb1、pb2、pb3、pb4、pb5、pb6、pb7、pb8、prt_bl1、prt_bl2、prt_bl3~prt_bl16:奇偶校验位;
prt、prt1:第一奇偶校验数据;
prt3:第三奇偶校验数据;
ra、row_addr:行地址;
ref_addr:刷新行地址;
rmda、rmdb:读取主数据;
s610、s620、s630、s640、s650、s710、s720、s730、s740、s750:步骤;
sdq:用户数据集;
sdr、sdr2:校验子数据;
sgw1:第一子码字群组/子码字群组;
sgw2:第二子码字群组/子码字群组;
sgw3:第三子码字群组/子码字群组;
sgw4:第四子码字群组/子码字群组;
spc:校验位集/奇偶校验位集;
sprt:第二数据集/第二奇偶校验数据/奇偶校验位;
tsv:硅穿孔;
wl、wl1、wl2~wlm-1、wlm:字线。
具体实施方式
在下文中,将参照附图更充分地阐述本公开的示例性实施例。在所有附图中,相同的参考编号可指代相同的元件。
图1是示出根据本公开示例性实施例的存储系统的方块图。
参照图1,存储系统20可包括存储器控制器30及存储器模块100。存储器模块100包括多个存储装置200a到200k及200t。所述多个存储装置200a到200k及200t包括多个数据存储器200a到200k及奇偶校验存储器200t。
存储器控制器30可控制存储系统20的总体操作。存储器控制器30可控制主机与所述多个存储装置200a到200k及200t之间的总体数据交换。举例来说,存储器控制器30可响应于来自主机的请求将数据写入所述多个存储装置200a到200k及200t中或者从所述多个存储装置200a到200k及200t读取数据。另外,存储器控制器30可向所述多个存储装置200a到200k及200t发出操作命令来控制所述多个存储装置200a到200k及200t。
在示例性实施例中,所述多个半导体存储装置200a到200k及200t中的每一者包括动态存储单元,例如动态随机存取存储器(dram)。在示例性实施例中,所述多个半导体存储装置200a到200k及200t中的每一者是包括电阻型存储单元的存储装置。
在示例性实施例中,数据存储器200a到200k的数目可为8或16。然而,数据存储器200a到200k的数目并非仅限于此。
在示例性实施例中,数据存储器200a到200k中的每一者均可被称为数据芯片,且奇偶校验存储器200t可被称为纠错码(ecc)存储器、冗余存储器、纠错码芯片或冗余芯片。
存储器控制器30及存储器模块100可响应于时钟信号clk来交换第一数据集dq_bl及第二数据集sprt。
第一数据集dq_bl对应于多个突发长度,所述多个突发长度被提供到数据存储器200a到200k中的每一者/从数据存储器200a到200k中的每一者输出,且第二数据集sprt包括与和所有的数据集dq_bl对应的数据集相关联的第二奇偶校验数据sprt。
存储器控制器30包括奇偶校验产生器50及奇偶校验器60。奇偶校验产生器50基于用户数据集产生第二奇偶校验数据sprt,且奇偶校验器60使用第二奇偶校验数据sprt以列组为单位来检测用户数据集中的错误位。
数据存储器200a到200k及奇偶校验存储器200t中的每一者可执行突发操作(burstoperation)。在本文中,突发操作是指通过依序增大或减小从存储器控制器30提供的初始地址来写入或读取大量数据的操作。突发操作的基本单位可被称为突发长度bl。
在示例性实施例中,突发长度bl是指通过依序增大或减小初始地址进行的连续读取或写入数据的操作的数目。举例来说,如果数据存储器200a到200k及奇偶校验存储器200t中的每一者是双倍数据速率(doubledatarate,ddr)动态随机存取存储器且突发长度是8,可通过响应于时钟信号clk依序增大或减小初始地址来执行八次突发读取或写入操作。
图2a示出根据本公开示例性实施例的与图1所示存储系统中的所述多个突发长度对应的数据集。
参照图2a,与所述多个突发长度对应的数据集dq_bl及与数据集dq_bl相关联的第一奇偶校验位crcd被输入到数据存储器200a到200k中的每一者/从数据存储器200a到200k中的每一者输出。数据集dq_bl包括分别与所述多个突发长度中的每一者对应的数据段dq_bl_sg1到dq_bl_sg16。突发长度在图2a中被假设为8。然而,本公开的示例性实施例并非仅限于此。与所述多个突发长度对应的数据集dq_bl可存储在数据存储器200a到200k中的每一者的正常单元区中。
图2b示出根据本公开示例性实施例的与多个突发长度对应的第二奇偶校验数据,所述多个突发长度被提供到图1所示存储系统中的奇偶校验存储器或从所述奇偶校验存储器输出。
参照图2b,与一个突发长度对应的奇偶校验位prt_bl1到prt_bl16以与突发长度bl对应的次数输入到奇偶校验存储器200t/从奇偶校验存储器200t输出。突发长度在图2b中被假设为8。然而,本公开的示例性实施例并非仅限于此。与一个突发长度对应的奇偶校验位prt_bl1到prt_bl16中的每一者可基于将被存储在数据存储器200a到200k中的每一者中的对应的数据段dq_bl_sg而产生。
图2c是示意性地示出根据本公开示例性实施例的图1所示存储系统中由n位数据构成的结构的图。
参照图2c,n位数据包括与存储在数据存储器200a到200k中的每一者中的所有数据集dq_bl对应且与突发长度对应的用户数据集sdq以及与用户数据集sdq相关联的第二奇偶校验数据sprt。
图3是示出根据本公开示例性实施例的图1所示存储器控制器中的奇偶校验产生器的方块图。
参照图3,奇偶校验产生器50包括奇偶校验产生电路51。
奇偶校验产生电路51接收1024位用户数据集sdq,并基于1024位用户数据集sdq产生128位第二奇偶校验数据sprt。奇偶校验产生电路51可例如利用纠错码编码器来实现。奇偶校验位sprt可存储在写入缓冲器中。第二奇偶校验数据sprt可与用户数据集sdq一起被提供到存储器模块100。
图4是示出根据本公开示例性实施例的图1所示存储器控制器中的奇偶校验器的方块图。
参照图4,奇偶校验器60包括校验位产生器61、比较器62、及数据纠正器63。
校验位产生器61接收1024位用户数据集sdq,并基于1024位用户数据集sdq产生校验位集spc。比较器62以列组为单位对128位第二奇偶校验数据sprt的对应位与128位奇偶校验位集spc的对应位进行比较,并产生校验子数据(syndromedata)sdr2,校验子数据sdr2指示是否出现错误位及错误位的位置。数据纠正器63接收1024位用户数据集sdq,基于校验子数据sdr2对数据集dq_bl中出现错误位的数据进行倒置(invert),并纠正用户数据集sdq中的错误位。奇偶校验器60可由例如纠错码解码器来实现,且可使用单纠错及双错误检测(singleerrorcorrectionanddoubleerrordetection,secded)码以列组为单位来对用户数据集sdq执行纠错码解码。
图5是示出根据本公开示例性实施例的图1所示存储器模块中的数据存储器中的一个数据存储器的方块图。
尽管在图5中仅示出数据存储器200a(或半导体存储装置200a)的配置,然而应理解,其他数据存储器200b到200k以及奇偶校验存储器200t的配置与数据存储器200a的配置实质上相同。
参照图5,数据存储器200a包括控制逻辑电路210、地址寄存器220、存储体控制逻辑230、行地址多路复用器240、列地址锁存器250、行解码器260、列解码器270、存储单元阵列300、感测放大器单元285、输入/输出(input/output,i/o)门控电路290、数据输入/输出(i/o)缓冲器295、刷新计数器245及纠错电路400。数据存储器200a还可包括纠错码引擎及循环冗余校验(cyclicalredundancycheck,crc)校验器中的一者。
存储单元阵列300包括第一存储体阵列310到第八存储体阵列380。行解码器260包括分别耦合到第一存储体阵列310到第八存储体阵列380的第一存储体行解码器260a到第八存储体行解码器260h。列解码器270包括分别耦合到第一存储体阵列310到第八存储体阵列380的第一存储体列解码器270a到第八存储体列解码器270h。感测放大器单元285包括分别耦合到第一存储体阵列310到第八存储体阵列380的第一存储体感测放大器285a到第八存储体感测放大器285h。第一存储体阵列310到第八存储体阵列380、第一存储体行解码器260a到第八存储体行解码器260h、第一存储体列解码器270a到第八存储体列解码器270h、及第一存储体感测放大器285a到第八存储体感测放大器285h可形成第一存储体到第八存储体。第一存储体阵列310到第八存储体阵列380中的每一者包括耦合到字线wl及位线btl的多个存储单元mc。
尽管数据存储器200a在图5中被示出为包括八个存储体,然而本公开的示例性实施例并非仅限于此,且数据存储器200a可包括任意数目的存储体。
地址寄存器220从存储器控制器30接收地址addr及命令cmd,地址addr包括存储体地址bank_addr、行地址row_addr及列地址col_addr。
地址寄存器220可将所接收的存储体地址bank_addr提供到存储体控制逻辑230、将所接收的行地址row_addr提供到行地址多路复用器240、且将所接收的列地址col_addr提供到列地址锁存器250。
存储体控制逻辑230可响应于存储体地址bank_addr产生存储体控制信号。第一存储体行解码器260a到第八存储体行解码器260h中的与存储体地址bank_addr对应的一者可响应于存储体控制信号被激活,且第一存储体列解码器270a到第八存储体列解码器270h中的与存储体地址bank_addr对应的一者可响应于存储体控制信号被激活。
行地址多路复用器240可从地址寄存器220接收行地址row_addr,且可从刷新计数器245接收刷新行地址ref_addr。行地址多路复用器240可选择性地输出行地址row_addr及刷新行地址ref_addr中的一者作为行地址ra。从行地址多路复用器240输出的行地址ra可被施加到第一存储体行解码器260a到第八存储体行解码器260h。
第一存储体行解码器260a到第八存储体行解码器260h中被激活的一者可对从行地址多路复用器240输出的行地址ra进行解码,且可将与行地址ra对应的字线激活。举例来说,被激活的存储体行解码器可向与行地址ra对应的字线施加字线驱动电压。
列地址锁存器250可从地址寄存器220接收列地址col_addr,且可临时存储所接收的列地址col_addr。在示例性实施例中,在突发模式中,列地址锁存器250可产生从所接收的列地址col_addr递增的列地址。列地址锁存器250可将临时存储或产生的列地址施加到第一存储体列解码器270a到第八存储体列解码器270h。
第一存储体列解码器270a到第八存储体列解码器270h中被激活的一者可对从列地址锁存器250输出的列地址col_addr进行解码,且可控制输入/输出门控电路290来输出与列地址col_addr或映射列地址mac对应的数据。
输入/输出门控电路290包括用于对输入/输出数据进行门控的电路。输入/输出门控电路290还包括读取数据锁存器及写入驱动器,读取数据锁存器用于存储从第一存储体阵列310到第八存储体阵列380输出的数据,写入驱动器将数据写入到第一存储体阵列310到第八存储体阵列380。
将从第一存储体阵列310到第八存储体阵列380中的一个存储体阵列读取的码字cw可由耦合到将从中读取数据的所述一个存储体阵列的感测放大器感测到,且可存储在读取数据锁存器中。存储在读取数据锁存器中的码字cw以纠错码形式被纠错电路400解码且可通过数据输入/输出缓冲器295被提供到存储器控制器30。
将被写入第一存储体阵列310到第八存储体阵列380中的一个存储体阵列中的数据(或数据集)dq_bl可从存储器控制器30被提供到数据输入/输出缓冲器295。数据dq_bl被提供到纠错电路400。纠错电路400对数据dq_bl执行纠错码编码以产生第一奇偶校验数据,并向输入/输出门控电路290提供包含数据dq_bl及第一奇偶校验数据的码字cw。输入/输出门控电路290可通过写入驱动器来将数据dq_bl及第一奇偶校验数据分别写入所述一个存储体阵列中的正常单元区(第一存储区)及冗余单元区(第二存储区)中。
当纠错电路400执行纠错码编码及纠错码解码时,纠错电路400可使用由生成矩阵表示的纠错码。举例来说,纠错码的数据结构/数据格式可为生成矩阵。纠错码可包括与数据(或主数据)dq_bl的数据位对应的多个列向量,且列向量可被划分成与多个子码字群组对应的多个码群组。所述数据位可被划分成多个子码字群组。另外,列向量可具有被配置成限制其中出现由主数据中的错误位产生的误纠正位的子码字群组的位置的元素。因此,纠错电路400可通过配置成使其中出现由主数据中的错误位产生的误纠正位的子码字群组不与包括错误位的子码字群组交叠来提高列组级纠错码(ranklevelecc)的效率。
控制逻辑电路210可控制数据存储器200a的操作。举例来说,控制逻辑电路210可产生使数据存储器200a执行写入操作或读取操作的控制信号。控制逻辑电路210可包括命令解码器211及模式寄存器212,命令解码器211对从存储器控制器30接收的命令cmd进行解码,模式寄存器212对数据存储器200a的操作模式进行设定。
举例来说,命令解码器211可通过对写入使能信号(/we)、行地址选通信号(/ras)、列地址选通信号(/cas)、芯片选择信号(/cs)等进行解码来产生与命令cmd对应的控制信号。控制逻辑电路210可产生第一控制信号ctl11来控制输入/输出门控电路290,以及产生第二控制信号ctl12来控制纠错电路400。
图6是根据本公开示例性实施例的图5所示存储单元的示例性实现方式的电路图。
参照图6,存储单元mc包括单元电容器cc及晶体管ct。晶体管ct可为根据字线wl的电压来将单元电容器cc连接到位线btl/将单元电容器cc从位线btl断开的选择元件(或切换元件)。晶体管ct可耦合在单元电容器cc、字线wl及位线btl之间,且单元电容器cc可耦合在晶体管ct与板极电压(platevoltage)之间。
图6示出利用动态存储单元实现的存储单元mc。然而,本公开的示例性实施例并非仅限于此。举例来说,存储单元mc可利用电阻式存储单元实现。
图7示出根据本公开示例性实施例的图5所示数据存储器中的第一存储体阵列的实例。
参照图7,第一存储体阵列310包括多条字线wl1到wlm(m是大于二的自然数)、多条位线btl1到btl2(n是大于二的自然数)以及设置在字线wl1到wlm与位线btl1到btln之间的交叉点附近的多个存储单元mc。在示例性实施例中,所述多个存储单元mc中的每一者可包括动态随机存取存储(dram)单元结构。与所述多个存储单元mc连接的所述多条字线wl1到wlm可被定义为第一存储体阵列310的行,且与所述多个存储单元mc连接的所述多条位线btl1到btln可被定义为第一存储体阵列310的列。
图8是示出根据本公开示例性实施例的图5所示数据存储器中的纠错电路的方块图。
参照图8,纠错电路400包括纠错码存储器410、纠错码编码器430及纠错码解码器450。纠错码编码器430与纠错码解码器450可构成纠错码引擎420。
纠错码存储器410存储纠错码。纠错码可由生成矩阵表示(例如,纠错码的数据格式/结构可为生成矩阵),且可包括与主数据(例如,dq_bl)中的数据位对应的多个列向量。在本文中,用语“数据dq_bl”与“主数据md”可互换使用。
纠错码编码器430耦合到纠错码存储器410,且可在数据存储器200a的写入操作中使用存储在纠错码存储器410中的纠错码对主数据dq_bl(或主数据md)执行纠错码编码以产生第一奇偶校验数据prt。纠错码编码器430可向输入/输出门控电路290提供包含主数据md及第一奇偶校验数据prt的码字cw。
纠错码解码器450耦合到纠错码存储器410,可接收包含主数据md及第一奇偶校验数据prt的码字cw,可使用纠错码、基于第一奇偶校验数据prt来对主数据md执行纠错码解码,以纠正主数据md中的错误位,且可输出经纠正主数据c_md。
尽管参照图8阐述了纠错码存储器410耦合到纠错码编码器430及纠错码解码器450,然而在示例性实施例中,纠错码存储器410也可在纠错码编码器430及纠错码解码器450内利用异或门实现。
图9是示出根据本公开示例性实施例的图8所示纠错电路中的纠错码解码器的方块图。
参照图9,纠错码解码器450包括校验位产生器451、校验子产生器453、及数据纠正器455。
校验位产生器451使用纠错码存储器410基于主数据md中的数据位产生校验位chb。校验子产生器453基于校验位chb与第一奇偶校验数据prt的奇偶校验位的比较来产生校验子数据sdr,校验子数据sdr指示是否出现错误位及错误位的位置。
数据纠正器455接收主数据md及校验子数据sdr,纠正主数据md中的错误位,且输出经纠正主数据c_md。
在图8及图9中,主数据md包括数据位的2p位(其中p是等于或大于七的整数),第一奇偶校验数据prt包括(p+1)位奇偶校验位,且纠错码可用于纠正主数据md中的q个错误位(其中q是大于零的整数)。纠错码可为单纠错(singleerrorcorrection,sec)码。
图10示出根据本公开示例性实施例的图8所示纠错电路中使用的纠错码、数据位、及奇偶校验位的关系。
在图10中,假设主数据md包括128位数据位d0到d127,且第一奇偶校验数据prt包括8位奇偶校验位pb1到pb8。在图10中,假设p是七。
参照图10,主数据md的数据位d0到d127可被划分成第一子码字群组sgw1到第四子码字群组sgw4。第一子码字群组sgw1包括数据位d0到d31,第二子码字群组sgw2包括数据位d32到d63,第三子码字群组sgw3包括数据位d64到d95,且第四子码字群组sgw4包括数据位d96到d127。第一子码字群组sgw1到第四子码字群组sgw4中的每一者包括2p位数据位。
另外,纠错码(或生成矩阵)可被划分成分别与第一子码字群组sgw1到第四子码字群组sgw4对应的第一码群组cg1到第四码群组cg4。
图11a至图11d示出根据本公开示例性实施例的图10中的码群组。
参照图11a,第一码群组cg1包括与第一子码字群组sgw1的数据位d0到d31对应的列向量cv11到cv132。
参照图11b,第二码群组cg2包括与第二子码字群组sgw2的数据位d32到d63对应的列向量cv21到cv232。
参照图11c,第三码群组cg3包括与第三子码字群组sgw3的数据位d64到d95对应的列向量cv31到cv332。
参照图11d,第四码群组cg4包括与第四子码字群组sgw4的数据位d96到d127对应的列向量cv41到cv432。
如从图11a到图11d注意到,第一码群组cg1到第四码群组cg4的列向量cv11到cv132、cv21到cv232、cv31到cv332、及cv41到cv432可具有被配置成限制其中出现由主数据md的错误位而产生的误纠正位的子码字群组的位置的元素。
举例来说,在示例性情景中,主数据md的错误位包括第一错误位及第二错误位,且子码字群组sgw1到sgw4中的一者包括第一错误位及第二错误位。在这种情形中,第一码群组cg1到第四码群组cg4的列向量cv11到cv132、cv21到cv232、cv31到cv332、及cv41到cv432可具有使得列向量cv11到cv132、cv21到cv232、cv31到cv332、及cv41到cv432中的每一者不同于包括第一错误位及第二错误位的所述一个子码字群组中的两个不同列向量的逐位异或运算的结果的元素。
举例来说,在示例性情景中,主数据md的错误位包括第一错误位及第二错误位,且子码字群组sgw1到sgw4中的第一子码字群组包括第一错误位,且与第一子码字群组不同的第二子码字群组包括第二错误位。在这种情形中,第一码群组cg1到第四码群组cg4的列向量cv11到cv132、cv21到cv232、cv31到cv332、及cv41到cv432可具有使得与第一子码字群组对应的第一码群组中的列向量中的每一者和与第二子码字群组对应的第二码群组中的列向量中的每一者的逐位异或运算的结果不同于列向量cv11到cv132、cv21到cv232、cv31到cv332及cv41到cv432中的每一者、或者与除第一码群组及第二码群组以外的码群组cg1到cg4中的列向量中的一者匹配的元素。
举例来说,第一码群组cg1中的列向量cv110与第二码群组cg2中的列向量cv22的逐位异或运算的结果与第四码群组cg4中的列向量cv423匹配。
也就是说,当纠错电路400可以使用纠错码来校正主数据dq_bl的q个错误位时,码群组cg1、cg2、cg3和cg4中的列向量cv11~cv432具有使得所述多个子码字群组cg1、cg2、cg3和cg4中包括由主数据dq_bl的(q+1)个错误位产生的误纠正位的子码字群组不同于所述多个子码字群组cg1、cg2、cg3和cg4中包括所述(q+1)个错误位的至少一个子码字群组的元素。在这里,q是一个大于零的整数。
图12示出根据本公开示例性实施例的图5所示数据存储器中的第一存储体阵列、输入/输出门控电路及纠错电路。
参照图12,数据存储器200a的第一存储体阵列310包括正常单元区311及冗余单元区313。
输入/输出门控电路290包括多个开关291a、291b及291d。所述多个开关291a、291b及291d可为例如多路复用器。开关291a及291b连接到正常单元区311,且开关291d连接到冗余单元区313。输入/输出门控电路290从纠错电路400接收数据集dq_bl及与数据集dq_bl相关联的第一奇偶校验数据prt,将数据集dq_bl存储在正常单元区311中,且将第一奇偶校验数据prt存储在冗余单元区313中。
输入/输出门控电路290基于从控制逻辑电路210接收的第一控制信号ctl11来执行上述操作,且纠错电路400基于从控制逻辑电路210接收的第二控制信号ctl12来执行纠错码编码及纠错码解码。
图13示出根据本公开示例性实施例的图1所示存储器模块中的奇偶校验存储器中的第一存储体阵列、输入/输出门控电路及纠错电路。
参照图13,奇偶校验存储器200t的第一存储体阵列310t包括第一奇偶校验区311t及第二奇偶校验区313t。
输入/输出门控电路290t包括多个开关292a、292b及292d。开关292a及292b连接到第一奇偶校验区311t,且开关292d连接到第二奇偶校验区313t。输入/输出门控电路290t从奇偶校验存储器200t中的纠错电路400t接收第二奇偶校验数据sprt及与第二奇偶校验数据sprt相关联的第三奇偶校验数据prt3,将第二奇偶校验数据sprt存储在第一奇偶校验区311t中,并将第三奇偶校验数据prt3存储在第二奇偶校验区313t中。
输入/输出门控电路290t基于从奇偶校验存储器200t中的控制逻辑电路接收的第一控制信号ctl21来执行上述操作,且纠错电路400t基于来自控制逻辑电路的第二控制信号ctl22来执行纠错码编码及纠错码解码。
图14示出根据本公开示例性实施例在图1所示存储器模块中以列组为单位执行纠错操作。
参照图14,数据存储器200a到200k中的每一者存储128位数据位,且奇偶校验存储器200t相对于存储在数据存储器200a到200k中的数据位以列组为单位存储8位奇偶校验数据。因此,奇偶校验存储器200t针对所有列组存储128位奇偶校验数据。
举例来说,当数据存储器200a包括第一错误位511及第二错误位513、且由于第一错误位511及第二错误位513而产生的误纠正位515包括在列组级码字517中时,列组级码字517包括第一错误位511及误纠正位515,且因此,存储器控制器30无法纠正码字517的错误位。误纠正位可指在尝试对所述位进行纠正时被错误地纠正的位。举例来说,误纠正位515可因第一错误位511及第二错误位513不正确而在尝试对位进行纠正时被错误地纠正。在图14中,假设根据每个突发长度bl0~bl15将例如码字517的列组级码字存储在数据存储器200a~200k和奇偶校验存储器200t中并从数据存储器200a~200k和奇偶校验存储器200t中读取。
图15示出根据本公开示例性实施例在图1所示存储器模块中以列组为单位执行纠错操作。
参照图15,数据存储器200a到200k中的每一者存储128位数据位,且奇偶校验存储器200t相对于存储在数据存储器200a到200k中的数据位以列组为单位存储8位奇偶校验数据。因此,奇偶校验存储器200t针对所有列组存储128位奇偶校验数据。
举例来说,当数据存储器200a包括第一错误位511及第二错误位513时,数据存储器200a的纠错码存储器410中的纠错码的列向量具有被配置成限制其中出现误纠正位(例如,因主数据中的错误位而产生的误纠正位)的子码字群组的位置的元素。举例来说,在图15中,由于第一错误位511及第二错误位513而产生的误纠正位525包括在第四子码字群组sgw4中。因此,列组级码字518仅包括第一错误位511,且存储器控制器30可使用8位奇偶校验位来纠正列组级码字518的错误位。在图15中,假设根据每个突发长度bl0~bl15将例如码字518的列组级码字存储在数据存储器200a~200k和奇偶校验存储器200t中并从数据存储器200a~200k和奇偶校验存储器200t中读取。
图16示出根据本公开示例性实施例的从图5所示数据存储器中的存储单元阵列读取的主数据的配置。
参照图16,读取主数据(readmaindata)rmda的数据位d0到d127可被划分成第一子码字群组sgw1到第四子码字群组sgw4。第一子码字群组sgw1包括数据位d0到d31,第二子码字群组sgw2包括数据位d32到d63,第三子码字群组sgw3包括数据位d64到d95,且第四子码字群组sgw4包括数据位d96到d127。
当第一子码字群组sgw1的数据位d9及第二子码字群组sgw2的数据位d33是错误位eb时,与数据位d9对应的第一码群组cg1的列向量cv110和与数据位d33对应的第二码群组cg2的列向量cv22的逐位异或运算的结果与第四码群组cg4的列向量cv423匹配。由于错误位eb而产生的误纠正位aeb包括在第四子码字群组sgw4中。因此,因为由于错误位eb而产生的误纠正位aeb包括在除包括错误位eb的码字群组以外的其他子码字群组中,因此存储器控制器30可使用奇偶校验位检测及/或纠正列组级码字中的错误位。
图17示出根据本公开示例性实施例的从图5所示数据存储器中的存储单元阵列读取的主数据的配置。
参照图17,读取主数据rmdb的数据位d0到d127可被划分成第一子码字群组sgw1到第四子码字群组sgw4。
当第一子码字群组sgw1的数据位d0及d9是错误位时,与数据位d0对应的第一码群组cg1的列向量cv11和与数据位d9对应的第一码群组cg1的列向量cv110的逐位异或运算的结果不与第一码群组cg1到第四码群组cg4的列向量中的任意列向量匹配。因此,因为由于错误位eb而产生的误纠正位aeb未包括在包括错误位eb的子码字群组及除包括错误位eb的子码字群组以外的其他子码字群组中,因此存储器控制器30可使用奇偶校验位来检测及/或纠正列组级码字中的错误位。
图18示出根据本公开示例性实施例的与图16中的错误位对应的列向量的逐位异或运算的结果。
参照图18,应注意,与数据位d9对应的第一码群组cg1的列向量cv110和与数据位d33对应的第二码群组cg2的列向量cv22的逐位异或运算的结果与第四码群组cg4的列向量cv423匹配。
图19示出根据本公开示例性实施例的图11a所示第一码群组中的列向量中的一者与其他列向量中的每一者的逐位异或运算的结果。
参照图19,图11a所示第一码群组cg1中的列向量cv11与其他列向量cv12到cv132中的每一者的逐位异或运算的每一个结果不与第一码群组cg1到第四码群组cg4中的列向量中的任意列向量匹配。
尽管为解释方便起见参考第一码群组cg1中的两个列向量,然而应理解,第二码群组cg2到第四码群组cg4中的每一者中的任意两个列向量的逐位异或运算的每一个结果不与第一码群组cg1到第四码群组cg4中的列向量中的任意列向量匹配。因此,当第一子码字群组sgw1到第四子码字群组sgw4中的每一者均包括两个错误位时,误纠正位不包括在第一码群组cg1到第四码群组cg4中的每一者中。因此,存储器控制器30可使用奇偶校验位来检测及/或纠正列组级码字中的错误位。
图20是示出根据本公开示例性实施例的操作半导体存储装置的方法的流程图。
参照图5至图20,在操作包括存储单元阵列300的半导体存储装置200a的方法中,纠错电路400使用第一纠错码基于主数据md来产生第一奇偶校验数据prt(s610)。主数据md包括数据位的2p位(其中p是等于或大于七的整数),第一奇偶校验数据prt包括(p+1)位奇偶校验位,且主数据md的数据位可被划分成第一子码字群组到第四子码字群组,所述第一子码字群组到第四子码字群组分别包括2p-2位。第一纠错码可由生成矩阵表示,可包括多个列向量,且所述列向量可被划分成分别与第一子码字群组到第四子码字群组对应的第一码群组到第四码群组。列向量可具有被配置成限制其中出现误纠正位的子码字群组的位置的元素,其中误纠正位是由主数据中的错误位产生的。
纠错电路400通过输入/输出门控电路290将主数据md及第一奇偶校验数据prt存储在存储单元阵列300中(s620)。纠错电路400通过输入/输出门控电路290从存储单元阵列300读取主数据md及第一奇偶校验数据prt(s630)。纠错电路400使用第一纠错码基于主数据md产生校验位chb(s640)。纠错电路400基于第一奇偶校验数据prt与校验位chb的比较来纠正主数据md中的错误位(s650)。
当主数据md包括第一错误位及第二错误位、且第一错误位及第二错误位被包括在一个子码字群组中时,由于第一纠错码中的列向量具有上述配置,因而由于第一错误位及第二错误位而产生的误纠正位未包括在子码字群组中的任意者中。另外,当第一错误位及第二错误位分别位于两个不同的子码字群组中时,由于第一错误位及第二错误位而产生的误纠正位未包括在子码字群组中的任意者中,或者包括在除所述两个不同的子码字群组以外的码字群组中的一者中。因此,存储器控制器30可使用奇偶校验位来检测及/或纠正列组级码字中的错误位。
图21是示出根据本公开示例性实施例的操作存储系统的方法的流程图。
参照图1至图19及图21,在操作存储系统20(存储系统20包括具有多个数据存储器200a到200k及奇偶校验存储器200t的存储器模块100及控制存储器模块100的存储器控制器30)的方法中,存储器控制器30将分别与多个突发长度对应的数据集dq_bl存储在正常单元区311中,且数据存储器200a到200k中的每一者将与数据集dq_bl相关联的第一奇偶校验数据prt存储在冗余单元区313中(s710)。
存储器控制器30将与用户数据集sdq相关联的第二奇偶校验数据sprt存储在奇偶校验存储器200t中的第一奇偶校验区311t中,用户数据集sdq对应于将被存储在数据存储器200a到200k中的每一者中的所有数据集dq_bl,且奇偶校验存储器200t使用第一纠错码将与第二奇偶校验数据sprt相关联的第三奇偶校验数据prt3存储在第二奇偶校验区313t中(s720)。
数据存储器200a到200k中的每一者中的纠错电路400读取数据集dq_bl及第一奇偶校验数据prt,并使用第一纠错码及第一奇偶校验数据prt来纠正数据集dq_bl中的错误位(s730)。
数据存储器200a到200k及奇偶校验存储器200t将数据集dq_bl及第二奇偶校验数据sprt分别传送到存储器控制器30(s740)。存储器控制器30使用第二纠错码及第二奇偶校验数据sprt以列组级来检测及/或纠正数据集dq_bl中的错误位(s750)。
如上所述,第一纠错码可由生成矩阵表示,且可包括多个列向量,且列向量可被划分成分别与第一子码字群组到第四子码字群组对应的第一码群组到第四码群组。列向量可具有被配置成限制其中出现误纠正位的子码字群组的位置的元素,其中误纠正位是由主数据中的错误位产生的。
另外,第一纠错码可为单纠错码,且第二纠错码可为单纠错及双错误检测码。
图22是示出根据本公开示例性实施例的存储装置的结构图。
参照图22,存储装置800可包括第一半导体集成电路层la1到第s半导体集成电路层las(s是大于二的自然数),其中最底部第一半导体集成电路层la1是界面或控制芯片,且其他半导体集成电路层la2到las是包括核心存储器芯片的从芯片。第一半导体集成电路层la1到第s半导体集成电路层las可通过硅穿孔(through-silicon-via,tsv)在其之间传送及接收信号。作为界面或控制芯片的最底部第一半导体集成电路层la1可通过形成在外部表面上的导电结构来与外部存储器控制器进行通信。本文中将通过主要使用第一半导体集成电路层la1(或810)作为界面或控制芯片、以及使用第s半导体集成电路层las(或820)作为从芯片来对存储装置800的结构及操作进行说明。
第一半导体集成电路层810可包括用于驱动设置在第s半导体集成电路层820中的存储区821的各种外围电路。举例来说,第一半导体集成电路层810可包括用于驱动存储器的字线的行(x)驱动器8101、用于驱动存储器的位线的列(y)驱动器8102、用于控制数据的输入/输出的数据输入/输出单元(din/dout)8103、用于从外部接收命令cmd并对命令cmd进行缓冲的命令缓冲器(cmdbuffer)8104、以及用于从存储器控制器接收地址的地址缓冲器(addrbuffer)8105。
第一半导体集成电路层810还可包括控制逻辑电路8107。控制逻辑电路8107可对存储区821进行存取,且可基于来自存储器控制器的命令产生控制信号来对存储区821进行存取。
第s半导体集成电路层820可包括存储区821、对存储区821的数据执行纠错码编码及纠错码解码的纠错码引擎(ecce)822以及外围区(peri)823,在外围区中,例如(举例来说)行解码器、列解码器及位线感测放大器等外围电路被设置成用于在存储区821中写入/读取数据。
如参照图2至图19所阐述,纠错码引擎822使用第一纠错码执行纠错码编码及纠错码解码。第一纠错码可由生成矩阵表示,且可包括多个列向量,且所述列向量可被划分成分别与第一子码字群组到第四子码字群组对应的第一码群组到第四码群组。列向量可具有被配置成限制其中出现误纠正位的子码字群组的位置的元素,其中误纠正位是由主数据中的错误位产生的。因此,半导体存储装置800可提高纠错的效率。
另外,在示例性实施例中,在半导体存储装置800中设置有三维(threedimensional,3d)存储阵列。三维存储阵列是以单片形式形成为存储单元阵列的一个或多个物理层级,存储器单元阵列具有设置在硅衬底上方的有源区域及与这些存储单元的操作相关联的电路,无论此相关联电路是位于此衬底上方还是衬底内。用语“单片式(monolithic)”意指阵列的每一个层级的层直接沉积在阵列的每一下伏层级的层上。以下并入本申请供参考的专利文献阐述了三维存储阵列的适宜的配置:美国专利第7,679,133号、第8,553,466号、第8,654,587号、第8,559,235号;以及美国专利公开第2011/0233648号,其中三维存储阵列被配置为多个层级,在各层级之间共享字线及/或位线。
图23是示出根据本公开示例性实施例的包括半导体存储装置的移动系统的方块图。
参照图23,移动系统900可包括应用处理器910、连接性模块920、易失性存储装置950、非易失性存储装置940、用户界面930及电源960。应用处理器910包括存储器控制器911。
应用处理器910可执行例如(举例来说)网页浏览器、游戏应用、视频播放器等应用。连接性模块920可与外部装置执行有线通信或无线通信。易失性存储装置950可存储由应用处理器910处理的数据或作为工作存储器运行。易失性存储装置950可采用图5所示半导体存储装置200a。易失性存储装置950包括存储单元阵列951及纠错码引擎953。
非易失性存储装置940可存储引导镜像(bootimage)以引导移动系统900。用户界面930可包括至少一个输入装置(例如小键盘、触摸屏等)以及至少一个输出装置(例如扬声器、显示装置等)。电源960可向移动系统900供应电源电压。
在示例性实施例中,移动系统900及/或移动系统900的组件可以各种形式进行封装。
如上所述,根据本公开的示例性实施例,纠错电路使用第一纠错码执行纠错码编码及纠错码解码。第一纠错码可由生成矩阵表示,且可包括多个列向量,且列向量可被划分成分别与第一子码字群组到第四子码字群组对应的第一码群组到第四码群组。列向量可具有被配置成限制其中出现误纠正位的子码字群组的位置的元素,其中误纠正位是由主数据中的错误位产生的。因此,纠错的性能及可靠性可得到提高。
本公开的示例性实施例可应用于采用本文所述纠错码电路的半导体存储装置及存储系统。
按照本公开的领域中的传统,在图中采用功能性区块、单元及/或模块来阐述及示出示例性实施例。所属领域中的技术人员应理解,这些区块、单元及/或模块是由例如逻辑电路、分立组件、微处理器、硬接线电路(hard-wiredcircuit)、存储元件、接线连接等可利用基于半导体的制作技术或其他制造技术形成的电子(或光学)电路以实体方式实现。在所述区块、单元及/或模块是由微处理器或类似元件实现的情形中,所述区块、单元及/或模块可利用软件(例如,微代码)进行编程以执行本文所论述的各种功能且可视需要通过固件及/或软件来驱动。作为另外一种选择,每一个区块、单元及/或模块可由专用硬件来实现,或者作为用于执行一些功能的专用硬件与用于执行其他功能的处理器(例如,一个或多个经过编程的微处理器及相关联的电路)的组合来实现。另外,所述示例性实施例中的每一个区块、单元及/或模块可在不背离本公开的范围的条件下在实体上分成两个或更多个交互作用且分立的区块、单元及/或模块。另外,所述示例性实施例的区块、单元及/或模块可在不背离本公开的范围的条件下在实体上组合成更复杂的区块、单元及/或模块。
尽管已参照本公开的示例性实施例具体示出并阐述了本公开,然而所属领域的普通技术人员应理解,在不背离以上权利要求书所界定的本公开的精神及范围的条件下可在本文中作出形式及细节上的各种改变。