首页> 中国专利> 处理管理装置、计算机系统、分布式处理方法和计算机程序

处理管理装置、计算机系统、分布式处理方法和计算机程序

摘要

当在连接到网络的处理设备和用于管理处理设备的处理管理设备中执行分布式处理时,可以消除处理管理设备的开销。管理在其控制下的处理设备(SPU)(207)的处理管理设备(PU)(203)在资源表中列出SPU(207)和连接到网络的其它SPU的网络地址,以及指示SPU的当前任务执行能力的资源信息。当SPU中的一个发送任务请求给PU(203)时,PU(203)指定资源表中能够执行任务请求的一或多个SPU,并且请求指定的SPU执行包含执行结果指定目的地的任务,从而允许不用PU(203)就执行结果发送/接收。

著录项

  • 公开/公告号CN101006426A

    专利类型发明专利

  • 公开/公告日2007-07-25

    原文格式PDF

  • 申请/专利权人 索尼计算机娱乐公司;

    申请/专利号CN200580027739.0

  • 发明设计人 加藤裕树;前川博俊;石田隆行;

    申请日2005-06-09

  • 分类号G06F9/50(20060101);

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人李德山

  • 地址 日本东京

  • 入库时间 2023-12-17 18:54:43

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2009-03-18

    授权

    授权

  • 2007-09-19

    实质审查的生效

    实质审查的生效

  • 2007-07-25

    公开

    公开

说明书

技术领域

本发明涉及允许由连接到宽带网络环境的多个计算机执行高效任务的计算机系统、分布式处理方法以及允许这样分布式处理的计算机体系结构。

背景技术

近来,连接到网络的多个计算机通过进行协作来执行分布式任务处理。通常,当执行分布式任务处理时,可与网络连接的所有计算机的处理能力存储于其中的服务器在决定哪个任务被分配给哪个计算机方面是必要的。当试图执行分布式处理时,服务器指定任务的负载量和连接到网络的每个计算机的富裕处理能力(计算资源),然后每个任务被顺序地分配给具有与负载相应的富裕处理能力的计算机,并且从分配给任务的计算机接收任务的执行结果。

在现有技术中的需要服务器的分布式处理方法中,很难在服务器中检测到被任意连接到网络和断开与网络连接的计算机的富裕处理能力。进一步地,服务器必须从对其请求分布式任务处理的计算机接收执行结果,并且必须将结果发送给任务的请求者。因此,提高了服务器的开销。所以,经常产生执行任务所需的时间增加,以及通过网络的数据通信所需的时间也增加的问题。

提供克服传统问题的分布式处理的结构是本发明的主要目的。

发明内容

本发明利用用于有特点的处理管理装置、计算机系统和分布式处理管理的设备和计算机程序克服了以上问题。

本发明的处理管理装置适于被连接到多个处理设备所连接到的网络,每个处理设备包含执行所请求的任务和将执行结果传送到由任务的请求者指定的目的地的功能,该处理管理装置包括:用于允许访问预定存储器的第一管理装置,在所述预定存储器中列出用来表示连接到网络的处理设备的任务执行能力的资源信息,以及用于允许与处理设备进行网络通信的通信设置信息;用于在通过网络通信从任何处理设备接收到任务要求时,通过在存储器中列出的资源信息指定能够执行任务的处理设备的第二管理装置,其中第二管理装置从存储器获得指定处理设备的通信设置信息,并且将其它处理设备的通信设置信息传送到该指定处理设备和请求任务要求的处理设备中的至少一个处理设备,从而允许通过网络通信在处理设备之间直接传送执行结果。

处理管理装置可包括存储器;以及用于在所述存储器中记录资源信息和通信设置信息的保存装置。

进一步地,该任务可包含用于请求执行要在执行该任务之后执行的后续任务的任务执行请求;以及针对后续任务的执行结果的目的地的信息。

基于记录在存储器中的处理设备的通信设置信息,第二管理装置可向指定处理设备请求执行包含所接收任务的执行结果的目的地的任务。或者,第二管理装置可使请求任务要求的处理设备向指定处理设备请求直接任务执行。

处理管理装置可包括用于在网络上产生共享空间的共享空间模块,其中多个所述处理设备随时加入或离开共享空间。在该情况下,第二管理装置从加入由共享空间模块产生的共享空间的处理设备获得处理设备的通信设置信息和当前资源信息,并且在所述存储器中列出这些获得的信息以便将这些获得的信息置成有效状态,而将针对离开共享空间的处理设备列出的信息置成无效状态。在最简单的实施例中,“将信息置成无效状态”可通过仅仅删除信息来实现,然而,其可通过使用代表“有效”或“无效”的标记来实现。

本发明的计算机系统包括:处理设备,均包含执行所请求的任务和将执行结果发送到由任务的请求者指定的目的地的功能;以及经由内部总线连接到处理设备的处理管理装置。注意到,处理设备和处理管理装置经由内部总线被分别连接到网络。

注意到,处理管理装置包括:用于允许访问预定存储器的第一管理装置,在所述预定存储器中列出用来表示连接到网络的处理设备的任务执行能力的资源信息,以及用于允许与处理设备进行网络通信的通信设置信息;用于在通过网络通信从任何处理设备接收到任务要求时,通过在存储器中列出的资源信息指定能够执行任务的处理设备的第二管理装置,其中第二管理装置从存储器获得指定处理设备的通信设置信息,并且将其它处理设备的通信设置信息传送到该指定处理设备和请求任务要求的处理设备中的至少一个处理设备,从而允许通过网络通信在处理设备之间直接传送执行结果。

用于本发明的分布式处理管理的设备适于被安装在计算机系统中,该计算机系统适于被连接到多个处理设备所连接到的网络上,每个处理设备包含执行所请求的任务和将执行结果发送到由任务的请求者指定的目的地的功能,其中用于分布式处理管理的设备执行预定计算机程序以使计算机系统充当:用于允许访问预定存储器的第一管理装置,在所述预定存储器中列出用来表示连接到网络的处理设备的任务执行能力的资源信息,以及用于允许与处理设备进行网络通信的通信设置信息;用于在通过网络通信从任何处理设备接收到任务要求时,通过在存储器中列出的资源信息指定能够执行任务的处理设备的第二管理装置,其中第二管理装置从存储器获得指定处理设备的通信设置信息,并且将其它处理设备的通信设置信息传送到该指定处理设备和请求任务要求的处理设备中的至少一个处理设备,从而允许通过网络通信在处理设备之间直接传送执行结果。

一种用于执行本发明的分布式处理的方法在多个处理设备与处理管理装置之间协作执行分布式处理,每个处理设备具有执行所请求的任务和将执行结果发送到由任务的请求者指定的目的地的功能,并且处理管理装置经由网络与每个处理设备通信,该方法包括步骤:在处理管理装置中,获得用来表示连接到网络的处理设备的任务执行能力的资源信息和用于允许与处理设备进行网络通信的通信设置信息,并且在预定存储器中列出这些获得的信息;在任何处理设备中,传送任务要求给处理管理装置;在接收任务要求的处理管理设备中,根据记录在存储器中的信息指定至少一个处理设备,其能够执行所接收的任务要求,并且请求指定的处理设备执行包含执行结果的目的地的任务,从而允许无需处理管理装置介入而直接传送执行结果。

本发明的计算机程序是用于使计算机充当适于被连接到多个处理设备所连接到的网络的处理管理装置的计算机程序,每个处理设备包含执行所请求的任务和将执行结果发送到由任务的请求者指定的目的地的功能,其中计算机程序使计算机充当:用于允许访问预定存储器的第一管理装置,在所述预定存储器中列出用来表示连接到网络的处理设备的任务执行能力的资源信息,以及用于允许与处理设备进行网络通信的通信设置信息;用于在通过网络通信从任何处理设备接收到任务要求时,通过在存储器中列出的资源信息指定能够执行任务的处理设备的第二管理装置,其中第二管理装置从存储器获得指定处理设备的通信设置信息,并且将其它处理设备的通信设置信息传送到该指定处理设备和请求任务要求的处理设备中的至少一个处理设备,从而允许通过网络通信在处理设备之间直接传送执行结果。

附图说明

图1是图解本发明被应用到的整个计算机系统的示例图。

图2是图解公共于所有计算机的PE的结构的示例图。

图3是图解具有多个PE的BE的示例图。

图4是图解SPU结构的示例图。

图5是图解通过网络传送的包的示例图。

图6图解了包含在包内的示例性DMA命令,图6(a)图解了包含用于在SPU的局部存储器中加载程序等的命令的DMA命令,以及图6(b)图解了包含用于启动程序的启动命令的DMA命令。

图7是图解包括若干SPU的信息综合系统的示例图。

图8是说明PU中所产生的功能和表格等的示例图。

图9是图解表示集群表和资源表的使用的实施例的示例图。

图10是图解资源表、SPU状态表和集群列表之间的关系的示例图。

图11图解了在PU中形成的任务管理器中所执行的处理过程。

图12图解了在PU中形成的资源分配器中所执行的处理过程。

图13是图解利用任务管理器的总处理框架的示例图。

图14是图解利用任务管理器的总处理框架的可选示例图。

具体实施方式

首先,描述根据本发明的计算机系统的总体构造。

<网络型计算机系统的概述>

图1根据本发明图解了整个计算机系统101。计算机系统101包含网络104。网络104的例子包含局域网(LAN),类似因特网的全球计算机网络,以及其它计算机网络。

