用于使处理器同步到相同的计算点的系统和方法_6

文档序号:8445386阅读:来源:国知局
0确定处理器模块316未传递同步消息时,处理器模块320继续等待以从处理器模块316接收同步消息。处理器模块320使同步计数器递增。相反,当处理器模块320确定处理器模块316已经传递同步消息时,处理器模块320确定该同步消息是否表示处理器模块316与处理器模块320同步。
[0135]例如,基于请求第一时间指令的第一任务,处理器模块316生成第一同步消息。基于请求第二时间指令的第二任务,处理器模块320生成第二同步消息。处理器模块320从处理器模块316接收第一同步消息。基于第一同步消息和第二同步消息,处理器模块320确定主CPU204和检查器CPU208是否同步。
[0136]例如,当处理器模块320将第一同步消息与第二同步消息进行比较时。当处理器模块320确定第一同步消息与第二同步消息相同时,处理器模块320确定主CPU204和检查器CPU208同步。当处理器模块320确定主CPU204和检查器CPU208同步时,处理器模块320向处理器模块316生成第二处理器同步信号。
[0137]基于第一处理器同步信号和第二处理器同步信号,处理器模块316和处理器模块320确定是否运行与应用软件的第一复本和第二复本关联的任务。例如,当处理器模块316生成第一处理器同步信号并且接收第二处理器同步信号时,处理器模块316运行与该应用的第一复本和第二复本关联的任务。类似地,当处理器模块320生成第二处理器同步信号并且接收第一处理器同步信号时,处理器模块320运行与该应用的第一复本和第二复本关联的任务。
[0138]进一步地,基于第一处理器同步信号和第二处理器同步信号,处理器模块316和处理器模块320确定是否发送和/或接收以太网分组。例如,处理器模块316和处理器模块320发送和接收与系统300关联的数据分组。数据分组可以包括关于图1和图2描述的多个数据分组。仅作为非限定示例,处理器模块316可以生成第一外出数据分组。当处理器模块316生成第一处理器同步信号并且接收第二处理器同步信号时,处理器模块316传送第一外出数据分组。
[0139]类似地,处理器模块320可以生成第二外出数据分组。当处理器模块320生成第二处理器同步信号并且接收第一处理器同步信号时,处理器模块320传送第二外出数据分组。要理解,尽管仅描述传送数据分组,但是本公开内容的原理还适用于处理器模块316和处理器模块320中每个处理器模块接收数据分组。
[0140]在又一实现中,可以基于同步点的密度对同步的粒度进行控制。例如,如果操作系统正发送多个数据分组,那么其能够使用单个检查点来传递要发送的分组的数量和/或顺序,因此减少保持同步所需的检查点的数量。
[0141]基于同步计数器,调度器模块312确定是否重起动系统300。例如,调度器模块312将同步计数器的值与预确定的阈值进行比较。预确定的阈值可以是与多个错过的同步点关联的值。例如,预确定的阈值可以是3。换言之,调度器模块312确定主CPU204和检查器CPU208失去同步3次。当调度器模块312确定同步计数器中的值大于预确定的阈值时,调度器模块312指示系统300重起动。
[0142]参考图4,图示根据本公开内容原理的处理器同步方法400的流程图在404处开始。在408处,方法400对主寄存器B和检查器寄存器B进行复位。在412处,方法400将当前的主CPU地址写至主寄存器A。在416处,方法400将当前的检查器CPU地址写至检查器寄存器A。在420处,方法400将主寄存器A和检查器寄存器A的逻辑“与(AND)”的结果写至主寄存器B。在424处,方法400将主寄存器A和检查器寄存器A的逻辑“与(AND)”的结果写至检查器寄存器B。在428处,方法400确定主寄存器B中的值是否与检查器寄存器B中的值相同。如果真,则方法在432处继续。如果假,则方法在412处继续。在432处,方法400生成处理器同步信号。在436处,方法400释放主CPU和检查器CPU。方法在440处结束。
[0143]参考图5,图示根据本公开内容原理的可替代处理器同步方法500的流程图在504处开始。在508处,方法500生成第一同步消息。在512处,方法500确定是否收到第二同步消息。如果真,则方法500在520处继续。如果假,则方法500在516处继续。在516处,方法500使同步计数器递增。方法500在512处继续。在520处,方法500确定第一同步消息是否与第二同步消息相同。
[0144]如果真,则方法500在528处继续。如果假,则方法500在524处继续。在524处,方法500使同步计数器递增。方法500在512处继续。在528处,方法500生成第一同步信号。在532处,方法500确定是否接收第二同步信号。如果真,则方法500在536处继续。如果假,则方法500在532处继续。在536处,方法500释放主CPU204和检查器CPU208。方法500在540处结束。
[0145]已经为了说明和描述目的提供上面对实施例的描述。描述不旨在是详尽的或者限制本公开内容。特定实施例的单独元件或特征通常不局限于该特定实施例,而是可在适用时互换并且可以在选择的实施例中使用,即便未具体地示出或描述。本发明还可以以多种方式变化。这样的变化不应被视为背离本公开内容,并且所有这样的修改旨在包含在本公开内容的范围内。
[0146]本文中使用的术语“模块”可以指下面的组件、可以是下面的组件的一部分,或者可以包括下面的组件:专用集成电路(ASIC)、电子电路、组合逻辑电路、现场可编程门阵列(FPGA)、运行代码的处理器(共享的、专用的或它们的组合)、提供所描述的功能的其它适合的硬件组件、或者上面组件中一些组件或全部组件的组合,如在片上系统中。术语“模块”可以包括存储由处理器运行的代码的存储器(共享的、专用的或它们的组合)。
[0147]上面使用的术语“代码”可以包括软件、固件和/或微代码,并且可以指程序、例程、函数、类和/或对象。上面使用的术语“共享的”指来自多个模块的一些代码或全部代码可以使用单个(共享的)处理器运行。此外,来自多个模块的一些代码或全部代码可以由单个(共享的)存储器存储。上面使用的术语“组合”指来自单个模块的一些或全部代码可以使用一组处理器运行。此外,来自单个模块的一些或全部代码可以使用一组存储器存储。
[0148]本文描述的装置和方法可以被由一个或多个处理器运行的一个或多个计算机程序实现。计算机程序包括在非瞬态有形计算机可读介质上存储的处理器可运行指令。计算机程序还可以包括存储的数据。非瞬态有形计算机可读介质的非限定性示例是非易失性存储器、磁性存储和光存储。
【主权项】
1.一种用于同步中央处理单元(CPU)的系统,包括: 第一 CPU,将第一存储器地址写至第一寄存器; 第二 CPU,将第二存储器地址写至第二寄存器; 第一逻辑“与”模块,基于所述第一存储器地址和所述第二存储器地址将第一值写至第三寄存器; 第二逻辑“与”模块,基于所述第一存储器地址和所述第二存储器地址将第二值写至第四寄存器;以及 调度器模块,基于所述第一值和所述第二值选择性地生成处理器同步信号。
2.根据权利要求1所述的系统,其中所述第一逻辑“与”模块对所述第一存储器地址和所述第二存储器地址执行逻辑“与”功能。
3.根据权利要求2所述的系统,其中所述第一逻辑“与”模块响应于所述第一存储器地址和所述第二存储器地址相同而将“ I ”写至所述第三寄存器。
4.根据权利要求1所述的系统,其中所述第二逻辑“与”模块对所述第一存储器地址和所述第二存储器地址执行逻辑“与”功能。
5.根据权利要求4所述的系统,其中所述第二逻辑“与”模块响应于所述第一存储器地址和所述第二存储器地址相同而将“ I ”写至所述第四寄存器。
6.根据权利要求1所述的系统,其中所述调度器模块响应于所述第一值和所述第二值被设置为“I”而生成所述处理器同步信号。
7.根据权利要求1所述的系统,其中所述调度器模块响应于所述第一值不等于所述第二值而不生成所述处理器同步信号。
8.根据权利要求1所述的系统,其中所述第一CPU包括第一处理器模块,并且其中所述第二 CPU包括第二处理器模块。
9.根据权利要求8所述的系统,其中所述调度器模块将所述处理器同步信号传递至所述第一处理器模块和所述第二处理器模块。
10.根据权利要求9所述的系统,其中所述第一处理器模块响应于接收所述处理器同步信号而选择性地运行第一多个任务,并且其中所述第二处理器模块响应于接收所述处理器同步信号而选择性地运行第二多个任务。
11.一种用于同步中央处理单元(CPU)的方法,包括: 在同步点处生成第一同步消息; 在所述同步点处生成第二同步消息; 传递所述第一同步消息; 传递所述第二同步消息; 确定所述第二同步消息是否被传递; 确定所述第一同步消息是否被传递;以及 基于所述第一同步消息和所述第二同步消息确定是否运行多个任务。
12.根据权利要求11所述的方法,进一步包括:基于所述第一同步消息和所述第二同步消息,确定第一 CPU和第二 CPU同步。
13.根据权利要求12所述的方法,进一步包括:当生成所述第一同步消息并且接收所述第二同步消息时,确定所述第一 CPU和所述第二 CPU同步。
14.根据权利要求13所述的方法,进一步包括:响应于确定所述第一CPU和所述第二CPU同步,生成第一处理器同步信号。
15.根据权利要求14所述的方法,进一步包括:当生成所述第二同步消息并且接收所述第一同步消息时,确定所述第一 CPU和所述第二 CPU同步。
16.根据权利要求15所述的方法,进一步包括:响应于确定所述第一CPU和所述第二CPU同步,生成第二处理器同步信号。
17.根据权利要求16所述的方法,进一步包括:响应于接收所述第一处理器同步信号和所述第二同步信号,运行所述多个任务。
18.根据权利要求16所述的方法,进一步包括:响应于未接收所述第一同步信号和所述同步信号中至少之一,不运行所述多个任务。
19.根据权利要求11所述的方法,进一步包括:响应于未接收所述第一同步消息和所述第二同步消息中至少之一,使同步计数器递增。
20.根据权利要求19所述的方法,进一步包括:响应于所述同步计数器大于预确定的阈值,选择性地确定是否重起动第一 CPU和第二 CPU。
【专利摘要】本申请提供一种用于使处理器同步到相同的计算点的系统和方法。用于同步中央处理单元(CPU)的系统包括将第一存储器地址写至第一寄存器的第一CPU和将第二存储器地址写至第二寄存器的第二CPU。该系统进一步包括基于第一存储器地址和第二存储器地址将第一值写至第三寄存器的第一逻辑“与”模块和基于第一存储器地址和第二存储器地址将第二值写至第四寄存器的第二逻辑“与”模块。该系统还包括调度器模块,该调度器模块基于第一值和第二值选择性地生成处理器同步信号。
【IPC分类】G06F9-30
【公开号】CN104765587
【申请号】CN201410008511
【发明人】叶树高, 江流, 胡凯
【申请人】艾默生网络能源-嵌入式计算有限公司
【公开日】2015年7月8日
【申请日】2014年1月8日
【公告号】US20150193341
当前第6页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1