本技术涉及计算机,尤其涉及一种数据写入方法以及处理系统。
背景技术:
1、在计算机领域,内存数据的可靠性对整个系统的性能至关重要,特别是系统核心数据或重要的应用程序数据,其数据的可靠性直接影响整个系统的运行。为此,数据纠错技术便应运而生,通过采用纠错技术通过预定的纠错算法判定当前的数据是否为正确数据,而确定当前读取的数据的可靠性。
2、目前一般会采用纠错码(error correction code,ecc)技术实现数据纠错。而随着双数据速率同步动态随机存取内存3(double data rate synchronous dynamicrandom-access memory,ddr3)颗粒、ddr4颗粒和ddr5颗粒的规格增加,先进制程减小。ddr的电压降低,每一个存储单元的电容容纳的电荷量减少,容易出现瞬时错误(transiterror)或软失效(soft error)。一个趋势是:一个瞬时错误导致多比特错误的概率增加。因此,如何对数据进行ecc编码以提升发生数据错误时的数据纠错能力,是当前亟待解决的问题。
技术实现思路
1、本技术提供了一种数据写入方法以及处理系统,用于提升处理系统的检错能力和纠错能力,提高系统的可靠性。
2、本技术第一方面提供一种数据写入方法,方法应用于处理系统,处理系统包括第一内存,第一内存包括多个内存空间;方法包括:
3、获取第一数据,第一数据是待写入第一内存的数据;根据多个内存空间中的至少一个内存空间的第一错误分布区域信息确定数据符号占用的内存空间的第一排布方式;根据数据符号占用的内存空间的第一排布方式将第一数据确定为m个数据符号,m个数据符号中每个数据符号包括多个数据比特,m为大于或等于1的整数;对m个数据符号进行第一ecc编码,得到n个第一冗余符号,n个第一冗余符号中每个第一冗余符号包括至少一个冗余比特,n为大于或等于1的整数;将m个数据符号写到所述第一内存中的数据内存空间,和将n个第一冗余符号写到第一内存的第一ecc内存空间中。
4、上述技术方案中,处理系统根据该多个内存空间中的至少一个内存空间的第一错误分布区域信息确定数据符号占用的内存空间的第一排布方式。也就是处理系统结合至少一个内存空间中发生错误的区域分布来设计数据符号占用的内存空间的排布方式。然后,处理系统再结合数据符号占用的内存空间的第一排布方式将第一数据确定为m个数据符号,该m个数据符号中每个数据符号包括数据比特。由于第一数据中数据比特的目的地址都是已知的,因此处理系统结合第一排布方式将第一数据中能够构成该第一排布方式的形状的数据比特划分到同一数据符号中。从而有利于后续处理系统进行数据读取的过程中对数据进行最大化检错和最大化纠错。提高处理系统的检错能力和纠错能力,提升系统的可靠性。从而充分发挥第一内存中第一ecc内存空间的最大检错能力和最大纠错能力,最大化覆盖数据错误区域,提升系统的可靠性。
5、一种可能的实现方式中,至少一个内存空间的第一错误分布区域信息用于指示当至少一个内存空间发生数据错误时错误的数据比特所落在的至少一个内存空间的具体区域。
6、在该实现方式中,该第一错误分布区域信息用于指示该至少一个内存空间中发生数据错误时通常错误的数据比特所落在的区域范围。通常该区域范围小于该至少一个内存空间的大小。从而有利于处理系统结合该区域范围确定数据符号占用的内存空间的排布方式。然后,处理系统结合第一排布方式将第一数据中能够构成该第一排布方式的形状的数据比特划分到同一数据符号中。从而有利于后续处理系统进行数据读取的过程中对数据进行最大化检错和最大化纠错。提高处理系统的检错能力和纠错能力,提升系统的可靠性。从而充分发挥第一内存中第一ecc内存空间的最大检错能力和最大纠错能力,最大化覆盖数据错误区域,提升系统的可靠性。
7、另一种可能的实现方式中,每个数据符号占用8比特的内存空间,数据符号占用的内存空间的第一排布方式包括以下任一种:四行两列排列、两行四列排列、八行一列排列、一行八列排列;或者,
8、每个数据符号占用16比特的内存空间,数据符号占用的内存空间的第一排布方式包括以下任一种:四行四列排列、八行两列排列、两行八列排列、十六行一列排列;或者,
9、每个数据符号占用32比特的内存空间,数据符号占用的内存空间的第一排布方式包括以下任一种:一行三十二列排列、三十二行一列排列、两行十六列排列、十六行两列排列、四行八列排列、八行四列排列。
10、在该实现方式中,提供了数据符号包括的数据比特的数目的一些可能的实现方式,还示出了每种实现方式下,数据符号占用的内存空间的多种可能的排布方式,为方案的实施提供一定的基础。有利于处理系统结合这些排布方式以及第一错误分布区域信息选择合适的排布方式。便于后续处理系统进行数据读取的过程中对数据进行最大化检错和最大化纠错。提高处理系统的检错能力和纠错能力,提升系统的可靠性。
11、另一种可能的实现方式中,方法还包括:
12、获取多个内存空间中的至少一个内存空间的第一错误分布区域信息。
13、在该实现方式中,处理系统可以获取该第一错误分布区域信息,从而便于处理系统确定数据符号占用的内存空间的第一排布方式。例如,该处理系统可以通过外部接口获取该第一错误分布区域信息。或者,该处理系统通过预配置的信息获取该第一错误分布区域信息。
14、另一种可能的实现方式中,方法还包括:
15、从第一内存中读取全部数据,全部数据包括数据比特和冗余比特;根据多个内存空间中的至少一个内存空间的第二错误分布区域信息确定数据符号占用的内存空间的第二排布方式;根据数据符号占用的内存空间的第二排布方式将全部数据中的数据比特确定为p个数据符号,p个数据符号中每个数据符号包括多个数据比特,p为大于或等于1的整数;对p个数据符号进行第一ecc编码,得到q个第一冗余符号,q个第一冗余符号中每个第一冗余符号包括至少一个冗余比特,q为大于或等于1的整数;将p个数据符号写到第一内存中的数据内存空间,和将q个第一冗余符号写到第一内存的第一ecc内存空间中。
16、在该实现方式中,如果该至少一个内存空间的错误分布区域信息变更为第二错误分布区域信息,处理系统可以从第一内存中读取全部数据,再结合第二错误分布区域信息确定数据符号占用的内存空间的第二排布方式。然后,处理系统根据该第二排布方式和全部数据中的数据比特进行编码。从而改变数据符号占用的内存空间的排布方式。便于后续数据读取过程中,处理系统对数据进行最大化检错和最大化纠错。提高处理系统的检错能力和纠错能力。
17、另一种可能的实现方式中,方法还包括:
18、获取多个内存空间中的至少一个内存空间的第二错误分布区域信息。
19、在该实现方式中,处理系统获取第二错误分布区域信息,从而便于处理系统对数据进行重新编码和写入,从而改变数据符号占用的内容空间的排布方式。便于后续数据读取过程中,处理系统对数据进行最大化检错和最大化纠错。
20、另一种可能的实现方式中,获取多个内存空间中的至少一个内存空间的第二错误分布区域信息,包括:根据历史数据错误情况确定多个内存空间中的至少一个内存空间的第二错误分布区域信息。
21、在该实现方式中,处理系统可以结合历史数据错误情况确定该第二错误分布区域信息。也就是处理系统可以结合实际情况动态变更至少一个内存空间的错误分布区域。使得方案更适用于实际应用场景中,提升了方案的实用性。
22、另一种可能的实现方式中,数据符号和第一冗余符号为里德-所罗门(reed-solomon codes,rs)码符号;或者;数据符号和第一冗余符号为博斯-查德胡里-霍昆格母(bose ray-chaudhuri hocquenghem,bch)码符号。
23、在该实现方式中,提供了数据符号和第一冗余符号的一些可能的形态,具体视处理系统采用的编码算法决定,便于方案的实施。
24、另一种可能的实现方式中,对m个数据符号进行第一ecc编码,得到n个第一冗余符号,包括:采用有限域编码算法对m个数据符号进行第一ecc编码,得到n个第一冗余符号,有限域编码算法包括rs算法或bch算法等。
25、在该实现方式,处理系统可以通过有限域编码算法对m个数据符号进行ecc编码,实现对数据的ecc保护。便于后续处理系统对数据进行最大化纠错和最大化检错。提高处理系统的检错能力和纠错能力。
26、另一种可能的实现方式,第一内存为支持第二ecc编码的内存;第一内存包括还第二ecc内存空间;方法包括:
27、将m个数据符号和n个第一冗余符号作为数据进行第二ecc编码,得到r个第二冗余符号,r个第二冗余符号中每个第二冗余符号包括至少一个冗余比特,r为大于或等于1的整数;
28、将m个数据符号写到数据内存空间,将n个第一冗余符号写到第一ecc内存空间,以及将r个第二冗余符号写到第二ecc内存空间。
29、在该实现方式中,第一内存还包括第二ecc内存空间,处理系统还可以对m个数据符号和n个第一冗余符号做第二ecc编码。从而实现对m个数据符号和n个第一冗余符号的进一步第二级ecc保护。
30、另一种可能的实现方式中,第一内存为内部纠错码(on die ecc)内存。
31、在该实现方式中,第一内存可以为on die ecc内存。这样后续数据读取过程中,处理系统读取的数据比特可以是经过on die ecc内存检错和纠错处理得到的。也就是说本技术的技术方案可以实现第一ecc内存空间和第一内存中的on die ecc内存空间联合对数据进行检错和纠错,提高处理系统的检错能力和纠错能力。提高系统的可靠性。
32、本技术第二方面提供一种处理系统,处理系统包括第一内存,第一内存包括多个内存空间;处理系统包括:
33、获取单元,用于获取第一数据,第一数据是待写入第一内存的数据;
34、确定单元,用于根据多个内存空间中的至少一个内存空间的第一错误分布区域信息确定数据符号占用的内存空间的第一排布方式;根据数据符号占用的内存空间的第一排布方式将第一数据确定为m个数据符号,m个数据符号中每个数据符号包括多个数据比特,m为大于或等于1的整数;
35、编码单元,用于对m个数据符号进行第一ecc编码,得到n个第一冗余符号,n个第一冗余符号中每个第一冗余符号包括至少一个冗余比特,n为大于或等于1的整数;
36、写入单元,用于将m个数据符号和n个第一冗余符号写到第一内存中。
37、一种可能的实现方式中,至少一个内存空间的第一错误分布区域信息用于指示当至少一个内存空间发生数据错误时错误的数据比特所落在的该至少一个内存空间的具体区域。
38、另一种可能的实现方式中,每个数据符号占用8比特的内存空间,数据符号占用的内存空间的第一排布方式包括以下任一种:四行两列排列、两行四列排列、八行一列排列、一行八列排列;或者,
39、每个数据符号占用16比特的内存空间,数据符号占用的内存空间的第一排布方式包括以下任一种:四行四列排列、八行两列排列、两行八列排列、十六行一列排列;或者,
40、每个数据符号占用32比特的内存空间,数据符号占用的内存空间的第一排布方式包括以下任一种:一行三十二列排列、三十二行一列排列、两行十六列排列、十六行两列排列、四行八列排列、八行四列排列。
41、另一种可能的实现方式中,获取单元还用于:
42、获取多个内存空间中的至少一个内存空间的第一错误分布区域信息。
43、另一种可能的实现方式中,处理系统还包括读取单元;
44、读取单元,用于从第一内存中读取全部数据,全部数据包括数据比特和冗余比特;
45、确定单元还用于:
46、根据多个内存空间中的至少一个内存空间的第二错误分布区域信息确定数据符号占用的内存空间的第二排布方式;根据数据符号占用的内存空间的第二排布方式将全部数据中的数据比特确定为p个数据符号,p个数据符号中每个数据符号包括多个数据比特,p为大于或等于1的整数;
47、编码单元还用于:
48、对p个数据符号进行第一ecc编码,得到q个第一冗余符号,q个第一冗余符号中每个第一冗余符号包括至少一个冗余比特,q为大于或等于1的整数;
49、写入单元还用于:
50、将p个数据符号和q个第一冗余符号写到第一内存中。
51、另一种可能的实现方式中,获取单元还用于:
52、获取多个内存空间中的至少一个内存空间的第二错误分布区域信息。
53、另一种可能的实现方式中,获取单元具体用于:
54、根据历史数据错误情况确定多个内存空间中的至少一个内存空间的第二错误分布区域信息。
55、另一种可能的实现方式中,数据符号和第一冗余符号为rs码符号;或者;数据符号和第一冗余符号为bch码符号。
56、另一种可能的实现方式中,编码单元具体用于:
57、采用有限域编码算法对m个数据符号进行第一ecc编码,得到n个第一冗余符号,有限域编码算法包括rs算法或bch算法等。
58、另一种可能的实现方式中,第一内存为支持第二ecc编码的内存,第一内存还包括第二ecc内存空间;编码单元还用于:
59、将m个数据符号和n个第一冗余符号作为数据进行第二ecc编码,得到r个第二冗余符号,r个第二冗余符号中每个第二冗余符号包括至少一个冗余比特,r为大于或等于1的整数;
60、写入单元具体用于:
61、将m个数据符号写到数据内存空间,将n个第一冗余符号写到第一ecc内存空间,以及将r个第二冗余符号写到第二ecc内存空间。
62、另一种可能的实现方式中,第一内存为on die ecc内存。
63、本技术第三方面提供一种处理系统,该处理系统包括第一内存和第一内存控制器,第一内存包括多个内存空间;第一内存控制器用于执行以下方案:
64、获取第一数据,第一数据是待写入第一内存的数据;根据多个内存空间中的至少一个内存空间的第一错误分布区域信息确定数据符号占用的内存空间的第一排布方式;根据数据符号占用的内存空间的第一排布方式将第一数据确定为m个数据符号,m个数据符号中每个数据符号包括多个数据比特,m为大于或等于1的整数;对m个数据符号进行第一ecc编码,得到n个第一冗余符号,n个第一冗余符号中每个第一冗余符号包括至少一个冗余比特,n为大于或等于1的整数;将m个数据符号写到第一内存中的数据内存空间,和将n个第一冗余符号写到第一内存的第一ecc内存空间中。
65、一种可能的实现方式中,至少一个内存空间的第一错误分布区域信息用于指示当至少一个内存空间发生数据错误时错误的数据比特所落在的该至少一个内存空间的具体区域。
66、另一种可能的实现方式中,每个数据符号占用8比特的内存空间,数据符号占用的内存空间的第一排布方式包括以下任一种:四行两列排列、两行四列排列、八行一列排列、一行八列排列;或者,
67、每个数据符号占用16比特的内存空间,数据符号占用的内存空间的第一排布方式包括以下任一种:四行四列排列、八行两列排列、两行八列排列、十六行一列排列;或者,
68、每个数据符号占用32比特的内存空间,数据符号占用的内存空间的第一排布方式包括以下任一种:一行三十二列排列、三十二行一列排列、两行十六列排列、十六行两列排列、四行八列排列、八行四列排列。
69、另一种可能的实现方式中,第一内存控制器用于:
70、获取多个内存空间中的至少一个内存空间的第一错误分布区域信息。
71、另一种可能的实现方式中,第一内存控制器还用于:
72、从第一内存中读取全部数据,全部数据包括数据比特和冗余比特;
73、根据多个内存空间中的至少一个内存空间的第二错误分布区域信息确定数据符号占用的内存空间的第二排布方式;根据数据符号占用的内存空间的第二排布方式将全部数据中的数据比特确定为p个数据符号,p个数据符号中每个数据符号包括多个数据比特,p为大于或等于1的整数;
74、对p个数据符号进行第一ecc编码,得到q个第一冗余符号,q个第一冗余符号中每个第一冗余符号包括至少一个冗余比特,q为大于或等于1的整数;
75、将p个数据符号写到第一内存中的数据内存空间,和将q个第一冗余符号写到第一内存的第一ecc内存空间中。
76、另一种可能的实现方式中,第一内存控制器还用于:
77、获取多个内存空间中的至少一个内存空间的第二错误分布区域信息。
78、另一种可能的实现方式中,第一内存控制器具体用于:
79、根据历史数据错误情况确定多个内存空间中的至少一个内存空间的第二错误分布区域信息。
80、另一种可能的实现方式中,数据符号和第一冗余符号为rs码符号;或者;数据符号和第一冗余符号为bch码符号。
81、另一种可能的实现方式中,第一内存控制器具体用于:
82、采用有限域编码算法对m个数据符号进行第一ecc编码,得到n个第一冗余符号,有限域编码算法包括rs算法或bch算法等。
83、另一种可能的实现方式,第一内存为支持第二ecc编码的内存,第一内存还包括第二ecc内存空间;
84、第一内存控制器具体用于:
85、将m个数据符号和n个第一冗余符号作为数据进行第二ecc编码,得到r个第二冗余符号,r个第二冗余符号中每个第二冗余符号包括至少一个冗余比特,r为大于或等于1的整数;
86、将m个数据符号写到数据内存空间,将n个第一冗余符号写到第一ecc内存空间,以及将r个第二冗余符号写到第二ecc内存空间。
87、另一种可能的实现方式,第一内存为支持第二ecc编码的内存,第一内存还包括第二ecc内存空间;处理系统还包括第二内存控制器;
88、该第二内存控制器,用于将m个数据符号和n个第一冗余符号作为数据进行第二ecc编码,得到r个第二冗余符号,r个第二冗余符号中每个第二冗余符号包括至少一个冗余比特,r为大于或等于1的整数;将m个数据符号写到数据内存空间,将n个第一冗余符号写到第一ecc内存空间,将r个第二冗余符号写到第二ecc内存空间。
89、另一种可能的实现方式中,第一内存为on die ecc内存。
90、本技术第四方面提供一种处理系统,处理系统包括处理器、存储器以及输入输出接口,该处理器、该存储器与该输入输出接口连接;该存储器,用于存储程序代码;该处理器调用该存储器中的程序代码用于执行如第一方面所示的方法。
91、本技术实施例第五方面提供一种存储介质,包括计算机指令,当其在计算机上运行时,用于执行上述第一方面中处理系统所设计的程序。
92、本技术实施例第六方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如本技术第一方面任一可选实施方式中所述的方法。
93、从以上技术方案可以看出,本技术实施例具有以下优点:
94、经由上述技术方案可知,本技术提供一种数据写入方法,该方法应用于处理系统,该处理系统包括第一内存,第一内存包括多个内存空间;获取第一数据,该第一数据是待写入第一内存中的数据;根据该多个内存空间中的至少一个内存空间的第一错误分布区域信息确定数据符号占用的内存空间的第一排布方式;根据数据符号占用的内存空间的第一排布方式将第一数据确定为m个数据符号,该m个数据符号中每个数据符号包括多个数据比特,m为大于或等于1的整数;然后,对m个数据符号进行第一ecc编码,得到n个第一冗余符号,n个第一冗余符号中每个第一冗余符号包括至少一个冗余比特,n为大于或等于1的整数;将m个数据符号写到第一内存中的数据内存空间,和将n个第一冗余符号写到第一内存的第一ecc内存空间中。由此可知,处理系统根据该多个内存空间中的至少一个内存空间的第一错误分布区域信息确定数据符号占用的内存空间的第一排布方式。也就是处理系统结合至少一个内存空间中发生错误的区域分布来设计数据符号占用的内存空间的排布方式。然后,处理系统再结合数据符号占用的内存空间的第一排布方式将第一数据确定为m个数据符号,该m个数据符号中每个数据符号包括数据比特。由于第一数据中数据比特的目的地址都是已知的,因此处理系统结合第一排布方式将第一数据中能够构成该第一排布方式的形状的数据比特划分到同一数据符号中。从而有利于后续处理系统进行数据读取的过程中对数据进行最大化检错和最大化纠错。提升系统的可靠性。从而充分发挥第一内存中ecc内存空间的最大检错能力和最大纠错能力,最大化覆盖数据错误区域,提升系统的可靠性。
1.一种数据写入方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述至少一个内存空间的第一错误分布区域信息用于指示当所述至少一个内存空间发生数据错误时错误的数据比特所落在的所述至少一个内存空间的具体区域。
3.根据权利要求1或2所述的方法,其特征在于,
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,所述获取所述多个内存空间中的至少一个内存空间的第二错误分布区域信息,包括:
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述数据符号和所述第一冗余符号为里德-所罗门rs码符号;或者;
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述第一内存为支持第二ecc编码的内存;所述第一内存还包括第二ecc内存空间;所述方法还包括:
10.根据权利要求9所述的方法,其特征在于,所述第一内存为内部纠错码on die ecc内存。
11.一种处理系统,其特征在于,所述处理系统包括第一内存控制器和第一内存,所述第一内存包括多个内存空间;所述第一内存控制器用于执行如权利要求1至8中任一项所述的方法。
12.根据权利要求11所述的处理系统,其特征在于,所述第一内存控制器还用于执行如权利要求9或10所述的方法;或者,
13.一种处理系统,其特征在于,包括:
14.一种计算机可读存储介质,包括计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如权利要求1至10中任意一项所述的方法。