每个计算机随时可被分别连接到网络104,并且可以与其它计算机进行双向通信。计算机的例子包含个人计算机106、服务器计算机108、具有通信功能的游戏控制台110、PDA 112以及其它有线或无线的计算机和计算装置。

每个计算机分别具有处理器单元(以下简称为“PE”),其具有公共结构。这些PE全部具有相同的ISA(指令集结构),并且根据相同的指令集执行预定处理。包含在各自计算机内的PE的数量取决于该计算机处理任务所需的处理能力。

由于计算机的PE具有同构结构,所以可提高计算机系统101中的适应能力。利用其PE的一个或多个,或利用其PE的一部分,每个计算机可以执行其它计算机请求的任务。因此,确定用于相应任务的计算机变得不太重要。通过仅将已请求任务的计算机指定为目的计算机,或仅将执行后续任务的计算机指定为目的计算机,传送所请求的任务的执行结果。因此,可以容易地在连接到网络104的多个计算机中间进行每个任务的分布式执行。

因为每个计算机包含具有公共结构并使用公共ISA的PE,所以避免了为实现处理器之间的兼容性而附加的软件层的计算负担。进一步地,可避免异构网络的许多问题。因此,在这个系统101中可实现宽带处理。

<计算机的体系结构>

下文中将说明计算机的体系结构。首先,参考图2描述了每个计算机中提供的PE的结构例子。

如图2所示,PE 201包含处理单元(PU)203、直接存储器存取控制器(DMAC)205,以及多个不同于PU的子处理器单元(SPU),即SPU 207、SPU 209、SPU 211、SPU 213、SPU 215、SPU 217、SPU219和SPU 221。 PE总线223相互连接SPU、DMAC 205和PU 203。PE总线223可具有传统体系结构等,或可被实现成包交换网络。当实现成包交换网络时,需要其它的硬件,从另一方面来说,增加了可用带宽的量。

可使用用于实现数字逻辑的各种方法来构建PE 201。然而,PE201最好被构建成单个集成电路。PE 201通过高带宽存储器连接227被连接到动态随机存取存储器(DRAM)225。DRAM 225用作PE 201的主存储器。虽然主存储器最好是DRAM 225,但也可使用其它类型的存储器将其实现成例如静态随机存取存储器(SRAM)、磁性随机存取存储器(MRAM)、光存储器或全息存储器。DMAC 205为PU 203和SPU207提供针对DRAM 225的直接存储器访问(DMA)。例如通过在前级中形成交叉交换器可实现DMA。

通过向DMAC 205发出DMA命令,PU 203控制SPU 207等。在该情况下,PU把SPU 207等看作独立的处理器。因此,为了控制SPU 207等的处理,PU使用类似于远程过程调用的命令。这些命令被称作“远程过程调用“(RPC)。PU 203通过向DMAC 205发出一系列DMA命令来执行RPC。DMAC 205加载SPU执行请求的任务执行所需要的程序(以下简称为“SPU程序”),并且加载其相关数据。然后,PU 203向SPU发出初始启动命令来执行SPU程序。

没有绝对必要将PU 203提供成网络型处理器,并且PU 203可包含标准处理器,其可以包含独立型处理器以作为主要单元。该处理器读取并执行记录在DRAM 225或附图中未图解的只读存储器中的本发明的计算机程序以形成通信模块,同时它提供用于管理可由处理器控制的SPU 207、209、211、213、215、217、219和221,以及用于管理由其它PE控制的SPU或由下面所描述的BE控制的PE的各种功能。

某些PE例如图2中所图解的PE 201可被组合以提高处理能力。如图3所示,例如多个PE可被组合并封装成一个或多个芯片封装等以提供单个计算机。具有上述结构的计算机被称为“宽带引擎”(BE)。

在图3所示的例子中,BE 301中包含四个PE(PE 303、PE 305、PE 307、PE 309)。这些PE经由BE总线311互相通信。这些PE与共享的DRAM 315经由宽带存储器终端部分313连接。作为BE总线311的替代,可通过共享的DRAM 315和宽带存储器终端部分313实现BE 301的PE之间的通信。BE 301中,一个PE中所提供的所有SPU可以独立地,并且在预定约束条件下访问共享DRAM315中的数据。

输入/输出(I/O)接口317和外部总线319用作BE 301和连接到网络104的其它计算机之间的通信接口。I/O 317由诸如处理器的有源设备构成,并且其控制网络104与BE 301中PE 303、305、307和309的每个之间的通信。进一步地,I/O 317从网络104接收各种中断,并且将它们发送给相应的PE。因此,在下面的描述中,这些可被称为“网络接口”。此类网络接口不必安装在BE 301中,而是可提供于网络104上。

虽然图2与3中未说明,但PE 201或BE 301可以包括用于执行图像处理的像素引擎、图象高速缓存以及用于显示器的显示控制器等等。这些附加功能在下文中所描述的资源管理中变得重要。

包含在PE或BE中的SPU最好是单指令多数据(SIMD)处理器。在PU 203的控制下,SPU以并行和独立的方式执行经由PE请求的任务,并且结果被输出到由请求方指定的相应SPU。在图2所说明的实现中,尽管PE 201具有8个SPU,但是也可根据需要的处理能力任意确定SPU的数量。

下文中详细说明了SPU的结构。SPU具有图4中所说明的结构。SPU 402包括SPU局部存储器406、寄存器410、多个浮点处理单元412和多个整数操作单元414。SPU局部存储器406用作用于存储在SPU中和SPU中所执行的各种线程中处理的数据的局部存储区。根据所需的处理能力,可以任意并且预先确定浮点处理单元412的数量和整数操作单元414的数量。

局部存储器406最好被构造成SRAM。SPU 402包含用于传送各种线程的执行结果、任务请求或任务的执行结果的总线404。SPU 402进一步包括内部总线408、420和418。内部总线408连接局部存储器406和寄存器410。内部总线420连接寄存器410和整数操作单元414,而内部总线418连接寄存器410和浮点处理单元412。在某个优选实施例中,从寄存器410到浮点处理单元412或整数操作单元414的总线418和420的宽度比从浮点处理单元412或整数操作单元414到寄存器410的总线418和420的要宽。利用从寄存器410到浮点处理单元或整数操作单元414的上述总线的较宽带宽,可以从寄存器410获得较大的数据流。

尽管图中没有说明,但在计算机中使用了绝对定时器。绝对定时器给SPU和PE的其它单元提供时钟信号,该时钟信号独立于驱动这些单元的时钟信号,并且比其更快。绝对定时器为SPU执行任务确定时间预算。该时间预算提供完成这些任务的时间,该时间比SPU处理这些任务所需的时间要长。因此,对于每项任务,在时间预算内存在忙时间段和等待时间段。根据该时间预算编写用于处理的SPU程序,而不管SPU的实际处理时间。

<通信数据>

当网络104上的其它计算机随时连接到网络104上时,如上所述构建的计算机向其请求任务。否则,计算机产生用于发送任务的执行结果的通信数据,所述任务已被计算机请求并且执行。在执行结果或后续任务被提供到的指定计算机上,该通信数据包含各种信息,例如请求的任务内容、执行任务的处理程序、数据、通信设置信息。在该实施例中,这些各种信息根据预定数据结构被打包成包,并且在计算机之间传送这些包。

通常,经由DRAM传送包。例如,当计算机只有如图2所示的一个PE时,从DRAM225读取包,当计算机具有如图3所示的BE时,从共享DRAM315读取包,并且读取的包被提供给图4所示的相应SPU的局部存储器406,并且在SPU中直接被处理。

在该情况下,执行处理程序所需的程序计数器、堆栈和其它软件单元可被包含在SPU的局部存储器406中。

注意到,对传送包来说DRAM并不总是必要的。即,当计算机只有如图2所示的单个PE时,可将包直接加载到相应SPU的局部存储器406中,另一方面,当计算机具有如图3所示的BE时,可从I/O 317将包直接加载到相应SPU的局部存储器406中,从而由相应SPU处理包。

图5示出包的示例性结构。包2302包括路由信息部分2304和主体部分2306。因此,包含在路由信息部分2304中的信息取决于网络104的协议。路由信息部分2304包含标头2308、目的ID 2310、源ID 2312和回复ID 2314。目的ID 2310包含SPU的标识符,其中任务的任务执行结果或用于执行后续任务的包被传送给该SPU。

当SPU的标识符属于一个PE时,其包含由一组PE和SPU构成的网络的网络地址,当SPU的标识符属于BE的一个PE时,其包含由一组BE、PE和SPU构成的网络的网络地址。根据TCP/IP协议,网络地址是网际协议(IP)地址。源ID 2312包括SPU的标识符,其中从该SPU传送包。从由该源ID 2314所标识的SPU产生包,并且将包发送到网络104。回复ID 2314包含SPU的标识符,与包有关的查询和任务执行结果,或后续任务被传送给该SPU。

包的主体2306包含与网络协议无关的信息。由图5中的虚线代表的区域示出了主体2306的详细情况。主体2306的标头2318标识主体的开始。包接口2322包含包使用所需的各种信息。该信息包含全局唯一ID 2324、为执行任务所指定的SPU 2326,独占存储器尺寸2328,以及包ID 2330。注意到,先前处理该包的SPU将包ID 2330设置给该包。SPU在执行所需任务时更新包ID 2330,并且将其发送给网络104。全局唯一ID 2324是用于在整个网络104中唯一标识包2302的信息。根据源ID 2312(源ID 2312等中的相应SPU的唯一标识符),以及包2302的产生或发送的时间和日期产生该全局唯一ID 2324。

利用专用存储器尺寸2328,在与执行任务所需的DRAM有关的所需SPU中建立防止其它处理访问的存储器尺寸。专用存储器尺寸2328对所需数据结构来说不是必要的。当预先指定了存储器尺寸时,其不是必要的要素。根据前一个执行任务中设置的包ID 2330,可以识别在一组需要顺序执行的任务中间执行前一个任务的SPU的标识符。

实现部份2332包含单元的核心信息。在该核心信息中,包含了DMA命令表2334、执行任务所需的处理程序2336,以及数据2338。程序2336包含要由SPU运行的程序,例如SPU程序2360和2362,而数据2338包含要利用这些程序处理的数据。

当任务执行所需的处理程序存在于任务被传送到的SPU中时,不再需要处理程序2336。

DMA命令表2334包含开始程序所需要的一系列DMA命令。

这些DMA命令中包括DMA命令2340、2350、2355和2358。这些DMA命令2340、2350、2355和2358的例子在图6中示出。

即,如图6(a)所示,DMA命令2340中包括VID命令2342。VID命令2342是SPU的虚拟ID,它在DMA命令发出时与DRAM 225的物理ID有关。DMA命令2340还包括加载命令2344和地址2346。加载命令2344是用于指示SPU从DRAM 225读取特定命令以将其记录在局部存储器406中的命令。根据地址2346,提供了包含该特定信息的DRAM225中的虚拟地址。该特定信息可以是处理程序2336、数据2338或其它数据。DMA命令2340中包括局部存储器406的地址2348。由于该地址,识别估计能够加载当前记录在包中的全部信息的局部存储器406的地址。这适用于DMA命令2350。

图6(b)中说明的DMA命令2355包括启动命令。“启动命令”是由PU向指定SPU发出的、用来启动包中的SPU程序的执行的命令。DMA命令2355包括VID命令2352、上述的启动命令2354,以及程序计数器2356。在本说明中,“VID命令2352”是用来标识将被启动的SPU的命令。启动命令2354提供相关的启动命令,而程序计数器2356提供针对用于执行SPU程序的程序计数器的地址。这适用于DMA命令2358。

<示例性操作>

图1中所示的计算机系统101的示例性操作描述如下。

如上所述,连接到网络104的每个计算机包括具有公共结构和公共ISA的PE。因此,兼容连接到网络104的计算机的体系结构之间的差异。进一步地,如图7所示,在网络104中,形成了大规模信息处理集成系统WO,其中每个PE中的若干SPU分别用作用于信息处理的“单元”。

大规模信息处理集成系统WO中的每个SPU 512由SPU 512其自身所属的PU 501、502、503、504、50n和50m物理管理,并且独立地用作独立SPU,或SPU 512被组合,并且每个SPU与其它SPU协作。然而,考虑到逻辑概念,PU之间没有障碍,因此,由一个PU管理的SPU和由其它PU管理的其它SPU也可以被组合。当被组合成如上所述的形式时,可以通过属于一个组的SPU中的分布式处理来执行任务。

作为分布式处理的示例性形式,可以提供可在组之间共同访问的公共空间。操作某个计算机的用户可以通过计算机的一或多个SPU的资源访问公共空间。图7中,G01-G04示出了多个SPU的组,其被分别在大规模信息处理集成系统WO中提供。

为了在这样的大规模信息处理集成系统WO中允许高效的分布式处理,在PU中形成了各种功能。图8是与本发明的程序协作的PU中形成的各种列表、表格和功能的图例。

任务管理器601、资源分配器603、集群管理器605、调度器607、成为共享空间模块例子的共享空间管理器609,以及通信模块611在PU中形成。通信模块611经由PE总线233(图2)与内部SPU执行双向通信,同时经由PE总线233和网络104控制PU的其它SPU(PE/BE)之间的双向通信的过程。通信模块611参考路由数据和协议数据被记录到的表格711,并且执行上述的控制。

集群管理器605执行处理以将可以经由通信模块611和任务管理器601进行通信的所有SPU划成集群。该处理在下文中被具体描述。首先,获得当前处理能力和可由SPU处理的任务的种类。例如,通过监视SPU中执行的线程,以及监视由任务管理器601执行的线程,获得上述能力和任务的种类。进一步地,按照估计将被执行的任务的每个种类或大小来将可在每个SPU中被执行的任务的种类和每个SPU的处理能力的组合划分集群。然后,在集群列表705中列出上述组合。

例如在图9的上排中示出了集群列表705的内容。集群的最小单元对应于一个SPU 7050。在图9说明的实施例中,分别列出了由一个特定SPU构成的SPU集群7051,以及由两个或更多SPU的组合构成的SPU集群7053、7055、7057、7059、7061和7063中的两个或更多类型。分别记录用于标识SPU的SPU id,SPU属于的PU的标识符(PU-ref)以及代表其是否可被分配的标识信息(有效/无效)。图9中,“有效”代表其可被分配,而“无效”代表其不能被分配。

图10的上面部分说明了由四个SPU的组合构成的SPU集群的例子。根据表7031产生SPU集群,该表根据SPU的数量(尺寸)和任务大小(长度)被预先定义。在图10的上面部分例子中,因为SPU的数量是四个,所以根据表7031的“尺寸”中所描述的数据“4”产生SPU集群。随时更新集群列表705的记录内容。表7031中的SPU的数量(尺寸)不局限于数字值,而是,其可用例如代表相对于集群总数的比值的函数来表示。

图10的下面部分说明了SPU状态表701的例子。针对根据某个集群中的“PU-ref”所标识的PU 3302中的每个SPU_id,在SPU状态表7011中记录状态信息(状态)。状态信息表示SPU当前是否被组成集群,并且表示SPU是否在操作中。注意到,“忙”表示SPU处于操作状态,因而“无”表示向后指针不是必要的。

任务管理器601根据图11中说明的过程执行处理。当从SPU(TS1001:是)接收任务请求(任务要求)时,任务管理器向资源分配器603请求分配可以执行请求的任务的SPU集群(TS1002)。当从资源分配器603通知属于被分配的SPU集群的SPU的信息时(TS1003:是),所有分配SPU的每个SPU_id被通知给调度器607,以便保留所通知的SPU(TS1004),因而避免与其它进程竞争SPU的操作。

参考在任务中所描述的一个或多个处理程序之间连接调用功能的数据路径,并且参考从所分配的SPU的位置信息产生的功能表707,得到数据路径(TS1005)。注意到,对应于将由SPU执行的任务类型的执行结果被指定给数据路径。此后,所请求的任务内容和数据路径被传送到执行第一个任务的SPU(TS1006)。任务说明的例子描述如下。

      <Graphic processing>

         <program=″program for video″name=″video″/>

         <program=″program for audio″name=″audio″/>

            <program=″program  for packaging  into packet″

name=″packet″/>

         <sub from=″video.Video_OUT″to=″packet.Video_IN″/>

         <sub from=″auido.AUdio_OUT″to=″packet.Autdio_IN″/>

         <data file=″video_data″to=″video.Data_IN″/>

         <data file=″audio_data″to=″audio.DATA_IN″/>

         <data file=″packet_data″from=″packet.DATA_OUT″/>

      </Graphic processing>

可通过PU,即任务管理器601直接执行所请求的任务内容和数据路径的发送。或者,可通过在发出任务要求的SPU的局部存储器上记录数据路径等,在SPU中产生包,并且经由PE总线将包发送给网络来执行这些。

或者,所请求的任务内容和执行任务要求的SPU的数据路径可被传送给由所分配的SPU的SPU_id指定的SPU中,以便直接建立从指定的SPU到发出任务要求的SPU的通信路径。

任务管理器601通过通信模块611将属于任务管理器601的SPU的调度信息、状态信息和资源信息发送给其它BE、PE或SPU。进一步地,任务管理器601获得其它BE、PE或属于PE的SPU的此类信息。经由资源分配器,或直接通过任务管理器,在SPU状态表701中记录获得的状态信息。类似地,在资源表703中记录资源信息。

资源信息代表当前可由每个SPU处理的处理的类型,以及该SPU的处理能力的程度。针对每个SPU_id,在资源表703中记录该资源信息。如上所述,SPU在所有计算机中具有公共结构,然而,SPU可用的处理的种类可根据是否提供被加到SPU所属于的PE上的处理引擎而改变,并且可根据此类处理引擎的类型而改变。如果只要加载SPU程序任何类型处理就可用的话,如图9所示,处理类型被表示成“全部”。当存在除了“全部”之外的特定处理类型时,其被表示成“纯图像处理”,“纯语音处理”,或“纯打包”。如果处理能力的值已知,并且在所有SPU中是公共的,则可省略处理能力的值的列出。

如上所述,调度信息是用于保留SPU的信息。如果需要的话,调度器607在时间表(未示出)中记录每个SPU的调度信息,并且将记录信息通知给任务管理器601。

资源分配器603根据图12中所示的过程执行处理。即,如果通过任务管理器601发出分配请求(AL1001:是),资源分配器603将分析任务的大小和类型(AL1002)。此后,从列在集群列表705上的SPU集群得到执行任务的最优SPU集群(AL1003)。

下面描述最优SPU集群的搜索准则的例子。(1)在非常简单的实施例中,当搜索的参数仅为任务大小时,即当处理能力的值公共于所有SPU时,从集群列表中选出具有匹配集群大小的集群,并且决定分配集群列表中标识信息的值为“有效”的集群中间的第一个集群。或者,可以根据网络距离决定最优SPU集群。在该情况下,关于构成集群的SPU之间的任何组合,计算网络距离(将被路由以到达对等方SPU的主机的数量),并且产生按网络距离的最大值的升序排序的集群列表。然后,分配集群列表中标识信息的值为“有效”的第一个集群。(2)当搜索的参数为任务大小和任务的类型时,根据任务大小选择集群列表,然后关于标识信息的值为“有效”的每个集群,并且从集群列表中的第一集群开始,检查具有任务处理所必需的能力的SPU是否被包含在集群列表中。进一步地,包含可以执行首先要处理的任务处理的SPU组的集群被返回。

在如上所述指定最优SPU集群之后,参照SPU状态表701,资源分配器603检查属于被指定的SPU集群的SPU的状态(AL1004)。当由于“忙”状态等使得分配不可接受时(AL1005:否),从集群列表705中指定另一个SPU集群(AL1006),然后回到AL1004的处理。当分配可接受时(AL1005:是),可被分配的所有SPU被通知给任务管理器601(AL1007)。

根据共享空间管理数据,在图7中所示的大规模信息处理集成系统WO的一部分区域中,产生两个或更多SPU可以任意参加并离开的共享空间。共享空间管理数据是例如多个SPU可以同时访问的区域的地址等。当产生了共享空间时,必须共享上述的状态信息、资源信息和调度信息。然后,共享空间管理器609向管理SPU参与共享空间的PU发送SPU状态表701和资源表703以同步记录内容的更新周期。或者,可在PU之间相互传送集群列表705。

在预定的存储器区域中,PU列出了参与共享空间的SPU的标识信息和每个SPU的通信设置信息,进一步地,然后PU允许它们可供使用(“有效”)。另一方面,关于已经离开共享空间的SPU,列出信息的状态被改变为“无效”。

图13说明了上述整个处理的例子。在图13中,遮蔽部分代表集群化的SPU。实际上,在每个PU中提供资源分配器5007,然而,为了简单和清楚起见,为了描述多个PU上的共享空间中的处理,资源分配器5007被描述成一个驻留在PU外的公共资源分配器。

