用于高完整性计算的计算模块和方法与流程

    专利查询2026-06-27  3


    本发明总体上涉及计算领域,具体涉及高完整性计算。


    背景技术:

    1、在航空电子等安全关键性应用领域,由于计算机输出的计算结果对系统的安全性具有重大影响,因此高完整性是对数据计算的一项重要需求。在系统安全性设计上,为了能够在源端提供高完整性,要求数据处理模块能够及时识别发生在自身内部的各类错误(例如,识别计算机硬件错误或单粒子反转事件),并对错误进行隔离,对各类错误进行适当的处理并进行系统恢复操作,以避免将错误的计算结果散布到系统的其他模块或部件,从而影响整个系统的安全性。

    2、为实现高完整性计算,要求单点故障不能产生错误,而对于不能识别的错误其概率为极不可能(基于驻留功能的安全性需求)。在设计上通行的做法是实现一个n(n是≥2的整数)路冗余的独立计算的数据处理模块,在n路之间对输出的计算结果进行比较或投票。例如,如果n=2,则如果两路比较发现不一致就意味着至少有一路发生了错误,此时,这两路的计算结果都不再具有完整性,应当被丢弃并进行后续处理。如果n=3,则可以进行3选2的投票,这样即使一路发生错误,数据处理模块都可以识别并隔离发生错误的那一路,并且继续工作以提高系统可用性。

    3、在技术实现上,过去实现高完整性计算的一个重要方案是锁步技术。锁步技术能够提供指令级别粒度的比较,即比较发生在总线上的取指令事务和数据读写事务以识别错误。该比较可以发生在多核通用处理单元(computing processing unit,cpu)的处理核之间,其通过比较连接各个核的内部总线上的事务来实现(例如,arm近期推出的a76ae中的split-lock技术)。该比较也可以发生在多个单独的cpu之间,通过比较连接cpu的前端总线上的事务来实现。

    4、上述第一种技术只能通过比较来识别发生在处理器核内部的错误。但是由于两路仍共享内存等组件,因此对于发生在这些组件内的错误的识别仍需依赖于其他手段。另外,其设计完全依赖于片上系统(system on a chip,soc)的供应商来实现并提供。

    5、上述第二种技术基于传统cpu的前端总线暴露给用户,因此用户可以在连接前端总线到内存和其他组件的桥接器上实现比较功能,这种技术高度地依赖于cpu的总线架构。目前主流的高性能货架cpu产品均为soc设计,其处理器内核与内存控制器等组件都集成在soc内部,通过内部总线的连接不再暴露给用户。这对于继续在最新的cpu上沿用这种设计施加了很大的设计。

    6、为了突破对cpu供应商以及对其产品内部总线架构的依赖,现有技术us9170907b2、ca 2694198 c提出了一些解决方案。它们的方案是实现两路或更多路的计算,每一路包含驻留应用单元和输入/输出(input/output,i/o)单元,在i/o单元对驻留应用单元的结果进行比较,同时需要同步协调两路,以确保在没有错误的情况下这两路或更多路具有相同的输出。然而,它们对于分区环境下多路执行相同的程序时由于多路之间执行时间差异导致的执行路径的偏差没有很好的解决方案。前者没有针对这方面的专门设计(假设在i/o单元的事务同步能够避开这一问题)。后者在i/o单元设计一个关键区域管理器(critical region manager,crm)来解决关键数据的修改同步,但是这需要应用软件主动识别关键数据,并且触发关键数据区域保护,这样对于应用程序就不是透明的。

    7、因此,本领域中需要一种更准确、更便捷的实现高完整性计算的技术。


    技术实现思路

    1、为了提供一种更准确、更便捷的实现高完整性计算的技术,提供本发明。

    2、本发明的一个方面提供一种用于高完整性计算的计算模块,其包括:至少两个处理通道,包括第一处理通道和第二处理通道,每个处理通道用于执行相同的任务,其中,所述第一处理通道包括:第一中央处理单元cpu;以及第一松锁步逻辑部件,与所述第一cpu连接,所述第一松锁步逻辑部件包括:第一同步逻辑单元,用于:实现所述第一处理通道和所述第二处理通道对所述相同的任务的执行同步;以及第一比较逻辑单元,用于:响应于确定了所述第一处理通道和所述第二处理通道对所述相同的任务的执行是同步的,分别将传输到所述第一松锁步逻辑部件的第一命令和第一数据与传输到所述第二处理通道中的第二松锁步逻辑部件的第二命令和第二数据进行比较;响应于所述比较的结果为不一致,触发比较异常处理机制。

    3、如上所述的计算模块,其中,如果所述第一处理通道对所述相同的任务的执行先于所述第二处理通道,则所述第一cpu切换为等待状态;如果所述第一处理通道对所述相同的任务的执行后于所述第二处理通道,则所述第二处理通道的第二cpu切换为等待状态。

    4、如以上任一项所述的计算模块,其中,所述第一同步逻辑单元用于:接收异步事件已发生的指示;从所述第二处理通道的第二松锁步逻辑部件的第二同步逻辑单元接收与所述第二处理通道执行任务相关联的第二关键数据;将与所述第一处理通道执行任务相关联的第一关键数据与所述第二关键数据进行比较;基于所述第一关键数据与所述第二关键数据比较的结果,使所述第一处理通道和所述第二处理通道调整对任务的执行,直到所述第一关键数据与所述第二关键数据一致;以及指示所述第一处理通道和所述第二处理通道对所述相同的任务的执行是同步的。

    5、如以上任一项所述的计算模块,其中,所述第一关键数据和所述第二关键数据各自包括:对执行点同步起关键作用的全局变量、进程间通信对象的修改次数或更新次数。

    6、如以上任一项所述的计算模块,其中,所述第一处理通道和所述第二处理通道采用相同的时钟源。

    7、如以上任一项所述的计算模块,其中,所述第一同步逻辑单元用于:响应于确定了所述第一处理通道和所述第二处理通道都在执行请求读取系统时间的代码,在所述第二处理通道的第二松锁步逻辑部件的第二同步逻辑单元向所述第二处理通道的读取应用编程接口api提供时间值的同时,向所述第一处理通道的读取api提供所述时间值。

    8、如以上任一项所述的计算模块,其中,所述第一松锁步逻辑部件还包括:第一输入/输出i/o控制器,与第一i/o部件连接;以及第一非易失性存储控制器,与第一非易失性存储部件连接,所述第一命令包括:来自所述第一cpu的对所述第一i/o部件的读写命令、和/或对所述第一非易失性存储部件的读写命令,并且所述第一数据包括:从所述第一i/o部件读取的数据、和/或从所述第一非易失性存储部件读取的数据。

    9、如以上任一项所述的计算模块,其中,其中,所述第一松锁步逻辑部件还包括:第一命令队列,用于存储所述一个或多个命令和与所述一个或多个命令中的写命令相关联的要写出的数据;以及第一读数据队列,用于存储所述一个或多个命令中的读命令的结果。

    10、如以上任一项所述的计算模块,其中,所述第一比较逻辑单元用于:将所述第一命令队列中的所述一个或多个命令与所述第二处理通道的所述第二松锁步逻辑部件的第二命令队列中的对应命令进行比较;以及响应于确定了命令比较的结果为不一致,触发所述比较异常处理机制。

    11、如以上任一项所述的计算模块,其中,所述第一比较逻辑单元用于:响应于确定了命令比较的结果为不一致,保存比较现场信息并防止所述一个或多个命令被执行。

    12、如以上任一项所述的计算模块,其中,所述读命令的结果包括:被成功地读取的数据和指示所述读命令执行成功的标志;以及指示所述读命令执行失败的标志和失败的原因。

    13、如以上任一项所述的计算模块,其中,所述第一松锁步逻辑部件还包括:网络接入逻辑单元,用于将所述第一处理通道接入网络。

    14、如以上任一项所述的计算模块,其中,所述第一命令包括来自所述第一cpu的对所述网络的第一网络命令,并且所述第一数据包括从所述网络读取的第一网络输入数据,所述第一松锁步逻辑部件还包括:第一网络命令队列,用于存储所述第一网络命令;以及第一网络输入数据队列,用于存储所述第一网络输入数据。

    15、如以上任一项所述的计算模块,其中,所述第一比较逻辑单元用于:将所述第一网络命令队列中的所述第一网络命令与所述第二处理通道的所述第二松锁步逻辑部件的第二网络命令队列中的对应的第二网络命令进行比较;将所述第一网络输入数据队列中的所述第一网络输入数据与所述第二处理通道的所述第二松锁步逻辑部件的第二网络输入数据队列中的对应的第二网络输入数据进行比较;以及响应于确定了网络命令比较的结果不一致和/或网络输入数据比较的结果不一致,触发所述比较异常处理机制。

    16、如以上任一项所述的计算模块,其中,每个处理通道的松锁步逻辑部件的同步逻辑单元和比较逻辑单元都能够被禁用。

    17、本发明的另一方面提供一种用于高完整性计算的方法,其包括:实现第一处理通道和第二处理通道对相同的任务的执行同步;响应于确定了所述第一处理通道和所述第二处理通道对所述相同的任务的执行是同步的,分别将传输到所述第一处理通道中的第一命令和第一数据与传输到所述第二处理通道中的第二命令和第二数据进行比较;响应于所述比较的结果为不一致,触发比较异常处理机制。

    18、如上所述的方法,其中,实现第一处理通道和第二处理通道对相同的任务的执行同步包括:如果所述第一处理通道对所述相同的任务的执行先于所述第二处理通道,则将所述第一处理通道的第一通用处理单元cpu切换为等待状态;如果所述第一处理通道对所述相同的任务的执行后于所述第二处理通道,则所述第二处理通道的第二cpu切换为等待状态。

    19、如以上任一项所述的方法,其中,实现第一处理通道和第二处理通道对相同的任务的执行的同步包括:接收异步事件已发生的指示;从所述第二处理通道接收与所述第二处理通道执行任务相关联的第二关键数据;将与所述第一处理通道执行任务相关联的第一关键数据与所述第二关键数据进行比较;基于所述第一关键数据与所述第二关键数据比较的结果,使所述第一处理通道和所述第二处理通道调整对任务的执行,直到所述第一关键数据与所述第二关键数据一致;以及指示所述第一处理通道和所述第二处理通道对任务的执行是同步的。

    20、本发明的实现高完整性计算的计算模块和方法不会因不同处理通道之间执行任务的快慢差异而导致误报错误,并且执行的同步和比较对于驻留应用是透明的。


    技术特征:

    1.一种用于高完整性计算的计算模块,包括:

    2.如权利要求1所述的计算模块,其特征在于,

    3.如权利要求1所述的计算模块,其特征在于,

    4.如权利要求3所述的计算模块,其特征在于,所述第一关键数据和所述第二关键数据各自包括:对执行点同步起关键作用的全局变量、进程间通信对象的修改次数或更新次数。

    5.如权利要求1所述的计算模块,其特征在于,所述第一处理通道和所述第二处理通道采用相同的时钟源。

    6.如权利要求1所述的计算模块,其特征在于,

    7.如权利要求1所述的计算模块,其特征在于,

    8.如权利要求7所述的计算模块,其特征在于,

    9.如权利要求8所述的计算模块,其特征在于,

    10.如权利要求9所述的计算模块,其特征在于,

    11.如权利要求8所述的计算模块,其特征在于,

    12.如权利要求1所述的计算模块,其特征在于,

    13.如权利要求12所述的计算模块,其特征在于,

    14.如权利要求13所述的计算模块,其特征在于,

    15.如权利要求1所述的计算模块,其特征在于,

    16.一种用于高完整性计算的方法,包括:

    17.如权利要求16所述的方法,其特征在于,

    18.如权利要求16所述的方法,其特征在于,


    技术总结
    本发明公开了用于高完整性计算的计算模块和方法。一种用于高完整性计算的计算模块包括各自用于执行相同任务的至少两个处理通道,其中,第一处理通道包括第一CPU和连接到其的第一松锁步逻辑部件。第一松锁步逻辑部件包括第一同步逻辑单元和第一比较逻辑单元。第一同步逻辑单元用于实现第一处理通道和第二处理通道对相同的任务的执行同步。第一比较逻辑单元用于响应于确定了执行是同步的,分别将传输到第一松锁步逻辑部件的第一命令和第一数据与传输到第二处理通道中的第二松锁步逻辑部件的第二命令和第二数据进行比较,并且响应于比较的结果为不一致来触发比较异常处理机制。

    技术研发人员:刘峥嵘,杜梁
    受保护的技术使用者:中航通用电气民用航电系统有限责任公司
    技术研发日:
    技术公布日:2024/11/26
    转载请注明原文地址:https://tc.8miu.com/read-36515.html

    最新回复(0)