发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种实时检测随机存取存储器地址线故障的方法及系统,能够实时检测随机存取存储器的地址线故障,及时通知通信设备进行业务倒换,避免发生业务中断,避免给运营商带来严重损失。
为达到以上目的,本发明采取一种实时检测随机存取存储器地址线故障的方法,包括步骤:
向每块随机存储器的预留地址写入检测数据;
在随机存取存储器中依次读取规定地址的数据,并与所述检测数据比较;
当所述规定地址的数据与检测数据相同时,将所述检测数据按位取反写入所述预留地址中,再次与规定地址的数据比较,若比较结果相同,则所述规定地址对应的地址线故障。
在上述技术方案的基础上,所述检测数据的位数与随机存取存储器连接的数据线根数相同。
在上述技术方案的基础上,所述规定地址为Ai,i≥1,且i小于等于地址线根数,Ai第i位为1,其余位为0。
在上述技术方案的基础上,当所述规定地址的数据与检测数据相同时,所述规定地址Ai对应的第i条地址线故障。
在上述技术方案的基础上,所述预留地址为每块随机存储器的0地址。
本发明还提供一种实时检测随机存取存储器地址线故障的系统,包括:
数据写入模块,其用于在每块随机存储器的预留地址写入检测数据;
数据读取模块,其用于在每块随机存取器中读取规定地址的数据;
判断模块,其用于比较所述规定地址的数据与检测数据是否相同,当二者相同时,转入校验模块;
校验模块,其用于将所述检测数据按位取反写入所述预留地址中,还用于将新写入所述预留地址中的数据与规定地址的数据比较,当二者相同时,判断为规定地址对应的地址线故障。
在上述技术方案的基础上,所述数据写入模块写入的检测数据,其位数与随机存取存储器连接的数据线根数相同。
在上述技术方案的基础上,所述数据读取模块读取的规定地址为Ai,i≥1,且i小于等于地址线根数,Ai第i位为1,其余位为0。
在上述技术方案的基础上,当所述规定地址的数据与检测数据相同时,所述判断模块判断规定地址Ai对应的第i条地址线故障。
在上述技术方案的基础上,所述预留地址为每块随机存储器的0地址。
本发明的有益效果在于:
1、在通信设备的系统运行过程中,随机存取存储器地址线正常的情况下,向每块随机存储器的预留地址写入检测数据,通过与随机存取存储器中规定地址的数据进行比较,二者相同时,将检测数据按位取反写入预留地址中,再次与所述存储单元地址的数据比较,若比较结果相同,说明规定地址对应的地址线故障。达到了实时检测随机存取存储器的地址线故障的效果,再次比较,避免正常使用时规定地址的数据与检测数据相同,防止误判的发生,增加判断的精确性。当地址线故障发生后,可以发出地址线断路告警,及时通知通信设备进行业务倒换,避免发生业务中断,避免给运营商带来严重损失。
2、将每块随机存储器的0地址作为预留地址,仅对0地址进行写入操作,因此不会干扰其他存储空间的正常使用,即不会干扰系统的正常运行。本发明在仅使用一个存储单元的情况下,就能完成对所有地址线断路故障的实时检测,避免给运营商带来损失,具有很好的商用应用前景。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
本发明实时检测随机存取存储器地址线故障的方法,包括步骤:
向每块随机存储器的预留地址写入检测数据;
在随机存取存储器中依次读取规定地址的数据,并与所述检测数据比较;
当所述规定地址的数据与检测数据相同时,将所述检测数据按位取反写入所述预留地址中,再次与所述存储单元地址的数据比较,若比较结果相同,则所述规定地址对应的地址线故障。
第一实施例:
在通信设备运行时,在通信设备中的每块随机存取存储器中预先保留一个预留地址,在这个预留地址中写入检测数据,检测数据的位数与随机存取存储器连接的数据线根数相同。本实施例中,检测数据为十六进制数据,也可以为二进制数据或其他进制数据。
然后在随机存取存储器中读取规定地址的数据,并将读取的该数据与检测数据进行比较。本实施例中,规定地址为Ai,其中,i≥1,且i小于等于地址线根数,Ai的数据第i位为1,其余位为0,具体的,获取Ai中数据的代码如下:
Ai = 1 << (i-1)((i<=MAX address line number) && (i >= 1))。
当Ai的数据与预留地址中写入的检测数据相同时,说明该规定地址对应地址线有可能故障,将该检测数据按位取反后,再次写入预留地址中,然后与存储单元地址的数据再次进行比较。若比较结果相同,说明该规定地址对应地址线故障,即Ai对应的第i条地址线故障,可以发出地址线断路告警,及时通知通信设备进行业务倒换,自动检测线程退出。
若再次比较的地址不同,说明通信设备正常使用时,规定地址的数据与检测数据相同,不是对应的地址线断路,在等待时间到达后,读取下一个规定地址的数据,重复进行比较并判断结果。
第二实施例:
在通信设备运行时,在通信设备中的每块随机存取存储器中预先设置一个等待时间,预先保留一个预留地址,在该预留地址中写入检测数据。检测数据的位数与随机存取存储器连接的数据线根数相同,优选的,检测数据为十六进制数据。预留地址为每块随机存储器的0地址,启动自动检测线程进行检测数据的写入、存储单元地址的数据和与检测数据的比较。
然后在随机存取存储器中读取规定地址的数据,并将读取的该数据与检测数据进行比较。规定地址为Ai,其中,i≥1,且i小于等于地址线根数,Ai的数据第i位为1,其余位为0,具体的,获取Ai中数据的代码如下:
Ai = 1 << (i-1)((i<=MAX address line number) && (i >= 1))。
本实施例中,当Ai的数据与预留地址中写入的检测数据相同时,将该检测数据按位取反后,再次写入预留地址中,然后与存储单元地址的数据再次进行比较。若比较结果相同,说明该规定地址对应地址线故障,可以发出地址线断路告警,及时通知通信设备进行业务倒换,自动检测线程退出。
若再次比较的地址不同,说明通信设备正常使用时,规定地址的数据与检测数据相同,不是对应的地址线断路,在等待时间到达后,读取下一个规定地址的数据,重复进行比较并判断结果。
第三实施例:
如图1所示,本发明实时检测随机存取存储器地址线故障的方法,具体包括以下步骤:
S1.在通信设备运行时,将通信设备中的每块随机存取存储器的0地址作为预留地址,预留地址不使用,启动自动检测线程。
S2.向每块随机存取存储器的0地址写入检测数据,本实施例中,检测数据为0x5a5a5a5a,即,与随机存取存储器连接的数据线根数为10根。
S3.依次读取随机存取存储器中规定地址Ai的数据,其中,i≥1,且i小于等于地址线根数。
S4.比较Ai的数据和0x5a5a5a5a是否相同,若相同,进入S5;若不同,进入S8。
S5.向该块随机存取存储器的0地址写入0xa5a5a5a5,0xa5a5a5a5是由检测数据0x5a5a5a5a按位取反后得到的。
S6.再次读取0地址的数据,比较Ai的数据和0xa5a5a5a5是否相同,若相同,进入S7;若不同,进入S8。
S7.说明Ai对应的第i条地址线发生故障,给出地址线断路告警,线程退出,结束。
S8.等待5秒后,跳转到S2。
第四实施例:
在通信设备运行时,将每块随机存取存储器的0地址作为预留地址,启动自动检测线程。
本实施例中,地址线为5根,在0地址写入检测数据0x5a。依次读取随机存取存储器中规定地址Ai的数据,根据:
Ai = 1 << (i-1)((i<=MAX address line number) && (i >= 1));
可以得出本实施例中1≤i≤5,读取到的规定地址Ai分别为00001、00010、00100、01000、10000,将这些规定地址中的数据与0x5a进行比较。根据地址线发生了断路,则该地址线信号将固定是0或是1的原理,本实施例中地址线断路信号固定是1,则真实的地址情况见表(1),此时在不同地址线断路情况下,在0地址中读取到的是表(1)中加粗的地址,因此这些地址的数据就是写入0地址中的数据。由于规定地址Ai的数据与预留地址的数据相同,因此Ai与预留地址相同,但是由于地址相同无法直观检测,所以通过地址中数据的形式,得到相同的地址。
表(1)
地址(A<sub>i</sub>) |
第一根地址线断路(i=1) |
第二根地址线断路(i=2) |
第三根地址线断路(i=3) |
第四根地址线断路(i=4) |
第五根地址线断路(i=5) |
00000 |
00001 |
00010 |
00100 |
01000 |
10000 |
00001 |
00001 |
00011 |
00101 |
01001 |
10001 |
00010 |
00011 |
00010 |
00110 |
01010 |
10010 |
00100 |
00101 |
00110 |
00100 |
01100 |
10100 |
01000 |
01001 |
01010 |
01100 |
01000 |
11000 |
10000 |
10001 |
10010 |
10100 |
11000 |
10000 |
第五实施例:
在通信设备运行时,将每块随机存取存储器的0地址作为预留地址,启动自动检测线程。本实施例中,地址线为5根,在0地址写入检测数据0x5a。依次读取随机存取存储器中规定地址Ai的数据,根据:
Ai = 1 << (i-1)((i<=MAX address line number) && (i >= 1));
可以得出本实施例中1≤i≤5,读取到的规定地址Ai分别为00001、00010、00100、01000、10000,将这些规定地址中的数据与0x5a进行比较。
本实施例中地址线断路信号固定是0,则真实的地址情况见表(2),此时在不同地址线断路情况下,在0地址中读取到的是表(2)中加粗的地址,因此表(2)中的这些地址的数据就是写入0地址中的数据。
表(2)
地址(A<sub>i</sub>) |
第一根地址线断路(i=1) |
第二根地址线断路(i=2) |
第三根地址线断路(i=3) |
第四根地址线断路(i=4) |
第五根地址线断路(i=5) |
00000 |
00000 |
00000 |
00000 |
00000 |
00000 |
00001 |
00000 |
00001 |
00001 |
00001 |
00001 |
00010 |
00010 |
00000 |
00010 |
00010 |
00010 |
00100 |
00100 |
00100 |
00000 |
00100 |
00100 |
01000 |
01000 |
01000 |
01000 |
00000 |
01000 |
10000 |
10000 |
10000 |
10000 |
10000 |
00000 |
第六实施例:
本发明实时检测随机存取存储器地址线故障的方法,不仅可以检测出一根地址线断路的情况,也可以检测出多根地址线同时断路的情况。
在通信设备运行时,将每块随机存取存储器的0地址作为预留地址,启动自动检测线程。本实施例中,地址线为5根,在0地址写入检测数据0x5a。依次读取随机存取存储器中规定地址Ai的数据,根据:
Ai = 1 << (i-1)((i<=MAX address line number) && (i >= 1));
可以得出本实施例中1≤i≤5,读取到的规定地址Ai分别为00001、00010、00100、01000、10000,将这些规定地址中的数据与0x5a进行比较。
本实施例中,第1根地址线和第4根地址线同时断路,若断路之后信号固定为1,则真实的地址情况见表(3)。如表(3)所示,加粗的地址是在0地址中读取到的地址,那么表(3)中的这些地址的数据就是写入0地址中的数据,因此可以检测出两根地址线断路的情况,同理多根地址线断路的情况也可以检测出来。
表(3)
地址(A<sub>i</sub>) |
第1根地址线和第4根地址线断路 |
00000 |
01001 |
00001 |
01001 |
00010 |
01011 |
00100 |
01101 |
01000 |
01001 |
10000 |
11001 |
第七实施例:
本发明实时检测随机存取存储器地址线故障的系统,包括数据写入模块、数据读取模块和判断模块。
数据写入模块用于在每块随机存储器的预留地址写入检测数据。数据写入模块写入的检测数据,其位数与随机存取存储器连接的数据线根数相同,检测数据可以为十六进制数据、二进制数据或者其他进制数据。例如,预留地址为随机存储器的0地址,地址线为5根,在0地址写入检测数据0x5a。
数据读取模块用于读取规定地址Ai,Ai的数据第i位为1,其余位为0,i≥1,且i小于等于地址线根数,本实施例中1≤i≤5。
判断模块用于比较所述规定地址Ai的数据与检测数据,当二者相同时,判断为规定地址对应的地址线故障,即Ai对应的第i条地址线故障。当二者不同时,在等待时间到达后,读取下一个规定地址的数据,重复进行比较并判断结果。
第八实施例:
如图2所示,实时检测随机存取存储器地址线故障的系统包括数据写入模块1、数据读取模块2、判断模块3和校验模块4。
数据写入模块1用于在每块随机存储器的预留地址写入检测数据。数据写入模块1写入的检测数据,其位数与随机存取存储器连接的数据线根数相同,检测数据可以为十六进制数据、二进制数据或者其他进制数据。例如,预留地址为随机存储器的0地址,地址线为5根,在0地址写入检测数据0x5a。
数据读取模块2用于读取规定地址Ai,Ai的数据第i位为1,其余位为0,i≥1,且i小于等于地址线根数,本实施例中1≤i≤5。
校验模块4用于在规定地址Ai的数据与检测数据相同时,将该检测数据按位取反后,再次写入预留地址中。
判断模块3用于比较所述规定地址Ai的数据与检测数据,当二者相同时,通过校验模块4进行按位取反;判断模块3还用于判断存储单元地址的数据与再次写入预留地址中的数据是否相同,若相同,说明规定地址Ai对应的第i条地址线故障,可以发出地址线断路告警,及时通知通信设备进行业务倒换,自动检测线程退出。若是不同,说明通信设备正常使用时,规定地址Ai的数据与检测数据相同,不是对应的地址线断路,在等待时间到达后,读取下一个规定地址的数据,重复进行比较并判断结果。
本发明的原理是:如果地址线发生了断路,则该地址线信号将固定是0或者固定是1。若第i根地址线发生断路,则第i根地址线信号固定是0或者固定是1,其中i≥1,且小于等于地址线根数。如果在预留地址中写入检测数据,再读取规定地址Ai的数据与检测数据比较,相同的话,则可以说明第i根地址线是断路的,因此可以产生报警,通知通信设备倒换。另外,在上述判断中,有一种特殊的情况,就是正常使用时,Ai的数据有可能就是监测数据,因此将检测数据按位取反后,再次写入预留地址中,与Ai的数据比较,若此时还是相同,则说明第i根地址线是断路的,没有发生误判的情况;若此时不相同,则明第i根地址线是没有断路的,通信设备正常运行。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。