异构多模处理器的等价体间的同步方法及装置与流程

文档序号:17185285发布日期:2019-03-22 21:18阅读:183来源:国知局
异构多模处理器的等价体间的同步方法及装置与流程

本发明属于网络硬件架构技术领域,特别涉及一种异构多模处理器的等价体间的同步方法及装置。



背景技术:

在异构多模处理器架构下,多个异构处理器作为异构等价体,系统中加入调度器硬件(该硬件可以为asic(applicationspecificintegratedcircuit,一种集成电路)、fpga(field-programmablegatearray,现场可编程门阵列)或其他可以实现调度功能电路的硬件)来实现对于多个异构处理器至用户消息的判决选择及对于用户至异构处理器消息的复制与分发,多个异构处理器加调度器整体硬件架构对于用户来说为一个整体“异构多模处理器架构”。

目前,异构多模处理器运行时,由于多个异构处理器硬件架构不一致、操作系统不一致而导致处理速度不一致,这样多个异构处理器处理消息并下发至调度器的消息不会同步;又因为调度器在对多个异构处理器判决消息时有时间窗口,超过时间窗口则直接进行判定,这样就会导致多个异构处理器处理的速度差异变大,出现判决结果和实际处理器正确处理消息的结果不一致。



技术实现要素:

为此,本发明提供一种异构多模处理器的等价体间的同步方法及装置,提高多个异构处理器间处理消息并发送到调度器的同步性,提高调度器对多个异构处理器的消息判断的正确性。

按照本发明所提供的设计方案,一种异构多模处理器的等价体间的同步方法,应用于异构多模处理器架构中,该异构多模处理器架构包含调度器和多个异构处理器,调度器依据用户需求及异构处理器运行状态维护处理器可用列表和比较列表,完成面向业务数据和同步数据的异构处理器的调度,该调度实现过程包含如下内容:

调度器监测异构多模处理器的软件运行状态,获取处理器状态运行数据,该状态运行数据为状态机消息,或为定时器消息,或为全局状态更新消息;

针对状态运行数据,调度器通过半数判决,依据判决结果调度比较列表和可用列表中的异构处理器,异构处理器依据调度器判决结果执行响应处理。

上述的,获取处理器状态运行数据中,若异构处理器的软件运行状态发生改变,则获取状态机消息,否则,判断定时器是否达到预设时间,若达到,则获取定时器消息,否则,判断全局状态是否更新,若更新,则获取全局状态消息,否则,直接进行业务数据处理。

优选的,依据调度器判决结果的反馈进行处理器的同步处理,包含如下内容:若状态运行数据为状态机消息,则依据调度器反馈数据,处理器进行相应的状态转换、状态机消息重发、状态机消息定时发送或处理器清洗;若状态运行数据为定时器消息,则依据调度器反馈数据,处理器执行相应的路由表更新并启动下一个定时器,或路由表不更新并启动下一个定时器;若为全局状态消息,则依据调度器反馈数据,处理器执行相应的状态更新、重新发送全局状态数据或不做任何处理。

上述的,调度器依据状态运行数据进行判决过程中,还包含对状态运行数据进行流量均衡控制,判断是否为同步数据,若是同步数据,则依据调度器判决反馈进行处理器的同步处理,否则执行业务数据处理操作。

优选的,针对同步数据,调度器依次通过对同步数据进行生命周期识别、判决数据生成、判决窗口大小选择和数据判决来获取判决结果,并对判决结果的数据包进行拟态指示位添加,获取判决反馈数据。

优选的,依据调度器判决反馈进行处理器的同步处理,包含如下内容:若状态运行数据为状态机消息,则在接收到异构处理器发送的状态机消息后,启动一个定时器,在预设时间内,调度器依据所有异构处理器反馈的状态机消息通过半数判决,依据判决结果反馈同意或不同意或重发的响应消息至相应异构处理器,异构处理器执行对应的状态转换或异常处理或重发状态机消息操作;若状态运行数据为定时器消息,则在接收到异构处理器发送的定时器消息后,启动一个定时器,在预设时间内,调度器依据所有异构处理器反馈的定时器消息通过半数判决,依据判决结果反馈同意或不同意的响应消息至对应异构处理器,异构处理器执行相应的路由表更新或路由表不更新的操作;若状态运行数据为全局状态更新消息,则在预设时间,调度器依据所有异构处理器反馈的全局状态更新消息通过半数判决,依据判决结果,修改存储的全局状态数据并发送同意的反馈响应消息至所有异构处理器,或直接发送重发的反馈响应消息至所有异构处理器,异构处理器依据接收到的响应消息执行全局状态更新或重新发送全局状态数据操作。

优选的,执行业务数据处理操作过程中,首先判断状态运行数据是否为业务数据,若是,则对业务数据进行拟态判决,依据拟态判决结果发送至用户终端,或异构处理器进行错误次数累计并依据错误次数累计结果执行处理器清洗流程;若不是业务数据,则判断是否为清洗完成指示数据,若是,则结束清洗并将清洗完成的处理器调整为可用处理器,否则,直接丢弃。

更进一步,执行处理器清洗流程,包含如下内容:调度器向异构处理器发送信号清洗,并将其移出比较队列至清洗处理器队列;清洗处理器队列对收到清洗信号的异构处理器进行清洗;清洗完成后,将该异构处理器加入到可用列表;如果有全局状态数据变更,发送所述全局状态数据至所述清洗后的所述异构处理器来更新,并判断更新结果是否正确,如果更新结果正确,发送输入信息至清洗后的所述异构处理器来计算,并判断计算结果是否正确,如果正确计算结果达到设定阈值后,则将清洗后的异构处理器加入所述比较列表。

一种异构多模处理器的等价体间的同步装置,应用于异构多模处理器,所述装置包括:

监测模块,用于监测异构处理器软件的运行状态;

第一判断模块,用于判断所述异构处理器软件的运行状态是否发生改变;

获取模块,用于根据第一判断模块的输出,如果输出为状态改变,则获取状态机消息;否则,获取定时器消息或全局状态更新消息;

发送模块,用于将所述状态机消息、所述定时器消息或所述全局状态更新消息发送给调度器,以使所述调度器对所述状态机消息、所述定时器消息或所述全局状态更新消息进行判决处理,并获取调度器判决数据;

第一接收模块,用于接收所述调度器发送的所述判决数据;

第一处理模块,用于基于所述判决数据的类型接收所述调度器反馈的响应信息,触发异构处理器根据所述调度器反馈的响应信息执行响应操作。

一种异构多模处理器的等价体间的同步装置,应用于调度器,所述装置包括:

第二接收模块,用于接收异构处理器发送的状态机消息、定时器消息或全局状态更新消息;

控制模块,用于对所述状态机消息、所述定时器消息或所述全局状态更新消息进行流量均衡控制,并判断是否是同步数据;

第二处理模块,用于依据控制模块输出,如果输出结果是同步数据,则通过调度器对同步数据进行半数判决,并将所述判决数据发送给异构处理器,根据所述异构处理器发送的所述判决后数据的类型进行相应处理,并回复所述相应的响应信息;

第二判断模块,用于依据控制模块输出,如果输出结果不是同步数据,则判断是否为业务数据;

第三处理模块,用于依据第二判断模块输出,如果输出结果是业务数据,则对所述业务数据进行异构处理器拟态分配处理。

本发明的有益效果:

本发明中,通过监测异构处理器软件的运行状态;判断异构处理器软件的运行状态是否发生改变;如果改变,则获取状态机消息;如果不改变,则获取定时器消息或全局状态更新消息;将状态机消息、定时器消息或全局状态更新消息发送给调度器,以使调度器对状态机消息、定时器消息或全局状态更新消息进行处理,得到判决后数据;接收调度器发送的判决后数据;基于判决后数据的类型接收调度器回复相应的响应信息,并根据调度器回复相应的响应信息进行相应处理;提高多个异构处理器间处理消息并发送到调度器的同步性,提高调度器对多个异构处理器消息判断的正确性,保证系统提供服务的异构处理器的安全可靠性,提升网络架构提供整体的可靠性和稳定性,对异构多模处理器架构系统同步技术具有重要的指导意义。

附图说明:

图1为本发明实施例提供的同步方法流程示意图之一;

图2为本发明实施例提供的异构多模处理器的等价体间的同步方法的流程图之二;

图3为本发明实施例提供的另一异构多模处理器的等价体间的同步方法的流程图之三;

图4为本发明实施例提供的异构多模处理器的等价体间的同步方法中步骤s114的流程图;

图5为本发明实施例提供的异构多模处理器的等价体间的同步方法中步骤s114的流程图;

图6为本发明实施例提供的异构多模处理器的等价体间的同步方法中步骤s114的流程图;

图7为本发明实施例提供的另一异构多模处理器的等价体间的同步方法的流程图;

图8为本发明实施例提供的另一异构多模处理器的等价体间的同步方法的流程图;

图9本发明实施例提供的另一异构多模处理器的等价体间的同步方法中步骤s706的流程图;

图10为本发明实施例提供的另一异构多模处理器的等价体间的同步方法中步骤s706的流程图;

图11为本发明实施例提供的另一异构多模处理器的等价体间的同步方法中步骤s706的流程图;

图12为本发明实施例提供的异构多模处理器的等价体间的同步装置的结构示意图;

图13为本发明实施例提供的另一异构多模处理器的等价体间的同步装置的结构示意图;

图14为本发明实施例提供的异构多模处理器的结构示意图;

图15为本发明实施例提供的处理器同步控制软件状态机简单模型示意图;

图16为本发明实施例提供的调度器的结构示意图。

具体实施方式:

为使本发明的目的、技术方案和优点更加清楚、明白,下面结合附图和技术方案对本发明作进一步详细的说明。

目前异构多模处理器运行时由于多个异构处理器硬件架构不一致、操作系统不一致而导致处理速度不一致,所以多个异构处理器处理消息并下发至调度器的消息不会同步;基于此,本发明实施例提供了异构多模处理器的等价间的同步方法和装置;该技术可以应用于异构多模处理器中;该技术可以采用相关的软件或硬件实现,下面通过实施例进行描述。

参见图1所示,本发明实施例提供一种异构多模处理器的等价体间的同步方法,应用于异构多模处理器架构中,该异构多模处理器架构包含调度器和多个异构处理器,调度器依据用户需求及异构处理器运行状态维护处理器可用列表和比较列表,完成面向业务数据和同步数据的异构处理器的调度,该调度实现过程包含如下内容:

调度器监测异构多模处理器的软件运行状态,获取处理器状态运行数据,该状态运行数据为状态机消息,或为定时器消息,或为全局状态更新消息;

针对状态运行数据,调度器通过半数判决,依据判决结果调度比较列表和可用列表中的异构处理器,异构处理器依据调度器判决结果执行响应处理。

调度器依据用户需求及各个异构处理器运行状态,对可用列表和比较列表中的异构处理器进行跳读,完成面向业务数据和同步数据的处理需求,避免因多个异构处理器处理的速度差异变大而出现判决结果和实际处理器正确处理消息的结果不一致等情形,提高多个异构处理器间处理消息并面向调度器发送消息的同步性,提高调度器对多个异构处理器的消息判断的正确性。

参见图2所示,本发明另一个实施例中,该同步方法应用于异构多模处理器;包括如下步骤:

步骤s102,监测异构处理器软件的运行状态;

异构多模处理器可以由一个多核处理器和gpu(graphicsprocessingunit,图形处理器)组成,异构多模处理器可以包括多核应用处理器、多核图形处理器、多核实时处理器和平台管理单元等;而处理器软件有很多种,包括音频处理器软件、图片处理器软件等;异构多模处理器可以监测各个处理器软件的状态,处理器软件是否发消息、是否有故障等,根据这些状态再做进一步地判定。

步骤s104,判断异构处理器软件的运行状态是否发生改变;如果是,执行步骤s106;如果否,执行步骤s108;

调度器会随时监测异构处理器软件,如果发现某个异构处理器软件想要改变运行状态之后,他会根据这些信息再去对相对应的异构处理器软件做下一步指令处理。

步骤s106,获取状态机消息;

步骤s108,获取定时器消息或全局状态更新消息

步骤s110,将状态机消息、定时器消息或全局状态更新消息发送给调度器

任何一个异构处理器软件在转变状态之前都会先发对应的消息给异构处理器,这些消息可以分为状态机消息、定时器消息或者全局状态更新消息;在这之前,异构处理器会判断出消息的种类,异构处理器接收到这些消息后,会把这些消息都发给调度器。调度器内部设定有调度的策略,根据不同的消息对应的策略也不同,根据这些消息作出判决。

步骤s112,接收调度器发送的判决后数据;

步骤s114,基于判决后数据的类型接收调度器回复相应的响应信息,并根据调度器回复相应的响应信息进行相应处理。

