存储数据的方法、读取数据的方法和相关设备技术

技术编号:39253375 阅读:7 留言:0更新日期:2023-10-30 12:05
本申请实施例提供一种存储数据的方法、读取数据的方法和相关设备,该方法包括:获取来自于处理器的输出数据,该输出数据包括待写入内存的目标数据和与该目标数据对应的错误数据指示信息,该错误数据指示信息用于指示该目标数据是否是错误数据;根据该错误数据指示信息,将预设数据写入该内存,或者,将根据该目标数据确定的写入数据写入该内存。上述技术方案可以在不牺牲校验位的情况下,指示错误数据。因此,利用上述技术方案,既可以识别内存保存的错误数据,也避免了因牺牲校验位导致的纠错能力下降的问题。能力下降的问题。能力下降的问题。

【技术实现步骤摘要】
存储数据的方法、读取数据的方法和相关设备


[0001]本申请实施例涉及信息
,更具体地,涉及存储数据的方法、读取数据的方法和相关设备。

技术介绍

[0002]为了快速识别内存中问题数据,业界引入了错误数据指示信息(也可以称为错误比特(poison bit))。错误数据指示信息用于指示从内存中读取的数据是错误数据(poison data)还是非错误数据(non

poison data)。通常情况下,错误数据指示信息可以只需要用1比特(bit)就能指示对应的数据是错误数据还是非错误数据。例如,如果从内存中读取的数据为非错误数据,那么错误数据指示信息的值可以为0;如果从内存中读取的数据为错误数据,那么错误数据指示信息的值可以为1。
[0003]目前,内存会牺牲数据的校验位来保存错误数据指示信息。这种情况下,内存保存的校验位数量减少,从而可能导致原本可以纠正错误变成了不可纠错误。因此,如何在不影响内存纠错能力的情况下来指示错误数据是业界亟待解决的问题。

技术实现思路

[0004]本申请实施例提供一种存储数据的方法、读取数据的方法和相关设备,可以在不牺牲校验位的情况下识别出内存中保存的错误数据。
[0005]第一方面,本申请实施例提供一种存储数据的方法,该方法包括:获取来自于处理器的输出数据,该输出数据包括待写入内存的目标数据和与该目标数据对应的错误数据指示信息,该错误数据指示信息用于指示该目标数据是否是错误数据;根据该错误数据指示信息,将预设数据写入该内存,或者,将根据该目标数据确定的写入数据写入该内存。
[0006]上述技术方案中,如果获取到的来自于处理器的输出数据是错误数据(poison data),那么可以直接将预设数据(也可以称为错误图案(poison pattern))写入到内存中。这样,在从内存读出数据时,可以根据该预设数据,确定读取到的数据是否是错误数据。这样,无需在内存中使用额外的存储单元来存储用于指示数据是否是错误数据的错误数据指示信息。换句话说,上述技术方案可以在不牺牲校验位的情况下,指示错误数据。因此,利用上述技术方案,既可以识别内存保存的错误数据,也避免了因牺牲校验位导致的纠错能力下降的问题。
[0007]结合第一方面,在第一方面的一种可能的实现方式中,该预设数据为不合法码字。
[0008]预设数据是不合法码字可以更容易识别出该数据是错误数据。换句话说,在从内存中读取到一个数据后,判断该数据是否是合法码字;如果该数据不是合法码字,那么该数据可能是错误数据。
[0009]可选的,该预设数据与合法码字的汉明距离较大。这样,更容易确定从内存中获取的数据是否是错误数据。
[0010]结合第一方面,在第一方面的一种可能的实现方式中,该根据该错误数据指示信
息,将预设数据写入该内存,或者,将根据该目标数据确定的写入数据写入该内存,包括:在该错误数据指示信息指示该目标数据为该错误数据的情况下,将该预设数据写入该内存;在该错误数据指示信息指示该目标数据不是该错误数据的情况下,对该目标数据进行纠错编码得到该写入数据并将该写入数据写入该内存。
[0011]利用上述技术方案,可以在内存不降级使用的场景中,在来自于处理器的数据是错误数据的情况下,将预设数据写入内存;在来自于处理器的数据不是错误数据的情况下,对来自于处理器的数据正常进行纠错编码并将纠错编码得到的结果写入内存。
[0012]结合第一方面,在第一方面的一种可能的实现方式中,该内存包括第一内存颗粒模组和第二内存颗粒模组,该目标数据包括第一目标数据和第二目标数据,该错误数据指示信息包括对应于该第一目标数据的第一错误数据指示信息和对应于该第二目标数据的第二错误数据指示信息,该根据该错误数据指示信息,将预设数据写入该内存,或者,将根据该目标数据确定的写入数据写入该内存,包括:在该第一错误数据指示信息指示该第一目标数据为该错误数据或者该第二错误数据指示信息指示该第二目标数据为该错误数据的情况下,将该预设数据写入该第一内存颗粒模组和该第二内存颗粒模组;在该第一错误数据指示信息指示该第一目标数据不是该错误数据且该第二错误数据指示信息指示该第二目标数据不是该错误数据的情况下,对该第一目标数据和该第二目标数据进行纠错编码得到该写入数据并将该写入数据写入该第一内存颗粒模组和该第二内存颗粒模组。
[0013]利用上述技术方案,可以在内存降级使用的场景中,对于需要写入两个降级使用的存储器(即上述第一内存颗粒模组和第二内存颗粒模组)的数据,只要有一个数据是错误数据,那么就将预设数据写入降级使用的两个降级使用的存储器;如果两个数据都不是错误数据,那么对这两个数据进行纠错编码并将纠错编码得到的写入数据写入到这两个存储器中。纠错编码后得到的写入数据可以包括数据位和校验位,其中,数据位可以写入第一内存颗粒模组和第二内存颗粒模组。可选的,校验位可以写入第一内存颗粒模组和第二内存颗粒模组中的一个存储器。例如,校验位可以写入第二内存颗粒模组。校验位也可以写入第一内存颗粒模组和第二内存颗粒模组。例如,第一内存颗粒模组和第二内存颗粒模组各保存一半的校验位。
[0014]结合第一方面,在第一方面的一种可能的实现方式中,该内存包括第一内存颗粒模组和第二内存颗粒模组,该目标数据包括第一目标数据和第二目标数据,该错误数据指示信息包括对应于该第一目标数据的第一错误数据指示信息和对应于该第二目标数据的第二错误数据指示信息,该预设数据包括第一预设数据、第二预设数据和第三预设数据,该根据该错误数据指示信息,将预设数据写入该内存,或者,将根据该目标数据确定的写入数据写入该内存,包括:在该第一错误数据指示信息指示该第一目标数据为该错误数据且该第二错误数据指示信息指示该第二目标数据为该错误数据的情况下,将该第一预设数据写入该第一内存颗粒模组和该第二内存颗粒模组;在该第一错误数据指示信息指示该第一目标数据不是该错误数据且该第二错误数据指示信息指示该第二目标数据不是该错误数据的情况下,对该第一目标数据和该第二目标数据进行纠错编码得到该写入数据并将该写入数据写入该第一内存颗粒模组和该第二内存颗粒模组;在该第一错误数据指示信息指示该第一目标数据为该错误数据且该第二错误数据指示信息指示该第二目标数据不是该错误数据的情况下,根据该第二目标数据和该第二预设数据确定该写入数据并将该写入数据写
入该第一内存颗粒模组和该第二内存颗粒模组;在该第一错误数据指示信息指示该第一目标数据不是该错误数据且该第二错误数据指示信息指示该第二目标数据为该错误数据的情况下,根据该第一目标数据和该第三预设数据确定该写入数据并将该写入数据写入该第一内存颗粒模组和该第二内存颗粒模组。
[0015]上述技术方案是另一种内存降级使用场景中,如何保存指示错误数据的技术方案。上述技术方案设置了三个预设数据。这三个预设数据分别用于以下三种情况:第一种情况:需要写入两个降级使用的存储器(即上述第一内存颗粒模组和第二内存颗粒模组)的两个目标数据都是错误数据;第二种情本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种存储数据的方法,其特征在于,所述方法包括:获取来自于处理器的输出数据,所述输出数据包括待写入内存的目标数据和与所述目标数据对应的错误数据指示信息,所述错误数据指示信息用于指示所述目标数据是否是错误数据;根据所述错误数据指示信息,将预设数据写入所述内存,或者,将根据所述目标数据确定的写入数据写入所述内存。2.根据权利要求1所述的方法,其特征在于,所述预设数据为不合法码字。3.根据权利要求1或2所述的方法,其特征在于,所述根据所述错误数据指示信息,将预设数据写入所述内存,或者,将根据所述目标数据确定的写入数据写入所述内存,包括:在所述错误数据指示信息指示所述目标数据为所述错误数据的情况下,将所述预设数据写入所述内存;在所述错误数据指示信息指示所述目标数据不是所述错误数据的情况下,对所述目标数据进行纠错编码得到所述写入数据并将所述写入数据写入所述内存。4.根据权利要求1或2所述的方法,其特征在于,所述内存包括第一内存颗粒模组和第二内存颗粒模组,所述目标数据包括第一目标数据和第二目标数据,所述错误数据指示信息包括对应于所述第一目标数据的第一错误数据指示信息和对应于所述第二目标数据的第二错误数据指示信息,所述根据所述错误数据指示信息,将预设数据写入所述内存,或者,将根据所述目标数据确定的写入数据写入所述内存,包括:在所述第一错误数据指示信息指示所述第一目标数据为所述错误数据或者所述第二错误数据指示信息指示所述第二目标数据为所述错误数据的情况下,将所述预设数据写入所述第一内存颗粒模组和所述第二内存颗粒模组;在所述第一错误数据指示信息指示所述第一目标数据不是所述错误数据且所述第二错误数据指示信息指示所述第二目标数据不是所述错误数据的情况下,对所述第一目标数据和所述第二目标数据进行纠错编码得到所述写入数据并将所述写入数据写入所述第一内存颗粒模组和所述第二内存颗粒模组。5.根据权利要求1或2所述的方法,其特征在于,所述内存包括第一内存颗粒模组和第二内存颗粒模组,所述目标数据包括第一目标数据和第二目标数据,所述错误数据指示信息包括对应于所述第一目标数据的第一错误数据指示信息和对应于所述第二目标数据的第二错误数据指示信息,所述预设数据包括第一预设数据、第二预设数据和第三预设数据,所述根据所述错误数据指示信息,将预设数据写入所述内存,或者,将根据所述目标数据确定的写入数据写入所述内存,包括:在所述第一错误数据指示信息指示所述第一目标数据为所述错误数据且所述第二错误数据指示信息指示所述第二目标数据为所述错误数据的情况下,将所述第一预设数据写入所述第一内存颗粒模组和所述第二内存颗粒模组;在所述第一错误数据指示信息指示所述第一目标数据不是所述错误数据且所述第二错误数据指示信息指示所述第二目标数据不是所述错误数据的情况下,对所述第一目标数据和所述第二目标数据进行纠错编码得到所述写入数据并将所述写入数据写入所述第一内存颗粒模组和所述第二内存颗粒模组;
在所述第一错误数据指示信息指示所述第一目标数据为所述错误数据且所述第二错误数据指示信息指示所述第二目标数据不是所述错误数据的情况下,根据所述第二目标数据和所述第二预设数据确定所述写入数据并将所述写入数据写入所述第一内存颗粒模组和所述第二内存颗粒模组;在所述第一错误数据指示信息指示所述第一目标数据不是所述错误数据且所述第二错误数据指示信息指示所述第二目标数据为所述错误数据的情况下,根据所述第一目标数据和所述第三预设数据确定所述写入数据并将所述写入数据写入所述第一内存颗粒模组和所述第二内存颗粒模组。6.根据权利要求5所述的方法,其特征在于,所述根据所述第二目标数据和所述第二预设数据确定所述写入数据,包括:对第一合并数据进行N+M纠错编码,得到第一编码结果,其中所述第一合并数据为x
N/2+M
M2(x),M2(x)为所述第二目标数据,其中N与M为正整数;将所述第一编码结果与所述第二预设数据相加,得到所述写入数据;所述根据所述第一目标数据和所述第三预设数据确定所述写入数据,包括:对第二合并数据进行N+M纠错编码,得到第二编码结果,其中所述第一合并数据为x
M
M1(x),M1(x)为所述第一目标数据;将所述第二编码结果与所述第三预设数据相加,得到所述写入数据。7.一种读取数据的方法,其特征在于,所述方法包括:接收来自于内存的目标数据;根据预设数据和所述目标数据,确定向处理器发送的输出数据以及用于指示所述输出数据是否为错误数据的错误数据指示信息。8.根据权利要求7所述的方法,其特征在于,所述根据预设数据和所述目标数据,确定向处理器发送的输出数据以及用于指示所述输出数据是否为错误数据的错误数据指示信息,包括:确定所述目标数据与所述预设数据的汉明距离是否小于预设阈值;若所述汉明距离小于所述预设阈值,则确定所述输出数据为第一数据且所述错误数据指示信息用于指示所述第一数据为所述错误数据;若所述汉明距离大于或等于所述预设阈值,则对所述目标数据进行纠错译码;若译码成功,则确定向所述输出数据为译码数据且所述错误数据指示信息用于指示所述译码数据不是所述错误数据,所述译码数据是对所述目标数据进行纠错译码得到的数据;若译码失败,则确定所述输出数据为第二数据且所述错误数据指示信息用于指示所述第二数据为所述错误数据。9.根据权利要求7所述的方法,其特征在于,所述内存包括第一内存颗粒模组和第二内存颗粒模组,所述目标数据包括第一目标数据和第二目标数据,所述根据预设数据和所述目标数据,确定向处理器发送的输出数据以及用于指示所述输出数据是否为错误数据的错误数据指示信息,包括:确定所述目标数据与所述预设数据的汉明距离是否小于预设阈值;若所述汉明距离小于所述预设阈值,则确定所述输出数据为第一数据且所述错误数据
指示信息用于指示所述第一数据为所述错误数据;若所述汉明距离大于或等于所述预设阈值,则对所述目标数据进行纠错译码;若译码成功,则确定所述输出数据包括第一译码数据和第二译码数据且所述错误数据指示信息指示所述第一译码数据和所述第二译码数据不是所述错误数据,其中所述第一译码数据与所述第一目标数据对应,所述第二译码数据与所述第二目标数据对应;若译码失败,则确定所述输出数据包括第二数据和第三数据且所述输出数据用于指示所述第二数据和所述第三数据不是所述错误数据。10.根据权利要求7所述的方法,其特征在于,所述内存包括第一内存颗粒模组和第二内存颗粒模组,所述目标数据包括第一目标数据和第二目标数据,所述预设数据包括第一预设数据、第二预设数据和第三预设数据,所述根据预设数据和所述目标数据,确定向处理器发送的输出数据以及用于指示所述输出数据是否为错误数据的错误数据指示信息,包括:确定所述目标数据与所述预设数据的汉明距离是否小于预设阈值;若所述汉明距离小于所述预设阈值,则确定所述输出数据包括第三数据和第四数据,所述错误数据指示信息用于指示所述第三数据和所述第四数据是所述错误数据;若所述汉明距离大于或等于所述预设阈值,根据第一错误特征、第二错误特征和第三错误特征,对所述目标数据进行译码,根据译码结果确定所述输出数据以及用于指示所述输出数据是否为错误数据的错误数据指示信息,其中所述第一错误特征是所述目标数据的错误特征,所述第二错误特征是所述第二预设数据的错误特征,所述第三错误特征是所述第三预设数据的错误特征。11.根据权利要求10所述的方法,其特征在于,所述根据第一错误特征、第二错误特征和第三错误特征,对所述目标数据进行译码,根据译码结果,确定所述输出数据以及用于指示所述输出数据是否为错误数据的错误数据指示信息,包括:根据所述第一错误特征和所述第二错误特征对所述目标数据进行译码,得到第一译码结果;根据所述第一错误特征和所述第三错误特征对所述目标数据进行译码,得到第二译码结果;根据所述第一错误特征对所述目标数据进行译码,得到第三译码结果;若只有所述第一译码结果为成功,则确定所述输出数据包括第二译码数据和第二数据且所述错误数据指示信息用于指示所述第二译码数据不是所述错误数据且所述第二数据是所述错误数据,所述第二译码数据对应于所述第二目标数据;若只有所述第二译码结果为成功,则确定所述输出数据包括第三数据和第一译码数据,所述错误数据指示信息用于指示所述第三数据是所述错误数据且所述第一译码数据不是所述错误数据,所述第一译码数据对应于所述第一目标数据;若只有所述第三译码结果为成功,则确定所述输出数据包括所述第一译码数据和所述第二译码数据,所述输出数据用于指示所述第一译码数据和所述第二译码数据不是所述错误数据;若所述第一译码结果、所述第二译码结果和所述第三译码结果中的至少两个译码成功或者全部译码失败,则确定所述输出数据包括所述第三数据和所述第四数据,所述错误数
据指示信息用于指示所述第三数据和所述第四数据是所述错误数据。12.根据权利要求7、10或11所述的方法,其特征在于,所述内存包括第一内存颗粒模组和第二内存颗粒模组,所述目标数据包括第一目标数据和第二目标数据,所述预设数据包括第二预设数据和第三预设数据,所述根据预设数据和所述目标数据,确定向处理器发送的输出数据以及用于指示所述输出数据是否为错误数据的错误数据指示信息,包括:根据第一错误特征、第二错误特征和第三错误特征,确定所述输出数据以及所述错误数据指示信息,其中所述第一错误特征是所述目标数据的错误特征,所述第二错误特征是所述第二预设数据的错误特征,所述第三错误特征是所述第三预设数据的错误特征;若所述第一错误特征等于所述第三错误特征,则所述输出数据包括所述第一目标数据和所述第二目标数据且所述错误数据指示信息用于指示所述第一目标数据不是所述错误数据且所述第二目标数据是所述错误数据;若所述第一错误特征等于所述第二错误特征,则所述输出数据包括所述第一目标数据和所述第二目标数据且所述错误数据指示信息用于指示所述第一目标数据是所述错误数据且所述第二目标数据不是所述错误数据;若所述第一错误特征为全0多项式,则所述输出数据包括所述第一目标数据和所述第二目标数据且所述错误数据指示信息用于指示所述第一目标数据和所述第二目标数据均不是所述错误数据。13.一种内存控制器,其特征在于,包括:获取单元,用于获取来自于处理器的输出数据,所述...

【专利技术属性】
技术研发人员:林宪正孙翊宁李步蟾韩永祥白铂
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1