CN104541248A - 计算系统对屏障命令的处理 - Google Patents
计算系统对屏障命令的处理 Download PDFInfo
- Publication number
- CN104541248A CN104541248A CN201380039822.4A CN201380039822A CN104541248A CN 104541248 A CN104541248 A CN 104541248A CN 201380039822 A CN201380039822 A CN 201380039822A CN 104541248 A CN104541248 A CN 104541248A
- Authority
- CN
- China
- Prior art keywords
- barrier
- computing system
- affairs
- target computing
- command
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/522—Barrier synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
一种用于处理屏障命令的计算系统,包括存储器、接口和处理器。所述存储器用于存储标识与屏障命令相关联的目标计算系统的屏障前扩展范围。所述接口与所述存储器耦合,用于向所述屏障前扩展范围内标识的所述目标计算系统发送屏障前计算探针,并接收来自所述目标计算系统的屏障完成通知消息。所述屏障前计算探针用于指示所述目标计算系统监听完成所述屏障命令所需要执行的事务的状态。所述处理器与所述接口耦合,用于基于接收到的所述屏障完成通知消息确定所述屏障命令的状态。
Description
优先权信息
本申请要求于2012年7月27日提交的、美国临时专利申请号为61/676,544、发明名称为“计算系统内存的屏障操作”的美国临时专利申请,于2012年7月30日提交的、美国临时专利申请号为61/677,057、发明名称为“计算系统对屏障命令的处理”的美国临时专利申请,于2012年7月31日提交的、美国临时专利申请号为61/677,921、发明名称为“计算系统同步屏障操作”的美国临时专利申请,以及于2013年3月13日提交的、美国临时专利申请号为61/780,442、发明名称为“计算系统对屏障命令的处理”的美国临时专利申请的优先权,其全部内容通过引用结合在本申请中。
关于美国联邦政府资助的研发项目的声明
不适用。
缩微平片附件的引用
不适用。
背景技术
计算机程序可包括由许多不同计算系统执行的许多不同事务。在特定情况下,至少有些事务可能需要按一定的顺序执行。例如,有些事务可能需要在其他事务之前执行,以便程序提供正确的结果。一种控制事务执行顺序的方法是仅按事务需要执行的顺序发布事务。另一种控制事务执行顺序的方法是使用屏障命令。屏障命令可用于在特定条件得到满足之前将计算系统保持在某特定状态。例如,屏障命令能够在其他事务执行之前阻止计算系统执行某些事务。
发明内容
在一实施例中,本发明包括一种具有存储器、接口和处理器的计算系统。所述存储器用于存储标识与屏障命令相关联的目标计算系统的屏障前扩展范围。所述接口与所述存储器耦合,用于向所述屏障前扩展范围内标识的所述目标计算系统发送屏障前计算探针,并接收来自所述目标计算系统的屏障完成通知消息。所述屏障前计算探针用于指示所述目标计算系统监听完成所述屏障命令所需要执行的事务的状态。所述处理器与所述接口耦合,用于基于接收到的所述屏障完成通知消息确定所述屏障命令的状态。
在另一实施例中,本发明包括一种具有接口和处理器的计算系统。接口用于从源计算系统接收屏障前计算探针,并向所述源计算系统发送屏障完成通知消息,其中所述屏障前计算探针指示所述计算系统监控与屏障命令相关联的事务的状态,所述屏障完成通知消息指示与所述屏障命令相关联的所述事务已由所述计算系统执行或所述计算系统保证其将像其已执行所述事务一样工作。处理器与所述接口耦合,用于在从所述源计算系统收到屏障后启动通知前等待执行事先转发事务,其中所述事先转发事务包括只能在所述屏障命令完成后执行的事务,且所述屏障后启动通知指示与所述事先转发事务相关联的屏障命令已完成。
在另一实施例中,本发明包括一种处理屏障命令的方法。该方法包括:识别事务及与屏障命令相关联的目标计算系统。向识别出的所述目标计算系统发送屏障前计算探针;所述屏障前计算探针指示所述目标计算系统监控与所述屏障命令的完成情况相关联的事务的执行状态;从所述目标计算系统接收屏障完成通知消息,其中所述屏障完成通知消息表示所述目标计算系统已执行了与所述屏障命令完成情况相关联的事务,或表示所述目标计算系统能够保证其像其已执行了与所述屏障命令完成情况相关联的所述事务;及基于所述接收的屏障完成通知消息确定所述屏障命令是否完成,其中接收屏障前计算探针的所有目标计算系统都返回了其屏障完成通知时,确定所述屏障命令已完成。
在再一实施例中,本发明包括一种用于处理屏障命令的方法,包括从源计算系统接收屏障前计算探针。所述屏障前计算探针用于指示接收到所述屏障前计算探针的目标计算系统监控与屏障命令相关联的事务的状态。屏障完成通知消息指示与所述屏障命令相关联的事务已执行或所述目标计算系统保证其将像其已执行了所述事务一样工作。所述目标计算系统在与所述事先转发事务相关联的屏障命令完成前接收事先转发事务,其中所述事先转发事务只能在与所述转发事务相关联的屏障命令完成后执行。在从所述源计算系统收到屏障后启动通知后执行所述事先转发事务,其中所述屏障后启动通知表示与所述事先转发事务相关联的屏障命令已完成。
下文通过具体实施例结合附图及权利要求书对上述及其他特征进一步说明。
附图说明
为了更完整地理解本发明,请结合附图及具体实施例参考以下简要说明,其中类似的附图标记表示类似的部件。
图1是利用屏障命令的计算系统网络的示意图。
图2是通过屏障前扩展范围、屏障前完成探针以及屏障完成通知消息确定屏障命令何时完成的方法的流程图。
图3是利用屏障后扩展范围、事先转发属性及屏障后启动通知控制屏障后事务执行的方法的流程图。
图4是从源计算系统的角度的处理屏障命令的方法的流程图。
图5是从目标计算系统的角度的处理屏障命令的方法的流程图。
图6是源和/或目标计算系统的示意图。
图7是目标计算系统按顺序接收事务时处理屏障命令的示例的示意图。
图8是目标计算系统不按顺序接收事务时处理屏障命令的示例的示意图。
具体实施方式
首先,应理解,尽管下文提供了一个或多个实施例的示例性实施方式,所公开的系统和/或方法均可采用任何数量的当前已知或已存在的技术予以实现。本发明不以任何方式被局限于下文说明的示例性实现方式、附图及技术,包括示例性本发明所示并说明的示例性设计及实现方式,但可在随附的权利要求书范围及其同等范围内予以修改。尽管讨论了传统技术的特定方面以便于理解本发明,申请人不以任何方式否认这些技术方面的效果,且应理解,本发明可涵盖本发明所讨论的一种或多种传统技术方面。
本发明实施例包括处理计算系统的屏障命令的方法和装置。在一实施例中,向需要执行某些事务以便完成屏障命令的目标计算系统发送屏障前完成探针,基于接上所述屏障前完成探针,所述目标计算系统监听这些事务的状态,且在所述目标计算系统执行了所述事务时或所述目标计算系统能够保证其会像其执行了所述事务一样工作时,向源计算系统发送屏障完成通知消息。此时,所述源计算系统能够基于所述屏障完成通知消息监听所述屏障命令的状态。例如,如果所述源计算系统未收到来自所有收到所述屏障前完成探针的目标计算系统的屏障完成通知消息,则所述源计算系统可以确定所述屏障命令尚未完成。如果述源计算系统收到了来自所有收到所述屏障前完成探针的目标计算系统的屏障完成通知消息,则所述源计算系统可以确定所述屏障命令已完成。相应地,所述源计算系统能够使用所述屏障前完成探针监听屏障命令的状态。
在另一实施例中,源计算系统将事先发送至目标计算系统的事务标识为事先转发事务。例如,只能在屏障命令完成后执行的事务可在所述屏障命令完成前发送至目标计算系统。在这种情况下,所述事务被标识为事先转发事务(例如,事先转发屏障后事务)。当事务被识别为事先转发事务时,收到所述事先转发事务的目标计算系统在其从所述源计算系统收到屏障后启动通知前等待执行所述事务。所述屏障后启动通知指示所要求的屏障命令已完成且所述目标计算系统可执行所述事先转发事务。
利用本发明中描述的屏障前完成探针、屏障后启动通知和/或其他特征的系统可优于其他类型的屏障命令系统。例如,其他屏障命令系统可向收到事务的所有目标计算系统发送屏障命令以便执行。这样会不必要地使计算系统中止或性能变慢并增加消息流量。在本发明的至少特定实施例中,只有具有完成屏障命令所需要执行的事务的目标系统才接收屏障前完成探针,且只有具有只能在屏障命令完成后执行的事务的目标系统接收屏障后启动通知。相应地,通过只向需要的目标计算系统发送消息而不是向所有目标计算系统发送消息,屏障命令消息流量得以减少。此外,收到事先转发事务的目标计算系统可执行未被标识为事先转发事务的任何其他事务。因此,所述目标计算系统不一定会被中止或变慢。下文及附图描述了实施例的其他特征和好处。
图1是利用屏障命令145的计算系统网络100的示意图。所述网络100包括源计算系统110和目标计算系统120。尽管图1所示的特定示例仅示出了一个源计算系统110和一个目标计算系统120,但各实施例不限于任何特定数量的源计算系统和目标计算系统,且可包括任何数量的源计算系统和目标计算系统。此外,尽管所述计算系统110和120被标识为源计算系统或目标计算系统,但所述计算系统110和120中的任一个均可作为源计算系统、目标计算系统或即作为源计算系统又作为目标计算系统。
所述计算系统110和120中的每一个均可为独立的计算设备(如个人计算机、笔记本、智能电话、服务器、平板电脑等)或较大型计算设备的组件(如中央处理器或多核中央处理器的核)。所述计算系统110和120通过通信通道130以可通信的方式彼此耦合。在所述计算系统110和120为独立计算设备的实施例中,所述通信通道130可为计算网络,例如但不限于因特网、局域网等。在所述计算系统110和120为较大型计算设备的组件的实施例中,所述通信通道130可为主板、计算机芯片、计算机芯片封装上的连接或总线。相应地,本发明的实施例可用于芯片内设置或芯片间设置。
所述源计算系统110包括计算机程序140,所述计算机程序140包括起点141、屏障前事务组142、屏障命令145、屏障后事务组146以及终点149。所述屏障前事务组142可选地包括一个或多个受影响事务143以及一个或多个不受影响事务144。所述屏障前受影响事务143包括完成所述屏障命令145所需要执行的事务。所述屏障前未受影响事务144包括在所述屏障命令145之前发生但不完成所述屏障命令145不需要执行的事务。类似地,所述屏障后事务组146可选地也包括一个或多个受影响事务147以及一个或多个不受影响事务148。所述屏障后受影响事务147包括只能在完成所述屏障命令145后执行的事物。所述屏障后未受影响事务148包括在所述屏障命令145之后发生但在执行前不需要等待所述屏障命令145完成的事务。换言之,所述屏障前未受影响事务144和所述屏障后未受影响事务148都可随时执行。但是,所述屏障前受影响事务143需要执行,以便完成所述屏障命令145,所述屏障后受影响事务147只能在所述屏障命令145完成后执行。此外,需要说明的是,尽管图1所示的具体示例仅示出了事务组142和146以及一个屏障命令145,各实施例不限于任何具体数量的事务、事务组或屏障命令,而可包括任何数量的事务、事务组及屏障命令。
在一个实施例中,所述计算系统网络100通过屏障前完成探针150(如屏障请求或屏障前计算探针)来确定所述屏障命令145何时完成,以便所述屏障后受影响事务147得以执行。例如,在图1中,所述目标计算系统120接收可包括屏障前受影响事务143和屏障前不受影响事务144的屏障前事务142。相应地,所述源计算系统110通过所述通信通道130向所述目标计算系统120发送屏障前完成探针150。所述屏障前完成探针150指示所述目标计算系统120监听所述屏障前受影响事务143的执行状态。在所述目标计算系统120执行了所有屏障前受影响事务143或所述目标计算系统120能够保证其将像其执行了所有屏障前受影响事务143一样工作时,所述目标计算系统120通过所述通信通道130向所述源计算系统110发送屏障完成通知消息151(如屏障响应)。所述屏障完成通知消息151通知所述源计算系统110所述目标计算系统120已完成执行所述屏障前受影响事务143或所述目标计算系统120保证其将像其完成执行所述屏障前受影响事务143一样工作。
所述源计算系统110接收所述屏障完成通知消息151,并使用所述屏障完成通知消息151确定所述屏障命令145是否已完成。例如,所述源计算系统110可具有标识需要执行事务以便完成所述屏障命令145的所有目标计算系统的屏障前扩展范围160(例如,所述屏障前扩展范围可标识可能会收到屏障前受影响事务的所有目标计算系统)。在一实施例中,所述屏障前扩展范围160可包括需要执行事务以便完成屏障命令的目标计算系统的地址或其他标识(ID)的清单。所述源计算系统110从所述目标计算系统120收到所述屏障完成通知消息151时,所述源计算系统110能够将所述目标计算系统120移出所述屏障前扩展范围160或将所述目标计算系统120标记为已经完成执行其事务。此外,需要说明的是,所述源计算系统110还能在所述屏障前完成探针(例如,所述屏障前完成探针150)发送到目标计算系统时,将所述目标计算系统(例如,所述目标计算系统120)移出所述屏障前扩展范围或将所述目标计算系统标记为已完成执行其事务。例如,如果目标计算系统收到屏障前受影响事务(例如,所述事务143),且所述目标计算系统在屏障前完成探针被发送前已执行了所述屏障前受影响事务,由于不需要监听所述屏障前受影响事务的状态,因而不需要向该目标计算系统发送屏障前完成指针。因此,这种情况下,发送所述屏障前完成探针时,可以将所述目标计算系统移出所述屏障前扩展范围或将所述目标计算系统标记为已经完成执行其事务。相应地,在所述屏障前完成探针被发送时或所述源计算系统从所述目标计算系统收到所述屏障完成通知消息(例如,消息151)时,均可将所述目标计算系统移出所述屏障前扩展清单或标记为已完成。在所有目标计算系统被移出所述扩展范围160时或所有目标计算系统都被标记为已完成执行其事务时(或保证其会像已完成执行其事务一样工作),所述源计算系统110能确定所述屏障命令145已完成,且此时可以执行所述屏障后受影响事务147。此外,需要说明的是,在多屏障命令设置中,所述屏障前扩展范围160可包括程序中每个屏障命令的表,每个表可包括收到针对特定屏障命令的屏障前受影响事务的目标计算系统的地址或其他标识。
所述源计算系统110确定所述屏障命令145已完成时,所述源计算系统110通过所述通信通道130向所述目标计算系统120发送屏障后启动通知152(例如,屏障确认)。所述屏障后启动通知152通知所述目标计算系统120所述屏障命令145已完成且所述目标计算系统120可以执行所述屏障后受影响事务147。在一个实施例中,所述源计算系统110通知包括用于确定哪些目标计算系统接收屏障后启动通知的屏障后扩展范围170。例如,所述屏障后扩展范围170可包括接收在所述屏障命令完成后需要执行的事务的目标计算系统的地址或其他标识清单(例如,所述屏障后扩展范围170可包括具有屏障后受影响事务147的目标计算系统的清单)。所述源计算系统110确定屏障命令已完成时,所述源计算系统110可利用所述屏障后扩展范围170确定需要向哪些目标计算系统发送所述屏障后启动通知,以例这些目标计算系统可以获得其可以执行所述屏障后受影响事务。A此外,需要说明的是,在多屏障命令设置中,所述屏障后扩展范围170可包括程序中每个屏障命令的表,每个表可包括收到屏障后受影响事务147的目标计算系统的地址或其他标识。
图2是通过屏障前扩展范围、屏障前完成探针以及屏障完成通知消息确定屏障命令何时完成的方法流程图。在方框202中,为程序中的屏障命令获取屏障前扩展范围。在一实施例中,屏障前扩展范围由硬件(例如,计算系统的处理单元和/或存储器)动态确定。例如,所述硬件可动态收集目标计算系统的地址或标识,其中源计算系统已向所述目标计算系统转发了完成屏障命令所需要执行的事务(如屏障前受影响事务)。然后,所述硬件可为每个屏障命令创建包括这些目标计算系统的地址或标识的清单或表。此外,至少在一些情况下,所述硬件可确定转发到所述目标计算系统的事务是否已执行(例如,所述源计算系统可从目标计算系统接收确认所述目标计算系统已执行事务的消息)。在这种情况下,所述硬件能够只向所述屏障前扩展范围添加已向其转发尚未执行的事务的目标计算系统。这样有助于尽量减少所述源计算系统和目标计算系统需要发送并监听的屏障前完成探针的数量。
在另一实施例中,所述屏障前扩展范围可由软件预先确定。例如,软件可用于生成清单或表,其中所述清单或表包括可能接收完成屏障命令所需要执行的事务的目标计算系统的地址或标识。然后,可以存储并在需要时获得所述预先确定的扩展范围。在一个实施例中,每个屏障命令可具有与预先确定的扩展范围其中一个相关联的索引,以便所述索引可用于获得与该屏障命令相关联的目标计算系统的地址或标识清单。但是,各实施例不限制任何生成或获取屏障前扩展范围的任何特定方法,各实施例可包括通过任何方式生成或获取的屏障前扩展范围。
在方框204中,向方框202中获取的屏障前扩展范围中的目标计算系统发送屏障前完成探针。在一个实施例中,对于在屏障前完成探针发送前已经完成执行其屏障前受影响事务的任何目标计算系统,可以在所述屏障前完成探针发送时,将这些目标计算系统从所述屏障前扩展范围中移除或标记为已完成执行其事务,且不再向这些目标计算系统发送屏障前完成探针。所发送的屏障前完成探针可标识需要执行的事务(例如,屏障前受影响的事务)和/或需要执行的事务的数量。此外,在多屏障命令设置下,屏障前完成探针可标识多个屏障命令中的其中一个。例如,如果目标计算系统针对第一屏障命令需要执行三个事务,所述屏障前完成探针可包括这样的标识:即需要执行三个事务且所述探针与所述第一屏障命令相关联。在方框206中,所述目标计算系统基于所述屏障前完成探针监控所述事务的执行状态,并在所有要求的事务都已执行时或所述目标计算系统能保证其将像所有要求的事务都已执行一样工作时,向所述源计算系统发送屏障完成通知消息。每个屏障完成通知消息可选地可包括所述目标计算系统的标识及相关屏障命令的标识。在方框208中,源计算系统基于收到的屏障完成通知消息监控所述屏障命令的状态,并确定屏障命令完成的时间。例如,由于所述源计算系统收到了来自所述目标计算系统的屏障完成通知消息,所述源计算系统可从所述屏障前扩展范围中移除所述目标计算系统。然后,在所述屏障前扩展范围不包括任何目标计算系统时,所述源计算系统能够确定所述屏障命令已完成。可替换地,所述源计算系统能够在其收到所述屏障完成通知消息时,将所述屏障前扩展范围中的目标计算系统标识(例如,标记)为已完成这些目标计算系统的事务,且所述源计算系统能够在所述屏障前扩展范围中的所有目标计算系统都被标识为已完成其事务时,确定所述屏障命令已完成。
在方框210中,所述源计算系统确定屏障命令已完成之后,所述源计算系统可选地向目标计算系统发送屏障后启动通知,其中屏障后受影响事务已在所述屏障命令完成前发送给这些目标计算系统。除此以外或可选地,所述源计算系统确定屏障命令已完成之后,在方框212中,所述源计算系统可选地向所述目标计算系统转发屏障后受影响事务。
图3是利用屏障后扩展范围、事先转发属性及屏障后启动通知控制屏障后受影响事务执行的方法的流程图。在方框302中,标识将要转发至目标计算系统的事务。在方框304中,针对每个事务,确定所述事务是否是事先发送至所述目标计算系统的。例如,如果事务在要求的屏障命令完成前发送至目标计算系统,则确定所述事务为事先转发事务(例如,事先转发屏障后受影响事务)。如果所述事务未事先发送,则在方框306中,向所述目标计算系统发送所述事务而不标识其为事先已发送。相应地,所述目标计算系统能够立即执行所述事务。如果所述事务已事先发送,则在方框308中,将所述事务标识为已事先发送并将其发送至所述目标计算系统。在一个实施例中,事务可以有一个标识所述事务已事先发送的事先转发属性。相应地,在多屏障命令设置中,所述事先转发事务可包括一个标识,用于指示在执行所述事务前需要完成的屏障命令。在另一实施例中,事先转发事务可被锁定,并以锁定的形式发送给所述目标计算系统,以便所述事先转发事务在用密钥进行解锁前无法被执行。
在方框310中,将收到事先转发事务的目标计算系统添加到屏障后扩展范围中。与所述屏障前扩展范围类似,所述屏障后扩展范围可以动态确定或事先确定。例如,硬件可动态收集已从源计算系统接收事先转发事务的目标计算系统的地址或标识,并将这些目标计算系统添加到所述屏障后扩展范围中。可替换地,已接收事先转发事务的目标计算系统的地址或标识可由软件预先确定并存储到所述屏障后扩展范围中。在一实施例中,每个屏障命令可具有与所述屏障后扩展范围其中一个相关联的索引,以便所述索引可用于获得与该屏障命令相关联的目标计算系统的地址或标识清单。但是,各实施例不限制任何生成或获取屏障后扩展范围的任何特定方法或组件,各实施例可包括通过任何方式生成或获取的屏障后扩展范围。
在方框312中,所述源计算系统监控所述事务的执行状态并确定屏障命令完成的时间。例如,图2所示的方法能够用于确定屏障命令完成的时间。在方框314中,确定屏障命令已完成之后,所述源计算系统向在方框308中收到事先转发事务的所述屏障后扩展范围中的目标计算系统发送屏障后启动通知。或者,在方框308中事先转发事务被锁定的实施例中,所述源计算系统可向收到所述被锁定的事先转发事务的目标计算系统发送用于解锁所述被锁定的事先转发事务的密钥。在方框316中,所述目标计算系统接收所述屏障后启动通知或所述密钥,且所述目标计算系统移除所述事先转发属性或解锁所述事先转发事务。在多屏障命令设置中,所述屏障后启动通知可包括屏障命令其中一个的指示,且所述目标计算系统只能从所述标识的屏障命令对应的事务中移除事先转发属性。在方框318中,所述目标计算系统执行方框308中事先转发的事务。
图4是从源计算系统的角度的处理屏障命令的方法的流程图。在方框401中,所述源计算系统执行到程序中的屏障命令。在方框402中,所述源计算系统获取所述屏障命令的屏障前扩展范围。如前所述,所述屏障前扩展范围可以动态确定、预先确定或采用任何其他方式获取。在方框404中,所述源计算系统确定所述屏障前扩展范围中是否有需要向其发送屏障前完成探针的任何目标计算系统(例如,接收到尚未执行的屏障前受影响事务的目标计算系统)。如果所述屏障前扩展范围中有需要向其发送屏障前完成探针的目标计算系统,在方框406中,所述源计算系统向所述屏障前扩展范围中的目标计算系统发送所述屏障前完成探针。此外,如果发送所述屏障前完成探针时,所述屏障前扩展范围中有任何目标计算系统已执行了其受影响事务,则在方框406中,可将这些目标计算系统从所述屏障前扩展范围中移除可标识为已完成执行其事务。在方框406之后或方框404之后,如果所述屏障前扩展范围中没有需要向其发送屏障前完成探针的目标计算系统,所述源计算系统确定是否从所述目标计算系统收到全部屏障完成通知消息。如果未收到全部屏障完成通知消息,在方框410中,所述源计算系统继续从所述目标计算系统收集屏障完成通知消息。在方框410之后或方框408之后,如果已收到全部通知消息,在方框412中,所述源计算系统获取所述屏障命令的屏障后扩展范围。所述屏障后扩展范围也可以动态确定、预先确定或采用任何其他方式获取。在方框414中,所述源计算系统确定所述屏障后扩展范围中是否有任何目标计算系统。如果所述屏障后扩展范围中有目标计算系统,在方框416中,所述源计算系统向所述目标计算系统发送所述屏障后启动通知,并从所述屏障后扩展范围中移除所述目标计算系统。在方框416之后或方框414之后,如果所述屏障后扩展范围中没有目标计算系统,则在方框418中,所述目标计算系统已完成所述屏障命令。
图5是从目标计算系统的角度的处理屏障命令的方法的流程图。在方框502中,所述目标计算系统从源计算系统接收事务。在方框504中,所述目标计算系统接收屏障前完成探针。所述屏障前完成探针可选地标识屏障命令、完成特定屏障命令需要所述目标计算系统执行的事务(例如,屏障前受影响事务)和/或完成特定屏障命令需要所述目标计算系统执行的事务的数量。在方框506中,所述目标计算系统确定其是否已执行了所述屏障前完成探针所标识的全部事务或其是否能够保证其像其已执行了所有屏障前完成探针所标识的全部事务一样工作。如果未执行所有的屏障前事务或如果所述目标计算系统不能保证其将像其已执行了所有屏障前事务一样工作,在方框508中,所述目标计算系统继续执行所述屏障前受影响事务。如果已执行了所有屏障前受影响事略或所述目标计算系统能够保证其像其已执行了所有屏障前受影响事务一样工作,所述目标计算系统继续执行510,其中所述目标计算系统向源计算系统发送屏障完成通知消息。在方框512中,所述目标计算系统确定其任一接收到的事务被标记为事先转发事务(例如,其任一事务具有事先转发属性)。如果没有事务被标记为事先转发事务,在方框514中,所述目标计算系统继续执行所述事务。如果任何事务被标记为事先转发事务,在方框516中,所述目标计算系统确定其是否从所述源计算系统收到所述事务的屏障后启动通知。如果所述目标计算系统未收到所述事务的屏障后启动通知,所述目标计算系统继续执行方框518,其中所述目标计算系统在执行所述事务前等待接收所述屏障后启动通知。不过,所述目标计算系统可继续执行未被标记为事先转发的事务。如果所述目标计算系统收到了所述事务的屏障后启动通知,所述目标计算系统继续执行方框520,其中所述目标计算系统清除所述事务的事先转发标记(例如,删除或修改事先转发属性、解锁所述事务等)。然后,所述目标计算系统继续执行之前被标记为事先转发事务的事务。
图6是源和/或目标计算系统600的示意图。所述计算系统600包括存储器610、处理单元620及通信接口630。所述存储器610可选地包括事务612,屏障前扩展范围和/或探针614及屏障后扩展范围和/或启动通知616。每个事务612可具有与所述事务相关联的屏障命令的标识、目标计算系统的标识和/或事先转发属性。所述屏障前扩展范围和/或完成探针614可具有屏障前扩展范围及一个或多个屏障前完成探针。每个屏障前完成探针可包括与所述探针相关联的屏障命令的标识、与所述探针相关联的事务的标识和/或与所述探针相关联的事务数量的标识。所述屏障后扩展范围和/或启动通知616可具有屏障后扩展范围及一个或多个屏障后启动通知。每个屏障后启动通知可包括与所述通知相关联的屏障命令的标识和/或与所述启动通知相关联的事务的标识。
所述处理单元620可选地包括源功能模块622和目标功能模块626。所述源功能模块622可具有屏障前过滤与监控单元623及屏障后过滤与监控单元624。所述屏障后过滤与监控单元623可用于确定需要接收屏障前完成探针的目标计算系统,并监控屏障命令的状态(例如,屏障命令是否已完成)。所述屏障后过滤与监控单元624可用于确定需要接收屏障后启动通知的目标计算系统,并确定事先转发的事务。
所述目标功能模块626可具有屏障前监控与通知单元627及屏障后监控与清除单元628。所述屏障前监控与通知单元627可用于确定与屏障前完成探针相关联的所有事务是否均已执行或所述目标计算系统能否保证其像其已执行了与所述屏障前完成探针相关联的所有事务(例如,所有屏障前受影响事务)一样工作;所述屏障前监控与通知单元627可与所述屏障前完成探针相关联的所有事务均已执行或其能够保证其像其已执行了与所述屏障前完成探针相关联的所有事务一样工作时,向源计算系统发送屏障完成通知消息。所述屏障后监控与清除单元628可用于确定是否收到屏障后启动通知,并清除(例如移除或解锁)事务的事先转发属性。
所述通信接口630用于与其他目标和/或源计算系统进行可通信方式的耦合。源或目标计算系统需要发送或接收的事务、屏障前完成探针、屏障完成通知消息、屏障后启动通知以及任何其他信息等,均可通过所述通信接口630发送或接收。此外,需要说明的是,所述存储器610、所述处理单元620及所述通信接口630可用于实现以上所述的或附图所示的任何一种或多种特征,且不一定限于以上所述的特定示例性功能。
图7是目标计算系统按顺序接收事务时处理屏障命令的计算系统网络700的示例的示意图。所述网络700包括以可通信的方式通过通信通道750耦合到三个目标计算系统720、730及740的源计算系统710。尽管图7所示的特定示例仅包括一个源计算系统710和三个目标计算系统720、730及740,但各实施例不限于任何特定数量的源计算系统和目标计算系统,且可包括任何数量的源计算系统和目标计算系统。
所述源计算系统710包括计算机程序,其中所述计算机程序包括开始部分761、第一组事务中的事务762、第一屏障命令764、第二组事务中的事务766、第二屏障命令768、第三组事务中的事务770以及结束部分771。所述屏障命令764与768可用于指明执行事务的顺序。例如,所述第一屏障命令764指示所述第一组事务中的事务762需要在所述第二组事务中的事务766或所述第三组事务中的事务770中的任一个执行之前执行。所述第二屏障命令768指示所述第二组事务中的事务766需要在所述第三组事务中的事务770中的任一个执行之前执行。在图7所示的示例以及后续图8所示的示例中,假设所有事务都是受影响事务(例如,屏障命令前的所有事务都是屏障前受影响事务且屏障命令后的所有事务都是屏障后受影响事务)。但是,各实施例还可包括不影响屏障命令完成的和/或在执行前不需要等待屏障命令完成的不受影响事务。
所述目标计算系统720、730及740中的每一个都从所述源计算系统710接收要求执行的事务762、766及770。在一个实施例中,每个事务可包括或关联目标标识(例如,目标计算系统的地址或标识),且所述源计算系统710可基于所述目标标识向相应的目标计算系统720、730或740转发事务。所述目标计算系统720、730及740中的每一个还可接收一个或多个屏障前完成探针772、774和/或一个或多个屏障后启动通知776、778。在图7所示的示例中,所述目标计算系统720、730、740中的每一个,按照针对所述目标系统720、730、740中的每一个从开始部分761到结束部分771所示的顺序,接收所述事务762、766、770、所述屏障前完成探针772、774及所述屏障后启动通知776、778。
所述屏障前完成探针772和774由系统700用于监控事务的执行状态。例如,目标系统720和目标系统730都包括需要在第二组中的事务766和第三组中的事务770中的任一个之前执行的第一组事务中的事务762。相应地,所述目标系统720和所述目标系统730接收第一屏障前完成探针772。所述第二屏障前完成探针772指示所述目标计算系统720与所述目标计算系统730监控所述第一组中的所述事务762的执行状态,并在其分别完成执行所述事务762时或其分别保证它们将像它们已执行了所述事务762一样工作时,向所述源计算系统710发送屏障完成通知消息。因此,所述源计算系统710收到来自所述目标计算系统720及所述目标计算系统730的所述第一屏障完成通知消息时,确定所述第一屏障命令764已完成。需要说明的是,第三目标计算系统740也包括来自第一组事务的事务762,但不接收第一屏障前完成探针772。在一个实施例中,所述计算系统740不接收第一屏障前完成探针772,因为所述计算系统740在所述第一屏障命令764的所述屏障前完成探针772发布前已完成了执行了所述事务762。相应地,所述目标计算系统710可将接收所述屏障前完成探针的目标计算系统的数量限制到只包括发送所述屏障前完成探针时尚有完成屏障命令前需要执行的事务的目标计算系统。所述目标计算系统720与所述目标计算系统730也从第二组事务中接收事务766,相应地,接收第二屏障前完成探针774。基于接收所述第二屏障前完成探针774,所述目标计算系统720与所述目标计算系统730监控所述事务766的执行状态,并在其分别完成执行所述事务766时或其分别保证它们将像它们已执行了所述事务766一样工作时,向所述源计算系统710发送屏障完成通知消息。然后,所述源计算系统710收到来自所述目标计算系统720及所述目标计算系统730的所述第二屏障完成通知消息时,确定所述第二屏障命令768已完成。
所述屏障后启动通知776和778由系统700用于在适当的时候触发执行所述事务。在一个实施例中,如果事务在执行所述事务的时机之前发送至所述目标计算系统720、730、740(例如,如果所述第二组事务中的事务766在所述第一组事务中的所有所述事务762执行前发送至目标计算系统,或如果所述第三组事务中的所述事务770在所述第一组事务中的中的全部事务762及所述第二组事务中的全部事务766执行前),所述事务被识别为事先转发事务。如前所述,事先转发事务可具有将其标识为事先转发的属性。在这种情况下,所述目标计算系统720、730、740在收到相应的屏障后启动通知776或778前不执行任何事先转发事务。在图7中,所述目标计算系统730包括第一屏障后启动通知776,所述目标计算系统720与所述目标计算系统740包括第二屏障后启动通知778。相应地,所述目标计算系统730在其收到第一屏障后启动通知776前不执行来自第二组事务的事务766,所述目标计算系统720与所述目标计算系统740在其分别收到第二屏障后启动通知778前不执行来自第三组事务的事务770。
需要说明的是,第一目标计算系统720也包括来自第二组事务的事务766,但不接收第一屏障后启动通知776。在一个实施例中,所述计算系统720不接收第一屏障后启动通知776,因为所述计算系统720在完成所述第一屏障命令764所需要的所有事务(例如,事务762)执行之后收到所述事务766。相应地,所述源计算系统710可将接收所述屏障后启动通知的目标计算系统的数量限制为只包括收到事先转发的事务(例如,需要的屏障命令完成前发送的事务)的目标计算系统。
图8是目标计算系统不按顺序接收事务时处理屏障命令的计算系统网络800的示例的示意图。所述计算系统网络800与图7所示的所述的计算系统网络700类似。但是,在所述计算系统网络800中,事务862、866、870、屏障前完成探针872、874及屏障后启动通知876、878并非按顺序发送至目标计算系统820、830、840。相反,所述事务862、866、870、所述屏障前完成探针872、874及所述屏障后启动通知876、878未按顺序发送至目标计算系统820、830、840。具体地,所述目标计算系统820、830、840,按照图8所示的针对所述目标系统820、830、840中的每一个从开始部分861到结束部分871所示的顺序,接收所述事务862、866、870、所述屏障前完成探针872、874以及所述屏障后启动通知876、878。所述第一目标计算系统820首先接收来自所述第三组事务的事务870。如前所述,事务事先发送时(例如,要求的屏障命令完成前转发事务给目标计算系统时),所述事先转发事务可包括事先转发属性或被锁定,以便所述目标计算系统在完成任何要求的屏障命令前无法执行所述事先转发事务。相应地,在图8所示的示例中,所述目标计算系统820收到来自所述第三组事务的事务870时,所述事务870具有事先转发属性或被锁定。因此,所述目标计算系统820将等待执行所述事务870,直至其后来收到指示第二屏障命令868已完成的第二屏障后启动通知878。
下一步,所述第一目标计算系统820接收第二屏障前完成探针874和第一屏障前完成探针872。如前所述,所述屏障前完成探针872、874可标识完成特定屏障命令前需要执行的事务和/或需要执行的事务的数量。此外,在多屏障命令设置下,屏障前完成探针872、874可标识多个屏障命令中的其中一个。相应地,所述第一目标计算系统820收到事先发送的屏障前完成探针872、874时(例如,所述屏障前完成探针872、874在与所述屏障前完成探针872、874相关联的事务发送到所述第一目标计算系统820之前发送到所述第一目标计算系统820),所述目标计算系统820可随同所述屏障前完成探针872、874所包括的信息监控所述屏障前完成探针872、874,即事先转发屏障,的状态。例如,所述第一目标计算系统820可利用事务的数量、事务的标识和/或屏障命令的标识来确定所述第一目标计算系统何时执行了与特定屏障前完成探针872、874相关联的所有事务,并在其已完成执行所有要求的事务时或其能保证像其已完成所要求的所有事务一样工作时,向所述源计算系统810发送屏障完成通知消息。
然后,所述第一目标计算系统820接收来自所述第一组事务的事务862。执行所述事务862不要求完成任何屏障命令。换言之,所述事务862不是事先转发事务。相应地,所述第一目标计算系统820无需等待屏障命令完成即可执行所述事务862。所述第一目标计算系统820执行了所述事务862或能够保证其像其已执行了所述事务862一样工作时,所述第一目标计算系统820确定其已执行了第一屏障前完成探针872所要求的事务,并向所述源计算系统810发送第一屏障完成通知消息。
然后,所述第一目标计算系统820接收来自所述第二组事务的事务866。在图8所示的示例中,所述第一目标计算系统820收到所述事务866时,完成所述第一屏障命令864所需要执行的所有事务862均已执行。相应地,所述事务866不是事先转发事务,且所述第一目标计算系统820不需要接收第一屏障后启动通知。相反,所述第一目标计算系统820可在收到事务866后随时执行所述事务866。所述第一目标计算系统820执行了所述事务866或能够保证其像其已执行了所述事务866一样工作时,所述第一目标计算系统820确定其已执行了第二屏障前完成探针874所要求的事务,并向所述源计算系统810发送第二屏障完成通知消息。
之后,所述第一目标计算系统820接收第二屏障后启动通知878,其中所述第二屏障后启动通知通知所述目标计算系统820其可以执行之前转发到所述目标计算系统820的事务870。因此,所述目标计算系统820一收到第二屏障后启动通知878,就可以完成执行其剩余的事务(即,事务870)。
所述第二目标计算系统830首先接收第二屏障前完成探针874。由于所述第二目标计算系统820尚未收到与所述第二屏障关完成探针874相关联的事务866,所述第二屏障前完成探针874是事先转发屏障前完成探针,且可包括事务标识、事务的数量和/或与所述第二屏障前完成探针874相关联的屏障命令。所述第二目标计算系统830利用此信息确定其执行所述第二屏障前完成探针874所要求的事务的时间。
下一步,所述第二目标计算系统830接收来自第二组事务的事务866。所述事务866在所述第一屏障命令864完成之前收到。因此,所述事务866被识别为事先转发事务,且所述第二目标计算系统830将等待执行所述事务。
然后,所述第二目标计算系统830接收第一屏障前完成探针872。所述屏障前完成探针872可标识完成所述第一屏障命令864需要执行的事务和/或需要执行的事务的数量。所述屏障前完成探针872也可标识与所述屏障前完成探针872相关联的屏障命令(例如,第一屏障864)。所述第二目标计算系统830能够利用随同所述屏障前完成探针872包含的信息监控所述屏障前完成探针872的状态,并在执行了所有要求的事务之后或其能够保证其将像其已执行完所有要求的事务一样工作时,发送第二屏障完成通知消息。
下一步,所述第二目标计算系统830接收来自所述第一组事务的事务862。执行所述事务862不要求完成任何屏障命令。因此,所述第二目标计算系统830无需等待屏障命令完成即可执行所述事务862。所述第二目标计算系统830执行了所述事务862或能够保证其像其已执行了所有要求的事务一样工作时,所述第二目标计算系统830确定其已执行了第一屏障前完成探针872所要求的事务,并向所述源计算系统810发送第一屏障完成通知消息。
最后,所述目标计算系统830接收所述第一屏障后启动通知876,其中所述第一屏障后启动通知通知所述第二目标计算系统830其可以开始执行第二事务866。所述第二目标计算系统830执行了所述事务866或能够保证其像其已执行了所述事务866一样工作时,所述第二目标计算系统830确定其已执行了第二屏障前完成探针874所要求的事务,并向所述源计算系统810发送第二屏障完成通知消息。
所述第三目标计算系统840首先接收来自所述第一组事务的事务862。执行所述事务862不要求完成任何屏障命令,因此所述第三目标计算系统840不等待屏障命令完成即可执行事务862。在图8所示的示例中,所述第三目标计算系统840在所述源计算系统810达到所述第一屏障命令864前执行所述事务862。相应地,所述第三目标计算系统840不接收第一屏障前完成探针872,因为所述第三计算系统840在所述第一屏障前完成探针872发布前已执行了完成所述屏障命令864所需要的一个事务862。
然后中,所述第三目标计算系统840接收来自所述第三组事务的事务870。示例性的,所述事务870是事先转发事务,因此所述第三目标计算系统840在其最后收到第二屏障后启动通知878之前,等待执行所述事务870。
根据以上描述及附图所示,各实施例包括用于计算系统处理屏障命令的方法和装置。在特定示例中,屏障命令利用屏障前扩展范围、屏障前完成探针、屏障完成通知消息、屏障后扩展范围及屏障后启动消息实现。利用以上所述特征的系统能够通过仅向需要的计算系统发送屏障命令消息,从而减少屏障命令消息流量。此外,至少特定实施例允许事务和屏障命令消息按顺序或不按顺序(例如,事务和屏障命令消息都事先转发)转发至计算系统。这些特征有利于减少屏障扩展范围、减少屏障消息流量、实现事务的事先转发、实现屏障命令消息的事先转发、增加计算并行度以及减少带宽需求。
以上对至少一种实施例进行了说明,但本领域普通技术人员对所述实施例做出的变体、组合和/或修改,和/或所述实施例提出的特性都属于本发明的范围。通过组合、集成和/或省略所述实施例的特性而产生的替代实施例也属于本发明的范围。本发明中明确说明的数字范围或限制应理解为包括此明确说明的范围或限制范围内的类似数值的迭代范围或限制(例如,从约1至约10包括2、3、4等;大于0.10包括0.11、0.12、0.13等)。例如,具有下限Rl与上限Ru的数值范围具体包括此范围内的任何数值。具体来说,包括此范围中的以下数值:R=Rl+k*(Ru-Rl),其中,k为取值范围从1%到100%的递进步长为1%的变量,即k为1%、2%、3%、4%、5%……70%、71%、72%……95%、96%、97%、98%、99%或100%。而且,具体还包括如上所述的两个数值R所定义的任意数值范围。其中,除非另有说明,“约”表示其后数值的±10%。权利要求中某个元素“可选”表示该元素是必须的,或者,该元素不是必须的,这两种情况都属于所述权利要求的范围。包括、包含、具有等广义词汇的使用应理解为,由……组成、主要由……组成、大体上由……组成等狭义词汇也成立。相应地,保护范围不限于上述说明,而应由其后所附的权利要求书定义,所述范围包括权利要求所述内容的所有同等权利要求。每个权利要求都结合在本说明书中,作为对本发明的进一步说明,且权利要求是本发明的实施例。本发明中提到的某个参考技术并不表示承认该技术为现有技术,尤其是出版日期在本申请的优先级日期之后的任何参考技术。本发明中公开的所有专利、专利申请及出版物所公开的信息,其对本发明提供补充的示例性、程序性或其他细节都通过引用结合在本发明中。
尽管本发明提供了若干实施例,应理解所公开的系统和方法可能在不脱离本发明精神与范围的前提下存在许多其他具体形式。所述示例应理解为示例性的而非限制性的,其初衷并不是将本发明限于所给出的细节。例如,各种元素或组件可能结合或集成在其他系统中,或某些特征可以被省略或不实现。
此外,各个实施例中以离散或单独方式描述及阐明的技术、系统、子系统及方法,可与其他系统、模块、技术、或方法在不脱离本发明范围的前提下进行整合或集成。以耦合、直接耦合或彼此通信的方式示出或讨论的其他项目,可以通过一些电气、机械或其他接口、设备或中间组件进行的间接耦合或通信。本领域的技术人员可以理解确定本发明的其他变化、替换或变更,并在不脱离本发明精神与范围的前提下做出其他变化、替换或变更。
Claims (20)
1.一种计算系统,其特征在于,包括:
存储器,用于存储标识与屏障命令相关联的目标计算系统的屏障前扩展范围;
接口,与所述存储器耦合,用于向所述屏障前扩展范围中标识的所述目标计算系统发送屏障前计算探针,并接收来自所述目标计算系统的屏障完成通知消息,其中所述屏障前计算探针用于指示所述目标计算系统监听完成所述屏障命令所需要执行的事务的状态;及
处理器,与所述接口耦合,用于基于接收到的所述屏障完成通知消息确定所述屏障命令的状态。
2.根据权利要求1所述的计算系统,其特征在于,所述屏障完成通知消息是从所述目标计算系统接收到的,且所述屏障完成通知消息表示所述目标计算系统执行了完成所述屏障命令所需要执行的事务,或所述屏障完成通知消息表示所述目标计算系统保证会像其执行了完成所述屏障命令所需要执行的事务一样工作。
3.根据权利要求1所述的计算系统,其特征在于,所述存储器用于存储屏障后扩展范围,所述屏障后扩展范围包括所述目标计算系统和/或接收事先转发事务的其他目标计算系统的指示,其中所述事先转发事务包括只能在所述屏障命令完成后执行的事务;所述接口用于在所述处理器确定所述屏障命令完成时,向所述目标计算系统和/或接收所述事先转发事务的所述其他目标计算系统发送屏障后启动通知;所述处理器用于在所述屏障命令完成前需要执行的事务所发送到的所有目标计算系统表示这些目标计算系统已经完成执行了所述事务和/或表示这些目标计算系统保证他们会像他们已经完成执行所述事务一样工作时,确定所述屏障命令已完成。
4.根据权利要求1所述的计算系统,其特征在于,所述接口用于在所述处理器确定所述屏障命令已完成时,向所述目标计算系统发送只能在所述屏障命令完成后执行的事务。
5.根据权利要求1所述的计算系统,其特征在于,所述处理器用于识别在需要的屏障命令完成前正在向所述目标计算系统转发的事务;所述接口用于向所述目标计算系统发送所识别出的事务,并带有表明所述事务为事先转发事务的指示,其中所述表明所述事务为事先转发事务的指示包括具有事先转发属性的事务,或所述表明所述事务为事先转发事务的指示包括被锁定以使其在用密钥解锁前无法被执行的事务。
6.根据权利要求1所述的计算系统,其特征在于,所述屏障前扩展范围标识出所述目标计算系统以及接收在所述屏障命令完成前需要执行的事务的任何其他目标计算系统,其中所述目标计算系统以及所述其他目标计算系统由所述处理器事先确定或动态确定。
7.根据权利要求1所述的计算系统,其特征在于,所述屏障命令与包含了多个屏障命令和多个目标计算系统的程序相关联,且所屏障前扩展范围包括与所述屏障命令相关联的所述目标计算系统和/或其他目标计算系统的地址或其他标识,以及与所述多个屏障命令相关联的事务的标识。
8.一种计算系统,其特征在于,包括:
接口,用于从源计算系统接收屏障前计算探针,并向所述源计算系统发送屏障完成通知消息,其中所述屏障前计算探针指示所述计算系统监控与屏障命令相关联的事务的状态,所述屏障完成通知消息指示与所述屏障命令相关联的所述事务已由所述计算系统执行或所述计算系统保证其将像其已执行所述事务一样工作;及
处理器,与所述接口耦合,用于在从所述源计算系统收到屏障后启动通知前等待执行事先转发事务,其中所述事先转发事务包括只能在所述屏障命令完成后执行的事务,且所述屏障后启动通知指示与所述事先转发事务相关联的屏障命令已完成。
9.根据权利要求8所述的计算系统,其特征在于,所述处理器用于在所述接口从所述源计算系统收到用于解锁所述事务的密钥后执行所述事务。
10.根据权利要求8所述的计算系统,其特征在于,所述屏障前计算探针标识完成所述屏障命令前需要执行的事务的数量,且所述计算系统用于,在所有事务均已执行时或所述计算系统能够保证其将像其已执行了所有事务一样工作时,向所述目标计算系统发送所述屏障完成通知消息。
11.根据权利要求8所述的计算系统,其特征在于,所述计算系统用于接收多个屏障前计算探针,其中每个所述屏障前计算探针与不同的屏障命令相关联,且每个所述屏障前计算探针标识与所述屏障前计算探针相关联的特定屏障命令。
12.一种方法,其特征在于,包括:
识别与屏障命令完成情况相关联的事务;
识别与所述事务相关联的目标计算系统;
向所述目标计算系统发送屏障前计算探针,其中所述屏障前计算探针指示所述目标计算系统监控与所述屏障命令完成情况相关联的所述事务的执行状态;
从所述目标计算系统接收屏障完成通知消息,其中所述屏障完成通知消息表示所述目标计算系统已执行了与所述屏障命令完成情况相关联的事务,或表示所述目标计算系统能够保证其像其已执行了与所述屏障命令完成情况相关联的所述事务;及
基于所述接收的屏障完成通知消息确定所述屏障命令是否完成,其中接收屏障前计算探针的所有目标计算系统都返回了其屏障完成通知时,确定所述屏障命令已完成。
13.根据权利要求12所述的方法,其特征在于,向所述识别的目标计算系统发送所述屏障前计算探针包括,向所述识别的目标计算系统发送表示需要执行的事务的数量的标识。
14.根据权利要求12所述的方法,其特征在于,向所述识别的目标计算系统发送所述屏障前计算探针包括,向所述识别的目标计算系统发送与所述屏障前计算探针相关联的特定屏障命令的指示。
15.一种方法,其特征在于,包括:
从源计算系统接收屏障前计算探针,其中所述屏障前计算探针用于指示收到所述屏障前计算探针的目标计算系统监控与屏障命令相关联的事务的状态;
向所述源计算系统发送屏障完成通知消息,其中所述屏障完成通知消息指示与所述屏障命令相关联的事务已执行或所述目标计算系统保证其将像其已执行了所述事务一样工作;
接收事先转发事务,其中所述事先转发事务由所述目标计算系统在与所述事先转发事务相关联的屏障命令完成前接收,且所述事先转发事务只能在与所述转发事务相关联的屏障命令完成后执行;及
在从所述源计算系统收到屏障后启动通知后执行所述事先转发事务,其中所述屏障后启动通知表示与所述事先转发事务相关联的屏障命令已完成。
16.根据权利要求15所述的方法,其特征在于,所述屏障前计算探针标识完成所述屏障命令前需要执行的事务的数量,且所述目标计算系统用于,在所有事务均已执行时或所目标述计算系统能够保证其将像其已执行了所有事务一样工作时,向所述源计算系统发送所述屏障完成通知消息。
17.根据权利要求15所述的方法,其特征在于,还包括接收多个屏障前计算探针,其中每个所述屏障前计算探针与不同的屏障命令相关联,且每个所述屏障前计算探针标识与所述屏障前计算探针相关联的特定屏障命令。
18.根据权利要求15所述的方法,其特征在于,所述事先转发事务包括事先转发属性,且所述目标计算系统至少部分地基于所述事先转发属性执行所述事先转发事务。
19.根据权利要求15所述的方法,其特征在于,所述事先转发事务被锁定,且所述目标计算系统在收到用于解锁所述事先转发事务的密钥前等待执行所述事先转发事务。
20.根据权利要求15所述的方法,其特征在于,所述屏障后启动通知包括与程序相关联的多个屏障命令其中一个的标识,以及与所述多个屏障命令中的一个相关联的多个事务的标识。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261676544P | 2012-07-27 | 2012-07-27 | |
US61/676,544 | 2012-07-27 | ||
US201261677057P | 2012-07-30 | 2012-07-30 | |
US61/677,057 | 2012-07-30 | ||
US201261677921P | 2012-07-31 | 2012-07-31 | |
US61/677,921 | 2012-07-31 | ||
US201361780442P | 2013-03-13 | 2013-03-13 | |
US61/780,442 | 2013-03-13 | ||
PCT/US2013/052370 WO2014018912A1 (en) | 2012-07-27 | 2013-07-26 | The handling of barrier commands for computing systems |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104541248A true CN104541248A (zh) | 2015-04-22 |
CN104541248B CN104541248B (zh) | 2017-12-22 |
Family
ID=49029165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380039822.4A Active CN104541248B (zh) | 2012-07-27 | 2013-07-26 | 计算系统对屏障命令的处理 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9411633B2 (zh) |
CN (1) | CN104541248B (zh) |
WO (1) | WO2014018912A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6417727B2 (ja) * | 2014-06-09 | 2018-11-07 | 富士通株式会社 | 情報集約システム、プログラム、および方法 |
US9934184B1 (en) * | 2015-09-25 | 2018-04-03 | Amazon Technologies, Inc. | Distributed ordering system |
US10255210B1 (en) | 2016-03-01 | 2019-04-09 | Amazon Technologies, Inc. | Adjusting order of execution of a target device |
US20180239532A1 (en) * | 2017-02-23 | 2018-08-23 | Western Digital Technologies, Inc. | Techniques for performing a non-blocking control sync operation |
CN110033799A (zh) * | 2018-01-12 | 2019-07-19 | 三星电子株式会社 | 基于屏障命令按顺序存储数据的存储设备 |
KR102262209B1 (ko) * | 2018-02-09 | 2021-06-09 | 한양대학교 산학협력단 | 더미 입출력 요청을 이용한 배리어 명령 전달 방법 및 그 장치 |
US10990453B2 (en) * | 2018-04-12 | 2021-04-27 | Advanced Micro Devices, Inc. | Improving latency by performing early synchronization operations in between sets of program operations of a thread |
US11816349B2 (en) | 2021-11-03 | 2023-11-14 | Western Digital Technologies, Inc. | Reduce command latency using block pre-erase |
US20240143228A1 (en) * | 2022-11-01 | 2024-05-02 | Western Digital Technologies, Inc. | Fast execution of barrier command |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5327548A (en) * | 1992-11-09 | 1994-07-05 | International Business Machines Corporation | Apparatus and method for steering spare bit in a multiple processor system having a global/local memory architecture |
CN1942858A (zh) * | 2003-12-01 | 2007-04-04 | 索尼计算机娱乐公司 | 用于高效多任务化的方法和装置 |
US7475397B1 (en) * | 2004-07-28 | 2009-01-06 | Sun Microsystems, Inc. | Methods and apparatus for providing a remote serialization guarantee |
CN102144218A (zh) * | 2008-07-28 | 2011-08-03 | 超威半导体公司 | 可虚拟化的先进同步设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7512950B1 (en) * | 2003-08-14 | 2009-03-31 | Sun Microsystems, Inc. | Barrier synchronization object for multi-threaded applications |
US20070143755A1 (en) * | 2005-12-16 | 2007-06-21 | Intel Corporation | Speculative execution past a barrier |
US8527740B2 (en) * | 2009-11-13 | 2013-09-03 | International Business Machines Corporation | Mechanism of supporting sub-communicator collectives with O(64) counters as opposed to one counter for each sub-communicator |
US8782356B2 (en) | 2011-12-09 | 2014-07-15 | Qualcomm Incorporated | Auto-ordering of strongly ordered, device, and exclusive transactions across multiple memory regions |
-
2013
- 2013-07-26 CN CN201380039822.4A patent/CN104541248B/zh active Active
- 2013-07-26 US US13/952,331 patent/US9411633B2/en active Active
- 2013-07-26 WO PCT/US2013/052370 patent/WO2014018912A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5327548A (en) * | 1992-11-09 | 1994-07-05 | International Business Machines Corporation | Apparatus and method for steering spare bit in a multiple processor system having a global/local memory architecture |
CN1942858A (zh) * | 2003-12-01 | 2007-04-04 | 索尼计算机娱乐公司 | 用于高效多任务化的方法和装置 |
US7475397B1 (en) * | 2004-07-28 | 2009-01-06 | Sun Microsystems, Inc. | Methods and apparatus for providing a remote serialization guarantee |
CN102144218A (zh) * | 2008-07-28 | 2011-08-03 | 超威半导体公司 | 可虚拟化的先进同步设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2014018912A1 (en) | 2014-01-30 |
US9411633B2 (en) | 2016-08-09 |
US20140033209A1 (en) | 2014-01-30 |
CN104541248B (zh) | 2017-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104541248A (zh) | 计算系统对屏障命令的处理 | |
CN103778034A (zh) | 基于云存储的数据备份容灾方法及系统 | |
CN105183852A (zh) | 一种数据库迁移方法和装置 | |
EP3051440A1 (en) | Keyvalue database data table updating method and data table updating device | |
CN103546388A (zh) | 一种流量控制方法及装置 | |
CN102946410A (zh) | 网络同步方法和装置 | |
CN102946411A (zh) | 网络同步系统 | |
CN103684885A (zh) | 一种网站服务器访问异常确定方法及装置 | |
CN106648994A (zh) | 一种备份操作日志的方法,设备和系统 | |
CN103235811A (zh) | 一种数据存储方法及装置 | |
US20140337655A1 (en) | Integrated interface system for power-system monitoring and control system | |
CN112667638B (zh) | 动态报表生成方法、装置、终端设备及可读存储介质 | |
US20180239749A1 (en) | Techniques for asynchronous execution of computationally expensive local spreadsheet tasks | |
CN102819537B (zh) | 异构系统中进行数据交换的方法及系统 | |
CN105242993A (zh) | 数据备份方法及系统 | |
CN110941658A (zh) | 一种数据导出方法、装置、服务器及存储介质 | |
CN103488549B (zh) | 多镜像数据的回滚处理系统和回滚处理方法 | |
CN102760212B (zh) | 一种基于存储镜像克隆机制虚拟桌面恶意代码检测方法 | |
CN111651944B (zh) | 核反应堆计算系统 | |
CN107741887A (zh) | 一种组件间的通信交互方法和装置 | |
CN114553859A (zh) | 一种bmc配置管理方法、装置、电子设备及存储介质 | |
CN110363515B (zh) | 权益卡账户信息查询方法、系统、服务器及可读存储介质 | |
CN112527890B (zh) | 区块链数据同步方法、装置以及计算机设备 | |
CN106776035B (zh) | 实现跨系统多单据算法的对接方法、系统及请求异构系统 | |
JP7305898B2 (ja) | 操作応答方法、操作応答装置、電子機器及び記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |