当前位置: 首页 > 专利查询>ARM有限公司专利>正文

改善对非连贯设备要执行的任务的调度制造技术

技术编号:7898071 阅读:159 留言:0更新日期:2012-10-23 04:18
本发明专利技术公开了改善对非连贯设备要执行的任务的调度。公开了用于调度多个非连贯处理设备中的一个处理设备要处理的任务的方法,这些处理设备中的至少两个是异种设备并且任务中的至少一些是针对这些处理设备中的特定一个的,和包括非连贯设备和用于调度任务的任务调度器的数据处理装置。这些处理设备处理本地存储库和这些处理设备中的至少一些可访问的存储器中存储的数据。方法包括:对于处理设备要处理的多个非依从任务中的每个,确定在处理非依从任务之前需执行的一致性操作;执行针对非依从任务之一的一致性操作并在完成时将该任务发出到处理设备以处理;执行针对另一非依从任务的一致性操作,使得在这些一致性操作完成时处理设备可处理另一任务。

【技术实现步骤摘要】
改善对非连贯设备要执行的任务的调度
本专利技术涉及数据处理的领域,具体而言涉及对非连贯设备(non-coherentdevice)要执行的任务的调度。
技术介绍
已知具有多个彼此交互的设备并且具有存储器系统的系统。在这多个不同设备有其自己的用于数据的本地存储库的情况下,可能遇到维护不同本地存储位置和存储器之间的数据连贯性(coherency)的问题。一般地,设备通过执行一致性操作(consistencyoperation)来解决此问题,一致性操作例如有缓存维护操作、使用屏障(barrier)以及在执行中的特定点冲刷本地存储库,其中重要的是数据对于系统的其余部分的至少一部分是连贯的。对于诸如图形处理单元GPU之类的具有长管道(pipeline)的设备,可能遇到特别的问题。在一致性操作正被执行的同时等待GPU执行一项任务向管道中引入了气泡,这在深管道中有严重的缺点。现有技术的设备或者立即执行一致性操作,这一般导致多个更新并因此具有与之相关联的带宽成本,但具有低等待时间,或者它们等待并在批处理中一起执行一致性操作,这避免了不必要的多个更新,但增大了等待时间。希望既减小与这种一致性操作相关联的等待时间,又不会过度影响带宽。
技术实现思路
从第一方面来看,本专利技术提供了一种用于对多个非连贯处理设备中的一个非连贯处理设备要处理的任务进行调度的方法,所述多个非连贯处理设备中的至少两个是异种设备(heterogeneousdevice)并且所述任务中的至少一些是针对所述多个非连贯处理设备中的特定一个的,所述多个非连贯处理设备处理本地存储库和所述多个非连贯处理设备中的至少一些可访问的存储器中存储的数据,所述方法包括:对于所述非连贯处理设备要处理的多个非依从任务(non-dependenttask)中的每个非依从任务,确定在处理所述非依从任务之前需要执行的一致性操作;执行针对所述多个非依从任务中的一个非依从任务的一致性操作并且在完成时将所述任务发出到所述处理设备以处理;执行针对另一非依从任务的一致性操作,使得在这些一致性操作完成时所述非连贯处理设备能够处理所述另一任务。本专利技术认识到,虽然在设备彼此一致并且能够在它们之间自由传递数据之前可能需要执行多个一致性操作,但为了非连贯设备执行特定任务,要使此任务安全执行可能只需要执行完整的一致性操作的子集。从而,不是执行所有一致性操作,本专利技术确定对于特定任务必要的一致性操作并且只执行这些一致性操作。当它们完成时,该任务可被发出到非连贯设备以便处理,同时并行地,后续任务所需的一致性操作可被执行。一旦这些一致性操作完成了,该后续任务就准备好被非连贯设备处理。由于一般在任何设计良好的系统中,一致性操作花的时间将少于与之相关联的任务,所以针对后续任务的一致性操作将在先前任务执行之前完成,从而后续任务将在设备准备好执行它之前就准备好被发出来供执行。从而,由一致性操作引入到系统中的等待时间一般只是与针对第一任务的一致性操作相关联的等待时间。应当注意,至少一些设备是异种设备,并且至少一些任务是针对特定设备的。这与具有同种核心的设备不同,在具有同种核心的设备的情况下任务可依据可用性和负载而被重引导至不同核心。异种设备是在其执行能力方面具有不同的属性或性能的设备。例如,具有专用图像操纵电路的GPU的执行性能将比CPU上的等效软件更高效且快得多。这个差异可能如此显著,以至于选择在较慢的设备上做工作以避免需要一致性工作,将不是不可行的。在其他设备中,功能在一个设备上可能是完全没有的,从而其将不能够执行某些功能。本专利技术关注了至少在一些情况下不能在设备之间移植任务的情形。从而,对于本专利技术的实施例及其实现方式的操作的一个约束是设备是预先选择的,从而对其的选择不能被用作优化的另一维度。在一些实施例中,非依从任务是独立于所有在处理之前要求执行一致性操作的任务的任务,所述方法包括在所述执行针对所述多个非依从任务中的所述一个非依从任务的一致性操作的步骤之后、在执行所述针对另一非依从任务的一致性操作的步骤之前的另一步骤:重评估依从于所述一个非依从任务的任何任务以确定所述任何任务是依从的还是非依从的。非依从任务可被看作是不依从于任何其他要处理的待处理任务的任务。然而,在此实施例的上下文中,非依从任务是这样的任务:该任务不依从于任何其他有一致性操作需要执行的待处理任务。例如,如果任务a、b、c、d具有以下依从性:a=>b=>d,并且c=>d,也就是说a必须在b之前执行,b必须在d之前执行,并且c必须在d之前执行,那么最初a和c被视为非依从任务。然而,一旦已为任务a执行了一致性操作,则独立于任务a是否完成,b被视为非依从任务,从而使得如果针对任务b的一致性操作小于针对任务c的,则它们可被先执行。从而,在每个一致性任务完成之后,可以根据任务现在是否被认为是非依从的来重评估一致性工作的顺序。在一些实施例中,所述非连贯处理设备包括任务队列存储库,用于在至少一个任务的执行之前将该任务存储在队列中,并且在针对所述另一非依从任务的一致性操作完成时将所述另一任务发送到所述非连贯处理设备以被处理或者如果所述非连贯处理设备正在处理先前的任务则被存储在所述任务存储队列中等待处理。如果非连贯处理设备具有用于将至少一个任务存储在队列中的任务队列存储库,则可能是有利的。如果是这样的话,则在针对另一任务的一致性操作完成之后,这个另一任务可被发送到非连贯处理设备并且可待在队列中等待执行,并且只要非连贯处理设备准备好执行它就可被执行。这样,在这个点在管道中将不会出现气泡,因为将不需要等待该另一任务的一致性操作被执行,该另一任务将在队列中等待,准备好被执行。在一些实施例中,所述方法包括初始步骤:确定所述任务的能够被彼此独立地执行的部分并且在可能的情况下将所述任务细分成所述多个非依从任务。确定哪些是最适当的原子任务(atomictask)以将任务细分成这些原子任务,可能是有利的。换言之,能够做出的非依从任务的最小细分是什么。通过将任务细分成小分割,可以减小系统的等待时间,因为以这种方式可以为小任务执行一致性操作,然后该任务可在下一任务的一致性操作被执行的同时被执行。在一些实施例中,所述方法包括所述初始步骤之后的步骤:确定所述任务的依从性并且提供对所述任务的排序以减小初始等待时间。一旦任务已被细分成非依从任务,调度器就可基于每个任务的一致性工作的大小来执行排序以减小初始等待时间。从而,具有最小一致性工作的任务可被选择来首先执行。在其他实施例中,在执行针对所述另一非依从任务的一致性操作之后,所述方法将所述另一任务存储在特权队列中,准备好响应于表明所述非连贯设备准备好处理所述另一任务的指示而输出到所述非连贯设备。如果在非连贯处理设备上没有任务队列存储库,则该另一任务被存储在可以采取环形缓冲区的形式的特权队列中,可能是有利的。此队列可以在执行连贯性操作的设备上,或者其可以在存储器中。任务将存在于此特权队列中,准备好输出。当非连贯设备准备好处理另一任务时,它将此通知给执行一致性操作的设备,并且该任务随后可被迅速且高效地传送给它。这避免了非连贯设备为另一任务等待太长时间。此系统的一个缺陷是在不同设备之间需要更多通信。在一些实施例中,所述一致性操作包括以下各项中的至少一本文档来自技高网...
改善对非连贯设备要执行的任务的调度