调度器作出判决之后,会把判决后数据发送给异构处理器;根据接收到的判决后的数据类型可以接收调度器回复相应的响应信息,并根据调度器回复相应的响应信息进行相应处理,这些处理一般包括是否同意处理器软件转换、是否需要处理器软件再重新发送消息或者是其他命令。

本发明实施例提供了异构多模处理器的等价体间的同步方法,应用于异构多模处理器,监测异构处理器软件的运行状态;判断异构处理器软件的运行状态是否发生改变;如果改变,则获取状态机消息;如果不改变,则获取定时器消息或全局状态更新消息;将状态机消息、定时器消息或全局状态更新消息发送给调度器,以使调度器对状态机消息、定时器消息或全局状态更新消息进行处理,得到判决后数据;接收调度器发送的判决后数据;基于判决后数据的类型接收调度器回复相应的响应信息,并根据调度器回复相应的响应信息进行相应处理。该方式中,提高多个异构处理器间处理消息并发送到调度器的同步性,来提高调度器对多个异构处理器消息判断的正确性。

参见图3所示,步骤s108,获取定时器消息或全局状态更新消息包括:

步骤s202,判断计时器是否达到预设时间;如果是,执行步骤s204;如果否,执行步骤s206;

为了方便管理,会在内部设置一个计时器,并调制一个时间,根据这个预设的时间判断是否应该进行下一步操作;如果达到预设时间,执行一个操作;如果未达到预设时间,执行另一个操作。

步骤s204,获取定时器消息;

步骤s206,判断全局状态是否更新;如果是,执行步骤s208;如果否,执行步骤s210;

如果一个预设的计时器时间达到了,异构处理器去获取定时器消息;如果没有达到,就判断全局状态是否更新。

步骤s208,获取全局状态更新消息;

步骤s210,进行业务数据处理;

如果异构处理器判定全局状态更新,那么就获取全局状态更新消息;反正全局状态没有更新,就进行业务数据的处理。

图14为本发明实施例提供的异构多模处理器的结构示意图,可知异构多模处理器内部的处理过程;图15为本发明实施例提供的处理器同步控制软件状态机简单模型示意图。图4、图5和图6为本发明实施例提供的另一异构多模处理器的等价体间的同步方法中步骤s114的进一步说明的流程图;

步骤s302,如果判决后的数据的类型为状态机消息;

步骤s304,接收到调度器发送的同意的响应信息后,转换状态;处理器同步软件运行,状态转换之前,发送一个自定义格式的状态机消息给调度器,收到调度器表示同意的响应消息后,再转换状态。

步骤s306,如果在预设时间,在接收到调度器发送的重发的响应信息后,则重新发送状态机消息;如果在指定时间内,收到调度器表示重发的响应消息,则立即重发一遍状态机消息。

步骤s308,如果在预设时间,在接收到调度器发送的不同意但不需要清洗的响应消息,或者没有接收到调度器的响应消息后,则定时发送状态机消息至调度器;

如果在指定时间内,收到调度器表示不同意但不需要清洗的响应消息,或者没有收到任何响应消息,则定时重新发送状态机消息。

步骤s310,如果在预设时间,在接收到调度器发送的不同意但需要清洗的响应消息后,则进入清洗流程。如果在指定时间内,收到调度器表示不同意且需要清洗的响应消息,则进入本异构体清洗流程。

步骤s402,如果判决后的数据的类型为全局状态更新消息;

步骤s404,接收到调度器发送的同意的响应消息后,更新状态;更新状态之前,将自己的最新状态数据打包,发送全局状态更新消息给调度器,收到调度器表示同意的响应消息之后,根据收到的响应消息中的数据,更新自己的状态。

步骤s406,如果在预设时间,在接收到调度器发送的重发的响应消息后,则重新发送全局状态更新消息至调度器;如果在指定时间内,收到调度器表示重发的响应消息,则立即重发一遍全局状态更新消息。

步骤s408,在接收到调度器发送的其他的响应消息,或者没有接收到调度器的响应消息后,则不作处理。不包括上述步骤s404和步骤s406的,就不对这个全局状态更新消息作处理。

步骤s502,如果判决后的数据的类型为定时器消息;

步骤s504,当前时间达到预设时间后,发送自定义格式的定时器消息至调度器;如果定时器时间到,发送一个自定义格式的定时器消息给调度器。

