随机存储器失效的检测处理方法及其系统的制作方法

文档序号:6554163阅读:430来源:国知局
专利名称:随机存储器失效的检测处理方法及其系统的制作方法
技术领域
本发明涉及检测领域,尤其涉及一种CPU/DSP的RAM存储空间失效的检测处理方法及其系统。
背景技术
带有随机存储器(Random Access Memory,RAM)的器件在其生命周期中,会由于各种各样的原因导致功能失效,一般而言,硬件本身发生损坏的,我们称之为器件硬失效(Firm Error),否则,称之为器件软失效(Soft Error)。
软失效主要是由于带电粒子撞击器件的存储单元RAM引起的,这些高能粒子和半导体存储器的原子相互作用产生电子空穴对,该电子空穴对导致存储单元中存储信息的改变,进而导致器件功能错误。
上世纪70年代末的时候,工程人员就发现了软失效的现象,当时的原因是器件封装材料放射性杂质衰变发出α粒子,引起了电离效应,导致存储单元状态发生改变。随着半导体技术的发展、器件工艺尺寸的降低、工作电压的减少,现在发现宇宙射线同样也能引起器件软失效,且其影响的程度将比以往严重的多,因此现在器件软失效再次受到业界的关注。
所有带RAM的器件都有可能发生软失效,不过迄今为止业界关注较多的是基于RAM的现场可编程门阵列(Field Programmable Gate Array,FPGA)和专用集成电路(Application Specific Integrated Circuit,ASIC)等逻辑器件出现的软失效问题,而且在设计和防护上已经积累了一定的经验,但对于应用更广泛的CPU/DSP的静态随机存储器(Static Random Access Memory,SRAM)和动态随机存储器(Dynamic Random Access Memory,DRAM)的软失效问题则关注甚少。
实际上,CPU/DSP的SRAM和DRAM储存器照样存在严重的软失效情况,而且根据多个器件厂商提供的数据,折合成年失效率,1兆比特SRAM中出现1比特空间软失效的概率是千分之几的级别,对于通讯、航天和军用等对稳定性要求很严的产品而言,这是一个很高的失效率。
通过实际应用所捕获的软失效案例不在少数,某通讯厂商曾对某个特定产品的年度返修板进行统计,发现近80%的返修板在擦除存储器内的数据库并重下主机软件后可以修复,经过分析,里面很大概率是由于SRAM器件软失效导致的。在另外一个产品的某问题定位过程中,研发人员捕获到DSP内存中仅有某个程序比特位信息异常丢失的情况,而分析代码,是绝对不可能出现更改该比特位的情况,基本可以确定是由于DSP的SRAM存放程序比特位软失效导致的问题。
可以确定的是,在那些对CPU/DSP使用很频繁的商用产品中,出现SRAM或DRAM软失效的概率很大。其中有一些可以通过内存分析找到并确认是软失效引起的,但是绝大多数都会表现为一些无法重现的故障,比如复位、死机、无异常记录情况下部分功能错误等等。这一方面会影响产品的可靠性,另一方面为了定位这些问题会投入大量的人力,因此有必要将软失效的影响限制在最低的限度。

