用于发起设备向接收设备发送的事务请求的动态资源分配的制作方法

文档序号:6375150阅读:145来源:国知局
专利名称:用于发起设备向接收设备发送的事务请求的动态资源分配的制作方法
技术领域
本发明的领域涉及数据处理系统,并且尤其涉及具有向许多接收者设备发送事务请求的许多发起者设备的系统以及用于执行这些事务请求的接收者设备内的资源分配。
背景技术
例如分布式共享存储器中用于多个发起者设备访问多个接收者设备的资源分配需要被谨慎地管理以便确保每种类型的事务请求的向前进展。在现有技术的系统中,这已经以多种方式实现,但是通常通过使用隐式或显式的资源分配。已使用从接收者设备发送并且向发起者设备表示事务请求是否已被接受的确认信号来实现隐式资源分配。如果事务请求未被接受,那么发起者设备将在随后重新发送事务请求,希望这次它将被接受。这种方式的缺点在于难于限制用于每一个事务请求的等待时间,因为事务请求可不断地尝试并且不成功。此外,连续尝试具有与其相关的时间、功率和带宽的开销。一种替代系统是例如在启动时,向每个发起者设备给予用于与接收者设备的事务的某数量的信用证(credit),并且当使用信用证时,一旦使用它的事务请求完成则发送新的信用证。该方式的缺点在于随着系统变得更大,为了向所有发起者提供用于每一个接收者的信用证,接收者上用于存储挂起(pending)事务的缓冲区需要变得越来越大。将期望能够动态地分配资源,使得有效地使用事务请求存储器,并且各个事务请求的等待时间仍然保持很低。

发明内容
本发明的第一方面提供了 一种接收者设备,用于经由至少一个互连装置从多个发起者设备接收事务请求,所述接收者设备包括:至少一个端口,用于从所述至少一个互连装置接收所述事务请求以及向其发送请求和信号;确认信号生成器,被配置为生成和输出表示请求已被所述接收者设备接收但还未被所述接收者设备接受的拒绝确认信号;缓冲区,用于在所述接收者设备执行之前存储接受和挂起的事务请求;信用证生成器,所述信用证生成器被配置为:在所述缓冲区中保留至少一个可用的存储位置;以及对于发送未由所述接收者设备接受的所述事务请求之一的发起者设备生成信用证授予,所述信用证授予向所述发起者设备表示至少存在一个保留的存储位置,以使得来自所述发起者设备的随后的事务请求将由所述接收者设备接受。本发明认识到与以下相关的竞争问题:将接收者设备上的事务请求存储保持为较低以便减少区域开销,而不会过度增加可能由没有存储事务请求的空间的接收者设备不断拒绝的某些事务请求的等待时间。它通过提供当用于挂起事务请求的存储位置变得可用时保留存储位置并且向已被拒绝了事务请求的发起者发送信用证授予的接收者设备来解决该问题。发起者设备然后可重新发送该事务请求并且被保证事务请求将被接受。以该方式,接收者设备本身知道哪些发起者设备具有已被拒绝的挂起事务请求并且当接收者设备的缓冲区中的存储位置变为可用时,它可向所选择的一个发起者设备发送信用证,首先保留了存储位置以使得它们仅可由接收了信用证授予的发起者设备使用。以该方式,可向发起者设备确保将会接受响应于信用证授予所发送的事务请求。这提供了一种分配接收者设备资源的相对简单但有效的方式,其既确保将在某时刻接受事务请求,但又并不需要接收者设备中更大的缓冲区。在某些实施例中,所述接收者设备被配置为接受事务请求和在所述至少一个所保留存储位置中存储所述事务请求,所述事务请求包括表示发送所述事务请求的所述发送者接收的信用证授予正在被使用的指示符。接收者设备可通过与事务请求相关的表示已接收信用证授予的发起者设备何时正在发送事务请求的指示符来确定该时间。响应于该事务请求,知道存在可用的保留存储位置的接收者设备可接受事务请求,并且以该方式,具有信用证授予指示符的事务请求总是被接收者设备接受。因为关于信用证授予的信息连同事务请求一起被发送,所以接收者设备不需要存储关于先前未被接受的事务请求的信息,并且这降低了接收者设备的存储要求。在某些实施例中,所述信用证生成器包括用于存储保留的可用存储位置的数量计数的计数器,所述信用证生成器被配置为响应于确定所述存储位置之一变为可用而递增所述计数值并且响应于接收包括表示所接收信用证授予正被使用的指示符的事务请求而递减所述计数值。当发送用于被拒绝事务请求的信用证授予时,缓冲区中的存储位置被保留以使得当接收了具有相关联的信用证授予指示符的事务请求时,其可被保证接受。不是保留用于特定事务请求的特定存储位置,而是信用证生成器仅仅递增表示为具有与其关联的信用证授予的事务请求保留的缓冲区内的存储位置数量的计数值。以该方式,通过仅仅存储计数值,信用证生成器知道为具有信用证授予的事务请求保留了多少存储位置,以及多少存储位置可用于其它事务请求。在这点上,可通过在事务请求被存储到缓冲区时让对空闲存储位置计数的另一个计数器递减以及在从缓冲区移除事务请求时让该另一个计数器递增来确定后者。在某些实施例中,所述信用证生成器还包括对应于所述多个发起者设备的多个计数器,每一个计数器用于存储表示从所述各个发起者设备接收的尚未被所述接收者设备接受的挂起事务请求的数量的计数值,所述信用证生成器被配置为响应于所述接收者设备从所述对应的发起者设备接收但是不接受至少某些所述事务请求来递增所述计数器之一,以及响应于从所述对应的发起者设备接收包括表示所接收信用证授予正在被使用的指示符的事务请求来递减所述计数器之一。如前所述,接收者设备不需要存储未被接受的各个事务请求的细节。在某些实施例中,它具有对应于发起者设备数量的许多计数器,并且这些计数器存储表示接收者设备从每个发起者设备已接收但未接受的事务请求数量的计数值。存储该信息使得接收者设备知道哪些发起者设备具有挂起和被接收者设备拒绝了的大量事务请求。然后,在选择哪个发起者设备以将信用证授予向其发送时,它可使用该信息。再次,信息以区域效率高的方式存储。在某些实施例中,所述信用证生成器被配置为响应于被所述接收者设备接收但未由所述接收者设备接受的全部所述事务请求来递增所述计数器之一。而在其它实施例中,所述信用证生成器被配置为仅响应于被所述接收者设备接收但未由所述接收者设备接受并且包括信用证授予指示符的所述事务请求来递增所述计数器之一。对于未由接收者设备接受的每个事务请求,可能接收者设备将递增表示事务请求已被拒绝的计数器并且以后将向该发起者设备发送信用证授予。在该情况下,在首次拒绝事务请求之后,发起者设备将不会再次发送事务请求,直到已接收了信用证授予。或者,可能系统被设计为使得事务请求在其等待信用证授予之前被发送某个次数。在后者的情况下,为了让接收者设备知道是否将再次发送事务请求或者是否它正等待信用证授予,事务请求当其已被发送了必要的次数时将具有与其关联的信用证授予指示符。响应于该指示符,接收者设备将递增对应于发送事务请求的发起者设备的计数器之一,并且这将向接收者设备表示发起者设备正在等待信用证授予。仅发送一次事务请求并且然后等待信用证的优点是人们不需要跟踪事务请求已被发送并且未被接受多少次,并且不需要关于事务请求的指示符来表示事务请求需要信用证授予。然而,在某些情况下,很可能事务请求将在第二次或第三次被接受,并且因此,在请求和等待信用证授予以及相应的存储位置保留之前仅发送一次事务请求是不必要的开销。在该情况下,将事务请求在其请求授予之前被拒绝的次数设置为特定次数可改进系统效率。显然,它依赖于操作条件以及发起者设备和接收者设备的功能并且因此,在某些实施例中,可相应地设置值。在某些实施例中,所述信用证生成器包括优先化逻辑,用于优先化未由所述接收者设备接受的所述挂起事务请求,所述优先化逻辑被配置为依赖于优先化算法和所述计数器的计数值来选择所述发起者设备中的所述一个来发送所述信用证授予。为了确保接收者设备的资源被公平地分配到发起者设备并且没有发起者设备必须为事务请求被接受等待很久,可使用优先化逻辑,其具有为下一个信用证授予选择发起者设备的优先化算法。该优先化算法可使用计数器的计数值,该计数值向其表示每个发起者设备已拒绝了多少个事务请求。在某些实施例中,所述信用证生成器响应于在所述至少一个端口接收的信用证拒绝请求(其表示已被生成并且输出到所述发起者设备之一的信用证授予不被所述发起者设备需要),使得所述保留存储位置之一可用并且递减与所述发起者设备中的所述一个相关的所述计数器。如果接收者设备可响应于信用证拒绝请求而使得保留存储位置可用并且递减与发送信用证拒绝请求的发起者设备相关的计数器,可能是有利的。在某些情况下,信用证授予被发送到将不会重新发送事务请求的发起者设备。这在事务请求被推测地发送并且未由接收者设备接受以及触发信用证授予的情况下可发生。事务请求的该推测式发送将不会重复,并且因此,信用证授予不被发起者设备需要。不是为不需要它的该发起者设备永久地保留存储位置,而是如果发起者设备可发送信用证拒绝信号来向接收者设备表示不需要保留的存储位置以使得该存储位置可被释放来存储另一个挂起的事务请求,则是有利的。在某些实施例中,所述信用证生成器响应于在所述至少一个端口处接收的来自发起者设备的信用证授予需求,来确定何时存储位置在所述缓冲区中变为可用并且保留可用的存储位置,以及生成和向所述发起者设备输出信用证授予。
还可能有利的是,接收者设备可响应于信用证授予需求来向发起者设备发送信用证授予。发起者设备能够确定何时它们要进入操作周期,在该周期中它们需要访问接收者设备。在该情况下,可能有利的是,它们可预先请求信用证授予以使得当随后访问接收者设备时事务请求被确保接受并且改进系统的性能。本发明的第二方面提供了一种发起者设备,用于经由至少一个互连装置向多个接收者设备发送事务请求,所述发起者设备包括:至少一个端口,用于从所述至少一个互连装置接收请求和信号以及向其发送事务请求;所述发起者设备包括事务请求发送电路,用于向各个所述接收者设备发送所述事务请求并且用于接收表示所述发送的事务请求尚未由所述各个接收者设备接受的确认信号,所述事务请求发送电路被配置为响应于接收表示所述发送的事务请求之一尚未被所述各个接收者设备接受的至少一个确认信号,不再发送所述发送的事务请求中的所述一个,直到在从所述各个接收者设备接收了信用证授予之后,所述信用证授予表示所述各个接收者设备将接受来自所述发起者设备的随后的事务请求。本发明提供了一种发起者设备,其响应于从接收者设备接收表示事务请求尚未被接受的确认信号,将不会重新发送事务请求,直到在从各个接收者设备接收了信用证授予之后。信用证授予向发起者设备表示随后的事务请求将被接收者设备接受。以该方式而不是不断地发送可被不断拒绝的事务请求,发起者设备仅等待接收信用证授予,由此它知道事务请求将被接受并且它可再次发送事务请求。以该方式保证了事务请求的接受并且避免了被不断拒绝的特定事务请求的较长等待时间。此外,通过避免连续重新发送事务请求以及对它们的连续拒绝,可降低功耗和互连装置带宽。在某些实施例中,所述事务请求发送电路响应于表示所述发送的事务请求之一尚未由所述各个接收者设备接受的每个确认信号,不再发送所述事务请求中的所述一个,直到在接收了来自所述各个接收者设备的信用证授予之后。发起者设备可响应于表示事务请求尚未被接受的每个确认信号,不再发送事务请求并且等待信用证授予。或者,发起者设备可包括将跟踪事务请求未被接受的次数的计数器,并且发起者设备将仅在事务请求未被接受某个次数之后不再发送事务请求。可能有利的是,推测地尝试发送事务请求某个次数,因为非常可能它将被接受。然而,为了避免它被不断地拒绝,可能有利的是,跟踪它被拒绝的次数并且在某数量之后请求信用证授予。因为通过计数器在发起者设备处跟踪次数,所以该事务请求已经被拒绝预定次数并且需要信用证授予的信息可通过将信用证授予指示符附加到事务请求(一旦该事务请求已被拒绝了该某个次数)而被发送到接收者设备。这使得能够向发起者设备确保事务请求将仅被拒绝某个次数并且在此之后响应于信用证授予的接收当被再次发送时它将被接受。在某些实施例中,所述事务请求发送电路被配置为响应于所述发起者设备的所检测操作条件而改变所述预定值。用于重新发送事务请求的次数的优选值取决于发起者设备和接收者设备的操作条件并且可在处理期间改变。因此,可能有利的是,该预定值可改变。许多发起者设备以突发(bursty)方式访问接收者设备,使得在某些时刻发起者设备很少访问接收者设备,而在其它时刻发起者设备可非常频繁地访问接收者设备。如果访问模式是这种类型,那么最优的预定值将随着访问模式改变,并且因此,能够在操作期间改变该值使得系统能够被调整为更有效率地操作。在某些实施例中,所述事务请求发送电路被配置为响应于信用证授予的接收来发送信用证拒绝请求,所述信用证授予是响应于未由所述各个接收者设备接受并且所述发起者设备将不会重新发送的所发送事务请求而被接收的。发起者设备可能发送未由接收者设备接受但是发起者设备不再有兴趣发送的事务请求。例如,它可以是推测式的数据访问。在该情况下,如果信用证被发送到发起者设备,那么发起者设备不需要该信用证授予并且如果它可发送信用证拒绝请求以使得可释放接收者设备中为该信用证授予保留的存储位置则是方便的。在某些实施例中,事务请求发送电路包括信用证授予需求生成器,用于生成至少一个信用证授予需求并且用于向所述多个接收者设备中的一个发送所述信用证授予需求,所述信用证授予需求触发所述接收者设备中的所述一个向所述发起者设备发送信用证授予,以使得从所述发起者设备向所述接收者设备中的所述一个发送的随后事务请求将被接受。可能方便的是,发起者设备具有可在事务请求之前就需要信用证授予的信用证授予需求生成器。可能存在某些操作周期,其中发起者设备将需要频繁地访问接收者设备,并且这些操作周期可能是低等待时间很重要的操作周期。在该情况下,能够预先请求信用证授予将改进发起者设备的性能。在某些实施例中,所述事务请求发送电路被配置为响应于接收所述信用证授予来选择事务请求以向所述各个接收者设备发送,并且在发送所述所选择事务请求之前向其附加表示所述信用证授予正被使用的指示符。当信用证授予被发起者设备接收时,发起者设备不需要将它用于未被接受并且实际上触发了该信用证授予的事务请求。发起者设备可根据它自己的优先化逻辑来选择可能相比于被拒绝的事务请求在性能上更关键的挂起事务请求并且可发送它与表示信用证授予已被接收的指示符,这将确保该事务请求被接受。以该方式,发起者设备可优先化性能关键的事务请求并且接收者设备可仅通过监视与事务请求关联的指示符来跟踪哪些信用证授予已被使用。本发明的第三方面提供了一种数据处理装置,其包括多个发起者设备、多个接收者设备和将所述多个发起者设备连接到所述多个接收者设备的至少一个互连装置,至少一个所述发起者设备是根据本发明第二方面的发起者设备,并且至少一个所述接收者设备是根据本发明第一方面的接收者设备。本发明的第三方面提供了一种确定在接收多个发起者设备发送的事务请求的接收者设备处接受哪些事务请求的方法,包括:接收所述事务请求;为被所述接收者设备接收但是未由所述接收者设备接受的事务请求生成拒绝确认信号;在由所述接收者设备执行之前在缓冲区中存储所接受和挂起的事务请求;在所述缓冲区中保留至少一个可用的存储位置;为发送未由所述接收者设备接受的所述事务请求之一的发起者设备生成信用证授予;向所述发起者设备输出表示存在保留存储位置的所述信用证授予,使得来自所述发起者设备的随后事务请求将由所述接收者设备接受。本发明的第四方面提供了一种向多个接收者设备发送事务请求的方法,所述方法包括:向所述多个接收者设备中相应的一个接收者设备发送所述事务请求之一;从所述相应的一个接收者设备接收表示所述发送的事务请求尚未被所述相应的一个接收者设备接受的确认信号;响应于表示所述发送的事务请求之一尚未被所述相应的一个接收者设备接受的至少一个确认信号,不再发送所述事务请求,直到接收了来自所述相应的一个接收者设备的信用证授予之后,所述信用证授予表示所述相应的一个接收者设备将接受来自所述发起者设备的随后事务请求。 本发明的第五方面提供了 一种接收者装置,用于经由至少一个互连装置从多个发起者装置接收事务请求,所述接收者装置包括:至少一个端口装置,用于从所述至少一个互连装置接收所述事务请求以及向其发送请求和信号;确认信号生成装置,用于生成和输出表示请求已被所述接收者装置接收但还未被所述接收者装置接受的拒绝确认信号;存储装置,用于在所述接收者设备执行之前存储接受和挂起的事务请求;信用证生成装置,用于在所述存储装置中保留至少一个可用的存储位置,并且对于发送未由所述接收者装置接受的所述事务请求之一的发起者装置生成信用证授予,所述信用证授予向所述发起者装置表示至少存在一个保留的存储位置,以使得来自所述发起者装置的随后的事务请求将由所述接收者装置接受。本发明的第六方面提供了一种发起者装置,用于经由至少一个互连装置向多个接收者装置发送事务请求,所述发起者装置包括:至少一个端口装置,用于从所述至少一个互连装置接收请求和信号以及向其发送事务请求;所述发起者装置包括事务请求发送装置,用于向各个所述接收者装置发送所述事务请求并且用于从所述互连装置接收表示所述发送的事务请求尚未由所述各个接收者装置接受的确认信号,并且用于响应于表示所述事务请求尚未被所述各个接收者装置接受的至少一个确认信号,而不再发送所述事务请求,直到在从所述各个接收者装置接收了信用证授予之后,所述信用证授予表示所述各个接收者装置将接受来自所述发起者装置的随后的事务请求。根据应结合附图来阅读的说明性实施例的以下详细描述,本发明的上面和其它目的、特征和优点将是明显的。


图1根据本发明实施例示出了接收者设备;图2根据本发明实施例示出了发起者设备;图3示出了包括都由互连装置互连的多个发起者设备和多个接收者设备的数据处理系统;图4根据本发明实施例示意性地示出了数据处理系统中的事务请求的进展;图5根据本发明实施例示出示出了接收者设备执行的方法中的步骤的流程图;并且图6根据本发明实施例示出示出了发起者设备执行的方法中的步骤的流程图。
具体实施例方式图1根据本发明实施例示出了接收者设备10。该接收者设备通常可以是系统中的从动装置(slave),例如一致性(coherency)控制器或输入/输出桥接器。该接收者设备在端口 12接收从发起者设备经由互连装置发送的事务请求。接收者设备10包括缓冲区15,用于在已接收的挂起事务请求由接收者设备执行之前先将其存储。因此,响应于接收事务请求,接收者设备10将接受事务请求并且在缓冲区15中存储它(如果存在可用的存储位置)。是否存在可用的存储位置由仲裁器20来确定。挂起的事务请求存储在缓冲区15中,直到接收者设备可执行它们,然后事务请求从缓冲区15移除。一旦接收者设备已执行了挂起事务请求,那么完成的确认系统被发送回发起者设备。存在对可用存储位置数量进行计数的与仲裁器20关联的计数器28,并且仲裁器20根据该计数器确定存储位置的可用性。当所接收事务请求存储在缓冲区15中时,那么计数器28递减,而当事务请求从缓冲区15移除时,计数器递增。如果仲裁器20确定在缓冲区15中没有可用空间,那么事务请求不能被接收者设备10接受并且它被拒绝。仲裁器20用信号将该拒绝通知给确认信号生成器25,确认信号生成器25经由端口 12将表示事务请求未被接受的信号发送回发送事务请求的发起者设备。如果事务请求具有与其关联的信用证授予需求,那么仲裁器20用信号向信用证生成器30通知需要信用证,并且信用证生成器30递增与发送事务请求的发起者设备相关的计数器32并且计数器的该递增向信用证生成器表示对于该发起者设备需要信用证。应当注意,在某些实施例中,全部拒绝的事务请求将触发信用证生成器30递增计数器32之一并且在时间满足时发送信用证。在其它实施例中,仅仅被接收的具有与其关联的信用证授予需求的那些事务请求触发该行为。还应当注意,计数器32必须被安排为适合的大小,使得它们可为每个发起者设备对正在等待信用证授予的全部挂起的被拒绝事务请求进行计数。信用证生成器30进行监视以便确定何时存在可用的存储位置。它可通过监视计数器28来实现此。当信用证生成器30具有挂起的所拒绝事务请求时,即当至少一个计数器32不是O时,当它检测到可用的存储位置时它将保留该位置,并且信用证生成器30内的优先化逻辑34将确定哪个具有挂起的被拒绝事务请求的发起者设备应当接收该信用证。然后它将生成该信用证并且将其发送到发起者设备。它还将递减与它把信用证发送到其的发起者设备相关的计数器32。为了保留信用证,信用证生成器30递增表示所保留存储位置的数量的计数器36。计数器28可对可用存储位置的总数量,即被保留的以及空闲但未被保留的那些位置进行计数,或者它可仅对未保留的空闲存储位置进行计数。优先化逻辑34可使用多种算法之一来选择特定的发起者设备。当选择发起者设备时它将考虑计数器32的值。如果发起者设备具有已被拒绝并且正在挂起的许多事务请求,那么它通常将比具有更少的事务请求的发起者设备具有更高的优先级。在某些情况下,所有的计数值可能为零,在该情况下,信用证生成器将不会保留任何的存储位置,而是将在保留可用的存储位置和发出信用证之前等待计数值递增。通常,用于分配保留的缓冲区存储位置的优先化应当以公平的方式来实现,该公平的方式考虑正在等待信用证的所有挂起的被拒绝事务请求并且在某些实施例中考虑它们的服务质量QOS需求。在需要QOS优先化的系统中,信用证授予跟踪应当也跟踪被重试的请求的QOS值,因此,与发起者设备相关的至少一个QOS值应当连同用于该设备的计数器一起被存储。在该系统中,QOS值将关联于事务请求并且其可连同计数器被存储。在每个发起者设备仅存储一个QOS的情况下,用于最近被拒绝的事务请求的值可被存储。当信用证被授予时,可减少该QOS值的值或将其删除。对接收信用证授予的下一个发起者设备的选择应当考虑QOS值的优先级。系统还应当实现防止饿死的机制以便防止较低优先级的请求饿死,即从未接收信用证。挑选要分配的下一个信用证授予的仲裁可在两个级别上实现。第一次挑选基于最高的QOS值,并且下一次挑选以循环(round robin)方式在相同的QOS值中挑选请求。除了接收事务请求之外,接收者设备10可从发起者设备接收信用证授予请求。这可在发起者设备认识到它将要进入它将需要访问接收者设备并且所执行的代码是应当以低等待时间执行的关键代码的操作模式的情况下发生。在该情况下,期望的是,它可预先从接收者设备10接收信用证以使得当它发出它的事务请求时能够保证由接收者设备10接受。响应于该信用证授予请求,信用证生成器30将向发起者设备发送信用证。它还将递增计数器36。接收者设备10也可从发起者设备接收信用证拒绝请求。这可在发起者设备已接收了用于它不希望重新发送的挂起的所拒绝事务请求的信用证的情况下发生。在该情况下,不是保持将使得缓冲区15中的存储位置被保留的信用证,发起者设备可使用信用证授予拒绝信号返回信用证,并且响应于此,信用证生成器30将通过递减计数器36来释放所保留的存储位置。通过在信用证被授予时递增计数器36并且在它们被使用或返回时递减计数器36,信用证生成器30可以区域效率高且直接的方式跟踪所保留存储位置的数量,并且不需要跟踪哪些事务请求已被拒绝以及哪些触发了哪些存储位置的保留。当确定是否存在空闲的存储位置用于新接收的事务请求时,仲裁器20读取计数器值36和计数器值28。如果新接收的事务请求具有与其关联的信用证指示符,那么它将由仲裁器20存储在缓冲区15中并且计数器36将递减。类似地,当信用证被授予时,计数器36递增。如果相对于空闲并且未保留的存储位置,计数器28跟踪空闲(保留或未保留)的存储位置,则它将连同计数器36 —起被更新,而如果它仅跟踪未保留的空闲存储位置,那么所保留存储位置的分配和变得空闲将不影响该计数器的值。图2根据本发明实施例示出了发起者设备40。该发起者设备可能是主动装置(master),例如处理器核心。该发起者设备40生成事务请求并且这些事务请求在由事务请求发送器50发送到端口 42之前存储在仲裁器57内的缓冲区中。事务请求发送器50内具有优先化逻辑55和信用证取消器58,仲裁器57使用优先化逻辑55来选择要被发送的挂起事务请求之一。事务请求发送器50将发送事务请求并且这些事务请求将经由端口被发送到互连装置并且然后发送到接收者设备,例如图1中所示的接收者设备10。如果事务请求未由接收者设备接受,那么表示事务请求已被拒绝的确认信号将被发送到发起者设备40并且在端口 42处被接收。响应于该拒绝确认信号,计数器60的计数值将递增。比较器61确定计数器60的计数值是否等于数据存储器62中存储的预定值。如果不等于,那么事务请求发送器将在仲裁器57的控制下重新发送该事务请求。事务请求发送器可在重新发送事务请求之前等待预定时间或者它几乎可以立即重新发送事务请求。如果计数值等于数据存储器62中存储的值,那么事务请求发送器50将重新发送具有关联于其的信用证授予请求指示符的事务请求。然后,它将不再重新发送事务请求,直到它从接收者设备接收了信用证。当从接收者设备接收了信用证时,那么事务请求发送器可发送具有信用证授予指示符的事务请求,该信用证授予指示符将确保事务请求被接受。然而,它可使用仲裁器57和优先化逻辑55来判定以便将不同的事务请求发送到请求了信用证的接收者设备。发送的所选择事务请求将与关联于其的信用证授予指示符一起发送。这将保证接收者将接受事务请求。以该方式,优先化逻辑55可优先化事务请求并且确保对于性能而言关键的事务请求被优先化并且因此它们的等待时间减少。当事务请求连同信用证授予指示符被发送时,那么清除计数器60。在某些实施例中,发起者设备可跟踪挂起事务请求的服务质量QOS值。这使得优先化逻辑55能够优先化并且选择向其提供信用证授予的适当的事务请求。在该实施例中,仅示出了单个计数器,然而可存在多个计数器,因为发起者设备40可发送多个事务请求,并且可为每一个保持计数,以使得每一个事务请求可在某时间点请求信用证授予。如果向除了触发信用证生成的事务请求之外的事务请求发送了信用证,那么正等待信用证的该事务请求可被重新发送一次,而无需信用证授予。在某些实施例中,它可被连同与其关联的信用证请求一起立即重新发送,,或者它可被重新发送而无需信用证授予并且它的计数器设置为零,使得在请求信用证之前它被再重新发送数据存储器62中的值所确定的次数。在某些实施例中,发起者设备40没有计数器60或比较器61或数据存储器62。在这些实施例中,未被接受的每个事务请求触发接收者设备生成信用证授予并且每个事务请求仅被发送一次并且然后等待信用证的接收。在某些实施例中,数据存储器62中存储的值可实时地改变,使得当操作条件改变时,事务请求在请求信用证授予之前被发送的次数也可被改变。这使得系统能够被调整到当前的操作条件并且可提高性能。在该实施例中,事务请求发送器50也具有与其关联的信用证取消器58。在发起者设备40接收了用于它可能推测地发送了并且不希望重新发送的挂起事务请求的信用证的情况下,该信用证取消器可发送信用证取消信号。不是保持信用证,而是有利的是,信用证取消器58发送信用证取消信号,该信用证取消信号被发送到接收者设备并且用于释放为该特定信用证保留的存储位置。图3示意性地示出了包括经由互连装置70连接到多个接收者设备10的多个发起者设备40的数据处理系统。每个发起者设备将经由互连装置70向任何一个接收者设备10发送事务请求。这些设备将接受事务请求,或者将拒绝它们,并且如果是后者则将会发送表示此的确认信号。信用证信号随后可被发送,并且响应于这些,事务请求可经由互连装置与附着到其的信用证指示符一起被重新发送。图4非常示意性地示出了来自对应于图2的发起者设备40的请求节点的事务请求在可能被发送到存储控制器之前如何在对应于例如图1中所示的目的地或接收者设备的本地节点(home node)处被处理。在第一示例中,读取请求由请求者节点发出,其附着有信用证。这在本地节点处被接收并且存储在那里的缓冲区中的所保留存储位置。然后,它通过被发送到存储控制器而被执行,并且数据返回到请求节点。在第二示例中,类似的读取请求从请求节点被发送但是在该情况下,没有信用证附着到其。当它到达本地节点时,在缓冲区中恰好存在没有为具有信用证的事务请求保留的可用空间,并且因此,读取请求被接受并且存储在缓冲区中,直到它被执行并且继续发送到存储控制器,然后数据被发送回初始请求节点。第三示例类似于前面的示例,然而在该情况下,缓冲区中没有可用空间,并且因此,因为读取请求没有附着到其的信用证,所以它在本地节点未被接受并且否定确认信号被发送回请求节点。请求节点不再发送事务请求,直到它接收了来自本地节点的信用证。一旦它接收了信用证,那么它可通过再次发送具有附着到其的信用证的读取请求来继续,如在第一不例中那样。图5根据本发明实施例示出示出了在接收者设备处执行的方法中的步骤的流程图。在该方法中,从发起者设备接收事务请求并且接收者确定是否存在关联于其的信用证指示符。如果不存在,那么它确定缓冲区中是否存在可用的存储位置。如果存在可用的存储位置,那么它将接受事务请求并且在缓冲区内存储它。然后它将递减对空闲存储位置数量进行计数的计数器并且将接收下一个事务请求。如果存在关联于事务请求的信用证指示符,那么表示缓冲区中保留存储位置数量的计数器将递减并且事务请求将被接受并且存储在缓冲区内。在该示例中,对空闲存储位置数量进行计数的计数器对总空闲存储位置(即,被保留的和未被保留但是可用的那些空闲存储位置)进行计数,并且因此,在这时该计数器也递减。在其它实施例中,空闲存储位置计数器可仅对未保留的可用位置进行计数,在该情况下在此时该计数器将不会递减。如果请求没有关联于其的信用证指示符,并且缓冲区中没有可用的存储空间,那么事务请求将不被接受,并且拒绝确认信号将被发送回发起者设备。在该情况下,接收者将确定事务请求是否具有关联于其的信用证授予指示符。如果它没有,那么接收者对于该事务请求将不执行另外的动作。如果它有关联于其的信用证授予指示符,那么接收者将递增用于发送该事务请求的发起者设备的计数器。这将及时触发用于该发起者设备的信用证授予。这在图5的第二部分示出。图5流程图的第二部分示出了如何授予信用证。因此,信用证生成器确定是否有任何被拒绝的事务请求挂起,它通过确定与不同发起者设备关联的任何计数器是否为非零来实现此。如果有任何被拒绝的事务请求挂起,那么它确定缓冲区中是否存在可用的存储位置。如果存在,那么它保留存储位置,这在该情况下通过递增保留存储位置计数器来实现。信用证授予器然后选择具有挂起的被拒绝事务请求的发起者。它使用基于为特定发起者设备挂起的被拒绝事务请求的数量来选择发起者设备的优先化逻辑实现此。然后,它将向它选择的发起者设备发送信用证并且它将递减与该发起者设备相关联的计数器,以使得它知道对于正在等待信用证授予的该发起者设备,挂起的被拒绝事务请求少了一个。然后,它将确定是否有任何另外的被拒绝事务请求挂起,并且如果存在,则它将再次查看是否在缓冲区中存在可用的存储位置。
尽管未示出,但信用证授予生成器也可接收用于信用证的请求,并且如果是这样的情况,则它也将查看是否在缓冲区中存在可用的存储位置,并且当存在时,它将保留存储位置并且将信用证发送到发起者。它也可接收表示不再需要先前授予的信用证的信号。在该情况下,它将递减表示所保留存储位置的数量的计数器。图6根据本发明实施例示出示出了在发起者设备处执行的方法中的步骤的流程图。在该方法中,事务请求由发起者设备发送,所述发起者设备然后确定事务请求是否已被接受。如果未被接受,则它接收拒绝确认信号,并且然后它确定事务请求是否已发送了一定次数。其可仅为一次,在该情况下,将跳到信用证授予接收框。如果多于一次,那么它确定事务请求是否还未被发送“N”次。如果还未,那么对发送了该事务的次数进行计数的计数器递增并且事务请求将被再次发送。这可能在一段时延之后或者可能是立即发生。如果事务请求已被发送了所需的N次,那么它与关联于其的信用证请求一起再次被发送。然后它将确定事务请求是否被接受。如果是,那么信用证请求未由接收者设备处理并且发起者设备仅发出下一个事务请求。如果事务请求未被接受,那么事务请求不被重新发送而是等待信用证授予。一旦接收了信用证授予,那么事务请求与确保它被接受的信用证指示符一起被发送。在这方面,已被拒绝η次的事务请求可与该信用证指示符一起被发送,或者发起者设备可选择另一个事务请求发送。应当注意,信用证授予信号可以是独自被发送的信号,或者它可以是与对所拒绝事务请求而发送的响应信号相关联的指示符。尽管这里相关于附图详细描述了本发明的说明性实施例,但是应当理解,本发明不限于那些精确的实施例,并且本领域技术人员可在其中实现各种改变和修改,而不会偏离如权利要求所定义的本发明的范围和精神。例如,以下从属权利要求的特征的各种组合可用独立权利要求的特征来实现,而不会偏离本发明的范围。
权利要求
1.一种接收者设备,用于经由至少一个互连装置从多个发起者设备接收事务请求,所述接收者设备包括: 至少一个端口,用于从所述至少一个互连装置接收所述事务请求以及向所述至少一个互连装置发送请求和信号; 确认信号生成器,被配置为生成和输出拒绝确认信号,该拒绝确认信号表示请求已被所述接收者设备接收但还未被所述接收者设备接受; 缓冲区,用于在所述接收者设备执行之前存储接受和挂起的事务请求; 信用证生成器,所述信用证生成器被配置为: 在所述缓冲区中保留至少一个可用的存储位置;以及 对于发送未由所述接收者设备接受的所述事务请求之一的发起者设备生成信用证授予,所述信用证授予向所述发起者设备表示至少存在一个保留的存储位置,以使得来自所述发起者设备的随后的事务请求将由所述接收者设备接受。
2.根据权利要求1所述的接收者设备,其中所述接收者设备被配置为接受事务请求和在所述至少一个所保留存储位置中存储所述事务请求,所述事务请求包括表示发送所述事务请求的所述发送者接收的信用证授予正在被使用的指示符。
3.根据权利要求2所述的接收者设备,其中所述信用证生成器包括用于存储保留的可用存储位置的数量计数的计数器,所述信用证生成器被配置为响应于确定所述存储位置之一变为可用而递增所述计数值并且响应于接收包括表示所接收信用证授予正被使用的指示符的事务请求而递减所述计数值。
4.根据权利要求1所述的接收者设备,所述信用证生成器还包括对应于所述多个发起者设备的多个计数器,每一个计数器用于存储表示从所述各个发起者设备接收的尚未被所述接收者设备接受的挂起事务请求的数量的计数值,所述信用证生成器被配置为响应于所述接收者设备接收但是不接受来自所述对应的发起者设备的至少某些所述事务请求来递增所述计数器之一,以及响应于从所述对应的发起者设备接收包括表示所接收信用证授予正在被使用的指示符的事务请求来递减所述计数器之一。
5.根据权利要求4所述的接收者设备,其中所述信用证生成器被配置为响应于被所述接收者设备接收但未由所述接收者设备接受的全部所述事务请求来递增所述计数器之一。
6.根据权利要求4所述的接收者设备,其中所述信用证生成器被配置为仅响应于被所述接收者设备接收但未由所述接收者设备接受并且包括信用证授予指示符的所述事务请求来递增所述计数器之一。
7.根据权利要求4所述的接收者设备,其中所述信用证生成器包括优先化逻辑,用于优先化未由所述接收者设备接受的所述挂起事务请求,所述优先化逻辑被配置为依赖于优先化算法和所述计数器的计数值来选择将所述信用证授予发送到的所述发起者设备中的所述一个。
8.根据权利要求4所述的接收者设备,其中所述信用证生成器响应于在所述至少一个端口接收的信用证拒绝请求,该信用证拒绝请求表示已被生成并且输出到所述发起者设备之一的信用证授予不被所述发起者设备需要,使得所述保留存储位置之一可用并且递减与所述发起者设备中的所述一个相关的所述计数器。
9.根据权利要求1所述的接收者设备,其中所述信用证生成器响应于在所述至少一个端口处接收的来自发起者设备的信用证授予需求,来确定何时存储位置在所述缓冲区中变为可用并且保留可用的存储位置,以及生成和向所述发起者设备输出信用证授予。
10.一种发起者设备,用于经由至少一个互连装置向多个接收者设备发送事务请求,所述发起者设备包括: 至少一个端口,用于从所述至少一个互连装置接收请求和信号以及向所述至少一个互连装置发送事务请求; 所述发起者设备包括事务请求发送电路,用于向各个所述接收者设备发送所述事务请求并且用于接收表示所述发送的事务请求尚未由所述各个接收者设备接受的确认信号,所述事务请求发送电路被配置为响应于接收表示所述发送的事务请求之一尚未被所述各个接收者设备接受的至少一个确认信号,不再发送所述发送的事务请求中的所述一个,直到在接收了来自所述各个接收者设备的信用证授予之后,所述信用证授予表示所述各个接收者设备将接受来自所述发起者设备的随后的事务请求。
11.根据权利要求10所述的发起者设备,所述事务请求发送电路响应于表示所述发送的事务请求之一尚未由所述各个接收者设备接受的每个确认信号,不再发送所述事务请求中的所述一个,直到在接收了来自所述各个接收者设备的信用证授予之后。
12.根据权利要求10所述的发起者设备,其中所述事务请求发送电路包括计数器并且被配置为通过递增所述计数器来跟踪事务请求未由所述各个接收者设备接受的次数,并且响应于所述次数达到预定值而发送具有信用证授予指示符的所述事务请求,并自不再发送所述事务请求,直到在接收了来自所述各个接收者的所述信用证授予之后。
13.根据权利要求12所述的发起者设备,所述事务请求发送电路被配置为响应于所述发起者设备的所检测操作条件而改变所述预定值。
14.根据权利要求10 所述的发起者设备,其中所述事务请求发送电路被配置为响应于信用证授予的接收来发送信用证拒绝请求,所述信用证授予是响应于未由所述各个接收者设备接受并且所述发起者设备将不会重新发送的所发送事务请求而被接收的。
15.根据权利要求10所述的发起者设备,所述事务请求发送电路包括信用证授予需求生成器,用于生成至少一个信用证授予需求并且用于向所述多个接收者设备中的一个发送所述信用证授予需求,所述信用证授予需求触发所述接收者设备中的所述一个向所述发起者设备发送信用证授予,以使得从所述发起者设备向所述接收者设备中的所述一个发送的随后事务请求将被接受。
16.根据权利要求10所述的发起者设备,所述事务请求发送电路被配置为响应于接收所述信用证授予来选择事务请求以向所述各个接收者设备发送,并且在发送所述所选择事务请求之前向其附加表示所述信用证授予正被使用的指示符。
17.一种数据处理装置,包括多个发起者设备、多个接收者设备和将所述多个发起者设备连接到所述多个接收者设备的至少一个互连装置,至少一个所述发起者设备是根据权利要求10所述的发起者设备,并且至少一个所述接收者设备是根据权利要求1所述的接收者设备。
18.一种确定在接收多个发起者设备发送的事务请求的接收者设备处接受哪些事务请求的方法,包括: 接收所述事务请求;为被所述接收者设备接收但是未由所述接收者设备接受的事务请求生成拒绝确认信号; 在由所述接收者设备执行之前在缓冲区中存储所接受和挂起的事务请求; 在所述缓冲区中保留至少一个可用的存储位置; 为发送未由所述接收者设备接受的所述事务请求之一的发起者设备生成信用证授予; 向所述发起者设备输出表示存在保留存储位置的所述信用证授予,使得来自所述发起者设备的随后事务请求将由所述接收者设备接受。
19.一种向多个接收者设备发送事务请求的方法,所述方法包括: 向所述多个接收者设备中相应的一个接收者设备发送所述事务请求之一; 从所述相应的一个接收者设备接收表示所述发送的事务请求尚未被所述相应的一个接收者设备接受的确认信号; 响应于表示所述发送的事务请求之一尚未被所述相应的一个接收者设备接受的至少一个确认信号,不再发送所述事务请求,直到接收了来自所述相应的一个接收者设备的信用证授予之后,所述信用证授予表示所述相应的一个接收者设备将接受来自所述发起者设备的随后事务请求。
20.一种接收者装置,用于经由至少一个互连装置从多个发起者装置接收事务请求,所述接收者装置包括: 至少一个端口装置,用于从所述至少一个互连装置接收所述事务请求以及向所述至少一个互连装置发送请求和信号; 确认信号生成装置,用于生成和输出表示请求已被所述接收者装置接收但还未被所述接收者装置接受的拒绝确认信号; 存储装置,用于在所述接收者设备执行之前存储接受和挂起的事务请求; 信用证生成装置,用于在所述存储装置中保留至少一个可用的存储位置,并且对于发送未由所述接收者装置接受的所述事务请求之一的发起者装置生成信用证授予,所述信用证授予向所述发起者装置表示至少存在一个保留的存储位置,以使得来自所述发起者装置的随后的事务请求将由所述接收者装置接受。
21.一种发起者装置,用于经由至少一个互连装置向多个接收者装置发送事务请求,所述发起者装置包括: 至少一个端口装置,用于从所述至少一个互连装置接收请求和信号以及向所述至少一个互连装置发送事务请求; 所述发起者装置包括事务请求发送装置,用于向各个所述接收者装置发送所述事务请求并且用于从所述互连装置接收表示所述发送的事务请求尚未由所述各个接收者装置接受的确认信号,并且用于响应于表示所述事务请求尚未被所述各个接收者装置接受的至少一个确认信号,而不再发送所述事务请求,直到在从所述各个接收者装置接收了信用证授予之后,所述信用证授予表示所述各个接收者装置将接受来自所述发起者装置的随后的事务请求。
全文摘要
公开了用于发起设备向接收设备发送的事务请求的动态资源分配。公开了用于生成事务请求的发起者设备和用于接收其的接收者设备。在存在用于事务请求的可用缓冲区存储的情况下,接收者设备接受事务请求。若没有可用的存储空间,确认信号生成器生成并且输出表示请求已被接收但未被接收者设备接受的拒绝确认信号。信用证生成器可保留缓冲区中至少一个可用的存储位置,并为发送未由接收者设备接受的事务请求之一的接收者设备生成信用证授予。信用证授予向发起者设备表示存在至少一个保留存储位置,使得来自发起者设备的随后事务请求将由接收者设备接受。
文档编号G06F9/46GK103164266SQ20121029019
公开日2013年6月19日 申请日期2012年8月8日 优先权日2011年8月8日
发明者潘尼德拉·库玛·曼娜瓦, 詹姆师德·加拉, 拉玛穆尔西·古鲁·普拉萨哈, 迈克尔·艾伦·菲利波, 布鲁斯·詹姆斯·梅休森, 蒂姆斯·查尔斯·梅斯 申请人:Arm有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1