步骤s506,如果在预设时间内,在接收到调度器发送的同意的响应消息后,则更新路由表,并启动下一个定时器;在一定时间内,收到调度器表示同意的响应消息后,更新路由表,启动下一轮定时器;

步骤s508,如果在预设时间内,在接收到调度器发送的不同意的响应消息,或者没有接收到调度器的响应消息后,则不更新路由表,并启动下一个定时器。在一定时间内,收到调度器表示不同意的响应消息,或者没有收到响应消息,不更新路由表,启动下一轮定时器。

参见图15,举例说明处理器同步控制软件状态机简单模型;在没有任何条件满足时,会保持一个状态是为现态;当有一个条件被满足,将会触发一个动作,或者执行一次状态的迁移;动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态,需要说明的是,这个动作不是必须的,当条件满足后,也可以不执行任何动作,直接迁移到新状态;次态就是满足条件后要迁移的新状态。例如,当“响应消息”这个条件被触发,会执行启动线程池的动作,接着会迁移到下一个状态为“状态1”,以此类推。

本发明实施例还提供了同步数据的数据约定格式,参见表1为本发明实施例提供的同步消息的格式:

表1本发明同步消息的格式

参见图7所示,本发明再一个实施例中,提供的另一异构多模处理器的等价体间的同步方法,应用于调度器,包括如下内容:

步骤s602,接收异构处理器发送的状态机消息、定时器消息或全局状态更新消息;具体地,如果异构处理器软件要转变状态,会发送给异构处理器发送状态机消息、定时器消息或全局状态更新消息;异构处理器会把这些消息发送给调度器,让调度器来进行判决。

步骤s604,对状态机消息、定时器消息或全局状态更新消息进行流量均衡控制,并判断是否是同步数据;如果是,执行步骤s606;如果否,执行步骤s608;

具体地,一般异构多处理器会同时有多个消息发送给调度器,强度过大的时候调度器根本无法承担。如果更换或者升级硬件成本较大,如果面临下一次业务升级,这又导致再一次硬件升级或者更换,这样会投入高额的成本,所以就需要廉价且有效的方法来调节这个问题,流量均衡控制可以针对进出的流量进行控制,以达到调度器的消息会得到均衡控制。

步骤s606,对同步数据进行处理,得到判决后数据,并将判决后数据发送给异构处理器,以及根据异构处理器发送的判决后数据的类型进行相应处理,并回复相应的响应信息;

步骤s608,判断是否为业务数据;如果是,执行步骤s610;

步骤s610,对业务数据进行拟态处理。这里,调度器会先判断一下异构多模处理器发送的消息的类型,这个类型包括同步数据、业务数据等,调度器本身设置有处理策略会根据消息类型的不同作出不同的处理。

参见图8所示,步骤s606对同步数据进行处理,得到判决后数据,包括以下步骤:

步骤s702,对同步数据进行判决生命周期识别、判决数据生成、判决窗口大小选择和数据判决,得到判决结果;

步骤s704,对判决结果中的数据包进行拟态判决指示位添加,得到判决后数据。

参见图8,步骤s610对业务数据进行拟态处理,包括以下步骤:

步骤s708,对业务数据进行拟态判决,得到拟态判决结果;

步骤s710,判断拟态判决结果是否正确;如果是,执行步骤s712;如果否,执行步骤s714;

步骤s712,将拟态判决结果发送至用户终端;

步骤s714,表示异构处理器存在结果不一致的情况,将结果不一致的异构处理器进行错误次数累计,得到错误累计次数。

具体地,判决是将多个异构处理器进行比较,如果判决结果不正确表示多数的异构处理器结果不一致,这样将每次不一致的异构处理器记为一次错误,将每个异构处理器的错误次数进行累计。

步骤s716,根据错误累计次数,并判断异构处理器是否达到清洗条件;如果是,执行步骤s718;如果否,执行步骤s720。

具体地,例如,当调度器判断出多数的异构处理器不一致时,这些异构处理器即为发生错误,将发生错误的异构处理器的标志记入日志;其中,这个标志可以包括ip地址、端口号等。调度器将每一个异构处理器发生错误的次数进行累计,当同一个异构处理器发生错误达到预设错误次数阈值时,则判断该异构处理器达到清洗条件。

步骤s718,异构处理器启动清洗,由调度器指示异构处理器清洗。

步骤s720,不作处理。

参见图8,步骤s608判断是否为业务数据,还包括以下步骤:

步骤s722,如果不是业务数据,则判断是否为清洗完成指示数据;如果是,执行步骤s724;如果否,执行步骤s726;

步骤s724,结束清洗,并将清洗完成的异构处理器调整为可用处理器;

步骤s726,丢弃。

图16为本发明实施例提供的调度器的结构示意图,可知调度器内部的处理过程;图9、图10和图11为本发明实施例提供的另一异构多模处理器的等价体间的同步方法中步骤s706的进一步说明;

步骤s802,如果判决后的数据的类型为状态机消息;

步骤s804,接收到异构处理器发送的状态机消息后,启动一个定时器;

步骤s806,如果在预设时间内接收到所有异构处理器发送的判决后数据的类型一致的状态机消息后,则发送同意的响应消息至所有异构处理器;

在指定时间内收到所有异构体的状态机消息并判决一致,则说明无异常,向各异构等价体发送表示同意的响应消息。

步骤s808,如果超过定时器的预设时间,并且在接收到超过半数判决后数据的类型一致的异构处理器发送的状态机消息后,则发送同意的响应消息至发送判决后数据的类型一致的状态机消息的异构处理器;发送不同意的响应消息至没有发送状态机消息的异构处理器,并判定为异常情况,异构处理器异常次数达到预设的阈值时,达到清洗条件;

若定时器超时之后,收到超过半数异构体的状态机消息并判决一致,则向这些异构体发送表示同意的响应消息,对那些没有发来定时器状态机消息的异构体,判定为异常情况,向它们发送表示不同意的响应消息,当异常情况累计达到系统预设值时认为该处理器状态异常,进入清洗流程。

步骤s810,如果超过定时器的所述预设时间,并且没有接收到超过半数判决后数据的类型一致的异构处理器发送的状态机消息后,则发送重发的响应消息至所有异构处理器;

若定时器超时之后,收到的或判决一致的状态机消息数目不到半数,则向所有异构体发送表示重发的响应消息,并将该情况及时上报。如果连续出现上述状况,要考虑处理器故障的情况,需要人为干预。

步骤s902,如果判决后的数据的类型为所述全局状态更新消息;

步骤s904,预设时间,接收到所有异构处理器发送的判决后数据的类型一致的全局状态更新消息后,修改存储的全局状态数据,并发送同意的响应消息至所有异构处理器;

在指定时间内收到所有异构体的全局状态更新消息并判决一致,修改调度器存储的全局状态数据,并向各异构等价体发送表示同意的响应消息。

步骤s906,如果在预设时间内接收到超过半数判决后数据的类型一致的异构处理器发送的全局状态更新消息后,则修改存储的全局状态数据,并发送同意的响应消息至所有异构处理器;

在指定时间内没有收到全部异构体的全局状态更新消息,但超过半数且判决一致,修改存储的全局状态数据,并向所有异构体发送表示同意的响应消息。

步骤s908,如果在没有接收到超过半数判决后数据的类型一致的异构处理器发送的全局状态更新消息后,则发送重发的响应消息至所有异构处理器,并发送至用户终端;

如果不超过半数,则指示所有异构体重发,并将情况及时上报。

步骤s116,如果判决后的数据的类型为所述定时器消息。

步骤s118,接收到异构处理器发送的定时器消息后,启动一个定时器。

步骤s120,如果在预设时间内接收到超过半数判决后数据的类型一直的异构处理器发送的定时器消息后,则发送同意的响应消息至所有异构处理器;

在收到来自第一个异构体的定时器消息之后,启动一个定时器,在指定时间内收到超过半数异构体的定时器消息,则向所有异构体发送表示同意的响应消息。

步骤s122,如果在预设时间内没有接收到超过半数判决后数据的类型一直的异构处理器发送的定时器消息后,则发送不同意的响应消息至所有的异构处理器;

在指定时间内收到定时器消息的数量不到半数,则向所有异构体发送表示不同意的响应消息。

当一个等价体状态被判定为异常时,这个异常可能是依据的消息未到达,或者之前提供的结果与判决结果不同来判别,调度器发送清洗指令至待清洗处理器,进行清洗,清洗有以下两种方案:

1.等待异常等价体完成清洗,重新加入正常工作的方案:(1)等价体进行清洗;(2)异常等价体清洗完毕通知调度器;(3)调度器将异常等价体的状态恢复到和其他等价体一致;(4)调度器及所有异构等价体恢复正常工作状态。

2.使用备用等价体替换异构等价体的方案:(1)调度器引入新的等价体替换异常等价体,并将其状态调整为和其他等价体一致;(2)调度器及所有异构等价体恢复正常工作状态;(3)异常等价体进行清洗;(4)清洗完毕将自己调整为备用状态。

上述等价体清洗及状态调整具体操作:

调度器为每个独立应用保持一组一致性全局状态数据(包括状态字和状态附加数据)。每当应用状态机到达重置点状态时,等价体会向调度器发送新的全局状态数据,调度器进行更新。系统在运行过程中,调度器实时地对各个正常等价体中相同程序的输出结果进行判决并保存在程序的全局状态中,当某个等价体发生异常并重启完成后可以通过保存在调度器中的全局状态数据进行恢复。

同时调度器需维护两组等价体列表,一为比较列表,用以记录系统中正常运行的等价体;二为可用列表,调度器向可用列表中的等价体发送输入并从中接受输出,但并不对采用其输出结果值,可理解为等价体处于“实习期”。当可用列表中的某等价体发送的输出结果值连续正确次数达到某个阀值后,该等价体被认定为行为正常并被移入比较列表。

等价体的清洗及状态调整具体操作如下:(1)当调度器向等价体发送清洗信号后,将其移出比较队列;(2)收到清洗信号的等价体进行软硬件重置,恢复最初设置,然后向调度器发送可用信号;(3)调度器接受到可用信号后将其加入可用列表;(4)调度器将清洗后的等价体加入可用列表后,一旦有全局状态变更,均会发送给清洗后的等价体用于更新其状态;(5)此外,调度器会将输入信息发送给等价体用于计算,并对该等价体输出进行判决,当正确次数达到一定阈值后认定该等价体恢复正常工作;(6)将等价体加入比较列表。

图12为本发明另一个实施例,基于上述的同步方法,提供一种异构多模处理器的等价体间的同步装置的结构示意图,该装置应用于异构多模处理器,该装置包括:

监测模块10,用于监测异构处理器软件的运行状态;

第一判断模块11,用于判断异构处理器软件的运行状态是否发生改变;

获取模块12,用于如果改变,则获取状态机消息;如果不改变,则获取定时器消息或全局状态更新消息;

发送模块13,用于将状态机消息、定时器消息或全局状态更新消息发送给调度器,以使调度器对状态机消息、定时器消息或全局状态更新消息进行处理,得到判决后数据;

第一接收模块14,用于接收调度器发送的判决后数据;

第一处理模块15,用于基于判决后数据的类型接收调度器回复相应的响应信息,并根据调度器回复所述相应的响应信息进行相应处理。

图13为本发明再一个实施例,基于上述的同步方法,提供的另一异构多模处理器的等价体间的同步装置的结构示意图,应用于调度器,该装置包括:

第二接收模块20,用于接收异构处理器发送的状态机消息、定时器消息或全局状态更新消息;

控制模块21,用于对所述状态机消息、所述定时器消息或所述全局状态更新消息进行流量均衡控制,并判断是否是同步数据;

第二处理模块22,用于如果是同步数据,则对同步数据进行处理,得到判决后数据,并将判决后数据发送给异构处理器,以及根据异构处理器发送的判决后数据的类型进行相应处理,并回复相应的响应信息;

第二判断模块23,用于如果不是同步数据,则判断是否为业务数据;

第三处理模块24,用于如果是业务数据,则对业务数据进行拟态处理。

本发明实施例中提供的异构多模处理器的等价体间的同步装置,通过监测异构处理器软件的运行状态;判断异构处理器软件的运行状态是否发生改变;如果改变,则获取状态机消息;如果不改变,则获取定时器消息或全局状态更新消息;将状态机消息、定时器消息或全局状态更新消息发送给调度器,以使调度器对状态机消息、定时器消息或全局状态更新消息进行处理,得到判决后数据;接收调度器发送的判决后数据;基于判决后数据的类型接收调度器回复相应的响应信息,并根据调度器回复相应的响应信息进行相应处理;能够有效提高多个异构处理器间处理消息并发送到调度器的同步性,提高调度器对多个异构处理器消息判断的正确性。

本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例提供的异构多模处理器的等价体间的同步方法的步骤。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述实施例的异构多模处理器的等价体间的同步方法的步骤。

本发明实施例所提供的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1