发明内容
本发明提供一种RAM失效的检测处理方法,用以及早发现CPU/DSP的RAM失效故障和减少RAM失效的发生。
基于上述方法,本发明还提供了一种RAM失效的检测处理系统。
本发明方法包括A、读取所述RAM中的程序内容;B、将读取的程序内容与正确的程序内容进行比对,当两者不一致时,判断所述RAM失效并进行数据修复;或者将读取的程序内容采用设定的校验方法进行数据校验,并与正确的校验结果进行比对,当两者不一致时,判断所述RAM失效并报警。
根据本发明的上述方法,若所述RAM可被CPU/DSP的高层控制实体访问,则由该高层控制实体读取所述RAM中的程序内容并将其与该高层控制实体本地存储的正确的程序内容进行比对,当两者不一致时,该高层控制实体将所述正确的程序内容加载到所述RAM中进行数据修复。
若所述RAM不能被CPU/DSP的高层控制实体访问,则由所述CPU/DSP读取所述RAM中的程序内容进行校验;或者预先在所述RAM中备份正确的程序内容;CPU/DSP将所述RAM中的程序内容与所述备份的程序内容进行比对,当两者不一致时,根据所述备份的程序内容修复所述RAM中的程序内容。
上述方法中,对所述RAM中的程序内容进行校验或比对,采用低优先级的任务触发。
根据本发明的上述方法,在进行程序内容比对时,将RAM中存储程序内容的数据单元与存储正确程序内容的数据单元逐一进行比对,并逐一对所述数据单元中的比特位进行比对。
根据本发明的上述方法,在进行数据修复后判断修复是否成功,若修复成功,则判断所述RAM发生软失效,并记录软失效相关信息;否则,重复修复过程;当重复修复次数达到预设阈值时,判断所述RAM发生硬失效,并上报硬件故障告警。
根据本发明的上述方法,对所述RAM中的程序内容按设定周期分批进行所述比对或校验。
上述方法中,分批对所述RAM中的程序内容进行校验,包括将上一批数据的校验结果值与下一批数据一起进行校验,得到下一批数据的校验结果值;
将最后一批数据的校验结果值作为所述RAM中的程序内容的最终校验结果。
上述方法中,采用循环冗余或奇偶校验方法对所述RAM中的程序内容进行校验。
根据本发明的上述方法,按照设定的间隔时间,重复所述步骤A和B。
本发明提供的RAM失效的检测处理系统,包括检测判断模块和失效处理模块;所述检测判断模块读取所述RAM中的程序内容;将读取的程序内容与正确的程序内容进行比对,当两者不一致时,判断所述RAM失效,发送修复指令到所述失效处理模块;或者将读取的程序内容采用设定的校验方法进行数据校验,并与正确的校验结果进行比对,当两者不一致时,判断所述RAM失效,发送报警指令到所述失效处理模块;所述失效处理模块接收到修复指令后,对所述RAM中的程序内容进行数据修复处理;接收到报警指令后,进行报警处理。
根据本发明的上述系统,若所述RAM能被CPU/DSP的高层控制实体访问,则所述检测判断模块和失效处理模块位于所述CPU/DSP的高层控制实体;所述检测判断模块读取所述RAM中的程序内容;将读取的程序内容与所述CPU/DSP的高层控制实体本地存储的正确的程序内容进行比对,当两者不一致时,判断所述RAM失效,发送修复指令到所述失效处理模块;所述失效处理模块接收到修复指令后,对所述RAM中的程序内容进行数据修复处理。
根据本发明的上述系统,若所述RAM不能被CPU/DSP的高层控制实体访问,则所述检测判断模块和失效处理模块位于所述CPU/DSP中;所述检测判断模块读取所述RAM中的程序内容;
将读取的程序内容采用设定的校验方法进行数据校验,并与正确的校验结果进行比对,当两者不一致时,判断所述RAM失效,发送报警指令到所述失效处理模块;或者将读取的程序内容与在所述RAM中备份的正确程序内容进行比对,当两者不一致时,判断所述RAM失效,发送修复指令到所述失效处理模块;所述失效处理模块接收到报警指令后,进行报警处理;接收到修复指令后,对所述RAM中的程序内容进行数据修复处理。
本发明的有益效果如下(1)本发明方法对CPU/DSP RAM中的程序内容进行周期性实时检测,可及时检测CPU/DSP中出现的程序空间RAM失效的情况,可以节省大量对RAM失效进行定位和分析的工作量。
(2)本发明针对可被高层控制实体访问的RAM,采用数据比对的方法,将RAM中运行的程序内容与高层控制实体中保存的正确的程序内容进行比对,在发现失效时,可自动进行数据修复,大大减少RAM失效发生所造成的影响;针对不可被高层控制实体访问的RAM,采用数据校验的方法,对RAM中的程序内容进行校验,当发现失效时,及时报警,以便及时采取相应的措施,将失效引起的影响降到最低。
(3)本发明简单可行,不需要增加额外的投资增强系统可靠性,既能及时检测失效情况,又不占用过多的系统处理资源,不影响正常业务。


图1为A类型CPU/DSP RAM失效的检测处理流程图;图2为B类型CPU/DSP RAM失效的检测处理流程图;图3为A类型CPU/DSP RAM失效的检测处理系统结构示意图;图4为B类型CPU/DSP RAM失效的检测处理系统结构示意图。
具体实施例方式
本发明针对存放在CPU/DSP RAM中的程序内容,采用周期不间断地与正确数据进行比对或者进行数据校验的方法,及时检测RAM存储器的失效情况;如果出现失效则启动程序下载修复、异常信息上报、告警指示等方法进行处置,尽量减少器件失效对系统的影响。
对于实际的产品,按照其存储空间是否可受高层访问的特性,CPU/DSP可以分为两种应用类型一类CPU/DSP的存储空间可以被高层控制实体访问,为了描述方便,简称其为A类;另一类CPU/DSP的存储空间不可被高层控制实体访问,简称其为B类。针对两类CPU/DSP的存储空间,需要采用不同的检测和处置方法。
对于A类型的CPU/DSP存储空间,CPU/DSP的片内外RAM可以直接被高层控制实体(一般也是采用高层的CPU或DSP作为控制实体)访问,在这种情况下,CPU/DSP的程序一般而言也是由高层控制实体下发加载的,高层控制实体自身的存储器中存储有CPU/DSP的正确程序代码。A类型CPU/DSPRAM的失效检测处理方法如图1所示。
参见图1,为A类型CPU/DSP RAM失效的检测处理流程图,具体包括步骤S1、初始化设置一个周期触发任务,并设定每个检测周期的数据单元的检测量。为了既能及时发现失效问题,又能保证不占用过多的高层控制实体处理能力,对检测周期时间和每周期检测规模的设置,需要平衡考虑检测及时性和高层控制实体处理能力,如以1秒为周期,一个周期内检测100个32比特位的数据。此外,还要设定最大重复修复次数;步骤S2、在检测周期内,高层控制实体不间断地逐个数据单元读取CPU/DSP RAM中的程序代码,并与自身存储器保存的正确程序代码的相应数据单元进行比对,对于每个存储单元要逐个数据比特位进行比对;步骤S3、在进行数据比对的过程中判断RAM中的程序代码是否与正确的程序代码一致,若发现不一致,则执行步骤S4,启动后续的处置措施;
否则,继续进行数据比对,在本周期结束或达到本周期设定的数据检测量时,记录本周期已检测的数据单元的最大地址,等进入下一个检测周期时,从该地址后的第一个地址处开始检测数据。一般情况下,程序代码在CPU/DSPRAM中顺序存储,因此可以通过记录本周期检测完成的数据单元的最大地址,得到下一个周期数据单元检测的起始地址。
步骤S4、高层控制实体将存储于其中的正确程序代码重新下发到RAM中出现数据错误的数据单元,进行修复;步骤S5、数据修复后,高层控制实体通过回读等方式判断修复是否成功,如果修复成功,则执行步骤S6,如果修复不成功,执行步骤S7;步骤S6、判断数据错误由软失效引起,在后台记录相关软失效信息,如软失效的数据单元地址,以备后续分析参考;然后,返回步骤S2,等待进入下一个检测周期;步骤S7、判断是否达到预先设定的最大重复修复次数,若未达到,则执行步骤S4,再次对出现数据错误的数据单元进行修复;若达到最大重复修复次数,则执行步骤S8;步骤S8、达到最大重复修复次数时仍未修复成功,则高层控制实体判断数据错误为器件硬失效引起,高层控制实体上报器件故障告警,触发系统更高层进行故障处理。
对于B类型的CPU/DSP存储空间,CPU/DSP的片内外RAM不能被外部直接访问,一般是通过邮箱的方式(即各在发送与接收数据的CPU/DSP中开辟共享内存空间,通过某种通讯机制进行信息传递的方式)或者外设通讯的方式与外部进行消息交互。B类型CPU/DSP存储空间中的应用程序要么在复位启动时通过邮箱加载,要么固化在RAM里面,通过包括不掉电等方式保证其信息不丢失。该类型的CUP/DSP向外部反馈异常信息的方式一般有两种,一是通过通讯通道向系统高层上报异常/告警信息,另一种是通过外设驱动告警设备产生声、光、电等类型的告警。B类型CPU/DSP RAM的失效检测处理方法如图2所示。
参见图2,为B类型CPU/DSP RAM失效的检测处理流程图,具体包括步骤S1、初始化设置一个周期触发任务,并设定每周期的数据单元的检测量。为了既能及时发现失效问题,又能保证不占用过多的CPU/DSP的处理能力,对周期时间和每周期检测规模的设置,需要平衡考虑检测及时性和CPU/DSP处理能力,如以1秒为周期,一个周期内检测100个32比特位的数据。为了保证CPU/DSP的关键任务的运行,可将该周期触发任务设置较低的优先级。
此外,还要设置一个理想的校验结果值,即事先对正确程序内容进行数据校验,并将得到的校验结果值作为理想的校验结果值。如,采用偶校验方法进行数据校验时,首先将正确程序代码的所有数据进行偶校验,即将所有数据单元中的数据的相应比特位进行异或运算,得到一个结果值,该结果值即为理想的校验结果值。
步骤S2、在检测周期内,CPU/DSP不间断地逐个数据单元读取CPU/DSPRAM中的程序代码,并进行数据校验;校验方法可以采用循环冗余校验(CyclicRedundancy Check,CRC)或者奇偶校验。CRC校验漏检率低,但所需的时间较长,偶校验所需的时间较短,但比CRC校验的漏检率高;如,采用偶校验方法时,在第一个检测周期内,读取100个32比特位的数据单元的数据,对这些数据的相应比特位进行异或运算,得到一个校验结果值;在以后的检测周期内,将上个周期的校验结果值和本周期的100个32位检测数据进行比特位异或运算,生成本周期的校验结果值;同时,在每个检测周期结束时,记录已检测过的数据单元的最大地址,CPU/DSP将记录的数据单元地址的下一个地址作为下一个检测周期的检测数据起始地址;步骤S3、在每个检测周期结束时,根据已检测完成的数据单元的最大地址判断RAM中的程序代码是否已经检测完一遍;若还没检测完一遍,则返回步骤S2,继续下个检测周期的数据校验;否则,执行步骤S4;步骤S4、若已将RAM中的程序内容检测完一遍,则CPU/DSP将最终的检验结果值与预设的理想结果值进行比较,若一致,则表示RAM中的程序内容正确,返回步骤S2,继续周期对RAM中的程序内容进行数据校验;若不一致,表示程序内容出现数据错误,则执行步骤S5;步骤S5、最终的校验结果值与预设的理想结果值不一致,则CPU/DSP判断是由于RAM失效造成的,此时,CPU/DSP根据系统需求通过通讯通道向系统高层上报异常/告警信息,或者通过外设驱动触发外部告警设备告警,或者同时通过上述两种途径进行报警。
对于B类型的CPU/DSP存储空间,如果CPU/DSP剩余内外存空间足够大,则可以在加载启动时将程序拷贝一份存放在CPU/DSP的剩余空间中,在周期任务中用数据比对而不是校验的方式进行失效检测,其比对方法同图1的流程,区别在于,由该CPU/DSP进行数据比对和修复,而不是高层控制实体。为了保证CPU/DSP的关键任务的运行,可将进行数据比对的任务设置较低的优先级。
对于A类型的CPU/DSP存储空间,虽然也可采用数据校验的方式进行失效的检测,但无论是CRC校验还是奇偶校验,都会对少数错误模式存在漏检现象,不会像数据比对那么完备,并且不能自动修复错误数据,因此对于A类型的CPU/DSP存储空间首选采用数据比对的方式进行失效的检测和处理。
针对A类型的CPU/DSP存储空间的失效检测处理流程,本发明提供了相应的检测处理系统。
参见图3,为A类型CPU/DSP RAM失效的检测处理系统结构示意图,具体包括位于CPU/DSP的高层控制实体中的检测判断模块和失效处理模块。
检测判断模块读取RAM中的程序内容,将读取的程序内容与高层控制实体本地存储的正确程序内容进行比对。检测判断模块在进行数据比对过程中,逐个将RAM中的存储程序内容的数据单元与正确程序内容的相应的数据单元进行比对,并逐个对数据单元中的数据比特位进行比对,并在发现数据不一致时,判断RAM失效,并发送修复指令到失效处理模块,携带RAM中出现问题的数据单元地址和与其相应的正确程序内容数据单元的地址;失效处理模块接收到修复指令后,按照接收到的数据单元的地址,将指定的高层控制实体中的正确程序内容加载到指定的RAM中的数据单元进行数据修复,并记录或输出所述RAM中出现问题的数据单元地址,以备后继分析参考。
针对B类型的CPU/DSP存储空间的效检测和处理流程,本发明提供了相应的检测处理系统。
参见图4,为B类型CPU/DSPRAM失效的检测处理系统结构示意图,具体包括位于CPU/DSP中的检测判断模块和失效处理模块。
检测判断模块读取RAM中的程序内容,将读取的程序内容采用CRC校验方法或奇偶校验方法进行数据校验,并将得到的校验结果与对正确的程序内容采用同样校验方法得到的校验结果进行比对,当两者不一致时,判断RAM失效,并发送报警指令到失效判断模块;失效处理模块收到报警指令后进行报警处理。
若B类型CPU/DSPRAM有足够大的存储空间,则在启动该RAM时,可将正确的程序内容备份到RAM中,检测判断模块读取RAM中的程序内容,将读取的程序内容与在RAM加载启动时备份的正确程序内容进行比对,当两者不一致时,判断RAM失效,发送修复指令到失效处理模块;失效处理模块接收到修复指令后,对RAM中的程序内容进行数据修复处理。
通过以上流程描述可知,本发明方法对CPU/DSP RAM中的程序内容进行周期性实时检测,可及时检测CPU/DSP中出现的程序空间RAM失效的情况,可以节省大量对RAM失效进行定位和分析的工作量。当检测到RAM失效后,自动启动对应的处理措施,将失效引起的影响降到最低。本发明针对可被高层控制实体访问的RAM,采用数据比对的方法,将RAM中的程序内容与高层控制实体中保存的正确程序内容进行比较,在发现RAM失效时,可自动进行数据修复,大大减少RAM失效发生所造成的影响;针对不可被高层控制实体访问的RAM,采用数据校验的方法,对RAM中的程序内容进行校验,当发现RAM失效时,及时报警,以便及时采取相应的措施。本发明简单可行,不需要增加额外的投资增强系统可靠性,既能及时检测失效情况,又不占用过多的系统处理资源,不影响正常业务。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种随机存储器RAM失效的检测处理方法,应用于对中央处理器CPU/数字信号处理器DSP的RAM失效的检测处理,该方法包括A、读取所述RAM中的程序内容;B、将读取的程序内容与正确的程序内容进行比对,当两者不一致时,判断所述RAM失效并进行数据修复;或者将读取的程序内容采用设定的校验方法进行数据校验,并与正确的校验结果进行比对,当两者不一致时,判断所述RAM失效并报警。
2.如权利要求1所述的方法,其特征在于,若所述RAM可被CPU/DSP的高层控制实体访问,则由该高层控制实体读取所述RAM中的程序内容并将其与该高层控制实体本地存储的正确的程序内容进行比对,当两者不一致时,该高层控制实体将所述正确的程序内容加载到所述RAM中进行数据修复。
3.如权利要求2所述的方法,其特征在于,若所述RAM不能被CPU/DSP的高层控制实体访问,则由所述CPU/DSP读取所述RAM中的程序内容进行校验;或者预先在所述RAM中备份正确的程序内容;CPU/DSP将所述RAM中的程序内容与所述备份的程序内容进行比对,当两者不一致时,根据所述备份的程序内容修复所述RAM中的程序内容。
4.如权利要求3所述的方法,其特征在于,对所述RAM中的程序内容进行校验或比对,采用低优先级的任务触发。
5.如权利要求1所述的方法,其特征在于,在进行程序内容比对时,将RAM中存储程序内容的数据单元与存储正确程序内容的数据单元逐一进行比对,并逐一对所述数据单元中的比特位进行比对。
6.如权利要求1所述的方法,其特征在于,在进行数据修复后判断修复是否成功,若修复成功,则判断所述RAM发生软失效,并记录软失效相关信息;否则,重复修复过程;当重复修复次数达到预设阈值时,判断所述RAM发生硬失效,并上报硬件故障告警。
7.如权利要求1所述的方法,其特征在于,对所述RAM中的程序内容按设定周期分批进行所述比对或校验。
8.如权利要求7所述的方法,其特征在于,分批对所述RAM中的程序内容进行校验,包括将上一批数据的校验结果值与下一批数据一起进行校验,得到下一批数据的校验结果值;将最后一批数据的校验结果值作为所述RAM中的程序内容的最终校验结果。
9.如权利要求1所述的方法,其特征在于,采用循环冗余或奇偶校验方法对所述RAM中的程序内容进行校验。
10.如权利要求1所述的方法,其特征在于,按照设定的间隔时间,重复所述步骤A和B。
11.一种RAM失效的检测处理系统,应用于对CPU/DSP的RAM失效的检测处理,其特征在于包括检测判断模块和失效处理模块;所述检测判断模块读取所述RAM中的程序内容;将读取的程序内容与正确的程序内容进行比对,当两者不一致时,判断所述RAM失效,发送修复指令到所述失效处理模块;或者将读取的程序内容采用设定的校验方法进行数据校验,并与正确的校验结果进行比对,当两者不一致时,判断所述RAM失效,发送报警指令到所述失效处理模块;所述失效处理模块接收到修复指令后,对所述RAM中的程序内容进行数据修复处理;接收到报警指令后,进行报警处理。
12.如权利要求11所述的系统,其特征在于,若所述RAM能被CPU/DSP的高层控制实体访问,则所述检测判断模块和失效处理模块位于所述CPU/DSP的高层控制实体;所述检测判断模块读取所述RAM中的程序内容;将读取的程序内容与所述CPU/DSP的高层控制实体本地存储的正确的程序内容进行比对,当两者不一致时,判断所述RAM失效,发送修复指令到所述失效处理模块;所述失效处理模块接收到修复指令后,对所述RAM中的程序内容进行数据修复处理。
13.如权利要求11所述的系统,其特征在于,若所述RAM不能被CPU/DSP的高层控制实体访问,则所述检测判断模块和失效处理模块位于所述CPU/DSP中;所述检测判断模块读取所述RAM中的程序内容;将读取的程序内容采用设定的校验方法进行数据校验,并与正确的校验结果进行比对,当两者不一致时,判断所述RAM失效,发送报警指令到所述失效处理模块;或者将读取的程序内容与在所述RAM中备份的正确程序内容进行比对,当两者不一致时,判断所述RAM失效,发送修复指令到所述失效处理模块;所述失效处理模块接收到报警指令后,进行报警处理;接收到修复指令后,对所述RAM中的程序内容进行数据修复处理。
全文摘要
本发明公开了一种RAM失效的检测处理方法,应用于对CPU/DSP的RAM失效的检测处理,包括读取所述RAM中的程序内容;将读取的程序内容与正确的程序内容进行比对,当两者不一致时,判断RAM失效并进行数据修复;或者将读取的程序内容采用设定的校验方法进行数据校验,并与正确的校验结果进行比对,当两者不一致时,判断RAM失效并报警。采用本发明方法,可及时检测CPU/DSP RAM失效的情况,及时采取相应的处理措施,将RAM失效引起的影响降到最低。
文档编号G06F11/28GK1851826SQ200610001749
公开日2006年10月25日 申请日期2006年1月25日 优先权日2006年1月25日
发明者李强 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1