用于决定任务分发路径的方法、设备和系统与流程

文档序号:11935129阅读:290来源:国知局
用于决定任务分发路径的方法、设备和系统与流程

本发明涉及一种在包含一个或多个总线和多个处理元件的设备中用于决定任务分发路径的方法。进一步地,本发明涉及一种构造成为决定任务分发路径的设备和系统。



背景技术:

当前,凭借快速发展的通信和计算技术使海量数据变得可用。尽管已经发展了高度专业化的处理元件,其适于有效地执行不同类型的处理任务,由于低效率地将任务从控制元件传送到合适的处理元件,浪费了很多的资源。

一些已知的硬件/软件解决方案可以在一个方向或其他方向上提供改进。但是,它们仍然不能改进上述列举的标准中的任何一项或至少大部分项。因此,仍然需要在多个处理元件上用于优化处理任务的改进的硬件或软件解决方案。



技术实现要素:

因此,本发明的目的是提供一种克服现有技术中上述所提及的一些问题的方法、设备和服务器系统。

特别地,通过所附的独立权利要求能实现本发明的优点。另外的方面,在所附的从属权利要求和说明书中详细地说明了本发明的实施例和特征,并本发明的实施例和特征有助于实现上述优点。

根据本发明的一个实施例,用于决定任务分发路径的方法包括以下步骤:

-从能够处理所述任务的所述多个处理元件中识别一个或多个处理元件;

-识别用于与一个或多个所识别的处理元件通信的一个或多个路径;

-针对所述所识别的处理元件和所识别的路径中的一个或多个,预测周期时长;

-从所述所识别的处理元件中选择优选的处理元件以及从所述所识别的路径中选择优选的路径。

本发明是基于以下思想:以周期时长预测为基础,选择使得任务最快地被处理的特定路径和特定处理元件。因此本发明的方法避免了使用不必要的长路径与处理元件通信或使用与待处理的给定任务不十分匹配的处理元件而引起的资源浪费。

特别地,本发明可以通过总线系统来实现,其中对于至少一个处理元件,用于与处理元件通信的至少两条路径是可用的。特别地,如果这至少两条路径的传输时间不同,则本发明是有利的。

总线中的一些元件可以同时充当控制元件和处理元件。例如,第一控制元件可以向第二控制元件发送任务,然后第二控制元件充当处理元件。

根据本发明的一个实施例,采用时分多址(Time Division Multiple Access,TDMA)方案来管理对一个或多个总线的访问。在一个简易的TDMA方案中,总线中的有源元件在固定的时间增量内发生改变。通过这种方式,能够预先确定将在何时允许哪个元件访问总线。在本发明的背景下,其优点是能够对一个或多个总线的未来可用性做出精确的预测。

根据本发明的另一个实施例,采用令牌传递方案来管理对一个或多个总线的访问。特别地,当第一元件完成对总线的访问后,访问令牌可以从总线的第一元件传递到下一个元件中去。由于避免了空闲时隙,令牌传递方案比简单的TDMA方案更加有效。另一方面,对未来总线可用性的预测变得更加复杂。为此,控制元件可以保留一份要在总线上执行的当前和未来任务的表单。这就允许了对未来总线可用性的准确预测和对处理元件和传输路径的选择,以使可以最有效地使用一个或多个总线。

根据本发明的另一个实施例,设置一个或多个总线为令牌环,即元件的邻居为该元件的物理邻居。

本发明也可以使用其他协议来控制对一个或多个总线的访问。这些协议可以包括静态和动态访问控制方案,例如调度方法和随机访问方法。

本发明可以用于不同类型的拓扑结构,特别地用于线性总线、环状总线和分支拓扑结构、星形网络和树形拓扑结构。在一些实施例中,本发明的方法甚至可以与完全连接的网格结合使用。

任务可以包括一个或多个指令和数据。

识别能够处理任务的一个或多个处理元件可以通过例如使用查找表单来进行,该查找表单为每个处理元件提供其具有的处理能力的信息。例如,对于包含图形处理单元(Graphic Processing Unit,GPU)的给定处理元件,该表单可以包括该处理元件能够处理与特定图形处理指令相关的特定任务的信息。

识别用于与一个或多个所识别的处理元件通信的一个或多个路径可以通过在表单中查找来实施,给定的处理元件经由哪些总线与正在请求处理该任务的控制元件相连。尽管只有一个总线可用来与给定的处理元件通信,但是可能有两个可用的方向,控制元件可以通过这两个方向与这个处理元件通信。在此情况下,可能有例如两条可用的路径在环状总线上沿顺时针方向或逆时针方向与处理元件进行通信。此外,总线可以包括分支,这也会产生可以用于与给定的处理元件进行通信的多条路径。

预测所识别的处理元件中的一个或多个和所识别的路径中的一条或多条的周期时长包括使用两个查找表单:存储控制元件和处理元件之间不同路径的路径长度的第一查找表单和存储关于不同任务和不同处理元件的期望处理时间的信息的第二查找表单。例如,第二查找表单可以包含的信息为特定图形处理指令在第一处理元件上需要10个时钟周期来处理,但是在第二处理元件上只需要8个时钟周期来处理。

在本发明的其他实施例中,仅存在一个查找表单,该表单包含关于在不同处理元件上不同类型的任务的期望处理时间的信息。例如,该表单包含在特定处理元件上针对特定指令的期望处理时间,以及关于处理时间如何根据该指令的输入数据量而变化的进一步的信息。

换句话说,可以基于以下各项信息中的一项或多项来预测周期时长:总线如何构造的信息;当前时刻总线和/或处理元件处于哪个状态或位置;关于哪些任务需要多少数据量来处理的信息;给定任务是否包含比存储在一个向量中更多的数据集的信息,以使得任务应该可以理想地分配在可用处理元件上,即跨各个处理元件和处理处理步骤的SIMD。

在一些情况下,预测是基于精确的计算进行的。在其他情况下,预测是基于启发学并仅是对真实路径时间或处理时间的粗略估计。

根据本发明的一个实施例,对所识别的处理元件和所识别的路径的周期时长的预测是基于以下步骤:

-用于在所识别的路径上向所识别所述处理元件传输指令和输入数据的预测向前传输时间;

-用于在所述所识别的路径上从所识别所述处理元件传输输出数据的预测返回传送时间;和/或

-用于在所述所识别的处理元件上处理所述任务的预测处理时间。

预测向前传输时间和预测返回传输时间包括对于整个输入数据到达处理元件的时间。

根据本发明的实施例,预测的周期时长为预测向前传输时间、预测返回传输时间和预测处理时间的总和。

该实施例的优点在于能够特别快速且有效地计算所预测的周期时长。在一些实施例当中,预测向前传输时间、预测返回传输时间和预测处理时间的总和可以是加权和。如果仅能够准确计算该预测时间中的一些,那么这会是特别有用的。在这种情况下,可以给予经过精确计算的时间更高的加权。

根据本发明的实施例,基于以下各项中的至少一项预测周期时长:

-一个或多个总线的当前可用性和/或利用率;以及

-一个或多个所识别的处理元件的当前可用性和/或利用率。

考虑总线和处理元件的当前可用性和/或利用率可以对路径时间和处理时间做出更加精确的预测。

根据本发明的实施例,该方法还包括:

-开始在选定的处理元件上的任务的处理;

-更新所述任务的预测的周期时长以获取所述任务的预测的剩余周期时长;

-如果判定所述预测的剩余周期时长高于在不同的处理元件中处理该任务的预测周期时长,则在选定的处理元件上取消该任务的处理;以及

-将该任务分配给该不同的处理元件。

更新任务的预测的周期时长以获取该任务的预测的剩余周期时长的优点在于,可以考虑仅在开始处理任务后才变得可用的进一步的信息。例如,在信息变得可用的情况下,已经开始处理某个任务的处理元件被减慢且预期地,可以决定取消在这个处理元件上处理该任务并将该任务转移到不同的处理元件上。

本发明的该实施例具有的进一步的优点是,如果该处理时间比预期的更长,则取消在给定的处理元件上处理该任务,这表明已经错误地预测在该处理元件上的该处理。

在本发明的其他实施例中,如果控制元件决定为了处理具有更高优先权的任务需要选定的处理元件,则可以取消在该处理元件上的该任务的处理。这在预测的可能未来任务的情况下是特别相关的。

在本发明的进一步优选的实施例中,将在给定处理元件上的任务的处理已经比预测占用更长的时间的信息存储在一个表单里面,且当为类似的任务预测处理元件的时候会考虑该信息。特别地,如果在给定的处理元件上对特定任务的处理失败了,会将这些信息存储在表单里面。在极端情况下,如果某一类型的任务在给定处理元件上的处理已经反复失败,即使该处理元件表明其为可用的,也会决定不在该处理元件上处理类似的任务。

根据本发明的实施例,该方法还包括:

-确定用于处理该任务的阈值时间;

-在选定的处理元件上开始处理该任务;

-检测该任务的实际处理时间是否高于阈值时间;

-如果实际处理时间高于阈值时间,则取消处理该任务;

-将该任务分配给一个不同的处理元件。

该实施例提供了一种决定何时取消执行特定任务的简单方式,因为其花费的时间明显长于预期,这可能是由于处理故障引起的。

根据本发明的另一实施例,提供了一种设备,包括:

-一个或多个总线;

-一个或多个控制元件;以及

-多个处理元件,其中,控制元件中的至少一个适于基于以下各项为任务决定分发路径:

-从能够处理任务的多个处理元件中识别一个或多个处理元件;

-识别用于与一个或多个所识别的处理元件通信的一个或多个路径;

-预测一个或多个所识别的处理元件和所识别的路径的周期时长;

-从所识别的处理元件中选择优选的处理元件并从所识别的路径中选择优选的路径。

根据本发明的实施例,控制元件中的至少一个适于基于以下各项预测周期时长:

-用于向所识别的处理元件传输指令和输入数据的预测向前传输时间;

-用于从所识别的处理元件传输输出数据的预测返回传送时间;和/或

-用于在所识别的处理元件内处理任务的预测处理时间。

根据本发明的实施例,控制元件中的至少一个用于执行以下步骤:

-在选定的处理元件上开始执行任务;

-更新该任务的预测的周期时长以获取任务的预测的剩余周期时长;

-如果判定预测的剩余周期时长高于在不同的处理元件中用于处理任务的预测的周期时长,则在选定的处理元件上取消处理该任务;以及

-将任务重新分配给该不同的处理元件。

根据本发明的实施例,所述设备还包括一个占用表,该占用表包含关于多个处理元件的当前可用性和/或利用率的信息,其中,控制元件适于定期更新在所述占用表中的信息。

根据本发明的实施例,一个或多个总线包括一个或多个环。

根据本发明的另一实施例,一个或多个总线包括用于传输指令的第一总线集和用于传输数据的第二总线集。这具有的优点在于,可以针对指令的低迟延传输来优化第一总线集,并且可以针对潜在的大数据量的高带宽传输优化第二总线集。特别地,第一总线集和第二总线集可以在不同的频率下操作,例如,第一总线集可以在高频下操作而第二总线集可以在低频下操作,但是提供每个周期更高的传输容量。

根据本发明的另一实施例,一个或多个总线包括单向且朝着相反方向的两个环。

通过这种方式,可以以特别有效的方式执行本发明,因为如果选择两个不同方向的环状总线中更为合适的那个总线,则可以节省很多的数据传输时间。

根据本发明的实施例,一个或多个总线包括元件元素互连总线(Element Interconnect Bus)。

根据本发明的另一实施例,多个元件中的至少一个连接到一个或多个总线,并还包括到初级处理元件的直接连接。

根据本发明的实施例,该设备还包括预测模块,该预测模块构造成为基于之前已处理的任务预测后续的任务。

预测后续任务的优点在于在实际执行后续任务之前,该任务需要的数据就已经得到预先加载。例如,如果检测到先前的任务涉及加载数据1.jpg、数据2.jpg和数据3.jpg,则预测模块会预测到后续任务可能将涉及加载可能存在的数据4.jpg并因此在相应的任务开始之前预先加载完成。在优选的实施例中,只有当系统处于低负载时,例如当控制元件的当前负载低于预先确定的阈值时,才会进行该数据的预先加载。

根据本发明的另一实施例,如果一个或多个新任务在一个或多个预测的后续任务开始执行之后到达,则该设备适于取消所述一个或多个预测的后续任务以执行当前的任务。例如,可以证明的是预测是不准确的,并且应该会执行新任务以替代已经预测的后续任务。

根据本发明的另一实施例,提供了一种服务器系统,包括根据上述描述的实施例的其中一项所述的设备。

通过这种方式,服务器系统也优选地构造成为以提供列举在本申请中的有益效果。此外,同时可以引入和/或使用现有的数据中心基础设施/组件/模块/元件。

根据本发明的实施例,提供了适于执行如上所述并在下面详细解释的方法的ASIC或FPGA。

根据本发明的另一方面,一个或多个总线、所述一个或多个控制元件以及所述多个处理元件中的至少一些处理元件位于同一芯片外壳内。这具有的优点是,可以获得特别高的带宽以与位于相同外壳内的组件进行通信。此外,这种设置在大规模生产中节省了成本。

根据本发明的另一实施例,提供了一种包括程序代码的计算机可读介质,该程序代码在由计算设备执行时使得计算设备执行如上所述并在下面更加详细解释的方法。

附图说明

了进一步的效果和优选实施例包含在从属权利要求中,并通过参考附图从下面给出的对优选实施例的描述中能够有一个更好的理解。在下面附图中:

图1示出了具有环状结构特别是形成设备的一部分的总线系统的示意图;

图2示出了具有环状结构的另一总线系统的示意图;

图3示出了具有环状结构的总线系统的示意图,其中每个环不与每个元件连接;

图4示出了具有指示当前和后续活性元件的指位器的另一总线系统的示意图;

图5示出了另一总线系统的示意图;

图6示出了具有可以双向操作的TDMA结构的总线系统的示意图;

图7示出了具有TDMA结构的总线系统的示意图,该TDMA结构具有分支并可以双向操作;

图7a示出了图7的总线系统的示意图,在其主分支中存在全局令牌。

图7b示出了图7的总线系统的示意图,在次分支中具有全局令牌并可选择地在不同的次分支中具有局部令牌;以及

图8示出了具有可以双向操作的TDMA结构的总线系统的示意图,其中并非所有而是一些元件共享相同的总线。

具体实施方式

图1示出了具有环状拓扑结构的总线系统110的示意图。特别地,总线系统110形成了设备D的一部分。总线系统110包括适于沿着逆时针方向传输指令和数据的第一环状总线112和适于沿着顺时针方向传输指令和数据的第二环状总线114。换句话说,第一环状总线112和第二环状总线114构造成为沿着相反方向传输指令和数据。与总线112和114相连的是充当控制元件的处理核120。此外,具有各种功能的多个元件122-134与总线112和114连接。这些元件122-134包括随机存取存储器(RAM)122、闪速存储器124、大容量存储控制器126、网络接口控制器128、12C总线130、外部组件互连传输(Peripheral Component Interconnect Express,PCIe)总线132以及另外的杂项装置134。

环状总线112和114设置成为以时移的方式操作的在连接元件120-134之间的直接连接。对于图1中的系统,这些元件120-134与总线112和114均相连。但是,总线112和114之间不存在直接连接。相似地,图2和图5中所示的系统不包括在总线之间的任何直接连接。在本发明的其他的实施例中,这些总线之间可以包括直接连接。

依次地,允许这些连接元件120-134写入,即活性状态从一个元件传递到下一个元件并且只有在给定时间点处于活性状态的元件才能进行读或写操作。在一些实施例中,在一个时钟周期内可以传输不止一个任务。同样,多个数据集可以附加到一个任务上(SIMD)。根据总线环的数量、连接元件120-134的数量以及指位器的起始位置和方向,可能会发生多于一个环在一个时间点处寻址相同的元件。针对上述情况,可以设置FIFO缓冲器用来吸收附加的指令和数据。在图1中,FIFO缓冲器135仅仅示出以用于其他杂项元件134,但是可以以类似的方式为所有的处理元件120-134提供FIFO缓冲器。

图2示出了非独占总线系统210的示意图,该非独占系统210包括具有处理核220以及与处理核220相连的RAM222的环状总线212和214。此外,处理核220和RAM222通过直接连接221相连。另外的元件可以与环状总线212和214相连,但是在图2中未示出。与图1中的总线系统110相似,图2中的总线系统包括适于沿着逆时针方向传输指令和数据的第一环状总线212和适于沿着顺时针方向传输指令和数据的第二环状总线214。

应当注意的是,在本发明的其他实施例中,图1和图2中示出的环状总线112和114以及212和214也可以以访问协议的方式实现,其中当第一元件完成对总线的访问时,活性时隙从第一元件传递到下一个元件。这可以例如作为令牌环访问方案的实现方式,其中当元件120-134、220和222完成对总线的访问时,该元件将令牌传递到下一个元件120-134、220和222中。

图3示出了包括两个环312和314的总线系统310的示意图,其中第一环312和第二环314都不与所有的处理元件320至334相连。与图1中的总线系统110相似,图3中的总线系统包括适于沿着逆时针方向传输指令和数据的第一环状总线312和适于沿着顺时针方向传输指令和数据的第二环状总线314。在图3的实施例中,只有处理核320均与第一环312和第二环314相连。在本发明的其他实施例中,与第一环312和第二环314均相连的一个或多个元件可以是与芯片外部的元件相连的RAM或控制器。位于芯片外部的其他设备334可以通过FIFO缓冲器335与这两个环312和314相连。

图4示出了具有环状总线412的总线系统410的示意图,其中指向当前活性元件的指位器指示为P0,指向下一个活性元件的指位器指示为P1至P7。在这个实施例中,充当控制元件的处理核420、RAM422、闪存424、存储器426、NIC428、I2C总线430、PCIe432以及其他元件434均通过FIFO缓冲器435与环状总线412相连。环状总线412构造成为沿着顺时针方向传输数据,并且指位器沿着顺时针方向通过环状总线。在示出的例子中,这些元件420-434分开一个时钟周期的时长。其他实施例可能提供指位器位置以不同的时间增量来通过环状总线,时间增量的时长可以相等或不相等。指位器的转发可以由例如基于分配给不同元件的静态优先级来决定。

图5示出了根据本发明的实施例的另一总线系统510的示意图。

将利用以下附图来说明根据本发明的实施例的一种操作模式:假设主处理元件520a充当控制元件且发送任务,该任务可以在辅处理元件536-550中的其中一个上进行处理:根据现有技术的处理方法,基于存储在查找表中的一个中的之前成功的结果,使用第一环512将该任务发送到辅处理元件540,其需要14个时钟周期。在辅处理元件中处理后,该处理需要4个时钟周期,输出数据被返回到第一环状总线512上的主处理元件520a上,其会需要另外的3个时钟周期。在活性时隙返回到主处理元件520a之前还将另外花费13个时钟周期。这使得总的周期时间为14+4+13+3=34个时钟周期。根据本发明,理想地,如果通过第二环514将任务发送到辅处理元件540a中并通过第一环512返回到主处理元件520a中而不存在任何的总线等待时间,则确定预测的周期时间为仅仅3+4+0+3=10个时钟周期,因为通过该结构,环514可以具有对环512完全匹配的偏移。在这个例子中,根据本发明的方法可以使得周期时间下降到小于根据现有技术方法的周期时间的三分之一。

n个已连接的元件对应于n个不同的指位器位置。

图6示出了根据本发明的一方面的另一总线系统610的示意图。总线系统610设置成为有具有线性拓扑和时分多址方案的两个双向总线612和614。图6示出了与线性总线612和614均相连的3个元件620、622和640。一般来说,可以有n个这样的元件与这两个总线相连。这些元件620、622和640中的几个可以充当控制元件,其余的充当处理元件,该处理元件由控制元件控制。除了控制元件和处理元件,其他的元件,例如RAM控制器,也可以与总线612和614相连。

或者,总线系统610也可以使用令牌传递方案进行设置,其中令牌从一个站点传递到下一个站点,其中的“下一个”站点是基于与总线相连的元件的总线接口的地址来定义的。

在本发明的另一实施例中,可以通过已连接的控制元件推动或拉动指位器来从任何其他连接的元件中接收或发送数据或接收或发送数据到任何其他连接的元件。

图7示出了包括三个线性部分712a、712b和712c的非独占总线系统710的示意图,其中该三个线性部分为双向总线并通过分支713相连。与总线系统710相连的是:连接到第一线性部分712a的两个控制元件720a,720b和RAM722、连接到第二线性部分712b的两个处理元件730和732以及连接到总线系统710的第三线性部分712c的两个处理元件740和742。除了图7中示出的第二和第三线性部分712b和712c,还可以有连接到第一线性部分712a的任意数量的附加线性部分。这些附加线性部分可以包括相同数量的连接元件。

例如,RAM元件722一共有三个物理邻居:控制元件720b、第二线性部分712b的处理元件730以及第三线性部分712c的处理元件740。因此,应该使用令牌传递方案管理对总线系统710的访问,其中,相邻关系是基于连接的元件的地址来定义的。应注意的是,线性部分712b和712c可以同时处于活性状态。临时或二级令牌用于在一个线性部分内分配活性时隙。关于线性部分712a、712b和712c的当前状态和预测的后续可用性的信息可以用于周期预测方法和通过决定任务分配到哪些处理元件。

在有利的实施例中,存在一个主分支部分和多个次分支部分以允许每个总线712a,b,c使用至少一个令牌。这如图7a和7b所示,其中,第一线性部分712a形成主分支而且第二和第三线性部分712b、712c形成次分支部分。

为避免冲突,仅可以存在一个总是具有遍历优先级的全局令牌750。在图7a和7b中全局令牌750以大的星形示出,局部令牌752以小的星形示出。如图7a所示,如果全局令牌750存在于主分支部分上,则在任何一个次分支部分都不存在任何的局部令牌。然而,如果全局令牌750存在于次分支部分的其中一个中时,如图7b所示,则可以允许局部令牌752存在于所有或部分其他次分支部分当中,其中本地令牌752不能离开各自的次分支部分。

图8示出了包括两个双向总线812和814的非独占总线系统810的示意图。第一控制元件820a、第二控制元件820b和RAM822连接到第一总线812和第二总线814。n个处理元件830和832仅连接到第二总线814且n个处理元件840和842仅连接到第一总线812。这种结构可以重复n次以使得可以有m*n个与总线系统810相连的处理元件。图8中示出的结构的优点在于,例如控制元件820a、820b和RAM 822之间的通信可以通过第一总线812和第二总线814发生。这使得总带宽比用于与处理元件830、832、840和842通信的带宽相比高两倍,处理元件830、832、840和842可以比RAM822更少地被访问。通过这种方式,该架构适于典型的负载场景。另外的有益效果在于可以同时与至少一个SPE进行通信。

对于总线812和814的访问可以通过简单的时分多址方案实施。或者,例如可以使用令牌传递方案或二者的结合。

关于上述描述的实施例,应注意的是上述实施例可以彼此结合。此外,应理解为附图中示出的总线系统可以包括附图中未示出的另外的元件和另外的总线。特别地,图7中示出的分支也可以将环状总线与线性部分的连接。此外,通过网桥进行连接或共享至少一个元件的不同的总线可以使用不同的访问方案。

特别地,总线系统110、210、310、410、510、610、710和810形成设备D的一部分。该设备因此包括一个或多个总线112、114、212、214、312、314、412、512、514、612、614、712a、712b、712c、812、814,一个或多个控制元件120、220、320、420、520a、520b、620、720a、720b以及多个处理元件122-134、222、322-334、422-434、522-550、620-640、720a-742、822-842。在这个设备D中,至少一个控制元件120、220、320、420、520a、520b、620、720a、720b适于基于以下各项决定任务的分发路径:

-从能够处理该任务的多个处理元件中识别一个或多个处理元件122-134、222、322-334、422-434、522-550、620-640、720a-742、822-842;

-识别用于与一个或多个所识别的处理元件122-134、222、322-334、422-434、522-550、620-640、720a-742、822-842通信的一个或多个路径;

-预测所识别的处理元件122-134、222、322-334、422-434、522-550、620-640、720a-742、822-842中的一个或多个和所识别的路径中的一条或多条的周期时长,从所识别的处理元件122-134、222、322-334、422-434、522-550、620-640、720a-742、822-842中选择优选的处理元件并从所识别的路径中选择优选的路径。

此外,还存在一种服务器系统,包括根据所述方面配置的至少一个设备D。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1