一种DDR多比特ecc错误处理方法技术

技术编号:39305993 阅读:19 留言:0更新日期:2023-11-12 15:54
本发明专利技术涉及存储器技术领域,具体涉及一种DDR多比特ecc错误处理方法,包括以下步骤:S01)DDR控制器检测在不同写入数据下的ecc错误地址是否相同;S02)判定该ecc错误为软件故障或硬件故障;S03)当ecc错误为硬件故障时,对ecc报错地址单独进行读写;S04)根据读写结果判定ecc报错地址处是否出现ecc错误;S05)若是,则判定为颗粒故障;若否,则判定地址线间存在短路;S06)对不同的故障类型进行不同方式的修复。本发明专利技术可提高错误识别的准确率,可使用户快速对故障进行修复,提高了内存系统的稳定性,降低了维修成本。降低了维修成本。降低了维修成本。

【技术实现步骤摘要】
一种DDR多比特ecc错误处理方法


[0001]本专利技术涉及存储器领域,具体涉及一种DDR多比特ecc错误处理方法。

技术介绍

[0002]双倍速率同步动态随机存储器(DDR)在高频率的工作状态下,有时会出现内存阵列位翻转,进而导致数据位产生错误。当单一bit出现错误时,DDR控制器一般可通过ecc (错误检查和纠正)校验位内部识别出具体bit位置后根据寄存器自行纠正,但当多bit出现错误时,DDR控制器只能识别多bit错误的对应地址而无法识别多bit错误本身,此时,若DDR控制器将出现多bit错误的数据返回到CPU用于后续程序运行,则会出现运行错误。
[0003]现有技术中,针对不同多bit错误应具有不同的处理方法,若多bit错误由软件引起,则需要通过备份数据进行纠正,若多bit错误由硬件引起,则需要判断数据出现错误是因为地址线间短路还是颗粒故障。

技术实现思路

[0004]本专利技术提供了一种DDR多比特ecc错误处理方法,可对具体出现的多bit错误判断数据出现错误的原因。
[0005]本申请的技术方案为:一种DDR多比特ecc错误处理方法,包括以下步骤:S01)DDR控制器检测在不同写入数据下的ecc错误地址是否相同;S02)若否,DDR控制器判定该ecc错误为软件故障;若是,DDR控制器判定该ecc错误为硬件故障;S03)当ecc错误为硬件故障时,对ecc报错地址单独进行读写;S04)根据读写结果判定ecc报错地址处是否出现ecc错误;S05)若是,则判定为颗粒故障;若否,则判定地址线间存在短路;S06)当判定为颗粒故障时:对所述报错地址依次写入0或1,直至所有地址位均被0和1覆盖至少一遍;写入时,记录每次写入数据;写入后,将读出数据与所记录的写入数据比对后得出bit翻转位置,进而确定颗粒故障位置;当判定为地址线间存在短路时,从0地址开始写入数据并在每次写入数据后读取所述报错地址数据,判定检测是否出现ecc错误;若是,则对写入地址与所述报错地址的地址位进行比对,以通过异同点确定出现错误的地址位,根据出现错误的地址位检查通路上具体出现短路的位置;若否,则继续进行写入并进行下一次比对。
[0006]进一步地,所述步骤S02)中,当ecc错误为软件故障时,检测DDR是否具有备份数据;若是,则根据备份数据对写入数据进行修复;若否,则将此处标记为坏块并禁止后续访问。
[0007]本专利技术的有益效果是:1.本专利技术提供了针对多bit ecc错误的处理方法,提高了内存系统的稳定性。
[0008]2.当DDR产生多bit ecc错误时,硬件故障可被识别为颗粒故障或地址位短路,提高了故障识别效率。识别完成后,针对不同的故障种类采用不同的读写方式,可提高错误识别的准确率,可使用户快速对故障进行修复。
[0009]3.对颗粒故障的定位免去了逐一更换颗粒的繁琐步骤,也降低了维修成本。
附图说明
[0010]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为一种DDR多比特ecc错误处理方法流程图。
具体实施方式
[0011]一种DDR多比特ecc错误处理方法,包括以下步骤:S01)DDR控制器检测在不同写入数据下的ecc错误地址是否相同;S02)若否,DDR控制器判定该ecc错误为软件故障;若是,DDR控制器判定该ecc错误为硬件故障;S03)当ecc错误为硬件故障时,对ecc报错地址单独进行读写;S04)根据读写结果判定ecc报错地址处是否出现ecc错误;S05)若是,则判定为颗粒故障;若否,则判定地址线间存在短路;S06)当判定为颗粒故障时:对所述报错地址依次写入0或1,直至所有地址位均被0和1覆盖至少一遍;写入时,记录每次写入数据;写入后,将读出数据与所记录的写入数据比对后得出bit翻转位置,进而确定颗粒故障位置;当判定为地址线间存在短路时,从0地址开始写入数据并在每次写入数据后读取所述报错地址数据,判定检测是否出现ecc错误;若是,则对写入地址与所述报错地址的地址位进行比对,以通过异同点确定出现错误的地址位,根据出现错误的地址位检查通路上具体出现短路的位置;若否,则继续进行写入并进行下一次比对。
[0012]在一个实施例中,DRAM数据为32bit,其由4个
×
8颗粒组成,即某一地址读取数据会从4个颗粒上分别读取8bit数据后共同组成32bit。DDR控制器已判定ecc错误为硬件故障中的颗粒故障,并确定了报错地址。在此报错地址写入0
×
0,0
×
1,0
×2……0×
ffffffff,即所有的地址位均用0和1覆盖一遍,此时,写入的数据包含了所有可能的情况,例如0翻转为1或者1翻转为0,每次写入前记录写入数据。写入完成后读取报错地址的数据,并与所记录的数据进行比对,就可以确定是哪些bit发生了翻转,进而确定出现问题的DRAM颗粒。由于DRAM数据由4个
×
8颗粒组成,每8bit为一个单位,则bit0

bit7的数据来自第一个颗粒,bit8

bit15的数据来自第二个颗粒,以此类推。如果最终确定bit1和bit20对应的数据出现了错误,则可以确定出现故障的颗粒为第一颗和第三颗。
[0013]在一个实施例中,DRAM数据为32bit,其由4个
×
8颗粒组成,即某一地址读取数据会从4个颗粒上分别读取8bit数据后共同组成32bit。DDR控制器已判定ecc错误为硬件故障
中的地址线短路,并确定了报错地址,命名为地址B,对各写入地址命名为地址A。单独对出现错误的地址进行读写后不出现多bit ecc错误时,是因为地址线之间存在短路,即对地址A写入数据的同时牵连到了地址B,同时向地址B写入了数据,从而覆盖了地址B中的数据。在本实施例中,对地址A的地址位和地址B的地址位进行对比,通过地址位A0

A16进行映射,比较二者的异同点即可确定出现错误的地址位。地址A的地址位映射为17b

0000 0000 0000 0000 1,地址B的地址位映射为17b

0000 0000 0000 1000 1,当对地址A写入时,再读取B地址中的数据出现了ECC报错,则说明第五位,及A4处出现了异常,需要继续检查通路上具体出现短路的位置以排除故障。
[0014]以上描述的仅是本专利技术的基本原理和优选实施例,本领域技术人员根据本专利技术做出的改进和替换,属于本专利技术的保护范围。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种DDR多比特ecc错误处理方法,其特征在于,包括以下步骤:S01)DDR控制器检测在不同写入数据下的ecc错误地址是否相同;S02)若否,DDR控制器判定该ecc错误为软件故障;若是,DDR控制器判定该ecc错误为硬件故障;S03)当ecc错误为硬件故障时,对ecc报错地址单独进行读写;S04)根据读写结果判定ecc报错地址处是否出现ecc错误;S05)若是,则判定为颗粒故障;若否,则判定地址线间存在短路;S06)当判定为颗粒故障时:对所述报错地址依次写入0或1,直至所有地址位均被0和1覆盖至少一遍;写入时,记录每次写入数据;写入后,将读出数据与所记录的写入数据...

【专利技术属性】
技术研发人员:白祯帅粟如发王璞
申请(专利权)人:山东华芯半导体有限公司
类型:发明
国别省市:

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

1