【技术保护点】
一种用于对多个非连贯处理设备中的一个非连贯处理设备要处理的任务进行调度的方法,所述多个非连贯处理设备中的至少两个是异种设备并且所述任务中的至少一些是针对所述多个非连贯处理设备中的特定一个的,所述多个非连贯处理设备处理本地存储库和所述多个非连贯处理设备中的至少一些可访问的存储器中存储的数据,所述方法包括:对于所述多个非连贯处理设备中的一个非连贯处理设备要处理的多个非依从任务中的每个非依从任务,确定在处理所述非依从任务之前需要执行的一致性操作;执行针对所述多个非依从任务中的一个非依从任务的一致性操作并且在完成时将所述任务发出到所述一个非连贯处理设备以处理;执行针对另一非依从任务的一致性操作,使得在所述一致性操作完成时所述非连贯处理设备能够处理所述另一任务。

【技术特征摘要】
2011.03.24 GB 1104958.21.一种用于对多个非连贯处理设备中的一个非连贯处理设备要处理的任务进行调度的方法,所述多个非连贯处理设备中的至少两个是异种设备并且所述任务中的至少一些是针对所述多个非连贯处理设备中的特定一个的,所述多个非连贯处理设备处理本地存储和所述多个非连贯处理设备中的至少一些可访问的存储器中存储的数据,所述方法包括:对于所述多个非连贯处理设备中的一个非连贯处理设备要处理的多个非依从任务中的每个非依从任务,确定一致性操作,其中所述一致性操作是在处理所述非依从任务之前需要执行的操作;执行针对所述多个非依从任务中的一个非依从任务的一致性操作并且在完成时将所述多个非依从任务中的一个发出到所述一个非连贯处理设备以处理;执行针对另一非依从任务的一致性操作,使得在所述一致性操作完成时所述非连贯处理设备能够处理所述另一任务,其中,非依从任务是独立于所有在处理之前要求执行一致性操作的任务的任务;并且在所述执行针对所述多个非依从任务中的所述一个非依从任务的一致性操作的步骤之后、在执行所述针对另一非依从任务的一致性操作的步骤之前,重评估依从于所述多个非依从任务中的所述一个非依从任务的任何任务以确定所述任何任务中的哪些是依从的还是非依从的。2.根据权利要求1所述的方法,其中,所述非连贯处理设备包括任务队列存储库,用于在至少一个任务的执行之前将所述任务存储在队列中,并且在针对所述另一非依从任务的一致性操作完成时将所述另一任务发送到所述非连贯处理设备以被处理或者如果所述非连贯处理设备正在处理先前的任务则被存储在所述任务存储队列中等待处理。3.根据权利要求2所述的方法,还包括从所述非连贯处理设备接收表明所述任务队列存储库具有容量的指示并且响应于所述指示而发送准备好执行的任何另外任务。4.根据权利要求2所述的方法,还包括从所述非连贯处理设备接收表明所述任务队列存储库具有容量的指示,并且响应于所述指示以及没有任务的一致性操作已完成而记录所述指示,以使得在待处理的连贯性操作完成时相应的任务被放在所述队列中。5.根据权利要求1所述的方法,包括初始步骤:确定所述任务的能够被彼此独立地执行的部分并且在可能的情况下将所述任务细分成所述多个非依从任务。6.根据权利要求5所述的方法,其中,所述初始步骤包括将所述任务中的至少一些细分成有可能的最小的任务。7.根据权利要求5所述的方法,还包括在所述初始步骤之后执行的步骤:确定所述任务的依从性并且提供对所述任务的排序以减小初始等待时间。8.根据权利要求1所述的方法,其中,在执行针对所述另一非依从任务的一致性操作之后,所述方法将所述另一任务存储在特权队列中,准备好响应于表明所述非连贯设备准备好处理所述另一任务的指示而输出到所述非连贯设备。9.根据权利要求1所述的方法,其中,所述一致性操作包括以下各项中的至少一种:连贯性操作,以及其他数据传送操作,用以确保所述多个处理设备和所述存储器之间的一致性。10.根据权利要求1所述的方法,所述方法还包括执行针对多个另外的非依从任务的一致性操作并且在针对所述多个另外的非依从任务中的每个另外的非依从任务的一致性操作完成时,确定所述非连贯处理设备是否有容量来接收所述另外的非依从任务并且响应于所述非连贯处理设备有容量而将所述另外的非依从任务发出到所述非连贯处理设备。11.根据权利要求1所述的方法,其中,所述对于所述非依从任务中的每一个确定要执行的一致性操作的步骤包括确定所述任务中的哪个任务有最小数目的一致性操作与之相关联并且在执行针对其他任务的其他一致性操作之前执行所述最小数目的一致性操作并将所述任务发出到所述非连贯处理设备。12.根据权利要求1所述的方法,其中,处理所述任务的所述非连贯处理设备包括具有深管道的图形处理单元。13.根据权利要求12所述的方法,...

【专利技术属性】
技术研发人员:罗伯特·伊利奥特
申请(专利权)人:ARM有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1