CN103677749A - 用于控制处理器指令执行的系统和方法 - Google Patents

用于控制处理器指令执行的系统和方法 Download PDF

Info

Publication number
CN103677749A
CN103677749A CN201310416621.3A CN201310416621A CN103677749A CN 103677749 A CN103677749 A CN 103677749A CN 201310416621 A CN201310416621 A CN 201310416621A CN 103677749 A CN103677749 A CN 103677749A
Authority
CN
China
Prior art keywords
instruction
processor
iteration
time
carrying
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.)
Granted
Application number
CN201310416621.3A
Other languages
English (en)
Other versions
CN103677749B (zh
Inventor
W.D.史密斯二世
J.M.迪克马
J.N.埃德米森
S.N.U.阿梅德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
General Electric Co
Original Assignee
General Electric Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by General Electric Co filed Critical General Electric Co
Publication of CN103677749A publication Critical patent/CN103677749A/zh
Application granted granted Critical
Publication of CN103677749B publication Critical patent/CN103677749B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1687Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1691Temporal synchronisation or re-synchronisation of redundant processing components using a quantum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/182Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits based on mutual exchange of the output between redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
    • G06F11/184Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Abstract

一种用于控制处理器指令执行的系统和方法。在一个示例中,一种用于控制由处理器执行的指令的总数量的方法包括命令处理器经由多个迭代迭代地执行指令直到经过预定时期。在迭代中的每个迭代中执行的指令的数量小于在迭代中的先前迭代中执行的指令的数量。方法还包括确定在预定时期期间执行的指令的总数量。

Description

用于控制处理器指令执行的系统和方法
技术领域
本文公开的主题涉及处理器,并且更特别地,涉及用于控制处理器指令执行的系统和方法。
背景技术
处理器(例如,中央处理单元(CPU)、微处理器等)用来执行多种不同的应用程序中的指令。例如,处理器可用来执行具有高完整性、可用性和保证性要求的安全关键和/或任务关键的应用程序中的指令。这样的应用程序可包括航空电子设备、火箭、太空船、军事使用、核电站等等。在这样的应用程序中,两个或更多处理器可配置成在特定量的时间内执行特定数量的指令。例如,两个或更多处理器可配置成以同步的方式操作,使得两个或更多处理器在基本同一时间开始和/或结束操作。遗憾的是,如果两个或更多处理器不在基本同一时间开始和/或结束操作,则来自两个或更多处理器的结果可能是不可靠和/或不可用的。
发明内容
根据一个实施例,一种用于控制由处理器执行的指令的总数量的方法包括命令处理器经由多个迭代迭代地执行指令直到经过预定时期。在迭代中的每个迭代中执行的指令的数量小于在迭代中的先前迭代中执行的指令的数量。方法还包括确定在预定时期期间执行的指令的总数量。
根据另一个实施例,一种用于控制处理器在其期间执行指令的时期的方法包括命令处理器经由多个迭代执行第一数量的指令直到第一数量的指令已经执行。迭代中的每个迭代的时期小于迭代中的先前迭代的时期。方法还包括命令处理器提供由处理器执行的指令的总数量。方法包括确定在其期间执行第一数量的指令的总时期。
根据另一个实施例,一种用于控制由处理器执行的指令的总数量的系统包括处理器。处理器配置成接收指令,以及经由多个迭代迭代地执行指令集直到经过预定时期。在迭代中的每个迭代中执行的指令的数量小于在迭代中的先前迭代中执行的指令的数量。处理器还配置成确定在预定时期期间执行的指令的总数量,以及接收指令以如果指令的总数量小于指令的期望总数量,在经过预定时期之后,执行计算数量的指令。
提供一种用于控制由处理器执行的指令的总数量的方法,其包括:
命令所述处理器经由多个迭代迭代地执行指令直到经过预定时期,其中,在所述多个迭代中的每个迭代中执行的指令的数量小于在所述多个迭代中的先前迭代中执行的指令的数量;以及
确定在所述预定时期期间执行的指令的总数量。
优选的,在所述多个迭代中的每个迭代中执行的指令的数量是在所述多个迭代中的所述先前迭代中执行的指令的数量的大约一半。
优选的,所述方法包括,在第一迭代期间,执行要在所述预定时期期间执行的指令的估计总数量的大约一半。
优选的,要在所述预定时期期间执行的指令的估计总数量至少部分地基于所述预定时期。
优选的,所述方法包括在每个迭代完成之后,接收指示。
优选的,在所述多个迭代中的每个迭代中执行的指令的数量基于所述预定时期的剩余时间。
优选的,所述方法包括,如果指令的总数量小于指令的期望总数量,则在经过所述预定时期之后,命令所述处理器执行计算数量的指令。
优选的,所述方法包括如果指令的总数量大于或等于指令的期望总数量,则在经过所述预定时期之后的时期期间,命令所述处理器延迟处理。
优选的,确定在所述预定时期期间执行的指令的总数量包括从退休指令计数器(RIC)访问计数。
优选的,所述方法包括接收多个时钟信号,其中,在所述多个时钟信号中连续的时钟信号之间执行在所述多个迭代中的每个迭代中执行的所述数量的指令。
优选的,所述预定时期小于所述多个时钟信号中连续的时钟信号之间的时间。
提供一种用于控制处理器在其期间执行指令的时期的方法,其包括:
命令所述处理器经由多个迭代执行第一数量的指令直到所述第一数量的指令已经执行,其中,所述多个迭代中的每个迭代的时期小于所述多个迭代中的先前迭代的时期;
命令所述处理器提供由所述处理器执行的指令的总数量;以及
确定在其期间执行所述第一数量的指令的总时期。
优选的,所述多个迭代中的每个迭代的时期是所述多个迭代中的所述先前迭代的时期的大约一半。
优选的,所述方法包括,在所述多个迭代中的第一迭代期间,执行所述第一数量的指令的大约一半。
优选的,所述方法包括如果所述总时期小于预定时期,则在经过所述总时期之后,命令所述处理器执行第二数量的指令。
优选的,所述方法包括在经过所述总时期之后,命令所述处理器延迟处理。
提供一种用于控制由处理器执行的指令的总数量的系统,其包括:
处理器,其配置成:
接收指令,以及经由多个迭代迭代地执行指令集直到经过预定时期,其中,在所述多个迭代中的每个迭代中执行的指令的数量小于在所述多个迭代中的先前迭代中执行的指令的数量;
确定在所述预定时期期间执行的指令的总数量;以及
接收指令以如果指令的总数量小于指令的期望总数量,在经过所述预定时期之后,执行计算数量的指令。
优选的,在所述多个迭代中的每个迭代中执行的指令的数量是在所述多个迭代中的所述先前迭代中执行的指令的数量的大约一半。
优选的,所述处理器包括多核处理器。
优选的,在所述多个迭代中的每个迭代中执行的指令的数量基于所述预定时期的剩余时间。
附图说明
当参照附图来阅读以下详细描述时,本发明的这些和其它特征、方面与优点将变得更好理解,其中,相同符号在整个图中表示相同部件,其中:
图1是可采用两个或更多同步处理器的高完整性系统的实施例的框图;
图2是可采用两个或更多同步处理器的高完整性系统的另一个实施例的框图;
图3是具有多核处理器的高完整性系统的实施例的框图,其具有用以控制多个处理器的操作的管理程序;
图4是图3的多核处理器的图;
图5是用于控制由处理器执行的指令的方法的实施例的定时图;
图6是用于使多个处理器同步的方法的实施例的定时图;以及
图7是用于控制由处理器执行的指令的方法的实施例的流程图。
要素列表
10高完整性系统
12存储器
14应用程序
16处理器
18处理器
20处理器
22系统总线
26高完整性系统
28第一复制状态机
30第二复制状态机
32输入
34处理器
36处理器
38处理器
40分布式一致性
42输入
44处理器
46处理器
48处理器
50分布式一致性
60高完整性系统
62多核处理器
64多核处理器
66多核处理器
68应用程序处理器
70应用程序处理器
72应用程序处理器
74 I/O处理器
76系统总线
78系统总线
80复制状态机
82复制状态机
84复制状态机
86管理程序
88芯片上资源
90客OS
92应用程序
94应用程序
96虚拟盘客户
98 NIC客户
100核结构
102虚拟时钟客户
104分布式一致性算法
110盘驱动器
112 NIC驱动器
114核结构
116虚拟时钟服务器
120定时图
122时间线
124第一时间同步信号
126第二时间同步信号
128持续时间
130第三时间同步信号
132持续时间
134时间窗
136持续时间
138时间
140时间
142时间
144时间
146时间窗
148持续时间
150时间
152时间
154时间
156时间
158时间
180定时图
182时间线
184时间线
186时间线
188第一时间同步信号
190第二时间同步信号
192时间段
194持续时间
196时间窗
198时间窗
200时间窗
202持续时间
204时间
206时间
208时间
210时间
212时间
214时间
216时间
218时间
220时间
222时间
224时间
226时间
228时间
230时间
232时间
240方法
242框
244框
246框。
具体实施方式
下面将对本公开的一个或多个具体实施例进行描述。为了致力于提供对这些实施例的简明描述,在说明书中可能不会对实际实现的所有特征进行描述。应当理解,在任何这种实际实现的开发中,如在任何工程或设计项目中那样,必须作出许多实现特定的决策来达到开发者的特定目的,诸如服从系统有关的约束及商业有关的约束,上述特定目的可随不同的实现而改变。此外,应当理解,这种开发工作可能是复杂和耗时的,但对受益于本公开的普通技术人员来说,这种开发工作将不过是设计、生产和制造的例行任务。
当介绍本发明的各种实施例的要素时,冠词“一(a)”、“一(an)”、“该”和“所述”意于表示存在一个或多个该要素。术语“包括”、“包含”和“具有”意于为包括性的,并且表示除了列出的要素之外可存在另外的要素。
图1是可采用两个或更多同步处理器的高完整性系统10的实施例的框图。如可理解的那样,高完整性系统10可为高完整性(例如,得出正确答案的可能性高)、高可用性(例如,起作用的系统能够给予答案),和/或高保证性(例如,系统正运行正确的软件的可信度)系统。例如,高完整性系统10可设计有小于大约1.0×10-9每小时(例如,每飞行小时)的故障时间(FIT)率。某些实施例可包括三个或更多同步处理器,以提供高完整性和高可用性系统。因此,高完整性系统10可设计成用于实时安全关键的航空电子设备应用程序(例如飞行器)中。
高完整性系统10包括用于保持应用程序14的存储器12。此外,应用程序14配置成对一个或多个处理器16、18和20提供可执行指令。如可理解的那样,用于每个处理器16、18和20的应用程序14是相同功能的应用程序,并且对一个或多个处理器16、18和20提供可执行指令。因此,高完整性系统10设计使得平台(例如,处理器16、18和20)提供完整性和可用性。在这种配置中,平台可包括复杂的设计,而应用程序14则包括简化的设计。在某些实施例中,应用程序14可设计成提供完整性。在这种配置中,平台可包括简单的设计,而应用程序14则包括复杂的设计,以对高完整性、高可用性和高保证性提供逻辑。如本实施例中示出的那样,处理器16、18和20对系统总线22提供结果。例如,来自执行指令的结果可从处理器16、18和20提供给系统总线22。
虽然仅示出了三个处理器16、18和20,但高完整性系统10可包括更少或更多处理器。例如,在某些实施例中,五个或六个处理器可用于具有小于大约1.0×10-11每小时的FIT率的设计中,每个处理器具有大约1.0×10-3的FIT率。应当注意,可使用许多假设和变量来计算FIT率。作为另一个示例,六个、七个或八个处理器可用于具有小于大约1.0×10-15每小时的FIT率的设计中。处理器16、18和20各自可接收相同的输入,并且可设计成提供相同的输出。因此,来自处理器16、18和20的输出可实时地同步,以检验来自处理器16、18和20的输出是相同的。利用同步处理器16、18和20,高完整性系统10可产生可靠的结果。
由同步处理器16、18和20产生的可靠结果可满足高完整性、可用性和保证性要求。因而,高完整性系统10可用于安全关键和/或任务关键的应用程序。因此,高完整性系统10可采用高效且成本有效的方式操作,而不使用专门的硬件。
图2是可采用两个或更多同步处理器的高完整性系统26的实施例的框图。高完整性系统26包括第一复制状态机28和第二复制状态机30。第一复制状态机28具有同样提供给每个处理器34、36和38的输入32(例如输入数据)。在执行指令之后,处理器34、36和38提供同步输出。之后,第一复制状态机28执行使第一复制状态机28产生单个输出的分布式一致性40(例如,算法)。此外,第二复制状态机30具有同样提供给每个处理器44、46和48的输入42(例如输入数据)。在某些实施例中,输入32和42是相同的。在执行指令之后,处理器44、46和48各自提供同步输出。之后,第二复制状态机30执行使第二复制状态机30产生单个输出的分布式一致性50(例如,算法)。
来自第一复制状态机28和第二复制状态机30的输出提供有利于使用的分布式一致性40或分布式一致性50的冗余。例如,如果第一复制状态机28的分布式一致性40确定答案,则使用那个答案。但是,如果第一复制状态机28的分布式一致性40不确定答案,则使用来自第二复制状态机30的分布式一致性50的答案。因而,第一复制状态机28和第二复制状态机30的冗余有利于提高可用性。应当理解,使用本实施例,可获得小于大约1.0×10-15每小时的FIT率。
如可理解的那样,高完整性系统26可使用分布式一致性的任何适当的算法。例如,除了别的以外,高完整性系统26可使用基本paxos、多paxos、廉价paxos、快速paxos、通用paxos、拜占庭多paxos、快速拜占庭多paxos、无存储paxos、应付paxos、一方正确paxos、快速paxos B、信息理论快速拜占庭paxos、Chandra-Toueg (CT)、Mostefaoui-Raynal (MR)、查询更新(Q/U)、混合法定人数(HQ)、象鼻虫(zyzzyva)、土豚(aardvark)、竖直、Brooks-Iyengar、实际拜占庭容错(PBFT)和/或脂肪族。
如上面描述的那样,处理器34、36和38各自可提供同步输出。此外,处理器44、46和48各自可提供同步输出。如可理解的那样,处理器可采用提供实时同步的任何适当的方式同步。因此,高完整性系统26的分布式一致性40和50可提供可靠和/或可用的结果。
图3是具有第一多核处理器62的高完整性系统60的实施例的框图,其具有用以控制多个处理器的操作的管理程序。高完整性系统60包括第一多核处理器62、第二多核处理器64和第三多核处理器66。虽然在本文中描述了多核处理器,但高完整性系统60可包括具有任何适当数量的核(例如,1、2、4、8、16个等)的处理器。此外,多核处理器62、64和66中的每个包括用以执行指令的应用程序处理器68、70和72,和I/O处理器74,其配置成控制应用程序处理器68、70和72的指令执行,以及执行分布式一致性算法。多核处理器62、64和66使用系统总线76和78来与彼此以及与外部装置通信。虽然示出了两个系统总线76和78,但高完整性系统60可包括任何适当数量的总线(例如,1、2、4个等)。如示出的那样,来自多核处理器62、64和66中的每个的应用程序处理器68可形成复制状态机80。此外,来自多核处理器62、64和66中的每个的应用程序处理器70可形成复制状态机82。此外,来自多核处理器62、64和66中的每个的应用程序处理器72可形成复制状态机84。在某些实施例中,从多核处理器62、64和66分配的处理器核的数量可改变,使得可从多核处理器62、64和66中的每个分配比可用总数量的处理器核更少的处理器核,可从多核处理器62、64和66中的每个分配不同数量的处理器核等。在某些实施例中,高完整性应用程序可使用完整性检查,而非高可用性,并且可将仅两个处理器核分配给高完整性应用程序。在其它实施例中,高完整性应用程序可通过从每个多核处理器62、64和66将多于三个处理器核分配给高完整性应用程序来实现高可用性。
图4进一步示出第一多核处理器62的示意图。应当注意,第二多核处理器64和第三多核处理器66可包括与第一多核处理器62相同的东西。如示出的那样,第一多核处理器62包括管理程序86(例如,虚拟机管理器(VMM))。在本实施例中,管理程序86是类型一管理程序;但是,在其它实施例中,可使用任何适当的管理程序(例如,类型二)。如可理解的那样,类型一管理程序可为直接在主机的硬件上运行以控制硬件和管理客操作系统(例如,VMware vSphere、用于SPARC的甲骨文VM服务器、Citrix Xen服务器、KVM、微软Hyper-V管理程序等)的管理程序。此外,类型二管理程序可为在传统操作系统环境(例如BHyVe、VMware工作站、虚拟盒)中运行的管理程序。对于嵌入式实时系统,管理程序技术可基于用于MILS RTOS或ARINC-653 RTOS(例如,Green Hills INTEGRITY和INTEGRITY-178、Wind River VxWorks MILS和653、LynuxWorks LynxSecure 和LynxOS-178等)中的隔离核。第一多核处理器62还包括可提供给处理器68、70、72和74的芯片上资源88。例如,芯片上资源88可包括网络资源、分区资源、安全资源等等。
可用类似的方式对应用程序处理器68(VM分区1)、应用程序处理器70(VM分区2)和应用程序处理器72(VM分区3)中的每个进行配置。因此,应用程序处理器68、70和72各自使用客操作系统(客OS)90(例如,Linux、Windows、嵌入式RTOS等)来操作,其与管理程序86交互,以访问第一多核处理器62的硬件。在某些实施例中,应用程序处理器68、70和72各自可使用“裸金属”环境(例如,Ada运行时间)而非客OS 90来操作。此外,一个或多个应用程序92和94可由客OS 90执行,以执行提供给客OS 90的指令。应用程序处理器68、70和72可包括“客户”,诸如配置成访问对应的“服务器”(例如驱动器)的虚拟盘客户96和虚拟网络接口卡(NIC)客户98。此外,应用程序处理器68、70和72各自包括在处理器68、70和72中实现的实际功能的核结构100(例如,退休指令计数器(RIC)和时钟)。另外,应用程序处理器68、70和72还可包括用来访问虚拟时钟服务器的虚拟时钟客户102。
如示出的那样,I/O处理器74还包括客OS 90、虚拟盘96和虚拟NIC 98。此外,I/O处理器74配置成执行分布式一致性算法104。I/O处理器74还包括盘驱动器110和网络接口卡(NIC)驱动器112,盘驱动器110充当用于提供对盘资源的访问(例如,通过虚拟盘客户96)的服务器,而网络接口卡(NIC)驱动器112充当用于提供对网络的访问(例如,通过NIC客户98)的服务器。I/O处理器74配置成跨其它处理器68、70和72执行分布式一致性逻辑。此外,I/O处理器74包括核结构114(例如,退休指令计数器(RIC)、时钟、NIC和盘)。此外,处理器74包括用于对虚拟时钟客户102提供虚拟时钟的虚拟时钟服务器116,以有利于处理器68、70和72(例如,处理巷)之间的同步。因此,I/O处理器74配置成在应用程序处理器68、70和72和其它硬件之间对接,从而使得应用程序处理器68、70和72能够接收和执行指令。此外,如示出的那样,处理器68、70、72和74中的每个包括客OS 90,使得处理器可独立地执行操作。应当注意,应用程序处理器68、70和72可配置成操作为没有隐变量(例如,添加到被处理的数据的信息)的复制状态机。例如,应用程序处理器68、70和72可配置成操作使得可接收信息(例如,输入数据),可执行指令,以及以相同的方式从任何应用程序处理器68、70和72输出结果(例如,结果是相同的)。因此,通过提供给应用程序处理器68、70和72相同输入,可获得相同的输出。此外,可使输出同步,使得应用程序处理器68、70和72以同步时间间隔来开始和/或结束处理,从而产生没有可观察的差异的同样的(例如,一致的)结果。
图5是用于控制由处理器执行的指令的方法的实施例的定时图120。如示出的那样,沿着时间线122执行指令。在时间线122的左边示出第一时间同步信号124(例如,时钟信号)。此外,朝时间线122的中心部分示出第二时间同步信号126。持续时间128是第一时间同步信号124和第二时间同步信号126之间的时间。如可理解的那样,持续时间128可为任何适当的持续时间。例如,在某些实施例中,持续时间128可为大约250 μs+/-10 μs。此外,在时间线122的右边示出第三时间同步信号130。持续时间132是第二时间同步信号126和第三时间同步信号130之间的时间差,并且大体与持续时间128相同。如可理解的那样,在处理器的操作期间,在定时图120中示出的同一模式可重复。因此,任何两个同步信号之间的持续时间可为基于处理器、应用程序、时钟、定时等(例如,大约250 μs +/-10 μs)的任何适当的时间。
在某些实施例中,使时间同步信号之间处理器执行的指令的数量最大化,而不在时间同步信号出现时执行指令,可以是可期望的。因此,在第二时间同步信号126之前,停止在时间窗134内执行指令,可以是可期望的。此外,持续时间136(例如,预定时期)示出第一时间同步信号124和时间窗134的开始时间之间的总时间。应当注意,持续时间136小于持续时间128。在某些实施例中,持续时间136可为大约230 μs,而时间窗134的持续时间可为大约20 μs。
在一些实施例中,可控制由处理器执行的指令的总数量。在一个示例中,由处理器执行的指令的数量可遵从几何级数,其中,在每次迭代中执行的指令的数量大致为在之前的迭代中执行的指令的数量的一半。例如,可计算(例如,至少部分地基于持续时间136)处理器在持续时间136期间执行的指令的估计总数量。在用于控制由处理器(例如,处理器68、70、72)执行的指令的方法的第一迭代期间,可执行大约一半估计总数量的指令。例如,在第一时间同步信号124和时间138之间,可执行大约一半估计总数量的指令。之后,(例如,处理器74)可命令处理器(例如,处理器68、70、72)在当前迭代期间迭代地执行多个指令(其小于在先前迭代中执行的早先的指令的数量)直到经过持续时间136。例如,在时间138和时间140之间,可命令处理器执行在第一时间同步信号124和时间138之间执行的指令的大约一半。此外,在时间140和时间142之间,可命令处理器执行在时间138和时间140之间执行的指令的大约一半。如示出的那样,时间142不在时间窗134内。因此,在时间142和时间144之间,可命令处理器执行在时间140和时间142之间执行的指令的大约一半。时间144在时间窗134内,因此,已经经过持续时间136。如可理解的那样,在每个迭代完成之后,处理器可发送指示(例如,到其它处理器的消息、指纹、额外指令的确定,以执行定时器中断的生成等)。
可用任何适当的方式确定在持续时间136期间执行的指令的总数量。例如,可通过总计(即,添加)在第一时间同步信号124和时间144之间执行的指令的数量来确定在持续时间136期间执行的指令的总数量。作为另一个示例,可通过从退休指令计数器(RIC)访问(例如,读)计数来确定在持续时间136期间执行的指令的总数量。
在某些实施例中,在持续时间136期间执行的指令的总数量可小于期望的。因此,在经过持续时间136之后,可命令处理器执行计算数量的指令。相反,如果在持续时间136期间执行的指令的总数量大于或等于指令的期望总数量,则处理器可在持续时间136之后的时期期间延迟处理。
再次,在第二时间同步信号126之后的持续时间132期间,可在第三时间同步信号130前面设置时间窗146。停止在时间窗146内执行指令,以控制在第三时间同步信号130之前执行的指令的数量,可以是可期望的。此外,持续时间148(例如,预定时期)示出第二时间同步信号126和时间窗146的开始时间之间的总时间。应当注意,持续时间148小于持续时间132。
同样,可再次控制由处理器执行的指令的总数量。例如,可计算(例如,至少部分地基于持续时间148)期望处理器在持续时间148期间执行的指令的估计的总数量。在用于控制由处理器在第二时间同步信号126之后执行的指令的方法的第一迭代期间,可执行估计的总数量的指令的大约一半。例如,在第二时间同步信号126和时间150之间,可执行估计的总数量的指令的大约一半。可命令处理器在当前迭代期间迭代地执行多个指令(其小于在先前迭代中执行的早先的指令的数量)直到经过持续时间148。例如,在时间150和时间152之间,可命令处理器执行在第二时间同步信号126和时间150之间执行的指令的大约一半。此外,在时间152和时间154之间,可命令处理器执行在时间150和时间152之间执行的指令的大约一半。如示出的那样,时间154不在时间窗146内。因此,在时间154和时间156之间,可命令处理器执行在时间152和时间154之间执行的指令的大约一半。时间156在时间窗146内,因此,已经经过持续时间148。如可理解的那样,处理器可发送指示,以及执行额外的逻辑,以在每个迭代完成之后,使复制处理器之间的退休指令计数(RIC)同步。
再次,可采用任何适当的方式确定在持续时间148期间执行的指令的总数量。例如,可通过总计在第二时间同步信号126和时间156之间执行的指令的数量来确定在持续时间148期间执行的指令的总数量。作为另一个示例,可通过从RIC访问计数来确定在持续时间148期间执行的指令的总数量。
在某些实施例中,在持续时间148期间执行的指令的总数量可小于期望的。因此,可命令处理器在经过持续时间148之后执行计算数量的指令。例如,可命令处理器在时间156和时间158之间执行计算数量的指令。相反,如果在持续时间148期间执行的指令的总数量大于或等于指令的期望总数量,则处理器可在持续时间148之后的时期期间延迟处理。
也可使用定时图120来示出另一个实施例。例如,可基于剩余持续时间来计算由处理器执行的指令的数量。例如,可基于持续时间136来计算处理器在持续时间136期间执行的指令的估计总数量。在用于控制由处理器(例如,处理器68、70、72)执行的指令的方法的第一迭代期间,可执行估计总数量的指令的一半。例如,在第一时间同步信号124处,可执行估计总数量的指令的一半。之后,基于持续时间136的剩余时间的一半,(例如,处理器74)可命令处理器(例如,处理器68、70、72)执行估计数量的指令。此外,在时间140处,基于持续时间136的剩余时间的一半,可命令处理器执行估计数量的指令。如示出的那样,时间142不在时间窗134内。因此,在时间142处,基于持续时间136的剩余时间的一半,可命令处理器执行估计数量的指令。时间144在时间窗134内,因此,已经经过持续时间136。如可理解的那样,处理器在它进入时间窗134之后,可与其它处理器同步。为了与其它处理器同步,处理器的指纹可与另一个处理器的指纹比较。如前面论述的那样,可确定在其期间执行的指令的数量的总时期。在某些实施例中,如果总时期小于预定时期,则在经过持续时间136之后,可命令处理器执行第二数量的指令。此外,在一些实施例中,可命令处理器在持续时间136之后延迟处理。使用上面描述的方法,可控制处理器,以在某个时期内执行某个数量的指令。因此,可优化(例如,最大化)在一时期内执行的指令的数量。此外,可共同控制多个处理器,以使处理器同步。
图6是用于使多个处理器同步的方法的实施例的定时图180。因此,沿着时间线182示出第一处理器的操作,沿着时间线184示出第二处理器的操作,以及沿着时间线186示出第三处理器的操作。此外,在时间线182、184和186的左边示出第一时间同步信号188(例如,时钟信号)。此外,在时间线182、184和186的右边示出第二时间同步信号190。另外,朝时间线182、184和186的右边的是时间段192,其中,检验和/或校正第一、第二和第三处理器的同步,使得在接收第二时间同步信号190时,使处理器同步。
持续时间194是第一时间同步信号188和第二时间同步信号190之间的时间。如可理解的那样,持续时间194可为任何适当的持续时间。例如,在某些实施例中,持续时间194可为大约250 μs+/-10 μs。如可理解的那样,在处理器的操作期间(例如,在每个时间同步信号之间)定时图180中示出的相同模式可尽可能频繁地重复。因此,两个连续的同步信号之间的持续时间可为任何适当的时间,诸如基于处理器、应用程序、时钟、定时等等的时间(例如,大约250 μs +/-10 μs)。
在某些实施例中,最大化处理器在时间同步信号之间执行的指令的数量,以及使处理器与彼此同步,这可以是可期望的。因此,为了使处理器同步,在第二时间同步信号190之前,停止在时间窗196、198和200内在每个处理器上执行指令,这可以是可期望的。此外,持续时间202(例如,预定时期)示出第一时间同步信号188和时间窗196、198和200的开始时间之间的总时间。应当注意,持续时间202小于持续时间194。在某些实施例中,持续时间202可为大约230 μs,而时间窗196、198和200中的每个的持续时间可为大约20 μs。
在一些实施例中,可控制由处理器执行的指令的总数量。例如,可计算(例如,至少部分地基于持续时间202)每个处理器在持续时间202期间执行的指令的估计总数量。如上面论述的那样,可使用任何适当的方法来确定在每个迭代期间执行的指令的数量。例如,指令的数量可基于几何级数(例如,之前的指令的数量的大约一半)、剩余时间(例如,剩余时间窗的一半)等等。在用于控制由第一处理器执行的指令的方法的第一迭代期间,可执行估计总数量的指令的大约一半。例如,在第一时间同步信号188和时间204之间,可执行估计总数量的指令的大约一半。之后,可命令第一处理器在当前迭代期间迭代地执行多个指令(其小于在先前迭代中执行的早先的指令的数量)直到经过持续时间202。例如,在时间204和时间206之间(例如,在第二迭代期间),可命令第一处理器执行在第一时间同步信号188和时间204之间执行的指令的大约一半。此外,在时间206和时间208之间(例如,在第三迭代期间),可命令第一处理器执行在时间204和时间206之间执行的指令的大约一半。如示出的那样,时间208不在时间窗196内。因此,在时间208和时间210之间,可命令第一处理器通过执行在时间206和时间208之间执行的指令的大约一半来执行第四迭代。如示出的那样,时间210在时间窗196内;因此,在四次迭代执行之后,已经经过持续时间202。如可理解的那样,在每个迭代完成之后,第一处理器可发送指示(例如,到其它处理器的消息、指纹、额外指令的确定,以执行定时器中断的生成等)。此外,在每个迭代完成之后,第一处理器可发送指纹(例如,RIC、存储器负载计数、存储器存储计数、支路指令计数、数据负载和存储、支路令牌等等)。
也可控制第二处理器,以在经过持续时间202之后停止执行指令。例如,在用于控制由第二处理器执行的指令的方法的第一迭代期间,可执行估计总数量的指令的大约一半。特别地,在第一时间同步信号188和时间212之间,可执行估计总数量的指令的大约一半。之后,可命令第二处理器在当前迭代期间迭代地执行多个指令(其小于在先前迭代中执行的早先的指令的数量)直到经过持续时间202。例如,在时间212和时间214之间(例如,在第二迭代期间),可命令第二处理器执行在第一时间同步信号188和时间212之间执行的指令的大约一半。此外,在时间214和时间216之间(例如,在第三迭代期间),可命令第二处理器执行在时间212和时间214之间执行的指令的大约一半。此外,在时间216和时间218之间(例如,在第四迭代期间),可命令第二处理器执行在时间214和时间216之间执行的指令的大约一半。如示出的那样,时间218不在时间窗198内。因此,在时间218和时间220之间,可命令第二处理器通过执行在时间216和时间218之间执行的指令的大约一半来执行第五迭代。如示出的那样,时间220在时间窗198内;因此,在五次迭代执行之后,已经经过持续时间202。类似于第一处理器,在每个迭代完成之后,第二处理器可发送指示(到其它处理器的消息、指纹、额外指令的确定,以执行定时器中断的生成等)。
在经过持续时间202之后,也可控制第三处理器,以停止执行指令。例如,在用于控制由第三处理器执行的指令的方法的第一迭代期间,可执行估计总数量的指令的大约一半。特别地,在第一时间同步信号188和时间222之间,可执行估计总数量的指令的大约一半。之后,可命令第三处理器在当前迭代期间迭代地执行多个指令(其小于在先前迭代中执行的早先的指令的数量)直到经过持续时间202。例如,在时间222和时间224之间(例如,在第二迭代期间),可命令第三处理器执行在第一时间同步信号188和时间222之间执行的指令的大约一半。此外,在时间224和时间226之间(例如,在第三迭代期间),可命令第三处理器执行在时间222和时间224之间执行的指令的大约一半。此外,在时间226和时间228之间(例如,在第四迭代期间),可命令第三处理器执行在时间224和时间226之间执行的指令的大约一半。另外,在时间228和时间230之间(例如,在第五迭代期间),可命令第三处理器执行在时间226和时间228之间执行的指令的大约一半。如示出的那样,时间230不在时间窗200内。因此,在时间230和时间232之间,可命令第三处理器通过执行在时间228和时间230之间执行的指令的大约一半来执行第六迭代。如示出的那样,时间232在时间窗200内;因此,在六个迭代执行之后,已经经过持续时间202。类似于第一和第二处理器,在每个迭代完成之后,第三处理器可发送指示和/或指纹。
可采用任何适当的方式确定第一、第二和/或第三处理器在持续时间202期间执行的指令的总数量。例如,可通过总计(例如,添加)在第一时间同步信号188和最后的迭代结束时的时间(例如,时间210、220、232)之间执行的指令的数量,来确定在持续时间202期间执行的指令的总数量。作为另一个示例,可通过从RIC访问(例如,读)计数来确定在持续时间202期间执行的指令的总数量。
在某些实施例中,第一、第二和第三处理器在持续时间202期间执行的指令的总数量可小于期望的。因此,在经过持续时间202之后,可命令处理器执行计算数量的指令。相反,如果在持续时间202期间执行的指令的总数量大于或等于指令的期望总数量,则处理器可在持续时间202之后的时期期间延迟处理。
例如,如上面描述的那样,在持续时间202期间,第一处理器开始四个迭代,第二处理器开始五个迭代,而第三处理器开始六个迭代。为了该说明的目的,第一、第二和第三处理器可为每秒能够执行二十亿个指令的1.0 GHz处理器。另外,为了该说明,处理器配置成使用上面描述的几何方法来操作。因此,在持续时间202期间(例如,230 μs)执行的估计总数量的指令可为大约460000个指令(例如,2,000,000,000×230 μs)。因此,在第一迭代期间,可执行总数量的指令的大约一半;因此,在第一迭代期间,可执行大约230000个指令。此外,在每个随后的迭代期间,可执行在先前迭代中执行的指令的大约一半。因而,在第二迭代期间,可执行大约115000个指令。此外,在第三迭代期间,可执行大约57500个指令。此外,在第四迭代期间,可执行大约28750个指令。在第五迭代期间,可执行大约14375个指令,而在第六迭代期间,可执行大约7188个指令。如可理解的那样,在每个迭代完成之后,每个处理器的指纹应当匹配。
因此,当第一处理器的迭代在窗196内停止时(例如,在第四迭代之后),第一处理器可执行大约431250个指令(例如,230000+115000+57500+28750)。此外,当第二处理器的迭代在窗198内停止时(例如,在第五迭代之后),第二处理器可执行大约445625个指令(例如,230000+115000+57500+28750+14375)。此外,当第三处理器的迭代在窗200内停止时(例如,在第六迭代之后),第三处理器可执行大约452813个指令(例如,230000+115000+57500+28750+14375+7188)。应当注意,基于任何数量的变量,诸如处理器在给定时期里的性能变化,第一、第二和第三处理器可执行不同数量的指令。
因而,第一、第二和第三处理器中的每个可能不同步(例如,可能未执行相同数量的指令)。因此,第一处理器可执行大约21563个指令(例如,14375+7188),以赶上第三处理器。此外,第二处理器可执行大约7188个指令,以赶上第三处理器。因此,在时间窗196和198期间,可命令第一和第二处理器执行额外的指令,使得在时间窗196和198结束时,第一和第二处理器已经完成与第三处理器相同数量的指令。此外,第三处理器在时间窗200的其余部分期间可延迟,以允许第一和第二处理器有时间执行指令。应当注意,在第三处理器结束其第六迭代之前,第一和/或第二处理器可开始执行额外的指令,使得有足够的时间执行指令。
作为另一个示例,再次,在持续时间202期间,第一处理器开始四个迭代,第二处理器开始五个迭代,而第三处理器开始六个迭代。同样,为了该说明的目的,第一、第二和第三处理器可为每秒能够执行二十亿个指令的1.0 GHz处理器。另外,为了该说明,处理器配置成使用基于上面描述的剩余时间来操作。因此,要在持续时间202期间(例如,230 μs)执行的估计总数量的指令可为大约460000个指令(例如,2,000,000,000×230 μs)。因此,在第一迭代期间,可执行总持续时间的大约一半的指令;因此,在第一迭代期间,每个处理器可执行大约230000个指令(例如,2,000,000,000×115 μs)。此外,在每个随后的迭代期间,每个处理器可基于它们的相应的剩余时间来执行指令。
因而,在第二迭代期间,第一处理器可确定它具有大约108 μs剩余时间;因此,第一处理器可执行大约108000个指令(例如,2,000,000,000×54 μs),以对剩余时间的大约一半执行指令。此外,在第三迭代期间,第一处理器可确定它具有大约52 μs剩余时间;因此,第一处理器可执行大约52000个指令(例如,2,000,000,000×26 μs),以对剩余时间的大约一半执行指令。另外,在第四迭代期间,第一处理器可确定它具有大约24 μs剩余时间;因此,第一处理器可执行大约24000个指令(例如,2,000,000,000×12 μs),以对剩余时间的大约一半执行指令。因此,当第一处理器的迭代在窗196内停止时,第一处理器可执行大约414000个指令(例如,230000+108000+52000+24000)。
转到第二处理器,在第二迭代期间,第二处理器可确定它具有大约110 μs剩余时间;因此,第二处理器可执行大约110000个指令(例如,2,000,000,000×55 μs),以对剩余时间的大约一半执行指令。此外,在第三迭代期间,第二处理器可确定它具有大约54 μs剩余时间;因此,第二处理器可执行大约54000个指令(例如,2,000,000,000×27μs),以对剩余时间的大约一半执行指令。另外,在第四迭代期间,第二处理器可确定它具有大约24 μs剩余时间;因此,第二处理器可执行大约24000个指令(例如,2,000,000,000×12μs),以对剩余时间的大约一半执行指令。此外,在第五迭代期间,第二处理器可确定它具有大约10 μs剩余时间;因此,第二处理器可执行大约10000个指令(例如,2,000,000,000×5 μs),以对剩余时间的大约一半执行指令。因此,当第二处理器的迭代在窗198内停止时,第二处理器可执行大约428000个指令(例如,230000+110000+54000+24000+10000)。
转到第三处理器,在第二迭代期间,第三处理器可确定它具有大约114 μs剩余时间;因此,第三处理器可执行大约114000个指令(例如,2,000,000,000×57 μs),以对剩余时间的大约一半执行指令。此外,在第三迭代期间,第三处理器可确定它具有大约58 μs剩余时间;因此,第三处理器可执行大约58000个指令(例如,2,000,000,000×29 μs),以对剩余时间的大约一半执行指令。另外,在第四迭代期间,第三处理器可确定它具有大约28 μs剩余时间;因此,第三处理器可执行大约28000个指令(例如,2,000,000,000×14 μs),以对剩余时间的大约一半执行指令。此外,在第五迭代期间,第三处理器可确定它具有大约14 μs剩余时间;因此,第三处理器可执行大约14000个指令(例如,2,000,000,000×7 μs),以对剩余时间的大约一半执行指令。此外,在第六迭代期间,第三处理器可确定它具有大约6 μs剩余时间;因此,第三处理器可执行大约6000个指令(例如,2,000,000,000×3 μs),以对剩余时间的大约一半执行指令。因此,当第三处理器的迭代在窗200内停止时,第三处理器可执行大约450000个指令(例如,230000+114000+58000+28000+14000+6000)。如可理解的那样,在每个迭代完成之后,每个处理器的指纹可能不匹配。
因而,第一、第二、和第三处理器中的每个可能不同步(例如,可能不执行相同数量的指令)。因此,第一处理器可执行大约36000个指令(例如,450000–414000),以赶上第三处理器。此外,第二处理器可执行大约22000个(例如,450000–428000)指令,以赶上第三处理器。因此,在时间窗196和198期间,可命令第一和第二处理器执行额外的指令,使得在时间窗196和198结束时,第一和第二处理器已经完成与第三处理器相同数量的指令。此外,在时间窗200的其余部分期间,第三处理器可延迟,以允许第一和第二处理器有时间执行指令。应当注意,在第三处理器结束其第六迭代之前,第一和/或第二处理器可开始执行额外的指令,使得有足够的时间执行指令。在处理器同步之后,每个处理器的指纹应当匹配。例如,退休指令计数(RIC)应当匹配。
图7是用于控制由处理器(例如,处理器68、70、72)执行的指令的方法240的实施例的流程图。命令处理器执行指令(框242)。例如,另一个处理器可命令所述处理器基于执行的时期或者基于指令的预定数量来执行多个指令。在一个实施例中,可命令所述处理器执行对应于预计在当前时间和期望停止执行指令的未来的时间窗(例如,时间窗134、146)的开始之间执行的指令的大约一半的指令。在处理器已经执行指令之后,作出关于当前时间是否在时间窗内的确定(框244)。如果当前时间不在时间窗内,则方法返回到框242,其中,命令处理器执行额外的指令。如可理解的那样,在每个迭代期间执行的指令的数量可大于在每个随后的迭代中的指令的数量。返回到框244,如果当前时间在时间窗内,则确定执行的指令的总数量(框246)。
本发明的技术效果包括能够控制在时间同步信号之间在单个处理器上执行的指令的数量。此外,在具有多个处理器的系统中,可控制处理器,使得每个处理器在连续的同步信号之间执行相同数量的指令。因此,处理器可同步,并且可适合在高完整性和/或高可用性系统中使用。
本书面描述使用示例来公开本发明,包括最佳模式,并且还使本领域内任何技术人员能够实践本发明,包括制造和使用任何装置或系统,以及执行任何结合的方法。本发明的可取得专利的范围由权利要求限定,并且可包括本领域技术人员想到的其它示例。如果这样的其它示例具有不异于权利要求的字面语言的结构要素,或者如果它们包括与权利要求的字面语言无实质性差异的等效结构要素,则它们意于处在权利要求的范围之内。

Claims (10)

1.一种用于控制由处理器执行的指令的总数量的方法,包括:
命令所述处理器经由多个迭代迭代地执行指令直到经过预定时期,其中,在所述多个迭代中的每个迭代中执行的指令的数量小于在所述多个迭代中的先前迭代中执行的指令的数量;以及
确定在所述预定时期期间执行的指令的总数量。
2.根据权利要求1所述的方法,其中,在所述多个迭代中的每个迭代中执行的指令的数量是在所述多个迭代中的所述先前迭代中执行的指令的数量的大约一半。
3.根据权利要求1所述的方法,包括,在第一迭代期间,执行要在所述预定时期期间执行的指令的估计总数量的大约一半。
4.根据权利要求3所述的方法,其中,要在所述预定时期期间执行的指令的估计总数量至少部分地基于所述预定时期。
5.根据权利要求1所述的方法,包括在每个迭代完成之后,接收指示。
6.根据权利要求1所述的方法,其中,在所述多个迭代中的每个迭代中执行的指令的数量基于所述预定时期的剩余时间。
7.根据权利要求1所述的方法,包括,如果指令的总数量小于指令的期望总数量,则在经过所述预定时期之后,命令所述处理器执行计算数量的指令。
8.根据权利要求1所述的方法,包括如果指令的总数量大于或等于指令的期望总数量,则在经过所述预定时期之后的时期期间,命令所述处理器延迟处理。
9.根据权利要求1所述的方法,其中,确定在所述预定时期期间执行的指令的总数量包括从退休指令计数器(RIC)访问计数。
10.根据权利要求1所述的方法,包括接收多个时钟信号,其中,在所述多个时钟信号中连续的时钟信号之间执行在所述多个迭代中的每个迭代中执行的所述数量的指令。
CN201310416621.3A 2012-09-14 2013-09-13 用于控制处理器指令执行的系统和方法 Active CN103677749B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/620,063 US9256426B2 (en) 2012-09-14 2012-09-14 Controlling total number of instructions executed to a desired number after iterations of monitoring for successively less number of instructions until a predetermined time period elapse
US13/620,063 2012-09-14
US13/620063 2012-09-14

Publications (2)

Publication Number Publication Date
CN103677749A true CN103677749A (zh) 2014-03-26
CN103677749B CN103677749B (zh) 2018-07-17

Family

ID=49552582

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310416621.3A Active CN103677749B (zh) 2012-09-14 2013-09-13 用于控制处理器指令执行的系统和方法

Country Status (5)

Country Link
US (1) US9256426B2 (zh)
CN (1) CN103677749B (zh)
CA (1) CA2826568C (zh)
FR (1) FR2995706B1 (zh)
GB (1) GB2506985B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9706508B2 (en) * 2013-04-05 2017-07-11 Honeywell International Inc. Integrated avionics systems and methods
US10452446B1 (en) * 2017-06-07 2019-10-22 Rockwell Collins, Inc. High integrity multi-core processing
JP7259571B2 (ja) * 2019-06-11 2023-04-18 株式会社デンソー 車両用制御装置、車両用表示システム、及び車両用表示制御方法
US11531393B1 (en) * 2019-06-28 2022-12-20 Sensoriai LLC Human-computer interface systems and methods

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11249895A (ja) * 1998-03-05 1999-09-17 Sanyo Electric Co Ltd プログラム命令実行装置及びプログラム命令実行方法
CN101443738A (zh) * 2006-05-19 2009-05-27 国际商业机器公司 提取cpu时间工具
US20090249034A1 (en) * 2008-03-28 2009-10-01 Fujitsu Limited Processor and signature generation method, and multiple system and multiple execution verification method

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4589066A (en) 1984-05-31 1986-05-13 General Electric Company Fault tolerant, frame synchronization for multiple processor systems
US5083267A (en) 1987-05-01 1992-01-21 Hewlett-Packard Company Horizontal computer having register multiconnect for execution of an instruction loop with recurrance
US5295258A (en) 1989-12-22 1994-03-15 Tandem Computers Incorporated Fault-tolerant computer system with online recovery and reintegration of redundant components
US5233615A (en) 1991-06-06 1993-08-03 Honeywell Inc. Interrupt driven, separately clocked, fault tolerant processor synchronization
US5613127A (en) 1992-08-17 1997-03-18 Honeywell Inc. Separately clocked processor synchronization improvement
US5537655A (en) 1992-09-28 1996-07-16 The Boeing Company Synchronized fault tolerant reset
JPH0773059A (ja) 1993-03-02 1995-03-17 Tandem Comput Inc フォールトトレラント型コンピュータシステム
US5550736A (en) 1993-04-27 1996-08-27 Honeywell Inc. Fail-operational fault tolerant flight critical computer architecture and monitoring method
US5572620A (en) 1993-07-29 1996-11-05 Honeywell Inc. Fault-tolerant voter system for output data from a plurality of non-synchronized redundant processors
US5557623A (en) 1994-08-12 1996-09-17 Honeywell Inc. Accurate digital fault tolerant clock
US5742753A (en) 1996-06-06 1998-04-21 The Boeing Company Mesh interconnected array in a fault-tolerant computer system
DE19625195A1 (de) * 1996-06-24 1998-01-02 Siemens Ag Synchronisationsverfahren
US5896523A (en) 1997-06-04 1999-04-20 Marathon Technologies Corporation Loosely-coupled, synchronized execution
DE69804489T2 (de) 1997-11-14 2002-11-14 Marathon Techn Corp Verfahren zur erhaltung von synchronisierter ausführung bei fehler-betriebssicheren/ fehlertoleranten rechnersystemen
US6374364B1 (en) 1998-01-20 2002-04-16 Honeywell International, Inc. Fault tolerant computing system using instruction counting
US6367031B1 (en) 1998-12-17 2002-04-02 Honeywell International Inc. Critical control adaption of integrated modular architecture
DE60141096D1 (de) 2000-04-11 2010-03-11 Boeing Co Verarbeitungssystem mit Mehrheitsentscheidung
US6895582B1 (en) 2000-09-11 2005-05-17 Rockwell Collins Method and apparatus for high assurance computing using virtual machines on general purpose computing resources
US6938183B2 (en) 2001-09-21 2005-08-30 The Boeing Company Fault tolerant processing architecture
US7085980B2 (en) 2002-05-02 2006-08-01 International Business Machines Corporation Method and apparatus for determining the failing operation of a device-under-test
US6948091B2 (en) 2002-05-02 2005-09-20 Honeywell International Inc. High integrity recovery from multi-bit data failures
US7565433B1 (en) 2002-06-28 2009-07-21 Microsoft Corporation Byzantine paxos
US7558883B1 (en) 2002-06-28 2009-07-07 Microsoft Corporation Fast transaction commit
US7620680B1 (en) 2002-08-15 2009-11-17 Microsoft Corporation Fast byzantine paxos
US8005888B2 (en) 2003-12-30 2011-08-23 Microsoft Corporation Conflict fast consensus
US7334154B2 (en) 2004-06-18 2008-02-19 Microsoft Corporation Efficient changing of replica sets in distributed fault-tolerant computing system
US7856502B2 (en) 2004-06-18 2010-12-21 Microsoft Corporation Cheap paxos
US7505400B2 (en) 2004-09-22 2009-03-17 Honeywell International Inc. Dual lane connection to dual redundant avionics networks
US7698465B2 (en) 2004-11-23 2010-04-13 Microsoft Corporation Generalized Paxos
US7555516B2 (en) 2004-11-23 2009-06-30 Microsoft Corporation Fast Paxos recovery
US9753754B2 (en) 2004-12-22 2017-09-05 Microsoft Technology Licensing, Llc Enforcing deterministic execution of threads of guest operating systems running in a virtual machine hosted on a multiprocessor machine
US20060143517A1 (en) 2004-12-22 2006-06-29 Microsoft Corporation Replicated virtual machine
US7467327B2 (en) 2005-01-25 2008-12-16 Hewlett-Packard Development Company, L.P. Method and system of aligning execution point of duplicate copies of a user program by exchanging information about instructions executed
US8046413B2 (en) 2005-02-14 2011-10-25 Microsoft Corporation Automatic commutativity detection for generalized paxos
US20060200278A1 (en) 2005-03-02 2006-09-07 Honeywell International Inc. Generic software fault mitigation
EP1883865A4 (en) 2005-05-24 2010-12-15 Marathon Techn Corp FAULT TOLERANT COMPUTER SYSTEM WITH SYMMETRIC MULTIPROCESSOR
US7797457B2 (en) 2006-03-10 2010-09-14 Microsoft Corporation Leaderless byzantine consensus
US7636868B2 (en) 2006-06-27 2009-12-22 Microsoft Corporation Data replication in a distributed system
US7793147B2 (en) 2006-07-18 2010-09-07 Honeywell International Inc. Methods and systems for providing reconfigurable and recoverable computing resources
US20080140801A1 (en) 2006-10-05 2008-06-12 Holt John M Multiple computer system with dual mode redundancy architecture
FR2912526B1 (fr) * 2007-02-13 2009-04-17 Thales Sa Procede de maintien du synchronisme d'execution entre plusieurs processeurs asynchrones fonctionnant en parallele de maniere redondante.
FR2914519B1 (fr) 2007-03-26 2009-06-12 Airbus France Sas Procede de controle d'integrite des donnees dans un reseau afdx.
US7987385B2 (en) 2007-07-24 2011-07-26 Ge Aviation Systems Llc Method for high integrity and high availability computer processing
US7849223B2 (en) 2007-12-07 2010-12-07 Microsoft Corporation Virtually synchronous Paxos
US8499297B2 (en) 2008-10-28 2013-07-30 Vmware, Inc. Low overhead fault tolerance through hybrid checkpointing and replay
AU2009326201B2 (en) 2008-12-12 2014-02-27 Bae Systems Plc Shield

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11249895A (ja) * 1998-03-05 1999-09-17 Sanyo Electric Co Ltd プログラム命令実行装置及びプログラム命令実行方法
CN101443738A (zh) * 2006-05-19 2009-05-27 国际商业机器公司 提取cpu时间工具
US20090249034A1 (en) * 2008-03-28 2009-10-01 Fujitsu Limited Processor and signature generation method, and multiple system and multiple execution verification method

Also Published As

Publication number Publication date
CN103677749B (zh) 2018-07-17
US9256426B2 (en) 2016-02-09
GB2506985B (en) 2015-04-08
US20140082340A1 (en) 2014-03-20
FR2995706B1 (fr) 2017-03-31
GB2506985A (en) 2014-04-16
GB201316270D0 (en) 2013-10-30
CA2826568C (en) 2020-08-11
FR2995706A1 (fr) 2014-03-21
CA2826568A1 (en) 2014-03-14

Similar Documents

Publication Publication Date Title
CN103677756B (zh) 用于使处理器指令执行同步的系统和方法
Lüdtke et al. OBC-NG: Towards a reconfigurable on-board computing architecture for spacecraft
CN103677749A (zh) 用于控制处理器指令执行的系统和方法
CN103959251A (zh) 模拟执行方法、程序和系统
Balashov et al. Scheduling of computational tasks in switched network-based IMA systems
US20160188761A1 (en) Asynchronous Parallel Simulation Protocol for Stream Processing Platforms
Alonso et al. Safety Concept for a Mixed Criticality On-Board Software System∗
CN111201514B (zh) 在包括多核处理器的平台上执行软件应用期间实施分区的电子设备和方法、相关联的计算机程序和电子系统
Semenkov et al. Validation of control systems with heterogeneous digital models and virtualization technologies
EP4123458A1 (en) In-flight integrated modular avionics (ima) reconfiguration
Samson et al. Nmp st8 dependable multiprocessor: Technology and technology validation overview
Wang et al. Enhanced null message algorithm for hybrid parallel simulation systems with large disparity in time step
Naghibzadeh Handling startling circumstances with IRM scheduler of real-time systems
CN104636219A (zh) 一种三机热备份实时系统同步事件响应的方法
van Kampenhout et al. Model-based deployment of mission-critical spacecraft applications on multicore processors
Gummadi et al. Hypercubes for Critical Spacecraft Command Verification
BR102013023551A2 (pt) Método para controlar uma quantidade total de instruções executado por um processador e para controlar um período de tempo e sistema para controlar uma quantidade total de instruções executadas por um processador
Samson Jr et al. New Millenium Program Space Technology 8 Dependable Multiprocessor: Technology and Technology Validation
Alencar et al. Model checking applied to embedded software of university satellite
Gupta Gaurav Gupta
Ahn How to lift SBML's limitation on fault-tolerance based on group-based communication links (WIP)
Aysan et al. A cascading redundancy approach for dependable real-time systems
Kumar Systems whose distributed simulation requires low overhead
Minmin Research on time management method based on vector time
Niranjan et al. An Efficient Algorithm in Fault Tolerance for Electing Coordinator in Distributed Systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant