CN109815020B - 指令处理对准系统 - Google Patents
指令处理对准系统 Download PDFInfo
- Publication number
- CN109815020B CN109815020B CN201811317171.1A CN201811317171A CN109815020B CN 109815020 B CN109815020 B CN 109815020B CN 201811317171 A CN201811317171 A CN 201811317171A CN 109815020 B CN109815020 B CN 109815020B
- Authority
- CN
- China
- Prior art keywords
- processor unit
- processor
- synchronizer
- amount
- skew
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012545 processing Methods 0.000 title abstract description 71
- 238000000034 method Methods 0.000 claims abstract description 166
- 238000004891 communication Methods 0.000 claims abstract description 36
- 230000009471 action Effects 0.000 claims abstract description 26
- 230000008569 process Effects 0.000 claims description 129
- 230000002123 temporal effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 23
- 238000004519 manufacturing process Methods 0.000 description 14
- 238000012546 transfer Methods 0.000 description 12
- 230000002085 persistent effect Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 6
- 239000000872 buffer Substances 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000009419 refurbishment Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/10—Distribution of clock signals, e.g. skew
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1683—Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1695—Error detection or correction of the data by redundancy in hardware which are operating with time diversity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请公开指令处理对准系统,一种用于同步处理器单元的方法。与外部同步器(122)通信以确定在与同步系统通信的第一处理器单元(132)和第二处理器单元(134)之间是否存在不期望的偏斜(136)量。第一处理器单元(132)被选择性地指示以执行动作(138)而不生成所需的结果,使得当在第一处理器单元(132)中存在不期望的偏斜(136)量时,第一处理器单元(132)和第二处理器单元(134)之间的不期望的偏斜(136)量被减小。第一处理器单元(132)和第二处理器单元(134)彼此相关联以用于高完整性模式(106),其中对由第一处理器单元(132)和第二处理器单元(134)生成的相应消息执行完整性检查。
Description
技术领域
本公开总体涉及改进的计算机系统,并且特别地,涉及用于管理用于计算机系统中的处理器单元的数据流的方法和装置。
背景技术
飞行器具有许多冗余组件,以提高不同飞行器系统的可靠性、完整性或可靠性和完整性。例如,可以复制组件以增加系统的可靠性、增加系统的完整性或者增加系统的可靠性和完整性。该冗余可以是复制系统的形式,以改进系统性能。例如,除了硬件冗余之外,飞行器中的计算机系统还可以包括信息冗余。信息的不准确性可能通过各种来源(诸如软件问题、辐射或其他来源原因)发生。
可以使用在飞行器中的计算机上运行的错误检测和校正过程来获得信息完整性。完整性还可以包括冗余。利用冗余,可以使用多次执行相同的操作或者在不同的计算机或处理器单元上运行相同的应用程序以获得数据的多个副本。可以检查这些数据副本以确定副本是否彼此匹配。
一些解决方案依赖于接收器来比较冗余的数据副本,而其他解决方案则在数据来源处创建完整性。对于后者,当前的解决方案将单核处理器单元放置在两个或更多个并行通道(lane)中。对由这些处理器单元生成的消息执行数据总线锁步检查。使用外部芯片、处理器架构的修改或其某些组合来执行这些类型的处理。这些类型的解决方案是针对特定类型的处理器定制的。结果,当使用其他类型的处理器时,这些解决方案可能不能很好地利用那些处理器的特性,诸如存储器总线架构、可用的比较点或其他特性。
因此,期望具有一种方法和装置,其考虑至少一些上述问题以及其他可能的问题。例如,期望具有一种方法和装置,其克服在使用具有单核的处理器单元或使用多核时实现数据完整性的技术问题,同时获得使用处理器单元用于处理数据的期望效率。
发明内容
本公开的一个实施例提供一种处理器同步系统,该处理器同步系统包括在第一处理器单元上运行的内部同步器。内部同步器经配置以与外部同步器通信以确定在与外部同步器通信的第一处理器单元和第二处理器单元之间是否存在不期望的偏斜(skew)量。内部同步器选择性地指示第一处理器单元来执行动作而不生成所需的结果,使得当存在不期望的偏斜量时,第一处理器单元和第二处理器单元之间的不期望的偏斜量被减小。第一处理器单元和第二处理器单元彼此相关联以用于高完整性模式,其中对由第一处理器单元和第二处理器单元生成的相应消息执行完整性检查。
本公开的另一个实施例提供一种用于同步处理器单元的方法。与外部同步器通信以确定在与同步系统通信的第一处理器单元和第二处理器单元之间是否存在不期望的偏斜量。第一处理器单元被选择性地指示以执行动作而不生成所需的结果,使得当在第一处理器单元中存在不期望的偏斜量时,第一处理器单元和第二处理器单元之间的不期望的偏斜量被减小。第一处理器单元和第二处理器单元彼此相关联以用于高完整性模式,其中对由第一处理器单元和第二处理器单元生成的相应消息执行完整性检查。
特征和功能可以在本公开的各种实施例中被独立地实现,或者可以在其他实施例中被组合,其中参考以下说明书和附图可以看到进一步的细节。
附图说明
在所附权利要求中阐述了被认为是说明性实施例的特性的新颖特征。然而,当结合附图阅读时,通过参考本公开的说明性实施例的以下详细描述,将最好地理解说明性实施例以及优选的使用模式、其进一步的目的和特征,其中:
图1是根据一个说明性实施例的数据处理环境的块图的图示;
图2是根据一个说明性实施例的混合完整性数据处理系统的图示;
图3是根据一个说明性实施例的用于管理多个处理器的数据传输的过程的流程图的图示;
图4是根据一个说明性实施例的用于同步处理器的过程的流程图的图示;
图5是根据一个说明性实施例的用于同步处理器单元的过程的流程图的图示;
图6是根据一个说明性实施例的用于同步处理器单元的过程的流程图的图示;
图7是根据一个说明性实施例的用于同步从处理器单元发送消息的过程的流程图的图示;
图8是根据一个说明性实施例的用于发送消息的过程的流程图的图示;
图9是根据一个说明性实施例的用于发送消息的过程的流程图的图示;
图10是根据一个说明性实施例的用于接收消息的过程的流程图的图示;
图11是根据一个说明性实施例的用于接收消息的过程的流程图的图示;
图12是根据一个说明性实施例的用于接收消息的过程的流程图的图示;
图13是根据一个说明性实施例的用于接收消息的过程的流程图的图示;
图14是根据一个说明性实施例的数据处理系统的块图的图示;
图15是根据一个说明性实施例的飞行器制造和保养方法的块图的图示;以及
图16是可以实施一个说明性实施例的飞行器的块图的图示。
具体实施方式
说明性实施例认识到并考虑到一个或更多个不同的考虑因素。例如,说明性实施例认识并考虑到当使用运行一个或更多个冗余应用程序的任何一对或一组处理器单元时,期望增加数据输出的完整性。说明性实施例认识到并考虑到与正常的数据处理相比,用于增加数据完整性的操作模式是高完整性操作模式,其被称为标准完整性操作模式。
因此,说明性实施例提供一种用于管理数据的方法、装置和系统。在一个说明性示例中,消息管理系统包括完整性管理器。完整性管理器具有混合完整性模式,并且经配置以基于混合完整性模式中的选择的模式来管理处理器单元和外部节点之间的消息交换。完整性管理器位于与处理器和外部节点通信的硬件中,并且检查来自处理器单元的冗余计算的输出是否在高完整性模式下匹配。
在另一个说明性示例中,处理器同步系统包括在第一处理器单元上运行的内部同步器。内部同步器经配置以与外部同步器通信,以确定在与外部同步器通信的第一处理器单元和第二处理器单元之间是否存在不期望的偏斜量。内部同步器经配置以选择性地指示第一处理器单元来执行动作而不生成所需的结果,使得当存在不期望的偏斜时,第一处理器单元和第二处理器单元之间的偏斜量被减小。
现在参考附图,并且特别地参考图1,描绘了根据一个说明性实施例的数据处理环境的块图的图示。数据处理环境100是可以在混合完整性模式104下管理处理器单元102的环境。在该示例中,处理器单元102从多核处理器单元、单核处理器单元、同构多核处理器单元、异构多核处理器单元、图形处理器单元、通用处理器单元或某种其他合适类型的处理器单元中的至少一个中选择。
在该说明性示例中,处理器单元102可以是相同类型的处理器单元或不同类型的处理器单元。当处理器单元102是相同类型的处理器单元时,那些处理器单元可具有相同指令集、设计、模型、部件号或用于定义处理器单元102的类型的其他参数中的至少一个。
在此说明性示例中,混合完整性模式104包括高完整性模式106和标准完整性模式108。处理器单元102的通道之间的消息比较或消息同步中的至少一个在高完整性模式106下执行。在该说明性示例中,通道是处理单元。
当在高完整性模式106下时,完整性管理器120检查来自处理器单元102中的多个处理器单元的冗余计算的输出是否匹配。在该说明性示例中,匹配意指从多个处理器单元发送的数据是相同的。完整性管理器120检查以确保从多个处理器单元发送相同数据。
例如,在高完整性模式106下操作的两个处理器单元可以运行相同应用程序,并且被指示以执行相同功能或数据处理。在高完整性模式106下,完整性管理器120检查以确保由处理器单元102中的两个处理器单元生成的输出是相同的。
如所描绘的,处理器单元102位于计算机系统110中。如所描绘的,计算机系统110是物理硬件系统,并且包括一个或更多个数据处理系统。当存在多于一个数据处理系统时,处理器单元可位于单个数据处理系统中或多于一个数据处理器系统中。此外,当存在多于一个数据处理系统时,那些数据处理系统使用通信介质彼此通信。通信介质可以是网络。数据处理系统可以从计算机、服务器计算机、平板计算机或某种其他合适的数据处理系统中的至少一个中选择。
在此说明性示例中,数据管理器112管理处理器单元102中的处理数据114或交换数据114中的至少一个。如本文所使用的,当与项目列表一起使用时,短语“至少一个”意指可以使用所列项目中的一个或更多个的不同组合,并且可以仅需要列表中的每个项目中的一个。换言之,“至少一个”意指可以从列表中使用项目和项目数量的任何组合,但不是列表中的所有项目都是必需的。该项目可以是特定对象、事物或类别。
例如,但不限于,“项目A、项目B或项目C中的至少一个”可以包括:项目A、项目A和项目B或项目B。该示例还可以包括:项目A、项目B和项目C或项目B和项目C。当然,可以存在这些项目的任何组合。在一些说明性示例中,“至少一个”可以是,例如,但不限于,两个项目A;一个项目B;和十个项目C;四个项目B和七个项目C;或其他合适的组合。
如所描绘的,数据管理器112位于计算机系统110。数据管理器112可以位于来自计算机系统110中的处理器单元102中的相同或不同数据处理系统。
如所描绘的,数据管理器112通过处理器单元102管理处理数据114。例如,当处理器单元102在高完整性模式106下操作时,数据管理器112可以对准处理器单元102的定时以处理数据114。定时中的这种对准可导致处理器单元102处理数据114以在同步的方式下同时地处理数据114。换言之,处理器单元102运行相同应用程序以处理数据114,以在基本相同的时间生成结果。可以由两个或更多个处理器单元102生成这些结果,其中可以比较这些结果以确定从处理数据114中生成的结果的完整性。
如所描述的,处理器单元102中的两个或更多个可以在高完整性模式106下操作,而处理器单元102中的其他处理器单元可以在标准完整性模式108下操作。换言之,数据处理器112可以同时管理混合完整性模式104下具有不同模式的处理和数据。混合完整性模式104意指处理器单元102中的一些处理器单元可以在高完整性模式106下操作,而处理器单元102中的其他处理器单元可以在标准完整性模式108下操作。混合完整性模式104还意指处理器单元102中的全部处理器单元都能够在高完整性模式106下或者在标准完整性模式108下操作。
在其他说明性示例中,数据管理器112可以管理利用外部节点116的交换数据114。当在高完整性模式106下操作时,数据管理器112能够对准接收或传输包含数据114的转移消息118中的至少一个的定时。例如,数据管理器112能够管理通过处理器单元102中的两个或更多个接收消息,使得处理器单元102中的这些处理器单元基本上同时、以基本上相同顺序或其某种组合接收转移消息118中相同的消息。
可以使用处理器单元102的数据管理器112中的至少一个内的若干个不同的功能执行这些或其他功能。例如,可以使用数据管理器112中的完整性管理器120、数据管理器112中的外部同步器122或处理器单元102中的内部同步器124中的一个或更多个中的至少一个执行该功能。
在一个说明性示例中,可以使用完整性管理器120来提供消息管理系统125。在该说明性示例中,完整性管理器120具有混合完整性模式104。如所描绘的,完整性管理器120经配置以基于混合完整性模式104中的选择的模式128来管理处理器单元102和外部节点116之间的转移消息118的交换。在该说明性示例中,完整性管理器120位于与处理器单元102和外部节点116通信的硬件中。
如所描绘的,外部节点116位于计算机系统110的外部。在其他示例中,外部节点116能够位于计算机系统110的内部。外部节点116可以采用多种不同的形式。例如,外部节点116可以从包括与处理器单元102通信的外部处理器、嵌入式计算机、台式计算机、网络设备、网络交换机和某种其他合适类型的外部设备的组中选择。
在一个说明性示例中,处理器单元102的第一部分以高完整性操作,并且处理器单元102的第二部分以标准完整性操作。完整性管理器120经配置以在作为选择的模式128的高完整性模式106下针对处理器单元102的第一部分管理转移消息118,并且在作为选择的模式128的标准完整性模式108下针对处理器单元102的第二部分管理转移消息118。转移消息118是可以被发送到处理器单元102或从处理器单元102发送的消息。
如所描绘的,完整性管理器120经配置以管理在高完整性模式106和标准完整性模式108下同时操作的处理器单元102。这种类型的操作能够支持混合完整性模式104,其中处理器单元102在高完整性模式106或标准完整性模式108中的至少一个下操作。换言之,处理器单元102可以在这些模式中的任意一个或二者下同时操作。
在该说明性示例中,完整性管理器120经配置以当在混合完整性模式104中的选择的模式128为高完整性模式106时,同步处理器单元102接收转移消息118或处理器单元102传输转移消息118中的至少一个。
例如,完整性管理器120经配置以当第一处理器单元132和第二处理器单元134使用高完整性操作时,针对第一处理器单元132,将来自外部节点116的转移消息118中接收的外部消息140放置在第一队列142中,并且针对第二处理器单元134,将外部消息140的副本144放置在第二队列146中。完整性管理器120控制第一队列142和第二队列146,使得第一处理器单元132从第一队列142读取并且第二处理器单元134从第二队列146读取相同深度,使得存在并行通道一致性(coherency)。在说明性示例中,深度是队列中的消息量。
在该说明性示例中,除了管理队列之外,完整性管理器120还将接收自第一处理器单元132的接收的消息150与从第二处理器单元134接收的相应消息154中的相应消息152进行比较。当接收的消息150和相应消息152匹配时,完整性管理器120将接收的消息150发送到外部节点116。
由完整性管理器120进行的比较可以以多种不同方式执行。例如,可以使用逐位比较或循环冗余校验中的至少一种来进行比较。在该示例中,如果在接收的消息150和相应消息152之间不存在匹配,或者如果在指示存在不期望的偏斜量的所选择时间段内没有接收到相应消息152,则完整性管理器120丢弃接收的消息150。在该示例中,当存在匹配时,丢弃相应消息152。
此外,处理器单元102中的每个都可以在将消息发送到完整性管理器120之前截断数据值,以在完整性管理器120使用逐位比较(这是精确的检查)来比较消息时降低值的准确性。例如,如果消息中的值是64位,则如果未使用截断就检查所有64位。在一些情况下,当使用逐位比较来处理数据时,在不同通道中操作的处理器单元102之间可能发生不期望的结果。因此,处理器单元102可以截断一个或更多个位以降低准确性水平。因此,当处理器单元102处于高完整性模式106时,通过处理器单元102截断位可以实现可变的精度水平。
在另一个说明性示例中,可以利用内部同步器124提供处理器同步系统127,该内部同步器124与外部同步器122通信。如所描绘的,内部同步器124中的内部同步器130在处理器单元102中的第一处理器单元132上运行。内部同步器130经配置以与数据管理器112中的外部同步器122通信,以确定在与外部同步器122通信的第一处理器单元132和第二处理器单元134之间是否存在不期望的偏斜136量。在该说明性示例中,当从两个或更多个处理器单元接收信号时,偏斜是时间上的差异。处理器单元之间的时钟偏斜和其他因素可以引起偏斜。
内部同步器130经配置以选择性地指示第一处理器单元132以执行动作138而不生成所需的结果,使得当存在不期望的偏斜136量时,第一处理器单元132和第二处理器单元134之间的偏斜136量被减小。
在减少偏斜136以在处理器单元102的处理中对准定时的一个说明性示例中,动作138从第一处理器单元132移除预调度空闲时间166,其减少第一处理器单元132和第二处理器单元134之间的偏斜136量。从滞后处理器单元移除预调度空闲时间致使处理器单元在处理指令方面在时间上向前跳过。如果在移除预调度空闲时间166之后在第一处理器单元132和第二处理器单元134之间仍然存在不期望的偏斜136量,则内部同步器130经配置以移除额外的预调度空闲时间168。
在又一个说明性示例中,第一处理器单元132是前导处理器单元,并且第二处理器单元134是滞后处理器单元,并且动作致使第一处理器单元132增加空闲时间,以使第一处理器单元132空闲,使得滞后处理器单元、第二处理器单元134能够具有对准的定时。以这种方式,可以对准两个处理器单元的定时以用于进行同步处理。
如所描绘的,第一处理器单元132和第二处理器单元134彼此相关联以用于高完整性模式106,其中对由第一处理器单元132和第二处理器单元134生成的转移消息118中的相应消息154执行完整性检查。
外部同步器122能够存储关于第一处理器单元132和第二处理器单元134之间的偏斜136量的信息。该信息能够被存储在外部同步器122或其他存储机构中的寄存器156中。例如,消息可以是被设置在寄存器156中的标志或一组位。如本文所使用的,“一组”,当参考项目使用时,意指一个或更多个项目。例如,“一组位”是一个或更多个位。
外部同步器122将关于偏斜136量的信息存储在寄存器156中。内部同步器130经配置以向外部同步器122中的针对第一处理器单元132的第一寄存器158写入,并且读取外部同步器122中的针对第二处理器单元134的第二寄存器160,并且将第一寄存器158的值与第二寄存器160的值进行比较,以确定第一处理器单元132和第二处理器单元134何时在定时上被对准以同步地处理指令。
在另一个说明性示例中,外部同步器122包括针对第一处理器单元132的第一时钟162和针对第二处理器单元132的第二时钟164。第一时钟162和第二时钟164被用于对准针对第一处理器单元132和第二处理器单元134的定时以同步地处理指令。
完整性管理器120、外部同步器122或内部同步器124中的至少一个可以在软件、硬件、固件或其组合中被实施。当使用软件时,通过完整性管理器120、外部同步器122或内部同步器124中的至少一个执行的操作可以在程序代码中被实施,该程序代码经配置以在硬件(诸如处理器单元)上运行。当使用固件时,通过完整性管理器120、外部同步器122或内部同步器124中的至少一个执行的操作可以在程序代码和数据中被实施,并且可以被存储在持久存储器中以在处理器单元上运行。当采用硬件时,硬件可以包括操作以执行完整性管理器120、外部同步器122或内部同步器124中的至少一个中的操作的电路。
在说明性示例中,硬件可以采取从电路系统、集成电路、专用集成电路(ASIC)、可编程逻辑设备或经配置以执行若干操作的某种其他合适类型的硬件中的至少一个中选择的形式。利用可编程逻辑设备,该设备可以经配置以执行若干操作。该设备可以在稍后被重新配置,或者可以永久地被配置为执行若干操作。例如,可编程逻辑设备包括可编程逻辑阵列、可编程阵列逻辑、现场可编程逻辑阵列、现场可编程门阵列和其他合适的硬件设备。另外,该方法可以在与无机组件集成的有机组件中被实施,并且可以完全由除人之外的有机组件组成。例如,该过程可以被实施为有机半导体中的电路。
例如,完整性管理器120可以在硬件中被实施为单个逻辑设备或者被实施为多个不同类型的逻辑设备。不同类型的逻辑设备可以被选择以减少潜在问题,诸如公共模式故障。例如,第一逻辑设备可以是现场可编程门阵列,而第二逻辑设备可以是专用集成电路(ASIC)。此外,当使用多于一个逻辑设备时,每个逻辑设备具有通道,通过该通道处理针对特定处理器单元的消息。逻辑设备可以具有连接,因此逻辑设备可以在时间上被对准。
在一个说明性示例中,存在一个或更多个技术方案,其克服了用于使用处理器单元处理数据的冗余中获得所期望的效率的技术问题。因此,一个或更多个技术方案可以通过处理器单元提供增加处理数据的效率的技术效果。例如,一个或更多个技术方案可以实现对准由在高完整性模式下操作的处理器单元处理数据或处理消息中的定时中的至少一个。
因此,计算机系统110作为专用计算机系统操作,其中计算机系统110中的数据管理器112或内部同步器124中的至少一个使得能够以允许在数据114的处理期间存在混合完整性模式104的方式管理数据114的处理。特别地,与当前可用的不具有数据管理器112、内部同步器124或两者的通用计算机系统相比,数据管理器112或内部同步器124中的至少一个将计算机系统110转换成专用计算机系统。
图1中的数据处理环境的图示并不意味着暗示对可以实施说明性实施例的方式的物理或架构的限制。可以使用除所说明的组件之外或代替所说明的组件的其他组件。某些组件可能是不必要的。此外,存在这些块以说明一些功能组件。当在一个说明性实施例中实施时,可以组合这些块中的一个或更多个、将这些块中的一个或更多个划分成不同的块、或组合这些块中的一个或更多个并将其划分成不同的块。
例如,数据处理环境100仅与外部节点116一起示出。在另一个说明性示例中,除了外部节点116之外或代替外部节点116,存在一个或更多个外部节点。
尽管关于飞行器描述了说明性示例,但是其他说明性示例可以被应用于其他用途。例如,可以实施说明性示例以用于医学成像、会计学、天气预报或其他合适的用途。
作为又一个示例,已经在处理器单元102中描述了两个处理器单元。除了第一处理器单元132和第二处理器单元134或代替第一处理器单元132和第二处理器单元134,可以存在处理器单元102中的一个或更多个。
例如,可以在处理器单元102中存在第三处理器单元。内部同步器130经配置以与外部同步器122通信以确定在与外部同步器通信的第一处理器单元132、第二处理器单元134和第三处理器单元之间是否存在不期望的偏斜136量,并且选择性地指示第一处理器单元132以执行动作138而不生成所需的结果,使得当存在不期望的偏斜136量时,第一处理器单元132、第二处理器单134和第三处理器单元之间的偏斜136量被减小。
例如,针对混合完整性模式104示出两个完整性模式。在其他说明性示例中,可以存在其他数量的完整性模式。例如,可以利用三个完整性模式、五个完整性模式或某种其他数量的完整性模式。例如,这些额外的完整性模式使用不同数量的比较。例如,关于三个完整性模式,应用程序可以在处理器单元102中的三个不同处理器单元上运行并且处理相同数据。可以通过数据管理器112中的完整性管理器120比较或表决来自三个处理器单元上运行的应用程序的输出。在表决中,比较来自三个处理器单元的输出。为输出值识别大多数。大多数可以是三分之二或三分之三的输出值是相同的。此输出值是被使用的值。少数输出值被丢弃。
接下来参考图2,描绘了根据一个说明性实施例的混合完整性数据处理系统的图示。在该说明性示例中,可以在图1的数据管理器112的控制下使用图1中的处理器单元102来实施混合完整性数据处理系统200。
在该说明性示例中,处理器单元202和处理器单元204是多核处理器。如所描绘的,处理器单元202包括核206和核208。处理器单元204包含核210和核212。如所描绘的,这些不同的核在时间片(诸如时间片214、时间片216和时间片218)期间运行应用程序。
在该说明性示例中,处理器单元202中的核206在时间片214期间运行应用程序1220,在时间片216期间运行应用程序4 222,并且在时间片218期间运行应用程序1 220。处理器单元202中的核208在时间片214期间运行应用程序2 224,在时间片216期间运行应用程序5 226,并且在时间片218期间运行应用程序6 228。
如所描绘的,处理器单元204中的核210在时间片214期间运行应用程序1 220,在时间片216期间运行应用程序4 222,并且在时间片218期间运行应用程序1 220。处理器单元204中的核212在时间片214期间运行应用程序3 230,在时间片216期间运行应用程序5226,并且在时间片218期间运行应用程序3 230。
应用程序1 220由处理器单元202中的核206和处理器单元204中的核210使用高完整性模式运行。以类似的方式,应用程序4 222也由核206和核210在高完整性下运行。处理器单元202中的核208和处理器单元204中的核212二者都在高完整性模式下运行应用程序5226。应用程序2 224、应用程序3 230、应用程序4 222和应用程序6 228由处理器单元204中的核210和处理器单元202中的核208在标准完整性下运行。数据处理或消息交换中的至少一个由图1中的数据管理器112管理,以提供该示例中的混合完整性模式。在一些示例中,该过程可以被应用于核的模式以实现更高级别的粒度(granularity)。
提供混合完整性数据处理系统200的图示作为图1中的处理器单元102如何可以被实施用于图1中的数据114的混合完整性处理的一个实施方式的示例。该图示并不意味着限制可以实施其他说明性示例的方式。例如,其他数量的处理器单元可以在其他说明性示例中实施。
接下来转向图3,描绘了根据一个说明性实施例的用于管理多个处理器的数据转移的过程的流程图的图示。该图中所说明的过程可以在图1中的完整性管理器120中被实施。
该过程开始于在位于与处理器单元和外部节点通信的硬件中的完整性管理器中接收处理器单元和外部节点之间交换的消息,并且当选择高完整性模式时检查来自处理器单元的冗余计算的输出是否匹配(操作300)。该过程基于混合完整性模式中的选择的模式来管理处理器单元与外部节点的消息交换(操作302)。此后该过程终止。
接下来参考图4,描绘了根据一个说明性实施例的用于同步处理器的过程的流程图的图示。可以在图1中的内部同步器130中实施图4中所说明的过程。
该过程开始于与外部同步器通信以确定在与同步系统通信的第一处理器单元和第二处理器单元之间是否存在不期望的偏斜量(操作400)。该过程选择性地指示第一处理器单元以执行动作而不生成所需的结果,使得当存在不期望的偏斜时,第一处理器单元和第二处理器单元之间的偏斜量被减小(操作402)。此后该过程终止。在一个说明性示例中,当第一处理器单元和第二处理器单元彼此相关联以用于高完整性模式时,可以使用该过程,其中对第一处理器单元和第二处理器单元生成的相应消息执行完整性检查。
接下来转向图5,描绘了根据一个说明性实施例的用于同步处理器单元的过程的流程图的图示。图5中描绘的过程可以在图1中的数据处理环境100中被实施。该过程可以在图1中的处理器单元102中的处理器单元中被实施。具体地,该过程可以在内部同步器(诸如在图1中的第一处理器单元132上运行的内部同步器130)中被实施。
该过程开始于内部同步器处理器单元将逻辑1写入外部同步器中的公共寄存器(操作500)。公共寄存器可以通过处理器单元访问,使处理器单元的定时彼此对准以用于处理数据。处理器单元可以被设计成以特定时钟速度运行。然而,处理器单元的实际的物理的实施方式可以与规范略微不同。此寄存器可以用于在执行期间对准定时处理器,使得他们以同步的方式尽可能接近同时执行指令。
该过程读取外部同步器中的公共状态寄存器(操作502)。确定从公共状态寄存器读取的值是否是逻辑1(操作504)。处理器单元之间共享公共状态寄存器。通过多于一个处理器单元不能看到简单的状态寄存器。
如果值是逻辑1,则处理器单元开始处理(操作506)。此后,过程终止。在该说明性示例中,处理可以包括初始化、开始应用程序、继续执行应用程序或某种其他合适的动作。再次参考操作504,如果值不是逻辑1,则过程回到操作502。
现在参考图6,描绘了根据一个说明性实施例的用于同步处理器单元的过程的流程图的图示。流程图示出了通过在第一处理器单元上运行的内部同步器(诸如在图1中的第一处理器单元132上运行的内部同步器130)执行的操作。过程可以通过两个或更多个处理器单元运行以同步通过处理器单元进行的指令处理。
在该示例中,处理器单元中的每个都具有测量已经过去的时间的时钟。时钟可以是测量真实时间的数字时钟,该真实时间与中央处理单元时间相对,中央处理单元时间测量过程积极处理任务的时间。
如所描绘的,时钟可以是通过处理器单元读取的外部时钟。例如,时钟可以被定位在外部同步器中。时钟以日期、小时、分钟和秒而不是处理器周期来测量按时间顺序的(chronological)时间。
该过程开始于第一处理器单元中的内部同步器读取外部同步器中的时钟(操作600)。时钟用于第一处理器单元,并与运行相同应用程序或指令集的任何其他处理器单元的时钟同步。
确定从差值寄存器读取的值是否大于阈值(操作602)。差值寄存器存储值,该值表示时钟的当前时间与处理器单元中的内部同步器读取差值寄存器时的时间的快照(snapshot)之间的差值。在该说明性示例中,差值寄存器位于外部同步器中。
外部同步器将差值寄存器设置为具有表示两个处理器单元读取差值寄存器的时间差的值。如所描绘的,前导处理器单元将获得零值。滞后处理器单元看到实际的偏斜时间。例如,滞后处理器单元将获得一个数字,该数字是前导处理器单元读取差值寄存器的时间与滞后处理器单元读取差值寄存器的时间之间的差值。
如所描绘的,可以基于许多不同因素来选择阈值。例如,两个处理单元之间允许的偏斜量可用于设置阈值。如果差值寄存器的值大于阈值,则同步器指示第二处理器单元执行动作而不获得任何结果(操作604)。
在该说明性示例中,执行动作以加速滞后处理器单元。例如,可以移除预调度空闲时间滞后处理器单元。替代性地,可以使前导处理器单元空闲以允许滞后处理器单元赶上。例如,当两个处理器单元使用相同数据运行相同程序时,执行不包括处理数据以获得结果的动作被认为是不产生所需结果的动作。
在另一个示例中,操作604中的动作可以是移除备用分区或预调度空闲时间。换言之,移除备用分区使得处理器单元执行不是由与该处理器单元同步的另一个处理器单元上的相应应用程序执行的动作。然后,该过程返回到操作602。
在操作602中,如果差值寄存器的值不大于阈值,则该过程也返回到操作602。在这种情况下,第一处理器单元与第二处理器单元同步或第一处理器单元滞后于第二处理器单元。
现在参考图7,描绘了根据一个说明性实施例的用于同步从处理器单元发送消息的过程的流程图的图示。图7中所说明的过程由内部同步器(诸如在图1中的第一处理器单元132上运行的内部同步器130)使用,以基于在完整性管理器120中排队的消息来管理消息的发送。换言之,该过程允许消息被收集在队列内,直到队列的空白部分减少到预定阈值以下。
该过程开始于读取外部同步器中的队列深度寄存器(操作700)。队列深度寄存器包含队列深度,该深度指示队列中有多少消息。该队列可用于匹配两个处理器单元发送的消息。
确定外部同步器中的队列是否具有n个消息的空间(操作702)。在操作702中,n个消息是预定义数量的消息。在一个示例中,队列可以容纳十个消息,并且处理器单元每次可以写入三个消息。如果队列深度为九,则队列中存在的空间不足以用于写入另外三个消息。
如果队列不具有n个消息的空间,则该过程增加空闲时间,然后返回到前导处理器单元(操作704)。然后,该过程返回到操作700。该过程循环直到空间可用于将三个消息写入队列。因此,如果队列不具有n个消息的空间,则过程单元不会将消息放在队列中。
否则,如果队列具有n个消息的空间,则处理器单元中的内部同步器将消息写入外部同步器中的队列(操作706)。然后,该过程终止。当存在用于发送的额外消息时,可以重新启动该过程。
因此,完整性管理器可以控制第一队列和第二队列,使得第一处理器单元从第一队列读取并且第二处理器单元从第二队列读取并且两者都执行到相同的队列深度以维持并行通道一致性。虽然消息的写入被显示为由内部同步器执行,但是该操作可以由处理器单元内的另一个组件执行,其中内部同步器指示何时可以写入n个消息。
转到图8,描绘了根据一个说明性实施例的用于发送消息的过程的流程图的图示。该过程可以在图1中的完整性管理器120中实施,以对准来自图1中的处理器单元102的冗余生成的出站(outbound)消息的定时并确保其完整性。在该示例中,每个消息基于标识符被放置在队列中的特定位置中。该标识符可以在消息的头部(header)中。
该过程开始于从第一处理器单元接收消息(操作800)。该过程确定该消息是否是高完整性消息(操作802)。可以通过多种不同方式进行该确定。例如,头部可以包括关于消息是否是高完整性消息的指示。在另一个说明性示例中,可以检查配置文件、寄存器或某种其他种类的指示符以确定该消息是否是高完整性消息。
如果消息是高完整性消息,则该过程存储该消息(操作804)。在操作804中,可以将消息存储在各种类型的存储设备中。例如,消息被存储在队列中,该队列可以使用许多不同类型的设备来实施。例如,可以使用缓冲器、端口阵列或以某种其他合适类型的设备来实施队列。如所描绘的,端口阵列是一组动态缓冲器,其中消息可以位于不同的位置而不是特定的位置。通过端口阵列,完整性管理器搜索不同的处理器单元的缓冲区,以配对消息以进行处理。换言之,应该比较的消息在动态缓冲器组中的顺序可能不同。
该过程等待以从第二处理器单元接收相应的消息(操作806)。确定是否已经接收到第二消息或者是否已经发生超时(操作808)。如果已经发生超时,则丢弃该消息(操作810),并指示错误(操作812)。此后该过程终止。
再次参考操作808,如果已经接收到第二消息,则该过程执行两个消息之间的比较(操作814)。可以以多种不同方式执行比较。例如,可以使用逐位比较、比较循环冗余校验签名和其他技术。
确定两个消息是否匹配(操作816)。如果两个消息匹配,则该过程发送消息(操作818)。在该说明性示例中,消息被发送到网络上。此后该过程终止。
否则,该过程丢弃两个消息(操作820)。在操作820中,丢弃消息,因为不存在匹配。然后,该过程进行到如上所述的操作812。再次参考操作802,如果消息不具有高完整性,则过程进行到如上所述的操作818。
接下来参考图9,描绘了根据一个说明性实施例的用于发送消息的过程的流程图的图示。该过程可以在图1中的完整性管理器120中实施,以对准冗余生成的出站消息的定时并确保其完整性。
该过程开始于从处理器单元接收消息(操作900)。确定该消息是否是高完整性消息(操作902)。如果消息是高完整性消息,则该过程将消息放入处理器单元的通道中的队列中(操作904)。如所描绘的,队列是先进先出(FIFO)队列,并且可以被实施为缓冲器。
确定另一个处理器的通道中的队列是否具有一个或更多个消息(操作906)。如果另一个处理器的通道中的队列不具有一个或更多个消息,则该过程执行超时检查(操作908)。如果没有发生超时,则该过程返回到操作906。
如果另一个队列具有一个或更多个消息,则该过程在队列中的两个头部消息之间执行逐位比较(操作910)。在该说明性示例中,头部消息是要从队列中拉取的下一个消息。
确定两个消息是否匹配(操作912)。如果两个消息匹配,则该过程发送消息(操作914)。在该说明性示例中,消息被发送到网络上。此后该过程终止。否则,该过程丢弃两个消息并指示错误(操作916)。
再次参考操作902,如果消息不是高完整性消息,则过程进行到操作914。返回到操作908,如果已经发生超时,则过程进行到操作916。
在图10中,描绘了根据一个说明性实施例的用于接收消息的过程的流程图的图示。此过程可以在完整性管理器中实施。此过程说明了拉取消息。
该过程开始于检测消息的到达(操作1000)。该过程将消息放置在队列的后面(操作1002)。然后,该过程递增队列深度计数器(操作1004),此后该过程终止。在该说明性示例中,队列深度计数器可用于指示可以如何读取消息。完整性管理器可以使用此队列深度计数器来确保以相同的顺序读取消息。
接下来参考图11,描绘了根据一个说明性实施例的用于接收消息的过程的流程图的图示。在该说明性示例中,该过程可以在图1中的完整性管理器120中实施。该过程说明了从队列中拉取消息。
该过程开始于接收针对第一处理器单元的第一队列的读取请求(操作1100)。确定针对第二处理器单元的第二队列是否已被第二处理器单元读取(操作1102)。如果已经读取了第二队列,则该过程选择由第二处理器单元读取的第二队列中的第二队列深度值(操作1104)。
没有完整性管理器,每个处理器单元通常使用其自己的队列深度计数器来用于读取消息。在该说明性示例中,完整性管理器从特定队列深度计数器中选择队列深度值,以使两个处理器单元读取相同数量的消息。
该过程将所选择的队列深度值发送到第一处理器单元(操作1106)。操作1106使第一处理器单元能够读取基于队列深度值指示的消息的数量。该过程通过读取的消息的数量递减队列深度计数器中的队列深度值(操作1108)。在操作1108中,队列深度计数器可以是第一处理器单元的第一队列深度计数器或第二处理器单元的第二队列深度值。递减的队列深度计数器基于向第一处理器单元提供的队列深度值。此后该过程终止。在该说明性示例中,进行从所选择的队列深度计数器中选择特定队列深度值,使得两个处理器单元使用相同的队列深度值以用于读取消息。
再次参考操作1102,如果尚未读取第二处理器的第二队列,则该过程确定第二深度队列计数器中的第二队列深度值是否大于第一深度队列计数器中的第一队列深度值(操作1110)。如果第二队列深度值大于第一队列深度值,则该过程使用第一队列深度值以用于读取消息(操作1112)。然后,该过程进行到操作1106。否则,该过程使用第二队列深度值以用于读取消息(操作1114)并且进行到操作1106。
接下来参考图12,描绘了根据一个说明性实施例的用于接收消息的过程的流程图的图示。在该说明性示例中,该过程可以在图1中的完整性管理器120中实施。该过程说明了推送消息。
该过程开始于检测消息的到达(操作1200)。该过程将消息推送到处理器单元的存储器中(操作1202)。然后,该过程递增队列深度(操作1204),此后该过程终止。
接下来参考图13,描绘了根据一个说明性实施例的用于接收消息的过程的流程图的图示。在该说明性示例中,该过程可以在图1中的完整性管理器120中实施。该过程说明了推送消息。该过程可用于告知处理器单元要从处理器单元中的存储器读取的消息。
该过程开始于接收从第一处理器单元读取消息的请求(操作1300)。确定是否已经读取了第二处理器单元的第二队列(操作1302)。如果已经读取了队列,则该过程提供用于第二处理器单元的队列的第二读取指针(操作1304)。在该说明性示例中,读取指针指出如何从队列中读取消息。例如,读取指针可以指向可以通过处理器单元在队列中读取的最后一条消息。换言之,读取指针可以指示类似于队列深度值的队列深度。
处理器单元从其内部存储器读取直到读取指针的若干消息(操作1306)。消息由示例中的完整性管理器推送。完整性管理器通过读取的消息的数量递减推送计数器(操作1308)。此后该过程终止。当完整性管理器接收到新消息时,完整性管理器将新消息推送到处理器单元中的存储器中并更新推送计数。读取计数是允许处理器单元读取多少那些推送消息。因此,如果推送X个消息并且允许处理器单元读取Y个消息,则X-Y个消息被留在处理器存储器中。通过Y递减推送计数以指示存储器中剩余多少未读消息。
再次参考操作1302,如果尚未读取第二处理器单元的第二队列,则该过程确定第二处理器单元的推送计数器是否大于第一通道的推送计数器(操作1310)。如果第二队列深度的推送计数器大于第一通道的第一推送计数器,则该过程使用第一推送计数器的值作为读取消息的读取点(操作1312)。然后,该过程进行到操作1306。否则,该过程使用第二通道的推送计数器作为读取指针(操作1314)。然后,该过程进行到操作1306。
不同描绘的实施例中的流程图和块图说明了一个说明性实施例中的装置和方法的一些可能实施方式的架构、功能和操作。在这方面,流程图或块图中的每个块可以表示模块、段、功能或操作或步骤的一部分中的至少一个。例如,一个或更多个块可以实施为程序代码、硬件或程序代码和硬件的组合。当以硬件实施时,硬件可以例如采用集成电路的形式,该集成电路被制造或被配置以执行流程图或块图中的一个或更多个操作。当实施为程序代码和硬件的组合时,实施方式可以采用固件的形式。流程图或块图中的每个块可以使用专用硬件系统来实施,该专用硬件系统执行专用硬件和由专用硬件运行的程序代码的不同操作或组合。
在一个说明性实施例的一些替代实施方式中,块中提及的一个或更多个功能可以不按图中所提及的顺序发生。例如,在一些情况下,可以基本上同时执行连续示出的两个块,或者有时可以以相反的顺序执行块,这取决于所涉及的功能。此外,除了流程图或块图中所说明的块之外,还可以添加其他块。例如,关于读取消息描述了图12中的过程。此过程也可用于写入或发送消息。
现在转到图14,描绘了根据一个说明性实施例的数据处理系统的块图的图示。数据处理系统1400可以用于实施图1的计算机系统110和外部节点116。在该说明性示例中,数据处理系统1400包括通信框架1402,其提供处理器单元1404、存储器1406、持久存储装置1408、通信单元1410、输入/输出(I/O)单元1412和显示器1414之间的通信。在该示例中,通信框架1402可以采用总线系统的形式。
处理器单元1404用于执行可以加载到存储器1406中的软件的指令。处理器单元1404可以是多个处理器、多处理器核或某种其他类型的处理器,这取决于特定实施方式。
存储器1406和持久存储装置1408是存储设备1416的示例。存储设备是能够存储信息的任何硬件块,诸如,例如但不限于,数据、函数形式的程序代码或者其他适当的信息中的至少一个,无论是临时性的基础、永久性的基础上,还是临时性的和永久性的二者基础上。在这些说明性示例中,存储设备1416还可以被称为计算机可读存储设备。在这些示例中,存储器1406可以是例如随机存取存储器或任何其他合适的易失性或非易失性存储设备。持久存储装置1408可以采取各种形式,这取决于特定实施方式。
例如,持久存储装置1408可以包含一个或更多个组件或设备。例如,持久存储装置1408可以是硬盘驱动器、固态硬盘驱动器、闪存、可重写光盘、可重写磁带或上述的某种组合。持久存储装置1408使用的介质也可以是可移除的。例如,可移除的硬盘驱动器可以用于持久存储装置1408。
在这些说明性示例中,通信单元1410提供与其他数据处理系统或设备的通信。在这些说明性示例中,通信单元1410是网络接口卡。
输入/输出单元1412允许与可以连接到数据处理系统1400的其他设备进行输入和输出数据。例如,输入/输出单元1412可以通过键盘、鼠标或某种其他合适的输入设备中的至少一个提供用于用户输入的连接。此外,输入/输出单元1412可以将输出发送到打印机。显示器1414提供向用户显示信息的机制。
用于操作系统、应用程序或程序中的至少一个的指令可以位于存储设备1416中,存储设备1416通过通信框架1402与处理器单元1404通信。不同实施例的过程可以由处理器单元1404使用计算机实施的指令执行,该指令可以位于存储器(诸如存储器1406)中。
这些指令被称为程序代码、计算机可用程序代码或计算机可读程序代码,其可由处理器单元1404中的处理器读取和执行。不同实施例中的程序代码可以体现在不同的物理或计算机可读存储介质(诸如存储器1406或持久存储装置1408)上。
程序代码1418以函数形式位于计算机可读介质1420上,计算机可读介质1420可选择性地移除并且可被加载到或传送到数据处理系统1400以由处理器单元1404执行。在这些说明性示例中,程序代码1418和计算机可读介质1420形成计算机程序产品1422。在说明性示例中,计算机可读介质1420可以是计算机可读存储介质1424。在这些说明性示例中,计算机可读存储介质1424是用于存储程序代码1418的物理或有形存储设备,而不是传播或发送程序代码1418的介质。
替代性地,可以使用计算机可读信号介质将程序代码1418传送到数据处理系统1400。计算机可读信号介质可以是例如包含程序代码1418的传播数据信号。例如,计算机可读信号介质可以是电磁信号、光信号或任何其他合适类型的信号中的至少一种。这些信号可以通过通信链路(诸如无线通信链路、光纤电缆、同轴电缆、电线或任何其他合适类型的通信链路)中的至少一个传输。
针对数据处理系统1400所说明的不同组件并不意味着对可以实施不同实施例的方式提供架构限制。不同的说明性实施例可以在数据处理系统中实施,该数据处理系统包括除了针对数据处理系统1400所说明的那些组件之外或代替针对数据处理系统1400所说明的那些组件的组件。图14中所示的其他组件可以与所示的说明性示例不同。可以使用能够运行程序代码1418的任何硬件设备或系统来实施不同的实施例。
可以在如图15中所示的飞行器制造和保养方法1500以及如图16中所示的飞行器1600的背景下描述本公开的说明性实施例。首先转到图15,描绘了根据一个说明性实施例的飞行器制造和保养方法的块图的图示。在预生产期间,飞行器制造和保养方法1500可以包括图16中的飞行器1600的规格和设计1502以及材料采购1504。
在生产期间,发生飞行器1600的组件和子组件制造1506和系统集成1508。此后,飞行器1600可以通过认证和交付1510以便被放置在服务中1512。在由客户进行的在服务中1512时,飞行器1600被安排用于例行维护和保养1514,其可以包括修改、重新配置、翻新和其他维护或保养。
飞行器制造和保养方法1500的过程中的每个可以由系统集成商、第三方、运营商或其某种组合来执行或实行。在这些示例中,运营商可以是客户。出于本说明书的目的,系统集成商可以包括但不限于任何数量的飞行器制造商和主要系统分包商;第三方可包括但不限于任何数量的供货商、分包商和供应商;并且运营商可以是航空公司、租赁公司、军事实体、服务组织等。
现在参考图16,描绘了飞行器的块图的图示,其中可以实施说明性实施例。在该示例中,飞行器1600由图15中的飞行器制造和保养方法1500生产,并且可包括具有多个系统1604和内部1606的机身1602。系统1604的示例包括推进系统1608、电气系统1610、液压系统1612、环境系统1614和计算机系统1616中的一个或更多个。可以包括任何数量的其他系统。尽管示出了航空航天示例,但是不同的说明性实施例可以应用于其他行业,诸如汽车行业。可以在图15中的飞行器制造和保养方法1500的阶段中的至少一个期间采用本文所体现的装置和方法。
在一个说明性示例中,在图15中的组件和子组件制造1506中生产的组件或子组件可以以与在图15中的飞行器1600是在服务中1512时生产的组件或子组件类似的方式制作或制造。作为又一个示例,在生产阶段(诸如图15中的组件和子组件制造1506和系统集成1508)期间可以利用一个或更多个装置实施例、方法实施例或其组合。飞行器1600是在服务中1512时、在图15中的维护和保养1514期间或两者中,可以使用一个或更多个装置实施例、方法实施例或其组合。
例如,数据管理器(诸如图1中的数据管理器112)或一个或更多个内部同步器(诸如内部同步器124)中的至少一个可以在飞行器1600中的计算机系统1616中实施。这些组件的使用可以实现在混合完整性模式中的数据的处理。与当前使用的计算机系统相比,不同的组件能够以更有效的方式使数据的处理、消息的交换或其某种组合同步。
使用多个不同的说明性实施例的实施方式可以大大加快飞行器1600的组装、降低飞行器1600的成本或者加速飞行器1600的组装并降低飞行器1600的成本两者。处理数据中的提高的效率可以减少飞行器1600中所需的计算机的大小或数量中的至少一个。这种提高的效率可以增加飞行器中当前使用的数据处理系统的处理能力,从而减少维护和翻新的数量。
因此,一个或更多个说明性示例可用于降低平台(诸如飞行器或其他合适平台)中的处理器系统的管理(overhead)处理数据的成本。另一种类型的平台包括例如移动平台、固定平台、陆基结构、水基结构和空基结构。更具体地,该平台可以是水面舰艇、坦克、人员运载工具、火车、航天器、空间站、卫星、潜艇、汽车、发电站、桥梁、大坝、房屋、制造设施、建筑物和其他合适的平台。
存在一种或更多种技术方案,其克服了在使用处理器单元处理数据的冗余中获得所需效率的技术问题。因此,一个或更多个技术方案可以提高处理器单元处理数据的效率。例如,一个或更多个技术方案可以实现对准在高完整性模式下操作的处理器单元处理数据中的定时或处理消息中的定时中的至少一个。因此,处理器单元可以单独地或基本上同时使用高完整性模式、标准完整性模式或其某种组合来处理数据。
已经出于说明和描述的目的呈现了对不同说明性实施例的描述,并且不旨在穷举或限制于所公开形式的实施例。不同的说明性示例描述了执行动作或操作的组件。在说明性实施例中,组件可以被配置为执行所描述的动作或操作。例如,组件可以具有用于结构的配置或设计,该结构向组件提供执行在说明性示例中被描述为由组件执行的动作或操作的能力。
此外,本公开包括根据以下实施例的实施例:
实施例1.一种处理器同步系统,其包括:
内部同步器,其在第一处理器单元上运行,其中内部处理器经配置以与外部同步器通信,以确定在与外部同步器通信的第一处理器单元和第二处理器单元之间是否存在不期望的偏斜量,并且选择性地指示第一处理器单元来执行动作而不生成所需的结果,使得当存在不期望的偏斜量时,第一处理器单元和第二处理器单元之间的不期望的偏斜量被减小,其中第一处理器单元和第二处理器单元彼此相关联以用于高完整性模式,其中对由第一处理器单元和第二处理器单元生成的相应消息执行完整性检查。
实施例2.根据实施例1所述的处理器同步系统,其中第一处理器单元和第二处理器单元是相同类型。
实施例3.根据实施例1所述的处理器同步系统,其中第一处理器单元和第二处理器单元是不同类型。
实施例4.根据实施例1所述的处理器同步系统,其中外部同步器存储关于在第一处理器单元和第二处理器单元之间的不期望的偏斜量的信息。
实施例5.根据实施例4所述的处理器同步系统,其中外部同步器将关于不期望的偏斜量的信息存储在寄存器中,并且其中与外部同步器通信以确定在与处理器同步系统通信的第一处理器单元和第二处理器单元之间是否存在不期望的偏斜量,内部同步器经配置以向外部同步器中的针对第一处理器单元的第一寄存器写入,并且读取外部同步器中的针对第二处理器单元的第二寄存器,并且将第一寄存器的值与第二寄存器的值进行比较,以确定第一处理器单元和第二处理器单元何时被对准以同步地处理指令。
实施例6.根据实施例1所述的处理器同步系统,其中外部同步器包括第一处理器单元的第一时钟和第二处理器单元的第二时钟,其中第一时钟和第二时钟被用于对准第一处理器单元和第二处理器单元以同步地处理指令。
实施例7.根据实施例6所述的处理器同步系统,其中第一处理器单元是前导处理器单元;第二处理器单元是滞后处理器单元;差值寄存器将零值返回到前导处理器单元;并且差值寄存器将不期望的偏斜量的值返回到滞后处理器单元。
实施例8.根据实施例1所述的处理器同步系统,其中,当第一处理器单元中的内部同步器检测到第一处理器单元比第二处理器单元慢时,该动作从第一处理器单元移除预调度空闲时间,该预调度空闲时间减少第一处理器单元与第二处理器单元之间的不期望的偏斜量。
实施例9.根据实施例8所述的处理器同步系统,其中,在移除预调度空闲时间之后,如果在第一处理器单元和第二处理器单元之间仍存在不期望的偏斜量,则内部同步器经配置以移除额外的预调度空闲时间。
实施例10.根据实施例1所述的处理器同步系统,其中第一处理器单元是前导处理器单元,并且第二处理器单元是滞后处理器单元,并且该动作致使第一处理器单元添加预调度空闲时间,该预调度空闲时间致使第一处理器单元更慢地操作。
实施例11.根据实施例1所述的处理器同步系统,进一步包括:
第三处理器单元,其中内部同步器经配置以与外部同步器通信以确定在与外部同步器通信的第一处理器单元、第二处理器单元和第三处理器单元之间是否存在不期望的偏斜量,并且选择性地指示第一处理器单元来执行动作而不生成所需的结果,使得当存在不期望的偏斜量时,第一处理器单元、第二处理器单元和第三处理器单元之间的不期望的偏斜量被减小。
实施例12.根据实施例1所述的处理器同步系统,其中第一处理器单元和第二处理器单元各自从包括多核处理器单元、单核处理器单元、同构多核处理器单元、异构多核处理器、图形处理器单元和通用处理器单元中的至少一个的组中选择。
实施例13.根据实施例1所述的处理器同步系统,其中内部同步器包括在第一处理器单元上运行的软件或硬件中的至少一个。
实施例14.一种用于同步处理器单元的方法,该方法包括:
与外部同步器通信以确定在与同步系统通信的第一处理器单元和第二处理器单元之间是否存在不期望的偏斜量;以及
选择性地指示第一处理器单元来执行动作而不生成所需的结果,使得当在第一处理器单元中存在不期望的偏斜量时,第一处理器单元和第二处理器单元之间的不期望的偏斜量被减小,其中第一处理器单元和第二处理器单元彼此相关联以用于高完整性模式,其中对由第一处理器单元和第二处理器单元生成的相应消息执行完整性检查。
实施例15.根据实施例14所述方法,其中第一处理器单元和第二处理器单元是相同类型。
实施例16.根据实施例14所述的方法,其中第一处理器单元和第二处理器单元是不同类型。
实施例17.根据实施例14所述的方法,其进一步包括:
存储关于在第一处理器单元和第二处理器单元之间的不期望的偏斜量的信息在外部同步器中。
实施例18.根据实施例17所述的方法,其中外部同步器将关于不期望的偏斜量的信息存储在寄存器中,其中与同步系统通信以确定在与同步系统通信的第一处理器单元和第二处理器单元之间是否存在不期望的偏斜量包括:
向同步系统中的针对第一处理器单元的第一寄存器写入;
读取同步系统中的针对第二处理器单元的第二寄存器;以及
将第一寄存器的值与第二寄存器的值进行比较,以确定第一处理器单元和第二处理器单元何时被对准以同步地处理指令。
实施例19.根据实施例14所述的方法,其中外部同步器包括第一处理器单元的第一时钟和第二处理器单元的第二时钟,并且其中外部同步器针对第二处理器单元的第二时钟读取寄存器。
实施例20.根据实施例14所述的方法,其中若干指令从第一处理器单元移除预调度空闲时间,该预调度空闲时间减少在第一处理器单元和第二处理器单元之间的不期望的偏斜量。
实施例21.根据实施例20所述的方法,进一步包括:
移除,其经配置以在移除预调度空闲时间之后,如果在第一处理器单元和第二处理器单元之间仍存在不期望的偏斜量,则移除额外的预调度空闲时间。
实施例22.根据实施例14所述的方法,其中第一处理器单元是前导处理器单元,并且第二处理器单元是滞后处理器单元,并且若干指令致使第一处理器单元变得空闲。
实施例23.根据实施例14所述的方法,其中存在第三处理器单元,并且进一步包括:
与外部同步器通信,以确定在与同步系统通信的第一处理器单元、第二处理器单元和第三处理器单元之间是否存在不期望的偏斜量;以及
选择性地指示第一处理器单元来执行动作而不生成所需的结果,使得当存在不期望的偏斜量时,第一处理器单元、第二处理器单元和第三处理器单元之间的不期望的偏斜量被减小,并且当第一处理器单元、第二处理器单元和第三处理器单元彼此相关联以用于高完整性模式,其中对由第一处理器单元、第二处理器单元和第三处理器单元生成的相应消息执行完整性检查。
实施例24.根据实施例14所述的方法,其中第一处理器单元和第二处理器单元各自从包括多核处理器单元、单核处理器单元、同构多核处理器单元、异构多核处理器单元、图形处理器单元和通用处理器单元中的至少一个的组中选择。
许多修改和变化对本领域的技术人员将是明显的。另外,与其他期望的实施例相比,不同说明性实施例可以提供不同特征。例如,说明性实施例已经关于混合完整性模式进行了描述,并且说明性实施例能够应用于处理器运行锁步或其他类型的环境中,其中设计处理同步或消息交换中的至少一个。选择和描述所选择的一个实施例或更多个实施例,以便最好地解释实施例的原理、实际应用,并且使本领域的普通技术人员能够理解本公开的各种实施例,其具有适合于预期特定用途的各种修改。
Claims (10)
1.一种处理器同步系统(127),其包括:
内部同步器(130),其在第一处理器单元(132)上运行,其中所述内部同步器(130)经配置以与外部同步器(122)通信,以确定在与所述外部同步器(122)通信的所述第一处理器单元(132)和第二处理器单元(134)之间是否存在不期望的偏斜(136)量,并且选择性地指示所述第一处理器单元(132)来执行动作(138)而不生成所需的结果,使得当存在所述不期望的偏斜(136)量时,所述第一处理器单元(132)和所述第二处理器单元(134)之间的不期望的偏斜(136)量被减小,其中所述偏斜是时间上的差异,其中所述动作从所述第一处理器单元移除预调度空闲时间,其中所述第一处理器单元(132)和所述第二处理器单元(134)彼此相关联以用于高完整性模式(106),其中对由所述第一处理器单元(132)和所述第二处理器单元(134)生成的相应消息执行完整性检查。
2.根据权利要求1所述的处理器同步系统(127),其中所述外部同步器(122)存储关于在所述第一处理器单元(132)和所述第二处理器单元(134)之间的所述不期望的偏斜(136)量的信息。
3.根据权利要求1所述的处理器同步系统(127),其中所述外部同步器(122)将关于所述不期望的偏斜(136)量的信息存储在寄存器(156)中,并且其中与所述外部同步器(122)通信以确定在与所述处理器同步系统(127)通信的所述第一处理器单元(132)和所述第二处理器单元(134)之间是否存在所述不期望的偏斜(136)量,所述内部同步器(130)经配置以向所述外部同步器(122)中的针对所述第一处理器单元(132)的第一寄存器(158)写入,并且读取所述外部同步器(122)中的针对所述第二处理器单元(134)的第二寄存器(160),并且将所述第一寄存器(158)的值与所述第二寄存器(160)的值进行比较,以确定所述第一处理器单元(132)和所述第二处理器单元(134)何时被对准以同步地处理指令。
4.根据权利要求1所述的处理器同步系统(127),其中所述外部同步器(122)包括针对所述第一处理器单元(132)的第一时钟(162)和针对所述第二处理器单元(134)的第二时钟(164),其中所述第一时钟(162)和所述第二时钟(164)被用于对准所述第一处理器单元(132)和所述第二处理器单元(134)以同步地处理指令。
5.根据权利要求4所述的处理器同步系统(127),其中所述第一处理器单元(132)是前导处理器单元;所述第二处理器单元(134)是滞后处理器单元;差值寄存器将零值返回到所述前导处理器单元;并且所述差值寄存器将所述不期望的偏斜(136)量的值返回到所述滞后处理器单元。
6.根据权利要求1所述的处理器同步系统(127),其中响应于所述第一处理器单元(132)中的所述内部同步器(130)检测到所述第一处理器单元(132)比所述第二处理器单元(134)慢来移除所述预调度空闲时间,所述预调度空闲时间减少所述第一处理器单元(132)与所述第二处理器单元(134)之间的所述不期望的偏斜(136)量。
7.根据权利要求6所述的处理器同步系统(127),其中如果在移除所述预调度空闲时间之后,在所述第一处理器单元(132)和所述第二处理器单元(134)之间仍存在所述不期望的偏斜(136)量,则所述内部同步器(130)经配置以移除额外的预调度空闲时间。
8.一种用于同步处理器单元的方法,所述方法包括:
与外部同步器(122)通信以确定在与同步系统通信的第一处理器单元(132)和第二处理器单元(134)之间是否存在不期望的偏斜(136)量;以及
选择性地指示所述第一处理器单元(132)来执行动作(138)而不生成所需的结果,使得当在所述第一处理器单元(132)中存在所述不期望的偏斜(136)量时,所述第一处理器单元(132)和所述第二处理器单元(134)之间的所述不期望的偏斜(136)量被减小,其中所述偏斜是时间上的差异,其中所述动作从所述第一处理器单元移除预调度空闲时间,其中所述第一处理器单元(132)和所述第二处理器单元(134)彼此相关联以用于高完整性模式(106),其中对由所述第一处理器单元(132)和所述第二处理器单元(134)生成的相应消息执行完整性检查。
9.根据权利要求8所述的方法,其进一步包括:
将关于在所述第一处理器单元和所述第二处理器单元之间的所述不期望的偏斜量的信息存储在所述外部同步器中。
10.根据权利要求9所述的方法,其中所述外部同步器将关于所述不期望的偏斜量的信息存储在寄存器中,其中与所述同步系统通信以确定在与所述同步系统通信的所述第一处理器单元和所述第二处理器单元之间是否存在所述不期望的偏斜量包括:
向所述同步系统中的针对所述第一处理器单元的第一寄存器写入;
读取所述同步系统中的针对所述第二处理器单元的第二寄存器;以及
将所述第一寄存器的值与所述第二寄存器的值进行比较,以确定所述第一处理器单元和所述第二处理器单元何时被对准以同步地处理指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/819,402 | 2017-11-21 | ||
US15/819,402 US10528077B2 (en) | 2017-11-21 | 2017-11-21 | Instruction processing alignment system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109815020A CN109815020A (zh) | 2019-05-28 |
CN109815020B true CN109815020B (zh) | 2024-05-14 |
Family
ID=63798768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811317171.1A Active CN109815020B (zh) | 2017-11-21 | 2018-11-07 | 指令处理对准系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10528077B2 (zh) |
EP (1) | EP3486780B1 (zh) |
JP (1) | JP7290410B2 (zh) |
KR (1) | KR20190058288A (zh) |
CN (1) | CN109815020B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11132268B2 (en) | 2019-10-21 | 2021-09-28 | The Boeing Company | System and method for synchronizing communications between a plurality of processors |
US12056084B2 (en) * | 2020-12-09 | 2024-08-06 | The Boeing Company | Message synchronization system |
FR3118843A1 (fr) * | 2021-01-13 | 2022-07-15 | Dassault Aviation | Systeme de transfert securise de donnees numeriques d'aeronef comprenant des systemes producteurs de donnees redondants, ensemble et procede associes |
US11838397B2 (en) | 2021-06-17 | 2023-12-05 | Northrop Grumman Systems Corporation | Systems and methods for synchronization of processing elements |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1193410A (zh) * | 1995-06-15 | 1998-09-16 | 英特尔公司 | 在多处理器系统中的处理器之间传送消息的方法与装置 |
WO2007006013A2 (en) * | 2005-07-05 | 2007-01-11 | Viasat, Inc. | Synchronized high-assurance circuits |
CN101714108A (zh) * | 2008-10-03 | 2010-05-26 | 富士通株式会社 | 同步控制设备、信息处理设备以及同步管理方法 |
CN103227755A (zh) * | 2011-09-07 | 2013-07-31 | 阿尔特拉公司 | 使用推测技术的处理器到基于消息的网络的接口 |
CN103582879A (zh) * | 2011-06-10 | 2014-02-12 | 国际商业机器公司 | 管理耦合设施中的操作员消息缓冲器 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0736720A (ja) * | 1993-07-20 | 1995-02-07 | Yokogawa Electric Corp | 二重化コンピュータ装置 |
DE102005055067A1 (de) * | 2005-11-18 | 2007-05-24 | Robert Bosch Gmbh | Vorrichtung und Verfahren zum Beheben von Fehlern bei einem wenigstens zwei Ausführungseinheiten mit Registern aufweisenden System |
FR2925191B1 (fr) | 2007-12-14 | 2010-03-05 | Thales Sa | Architecture de traitement numerique a haute integrite a multiples ressources supervisees |
US8924780B2 (en) | 2011-11-10 | 2014-12-30 | Ge Aviation Systems Llc | Method of providing high integrity processing |
US9400722B2 (en) | 2011-11-15 | 2016-07-26 | Ge Aviation Systems Llc | Method of providing high integrity processing |
-
2017
- 2017-11-21 US US15/819,402 patent/US10528077B2/en active Active
-
2018
- 2018-09-19 EP EP18195505.5A patent/EP3486780B1/en active Active
- 2018-10-17 KR KR1020180123896A patent/KR20190058288A/ko not_active Application Discontinuation
- 2018-11-07 CN CN201811317171.1A patent/CN109815020B/zh active Active
- 2018-11-14 JP JP2018213374A patent/JP7290410B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1193410A (zh) * | 1995-06-15 | 1998-09-16 | 英特尔公司 | 在多处理器系统中的处理器之间传送消息的方法与装置 |
WO2007006013A2 (en) * | 2005-07-05 | 2007-01-11 | Viasat, Inc. | Synchronized high-assurance circuits |
CN101714108A (zh) * | 2008-10-03 | 2010-05-26 | 富士通株式会社 | 同步控制设备、信息处理设备以及同步管理方法 |
CN103582879A (zh) * | 2011-06-10 | 2014-02-12 | 国际商业机器公司 | 管理耦合设施中的操作员消息缓冲器 |
CN103227755A (zh) * | 2011-09-07 | 2013-07-31 | 阿尔特拉公司 | 使用推测技术的处理器到基于消息的网络的接口 |
Also Published As
Publication number | Publication date |
---|---|
KR20190058288A (ko) | 2019-05-29 |
EP3486780B1 (en) | 2020-11-18 |
CN109815020A (zh) | 2019-05-28 |
US20190155325A1 (en) | 2019-05-23 |
JP2019125350A (ja) | 2019-07-25 |
EP3486780A1 (en) | 2019-05-22 |
US10528077B2 (en) | 2020-01-07 |
JP7290410B2 (ja) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109815020B (zh) | 指令处理对准系统 | |
JP5191062B2 (ja) | ストレージ制御システム、ストレージ制御システムに関する操作方法、データ・キャリア及びコンピュータ・プログラム | |
CN110334075B (zh) | 基于消息中间件的数据迁移方法及相关设备 | |
US10474377B2 (en) | Optimizing data writes in a distributed computing system | |
CN111782365B (zh) | 定时任务处理方法、装置、设备及存储介质 | |
CN110209526B (zh) | 一种存储层同步系统、及存储介质 | |
CN110121694B (zh) | 一种日志管理方法、服务器和数据库系统 | |
US12056084B2 (en) | Message synchronization system | |
CN109815023B (zh) | 消息同步系统 | |
CN110121712B (zh) | 一种日志管理方法、服务器和数据库系统 | |
Gautam et al. | Multi-master replication of enhanced learning assistant system in iot cluster | |
CN111427689A (zh) | 集群保活方法、装置及存储介质 | |
US11327785B2 (en) | Computing system including enhanced application performance based on last completed operation sequence value | |
US8838910B2 (en) | Multi-part aggregated variable in structured external storage | |
US10310921B2 (en) | Computing system including PLSO command to maintain equivalency between independent coupling facilities | |
US10083067B1 (en) | Thread management in a storage system | |
US10270857B2 (en) | Asynchronous duplexing | |
US11269922B2 (en) | Database server, database management method, and storage medium | |
CN107239365B (zh) | 一种访问存储设备的方法及装置 | |
CN114090551A (zh) | 一种存储数据的方法、装置及系统 | |
CN117278448A (zh) | 用于航天器测试的消息总线设计方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |