数据处理系统的同步的制作方法

文档序号:6374766阅读:162来源:国知局
专利名称:数据处理系统的同步的制作方法
技术领域
本发明的领域涉及在包括经由互连连接的多个设备的系统中的数据处理的领域,并且具体地,涉及同步该分布式系统内不同组件的方式。
背景技术
包括由一个或多个互连所互连的许多设备的分布式系统是已知的。流经这些互连的事务(transaction)请求可能采用不同的路线并且可能以不同方式被延迟。因此,事务的顺序有相当大的机会改变。取决于事务,这可能是或者不是问题,但是在某些情况下,它可导致可具有无法预料结果的程序顺序的改变。因此,在事务请求流中某些点处系统的同步是重要的,并且事务请求生成器可具有生成某些同步请求的能力,所述同步请求可通过系统被多播,以便确定更早事务的进展。当对全部多播的同步请求的响应已被接收时,事务请求生成器将知道先前的事务已到达所请求的点并且发出随后的事务请求是安全的。这种同步请求的一个示例是屏障请求。这些被生成以便相关于屏障请求维持事务请求的顺序。因此,事务请求生成器可在事务请求流中的某个点生成屏障,其中重要的是在随后的事务请求被发出之前先前的事务请求已完成或至少到达了系统中的要求点。因此,所有待决(pending)事务请求被发出并且多个屏障事务被生成和发送以便跟随其进展正在被监视的事务请求。当对全部多个屏障事务的响应被接收到时,然后随后的事务请求可被发出。在随着事务请求生成器和接收方的数量增加而复杂性增大的系统中,在每一个事务请求生成器中生成和分发同步请求并且收集它们的响应所需的电路是庞大的。特别是,事务生成器必须知道同步请求应当被发送到的全部目的地,它必须发送屏障并且跟踪来自每一个目的地的响应。期望能够提供大型分布式系统的同步,而不用过度增加系统组件的硬件。

