控制电路和存储器的制作方法

文档序号:32434724发布日期:2022-12-06 17:34阅读:47来源:国知局
控制电路和存储器的制作方法

1.本技术涉及半导体电路设计领域,特别涉及一种控制电路和存储器。


背景技术:

2.动态随机存储器(dynamic random access memory,dram)由于其存储密度高、传输速度快等特点,广泛应用于现代电子系统中。随着半导体技术的发展,dram技术越来越先进,存储单元的集成度越来越高;同时,各种不同的应用对dram的性能、功耗和可靠性等也都要求越来越高,例如ddr5和lpddr5等。
3.而现有具备检错纠错功能(error correcting code,ecc)的存储器数据传输线路在功耗、可靠性等方面仍有改进空间,亟需设计一种能够降低数据传输功耗、提高存储可靠性的ecc存储器,进一步提高现有ecc存储器的综合性能,以面对各种不同应用场景的需求。


技术实现要素:

4.本技术实施例提供一种控制电路和存储器,以降低数据传输线路的低功耗和提高数据存储的可靠性等。
5.为解决上述技术问题,本技术实施例提供了一种控制电路,用于向存储单元写入数据和读出数据,包括:外部数据线,用于接收原始数据和原始ecc校验码;第一校验模块,连接外部数据线,用于在数据传输发生错误,根据原始ecc校验码进行检错和/或纠错,并输出纠正后的数据和纠正后的ecc校验码,其中,若数据传输未发生错误,则纠正后的数据与原始数据一致,纠正后的ecc校验码与原始ecc校验码一致;比较模块,与外部数据线、全局数据线连接,用于逐位检测外部数据线当前传输的数据与全局数据线当前传输的数据是否相同,并输出每一位的检测结果;计数模块,与比较模块、第一校验模块连接,并接收切换控制信号,在切换控制信号为第一状态,用于对比较模块的输出结果进行统计,输出表征原始数据、原始ecc校验码与全局数据线当前传输的数据的差异位数是否超过第一预设值的第一控制信号;在切换控制信号为第二状态,用于对第一校验模块输出的纠正后的数据和纠正后的ecc校验码中高电平数据进行统计,输出表征高电平数据所占位数是否超过第二预设值的第二控制信号,并输出表征高电平数据数量为奇数或偶数的奇偶码;第二控制信号和奇偶码作为标记位数据存入存储单元中,以在读出数据的过程中,将第二控制信号和奇偶码读出;其中,第一控制信号用于在写操作中控制待写入的数据是否需要翻转、第二控制信号用于在读操作中控制待读出的数据是否需要翻转,奇偶码用于在读操作中对待读出的数据进行检错和/或纠错。
6.与相关技术相比,通过共用计数模块,根据切换控制信号分时对原始数据、原始ecc校验码和全局数据线中传输的数据的差异数目进行统计,获取第一控制信号,以及对纠正后的数据和纠正后的ecc校验码中高电平数量进行统计,获取第二控制信号,节省了电路面积;同时,新产生的奇偶码与纠正后的ecc校验码一起用于后续对数据在读操作中再次进行错误检测及纠错,且新产生的奇偶码与纠正后的ecc校验码一起能够检测出2位的错误,
以增强存储器中检错纠错的能力,进一步提高数据存储的可靠性。
7.另外,控制电路还包括:数据缓冲模块,与第一校验模块和计数模块连接,用于根据第一控制信号,将纠正后的数据和纠正后的ecc校验码传输至全局数据线或将纠正后的数据和纠正后的ecc校验码进行翻转后传输至全局数据线。
8.另外,控制电路还包括:写入模块,连接在本地数据线和全局数据线之间,控制全局数据线中的数据传输至本地数据线,且基于第三控制信号,判断全局数据线中的数据传输至本地数据线的过程中是否进行数据翻转,其中,第三控制信号用于表征第一控制信号的值和第二控制信号的值是否相同。
9.另外,控制电路还包括:阵列区读取单元,用于在读操作中将存储单元中的纠正后的数据、纠正后的ecc校验码、第二控制信号和奇偶码读出至本地数据线上,或在读操作中将存储单元中的纠正后的数据的相反值、纠正后的ecc校验码的相反值、第二控制信号和奇偶码读出至本地数据线。
10.另外,控制电路还包括:第二校验模块,用于根据纠正后的ecc校验码和奇偶码判断纠正后的数据在存储期间是否发生错误,和/或对发生错误的纠正后的数据再次纠错;读出模块,用于根据读出的第二控制信号,控制本地数据线上的数据向后传输时是否需要翻转;若高电平数据所占位数超过第二预设值,则读出模块被配置为将本地数据线上的数据的相反值最终传输至第二校验模块;若高电平数据所占位数不超过第二预设值,则读出模块被配置为将本地数据线上的数据最终传输至第二校验模块。
11.另外,数据缓冲模块包括:转换模块,用于根据第一控制信号,控制纠正后的数据和纠正后的ecc校验码传输至全局数据线时是否需要翻转;若差异位数超过第一预设值,则转换模块被配置为将纠正后的数据和纠正后的ecc校验码翻转后传输至全局数据线;若差异位数不超过第一预设值,则转换模块被配置为将纠正后的数据和纠正后的ecc校验码传输至全局数据线。
12.另外,逐位检测外部数据线当前传输的数据与全局数据线当前传输的数据是否相同,并输出每一位的检测结果,包括:若当前位外部数据线传输的数据与当前位全局数据线传输的数据不同,则生成第一子控制信号,若当前位外部数据线传输的数据与当前位全局数据线传输的数据相同,则生成第二子控制信号。
13.另外,在切换控制信号为第一状态时,计数模块用于获取第一子控制信号和第二子控制信号,若第一子控制信号个数超过第一预设值,则生成第一控制信号,第一预设值为第一子控制信号的数量与第二子控制信号的数量和的预设百分比。
14.另外,预设百分比为50%。
15.另外,第二预设值为纠正后的数据和纠正后的ecc校验码的位数和的50%。
16.另外,写入模块包括;使能控制模块,用于接收第一控制信号和第二控制信号,并输出用于表征第一控制信号和第二控制信号是否相同的第三控制信号。
17.另外,使能控制模块还用于接收写使能信号,若写使能信号为有效电平,则输出用于表征第一控制信号和第二控制信号是否相同的第三控制信号。
18.另外,本地数据线包括互为差分数据传输线的第一本地数据线和第二本地数据线;全局数据线中的数据传输至本地数据线的过程中进行数据翻转,包括:写入模块被配置为将全局数据线中的数据翻转后传输至第一本地数据线,和/或写入模块被配置为将全局
数据线中的数据传输至第二本地数据线。通过设置用于传输差分数据的第一本地数据线和第二本地数据线,保证本地数据线和全局数据线间数据翻转的稳定性。
19.另外,写入模块还包括:包括第一mos管、第二mos管和第三mos管的第一转换电路;第一mos管的栅极接收第三控制信号,源极连接全局数据线,漏极连接第一本地数据线;第二mos管的栅极连接全局数据线,漏极连接第二本地数据线,源极连接第三mos管的漏极;第三mos管的栅极接收第三控制信号,源极接地。
20.另外,写入模块还包括:包括第四mos管、第五mos管和第六mos管的第二转换电路;第四mos管的栅极接收第四控制信号,源极连接全局数据线,漏极连接第二本地数据线,第三控制信号和第四控制信号互为反相信号;第五mos管的栅极连接全局数据线,漏极连接第一本地数据线,源极连接第六mos管的漏极;第六mos管的栅极接收第四控制信号,源极接地。
21.另外,读出模块连接在本地数据线与全局数据线之间,用于根据第二控制信号,控制本地数据线和全局数据线之间的数据传输,若高电平数据所占位数超过第二预设值,则读出模块被配置为将本地数据线中的数据的相反值传输至全局数据线;若高电平数据所占位数不超过第二预设值,则读出模块被配置为将本地数据线中的数据传输至全局数据线。
22.另外,读出模块连接全局数据线与第二校验模块,用于根据第二控制信号,控制全局数据线和第二校验模块之间的数据传输,高电平数据所占位数超过第二预设值,读出模块被配置为将全局数据线中的数据翻转后传输至第二校验模块;高电平数据所占位数不超过第二预设值,读出模块被配置为将全局数据线中的数据传输至第二校验模块。
23.另外,转换模块包括:第一传输元件,一端通过反相器连接第一校验模块,另一端连接全局数据线;第二传输元件,一端连接第一校验模块,另一端连接全局数据线;第一传输元件和第二传输元件还用于接收第一控制信号,用于根据第一控制信号选择导通第一传输元件或第二传输元件。
24.本技术实施例还提供了一种存储器,包括上述控制电路,还包括:存储单元,连接本地数据线,本地数据线用于向存储单元写入数据和读出数据。
25.相比于相关技术而言,通过共用计数模块,根据切换控制信号分时对原始数据、原始ecc校验码和全局数据线中传输的数据的差异数目进行统计,获取第一控制信号,以及对纠正后的数据和纠正后的ecc校验码中高电平数量进行统计,获取第二控制信号,节省了电路面积;同时,新产生的奇偶码与纠正后的ecc校验码一起用于后续对数据在读操作中再次进行错误检测及纠错,且新产生的奇偶码与纠正后的ecc校验码一起能够检测出2位的错误,以增强存储器中检错纠错的能力,进一步提高数据存储的可靠性。
附图说明
26.图1为本技术一实施例提供的一种控制电路的结构示意图;
27.图2为本技术一实施例提供的比较模块和计数模块的结构示意图;
28.图3为本技术一实施例提供的转换模块的电路示意图;
29.图4为本技术一实施例提供的使能控制模块的电路示意图;
30.图5为本技术一实施例提供的第一转换电路的电路示意图;
31.图6为本技术一实施例提供的第二转换电路的电路示意图;
32.图7为本技术一实施例提供的对应于图1的读出模块的电路示意图;
33.图8为本技术一实施例提供的另一种控制电路的结构示意图;
34.图9为本技术一实施例提供的对应于图8的读出模块的电路示意图;
35.图10为本技术一实施例提供的又一种控制电路的结构示意图;
36.图11为本技术一实施例提供的第一写入电路的电路示意图;
37.图12为本技术一实施例提供的第二写入电路的电路示意图;
38.图13为本技术一实施例提供的对应于图10的读出模块的电路示意图;
39.图14为本技术一实施例提供的再一种控制电路的结构示意图;
40.图15为本技术一实施例提供的对应于图14的读出模块的电路示意图;
41.图16和图17为本技术另一实施例提供的存储器的结构示意图。
具体实施方式
42.随着技术的进步,存储器中存储单元的集成度越来越高,存储单元阵列中数据传输线路的长度越来越大。在向存储器的存储单元中存储数据和读出数据的过程中,应用了省电算法在存储单元阵列中的数据传输线路,由于存储单元阵列中数据传输线路的长度越来越大,向存储单元中写入数据和读出数据的耗电量越来越高;另外,申请人发现,dram感测高电平的能力低于感测低电平的能力;同时,向dram的存储单元中存取高电平数据,相比于存取低电平数据的漏电情况更加严重。
43.为解决上述问题,本技术一实施例提供了一种控制电路,用于向存储单元写入数据和读出数据,包括:外部数据线,用于接收原始数据和原始ecc校验码;第一校验模块,连接外部数据线,用于在数据传输发生错误,根据原始ecc校验码进行检错和/或纠错,并输出纠正后的数据和纠正后的ecc校验码,其中,若数据传输未发生错误,则纠正后的数据与原始数据一致,纠正后的ecc校验码与原始ecc校验码一致;比较模块,与外部数据线、全局数据线连接,用于逐位检测外部数据线当前传输的数据与全局数据线当前传输的数据是否相同,并输出每一位的检测结果;计数模块,与比较模块、第一校验模块连接,并接收切换控制信号,在切换控制信号为第一状态,用于对比较模块的输出结果进行统计,输出表征原始数据、原始ecc校验码与全局数据线当前传输的数据的差异位数是否超过第一预设值的第一控制信号;在切换控制信号为第二状态,用于对第一校验模块输出的纠正后的数据和纠正后的ecc校验码中高电平数据进行统计,输出表征高电平数据所占位数是否超过第二预设值的第二控制信号,并输出表征高电平数据数量为奇数或偶数的奇偶码;第二控制信号和奇偶码作为标记位数据存入存储单元中,以在读出数据的过程中,将第二控制信号和奇偶码读出;其中,第一控制信号用于在写操作中控制待写入的数据是否需要翻转、第二控制信号用于在读操作中控制待读出的数据是否需要翻转,奇偶码用于在读操作中对待读出的数据进行检错和/或纠错。
44.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本技术的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本技术各实施例中,为了使读者更好地理解本技术而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本技术所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本技术的具体实现方式构成任何限定,各个实施
例在不矛盾的前提下可以相互结合,相互引用。
45.图1为本实施例提供的一种控制电路的结构示意图,图2为本实施例提供的比较模块和计数模块的结构示意图,图3为本实施例提供的转换模块的电路示意图,图4为本实施例提供的使能控制模块的电路示意图,图5为本实施例提供的第一转换电路的电路示意图,图6为本实施例提供的第二转换电路的电路示意图,图7为本实施例提供的对应于图1的读出模块的电路示意图,图8为本实施例提供的另一种控制电路的结构示意图,图9为本实施例提供的对应于图8的读出模块的电路示意图,图10为实施例提供的又一种控制电路的结构示意图,图11为本实施例提供的第一写入电路的电路示意图,图12为本实施例提供的第二写入电路的电路示意图,图13为本实施例提供的对应于图10的读出模块的电路示意图,图14为本实施例提供的再一种控制电路的结构示意图,图15为本实施例提供的对应于图14的读出模块的电路示意图;以下结合附图对本实施例提供的控制电路作进一步详细说明。
46.参考图1,控制电路100用于向存储单元501中写入数据和读出数据,包括:
47.外部数据线databus,用于接收原始数据和原始ecc校验码。其中,原始数据即待写入存储器的数据,原始ecc校验码为原始数据对应的ecc校验码,用户通过存储器的检错纠错模块时,通过原始ecc校验码对原始数据进行检错纠错。
48.需要说明的是,本实施例中提到的外部数据线databus仅是为了区分与全局数据线yio并非同一传输线路,外部数据线databus中的“外部”是相对于全局数据线yio和存储单元501阵列的外部,并非芯片外部的数据线。
49.第一校验模块105,连接外部数据线databus,用于在数据传输发生错误,根据原始ecc校验码进行检错和/或纠错,并输出纠正后的数据和纠正后的ecc校验码,其中,若数据传输未发生错误,则纠正后的数据与原始数据一致,纠正后的ecc校验码与原始ecc校验码一致。
50.参考图1和图2,比较模块111,与外部数据线databus和全局数据线yio连接,用于逐位检测外部数据线databus当前传输的数据与全局数据线yio当前传输的数据是否相同,并输出每一位的检测结果。
51.具体地,若当前位外部数据线databus传输的数据与当前位全局数据线yio传输的数据不同,则生成第一子控制信号;若当前位外部数据线databus传输的数据与当前位全局数据线yio传输的数据相同,则传输第二子控制信号。生成第一子控制信号和第二子控制信号的方式参考如下表格:
[0052] databus数据yio数据产生第一位01第一子控制信号第二位00第二子控制信号第三位11第二子控制信号第四位10第一子控制信号
[0053]
计数模块112,与比较模块111和第一校验模块105连接,并接收切换控制信号,在切换控制信号为第一状态,用于对比较模块105的输出结果进行统计,输出表征原始数据、原始ecc校验码与全局数据线yio当前传输的数据的差异位数是否超过第一预设值的第一控制信号flag;第一控制信号flag用于在写操作中控制待写入的数据是否需要翻转。
[0054]
需要注意的是,切换控制信号可以为存储器的片外控制芯片(如处理器等)所发出
的控制信号,也可以是存储器内部产生的控制信号,切换控制信号的第一状态在一些实施例中是高电平状态,在其他一些实施例中也可以是低电平状态。
[0055]
具体地,在切换控制信号为第一状态时,计数模块112用于获取第一子控制信号和第二子控制信号,若第一子控制信号个数超过第一预设值,则生成第一控制信号,第一预设值为第一子控制信号的数量与第二子控制信号的数量和的预设百分比。生成第一控制信号flag方式参考如下表格(以第一子控制信号和第二子控制信号的数量和为40为例,仅为示意):
[0056]
预设百分比第一子控制信号数量第二子控制信号数量第一控制信号flag401822150231716022180
[0057]
需要说明的是,在本示例中,预设百分比为50%,通过设置预设百分比为50%,保证原始数据、原始ecc校验码和全局数据线yio当前传输的数据的差异位数大于相同位数时产生第一控制信号flag,将原始数据、原始ecc校验码翻转后传入全局数据线yio,从而减少全局数据线yio中的数据翻转次数,节省数据传输时的能耗。
[0058]
继续参考图1,控制电路100,包括:数据缓冲模块106,与第一校验模块105和计数模块112连接,用于根据第一控制信号flag,将纠正后的数据和纠正后的ecc校验码传输至全局数据线yio或将纠正后的数据和纠正后的ecc校验码进行翻转后传输至全局数据线yio。
[0059]
需要说明的是,第一检错模块105对原始数据和原始ecc校验码的检错纠错需要经过第一时间延迟,比较模块111和计数模块对原始数据、原始ecc校验码与全局数据线yio中的数据进行比较需要经过第二时间延迟;其中,检错纠错和数据比较可以同时执行,在具体应用中可以通过控制第一时间延迟和第二时间延迟相等,避免延长存储器的数据写入时间,即本技术提到的第一控制信号flag的获取,不会延长存储器的数据写入时间。
[0060]
具体地,数据缓冲模块106,包括:
[0061]
转换模块101,用于根据第一控制信号flag,控制纠正后的数据和纠正后的ecc校验码传输至全局数据线yio时是否需要翻转。
[0062]
对于转换模块101,若纠正后的数据和纠正后的ecc校验码与全局数据线yio当前传输的数据的差异位数超过第一预设值,则转换模块101被配置为将纠正后的数据和纠正后的ecc校验码翻转后传输至全局数据线yio;若纠正后的数据和纠正后的ecc校验码与全局数据线yio当前传输的数据的差异位数不超过第一预设值,则转换模块101被配置为将纠正后的数据和纠正后的ecc校验码传输至全局数据线yio。
[0063]
在一个例子中,参考图3,转换模块101包括:第三传输元件303,一端通过反相器连接第一校验模块105,另一端连接全局数据线yio;第四传输元件304,一端连接第一检验模块105,另一端连接全局数据线yio;其中,第三传输元件303和第四传输元件304还用于接收第一控制信号flag,用于根据第一控制信号flag选择导通第三传输元件303或第四传输元件304。
[0064]
本实施例以低电平控制第三传输元件303和第四传输元件304导通为例进行说明,具体如下:
[0065]
当第一控制信号flag为“1”时,第三传输元件303导通所在信号传输线,此时第一校验模块105通过反相器连接全局数据线yio,从而实现将纠正后的数据和纠正后的ecc校验码翻转后传入全局数据线yio;第四传输元件304关断所在信号传输线。当控制信号flag为“0”时,第三传输元件303关断所在信号传输线,第四传输元件304导通所在信号传输线,此时第一校验模块105直接连接全局数据线yio,从而实现将纠正后的数据和纠正后的ecc校验码直接传入全局数据线yio。
[0066]
需要说明的是,在其他实施例中,同样可以采用不同控制方法来控制第三传输元件和第四传输元件导通,只要纠正后的数据和纠正后的ecc校验码与全局数据线yio当前传输的数据的差异位数超过第一预设值时,将纠正后的数据和纠正后的ecc校验码翻转后传入全局数据线yio;纠正后的数据和纠正后的ecc校验码与全局数据线yio当前传输的数据的差异位数未超过第一预设值时,将纠正后的数据和纠正后的ecc校验码直接传入全局数据线yio。
[0067]
继续参考图1和图2,对于计数模块112,在切换控制信号为第二状态,用于对第一校验模块105输出的纠正后的数据和纠正后的ecc校验码中高电平数据进行统计,输出表征高电平数据所占位数是否超过第二预设值的第二控制信号1“more”,第二控制信号1“more”用于在读操作中控制待读出的数据是否需要翻转。生成第二控制信号1“more”方式参考如下表格(纠正后的数据和纠正后的ecc校验码构成待统计数据,以第二预设值为待统计数据的位数的50%为例说明):
[0068]
待统计中高电平数量待统计中低电平数量第二控制信号1“more”2218119210
[0069]
需要注意的是,切换控制信号的第二状态在一些实施例中是低电平状态,在其他一些实施例中也可以是高电平状态。
[0070]
需要说明的是,在其他实施例中,同样可以配置当纠正后的数据和纠正后的ecc校验码中高电平数据数量大于纠正后的数据和纠正后的ecc校验码中低电平数据数量,第二控制信号1“more”为0;当纠正后的数据和纠正后的ecc校验码中高电平数据数量小于纠正后的数据和纠正后的ecc校验码中低电平数据数量,第二控制信号1“more”为1。
[0071]
另外,第二控制信号1“more”作为标记位数据存入存储单元501中,以在读出数据的过程中,将第二控制信号1“more”读出。
[0072]
需要说明的是,在本示例中,第二预设值为50%,通过设置第二预设值为50%,保证将纠正后的数据和纠正后的ecc校验码存入存储单元501时,存入低电平的数据量不小于存入高电平的数据量,从而提高纠正后的数据和纠正后的ecc校验码存储和读出的可靠性。
[0073]
继续参考图1和图2,在切换控制信号为第二状态,计数模块112输出表征高电平数据位数量为奇数或偶数的奇偶码o/e,奇偶码o/e用于在读操作中对待读出的数据进行检错和/或纠错。
[0074]
另外,奇偶码o/e作为标记位数据存入存储单元501中,以在读出数据的过程中,将奇偶码o/e读出。
[0075]
奇偶码o/e目的是为了后续在读操作时能够增强存储器的检错纠错功能;对于128位数据来说,8位校验码只能检测1位错误,且纠正1位错误。加上奇偶码o/e后,可以检测2位
错误,纠正1位错误。
[0076]
具体地,如果读出后的纠正后的数据和纠正后的ecc校验码的奇偶情况与奇偶码o/e一致,通过纠正后的ecc校验码发现错误,代表发生了2位错误,无法再进行修复;通过纠正后的ecc校验码未发现错误,代表所有数据未发生错误;如果读出后的纠正后的数据和纠正后的ecc校验码的奇偶情况与奇偶码o/e不一致,通过纠正后的ecc校验码发现错误,代表发生了1位错误,可修复;通过纠正后的ecc校验码未发现错误,则代表奇偶码o/e发生了错误(这里假设最多只发生2位错误)。
[0077]
继续参考图1,控制电路100,还包括:写入模块103,连接在本地数据线lio和全局数据线yio之间,控制全局数据线yio中的数据传输至本地数据线lio,且基于第三控制信号wren,判断全局数据线yio中的数据传输至本地数据线lio的过程中是否进行数据翻转,其中,第三控制信号wren用于表征第一控制信号flag的值和第二控制信号1“more”的值是否相同。具体地,第三控制信号wren用于控制存入低电平的数据数量不小于存入高电平的数据数量。
[0078]
本实施例以第一控制信号flag为1时,表征纠正后的数据和纠正后的ecc校验码在传输至全局数据线yio时需要进行数据翻转;第二控制信号1“more”为1时,表征纠正后的数据和纠正后的ecc校验码在最终读出时需要进行数据翻转;此时,在数据传输至全局数据线yio时已做翻转,则数据最终读出时无需再做翻转,即第三控制信号wren为1时,表征数据无需翻转。相应地,当第一控制信号flag为1时,表征纠正后的数据和纠正后的ecc校验码在传输至全局数据线yio时需要进行数据翻转;第二控制信号1“more”为0时,表征数据在最终读出时不需要进行数据翻转;此时,数据在传输至全局数据线yio时已做翻转,则数据最终读出时需要再翻转回来,即第三控制信号wren为0时,表征数据需翻转。第三控制信号wren的配置参考如下表格:
[0079]
第一控制信号flag第二控制信号1“more”第三控制信号wren翻转翻转不翻转翻转不翻转翻转不翻转翻转翻转不翻转不翻转不翻转
[0080]
需要说明的是,当第一控制信号flag和第二控制信号1“more”的设置方式发生改变时,第三控制信号wren的设置方式需适应于第一控制信号flag和第二控制信号1“more”的设置方式改变,以保证最终存入存储单元501的低电平的数据数量不小于存入存储单元501的高电平的数据数量。
[0081]
继续参考图1,第一写入模块103包括:使能控制模块133,用于根据第一控制信号flag和第二控制信号1“more”生成第三控制信号wren。
[0082]
另外,在本实施例中,使能控制模块133还用于接收写使能信号writeenable(参考图4),若写使能信号writeenable为有效电平,则输出用于表征第一控制信号和第二控制信号是否相同的第三控制信号wren。
[0083]
在一个例子中,参考图4,第一控制信号flag和第二控制信号1“more”通过一个异或门xor连接,异或门xor的输出端与写使能信号writeenable的反相信号writeenable-连接在同一个或非门上。
[0084]
在本示例中,使能控制模块133还用于接收第一控制信号flag、第二控制信号1“more”和写使能信号的反相信号writeenable-,写使能信号writeenable为有效电平,则产生第四控制信号wren-,第三控制信号wren和第四控制信号wren-互为反相信号。
[0085]
具体地,第一控制信号flag和第二控制信号1“more”通过一个异或门xor连接,异或门xor的输出端连接一反相器,且与写使能信号writeenable的反相信号writeenable-连接在同一个或非门上。
[0086]
对于上述第三控制信号wren和第四控制信号wren-的生成电路,当写使能信号writeenable为0时,写使能信号的反相信号writeenable-为1,此时第三控制信号wren和第四控制信号wren-一定都为0,存储器无法执行写入操作,说明此时存储器并不处于写操作阶段;当写使能信号writeenable为1时,写使能信号的反相信号writeenable-为0,此时该电路的功能如下:
[0087]
若第一控制信号flag为1,第二控制信号1“more”为1,由于异或门xor的工作原理为“相同为0,不同为1”,此时异或门xor的输出信号为0,此时,生成的第三控制信号wren为1,第四控制信号wren-为0。
[0088]
若第一控制信号flag为1,第二控制信号1“more”为0,由于异或门xor的工作原理为“相同为0,不同为1”,此时异或门xor的输出信号为1,此时,生成的第三控制信号wren为0,第四控制信号wren-为1。
[0089]
若第一控制信号flag为0,第二控制信号1“more”为1,由于异或门xor的工作原理为“相同为0,不同为1”,此时异或门xor的输出信号为1,此时,生成的第三控制信号wren为0,第四控制信号wren-为1。
[0090]
若第一控制信号flag为0,第二控制信号1“more”为0,由于异或门xor的工作原理为“相同为0,不同为1”,此时异或门xor的输出信号为0,此时,生成的第三控制信号wren为1,第四控制信号wren-为0。
[0091]
继续参考图1,在本实施例中,本地数据线lio包括互为差分数据传输线的第一本地数据线lio1和第二本地数据线lio2;通过设置用于传输差分数据的第一本地数据线lio1和第二本地数据线lio2,保证本地数据线lio和全局数据线yio间数据翻转的稳定性。
[0092]
全局数据线yio中的数据传输至本地数据线lio的过程中进行数据翻转,包括:写入模块103被配置为将全局数据线yio中的数据翻转后传输至第一本地数据线lio1,和/或写入模块103被配置为将全局数据线yio中的数据传输至第二本地数据线lio2。
[0093]
具体地,写入模块103包括:第一转换电路113和第二转换电路123。
[0094]
第一转换电路113被配置为,控制全局数据线yio中的数据传输至第一本地数据线lio1,和/或控制全局数据线yio中的数据的相反值传输至第二本地数据线lio2。
[0095]
在一个例子中,参考图5,第一转换电路113包括:第一mos管401、第二mos管402和第三mos管403。
[0096]
其中,第一mos管401的栅极接收第三控制信号wren,源极连接全局数据线yio,漏极连接第一本地数据线lio1;第二mos管402的栅极连接全局数据线yio,漏极连接第二本地数据线lio2,源极连接第三mos管403的漏极;第三mos管403的栅极接收第三控制信号wren,源极接地gnd(未图示)。
[0097]
需要说明的是,第一mos管401、第二mos管402和第三mos管403中所称的“源极”或“漏极”只是用于区分mos管的端口,并不做任何限定,即源极和漏极的概念可以互换。
[0098]
第二转换电路123被配置为,控制全局数据线yio中的数据传输至第二本地数据线lio2,和/或控制全局数据线yio中的数据的相反值传输至第一本地数据线lio1。
[0099]
在一个例子中,参考图6,第二转换电路123包括:第四mos管404、第五mos管405和第六mos管406。
[0100]
第四mos管404的栅极接收第四控制信号wren-,源极连接全局数据线yio,漏极连接第二本地数据线lio2;第五mos管405的栅极连接全局数据线yio,漏极连接第一本地数据线lio1,源极连接第六mos管406的漏极;第六mos管406的栅极接收第四控制信号wren-,源极接地(未图示)。
[0101]
需要说明的是,第四mos管404、第五mos管405和第六mos管406中所称的“源极”或“漏极”只是用于区分mos管的端口,并不做任何限定,即源极和漏极的概念可以互换。
[0102]
对于第一转换电路113和第二转换电路123,其工作原理如下:
[0103]
当第三控制信号wren为1时,第四控制信号wren为0,此时全局数据线yio和第一本地数据线lio1、第二本地数据线lio2之间的数据传输通过第一转换电路113调控。具体地,当yio为1时,此时第一mos管401、第二mos管402和第三mos管403的栅极都导通,全局数据线yio和第一本地数据线lio1通过第一mos管401相连,第一本地数据线lio1同全局数据线yio为1;第二本地数据线lio2通过第二mos管402和第三mos管403接地,即第二本地数据线lio2为0;当yio为0时,全局数据线yio和第一本地数据线lio1通过第一mos管401相连,第一本地数据线lio1同全局数据线yio为0;由于全局数据线yio为0,第二mos管402的源漏不导通,第二本地数据线lio2并未接地,由于预充电的影响(即在写入之前lio1和lio2均会被预充到高电平),第二本地数据线lio2为1。
[0104]
当第三控制信号wren为0时,第四控制信号wren为1,此时全局数据线yio和第一本地数据线lio1、第二本地数据线lio2之间的数据传输通过第二转换电路123调控。具体地,当yio为1时,此时第四mos管404、第五mos管405和第六mos管406的栅极都导通,全局数据线yio和第二本地数据线lio2通过第四mos管404相连,第二本地数据线lio2同全局数据线yio为1;第一本地数据线lio1通过第五mos管405和第六mos管406接地,即第一本地数据线lio1为0;当yio为0时,全局数据线yio和第二本地数据线lio2通过第四mos管404相连,第二本地数据线lio2同全局数据线yio为0;由于全局数据线yio为0,第五mos管405的源漏不导通,第一本地数据线lio1并未接地,由于预充电的影响(即在写入之前lio1和lio2均会被预充到高电平),第一本地数据线lio1为1。
[0105]
继续参考图1,控制电路100,还包括:
[0106]
阵列区读取单元502,用于在读操作中将存储单元501中的纠正后的数据、纠正后的ecc校验码、第二控制信号1“more”和奇偶码o/e读出至本地数据线lio上,或在读操作中将存储单元501中的纠正后的数据的相反值、纠正后的ecc校验码的相反值、第二控制信号1“more”和奇偶码o/e读出至本地数据线lio上。
[0107]
第二校验模块108,用于根据纠正后的ecc校验码和奇偶码o/e判断纠正后的数据在存储器件是否发生错误,和/或对发生错误的纠正后的数据再次纠错。
[0108]
读出模块102,用于根据读出的第二控制信号1“more”,控制本地数据线lio上的数据向后传输时是否需要翻转;若高电平数据所占位数超过第二预设值,则读出模块102被配
置为将本地数据线lio上的数据翻转后最终传输至第二校验模块108;若高电平数据所占位数不超过第二预设值,读出模块102被配置为将本地数据线lio上的数据最终传输至第二校验模块108;需要说明的是,在本实施例中,本地数据线lio上的数据包括纠正后的数据和纠正后的ecc校验码,或纠正后的数据的相反值和纠正后的ecc校验码的相反值。
[0109]
需要说明的是,在本实施例中,读出模块102与检错模块108之间还包括数据缓冲模块106(附图中未给出),由于数据读出时的数据缓冲并不涉及本技术的核心方案,因此不做赘述,本领域技术人员理解存储器在将数据读出时,需要数据同样需要经过数据缓冲模块106。
[0110]
在一个例子中,参考图1,在本实施例中,读出模块102连接在本地数据线lio和全局数据线yio之间,用于根据第二控制信号1“more”控制本地数据线lio和全局数据线yio之间的数据传输。
[0111]
若高电平数据所占位数超过第二预设值,则读出模块102被配置为将本地数据线lio中的数据翻转后传输至全局数据线yio;若高电平数据所占位数不超过第二预设值,读出模块102被配置为将本地数据线lio中的数据传输至全局数据线yio。
[0112]
具体地,本地数据线lio包括互为差分数据传输线的第一本地数据线lio1和第二本地数据线lio2;通过设置用于传输差分数据的第一本地数据线lio1和第二本地数据线lio2,保证本地数据线lio和全局数据线yio间数据翻转的稳定性。
[0113]
将第一本地数据线lio1中的数据翻转后传输至全局数据线yio,包括:读出模块102被配置为将第一本地数据线lio1中的数据的相反值传输至全局数据线yio,和/或读出模块102被配置为将第二本地数据线lio2中的数据传输至全局数据线yio。
[0114]
参考图7,读出模块102包括:第七mos管407、第八mos管408、第九mos管409、第十mos管410和第十一mos管411。
[0115]
其中,第七mos管407的栅极连接第一本地数据线lio1,漏极连接全局数据线yio,源极连接第九mos管409的漏极;第八mos管408的栅极连接第二本地数据线lio2,漏极连接全局数据线yio,源极连接第十mos管410的漏极;第九mos管409的栅极接收第二控制信号1“more”,源极连接第十一mos管411的漏极;第十mos管410的栅极接收第五控制信号1“more
”‑
,源极连接第十一mos管411的漏极,第二控制信号1“more”和第五控制信号1“more
”‑
互为反相信号;第十一mos管411的栅极接收读使能信号readenable,源极接地gnd(未图示)。
[0116]
对于上述转换电路,当读使能信号readenable是0时,存储器无法执行读取操作,表示此时存储器并不处于读取操作阶段;当读使能信号readenable是1,其工作原理如下:
[0117]
当第二控制信号1“more”为1时,第五控制信号1“more
”‑
为0,相当于仅导通左侧电路,表征将第一本地数据线lio1中的数据的相反值传输至全局数据线yio。当第一本地数据线lio1为1时,导通第七mos管407,此时全局数据线yio接地,全局数据线yio为0,实现将第一本地数据线lio1中的数据的相反值传输至全局数据线yio;当第一本地数据线lio1为0时,关断第七mos管407,此时由于预充电的影响(即在读出之前yio会被预充到高电平),全局数据线yio为1,实现将第一本地数据线lio1中的数据的相反值传输至全局数据线yio。
[0118]
当第二控制信号1“more”为0时,第五控制信号1“more
”‑
为1,相当于仅导通左侧电路,表征将第二本地数据线lio2中的数据的相反值传输至全局数据线yio。当第二本地数据
线lio2为1时,导通第九mos管409,此时全局数据线yio接地,全局数据线yio为0,实现将第二本地数据线lio2中的数据的相反值传输至全局数据线yio;当第二本地数据线lio2为0时,关断第九mos管409,此时由于预充电的影响(即在读出之前yio会被预充到高电平),全局数据线yio为1,实现将第二本地数据线lio2中的数据的相反值传输至全局数据线yio。
[0119]
需要说明的是,第七mos管407、第八mos管408、第九mos管409、第十mos管410和第十一mos管411中所称的“源极”或“漏极”只是用于区分mos管的端口,并不做任何限定,即源极和漏极的概念可以互换。
[0120]
在另一个例子中,参考图8,在本实施例中,读出模块102连接全局数据线yio和第二校验模块108,用于根据第二控制信号1“more”控制全局数据线yio和第二校验模块108之间的数据传输。
[0121]
具体地,若高电平数据所占位数超过第二预设值,则读出模块102被配置为将全局数据线yio中的数据翻转后传输至第二校验模块108;若高电平数据所占位数不超过第二预设值,则读出模块102被配置为将全局数据线yio中的数据传输至第二校验模块108。
[0122]
更具体地,参考图9,本实施例以低电平控制第一传输元件301和第二传输元件302导通为例进行说明,具体如下:当第二控制信号1“more”为1时,第一传输元件导通所在信号传输线,此时全局数据线yio通过反相器连接第二校验模块108,从而实现全局数据线yio将传输的数据翻转后传入第二校验模块108;第二传输元件302关断所在信号传输线。当第二控制信号1“more”为0时,第一传输元件301关断所在信号传输线,第二传输元件302导通所在信号传输线,此时全局数据线yio直接连接第二校验模块108,从而实现全局数据线yio将传输的数据直接传入第二校验模块108。
[0123]
另外,参考图10和图14,全局数据线yio包括互为差分数据传输线的第一全局数据线yio1和第二全局数据线yio2,通过设置用于传输差分数据的第一全局数据线yio1和第二全局数据线yio2,保证第一本地数据线lio1、第二本地数据线lio2和第一全局数据线yio1、第二全局数据线yio2间数据翻转的稳定性。
[0124]
在一个例子中,第一校验模块105与第二全局数据线yio2也同样设置有与转换模块101类似的数据转换电路,其控制过程与转换模块101相反,即,控制在第一控制信号flag为“1”时导通将纠正后的数据和纠正后的ecc校验码直接传输至第二全局数据线yio2,在第一控制信号flag为“0”时导通将纠正后的数据和纠正后的ecc校验码通过反相器传输至第二全局数据线yio2。
[0125]
在一些实施例中,第一全局数据线yio1和第二全局数据线yio2之间可以设置有放大电路,以实现第一全局数据线yio1和第二全局数据线yio2传输互为反相的信号。
[0126]
此时,第一写入模块103包括:使能控制模块113、第一写入电路213和第二写入电路223
[0127]
第一写入电路213被配置为,控制第一全局数据线yio1中的数据传输至第一本地数据线lio1,或将第二全局数据线yio2中的数据传输至第一本地数据线lio1。
[0128]
在一个例子中,参考图11,第一写入电路213,包括:第1mos管601和第2mos管602。
[0129]
其中,第1mos管601的栅极接收第三控制信号wren,源极连接第一全局数据线yio1,漏极连接第一本地数据线lio1;第2mos管602的栅极接收第三控制信号wren,源极连接第二全局数据线yio2,漏极连接第一本地数据线lio1。
[0130]
需要说明的是,第1mos管601和第2mos管602中所称的“源极”或“漏极”只是用于区分mos管的端口,并不做任何限定,即源极和漏极的概念可以互换。
[0131]
第二写入电路223被配置为,控制第一全局数据线yio1中的数据传输至第二本地数据线lio2,或将第二全局数据线yio2中的数据传输至第二本地数据线lio2。
[0132]
在一个例子中,参考图12,第二写入电路223,包括:第3mos管603和第4mos管604。
[0133]
其中,第3mos管603的栅极接收第四控制信号wren-,源极连接第一全局数据线yio1,漏极连接第二本地数据线lio2,第三控制信号wren和第四控制信号wren-互为反相信号;第4mos管604的栅极接收第三控制信号wren-,源极连接第二全局数据线yio2,漏极连接第二本地数据线lio2。
[0134]
需要说明的是,第3mos管603和第4mos管604中所称的“源极”或“漏极”只是用于区分mos管的端口,并不做任何限定,即源极和漏极的概念可以互换。
[0135]
对于第一写入电路213和第二写入电路223,其工作原理如下:
[0136]
当第三控制信号wren为1,第四控制信号wren-为0,此时第一全局数据线yio1、第二全局数据线yio2和第一本地数据线lio1、第二本地数据线lio2之间的数据传输通过第一写入电路213和第二写入电路223调控。具体地,当yio1为1时,此时第1mos管601和第4mos管604的栅极导通,第一全局数据线yio1和第一本地数据线lio1通过第1mos管601相连,第一本地数据线lio1同第一全局数据线yio1为1;第二全局数据线yio2和第二本地数据线lio2通过第4mos管604相连,第二本地数据线lio2同第二全局数据线yio2为0。当yio1为0时,此时第1mos管601和第4mos管604的栅极导通,第一全局数据线yio1和第一本地数据线lio1通过第1mos管601相连,第一本地数据线lio1同第一全局数据线yio1为0;第二全局数据线yio2和第二本地数据线lio2通过第4mos管604相连,第二本地数据线lio2同第二全局数据线yio2为1。
[0137]
当第三控制信号wren为0,第四控制信号wren-为1,此时第一全局数据线yio1、第二全局数据线yio2和第一本地数据线lio1、第二本地数据线lio2之间的数据传输通过第一写入电路213和第二写入电路223调控。具体地,当yio1为1时,此时第2mos管602和第3mos管603的栅极导通,第二全局数据线yio2和第一本地数据线lio1通过第2mos管602相连,第一本地数据线lio1同第二全局数据线yio2为0;第一全局数据线yio1和第二本地数据线lio2通过第3mos管603相连,第二本地数据线lio2同第一全局数据线yio1为1。当yio1为0时,此时第2mos管602和第3mos管603的栅极导通,第二全局数据线yio2和第一本地数据线lio1通过第2mos管602相连,第一本地数据线lio1同第二全局数据线yio2为1;第一全局数据线yio1和第二本地数据线lio2通过第3mos管603相连,第二本地数据线lio2同第一全局数据线yio1为0。
[0138]
在一个例子中,参考图10,读出模块102连接在第一本地数据线lio1、第二本地数据线lio2、第一全局数据线yio1和第二全局数据线yio2之间,用于根据第二控制信号1“more”控制第一本地数据线lio1、第二本地数据线lio2与第一全局数据线yio1、第二全局数据线yio2之间的数据传输。
[0139]
具体地,若高电平数据所占位数超过第二预设值,则读出模块102被配置为将第一本地数据线lio1中的数据的相反值传输至第一全局数据线yio1,和/或将第二本地数据线lio2中的数据的相反值传输至第二全局数据线yio2;若高电平数据所占位数不超过第二预
设值,则读出模块102被配置为将第一本地数据线lio1中的数据的相反值传输至第二全局数据线yio2,和/或将第二本地数据线lio2中的数据的相反值传输至第一全局数据线yio1。
[0140]
更具体地,参考图13,读出模块102包括:第5mos管605、第6mos管606、第7mos管607、第8mos管608、第9mos管609、第10mos管610、第11mos管611、第12mos管612、第13mos管613和第14mos管614。
[0141]
其中,第13mos管613的栅极连接第一本地数据线lio1,漏极连接第二全局数据线yio2,源极连接第7mos管607的漏极;第5mos管605的栅极连接第二本地数据线lio2,漏极连接第二全局数据线yio2,源极连接第8mos管608的漏极;第7mos管607的栅极连接第五控制信号1“more
”‑
,源极连接第11mos管611的漏极,第二控制信号1“more”和第五控制信号1“more
”‑
互为反相信号;第8mos管608的栅极连接第二控制信号1“more”,源极连接第11mos管611的漏极;第11mos管611的栅极接收读使能信号readenable,源极接地gnd(未图示);第14mos管614的栅极连接第二本地数据线lio2,漏极连接第一全局数据线yio1,源极连接第9mos管609的漏极;第6mos管606的栅极连接第一本地数据线lio1,漏极连接第一全局数据线yio1,源极连接第10mos管610的漏极;第9mos管609的栅极连接第五控制信号1“more
”‑
,源极连接第12mos管612的漏极;第10mos管610的栅极连接第二控制信号1“more”,源极连接第12mos管612的漏极;第12mos管612的栅极接收读使能信号readenable,源极接地gnd(未图示)。
[0142]
对于上述转换电路,当读使能信号readenable是0时,存储器无法执行读取操作,表示此时存储器并不处于读取操作阶段;当读使能信号readenable是1,其工作原理如下:
[0143]
当第二控制信号1“more”为1时,第五控制信号1“more
”‑
为0,相当于仅导通中间电路,表征将第一本地数据线lio1中的数据的相反值传输至第一全局数据线yio1,并将第二本地数据线lio2中的数据的相反值传输至第二全局数据线yio2。当第一本地数据线lio1为1时,导通第6mos管606,此时第一全局数据线yio1接地,第一全局数据线yio1为0,实现将第一本地数据线lio1中的数据的相反值传输至第一全局数据线yio1;当第二本地数据线lio2为1时,导通第5mos管605,此时第二全局数据线yio2接地,第二全局数据线yio2为0,实现将第二本地数据线lio2中的数据的相反值传输至第二全局数据线yio2。
[0144]
当第二控制信号1“more”为0时,第五控制信号1“more
”‑
为1,相当于仅导通边缘电路,表征将第一本地数据线lio1中的数据的相反值传输至第二全局数据线yio2,并将第二本地数据线lio2中的数据的相反值传输至第一全局数据线yio1。当第一本地数据线lio1为1时,导通第13mos管613,此时第二全局数据线yio2接地,第二全局数据线yio2为0,实现将第一本地数据线lio1中的数据的相反值传输至第二全局数据线yio2;当第二本地数据线lio2为1时,导通第14mos管614,此时第一全局数据线yio1接地,第一全局数据线yio1为0,实现将第二本地数据线lio2中的数据的相反值传输至第一全局数据线yio1。
[0145]
需要说明的是,第5mos管605、第6mos管606、第7mos管607、第8mos管608、第9mos管609、第10mos管610、第11mos管611、第12mos管612、第13mos管613和第14mos管614中所称的“源极”或“漏极”只是用于区分mos管的端口,并不做任何限定,即源极和漏极的概念可以互换。
[0146]
在另一个例子中,参考图14,读出模块102连接第一全局数据线yio1、第二全局数据线yio2和检错模块108,用于根据第二控制信号1“more”,控制第一全局数据线yio1、第二
全局数据线yio2和第二校验模块108之间的数据传输。
[0147]
具体地,参考图15,读出模块102包括:第一传输元件301,一端连接第二全局数据线yio2,另一端连接第二校验模块108;第二传输元件302,一端连接第一全局数据线yio1,另一端连接第二校验模块108;第一传输元件301和第二传输元件302还用于接收第二控制信号1“more”,用于根据第二控制信号1“more”导通第一传输元件301或第二传输元件302。
[0148]
本实施例以低电平控制第一传输元件301和第二传输元件302导通为例进行说明,具体如下:当第二控制信号1“more”为1时,第一传输元件导通所在信号传输线,此时第二全局数据线yio2连接第二校验模块108,从而实现第二全局数据线yio2将传输的数据传入第二校验模块108;第二传输元件302关断所在信号传输线。当第二控制信号1“more”为0时,第一传输元件301关断所在信号传输线,第二传输元件302导通所在信号传输线,此时第一全局数据线yio1连接第二校验模块108,从而实现第一全局数据线yio1将传输的数据传入第二校验模块108。
[0149]
与相关技术相比,通过共用计数模块,根据切换控制信号分时对原始数据、原始ecc校验码和全局数据线中传输的数据的差异数目进行统计,获取第一控制信号,以及对纠正后的数据和纠正后的ecc校验码中高电平数量进行统计,获取第二控制信号,节省了电路面积;同时,新产生的奇偶码与纠正后的ecc校验码一起用于后续对数据在读操作中再次进行错误检测及纠错,且新产生的奇偶码与纠正后的ecc校验码一起能够检测出2位的错误,以增强存储器中检错纠错的能力,进一步提高数据存储的可靠性。
[0150]
值得一提的是,本实施例中所涉及到的各单元均为逻辑单元,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本技术的创新部分,本实施例中并没有将与解决本技术所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。
[0151]
本技术又一实施例涉及一种存储器,包括上述实施例提供的控制电路,还包括:存储单元,连接本地数据线,本地数据线用于向存储单元写入数据和读出数据。
[0152]
图16和图17为本实施例提供的存储器的结构示意图;以下结合附图对本实施例提供的存储器作进一步详细说明,与上述实施例相同的部分,本实施例不再赘述。
[0153]
外部数据线databus,用于接收原始数据和原始ecc校验码。
[0154]
第一校验模块105,连接外部数据线databus,用于在数据传输发生错误,根据原始ecc校验码进行检错和/或纠错,并输出纠正后的数据和纠正后的ecc校验码,其中,若数据传输未发生错误,则纠正后的数据与原始数据一致,纠正后的ecc校验码与原始ecc校验码一致。
[0155]
比较模块111,与外部数据线databus和全局数据线yio连接,用于逐位检测外部数据线databus当前传输的数据与全局数据线yio当前传输的数据是否相同,并输出每一位的检测结果。
[0156]
计数模块112,与比较模块111和第一校验模块105连接,并接收切换控制信号,在切换控制信号为第一状态,用于对比较模块105的输出结果进行统计,输出表征原始数据、原始ecc校验码与全局数据线yio当前传输的数据的差异位数是否超过第一预设值的第一控制信号flag;第一控制信号flag用于在写操作中控制待写入的数据是否需要翻转。
[0157]
对于计数模块112,在切换控制信号为第二状态,用于对第一校验模块105输出的
纠正后的数据和纠正后的ecc校验码中高电平数据进行统计,输出表征高电平数据所占位数是否超过第二预设值的第二控制信号1“more”,第二控制信号1“more”用于在读操作中控制待读出的数据是否需要翻转。
[0158]
在切换控制信号为第二状态,计数模块112输出表征高电平数据位数量为奇数或偶数的奇偶码o/e,奇偶码o/e用于在读操作中对待读出的数据进行检错和/或纠错。
[0159]
数据缓冲模块106,与第一校验模块105和计数模块112连接,用于根据第一控制信号flag,将纠正后的数据和纠正后的ecc校验码传输至全局数据线yio或将纠正后的数据和纠正后的ecc校验码进行翻转后传输至全局数据线yio。
[0160]
写入模块103,连接在本地数据线lio和全局数据线yio之间,控制全局数据线yio中的数据传输至本地数据线lio,且基于第三控制信号wren,判断全局数据线yio中的数据传输至本地数据线lio的过程中是否进行数据翻转,其中,第三控制信号wren用于表征第一控制信号flag的值和第二控制信号1“more”的值是否相同。具体地,第三控制信号wren用于控制存入低电平的数据数量不小于存入高电平的数据数量。
[0161]
阵列区读取单元502,用于在读操作中将存储单元501中的纠正后的数据、纠正后的ecc校验码、第二控制信号1“more”和奇偶码o/e读出至本地数据线lio上。
[0162]
第二校验模块108,用于根据纠正后的ecc校验码判断纠正后的数据在存储器件是否发生错误,和/或对发生错误的纠正后的数据再次纠错。
[0163]
读出模块102,用于根据读出的第二控制信号1“more”,控制本地数据线lio的纠正后的数据和纠正后的ecc校验码向后传输时是否需要翻转;若高电平数据所占位数超过第二预设值,则读出模块102被配置为将纠正后的数据和纠正后的ecc校验码翻转后最终传输至第二校验模块108;若高电平数据所占位数不超过第二预设值,读出模块102被配置为将纠正后的数据和纠正后的ecc校验码最终传输至第二校验模块108。
[0164]
在一个例子中,参考图16,读出模块102连接在本地数据线lio和全局数据线yio之间,用于根据第二控制信号1“more”控制本地数据线lio和全局数据线yio之间的数据传输。若高电平数据所占位数超过第二预设值,则读出模块102被配置为将本地数据线lio中的数据翻转后传输至全局数据线yio;若高电平数据所占位数不超过第二预设值,读出模块102被配置为将本地数据线lio中的数据传输至全局数据线yio。
[0165]
在另一例子中,参考图17,读出模块102连接全局数据线yio和第二校验模块108,用于根据第二控制信号1“more”控制全局数据线yio和第二校验模块108之间的数据传输。具体地,若高电平数据所占位数超过第二预设值,则读出模块102被配置为将全局数据线yio中的数据翻转后传输至第二校验模块108;若高电平数据所占位数不超过第二预设值,则读出模块102被配置为将全局数据线yio中的数据传输至第二校验模块108。
[0166]
需要说明的是,在本实施例中,本地数据线lio连接存储单元501包括:直接连接和间接连接。在本实施例中,本地数据线lio与存储单元501并非直接连接,实际是存储单元501连接至位线bitline,位线通过列选择连接至本地数据线lio。
[0167]
相比于相关技术而言,通过共用计数模块,根据切换控制信号分时对原始数据、原始ecc校验码和全局数据线中传输的数据的差异数目进行统计,获取第一控制信号,以及对纠正后的数据和纠正后的ecc校验码中高电平数量进行统计,获取第二控制信号,节省了电路面积;同时,新产生的奇偶码与纠正后的ecc校验码一起用于后续对数据在读操作中再次
进行错误检测及纠错,且新产生的奇偶码与纠正后的ecc校验码一起能够检测出2位的错误,以增强存储器中检错纠错的能力,进一步提高数据存储的可靠性。
[0168]
值得一提的是,本实施例中所涉及到的各单元均为逻辑单元,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本技术的创新部分,本实施例中并没有将与解决本技术所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。
[0169]
由于上述实施例与本实施例相互对应,因此本实施例可与上述实施例互相配合实施。上述实施例中提到的相关技术细节在本实施例中依然有效,在上述实施例中所能达到的技术效果在本实施例中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在上述实施例中。
[0170]
本领域的普通技术人员可以理解,上述各实施例是实现本技术的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本技术的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1