本实施例说明了示例性流程,其中以包的形式从构成大规模信息集成系统的指定的SPU 4001向PU(#B)5003发出任务请求。注意到,在该实施例中,任务请求用于请求合成和打包视频数据以及音频数据,并且用于将结果返回到SPU 4001。

如果该任务要求被传送到PU(#B)5003(“1”),则PU(#B)5003向资源分配器5007(“2”)请求分配最优SPU集群以执行该任务。参照资源表703的资源信息,资源分配器5007确定SPU 4003适合于视频数据,以及SPU 4005适合于音频数据,以及SPU 4007适合于包程序。然后,上述的确定被通知给PU(#B)5003(“3”)。针对管理SPU的PU的网络地址,PU(#B)5003准备向每个SPU 4003和4005传送包含SPU 4007的通信设置信息的包。注意到,SPU 4007是所请求的第一个任务的内容和任务的执行结果被传送到的目的SPU。

因此,用于视频的程序被传送到PU(#A)的SPU 4003,用于音频的程序被传送到PU(#C)5005的SPU 4005,以及包程序被传送到PU#A的SPU 4007。然后,在每个程序中设置数据路径。

根据任务中所描述的数据流,利用分配给每个SPU的处理程序作为关键字,通过搜索功能表707来获得数据路径。例如,下面描述了用于视频的程序。

″video.VIDEO_OUT_>packet.VIDEO_IN″

根据SPU的分配信息,该结果被转换如下。

″PU#A:SPU#●:VIDEO_OUT_>PU#B:SPU#o:VIDEO_IN″

然后,增加了指定目的地的标识符。在目的地的标识符的示例性形式中,当使用诸如TCP和UDP的现有协议时,PU和IP地址相关,进一步地,SPU和通信端口号相关。或者,单个IP地址被分配给每个SPU或PU。或者,通过用IP地址指定PE、BE,或目的地的计算机,以及在局部存储区中记录它们,来使用现有协议。在除了利用IP地址的方法之外的用于指定地址的其它方法中,例如数据将被传送到的网络地址可由每个SPU的处理器标识符来指定。例如,由于上述过程,包含视频数据的目的地的包的数据部分被描述如下。

″192.168:0.1:10001:VIDEO_OUT    _>

192.168.0.2:10002:VIDEO_IN″

然后,产生了包,其对应于将被使用的协议,并且包含此类数据部分和用于使包被传送到SPU 4003和4005的标头。进一步地,通过图3中说明的网络接口将所产生的包传送到网络104(“4”)。

响应于来自网络接口的中断,管理SPU 4003的PU(#A)5001和管理SPU 4005的PU(#C)分别接收包,并且在SPU 4003和4005的局部存储器中分别写入包的内容。SPU 4003和4005因此执行请求的任务。利用,用针对包的程序把由SPU 4003和4005执行的任务的执行结果打包成包,并且将包传送到指定的目的地,即SPU 4007(“5”)。SPU 4007是用于打包成包的程序,并且其将视频数据和音频数据打包,然后,结果被传输到由每个SPU 4003和4005(“6”)指定的目的地的SPU 4001。因此,SPU 4001可以获得对应于任务要求的执行结果。

或者,通过仅分析包的标头信息,每个PU可指定应当接收包的SPU,并且PU可从网络接口或DRAM获得每个SPU所需的包数据。

在上述实施例中,用于打包的程序和SPU 4003或SPU 4005的执行结果被打包成包,并且该包被传送到SPU 4007以执行程序。进一步地,关于SPU 4003和SPU 4005,在其它SPU之前完成任务执行的SPU的程序在SPU 4007中被执行,并且等待其它SPU(用于音频或视频的程序被传送到的SPU)的执行结果。然而,除上述实施例外,可提供如下所述的其它可选实施例。

在该可选实施例中,类似于视频程序和音频程序,表示成“4”的消息使用于包的程序将被SPU 4007执行,并且SPU 4007等待来自SPU4003和SPU 4005的执行结果包。SPU 4003和SPU 4005将执行结果打包成包,并且将其传送给SPU 4007。因此,两个实施例都可用,在一个实施例中,为连续流动数据,所有程序被预先传送到SPU 4003、4005和4007,在另一个实施例中,在其它SPU之前在处理进度中完成任务的SPU将执行结果和后续程序打包成包。

图14示出了类似于图13中说明的实施例的实施例,其中来自SPU4003的包使得SPU 4005工作。进一步地,从SPU 4005传送到SPU 4007的执行结果和SPU程序被传送到SPU 4007(“6”)。在由SPU 4007打包后,这些被传送到其它SPU 4009,而不是请求任务的SPU 4001,其已被集群到与SPU 4001(“7”)相同的组中。

如上述实施例所示,PU请求资源分配器5007指定最优的SPU,并且将请求内容和任务的目的地发送到指定的SPU。因而,仅仅由SPU,即无需任何PU,来传送将来任务的请求和执行结果。因此,避免了PU在任务请求方面的开销。

因为针对每个预先估计的任务大小执行集群划分,并且在任务请求时分配最优SPU集群,所以也降低了分配SPU需要的时间。这个效果对于其中需要实时处理的应用是非常重要的。

在图13和图14中说明的实施例中,通过在PU的外面,例如在如上所述的网络接口中安装PU的功能,也可以使SPU响应来自网络接口的直接中断来执行处理,而无需PU介入。或者,在网络104上可提供接口网络或对应于PU的处理单元,并且某个SPU可主动访问如上所述的网络接口或处理单元,以便无需PU介入就获得通信设置信息等以直接访问目标SPU。在该情况下,通过预定程序和通常类似于PU的体系结构产品(例如处理器等)的协作,在网络接口或处理单元中产生下列功能的全部或一部分。

(a)资源分配器603和5007,集群管理器605,或类似功能。关于SPU状态表701,资源表703和集群列表705,这些可被安装在网络接口或处理单元中,或这些可由服务器或PU管理以允许从网络接口或处理单元访问。

(b)用于请求资源分配器603或类似功能产生器执行最优SPU集群分配以通过网络通信执行任务的功能,或用于由其自身执行最优SPU集群分配的功能。

(c)用于在从某个SPU接收到任务要求时通过网络通信请求集群管理器605或类似功能产生器针对指定集群执行分配任务的功能,所述指定集群通过参考集群列表以找出适合任务大小或类型的集群来指定,或用于由其自身执行任务分配的功能。

(d)用于管理(由其自身执行记录/更新,或访问其中记录网络地址的服务器)SPU或管理SPU的PU的网络地址的功能。

(e)用于准备传送包到目标SPU的功能,所述包包含第一个所请求的任务的内容和任务的执行结果被传送到的指定SPU的通信配置信息,或用于将包实际传送到SPU的功能。

根据本发明,当处理管理装置接收任务要求时,处理管理装置指定可以执行任务要求所需的任务的处理单元,并且允许指定处理单元与任务要求来源之间直接传送任务的执行结果。因此,可避免处理管理装置中的开销。因此,通过多个处理单元进行的分布式处理可被高效执行。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号