发明内容
本发明的第一方面提供了一种同步设备,用于响应于多个不同类型的系统同步请求之一的接收来确定通过数据处理系统发送的至少事务请求的子集的进展,所述数据处理系统具有多个设备(包括用于生成事务请求的多个事务请求生成设备、用于接收事务请求的多个接收设备、所述同步设备和用于互连这些设备中的至少一些设备的至少一个互连);所述系统同步请求包括多个事务生成设备之一所生成的请求并且查询至少事务请求的子集的进展;所述同步设备包括:至少一个端口,用于接收来自数据处理系统的请求以及向数据处理系统输出请求和响应;系统同步请求标识电路,用于标识在所述至少一个端口处接收的系统同步请求的类型;缓冲电路,用于存储所接收的要被输出到多播电路的待决系统同步请求;仲裁电路,用于选择待决系统同步请求中的下一个以用于输出到所述多播电路;所述多播电路,被配置为响应于系统同步请求的接收来生成多个同步请求并且输出所述多个同步请求以用于多播到数据处理系统内设备中的至少一些设备,所述同步请求查询在所述至少一些设备中的各个设备的每一个处至少事务请求的子集的进展;收集电路,用于收集对所述多个同步请求的响应,所述响应确认所查询的进展已经在所述各个设备处出现,所述收集电路被配置为响应于已接收到所述系统同步请求中的一个来确定何时生成对全部所述多个同步请求的响应以及响应于确定已接收到全部所述响应来输出对所述系统同步请求中的所述一个的响应。本发明认识到大型分布式系统中系统同步的硬件和带宽需求的增加问题。本发明通过提供可通过生成所需的同步请求(然后被多播到有关设备)来响应来自各个事务生成设备的多个不同系统同步请求的中央同步设备来解决此问题。该同步设备也收集对它多播的同步请求的响应,并且当已收集了全部响应时,该同步设备响应发出系统同步请求的事务生成设备。通过中央化同步,各个事务生成器不需要它们自己的同步电路,它们仅需要生成系统请求并且将其发送到该特定设备以及等待响应。因此,请求生成和多播电路和响应收集电路可位于可由许多事务生成器使用的这一个设备中。此外,响应多播同步请求的设备不需要识别系统同步请求的源以及向相应设备发送响应,它们仅仅向同步设备发送对同步请求的响应,由此有助于这些响应的路由。此外,通过提供同步设备内的仲裁电路,在该中央设备中给出优先级,可控制不同同步请求的顺序,并且可解决潜在的冲突。这避免了如现有技术的设备中所存在的各个事务生成器和接收设备用复杂握手机制控制流的需要。应当注意,事务生成设备是生成事务的任何设备,因此它可以是系统中的主控或发起设备,例如数据处理器或图形引擎。接收设备是接收事务请求的任何设备,它可以不是事务请求的最终目的地,而是可以是中间设备,例如一致性控制器或另一个互连。在某些实施例中,所述仲裁电路被配置为根据系统同步请求的类型和系统同步请求的源来选择待决系统同步请求中的下一个以用于输出到所述多播电路。系统同步请求的顺序排列和优先级区分可根据请求的类型和源以及所存储的优先级算法来由仲裁电路决定。来自不同源的系统同步请求之间的冲突可由仲裁电路识别并解决,而不需要数据处理系统中的复杂流程控制。在某些实施例中,所述同步设备被配置为除了执行系统同步请求之外还执行多个系统维持请求,所述仲裁电路被配置为选择系统维持请求和统同步请求中的下一个以便输出到所述多播电路。除了集中地控制同步请求,在某些实施例中,同步设备也可接收和处理其它系统维持请求。这些通常是不针对存储器的请求,并且包括存储器维持请求、配置请求和错误处理请求。这些请求需要由针对同步请求的电路相类似的电路处理,因为它们是多播的并且响应被收集。此外,它们中的某些可涉及同步请求,并且因此,如果相同的设备执行这些请求则是有利的,因为这简化了对这些请求的流程控制。尽管系统同步请求可以许多方式跟踪至少事务请求的子集的进展,但是在某些实施例中,系统同步请求请求确认事务请求已完成。尽管进展被查询的事务请求的子集可以是任意子集,但是在某些实施例中,该子集是生成系统同步请求的事务请求生成设备先前输出的事务请求。
通常,生成系统同步请求的设备在它发出可能依赖于较早请求的系统广泛影响的随后请求之前希望知道它较早所生成的请求进展如何。因此,通常,事务请求的子集是生成系统同步请求的设备已发出的那些事务请求中的至少一些事务请求。在某些实施例中,所述系统同步请求请求确认至少事务请求的子集已在它们的目的设备处被接收。尽管在某些情况下,希望知道事务请求是否已完成,即已在最终目标处执行了它们预期的动作。在其它情况下,知道它们已在其目的设备处被接收就足够了,因为可能这对于要发出的随后的事务请求是足够的。这例如可能是这样的情况,其中目的设备不允许重排序所接收的事务请求。在某些实施例中,所述同步设备包括数据存储装置,以用于存储标识同步请求被多播到达的至少一些设备的至少一个目标列表。响应于系统同步请求而同步请求被多播到达设备可被存储为同步设备内的列表。这可以是集中存储信息并且允许同步请求多播到适当设备的便利方式。知道要被跟踪的先前事务已被发送到哪以及因此将所生成的同步请求多播到哪可能是复杂的问题,在同步设备内存储基于系统的连接和路线的列表是向同步设备提供该信息的便利方式。这还允许流控制,在任何一个时间也许仅允许一定数量的系统同步请求被处理,这避免向目标洪泛用能具有矛盾需求的同步消息。在某些实施例中,所述数据处理系统包括安全处理域和非安全处理域,所述数据存储装置是从所述非安全处理域不可访问的安全数据存储装置。在该情况下,如果设备的目标列表被安全地存储可按需从安全系统更新列表,但是不能在非安全域中更新列表,这可是有利的。这避免了用户偶然地更新这些列表(这可造成系统故障)。在某些实施例中,所述数据存储装置包括多个目标列表,至少一个目标列表对应于多个事务生成设备中的至少一个事务生成设备,使得响应于来自对应于列表之一的多个事务生成设备之一的系统同步请求的接收,所生成的同步请求被发送到所对应的目标列表中的至少一些设备。同步请求被发送到达的设备将取决于生成系统同步请求的事务生成设备。这是因为不同的事务生成设备可被配置和路由以与某些其它设备交互,并且因此,同步请求应当仅被发送到它们与之交互的设备。因此存储对应于这些事务生成设备的多个列表是方便的,同步设备能够在确定系统同步请求来自哪里时选择所需列表。在某些实施例中,所述同步设备响应于所述安全域中生成的更新信号的接收来更新所述至少一个目标列表中的至少一个。如果目标列表可被更新那么可能是有利的。事务生成设备与之通信的设备可随时间改变。例如,设备的路由算法可被重编以使得各个设备可位于不同域中并且与不同设备通信,并且/或者它们与之通信的设备可被断电。集中存储列表使得在需要时方便和有效地执行更新。在某些实施例中,所述同步设备被配置为处理许多不同类型的系统同步请求,所述数据存储装置被配置为存储多个目标列表,至少一个目标列表对应于系统同步请求的类型中的至少一个类型和所述多个事务生成设备中的至少一个事务生成设备,使得响应于来自所述多个事务生成设备中至少一个事务生成设备的至少一个类型的系统同步请求的接收,所生成的同步请求被发送到所对应的目标列表中的至少一些设备。在存在不同类型的系统同步请求的情况下,那么需要接收多播同步请求的设备可依赖于同步请求的类型,并且因此如果在数据存储装置中存在取决于系统同步请求类型的目标列表则可能是有利的。在某些实施例中,可存在用于每个事务生成设备和用于事务生成设备可发出的每种类型的系统同步请求的目标列表。在某些实施例中,所述系统同步请求包括同步屏障事务请求、存储器维持同步请求以及完成和暂停处理请求中的至少一个。系统同步请求可包括查询事务请求进展的许多不同请求。在某些情况下,它们可是同步屏障事务请求,并且在其它情况下可能是存储器维持同步请求,而在另外其它的情况下,它们可以是可在断电或重配置请求之前被执行的完成和暂停处理请求。在某些实施例中,响应于包括同步屏障事务请求的系统同步请求,所述多播电路被配置为生成多个屏障事务请求作为所述多个同步请求,所述多个屏障事务请求请求所述至少一某些设备确认生成所述同步屏障事务请求的事务生成设备所发出的任何待决事务请求已完成,对所述多个屏障事务请求的响应表示所述待决事务请求已完成。如果系统同步请求是同步屏障事务请求,那么同步设备将发出屏障事务请求作为多个同步请求。这些屏障事务请求将被发送到有关设备并且将在它们相关的先前的至少事务的子集已完成时进行响应。因此,当对全部屏障事务请求的响应已在同步设备处被接收时,同步可响应。在某些实施例中,响应于包括存储器维持同步请求的系统同步请求,所述同步请求包括查询所述事务生成设备发出的多个存储器维持操作请求的进展的请求,对所述多个同步请求的响应表示所述各个设备已完成了所述存储器维持操作请求。存储器维持同步请求也是监视操作进展的请求。在该情况下,它们查询存储器维持操作的进展。例如,如果表格后备缓冲器正在多个设备中被更新,那么存储器维持同步请求可被用于确保在发出使用这些表的随后事务之前,在每个设备中完成了更新。在该情况下,被查询的设备通常将是具有与相同存储器区域相关的表格后备缓冲器的其它事务生成器设备。在某些实施例中,响应于包括完成和暂停处理请求的系统同步请求,所述多播电路被配置为生成请求确认所述各个设备已完成了任何待决事务请求的请求作为所述多个同步请求。当同步系统同步请求是完成和暂停的处理请求时,那么重要的是,已知设备正执行的事务请求已完成。在该情况下,事务生成器设备和接收设备可能正被查询,在该情况下,可存在排序需求并且同步设备可先向事务生成器设备输出完成和暂停处理请求,并且仅在接收了它们已完成了处理的响应时,其将完成和暂停处理请求输出到接收设备。本发明的第二方面提供了一种事务生成设备,其包括:事务生成器,被配置为生成多个事务请求以用于输出到多个设备;系统同步请求生成器,被配置为生成多个不同类型的系统同步请求,所述系统同步请求查询所述多个设备执行的至少事务请求的子集的进展;输出端口,用于将所述系统同步请求输出到同步设备;其中所述事务生成器被配置为不输出任何另外的事务请求,直到已从所述同步设备接收到对所述系统同步请求的响应为止。中央同步设备的提供使得通常作为发起者设备的事务生成设备(例如处理器核心、图形引擎、DMA控制器)能够查询数据处理系统中的事务请求的进展,不用多播同步请求本身,而是仅仅通过生成发送到同步设备的单个系统同步请求并且等待响应。本发明的第二方面提供的事务生成设备包括:事务生成器,被配置为生成多个事务请求以用于输出到多个设备;系统同步请求生成器,被配置为生成多个不同类型的系统同步请求,所述系统同步请求查询所述多个设备执行的至少事务请求的子集的进展;输出端口,用于将所述系统同步请求输出到同步设备;其中所述事务生成器被配置为不输出任何另外的事务请求,直到已从所述同步设备接收到对所述系统同步请求的响应为止。本发明的第三方面包括数据处理系统,所述数据处理系统包括多个设备,所述多个设备包括多个事务请求生成设备(所述事务请求生成设备中的至少一个是根据本发明第二方面的所述的事务请求生成设备)、用于接收事务请求的至少一个接收设备和同步设备;所述同步设备包括:至少一个端口,用于接收来自所述事务请求生成设备的事务请求;系统同步请求标识电路,用于标识在所述至少一个端口处接收的系统同步请求的类型;缓冲电路,用于存储所接收的要被输出到多播电路的系统同步请求;仲裁电路,用于选择待决系统同步请求中的下一个以用于输出到所述多播电路;所述多播电路,其被配置为响应于系统同步请求的接收来生成多个同步请求并且输出所述多个同步请求以用于多播到所述数据处理系统内的设备中的至少一某些设备,所述同步请求查询在所述至少一些设备中各个设备的每一个处至少事务请求的子集的进展;收集电路,用于收集对所述多个同步请求的响应,所述响应确认所查询的进展已经在所述各个设备处出现,所述收集电路被配置为响应于已接收到所述系统同步请求中的一个来确定何时生成对全部所述多个同步请求的响应以及响应于确定已接收到全部所述响应来输出对所述系统同步请求中的所述一个的响应。在该系统中,接收设备不需要涉及流控制,它们也不需要具有任何优先级区分或仲裁机制来从来自不同生成器的共同待决同步请求进行选择,因为同步设备已执行该任务。本发明的第四方面提供了一种确定通过数据处理系统发送的至少事务请求的子集的进展的方法,所述数据处理系统具有多个设备(包括多个事务请求生成设备、用于接收事务请求的多个接收方设备、同步设备和用于互连这些设备中的至少一些所述设备的至少一个互连);所述方法包括步骤:接收多个系统同步请求,所述系统同步请求查询从所述多个事务请求生成设备之一接收的至少事务请求的子集的进展,所述系统同步请求中的不同类型的至少一些系统同步请求查询不同事务请求的子集的进展;选择所接收的待决系统同步请求中的一个以用于输出到所述多播电路;接收所选择的待决系统同步请求,生成多个同步请求并且将所述多个同步请求多播到所述数据处理系统内的设备中至少一些设备,所述同步请求查询在各个设备中每一个处至少事务请求的子集的进展;收集对所述多个同步请求的响应;确定何时对从所述系统同步请求中的一个生成的全部所述多个同步请求的响应已被接收,并且响应于确定全部所述响应已被接收而输出对所述系统同步请求中的所述一个的响应。本发明的第五方面提供了一种查询事务请求的进展的方法,包括步骤:生成多个事务请求以用于输出到多个设备;生成多个系统同步请求,所述系统同步请求查询所述多个设备执行的至少事务请求的子集的进展,所述多个系统同步请求中的至少一些是不同类型的;将所述系统同步请求输出到同步设备;并且不输出任何另外的事务请求,直到已从所述同步设备接收到对所述系统同步请求的响应为止。本发明的第六方面提供了一种同步装置,用于响应于多个不同类型的系统同步请求之一的接收来确定通过数据处理系统发送的至少事务请求的子集的进展,所述数据处理系统具有多个设备装置(包括用于生成事务请求的多个发起者设备装置、用于接收事务请求的多个接收设备装置、所述同步装置和用于互连这些设备装置中的至少一些设备装置的至少一个互连装置);所述系统同步请求包括所述多个事务生成设备之一所生成的请求并且查询至少事务请求的子集的进展;所述同步装置包括:至少一个端口装置,用于接收来自所述数据处理系统的请求并且向所述数据处理系统输出请求和响应;系统同步请求标识装置,用于标识在所述至少一个端口处接收的系统同步请求的类型;缓冲装置,用于存储所接收的要被输出到多播电路的待决系统同步请求;仲裁装置,用于选择待决系统同步请求中的下一个以用于输出到所述多播电路;多播装置,用于响应于系统同步请求的接收来生成多个同步请求并且输出所述多个同步请求以便多播到所述数据处理系统内的设备装置中的至少一些设备装置,所述同步请求查询在各个设备装置中的每一个处至少事务请求的子集的进展;收集装置,用于收集对所述多个同步请求的响应,所述响应确认所述查询的进展已经在所述各个设备装置处出现,所述收集装置用于响应于已接收到所述系统同步请求之一来确定何时生成对全部所述多个同步请求的响应以及响应于确定已接收到全部所述响应来输出对所述系统同步请求中的所述一个的响应。本发明的第七方面提供了一种发起者设备装置,包括:事务生成器装置,用于生成多个事务请求以用于输出到多个设备;系统同步请求生成器装置,用于生成多个不同类型的系统同步请求,所述系统同步请查询所述多个设备执行的至少事务请求的子集的进展;输出端口装置,用于将所述系统同步请求输出到同步设备;其中所述事务生成器装置被配置为不输出任何另外的事务请求,直到已从所述同步设备接收到对所述系统同步请求的响应为止。根据应结合附图阅读的说明性实施例的以下详细描述,本发明的上面和其它目的、特征和优点将是明显的。


图1示出了根据本发明实施例的数据处理系统;图2示出了根据本发明实施例的同步设备;图3示出了根据本发明实施例的事务请求生成器设备;图4示出了根据本发明实施例的流经数据处理系统的同步请求;图5示出了根据本发明实施例的存储器维持同步请求通过数据处理系统的流;图6a示出了根据本发明实施例的流经数据处理系统的静默同步请求;图6b示出了示出响应于静默和非静默同步请求的事务请求流的状态空间流程图;图7示出了根据本发明实施例的示出响应于数据处理系统中的存储器维持同步请求的在节点之间的事务流的状态空间流程图;图8示出了根据本发明实施例的示出在事务生成设备处执行的方法中的步骤的流程图;图9示出了根据本发明实施例的同步设备执行的方法中的步骤;图10示出了根据本发明实施例的可一般地处理系统维持请求的同步设备。
具体实施例方式图1示意性地示出了根据本发明实施例的数据处理系统5。数据处理系统5包括许多事务生成器设备,所述事务生成器设备可被视为系统中的请求节点并且在这里被示出为节点RWc^RNpRN2到RNn。这些经由互连10与各种本地节点HNpHNpHNyHN3和HN4互连。这些可被视为中间设备并且可以是系统中的一致性的点或序列化的点。它们例如可以是一致性控制器。这些本地节点例如与存储控制器(MC)或与输入/输出空间连接。事务请求从请求节点通过互连10经由本地节点传递到接收方设备。对于事务请求在互连设备10中重排序并且经由不同路线到达接收方设备存在某些规定,以使得事务可相互超过(overtake)。这意味着确保某些事务请求在其它事务请求发出之前具有一定进展的同步请求变得重要。为了解决该问题,该数据处理系统包括同步设备20。该同步设备被视为处于混杂节点MN处并且响应于请求节点RN之一生成的系统同步请求来生成同步请求并将它们多播到有关设备。然后它从这些设备收集对这些同步请求的响应并且当它收集了全部响应时向它从其接收了系统同步请求的请求节点RN发送单个响应。这使得请求节点RN生成单个同步请求并且等待单个响应。处理这些同步请求和响应所需的逻辑电路集中于同步设备20内。图2更详细地示出了同步设备20。因此,在该实施例中,同步设备20具有检测在输入端口 25处接收的已由系统的事务生成器设备之一发出的系统同步请求的系统同步请求检测器30。这些所接收的待决系统同步请求在输出到同步请求生成器37之前存储在缓冲器32中。仲裁电路34标识所接收的系统同步请求的类型和发送该系统同步请求的事务生成器并且在同步设备20有能力处理下一个系统同步请求时选择系统同步请求以输出到生成器37。在本发明的实施例中,多个系统同步请求可在任何一个时间被处理,并且当一个完成了时,响应被生成并且被输出到仲裁电路34,该仲裁电路34然后选择下一个。在该示例中,在任何一个时间仅处理一个。仲裁电路34识别可能在来自不同事务生成器的同步请求之间的潜在冲突,并且还确定任何待决系统同步请求的优先级并选择系统同步请求以输出。当向同步生成器37输出系统同步请求时,同步设备20将访问对应于要被输出的系统同步请求的类型和发送该系统同步请求的事务生成设备的数据存储装置35内的目标列表。然后它将使用同步请求生成器37生成足以发送到所识别的目标列表中列出的每个设备的许多同步请求。然后,同步请求多播器39将所生成的同步请求发送给目标列表中列出的设备。响应收集器40内的计数器41将用同步请求多播器39发出的同步请求的数量更新。然后,同步设备20将等待对这些个体同步请求的响应并且响应收集器40将接收这些响应并且针对每一个所接收的响应递减计数器41。 当计数器41到达零时,响应生成器45将生成对系统同步请求的响应并且将该响应发送到发送系统同步请求的事务生成设备。因此,事务生成设备仅需要生成单个系统同步请求并且等待对该单个系统同步请求的响应。它不需要具有任何多播或响应收集电路,如果它自己管理同步的话则需要这些电路。当响应已发出后,系统同步请求的处理已完成并且可由仲裁电路34选择待决系统同步请求。在该实施例中,存在输入端口 25用于接收请求和响应并且用于输出请求和响应,并且存在从处理系统接收更新信号的另一个端口 26。该更新信号可更新同步请求应当被发送到的设备的目标列表。能够更新目标列表是重要的,因为在系统的一部分断电时,或者在设备域以及它们的互连的某些重配置出现时,事务请求被发送到并且因此同步请求需要到达的设备可能改变了。在某些实施例中,如果存储目标列表的数据存储装置是安全数据存储装置以使得它可仅根据安全域中的处理操作被更新,则可能是有利的。这将防止用户意外地更新该目标列表并且确保它仅由系统更新。图3示出了根据本发明实施例的事务生成设备50的示例。在该实施例中事务生成设备50是处理装置。它包括生成事务的处理核心52,并且这些事务被存储在外出事务缓冲器55中。仲裁器60选择这些外出事务来发送并且待决事务被存储在待决事务缓冲器65中,等待表示它们已由它们的目的设备接受或完成的响应。还存在在事务请求流中某点处生成系统同步请求的系统同步请求生成器70,其中重要的是,先前的事务请求在随后的事务请求发出之前完成。响应于这样的系统同步请求被生成,仲裁器60将发送缓冲器55中的全部外出事务,并且然后当它们已完成时,它将发出系统同步请求并且在从响应检测器75检测到响应之前将不再发出另外的事务。当对系统同步请求的响应检测到时,然后仲裁器60将允许输出另外的事务。图4示出了示出事务请求流的数据处理系统的示例。因此,事务请求生成器50将生成将由各个接收方设备80、82和84接收的各种事务请求。然后事务生成器50将向同步设备20发送系统同步屏障请求并且在它接收到来自系统同步屏障的响应之前将不再发送另外的事务请求。同步设备20确定事务生成器50与来自所存储目标列表的接收方80、82和84通信并且因此它生成屏障并且将它们多播到这些设备中的每一个。当每一个设备响应于屏障时,然后同步设备20响应从事务生成器50接收的系统同步屏障,此时事务生成器50将继续发送事务请求。图5示出了在事务生成器50生成到同步设备20的系统存储器维持同步请求时,根据本发明实施例的数据处理系统中事务流的替代示例。该请求正在请求存储器维持操作的进展。因此,同步设备20根据目标列表确定哪些事务生成器将接收存储器维持操作并且它向这些中的一个发送存储器维持同步请求。在该示例中,这些是事务生成器52和54。当来自这些中每一个的响应已被接收时,同步设备20响应系统存储器维持同步请求并且然后事务生成器50知道全部的存储器维持操作已由设备52和54执行并且它可继续发送事务请求。图6a示意性示出了根据本发明实施例的数据处理系统中的静默请求流。静默请求是查询设备何时完成了正执行的待决事务请求并且防止它们输出另外的事务请求的请求。在该示例中,发起者设备50发出系统静默同步请求并且同步设备20响应于此生成静默同步请求并且将这些请求多播到系统中的各种设备。这些设备可具有相互依赖关系,并且因此,可存在与同步设备20发送的静默请求相关联的某些定时约束。这将在图6b更详细地示出。如从图6a可见的,接收方和发起者设备可接收这些静默请求,并且因此,同步设备20查看适当目标列表并且将静默请求以适当顺序发送到适当设备。然后,它等待响应并且当它已从全部设备接收到响应时它向设备50发送响应,以使得它知道那些设备已完成了正处理的待决事务请求,并且将不再发送另外的事务请求。然后,它可发出要求该知识的请求,例如断电请求或重配置请求。图6b示出了示出当系统静默时发生的步骤的状态空间流程图。因此,系统同步静默请求可由RN。发送到MN处的同步设备。然后,MN将向RN1和RN2发出静默请求并且将等待它们的响应。当它接收到它们的响应时,它将向HN发送静默并且等待来自HN的响应。以该顺序来完成,因为RN1和RN2可向例如可以是一致性控制器的本地节点HN发送事务请求。因此,如果本地节点HN与请求者节点在相同时间接收静默请求并且完成其待决事务并且很快响应时,它可能随后接收来自正完成其事务请求的RN1或RN2之一的事务请求并且它将不能处理此。因此,为了确保系统正确地操作,事务生成器在接收方设备接收它们的静默请求之前被静默并且响应同步设备。这里应当理解,更复杂的流控制可被适当地使用,其中MN适当选择首先静默的请求者之后为其它请求者的不同组合。一旦从全部设备接收到到响应,那么响应被发送到RNtl以告知它全部所需的设备已被静默。静默请求例如可在断电期间,或在用于互连的路由表正在更新期间被使用。如果人们希望改变路由表,那么当此发生时,应当不发送事务请求。因此,全部的待决事务请求必须被完成,并且因此这些设备被静默以使得它们不发送另外的事务请求。路由表然后被重编并且同步设备20中的相应目标列表被更新。如果因为数据处理系统的部分断电而系统静默请求被发送,那么目标列表也可在同步设备20中被更新。一旦低功率模式完成或者路由表已被重编,那么系统可被解除静默并且系统解除静默需求被发送。这在同步设备MN处被接收并且它可将其解除静默信号同时发送到所有适当的设备。这里没有定时要求,因为它们都可被一起发送。一旦已从它们全部接收到响应,则响应被发送到事务请求生成器RNtl,该事务请求生成器RNtl然后可继续以正常内容操作。图7示出了示出事务请求定时的状态空间流程图。这表示系统同步请求在存储器维持操作请求之后发送。例如,可存在存储器维持单元,存储器维持单元使用特定转换后备缓冲器来将处理器发送的指令的虚拟地址转换为处理系统内存储的数据使用的物理地址。存储器维持操作可更新这些转换表并且当随后的指令使用新的转换时,重要的是知道访问相同存储空间的全部转换后备缓冲器也被更新了。因此,为了确保此发生,需要同步请求。在该情况下,系统屏障同步请求可被发送以确保全部的待决事务请求完成。因此,在该示例中,响应于此,混杂节点MN处的同步设备将生成屏障并且将其发送到有关的接收方HNtl和HN115对这些屏障的响应将从HNtl和HN1被发送并且一旦全部响应被接收,则丽处的同步设备将响应系统屏障同步请求。当RNtl接收到该响应时,它知道待决事务请求已完成,但是它不知道在屏障响应接收之前其请求已被发送的所发送的任何存储器维持操作(并且这里未示出)已完成。这些存储器维持操作可能正由事务生成器设备执行,而事务请求正由接收方设备执行。因此,然后事务生成器将向混杂节点MN处的同步设备发送系统存储器维持同步请求。然后,该设备将向与生成存储器维持同步请求的设备RNtl访问相同的存储空间的具有表格后备缓冲器的所有事务生成器设备发送存储器维持同步请求。在该情况下,这将是RN115当对该同步请求的响应在同步设备处被接收时,同步设备知道全部存储器维持操作已执行并且在该情况下,表格后备缓冲器是一致的并且对系统存储器维持请求的响应可被发送以及事务生成器RN。可发送另外的事务请求。在图7的状态空间图中,存储器维持操作请求未示出。这些可由RNtl输出,并且当对它们全部的响应已被接收时,存储器维持同步请求将被输出。然而,在某些实施例中,这些存储器维持操作请求也可由同步设备而不是事务生成器本身管理。在该情况下,RNtl将请求要被执行的这些操作的序列的系统存储器维持请求输出到同步设备,该同步设备将生成这些请求中的一些并且将它们输出到根据目标列表所确定的所需设备。在该情况下,存储器维持请求的序列的输出和排序将由MN处的同步设备控制并且响应于它们都已被接收,响应被发送到RNtl,然后RNO将发出系统存储器维持同步请求,该系统存储器维持同步请求将查询何时全部维持操作已被完成。图7中所示的状态空间流程图中的事务生成器RNtl处执行的方法步骤在图8中示出。初始地,事务生成器确定已发出的全部待决事务。当它们具有屏障时,系统同步请求被生成并且被发送到同步设备。对该屏障的响应被等待并且当该响应已被接收时,屏障生成器设备生成系统存储器维持请求并且将该系统存储器维持请求发送到同步设备。然后它将等待对系统存储器维持请求的响应,并且当该响应已被接收时,它知道存储器维持操作和全部先前的事务请求完成并且它可发出另外的事务请求。图9示出了根据本发明实施例的同步设备处执行的方法的流程图。响应于接收系统同步请求,同步设备将其存储在缓冲器中,并且确定它的来源和类型。当同步设备有能力处理下一个同步请求时,由仲裁电路依赖于它的来源类型和当前正在被处理的其它请求来选择待决同步请求之一。然后,它将选择对应于该来源和类型的目标设备的列表。同步请求的来源是生成该同步请求的特定事务生成器设备,而类型是要被执行的同步的类型。然后,同步设备将接收来自同步请求的响应并且将确定何时来自列表中全部目标设备的响应都已接收。可使用计数器实现此,该计数器用所输出的同步请求的数量来设置并且每次响应被接收时递减。当全部响应已被接收时,它将生成并且输出对系统同步请求的响应。在某些实施例中,除了接收和处理系统同步请求,同步设备20也可处理其它系统维持请求,即不针对于存储器的请求,例如错误处理请求、存储器维持请求和配置请求。图10示出了类似于图2的设备的同步设备20,但是其配置为接收另外的系统维持请求并进行仲裁。因此,同步设备20包括接收和标识系统同步请求和其它系统维持请求的系统维持请求检测器。这些然后被存储在缓冲器32中,并且仲裁器34选择一个以输出到请求生成器和多播器38。在该实施例中,请求生成器和多播器38可在任何一个时间处理四个系统维持请求并且四个当前被处理的请求被存储在存储器33中。响应于接收到用于由仲裁器34处理的新的系统维持请求,请求生成器根据从目标列表的存储装置35检索出的与该系统维持请求有关的目标列表来确定需要生成多少个请求以及这些请求需要被发送到哪里。然后用于该系统维持请求的计数器42用该数量更新,并且响应收集器40收集对当前活动的系统维持请求中的每一个的响应,标识它们正响应于哪个请求并且递减适当的计数器。当计数器到达零时,然后信号被发送到缓冲器33,该缓冲器33清除那里存储的系统维持请求并且向仲裁器34输出信号以请求新的系统维持请求。以该方式,同步设备20可在任何一个时间执行四个系统同步请求,仲裁器34确定哪一个应当是下一个要执行的。尽管已在这里参考附图详细描述了本发明的说明性实施例,但是应当理解,本发明不限于那些精确的实施例,并且可由本领域技术人员在其中实现各种改变和修改,而不会偏离如所附权利要求限定的本发明的范围和精神。例如,可用独立权利要求的特征产生随后的从属权利要求的特征的各种组合,而不会偏离本发明的范围。
权利要求
1.一种同步设备,用于响应于多个不同类型的系统同步请求之一的接收来确定通过数据处理系统发送的至少事务请求的子集的进展,所述数据处理系统具有多个设备,包括用于生成所述事务请求的多个事务请求生成设备、用于接收所述事务请求的多个接收设备、所述同步设备和用于互连这些设备中的至少一些设备的至少一个互连; 所述系统同步请求包括所述多个事务生成设备之一所生成的请求并且查询至少事务请求的子集的进展; 所述同步设备包括: 至少一个端口,用于接收来自所述数据处理系统的请求,以及向所述数据处理系统输出请求和响应; 系统同步请求标识电路,用于标识在所述至少一个端口处接收的系统同步请求的类型; 缓冲电路,用于存储所接收的要被输出到多播电路的待决系统同步请求; 仲裁电路,用于选择所述待决系统同步请求中的下一个以用于输出到所述多播电路; 所述多播电路,被配置为响应于系统同步请求的接收来生成多个同步请求并且输出所述多个同步请求以用于多播到所述数据处理系统内的设备中的至少一些设备,所述同步请求查询在所述至少一些设备中的各个设备的每一个处至少事务请求的子集的所述进展; 收集电路,用 于收集对所述多个同步请求的响应,所述响应确认所查询的进展已经在所述各个设备处出现,所述收集电路被配置为响应于已接收到所述系统同步请求中的一个来确定何时生成对全部所述多个同步请求的响应以及响应于确定已接收到全部所述响应来输出对所述系统同步请求中的所述一个的响应。
2.根据权利要求1所述的同步设备,其中,所述仲裁电路被配置为根据系统同步请求的类型和系统同步请求的源来选择待决系统同步请求中的下一个以用于输出到所述多播电路。
3.根据权利要求1所述的同步设备,所述同步设备被配置为除了执行系统同步请求之外还执行多个系统维持请求,所述仲裁电路被配置为选择系统维持请求和系统同步请求中的下一个以便输出到所述多播电路。
4.根据权利要求1所述的同步设备,其中,所述系统同步请求请求确认所述至少事务请求的子集已完成。
5.根据权利要求4所述的同步设备,其中,其进展被所述系统同步请求查询的所述至少事务请求的子集包括生成所述系统同步请求的事务请求生成设备先前输出的至少一些事务请求。
6.根据权利要求5所述的同步设备,其中,所述系统同步请求请求确认所述至少事务请求的子集已在它们的目的设备处被接收。
7.根据权利要求1所述的同步设备,所述同步设备包括数据存储装置,以用于存储标识所述同步请求被多播到达的所述至少一些设备的至少一个目标列表。
8.根据权利要求7所述的同步设备,其中,所述数据处理系统包括安全处理域和非安全处理域,所述数据存储装置是从所述非安全处理域不可访问的安全数据存储装置。
9.根据权利要求7所述的同步设备,所述数据存储装置包括多个目标列表,至少一个目标列表对应于所述多个事务生成设备中的至少一个事务生成设备,使得响应于来自对应于所述列表之一的所述多个事务生成设备中的一个事务生成设备的系统同步请求的接收,所生成的同步请求被发送到所对应的目标列表中的至少一些设备。
10.根据权利要求7所述的同步设备,其中,所述同步设备响应于所述安全域中生成的更新信号的接收来更新所述至少一个目标列表中的至少一个。
11.根据权利要求7所述的同步设备,所述数据存储装置被配置为存储多个目标列表,至少一个目标列表对应于所述系统同步请求的类型中的至少一个类型并且对应于所述多个事务生成设备中的至少一个事务生成设备,使得响应于来自所述多个事务生成设备中至少一个事务生成设备的至少一个类型的系统同步请求的接收,所生成的同步请求被发送到所对应的目标列表中的至少一些设备。
12.根据权利要求1所述的同步设备,其中,所述系统同步请求包括同步屏障事务请求、存储器维持同步请求以及完成和暂停处理请求中的至少一个。
13.根据权利要求12所述的同步设备,其中,响应于包括所述同步屏障事务请求的系统同步请求,所述多播电路被配置为生成多个屏障事务请求作为所述多个同步请求,所述多个屏障事务请求请求所述至少一些设备确认生成所述同步屏障事务请求的事务生成设备所发出的任何待决事务请求已完成,对所述多个屏障事务请求的响应表示所述待决事务请求已完成。
14.根据权利要求12所述的同步设备,其中,响应于包括所述存储器维持同步请求的系统同步请求,所述同步请求包括查询所述事务生成设备发出的多个存储器维持操作请求的进展的请求,对所述多个同步请求的响应表示所述各个设备已完成了所述存储器维持操作请求。
15.根据权利要求12所述的同步设备,其中,响应于包括本地断电请求的系统同步请求,所述多播电路被配置为生成请求确认所述各个设备已完成了任何待决事务请求的请求作为所述多个同步请求。
16.—种事务生成设备,包括: 事务生成器,被配置为生成多个事务请求以用于输出到多个设备; 系统同步请求生成器,被配置为生成多个不同类型的系统同步请求,所述系统同步请求查询所述多个设备执行的至少事务请求的子集的进展; 输出端口,用于将所述系统同步请求输出到同步设备;其中 所述事务生成器被配置为在从所述同步设备接收到对所述系统同步请求的响应之前不输出任何另外的事务请求。
17.一种数据处理系统,包括: 多个设备,包括多个事务请求生成设备,其中,所述事务请求生成设备中的至少一个是根据权利要求16所述的事务生成设备),包括用于接收所述事务请求的至少一个接收设备和同步设备; 所述同步设备包括: 至少一个端口,用于接收来自所述事务请求生成设备的事务请求; 系统同步请求标识电路,用于标识在所述至少一个端口处接收的系统同步请求的类型; 缓冲电路,用于存储所接收的要被输出到多播电路的系统同步请求;仲裁电路,用于选择待决系统同步请求的下一个以用于输出到所述多播电路; 所述多播电路,被配置为响应于系统同步请求的接收来生成多个同步请求并且输出所述多个同步请求以用于多播到所述数据处理系统内的设备中的至少一某些设备,所述同步请求查询在所述至少一些设备中各个设备的每一个处所述至少事务请求的子集的进展; 收集电路,用于收集对所述多个同步请求的响应,所述响应确认所查询的进展已经在所述各个设备处出现,所述收集电路被配置为响应于已接收到所述系统同步请求中的一个来确定何时生成对全部所述多个同步请求的响应以及响应于确定已接收到全部所述响应来输出对所述系统同步请求中的所述一个的响应。
18.一种确定通过数据处理系统发送的至少事务请求的子集的进展的方法,所述数据处理系统具有多个设备,这多个设备包括多个事务请求生成设备、用于接收事务请求的多个接收设备、同步设备和用于互连这些设备中的至少一些设备的至少一个互连;所述方法包括步骤: 接收多个系统同步请求,所述系统同步请求查询从所述多个事务请求生成设备中的一个所接收的至少事务请求的子集的进展,所述系统同步请求中的不同类型的至少一些系统同步请求查询不同事务请求的子集的进展; 选择所接收的待决系统同 步请求中的一个以用于输出到所述多播电路; 接收所选择的待决系统同步请求,生成多个同步请求并且将所述多个同步请求多播到所述数据处理系统内的设备中至少一些设备,所述同步请求查询在各个设备中每一个处至少事务请求的子集的进展; 收集对所述多个同步请求的响应; 确定何时对从所述系统同步请求中的一个生成的全部所述多个同步请求的响应已被接收,并且响应于确定全部所述响应已被接收而输出对所述系统同步请求中的所述一个的响应。
19.一种查询事务请求的进展的方法,包括步骤: 生成多个事务请求以用于输出到多个设备; 生成多个系统同步请求,所述系统同步请求查询所述多个设备执行的至少事务请求的子集的进展,所述多个系统同步请求中的至少一些是不同类型的; 将所述系统同步请求输出到同步设备;并且 在从所述同步设备接收到对所述系统同步请求的响应之前不输出任何另外的事务请求
20.一种同步装置,用于响应于多个不同类型的系统同步请求之一的接收来确定通过数据处理系统发送的至少事务请求的子集的进展,所述数据处理系统具有多个设备装置,这多个设备装置包括用于生成事务请求的多个发起者设备装置、用于接收事务请求的多个接收设备装置、所述同步装置和用于互连这些设备装置中的至少一些设备装置的至少一个互连装置; 所述系统同步请求包括所述多个事务生成设备之一所生成的请求并且查询至少事务请求的子集的进展; 所述同步装置包括: 至少一个端口装置,用于接收来自所述数据处理系统的请求以及向所述数据处理系统输出请求和响应; 系统同步请求标识装置,用于标识在所述至少一个端口处接收的系统同步请求的类型; 缓冲装置,用于存储所接收的要被输出到多播电路的待决系统同步请求; 仲裁装置,用于选择待决系统同步请求的下一个以用于输出到所述多播电路; 多播装置,用于响应于系统同步请求的接收来生成多个同步请求并且输出所述多个同步请求以便多播到所述数据处理系统内的设备装置中的至少一些设备装置,所述同步请求查询在各个设备装置的每一个处至少事务请求的子集的进展; 收集装置,用于收集对所述多个同步请求的响应,所述响应确认所查询的进展已经在所述各个设备装置处出现,所述 收集装置用于响应于已接收到所述系统同步请求中的一个来确定何时生成对全部所述多个同步请求的响应以及响应于确定已接收到全部所述响应来输出对所述系统同步请求中的所述一个的响应。
21.一种发起者设备装置,包括: 事务生成器装置,用于生成多个事务请求以用于输出到多个设备; 系统同步请求生成器装置,用于生成多个不同类型的系统同步请求,所述系统同步请求查询所述多个设备执行的至少事务请求的子集的进展; 输出端口装置,用于将所述系统同步请求输出到同步设备;其中所述事务生成器装置被配置为在从所述同步设备接收到对所述系统同步请求的响应之前不输出任何另外的事务请求。
全文摘要
公开了数据处理系统的同步。中央化同步设备响应于系统同步请求的接收来确定通过数据处理系统发送的至少事务请求的子集的进展。同步设备包括至少一个端口,用于接收来自数据处理系统的请求以及向数据处理系统输出请求和响应;多播电路,被配置为响应于系统同步请求的接收来生成多个同步请求并且输出多个同步请求以用于多播到数据处理系统内的设备中的至少一些设备,同步请求查询在各个设备的每一个处至少事务请求的子集的进展;收集电路,用于收集对多个同步请求的响应,响应确认所查询的进展已经在各个设备处出现,收集电路被配置为确定何时接收到对全部多个同步请求的响应以及响应于确定已接收到全部响应来输出对系统同步请求的响应。
文档编号G06F17/30GK103106229SQ201210284470
公开日2013年5月15日 申请日期2012年8月8日 优先权日2011年8月8日
发明者潘尼德拉·库玛·曼娜瓦, 詹姆师德·加拉, 拉玛穆尔西·古鲁·普拉萨哈, 迈克尔·艾伦·菲利波 申请人:Arm有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1