实现软件锁步的数据处理装置和方法与流程
- 国知局
- 2024-07-31 22:45:35
本发明涉及数据处理系统。更具体地,本发明涉及一种实现软件锁步的数据处理装置和方法。
背景技术:
1、锁步系统通常是容错计算机系统,即在两个不同的硬件和/或软件资源(例如处理器)上同时并行地运行应用程序定义的相同操作集的数据处理系统。锁步系统可以实现硬件锁步或软件锁步。
2、实现硬件锁步的数据处理系统通常需要特殊的硬件支持,灵活性有限,其中,每个cpu指令都需要进行比较。典型的双核硬件锁步的执行性能高度取决于以下参数中的一个或多个:应用大小;两个处理器在握手中执行应用所需的时间;执行的检查点数量,其中,到每个检查点的时间取决于保存的数据量和使用的设置;在发生错误的情况下,例如,通过回滚操作恢复系统的时间。执行开销也很高,主要是因为每个指令都要复制并进行比较,这涉及到大量的内存访问。由于硬件锁步体系结构的性质,这是无法避免的。例如,在us20180089059a1中描述了传统的硬件锁步系统。
3、另一方面,实现软件锁步步骤的数据处理系统不具有硬件依赖性,但通常需要附加的同步和比较逻辑作为单独的软件模块,这可能导致性能下降,但更灵活。
技术实现思路
1、本发明的目的是提供一种改进的数据处理装置和实现软件锁步的数据处理方法。
2、上述和其它目的是通过由独立权利要求请求保护的主题来实现的。其它实现方式在从属权利要求、说明书和附图中显而易见。
3、根据第一方面,提供了一种数据处理装置,用于监控使用软件锁步方案定义软件应用的至少一部分的程序代码的执行。该数据处理装置用于:
4、根据锁步配置和多个软件锁步程序代码模板提升程序代码;
5、执行所提升的程序代码的第一实例;
6、基本上与所提升的程序代码的第一实例的执行并行地执行所提升的程序代码的第二实例;
7、通过根据一个或多个比较规则比较所提升的程序代码的第一实例的执行与第二实例的执行,检测程序代码的执行的不一致。
8、根据第一方面的数据处理装置提供了一种软件锁步,该软件锁步具有与硬件锁步相当的性能和强大的功能,同时保持了软件锁步的灵活性,例如对于动态或不同的应用场景容易调节。
9、在另一种可能的实现方式中,该数据处理装置还用于根据锁步配置和多个软件锁步程序代码模板生成一个或多个比较规则。
10、在另一种可能的实现方式中,该数据处理装置还包括用于存储多个软件锁步程序代码模板的存储器。
11、在另一种可能的实现方式中,数据处理装置用于将所提升的程序代码的第一实例的执行生成的第一输出和所提升的程序代码的第二实例的执行生成的第二输出存储在共享存储器中。
12、在另一种可能的实现方式中,该数据处理装置还包括通信接口,该通信接口用于将通过所提升的程序代码的第一实例的执行产生的第一输出和通过所提升的程序代码的第二实例的执行产生的第二输出发送到远程网络节点。
13、在另一种可能的实现方式中,该数据处理装置包括第一处理器和第二处理器,第一处理器用于执行所提升的程序代码的第一实例,第二处理器用于基本上与所提升的程序代码的第一实例的执行并行地执行所提升的程序代码的第二实例。
14、在另一种可能的实现方式中,为了根据锁步配置和多个软件锁步程序代码模板提升程序代码,数据处理装置用于解析程序代码,并根据锁步配置,将多个软件锁步程序代码模板中的一个或多个插入程序代码中。
15、在另一种可能的实现方式中,数据处理装置用于将程序代码解析为源代码或字节码。
16、在另一种可能的实现方式中,该程序代码包括一个或多个功能块,每个功能块包括一个或多个指令,其中,数据处理装置用于在一个或多个功能块的级别或在一个或多个指令的级别上检测程序代码的执行的不一致。
17、在另一种可能的实现方式中,多个软件锁步程序代码模板包括控制跳转、寄存器拷贝、输入同步和发送输出中的至少一个。
18、在另一种可能的实现方式中,锁步配置包括关于以下中各项的至少一项的信息:所提升的程序代码的第一实例的执行与第二实例的执行之间的冗余级别、一个或多个输入/输出参数、冗余范围、比较请求和一个或多个绑定参数。
19、根据第二方面,提供了一种方法,用于监控使用软件锁步方案定义软件应用的至少一部分的程序代码的执行,其中,该方法包括:
20、根据锁步配置和多个软件锁步程序代码模板提升程序代码;
21、执行所提升的程序代码的第一实例;
22、基本上与所提升的程序代码的第一实例的执行并行地执行所提升的程序代码的第二实例;
23、通过根据一个或多个比较规则比较所提升的程序代码的第一实例的执行与第二实例的执行,检测程序代码的执行的不一致。
24、根据本发明第二方面的方法可由根据本发明第一方面的数据处理装置执行。因此,根据本发明的第二方面的方法的进一步的特征直接来自根据本发明的第一方面的数据处理装置的功能以及上面和下面描述的其不同实现方式。
25、根据第三方面,提供了一种计算机程序产品,该计算机程序产品包括用于存储程序代码的计算机可读存储介质,程序代码在由计算机或处理器执行时,使计算机或处理器执行根据第二方面的方法。
26、附图及以下说明中将详细描述一个或多个实施例。其它特征、目的和优点在说明书、附图和权利要求中是显而易见的。
技术特征:1.一种数据处理装置(100),其特征在于,用于监控使用软件锁步方案定义软件应用的至少一部分的程序代码的执行,其中,所述数据处理装置(100)用于:
2.根据权利要求1所述的数据处理装置(100),其特征在于,所述数据处理装置(100)还用于根据所述锁步配置和所述多个软件锁步程序代码模板生成所述一个或多个比较规则。
3.根据权利要求1或2所述的数据处理装置(100),其特征在于,所述数据处理装置(100)包括用于存储所述多个软件锁步程序代码模板的存储器(130)。
4.根据权利要求3所述的数据处理装置(100),其特征在于,所述数据处理装置(100)用于将通过所提升的程序代码的所述第一实例的所述执行产生的第一输出和通过所提升的程序代码的所述第二实例的所述执行产生的第二输出存储在所述存储器(130)中。
5.根据权利要求1至3中任一项所述的数据处理装置(100),其特征在于,所述数据处理装置包括通信接口(120),所述通信接口(120)用于将通过所提升的程序代码的所述第一实例(111a)的所述执行产生的第一输出和通过所提升的程序代码(111)的所述第二实例(111b)的所述执行产生的第二输出发送到远程网络节点。
6.根据上述权利要求中任一项所述的数据处理装置(100),其特征在于,所述数据处理装置(100)包括第一处理器(110a)和第二处理器(110b),所述第一处理器(110a)用于执行所提升的程序代码(111)的所述第一实例(111a),所述第二处理器(110b)用于基本上与所提升的程序代码(111)的所述第一实例(111b)的所述执行并行地执行所提升的程序代码(111)的所述第二实例(111a)。
7.根据上述权利要求中任一项所述的数据处理装置(100),其特征在于,为了根据所述锁步配置和所述多个软件锁步程序代码模板提升所述程序代码,所述数据处理装置(100)用于解析所述程序代码,并根据所述锁步配置,将所述多个软件锁步程序代码模板中的一个或多个插入所述程序代码中。
8.根据权利要求6所述的数据处理装置(100),其特征在于,所述数据处理装置(100)用于将所述程序代码解析为源代码或字节码。
9.根据上述权利要求中任一项所述的数据处理装置(100),其特征在于,所述程序代码包括一个或多个功能块,每个功能块包括一个或多个指令,其中,所述数据处理装置(100)用于在所述一个或多个功能块的级别和/或在所述一个或多个指令的级别上检测所述程序代码的执行的不一致。
10.根据上述权利要求中任一项所述的数据处理装置(100),其特征在于,所述多个软件锁步程序代码模板包括控制跳转、寄存器拷贝、输入同步和发送输出中的至少一个。
11.根据上述权利要求中任一项所述的数据处理装置(100),其特征在于,所述锁步配置包括关于冗余级别、一个或多个输入/输出参数、冗余范围、比较请求和一个或多个绑定参数中的至少一个的信息。
12.一种方法(700),其特征在于,用于监控使用软件锁步方案定义软件应用的至少一部分的程序代码的执行,所述方法(700)包括:
13.一种计算机程序产品,其特征在于,包括用于存储程序代码的计算机可读存储介质,所述程序代码在由计算机或处理器执行时,使所述计算机或所述处理器执行根据权利要求12所述的方法(700)。
技术总结一种数据处理装置(100),用于监控使用软件锁步方案定义软件应用的至少一部分的程序代码的执行。为此,所述数据处理装置(100)用于:根据锁步配置和多个软件锁步程序代码模板提升所述程序代码;执行所提升的程序代码的第一实例(111a);基本上与所提升的程序代码的所述第一实例(111a)的所述执行并行地执行所提升的程序代码的第二实例(111b);通过根据一个或多个比较规则比较所提升的程序代码的所述第一实例(111a)的所述执行与所述第二实例(111b)的所述执行,检测所述程序代码的所述执行的不一致。技术研发人员:范世卿受保护的技术使用者:华为技术有限公司技术研发日:技术公布日:2024/7/29本文地址:https://www.jishuxx.com/zhuanli/20240730/194451.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。