一种内存纠错方法及系统技术方案

技术编号:8532714 阅读:256 留言:0更新日期:2013-04-04 15:39
本发明专利技术适用于纠错码技术领域,提供了一种内存纠错方法及系统,所述方法包括:如果传输数据的两个镜像通道都有错误位,镜像管理器向所述第一镜像通道的错误位中,填充修正数据集合中的修正数据,所述第一镜像通道为所述两个镜像通道中的任一镜像通道;所述镜像管理器校验填充后的所述第一镜像通道的错误位,如果校验正确,所述第一镜像通道纠错成功,如果校验错误,继续在所述修正数据集合中按照预设顺序选择修正数据填充入所述第一镜像通道的错误位,直到所述第一镜像通道校验正确。本发明专利技术,通过向错误位填充修正数据进行错误纠正,同时,镜像通道只需要保留CRC校验码,进一步提高存储器的空间利用率。

【技术实现步骤摘要】

本专利技术属于纠错码
,尤其涉及一种内存纠错方法及系统
技术介绍
在容错计算机领域,数据可靠性对整个系统的性能至关重要,特别是系统核心数据或重要的应用程序数据,其数据的可靠性直接影响整个系统的运行,由于动态随机访问存储器(Dynamic random access memory,DRAM)存储数据易出错,所以对于重要数据,经常采用内存镜像的方法进行1+1的数据备份。具体的,内存镜像的方法在一个内存镜像系统中,通常指定某两个双倍数据率(Dual data rate,DDR)通道互为镜像,任何的数据写操作,都同时写入两个通道,这样互为镜像的两个通道总是保存相同的数据内容;读操作则可以同时读取两个通道,也可以选取任意一个读取。采用上述内存镜像的方法进行1+1的数据备份,镜像内存系统常见的结构如图1所示,主控制器发起内存读写,在镜像模式下,两个DDR通道之间通过镜像管理模块管理,主控器发起写操作时,镜像管理模块将同时向两个通道发起写内存的操作,保证两个通道总是拥有相同的数据镜像。其中,主控器发起读操作后有两种方式处理,一种是同时读取两个通道,任何一个先返回数据,或者任意一个返回的数据校验正确,则将其读数据返回主控器;另一种方法是采用负载均衡的方法,首先只读取其中一个通道,如果其返回数据校验错误,且错误不可纠正,则读取其镜像通道,完成读操作。现有纠错方法有以下两种,第一情况是可靠性内存系统中通常采用带错误纠正码(Error Correction Code, ECC)的双列直插式存储模块(Dual in-line memory module,DMM),其数据宽度为72位,通道有效数据为64位,另外8位可以用于存储数据的校验码。最简单的采用64位数据+8位ECC校验码,实现纠I检2的方案,其中纠I为纠正I位错误,检2为检测2位错误。这种方法数据存储,如图2所示。如果两个互为镜像的通道都产生了不可纠正的错误数据,则镜像系统中的数据错误亦不可纠正。比如图2中所示的纠错误方案中,如果一组数据的两个通道都发生了 2位错误,则主控器将不能得到正确的数据。另外一种常见的方式是将多组64位的数据联合起来形成检错和纠错能力更强的校验码,比如N组64位数据加N组8位校验码,从而实现更多位错误的检测和纠正。这种方法数据存储,如图3所示。但是,一组数据的两个通道都独立的采用相同的校验方案,通道冗余备份,存储器的空间利用率不高。综上所述,现有镜像系统中只是通道数据的冗余备份增加了数据的可靠性,并没有将两个通道的数据进行有效的组织,相对来说两个通道还是独立的进行数据存储和校验的,存在一组数据的两个通道都发生了 2位错误,主控器不能得到正确的数据,和存储器的空间利用率不高的问题,因此,需要一种更有效解决校验和存储空间利用率不高的问题的方法。
技术实现思路
本专利技术实施例提供了一种内存纠错方法及系统,旨在解决现有镜像系统中一组数据的两个镜像通道都发生了不可纠正的错误时,主控器不能得到正确的数据,和存储器的空间利用率不闻的问题。第一方面,提供一种内存纠错方法,所述内存纠错方法包括如果传输数据的两个镜像通道都有错误位,镜像管理器向所述第一镜像通道的错误位中,填充修正数据集合中的修正数据,所述第一镜像通道为所述两个镜像通道中的任一镜像通道;所述镜像管理器校验填充后的所述第一镜像通道的错误位,如果校验正确,所述第一镜像通道纠错成功,如果校验错误,继续在所述修正数据集合中按照预设顺序选择修正数据填充入所述第一镜像通道的错误位,直到所述第一镜像通道校验正确。进一步的,所述内存纠错方法还包括所述修正数据集合为的穷举数据集合。进一步的,所述内存纠错方法还包括所述镜像管理器对比所述两个镜像通道,将所述两个镜像通道中不同的位标记为所述错误位。进一步的,所述内存纠错方法还包括所述镜像管理器根据所述数据的校验方案,获取校验码。进一步的,所述内存纠错方法具体包括如果所述数据为一组独立校验数据,所述镜像管理器读取所述第一镜像通道的循环冗余校验码,作为校验码;如果所述数据为多组联合校验数据,所述镜像管理器按照预设规则,组合多个镜像通道的循环冗余校验码,生成校验码。进一步的,所述内存纠错方法还包括当所述第一镜像通道校验正确之后,所述镜像管理器根据所述第一镜像通道,对所述两个镜像通道中的另一个镜像通道进行纠正。第二方面,提供一种镜像管理器,所述镜像管理器包括纠错单元,用于如果传输数据的两个镜像通道都有错误位,向所述第一镜像通道的错误位中,填充修正数据集合中的修正数据,所述第一镜像通道为所述两个镜像通道中的任一镜像通道;校验单元,用于校验填充后的所述第一镜像通道的错误位,如果校验正确,所述第一镜像通道纠错成功,如果校验错误,继续在所述修正数据集合中按照预设顺序选择修正数据填充入所述第一镜像通道的错误位,直到所述第一镜像通道校验正确。进一步的,所述镜像管理器还包括错误位获取单元,用于对比所述两个镜像通道,将所述两个镜像通道中不同的位标记为所述错误位。进一步的,所述镜像管理器还包括校验码获取单元,用于根据所述数据的校验方案,获取校验码。进一步的,所述校验码获取单元包括独立校验码获取模块,用于如果所述数据为一组独立校验数据,读取所述第一镜像通道的循环冗余校验码,作为校验码;联合校验码获取模块,用于如果所述数据为多组联合校验数据,按照预设规则,组合多个镜像通道的循环冗余校验码,生成校验码。进一步的,所述镜像管理器还包括镜像通道恢复单元,用于当所述第一镜像通道校验正确之后,根据所述第一镜像通道,对所述两个镜像通道中的另一个镜像通道进行纠正。第三方面,提供一种镜像管理器,所述镜像管理器包括微处理器,用于如果传输数据的两个镜像通道都有错误位,向所述第一镜像通道的错误位中,填充修正数据集合中的修正数据,所述第一镜像通道为所述两个镜像通道中的任一镜像通道;校验填充后的所述第一镜像通道的错误位,如果校验正确,所述第一镜像通道纠错成功,如果校验错误,继续在所述修正数据集合中按照预设顺序选择修正数据填充入所述第一镜像通道的错误位,直到所述第一镜像通道校验正确。进一步的,所述微处理器还用于对比所述两个镜像通道,将所述两个镜像通道中不同的位标记为所述错误位。进一步的,所述微处理器还用于根据所述数据的校验方案,获取校验码。进一步的,所述微处理器具体用于如果所述数据为一组独立校验数据,读取所述第一镜像通道的循环冗余校验码,作为校验码;如果所述数据为多组联合校验数据,按照预设规则,组合多个镜像通道的循环冗余校验码,生成校验码。进一步的,所述微处理器还用于当所述第一镜像通道校验正确之后,根据所述第一镜像通道,对所述两个镜像通道中的另一个镜像通道进行纠正。第四方面,提供一种内存纠错系统,所述内存纠错系统包括所述镜像管理器。在本专利技术实施例,利用数据的镜像通道的冗余数据,实现现有方案下镜像通道都存在不可纠正错误时,通过向错误位填充修正数据进行错误纠正,同时,镜像通道只需要保留CRC校验码,进一步提闻存储器的空间利用率。附图说明图1是
技术介绍
提供的镜像内存系统常见的结构的示意图;图2是
技术介绍
提供的64位数据+8位ECC的数据存储示意图;图3是
技术介绍
提供的N组64位数据+N组8位ECC的数据存储示意图;图4本文档来自技高网
...

【技术保护点】
一种内存纠错方法,其特征在于,所述内存纠错方法包括:如果传输数据的两个镜像通道都有错误位,镜像管理器向所述第一镜像通道的错误位中,填充修正数据集合中的修正数据,所述第一镜像通道为所述两个镜像通道中的任一镜像通道;所述镜像管理器校验填充后的所述第一镜像通道的错误位,如果校验正确,所述第一镜像通道纠错成功,如果校验错误,继续在所述修正数据集合中按照预设顺序选择修正数据填充入所述第一镜像通道的错误位,直到所述第一镜像通道校验正确。

【技术特征摘要】
1.一种内存纠错方法,其特征在于,所述内存纠错方法包括 如果传输数据的两个镜像通道都有错误位,镜像管理器向所述第一镜像通道的错误位中,填充修正数据集合中的修正数据,所述第一镜像通道为所述两个镜像通道中的任一镜像通道; 所述镜像管理器校验填充后的所述第一镜像通道的错误位,如果校验正确,所述第一镜像通道纠错成功,如果校验错误,继续在所述修正数据集合中按照预设顺序选择修正数据填充入所述第一镜像通道的错误位,直到所述第一镜像通道校验正确。2.如权利要求1所述的内存纠错方法,其特征在于,所述修正数据集合为的穷举数据集合。3.如权利要求2所述的内存纠错方法,其特征在于,在所述镜像管理器向所述第一镜像通道的错误位中,填充修正数据集合中的修正数据,所述第一镜像通道为所述两个镜像通道中的任一镜像通道之前,还包括 所述镜像管理器对比所述两个镜像通道,将所述两个镜像通道中不同的位标记为所述错误位。4.如权利要求2或3所述的内存纠错方法,其特征在于,在所述校验填充后的所述第一镜像通道的错误位之前,还包括 所述镜像管理器根据所述数据的校验方案,获取校验码。5.如权利要求4所述的内存纠错方法,其特征在于,所述镜像管理器根据所述数据的校验方案,获取校验码,具体为 如果所述数据为一组独立校验数据,所述镜像管理器读取所述第一镜像通道的循环冗余校验码,作为校验码; 如果所述数据为多组联合校验数据,所述镜像管理器按照预设规则,组合多个镜像通道的循环冗余校验码,生成校验码。6.如权利要求4所述的内存纠错方法,所述方法还包括 当所述第一镜像通道校验正确之后,所述镜像管理器根据所述第一镜像通道,对所述两个镜像通道中的另一个镜像通道进行纠正。7.一种镜像管理器,其特征在于,所述镜像管理器包括 纠错单元,用于如果传输数据的两个镜像通道都有错误位,向所述第一镜像通道的错误位中,填充修正数据集合中的修正数据,所述第一镜像通道为所述两个镜像通道中的任一镜像通道; 校验单元,用于校验填充后的所述第一镜像通道的错误位,如果校验正确,所述第一镜像通道纠错成功,如果校验错误,继续在所述修正数据集合中按照预设顺序选择修正数据填充入所述第一镜像通道的错误位,直到所述第一镜像通道校验正确。8.如权利要求7所述的镜像管理器,其特征在于,所述镜像管理器还包括 ...

【专利技术属性】
技术研发人员:程永波贺成洪兰可嘉
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1