CN115904797A - 基于现场可编程门阵列的cpu内存诊断方法、系统和设备 - Google Patents
基于现场可编程门阵列的cpu内存诊断方法、系统和设备 Download PDFInfo
- Publication number
- CN115904797A CN115904797A CN202310166339.8A CN202310166339A CN115904797A CN 115904797 A CN115904797 A CN 115904797A CN 202310166339 A CN202310166339 A CN 202310166339A CN 115904797 A CN115904797 A CN 115904797A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- bits
- cpu
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明涉及一种基于现场可编程门阵列的CPU内存诊断方法、系统和设备,属于工业控制技术领域,该方法、系统和设备,在安全仪表系统中所使用的CPU无ECC功能时,通过基于现场可编程门阵列,连接CPU和存储器,接收并处理CPU发送的读写内存的指令,在进行数据读写的同时,进行数据校验,从而实现对内存故障的诊断,在数据传输错误时及时进行纠错处理,提升CPU内存性能。在处理过程中,通过设置原数据和取反后数据,进行数据校验,提升了数据传输的准确性,从而最终能够提升安全仪表系统的安全完整性,使之满足认证要求。
Description
技术领域
本发明涉及工业控制技术领域,具体涉及一种基于现场可编程门阵列的CPU内存诊断方法、系统和设备。
背景技术
安全仪表系统(Safety Instrumented System,SIS)为工厂控制系统中报警和联锁部分,对控制系统中检测的结果实施报警动作或调节或停机控制,是工厂企业自动控制中的重要组成部分,其本质为用于降低生产过程风险的安全保护系统,本身具有一定的安全完整性水平,需经专门机构认证。为满足认证所需的安全完整性等级(Safety IntegrityLevel,SIL)要求,SIS不仅能够及时响应被控系统因超过安全极限而带来的风险,还必须能够检测和处理自身故障,保证系统整体危险失效概率满足认证标准要求。
相关技术中,基本的安全仪表系统至少由主控模块、通讯模块、电源模块等构成,其中,主控模块可以CPU为主控芯片进行设计,在以CPU为主控芯片的产品中,内存对应用程序的安全稳定运行起着至关重要的作用。但是,在满足国产化、自主可控需求的前提下,大部分国产芯片无法实现CPU内存的故障诊断与恢复,使得CPU内存在出现故障时无法及时处理。
因此,如何对CPU内存性能进行诊断,成为现有技术中亟待解决的技术问题。
发明内容
有鉴于此,本发明的目的在于提供一种基于现场可编程门阵列的CPU内存诊断方法、系统和设备,以克服目前大部分无ECC功能的国产芯片无法实现CPU内存的故障诊断与恢复,使得CPU内存在出现故障时无法及时处理的问题。
为实现以上目的,本发明采用如下技术方案:
一方面,一种基于现场可编程门阵列的CPU内存诊断方法,应用于安全仪表系统的CPU内存数据读取故障检测纠错;所述CPU无ECC功能,所述方法包括:
响应CPU发送的读指令,在第一内存和第二内存中分别读取原数据和取反后数据;所述第一内存与所述第二内存的存储地址相同或不同;
对所述取反后数据的数据位按位取反后得到目标数据,对比所述目标数据与所述原数据的数据位;
若所述目标数据与所述原数据的数据位一致,则将所述原数据的数据位发送给所述CPU;
若所述目标数据与所述原数据的数据位不一致,则进行纠错流程。
可选的,所述纠错流程,包括:
对比所述目标数据与所述原数据,判断两者的数据位每个字节中是否只有一位不同;
若所述目标数据与所述原数据的数据位每个字节中仅有一位不同,则根据校验位纠正所述原数据的数据位,并将纠正后的正确数据发送给所述CPU;其中,所述校验位为根据奇校验得到。
可选的,所述根据校验位纠正所述原数据的数据位,包括:
确定所述目标数据和所述原数据中不同数据位所在的字节所对应的校验位数据,根据所述校验位数据确定所述字节中二进制数据1的个数为奇数或偶数,作为奇偶结果;
在所述目标数据和所述原数据的数据位中,确定所述字节中二进制数据1的个数与所述奇偶结果相匹配的数据,作为纠正后的正确数据的数据位。
可选的,所述在所述目标数据和所述原数据的数据位中,确定所述字节中二进制数据1的个数与所述奇偶结果相匹配的数据,作为纠正后的正确数据的数据位,还包括:
若所述目标数据和所述原数据不同的数据位对应的字节中,二进制数据1的个数均与所述奇偶结果相同,则发送数据错误提醒。
可选的,所述在所述目标数据和所述原数据的数据位中,确定所述字节中二进制数据1的个数与所述奇偶结果相匹配的数据,作为纠正后的正确数据的数据位,包括:
若所述目标数据和所述原数据不同的数据位对应的字节中,确定任一对应的二进制数据1的个数与所述奇偶结果相同,则将该字节对应的目标数据或原数据的数据位作为纠正后的正确数据的数据位。
可选的,还包括:
若所述目标数据的数据位与所述原数据的数据位每个字节中不同的位数大于一位,则发送数据错误提醒。
又一方面,一种基于现场可编程门阵列的CPU内存诊断方法,应用于安全仪表系统的CPU内存数据写入;所述方法包括:
响应CPU发送的写指令,所述写指令携带待写入数据,对所述待写入数据进行奇校验得到校验位;以及,对所述待写入数据的数据位按位取反得到取反数据;
将所述校验位与所述待写入数据作为原数据写入第一内存;以及,将所述取反数据和所述校验位作为取反后数据写入第二内存;
其中,所述原数据与所述取反后数据一一对应,所述第一内存与所述第二内存的存储地址相同或不同。
可选的,所述对所述待写入数据进行奇校验得到校验位,包括:
对所述待写入数据按照每8位进行奇校验的规则进行奇校验,得到二进制校验位作为所述校验位。
又一方面,一种安全仪表系统的CPU内存诊断系统,包括:CPU、现场可编程门阵列和内存组;所述内存组包括第一内存和第二内存;
所述现场可编程门阵列分别与所述CPU和内存组相连;
所述现场可编程门阵列根据上述任一所述的基于现场可编程门阵列的CPU内存诊断方法在所述内存组组中进行数据读取;
所述现场可编程门阵列根据上述任一所述的基于现场可编程门阵列的CPU内存诊断方法在所述内存组中进行数据写入。
又一方面,一种基于现场可编程门阵列的CPU内存诊断设备,包括处理器和存储器,所述处理器与存储器相连:
其中,所述处理器,用于调用并执行所述存储器中存储的程序;
所述存储器,用于存储所述程序,所述程序至少用于执行上述任一项所述的基于现场可编程门阵列的CPU内存诊断方法。
本发明提供的技术方案至少具备如下有益效果:
在安全系统系统中,当CPU无ECC功能时,通过基于现场可编程门阵列,连接CPU和存储器,接收并处理CPU发送的读写内存的指令,在进行数据读写的同时,进行数据校验,从而实现对内存故障的诊断,在数据传输错误时及时进行纠错处理,提升CPU内存性能。在处理过程中,通过设置原数据和取反后数据,进行数据校验,提升了数据传输的准确性,从而最终能够提升安全仪表系统的安全完整性,使之满足认证要求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的一种应用于数据读取故障检测纠错的基于现场可编程门阵列的CPU内存诊断方法的流程示意图;
图2为本发明一实施例提供的一种应用于数据写入的基于现场可编程门阵列的CPU内存诊断方法的流程示意图;
图3为本发明一实施例提供的一种安全仪表系统的CPU内存诊断系统的连接原理示意图;
图4为本发明一实施例提供的一种基于现场可编程门阵列的CPU内存诊断设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
如背景技术记载,相关技术中在满足国产化、自主可控需求的前提下,大部分国产芯片无法实现CPU内存的故障诊断与恢复,使得CPU内存在出现故障时无法及时处理。因此,如何对CPU内存性能进行诊断,成为现有技术中亟待解决的技术问题。
大部分国产芯片中,均不存在ECC(Error Checking and Correcting,错误检验和纠正)功能,即CPU内存无法实现自身故障诊断与恢复,无法满足全国产化、自主可控需要。
基于此,本发明实施例提供了一种基于现场可编程门阵列的CPU内存诊断方法、系统和设备。
图1为本发明一实施例提供的一种应用于数据读取故障检测纠错的基于现场可编程门阵列的CPU内存诊断方法的流程示意图,CPU无ECC功能,参阅图1,应用于安全仪表系统的CPU内存数据读取故障检测纠错,本实施例可以包括以下步骤:
步骤S11、响应CPU发送的读指令,在第一内存和第二内存中分别读取原数据和取反后数据;第一内存与第二内存的存储地址相同或不同。
在一个具体的实现过程中,可以首先进行硬件设置,设置将现场可编程门阵列(Field Programmable Gate Array,FPGA)连接于CPU和内存组之间,由FPGA分别于CPU和内存组相互通信。其中,内存组可以包括第一内存和第二内存,第一内存与第二内存的存储地址相同或不同。可选的,内存组中的内存可以为DDR内存(Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
在数据读取过程中,CPU可以向FPGA发送数据读取指令(即读指令),FPGA接收到读指令后,分别读取原数据和取反后数据。其中,原数据和取反后数据可以存储在同一存储地址的内存中,也可以分别存储在不同存储地址的内存中。
值得说明的是,CPU发送的读指令可以携带需要读取的原数据和取反后数据的读取标识,从而使得FPGA读取对应的原数据和取反后数据。
步骤S12、对取反后数据的数据位按位取反后得到目标数据,对比目标数据与原数据的数据位。
在读取到原数据和取反后数据后,对取反后数据的数据位进行按位取反操作,得到目标数据,并比较目标数据和原数据的数据位。
步骤S13、若目标数据与原数据的数据位一致,则将原数据的数据位发送给CPU。
当比较到目标数据和原数据的数据位一致时,则说明数据传输无问题,FPGA将原数据的数据位发送给CPU。可以理解的是,也可以将目标数据发送给CPU。
步骤S14、若目标数据与原数据的数据位不一致,则进行纠错流程。
当比较到目标数据和原数据的数据位不一致时,则说明数据传输出现故障,FPGA进行纠错流程。
例如,当CPU需要从内存读数据0x12345678时,将读命令发送给FPGA;FPGA分别读取原数据0xb12345678和取反后数据0xbedcba987;FPGA把0xbedcba987的数据位按位取反得到目标数据0x12345678,将目标数据0x12345678与读出的原数据的数据位0x12345678进行比较,两者一致,则把数据0x12345678发送给CPU。
可以理解的是,采用本实施例提供的技术方案,在安全系统系统中,当CPU无ECC功能时,通过基于现场可编程门阵列,连接CPU和存储器,接收并处理CPU发送的读内存的指令,在进行数据读写的同时,进行数据校验,从而实现对内存故障的诊断,在数据传输错误时及时进行纠错处理,提升CPU内存性能。在处理过程中,通过设置原数据和取反后数据,进行数据校验,提升了数据传输的准确性,从而最终实现提升使整体系统通过安全仪表系统的安全完整性满足认证要求。
在一些实施例中,纠错流程,包括:
对比目标数据与原数据,判断两者的数据位每个字节中是否只有一位不同;
若目标数据与原数据的数据位每个字节中仅有一位不同,则根据校验位纠正原数据的数据位,并将纠正后的正确数据发送给CPU;其中,校验位为根据奇校验得到。
具体的,在确定目标数据与原数据的数据位不一致时,则判断目标数据与原数据的数据位中每个字节中是否只有一个数位不相同,当确定到二者每个字节只有一个数位不同时,则说明可以对数据进行纠错,根据校验位纠正原数据的数据位,将纠正后数据的数据位发送给CPU。其中,纠正后的正确数据为原数据的数据位。
可以理解的是,本实施例提供的技术方案,通过判断目标数据与原数据的数据位每个字节中仅有一位不同,当仅有一个数位不同时,进行纠错,保证了纠错的准确性。
在一些实施例中,根据校验位纠正原数据的数据位,包括:
确定目标数据和原数据中不同数据位所在的字节所对应的校验位数据,根据校验位数据确定字节中二进制数据1的个数为奇数或偶数,作为奇偶结果;
在目标数据和原数据的数据位中,确定字节中二进制数据1的个数与奇偶结果相匹配的数据,作为纠正后的正确数据的数据位。
具体的,可以确定字节中不同的数位对应的校验位的数据,根据校验位的数据确定该字节中不同的数位所在的数位组对应二进制数据中1的个数为奇数或偶数,作为奇偶结果;在目标数据和原数据的数据位对应的数位组中,确定二进制数据中1的个数与奇偶结果相匹配的数据,作为纠正后的原数据的数据位。
在一些实施例中,在目标数据和原数据的数据位中,确定字节中二进制数据1的个数与奇偶结果相匹配的数据,作为纠正后的正确数据的数据位,包括:若目标数据和原数据不同的数据位对应的字节中,确定任一对应的二进制数据1的个数与奇偶结果相同,则将该字节对应的目标数据或原数据的数据位作为纠正后的正确数据的数据位。
具体的,若目标数据和原数据的数据位对应的数位组中,确定任一对应的二进制数据中1的个数与奇偶结果相同,则将该数位组对应的目标数据或原数据的数据位作为纠正后的原数据的数据位。
例如,读出的原数据为0xb52345678,原数据的数据位为0x52345678,读出的取反后数据的数据位按位取反后得到的目标数据为0x12345678。判断到两者中仅有一位不同,即原数据的数据位的最高位“5”和目标数据的最高位的“1”不同,此时,进入纠错流程。
确定到原数据的数据位的最高位“5”对应校验位“b(1011)”中的高位“1”,最高位“5”所在的数位组“52”的二进制数据对应校验位“b(1011)”中的高位“1”,即高8位对应的校验位为1,说明高8位中共有偶数个1,将偶数个1作为奇偶结果。
其中,校验位的获得方式为:为对待写入数据按照每8位进行奇校验的规则进行奇校验,得到二进制校验位作为校验位。
因此,根据ox确定原数据的数据位中的十六进制高8位“52”对应的二进制数据“0101 0010”,其中1的个数为3个,为奇数;目标数据中的十六进制高8位“12”对应的二进制数据“0001 0010”,其中1的个数为2个,为偶数。故,偶数与上述的奇偶结果中的偶数相匹配,确定目标数据“0x12345678”为纠正后的原数据的数据位,发送给CPU。
可以理解的是,采用本实施例提供的技术方案,若目标数据的数据位与原数据的数据位每个字节中只有一位不同,通过判断目标数据和原数据的数据位对应的数位组中,任一对应的二进制数据中1的个数与奇偶结果相同,则将该数位组对应的目标数据或原数据的数据位作为纠正后的原数据的数据位,提升了数据纠错的准确性。
在一些实施例中,在在目标数据和原数据的数据位中,确定字节中二进制数据1的个数与奇偶结果相匹配的数据,作为纠正后的正确数据的数据位,还包括:
若目标数据和原数据不同的数据位对应的字节中,二进制数据1的个数均与奇偶结果相同,则发送数据错误提醒。
具体的,若目标数据和原数据的数据位对应的数位组中,确定的二进制数据中1的个数均与奇偶结果相同,则发送数据错误提醒。
例如,读出的原数据为0xb72345678,原数据的数据位为0x72345678,读出的取反后数据的数据位按位取反后得到的目标数据为0x12345678。判断到两者中仅有一位不同,即两者数据位的最高位不同,“7”与“1”不同,此时,进入纠错流程。
需要看校验位b,原数据的数据位的最高位“7”对应校验位“b(1011)”中的高位“1”,最高位“7”所在的数位组“72”的二进制数据对应校验位“b(1011)”中的高位“1”,即高8位对应的校验位为1,说明高8位中共有偶数个1,将偶数个1作为奇偶结果。
根据ox确定原数据的数据位中的十六进制高8位“72”对应的二进制数据“01110010”,其中1的个数为4个,为偶数;目标数据中的十六进制高8位“12”对应的二进制数据“0001 0010”,其中1的个数为2个,为偶数。故,两个数据的高8位中都有偶数个1,无法判断正确数据,FPGA向CPU发出错误报警,CPU接收错误报警后执行内存错误报警程序。
可以理解的是,采用本实施例提供的技术方案,若目标数据的数据位与原数据的数据位每个字节中只有一位不同,通过在目标数据和原数据的数据位对应的数位组中,确定的二进制数据中1的个数均与奇偶结果相同,则发送数据错误提醒,从而进行错误提醒,以使用户进行维修,提升数据传输准确率。
在一些实施例中,还包括:
若目标数据的数据位与原数据的数据位每个字节中不同的位数大于一位,则发送数据错误提醒。
可以理解的是,采用本实施例提供的技术方案,在目标数据的数据位与原数据的数据位每个字节中不同的位数大于一位,则发送数据错误提醒,从而保证在数据传输故障较大时,直接进行错误提醒,从而及时对故障进行维修,提升数据读取准确率。
基于一个总的发明构思,本发明一实施例提供一种应用于数据写入的基于现场可编程门阵列的CPU内存诊断方法。
图2为本发明一实施例提供的一种应用于数据写入的基于现场可编程门阵列的CPU内存诊断方法的流程示意图,参阅图2,用于安全仪表系统的CPU内存数据写入,本发明实施例提供的方法可以包括以下步骤:
步骤S21、响应CPU发送的写指令,写指令携带待写入数据,对待写入数据进行奇校验得到校验位;以及,对待写入数据的数据位按位取反得到取反数据;
步骤S22、将校验位与待写入数据作为原数据写入第一内存;以及,将取反数据和校验位作为取反后数据写入第二内存;其中,原数据与取反后数据一一对应,第一内存与第二内存的存储地址相同或不同。
在一些实施例中,对待写入数据进行奇校验得到校验位,包括:
对待写入数据按照每8位进行奇校验的规则进行奇校验,得到二进制校验位作为校验位。
在数据写入过程中,CPU可以向FPGA发送数据写入指令(即写指令),FPGA接收到写指令后,对待写入数据进行奇校验得到校验位;以及,对待写入数据的数据位按位取反得到取反数据。FPGA将校验位和待写入数据作为原数据写入第一内存,将取反数据和校验位作为取反后数据写入第二内存。第一内存和第二内存可以为同一存储地址,也可以为不同存储地址;原数据与取反后数据一一对应,以在数据读取时可以对应读取。
例如,CPU往内存里面写32位的十六进制数据0x12345678,通过写命令传给FPGA,FPGA收到写命令后,对待写入数据0x12345678按每8位进行奇校验的方法产生二进制校验位1011,然后把校验位和待写入数据合在一起组成一个新的十六进制数据0xb12345678,写入第一内存。
FPGA对待写入数据0x12345678按位取反得到取反数据0xedcba987,并把数据0x12345678的校验位和取反数据0xedcba987合在一起组成新的十六进制数据0xbedcba987,写入第二内存。
可以理解的是,采用本发明实施例提供的技术方案,通过基于现场可编程门阵列,连接CPU和存储器,接收并处理CPU发送的写入内存的指令,从而实现对内存的数据写入,通过计算校验位,写入原数据和取反后数据,为数据读取时的故障诊断提供基础,提升了数据传输的准确性。
基于一个总的发明构思,本发明一实施例还提供一种安全仪表系统的CPU内存诊断系统。
图3为本发明一实施例提供的一种安全仪表系统的CPU内存诊断系统的连接原理示意图,参阅图3,本实施例提供的系统,可以包括以下结构:CPU31、现场可编程门阵列32和内存组33;内存组包括第一内存和第二内存;
现场可编程门阵列分别与CPU和内存组相连;
现场可编程门阵列根据上述任一的基于现场可编程门阵列的CPU内存诊断方法在内存组组中进行数据读取;
现场可编程门阵列根据上述任一的基于现场可编程门阵列的CPU内存诊断方法在内存组中进行数据写入。
关于上述实施例中的系统,其中各个构成部分执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
可以理解的是,采用本实施例提供的技术方案,通过基于现场可编程门阵列,连接CPU和存储器,接收并处理CPU发送的读内存的指令,在进行数据读写的同时,进行数据校验,从而实现对内存故障的诊断,在数据传输错误时及时进行纠错处理,提升CPU内存性能。在处理过程中,通过设置原数据和取反后数据,进行数据校验,提升了数据传输的准确性。
基于一个总的发明构思,本发明实施例还提供一种基于现场可编程门阵列的CPU内存诊断设备。
图4为本发明一实施例提供的一种基于现场可编程门阵列的CPU内存诊断设备的结构示意图,参阅图4,本发明实施例提供的设备可以包括:处理器41和存储器42,处理器与存储器相连:
其中,处理器,用于调用并执行存储器中存储的程序;
存储器,用于存储程序,程序至少用于执行上述任一项的基于现场可编程门阵列的CPU内存诊断方法。
在一些实施例中,基于现场可编程门阵列的CPU内存诊断设备为FPGA。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种基于现场可编程门阵列的CPU内存诊断方法,其特征在于,应用于安全仪表系统的CPU内存数据读取故障检测纠错;所述CPU无ECC功能,所述方法包括:
响应CPU发送的读指令,在第一内存和第二内存中分别读取原数据和取反后数据;所述第一内存与所述第二内存的存储地址相同或不同;
对所述取反后数据的数据位按位取反后得到目标数据,对比所述目标数据与所述原数据的数据位;
若所述目标数据与所述原数据的数据位一致,则将所述原数据的数据位发送给所述CPU;
若所述目标数据与所述原数据的数据位不一致,则进行纠错流程。
2.根据权利要求1所述的方法,其特征在于,所述纠错流程,包括:
对比所述目标数据与所述原数据,判断两者的数据位每个字节中是否只有一位不同;
若所述目标数据与所述原数据的数据位每个字节中仅有一位不同,则根据校验位纠正所述原数据的数据位,并将纠正后的正确数据发送给所述CPU;其中,所述校验位为根据奇校验得到。
3.根据权利要求2所述的方法,其特征在于,所述根据校验位纠正所述原数据的数据位,包括:
确定所述目标数据和所述原数据中不同数据位所在的字节所对应的校验位数据,根据所述校验位数据确定所述字节中二进制数据1的个数为奇数或偶数,作为奇偶结果;
在所述目标数据和所述原数据的数据位中,确定所述字节中二进制数据1的个数与所述奇偶结果相匹配的数据,作为纠正后的正确数据的数据位。
4.根据权利要求3所述的方法,其特征在于,所述在所述目标数据和所述原数据的数据位中,确定所述字节中二进制数据1的个数与所述奇偶结果相匹配的数据,作为纠正后的正确数据的数据位,还包括:
若所述目标数据和所述原数据不同的数据位对应的字节中,二进制数据1的个数均与所述奇偶结果相同,则发送数据错误提醒。
5.根据权利要求3所述的方法,其特征在于,所述在所述目标数据和所述原数据的数据位中,确定所述字节中二进制数据1的个数与所述奇偶结果相匹配的数据,作为纠正后的正确数据的数据位,包括:
若所述目标数据和所述原数据不同的数据位对应的字节中,确定任一对应的二进制数据1的个数与所述奇偶结果相同,则将该字节对应的目标数据或原数据的数据位作为纠正后的正确数据的数据位。
6.根据权利要求2所述的方法,其特征在于,还包括:
若所述目标数据的数据位与所述原数据的数据位每个字节中不同的位数大于一位,则发送数据错误提醒。
7.一种基于现场可编程门阵列的CPU内存诊断方法,其特征在于,应用于安全仪表系统的CPU内存数据写入;所述方法包括:
响应CPU发送的写指令,所述写指令携带待写入数据,对所述待写入数据进行奇校验得到校验位;以及,对所述待写入数据的数据位按位取反得到取反数据;
将所述校验位与所述待写入数据作为原数据写入第一内存;以及,将所述取反数据和所述校验位作为取反后数据写入第二内存;
其中,所述原数据与所述取反后数据一一对应,所述第一内存与所述第二内存的存储地址相同或不同。
8.根据权利要求7所述的方法,其特征在于,所述对所述待写入数据进行奇校验得到校验位,包括:
对所述待写入数据按照每8位进行奇校验的规则进行奇校验,得到二进制校验位作为所述校验位。
9.一种安全仪表系统的CPU内存诊断系统,其特征在于,包括:CPU、现场可编程门阵列和内存组;所述内存组包括第一内存和第二内存;
所述现场可编程门阵列分别与所述CPU和内存组相连;
所述现场可编程门阵列根据权利要求1-6任一所述的基于现场可编程门阵列的CPU内存诊断方法在所述内存组中进行数据读取;
所述现场可编程门阵列根据权利要求7-8任一所述的基于现场可编程门阵列的CPU内存诊断方法在所述内存组中进行数据写入。
10.一种基于现场可编程门阵列的CPU内存诊断设备,其特征在于,包括处理器和存储器,所述处理器与存储器相连:
其中,所述处理器,用于调用并执行所述存储器中存储的程序;
所述存储器,用于存储所述程序,所述程序至少用于执行权利要求1-8任一项所述的基于现场可编程门阵列的CPU内存诊断方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310166339.8A CN115904797B (zh) | 2023-02-27 | 2023-02-27 | 基于现场可编程门阵列的cpu内存诊断方法、系统和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310166339.8A CN115904797B (zh) | 2023-02-27 | 2023-02-27 | 基于现场可编程门阵列的cpu内存诊断方法、系统和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115904797A true CN115904797A (zh) | 2023-04-04 |
CN115904797B CN115904797B (zh) | 2023-05-09 |
Family
ID=85748303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310166339.8A Active CN115904797B (zh) | 2023-02-27 | 2023-02-27 | 基于现场可编程门阵列的cpu内存诊断方法、系统和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115904797B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05327477A (ja) * | 1992-05-26 | 1993-12-10 | Fuji Facom Corp | フィールドプログラム可能なゲートアレイの誤り検査方法及び装置 |
CN102782662A (zh) * | 2010-03-11 | 2012-11-14 | 三菱电机株式会社 | 存储器诊断方法、存储器诊断装置及存储器诊断程序 |
CN103577275A (zh) * | 2013-10-24 | 2014-02-12 | 华为技术有限公司 | 一种数据校验的方法、设备和系统 |
CN112181711A (zh) * | 2020-09-15 | 2021-01-05 | 浙江吉利控股集团有限公司 | 一种低轨星载dsp抑制单粒子翻转的纠错系统及方法 |
CN112309484A (zh) * | 2020-01-09 | 2021-02-02 | 成都华微电子科技有限公司 | 一种存储控制器的设计方法 |
CN113886148A (zh) * | 2021-10-28 | 2022-01-04 | 杭州和利时自动化有限公司 | 一种cpu的诊断系统、方法、装置以及介质 |
-
2023
- 2023-02-27 CN CN202310166339.8A patent/CN115904797B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05327477A (ja) * | 1992-05-26 | 1993-12-10 | Fuji Facom Corp | フィールドプログラム可能なゲートアレイの誤り検査方法及び装置 |
CN102782662A (zh) * | 2010-03-11 | 2012-11-14 | 三菱电机株式会社 | 存储器诊断方法、存储器诊断装置及存储器诊断程序 |
CN103577275A (zh) * | 2013-10-24 | 2014-02-12 | 华为技术有限公司 | 一种数据校验的方法、设备和系统 |
CN112309484A (zh) * | 2020-01-09 | 2021-02-02 | 成都华微电子科技有限公司 | 一种存储控制器的设计方法 |
CN112181711A (zh) * | 2020-09-15 | 2021-01-05 | 浙江吉利控股集团有限公司 | 一种低轨星载dsp抑制单粒子翻转的纠错系统及方法 |
CN113886148A (zh) * | 2021-10-28 | 2022-01-04 | 杭州和利时自动化有限公司 | 一种cpu的诊断系统、方法、装置以及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115904797B (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4964130A (en) | System for determining status of errors in a memory subsystem | |
US4964129A (en) | Memory controller with error logging | |
CN101901170B (zh) | 数据处理装置和用于误差检测与误差校正的方法 | |
EP2787440B1 (en) | Information processing device, program, and method | |
US6519717B1 (en) | Mechanism to improve fault isolation and diagnosis in computers | |
US8918707B2 (en) | Codeword error injection via checkbit modification | |
TW202105182A (zh) | 記憶體系統及記憶體系統的寫入方法 | |
CN104598330B (zh) | 基于双备份的数据保存和校验方法 | |
CN112068985A (zh) | 带编程指令识别的norflash存储器ecc检纠错方法及系统 | |
CN112395129A (zh) | 存储校验方法、装置、计算芯片、计算机设备及存储介质 | |
CN115904797A (zh) | 基于现场可编程门阵列的cpu内存诊断方法、系统和设备 | |
CN114721862B (zh) | 一种具有信号校验功能的看门狗电路及其工作方法 | |
CN114442953B (zh) | 一种数据校验的方法、系统、芯片和电子设备 | |
TW202246979A (zh) | 用於具有內建的錯誤校正和偵測的記憶體的錯誤率 | |
CN113917385A (zh) | 一种面向电能表的自检测方法及系统 | |
JP2806856B2 (ja) | 誤り検出訂正回路の診断装置 | |
US11831337B2 (en) | Semiconductor device and error detection methods | |
US11809272B2 (en) | Error correction code offload for a serially-attached memory device | |
JP2000105675A (ja) | ディスクアレイ装置 | |
US11764807B2 (en) | Processing system, related integrated circuit, device and method | |
CN117687833A (zh) | 测试数据安全的方法、装置及存储介质 | |
CN117711475A (zh) | 存储单元的故障检测电路及方法、功能芯片 | |
CN116089156A (zh) | 一种纠错模块检测方法、装置、电子设备及存储介质 | |
KR20240067770A (ko) | 데이터 메모리의 자가 진단을 위한 전자 회로 및 방법 | |
JPS62226354A (ja) | Ras回路付記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |