存储器系统及其操作方法与流程
- 国知局
- 2024-08-22 14:45:21
本公开实施例涉及半导体,特别涉及一种存储器系统及其操作方法。
背景技术:
1、目前对存储器的应用中,在向存储器中写入数据的过程期间,通常用额外的位来编码数据以形成码字(codeword)(包括数据和校验码)。在存在噪声时,表示该码字的位中的一些位可能改变,用错误来破坏原始码字。当从存储器读取该码字时,可以使用解码器使用纠错码(ecc,error correcting code)来标识和校正这些错误。
2、为了增加错误校正能力,一般要求增加校验数据,即需要更多位ecc数据来标识和校正错误,更多位ecc数据意味着存储器系统架构设计复杂性的不断增加,导致更多的静默数据损坏(sdc,silent data corruption)和更大的电路规模。
3、一般要通过增加用于存储校验码的芯片的数量达到提高错误校正能力减小静默数据损坏的目的,但增加用于存储校验码的芯片的数量会增加存储器系统的电路规模,也就是说,相关技术中,用于存储校验码的芯片的数量一定的情况下,错误校正能力一定,灵活性较差。因此,如何能够在较小的存储器系统的电路规模下,保证较小的静默数据损坏成为一个亟待解决的问题。
技术实现思路
1、有鉴于此,本公开实施例提供一种存储器系统及其操作方法。
2、根据本公开实施例的第一方面,提供一种存储器系统,所述存储器系统包括:
3、多个存储芯片,包括m个用于并行存储数据的第一类存储芯片和n个用于存储校验码的第二类存储芯片;所述n个第二类存储芯片分别用于存储第一校验码和第二校验码,所述第一校验码和所述第二校验码分别是通过对第一数据阵列中的数据进行不同方向的纠错编码获得的,所述第一数据阵列由并行写入m个所述第一类存储芯片中的一组数据构成;所述m和n均为大于1的正整数;
4、存储器控制器,与所述多个存储芯片连接;所述存储器控制器被配置为:根据第一参数,动态调整用于存储所述第一校验码的第二类存储芯片的数量和用于存储所述第二校验码的第二类存储芯片的数量。
5、上述方案中,所述存储器控制器被配置为:
6、将所述第一数据阵列沿第二方向划分为多个第一数据组,分别对多个所述第一数据组中的数据进行第一方向的纠错编码获得多个第一子校验码,以及分别对多个所述第一数据组中的数据进行所述第二方向的纠错编码获得多个第二子校验码;
7、其中,多个所述第一子校验码构成所述第一校验码,多个所述第二子校验码构成所述第二校验码;
8、所述第一数据组由m个第一数据子阵列构成,每个所述第一数据子阵列由每个所述第一类存储芯片中存储的一组子数据构成,第一数据子阵列包括多个沿所述第一方向延伸的数据行和多个沿所述第二方向延伸的数据列;其中,每个数据行的数据用于并行写入对应的第一类存储芯片中。
9、上述方案中,所述第一参数包括第一调整信号和第二调整信号,所述第一调整信号指示当前所述第一方向的错误率是否达到当前的第一纠错阈值,所述第二调整信号指示当前所述第二方向的错误率是否达到当前的第二纠错阈值。
10、上述方案中,所述存储器控制器被配置为:
11、当所述第一调整信号指示当前所述第一方向的错误率达到当前的第一纠错阈值,增加用于存储所述第一校验码的第二类存储芯片的数量;
12、当所述第二调整信号指示当前所述第二方向的错误率达到当前的第二纠错阈值,增加用于存储所述第二校验码的第二类存储芯片的数量。
13、上述方案中,所述存储器控制器被配置为:
14、当所述第一调整信号指示当前所述第一方向的错误率达到当前的第一纠错阈值且所述第二调整信号指示当前所述第二方向的错误率达到当前的第二纠错阈值时,根据第二参数,调整用于存储所述第一校验码的第二类存储芯片的数量和用于存储所述第二校验码的第二类存储芯片的数量。
15、上述方案中,所述第二参数包括第一错误分布信息和第二错误分布信息,所述第一错误分布信息指示所述数据在第二方向的错误分布,所述第二错误分布信息指示所述数据在第一方向的错误分布;
16、所述第一错误分布信息为x比特的二进制数据,所述第一错误分布信息的数值越大,表示所述数据在第二方向的错误分布越集中,所述第二错误分布信息为y比特的二进制数据,所述第二错误分布信息的数值越大,表示所述数据在第一方向的错误分布越集中;
17、若所述第一错误分布信息的数值大于所述第二错误分布信息的数值,则增加用于存储所述第二校验码的第二类存储芯片的数量;若所述第二错误分布信息的数值大于所述第一错误分布信息的数值,则增加用于存储所述第一校验码的第二类存储芯片的数量;
18、其中,所述x和y均为正整数,所述第一错误分布信息的数值为大于等于1且小于等于2x的整数,所述第二错误分布信息的数值为大于等于1且小于等于2y的整数;所述第一数据子阵列的一个数据行包括k个数据,所述第一数据子阵列的一个数据列包括b个数据,所述k和b均为正整数,且2x≤mb,2y≤mk。
19、上述方案中,所述存储器控制器,还被配置为:根据第三参数,确定用于对所述第一数据组中存储的数据进行所述第一方向的纠错编码的第一纠错编码符号的位数和用于对所述第一数据组中存储的数据进行所述第二方向的纠错编码的第二纠错编码符号的位数。
20、上述方案中,所述第三参数包括第一错误类型信息和第二错误类型信息,所述第一错误类型信息指示所述数据在第二方向的错误类型,所述第二错误类型信息指示所述数据在第一方向的错误类型;
21、所述第一错误类型信息为x比特的二进制数据,所述第一错误类型信息的数值越大,表示所述数据在第二方向的错误密集程度越高,则根据所述第三参数确定的所述第一纠错编码符号的位数越大;
22、所述第二错误类型信息为y比特的二进制数据,所述第二错误类型信息的数值越大,表示所述数据在第一方向的错误密集程度越高,则根据所述第三参数确定的所述第二纠错编码符号的位数越大;
23、其中,所述x和y均为正整数,所述第一错误类型信息的数值为大于等于1且小于等于2x的整数,所述第二错误类型信息的数值为大于等于1且小于等于2y的整数。
24、上述方案中,所述第一数据子阵列的一个数据行包括k个数据,所述第一数据子阵列的一个数据列包括b个数据;所述k和b均为正整数,且2x≤b,2y≤k;
25、所述第一纠错编码符号的位数与第一错误类型信息的数值和k的乘积成正比;所述第二纠错编码符号的位数与第二错误类型信息和b的乘积成正比。
26、上述方案中,所述存储器控制器被配置为:
27、根据所述第一错误类型信息与预设数值的比较结果,确定所述第一纠错编码符号的位数的数值,以及根据所述第二错误类型信息与预设数值的比较结果,确定所述第二纠错编码符号的位数的数值;
28、其中,当所述第一错误类型信息等于第一预设值时,确定所述第一纠错编码符号的位数为ak;
29、或者,
30、当所述第一错误类型信息等于第二预设值时,确定所述第一纠错编码符号的位数为2ak;
31、或者,
32、当所述第一错误类型信息等于第三预设值时,确定所述第一纠错编码符号的位数为4ak;a为小于等于b的正整数。
33、上述方案中,所述存储器控制器被配置为:
34、利用所述第一校验码对所述第一数据阵列中存储的数据进行所述第一方向的错误纠正;
35、当存在所述第一校验码不能纠正的错误时,利用所述第二校验码对所述第一数据阵列中存储的数据进行所述第二方向的错误纠正。
36、上述方案中,所述存储器控制器被配置为:
37、利用所述第一校验码对所述第一数据阵列中存储的数据进行所述第一方向的错误纠正,以及利用所述第二校验码对所述第一数据阵列中存储的数据进行所述第二方向的错误纠正;
38、当存在所述第一校验码不能纠正的错误或者所述第二校验码不能纠正的错误时,动态调整用于存储所述第一校验码的第二类存储芯片的数量和用于存储所述第二校验码的第二类存储芯片的数量后,重新对所述第一数据阵列中存储的数据进行所述第一方向的纠错编码或者所述第二方向的纠错编码。
39、上述方案中,所述第一校验码和所述第二校验码均包括里德所罗门rs码。
40、根据本公开实施例的第二方面,提供一种存储器系统的操作方法,所述存储器系统包括多个存储芯片和与所述多个存储芯片连接的存储器控制器;所述多个存储芯片包括m个用于并行存储数据的第一类存储芯片和n个用于存储校验码的第二类存储芯片;所述n个第二类存储芯片分别用于存储第一校验码和第二校验码,所述第一校验码和所述第二校验码分别是通过对第一数据阵列中的数据进行不同方向的纠错编码获得的,所述第一数据阵列由并行写入m个所述第一类存储芯片中的一组数据构成;所述m和n均为大于1的正整数;
41、所述方法包括:
42、根据第一参数,动态调整用于存储所述第一校验码的第二类存储芯片的数量和用于存储所述第二校验码的第二类存储芯片的数量。
43、上述方案中,所述方法还包括:
44、将所述第一数据阵列沿第二方向划分为多个第一数据组,分别对多个所述第一数据组中的数据进行第一方向的纠错编码获得多个第一子校验码,以及分别对多个所述第一数据组中的数据进行所述第二方向的纠错编码获得多个第二子校验码;
45、其中,多个所述第一子校验码构成所述第一校验码,多个所述第二子校验码构成所述第二校验码;
46、所述第一数据组由m个第一数据子阵列构成,每个所述第一数据子阵列由每个所述第一类存储芯片中存储的一组子数据构成,第一数据子阵列包括沿所述第一方向延伸的多个数据行和沿所述第二方向延伸的多个数据列。
47、上述方案中,所述第一参数包括第一调整信号和第二调整信号,所述第一调整信号指示当前所述第一方向的错误率是否达到当前的第一纠错阈值,所述第二调整信号指示当前所述第二方向的错误率是否达到当前的第二纠错阈值。
48、上述方案中,所述根据第一参数,动态调整用于存储所述第一校验码的第二类存储芯片的数量和用于存储所述第二校验码的第二类存储芯片的数量,包括:
49、当所述第一调整信号指示当前所述第一方向的错误率达到当前的第一纠错阈值,增加用于存储所述第一校验码的第二类存储芯片的数量;
50、当所述第二调整信号指示当前所述第二方向的错误率达到当前的第二纠错阈值,增加用于存储所述第二校验码的第二类存储芯片的数量。
51、上述方案中,所述根据第一参数,动态调整用于存储所述第一校验码的第二类存储芯片的数量和用于存储所述第二校验码的第二类存储芯片的数量,还包括:
52、当所述第一调整信号指示当前所述第一方向的错误率达到当前的第一纠错阈值且所述第二调整信号指示当前所述第二方向的错误率达到当前的第二纠错阈值时,根据第二参数,调整用于存储所述第一校验码的第二类存储芯片的数量和用于存储所述第二校验码的第二类存储芯片的数量。
53、上述方案中,所述第二参数包括第一错误分布信息和第二错误分布信息,所述第一错误分布信息指示所述数据在第二方向的错误分布,所述第二错误分布信息指示所述数据在第一方向的错误分布;
54、所述第一错误分布信息为x比特的二进制数据,所述第一错误分布信息的数值越大,表示所述数据在第二方向的错误分布越集中,所述第二错误分布信息为y比特的二进制数据,所述第二错误分布信息的数值越大,表示所述数据在第一方向的错误分布越集中;
55、若所述第一错误分布信息的数值大于所述第二错误分布信息的数值,则增加用于存储所述第二校验码的第二类存储芯片的数量;若所述第二错误分布信息的数值大于所述第一错误分布信息的数值,则增加用于存储所述第一校验码的第二类存储芯片的数量;
56、其中,所述x和y均为正整数,所述第一错误分布信息的数值为大于等于1且小于等于2x的整数,所述第二错误分布信息的数值为大于等于1且小于等于2y的整数;所述第一数据子阵列的一个数据行包括k个数据,所述第一数据子阵列的一个数据列包括b个数据,所述k和b均为正整数,且2x≤mb,2y≤mk。
57、上述方案中,所述方法还包括:
58、根据第三参数,确定用于对所述第一数据组中存储的数据进行所述第一方向的纠错编码的第一纠错编码符号的位数和用于对所述第一数据组中存储的数据进行所述第二方向的纠错编码的所述第二纠错编码符号的位数。
59、上述方案中,所述第三参数包括第一错误类型信息和第二错误类型信息,所述第一错误类型信息指示所述数据在第二方向的错误类型,所述第二错误类型信息指示所述数据在第一方向的错误类型;所述第一错误类型信息为x比特的二进制数据,所述第二错误类型信息为y比特的二进制数据,所述x和y均为正整数;
60、所述根据第三参数,确定用于对所述第一数据阵列中存储的数据进行所述第一方向的纠错编码的第一纠错编码符号的位数和用于对所述第一数据阵列中存储的数据进行所述第二方向的纠错编码的第二纠错编码符号的位数,包括:
61、根据所述第一错误类型信息的数值,调整所述第一纠错编码符号的位数;其中,当所述第一错误类型信息的数值越大,表示所述数据在第二方向的错误密集程度越高,则将所述第一纠错编码符号的位数增大;
62、根据所述第二错误类型信息的数值,调整所述第二纠错编码符号的位数;其中,当所述第二错误类型信息的数值越大,表示所述数据在第一方向的错误密集程度越高,则将所述第二纠错编码符号的位数增大。
63、上述方案中,所述第一数据子阵列的一个数据行包括k个数据,所述第一数据子阵列的一个数据列包括b个数据;所述k和b均为正整数,且2x≤b,2y≤k;
64、所述第一纠错编码符号的位数与第一错误类型信息的数值和k的乘积成正比;所述第二纠错编码符号的位数与第二错误类型信息和b的乘积成正比。
65、上述方案中,所述方法还包括:
66、当利用所述第一校验码对所述第一数据阵列中存储的数据进行所述第一方向的错误纠正时,若存在所述第一校验码不能纠正的错误,则利用所述第二校验码对所述第一数据阵列中存储的数据进行所述第二方向的错误纠正。
67、上述方案中,所述方法还包括:
68、当利用所述第一校验码和所述第二校验码分别对所述第一数据阵列中存储的数据进行所述第一方向和所述第二方向的错误纠正时,若存在所述第一校验码不能纠正的错误或者所述第二校验码不能纠正的错误,则动态调整用于存储所述第一校验码的第二类存储芯片的数量和用于存储所述第二校验码的第二类存储芯片的数量后,重新对所述第一数据阵列中存储的数据进行所述第一方向的纠错编码或者所述第二方向的纠错编码。
69、本公开各实施例中,存储器系统包括的多个存储芯片中部分存储芯片即第一类存储芯片用于存储数据,部分存储新芯片即第二类存储芯片用于存储数据对应的校验码,第二类存储芯片的总数量是固定的,但第二类存储芯片中分别用于存储对第一数据阵列(由并行写入m个所述第一类存储芯片中的一组数据构成)中的数据进行不同方向的纠错编码获得的第一校验码和第二校验码的芯片数量可以动态调整。可以理解的是,由于采用了不同方向的纠错编码,存储器系统能够从不同的维度进行纠错,提高检错能力;进一步地,由于存储第一校验码的第二类存储芯片数量和存储第二校验码的第二类存储芯片数量可以根据实际情况动态调整,从而存储器系统可以针对不同的错误场景,选择使用不同的纠错主维度,从而实现第二类存储芯片的充分的利用,达到在较小的存储器系统的电路规模情况下,保证较高的错误校正能力,避免因超过纠错能力而导致错误检出率较低,减小的静默数据损坏。
本文地址:https://www.jishuxx.com/zhuanli/20240822/279723.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。