多处理器计算系统及其任务分配方法

文档序号:6561950阅读:228来源:国知局

专利名称::多处理器计算系统及其任务分配方法
技术领域
:本发明涉及多处理器计算机及其任务分配方法,尤其涉及具有在运行时刻动态配置以完成专用计算任务的同构和/或异构计算单元阵列的计算系统及其任务分配方法。
背景技术
:多处理器计算系统通常被设计为满足2类计算需求(l)通用应用和(2)专用应用。对于通用应用,具有同构处理器的对称多处理器SMP是最常见的体系结构。对于例如多媒体和数字信号处理的专用应用,相当常见的是将异构处理器或硬件负载分担单元组合起来以满足应用的不同方面要求。对于专用多处理器计算系统,其体系结构通常是建立在互连计算单元阵列的基础上的。这些计算单元能够是可编程处理器或固定功能单元。无论计算单元之间有何差异,彼此区别这些体系结构的最大不同点是连接和控制这些计算单元以处理计算任务的方式。许多现有技术体系结构只能以完全同步的"流"模式对处理器阵列编程,其中存在每个计算单元都同步到的某种全局共享"心跳(heartbeat)",并且计算单元根据预先配置的互连拓朴在每个心跳的开始时交换数据。根据体系结构设计和流的流水线延迟,心跳可以有一个时钟周期长或更长。心跳同步的一个优点是当计算单元从同步任务中剥离时易于实现和编程。缺点是缺乏运行异步任务的灵活性,从而限制应用领域。另一缺点是在流水线级段不能得到良好平衡的情况下,其效率受到不利影响。另一面,存在另一类以异步加同步模式进行编程的体系结构,其中整个系统不依赖于同步心跳。计算单元能够被分成组,其中同步可以是组内同步或组间同步。因而,每个任务的多个线程能够在不同计算单元上或在不同单元组中进行处理,直到发生数据依赖或对共享资源的访问并且于是需要同步。这类体系结构的许多实现采取硬连线隔离同步的方案,其中一个或多个共享全局同步逻辑电路负责所有计算单元的同步。计算单元在其执行流中的某个指定点暂停,直到同步组中的所有单元到达该点,接着执行流从该点恢复。对于具体应用,能够优化同步逻辑设计和计算单元划分以提供非常好的性能。这种实现的缺点是当配置和应用发生改变时缺乏灵活性。除了硬连线实现之外,另一方案是软件实现,其中使用在主处理器或计算单元自身上运行的软件来进行同步。主处理器或每个计算单元通常通过轮询和/或中断的方式检查其它部件的状态,并且接着通过消息通信等等发出同步信号。与硬连线方案相比,软件解决方案是灵活性最大的解决方案。然而其具有以下副作用(l)中断处理或轮询需要大量处理器周期,因而同步的粒度只能保持在非常粗的水平;(2)同步逻辑参与到下层功能/计算代码中,因而软件维护的复杂度大大增加。考虑到以上问题,需要一种能够至少部分地克服以上缺点的多处理器计算系统及其任务分配方法。
发明内容本发明的一个目的是提供一种能够解除主处理器向计算单元分派任务的负担的多处理器计算系统及其任务分配方法。优选地,本发明的另一个目的是提供一种能够解除主处理器和计算单元进行同步控制的负担的多处理器计算系统及其任务分配方法。本发明提供了一种多处理器计算系统,包括主处理器、全局存储器和至少一个处理单元,其中该多处理器计算系统还包括微任务定序器,包括任务获得设备和任务调度设备,其中任务获得设备被配置成在微任务定序器能够接纳进一步的命令的情况下,从全局存储器获取包含微任务描述的命令,并且任务调度设备被配置成将每个微任务描述定义的每个微任务指令分派到该至少一个处理单元中的一个,使得所指示的处理单元能够执行该微任务指令,并且任务调度设备进一步被配置成检测该命令中所有微任务的完成,并且将该完成通知主处理器,其中处理单元能够通过本身或通过该至少一个处理单元中的另一个来访问全局存储器。任务获得设备可包括任务分配器;至少一个任务队列;和至少一个执行控制单元(ECU),所述至少一个执行控制单元中的每个与该至少一个任务队列中的一个不同的任务队列相关,并且与该至少一个处理单元中的一个不同的处理单元相关,其中任务分配器可被配置成接受由任务获得设备获取的命令,并且将所述每个微任务放在该至少一个任务队列中与所述指示的处理单元相关的任务队列中,任务分配器可进一步被配置成执行所述检测和通知;并且该至少一个执行控制单元的每个可被配置成以FIFO方式从相关任务队列获得一个微任务指令,并且响应于相关处理单元能够处理进一步的微任务指令,将获得的微任务指令传送到该相关处理单元来执行,该至少一个执行控制单元的每个进一步可被配置成收集获得的微任务指令的完成以用于所述检测目的。该命令还包含用于实现该至少一个处理单元中的两个或更多处理单元间的同步的同步指令,任务分配器可进一步被配置成将同步指令放在与该同步指令相关的任务队列中,任务调度设备还可包括同步控制装置,其由执行控制单元基于从各自任务队列获得的同步指令进行操作,以实现同步。同步可基于信号灯技术,并且同步控制装置可基于共享信号灯数组来实现。该命令还可包含用于使相关执行控制单元基于从所有或一些处理单元报告的一或多个值有选择地跳过一部分微任务指令的流控制指令,任务分配器进一步可被配置成将流控制指令放在与该流控制指令相关的任务队列中,任务调度设备还可包括用于存储该值的存储器,其中执行控制单元可进一步被配置成基于流控制指令和该存储器中的相关值跳过该部分微任务指令。该命令还可包含用于使任务分配器基于从所有或一些处理单元报告的一或多个值有选棒地跳过一部分微任务指令的流控制指令,任务调度设备还可包括用于存储该值的存储器,其中任务分配器可进一步被配置成基于流控制指令和该存储器中的相关值跳过该部分微任务指令。多处理器计算系统可被实现在片上系统加速器或微处理器中。可经由DMA实现处理单元对全局存储器的访问。多处理器计算系统还可包括用于初始化任务定序器的配置设备。本发明还提供一种多处理器计算系统中的任务分配方法,该系统包括主处理器、全局存储器、微任务定序器和至少一个处理单元,该方法包括由主处理器在全局存储器中提供包含微任务描述的命令;由微任务定序器在其能够接纳进一步的命令的情况下,从全局存储器获取命令;由微任务定序器将由每个微任务描述所定义的每个微任务指令分派到至少一个处理单元中的一个,使得所分派到的处理单元能够执行该微任务指令;由微任务定序器检测该命令中所有微任务的完成;和由微任务定序器将该完成通知主处理器,其中处理单元能够通过本身或通过该至少一个处理单元中的另一个来访问全局存储器。本发明是改进体系结构的多处理器计算机,其包括称为"微任务定序器(MicrotaskSequencer)"的专用可编程任务定序器。此夕卜,主处理器用描述要提交到计算单元的任务的信息对任务定序器进行编程。任务定序器接着自动分派这些任务并且监视这种任务的执行状态,无需主处理器的干预。任务定序器也具有基于信号发出和等待机制的软件可编程同步逻辑。当需要任务之间的同步时使用这种同步逻辑。因而将同步逻辑从计算单元中分离出来。与现有技术已知的相比,本发明提供了一种计算任务处理机制,其具有与硬连线逻辑同等的性能,和与完全软件实现的控制同等的灵活性。通过将同步逻辑从计算单元中分离出来,本发明使得将异构计算单元集成到相同体系结构中的工作变得简单。本发明也允许计算单元的软件程序员仅将注意力集中在算法的功能部分.另一改进是功率效率可能优于不将指令周期花费在等待同步信号上的软件方案。被说明书引用并且构成说明书组成部分的附困困解了本发明的实施例,并且和前面的概括说明、下面针对实施例的详细描述一起被用来说明本发明的原理。只要可能,相同的附图标记在附困中会被用来表示相同或类似的部分。在附图中图l根据本发明一个实施例示出了其中能够实现本发明的典型系统体系结构的例子;而图2示出了包含同步机制的微任务定序器的配置的例子。具体实施方式在下面的描述中,给出了某些具体细节以便提供对本发明多个实施例的充分理解。不过,本领域技术人员可知,没有这些细节也能实现本发明。在其他情况下,没有详细表示或描述与计算机、处理器等等有关的公知结构,以避免不必要地干扰对本发明实施例的描述。由于资源限制、发掘并发成分、增加代码和数据局部性和代码可管理性等等的原因,常见的做法是多处理器系统上运行的应用程序通常将复杂计算任务分割成小片段。每个小任务接着被分派给计算单元中的一个以根据设计的算法流执行。例如,在典型的实时视频编码应用中,一个小任务只可以处理一个4x4或8x8图像块,而一秒中小任务的总数将达到数十万。通过将这些任务映射到多处理器系统,每个小任务从开始到完成可能只运行若干微秒。另外,这些小任务之间可以具有复杂的依赖。例如,它们中的某些小任务需要将它们中的其它小任务的输出以作为输入数据.结果,小任务的数量如此巨大并且这些小任务的执行控制粒度如此精细,使得小任务明显不同于传统操作系统中对任务的常见定义。为尽量遊免混乱,我们将表示羊个计算单元上的单次运行的小任务的术语定义为,,微任务(microtask)"。由于微任务的巨大数量和粒度非常精细的控制,在传统操作系统中使用任务调度的方案将非常沉重,以至于多数主处理器无法处理。我們的发明通过引入作为自治控制器工作的硬件定序器逻辑来解决这个问题。这将解除主处理器进行微任务调度的沉重负担。主处理器需要做的只是对定序器进行编程并且处理某些预定条件下出现的不常见中断。图l根据本发明一个实施例示出了其中能够实现本发明的典型系统体系结构的例子。系统100包括连接到主机系统总线103的主处理器101、全局存储器102和多处理器子系统110。主处理器101运行OS和高层应用逻辑。全局存储器102用于保存应用程序的代码和数据。多处理器子系统110包括微任务定序器104、可选的DMA单元105-1.....105-m、计算单元106-1、…、106-n和可选的共享本地^储器块107-1.....107-k,计算单元106-1、…、106-n进行实际的微任务计算。这些计算单元106-1.....106-n可以是从通用处理器到专用硬连线逻辑单元。与多数其它多处理器系统比较,在这种体系结构中也允许不同计算单元类型的组合。优选地,为减少计算单元106-1.....106-n和全局存储器102之间的数据传输,通常在计算单元106-1.....106-n中包含保存代码和数据的私有本地存储器。优选地,出于相同原因,也可以具有一些共享本地存储器块107-1、…、107-k以存储中间或公共数据。因此,DMA单元105-1.....105-m于是被用于在全局存储器102、计算单元106-1、…、106-n的本地存储器和共享本地存储器块107-1、…、107-k之间移动数据。本地总线/交叉交换装置109被用作DMA单元105-1、…、105-m和计算单元106-1.....106-n之间的内部数据路径。微任务定序器104被用于控制例如DMA单元105-1.....105-m和计算单元106-1、…、106-n的这些功能单元。这些功能单元通过任务控制总线108被连接到微任务定序器104。微任务定序器104通常从全局存储器102得到包含微任务描述的命令,其中由主处理器101上运行的应用软件根据程序员的设计或编译器或解释器的布置来产生这些描述。例如,对于包舍3个分立计算的计算任务,它可以被分成如下3个微任务微任务1:计算#1微任务2:计算#2微任务3:计算#3。接着,微任务定序器104执行这些命令并且基于任务描述中指定的目的地信息将任务描述(即微任务)分派到相应功能单元。如前所述,DMA单元105-1.....105-m的微任务可以小至移动数十字节数据,而计算单元106-1.....106-n则在数十或数百时钟周期内处理这些数据。在时钟高于200MHz的系统中,这些微任务可能持续不到一微秒或甚至不到十分之一微秒。显然,如果在没有微任务定序器104的帮助的情况下将主处理器101用于控制这些微任务,其处理能力会完全被这种控制占用。这里,具有微任务定序器的多处理器计算系统能够至少解除主处理器对功能单元进行调度和管理的负担。当完成其微任务时,功能单元可以通过任务控制总线或任何其他例如中断的已知信令方法通知微任务定序器,使得微任务定序器可以执行进一步的分派或控制。通常,可以通过任何物理或逻辑的处理单元,例如一或多个中央处理单元(CPU)、数字信号处理器(DSP)、专用集成电路(ASIC)等等来实现微任务定序器和功能单元。主机系统总线、任务控制总线和本地总线/交叉交换装置能够使用任何已知的总线或交换机结构或体系结构。此外,不同功能单元上运行的微任务之间可以有依赖关系例如,要执行一个任务,其中在例如计算单元106-1.....106-n的计算单元上的微任务开始运行之前,例如DMA单元105-1、."、105-m的DMA单元将装栽用于该计算单元的相应输入数据.在计算单元完成工作之后,DMA单元将所得到的数据移动到下一目的地.在这个例子中,计算任务能够被分成如下3个微任务微任务l,数据栽入微任务2':计算微任务3':数振卸出,因而,计算单元上运行的微任务和DMA单元上运行的相应微任务可能相互依赖,例如微任务2'的计算需要先进行微任务l'的栽入数据,微任务3'的数据卸出需要先进行微任务2'的计算,因而这些功能单元必须按照正确的顺序操作以得到正确的结果。而对于彼此不依赖的微任务,例如2个独立计算单元106-1、...、106-n或2个DMA单元105-1、"、105-m上运行的微任务,这些微任务能够被同时提交以实现这些硬件资源的更好利用。为处理多个微任务,即多个功能单元间的这种依赖关系,本发明为微任务定序器提供了同步机制,使得微任务定序器能够促成微任务的并行执行,从而解除功能单元的同步负担。图2示出了包含同步机制的微任务定序器200的配置的例子。如图2所示,微任务定序器200经由主机系统总线连接到主机系统,并且包括用于经由主机系统总线的存储器总线从主处理器指定的位置获取命令的任务获得设备210,和用于将命令中描述的微任务分派给相关功能单元和管理微任务间的同步的任务调度设备220。微任务定序器200还可以包括配置设备230,其中主处理器可以通过配置设备230经由主机系统总线的配置总线初始化或控制微任务定序器200和相关功能单元。任务获得设备210包括存储器总线接口201、FIFO加栽器203-1和传入FIFO203-2。任务调度设备220包括任务分配器205、多个任务队列206a、206b、206c、相应执行控制单元(ECU)207a、207b、207c和共享信号灯数组208。任务调度设备220也可以包括保存对应于某些或所有功能单元的某些标志的标志数组209。配置设备230包括配置总线接口202和系统配置单元204。任务控制总线210a、210b、210c分别将执行控制单元207a、207b、207c连接到例如DMA单元105-1、…、105-m和计算单元1。6-1.....106-11的相应功能单元。每个功能单元对应于微任务定序器104中的任务队列206和执行控制单元207。FIFO加栽器203-1是用于将编程命令从全局存储器102装栽到传入FIFO203-2的DMA控制器。FIFO加栽器203-1接受来自任务分配器205的请求以装载命令,只要任务分配器205能够处理进一步的命令。主处理器可以优选地通过配置设备230来初始化任务获得设备210,以便从全局存储器102地址空间内一个指定位置开始装栽,并且任务获得设备210将内容装载到指定计数。优选地,一旦完成传送,FIFO加栽器203-1将状态设置到配置设备230的系统配置单元204,并且发出主机中断以将该状态通知主处理器101。可选地,可以通过本领域已知的其它信令机制来实现任务获得设备210与主处理器101之间的以上交互。优选地,在传入FIFO203-2内可以有一些緩冲区以允许对存储器总线进行高效突发访问。在FIFO加栽器203-1从全局存储器102获取编程命令之后,任务分配器205将这些命令从传入FIFO203-2分派到每个执行控制单元207的任务队列206。任务队列206a、206b、206c是保存要提交到相应功能单元的命令的FIFO存储装置。FIFO的深度是效率和面积的折衷。在该实施例中,假定大小为32到64条目。任务分配器205监视相关任务队列206a、206b、206c的状态,并且一旦来自FIFO加栽器203-1的当前可用命令匹配于具有空位的队列,则填充这些队列。所述命令包括指示其应当分派到的任务队列206的区段。执行控制单元207接着检查其相应功能单元的状态并且相应向该功能单元分派命令。连接到微任务定序器200的每个功能单元由相应执行控制单元207控制。执行控制单元207是从相应任务队列206获取命令的简单顺序可编程控制器,执行控制单元207将命令传递到功能单元,或者在例如需要执行功能单元间同步操作的情况下,或优选地在需要执行任务内的一些流控制的情况下,根据命令的类型由其本身处理该命令。在后一情形中,执行控制单元207访问信号灯数組208,并且优选地访问标志数组209。在信号灯命令的控制下,执行控制单元207也可以*没置信号灯或轮询一些特定信号灯。通过标志数組209,执行控制单元207也可以支持条件命令以实现"IFTHENELSE,,方式的执行路径。这可以被用来进一步分离主处理器101的控制。如上所述,使用信号灯数组208来保持每个执行控制单元207之间的同步。信号灯数组208保存可以由执行控制单元207a、207b、207c使用同步命令设置和清除l的一位标志的数组。更具体地,信号灯数组208是可以由执行控制单元207a、207b、207c根据任务队列206a、206b、206c中的信号灯命令设置和复位的一位标志的数组。信号灯数组208是整个微任务定序器200中的共享资源。每个执行控制单元207能够在命令控制下访问信号灯数组208的每个位。对任务队列206a、206b、206c的信号灯位分配完全由程序员来控制,并且由程序员负责避免使用冲突。执行控制单元207能够设置多个信号灯位,或能够等待多个信号灯位。通过信号灯设置命令来设置信号灯位,并且信号灯等待命令将被阻塞,直到它们等待的信号灯位全部被设置。信号灯等待命令也会在继续其它处理之前复位相应信号灯位。通过这个简单设计,能够容易地处理传送多个队列的多个微任务之间的复杂同步要求。如上所述,为允许微任务定序器200和受控制的功能单元之间的更多交互,每个功能单元能够在微任务执行完成时返回单位或多位结果。这个值应当设置到标志数组209中。标志数组209中的数据能够被用于实现命令的条件执行,从而允许类似"IF-THEN-ELSE"的微任务执行流。更具体地,标志数组209是单位或多位结果的数组。每个条目对应于一个功能单元。因而,根据需要,标志数組209中的条目的数量可以等于或小于功能单元的数量、任务队列206a、206b、206c的数量或执行控制单元207a、207b、207c的数量。在相关微任务执行结束之前由功能单元设置该结果。然而结果值的定义不限于在本文中描述的情况。这应当由功能单元设计人员自已来确定。一些可能的例子是状态报告、简单返回值等等。所有执行控制单元207a、207b、207c均能够读取标志数组的任何一个条目。对于执行控制单元207,提供获取和存储期望标志数组209内容以供将来参考的命令。这将允许新的结果更新,同时保持本地串行化执行流一致。通过标志数组209和条件执行能力,我们能够实现"IFTHENELSE"和"SWITCHCASE"执行控制,并且在适用情景中,进一步分离主处理器101的控制,配置设备230是针对主机系统的用于配置和控制的优选接口。更具体地,系统配置单元204在其中通过配置总线接口202访问主机系统,并且能够被主机系统用来初始化任务定序器和控制不同内部/外部功能单元的操作。通常,配置设备230可以具有针对系统总线的从模式1/0接口和用于状态报告的一个中断请求线。在上述实施例中,微任务定序器104能够在主处理器101介入最少的情况下自动提交任务到功能单元(DMA单元105-1.....105-m和计算单元106-1、…、106-n)。为便于理解本发明,下面将给出任务描述(微任务命令)格式和内容的具体示例。然而应当理解,本发明并不受此示例的限制。1.微任务定序器命令格式微任务定序器的所有命令均为32位长。命令被分成表1所示的四个域。QID域是命令应当分配到的任务队列的ID号。这个域由任务分配器来解释。任务分配器也检查NUMARG域,这个域指示有多少个32位变元跟在后面。任务分配器会将跟随的NUMARG个32位字视作前面的命令的变元,并且会将这些数据一起分配给任务队列,而无需进一步解释。命令字中的ECU域被用于区分执行控制单元应当解释执行命令还是只将命令发送到相应功能单元来进行处理。表l微任务定序器命令格式<table>tableseeoriginaldocumentpage17</column></row><table>1.1.1信号灯命令l.l.l信号灯设置定义SEMPOSTwimi/^ore_vecto/*CMD:b'0010000'NUMARG:0DATA:wwa//wre—vector的0:15位屏蔽说明此命令将相应信号灯数组位设置为1。由DATA部分中的位屏蔽指定受影响的位。如何任何相应位被设置为1,则这个命令应当等待到其它模块将所有相应位设置为0。例子SEMPOSTb'1011000000000000'此命令设置信号灯数组的第0、2、3位。1.1.1.2信号灯等待定义SEMWAITseww/i/^re—vecto/*CMD:b,OOlOOOl'NUMARG:0DATA:seiw<i/^ore_vector的0:15位屏蔽定义此命令等待相应信号灯数组位被设置。由DATA部分中的位屏蔽来指定受监视的位。此命令将挂起ECU的执行流,直至设置了所有被屏蔽的位。接着将相应倌号灯数组位清零.设有限定系统时钟周期最大等待时间的一个全局超时计数器。一旦在限定的超时值内未触发信号灯位,则应当产生状态报告事件,并且该信号能够被用来触发主机中断来使主机处理器介入处理。例子SEMWAITb'lOllOOOOOOOOOOOO,此命令进行等待,直至信号灯数組的0,2,3位均被设置。1.1.1.3信号灯清除定义SEMCXRse附fl[pAore一vectorCMD:b'0010010'NUMARG:0DATA:w/mip/wre—vectoi*的0:15位屏蔽说明此命令将相应信号灯数组位清除为0。由DATA部分中的位屏蔽来指定所述被清除的位。此命令能够被用来初始化信号灯数组至正确状态。例子SEMCLRb,llllllllllllllll'此命令清除信号灯数组的所有相应位。1丄1.4信号灯挂起定义SEMPENDs棚印A鮮一vectorCMD:b'OOlOOll'NUMARG:0DATA:wf"p/wre_vector的0:15位屏蔽说明此命令等待相应信号灯数组位被清除。由DATA部分中的位屏蔽来指定受监视的位。此命令会将ECU的执行流挂起,直至所有被屏蔽的位被清除。此命令不对信号灯数组作任何改变。设有限定系统时钟周期最大等待时间的一个全局超时计数器.一旦在限定的超时值内未触发信号灯位,则应当产生状态报告亊件,并且该信号能够被用来触发主机中断来使主机处理器介入处理。例子SEMPENDb,101IOOOOOOOOOOOO'此命令进行等待,直至信号灯数组的0,2,3位均被清除为0。1.1.2标志数组和条件执行命令1.1.2.1从标志数组获得条件标志结果定义FLGLOADflmiy一i"flfejc一n"m&rCMD:b,0011000'NUMARG:0DATA:12:15位包含必须落入有效范围的标志数组索引。该索引以0为起始。其它位未使用并且应当设置为0。说明此命令从指定的标志数组元素取得4位值并且将其存储到本地标志寄存器的条件部分中以供条件执行使用。标志数组的标志位是功能单元完成微任务时返回的标志。例子FLGLOAD3此命令从标志数组中取得索引3的元素。1.1.2.2无条件跳转定义JMP""附6er一《卿油CMD:b'0011100,NUMARG:0DATA:8:15位存有任务列表中将跳过的字数,其它位未使用并且应当设置为0。说明此命令跳过当前任务队列中o丄nwifc个字的后续命令和数据。例子JMP15此命令略过任务队列中的后15个字的命令/数据。1.1.2.3条件跳转定义JMPWHENc0if舰0朋,ww附6er一《脚油CMD:b'oomorNUMARG:0DATA:0:7位存有如表2所示的条件描述。8:15存有任务列表中将跳过的字数。说明当条件^/i必r,Vws满足时,此命令跳过当前任务队列中ff"/lfA"_0/lHWYfo个字的后续命令和数据。如果条件不被满足,则不作任何亊情。例子JMPWHENb'10101000,,15当条件位0为1并且位2为0时,此命令略过任务队列中的后续15个字的命令/数据。表2条件描述格式位说明0:3有关需要评估哪些条件标志的四位屏蔽4:7期望匹配的四位值假设屏蔽为ABCD,匹配值为EFGH并且实际标志为efgh,则能够定义评估条件为V=!(A&(EAe))&!(B&(FAf))&!(C&(GAg))&!(D&(Hah))应当理解,这里在微任务定序器200中指示的特定设备或模块可以通过硬件和/或软件实现。例如,可以使用在一或多个处理模块上运行的软件和/或固件来实现特定设备或模块。处理模块能够是单个处理设备或多个处理设备。这种处理设备可以是微处理器、微控制器、数字处理器、微型计算机、中央处理单元的一部分、状态机、逻辑电路、硬连线逻辑和/或任何能够执行期望处理或控制的设备。虽然根据多处理器子系统包括微任务定序器、DMA单元、计算单元和共享本地存储器块的实施例描述了本发明,然而在计算单元被被配置成直接访问全局存储器的情况下,共享本地存储器块和本地总线/交叉交换装置不是必要的。虽然在上述实施例中共享信号灯数组被用于同步,然而在本发明中能够实现其它已知同步机构。虽然在实施例中描述了每个类型的任务队列、执行控制单元和功能单元的具体数量,然而这些数量不是对本发明的限制。根据需要,能够在实现中实施任何数量。虽然由主处理器指定全局存储器中获取命令的位置,然而也能够事先静态确定该位置。类似地,也可以预定其它相关参数。虽然在一般多处理器计算系统中描述了本发明,然而本发明尤其能够适用于片上系统加速器或微处理器。虽然在实施例中基于任务描述中指定的目的地信息将微任务指派到相应功能单元,然而也可以在任务描述中只指定执行微任务的功能单元的类型(例如DMA单元、计算单元等),由任务分配器根据相应类型功能单元的可用性来随机指定执行微任务的功能单元。有关功能单元的类型、数量、状态的信息可以预选指定、由主机通过系统配置单元来设置、或经过轮询或其它状态检测机制来获得和维护。如果需要指定若干微任务由相同功能单元来执行,则可以在任务描述中指定功能单元的逻辑标识,并由任务分配器负责将该逻辑标识与物理功能单元绑定。以上所揭示的内容是将被考虑为说明性的,而不是限制性的,并且附加的权利要求意欲涵盖所有属于本发明的真实精神及范围的这类修改、改进及其他实施例。因此,以法律所允许的最大程度,本发明的范围将由以下权利要求及其等同的最广泛可容许的解释来确定,并且不应由上述具体实施方式约束或限制。权利要求1.一种多处理器计算系统,包括主处理器、全局存储器和至少一个处理单元,其中该多处理器计算系统还包括微任务定序器,包括任务获得设备和任务调度设备,其中任务获得设备被配置成在微任务定序器能够接纳进一步的命令的情况下,从全局存储器获取包含微任务描述的命令,并且任务调度设备被配置成将由每个微任务描述所定义的每个微任务指令分派到该至少一个处理单元中的一个,使得所分派到的处理单元能够执行该微任务指令,并且任务调度设备进一步被配置成检测该命令中所有微任务的完成,并且将该完成通知主处理器,其中处理单元能够通过本身或通过该至少一个处理单元中的另一个来访问全局存储器。2.如权利要求1所述的多处理器计算系统,其中任务调度设备包括任务分配器;至少一个任务队列;和至少一个执行控制单元,所述至少一个执行控制单元中的每个与该至少一个任务队列中的一个不同的任务队列相关,并且与该至少一个处理单元中的一个不同的处理单元相关,其中任务分配器被配置成接受由任务获得设备获取的命令,并且将所述每个微任务放在该至少一个任务队列中与所述分派到的处理单元相关的任务队列中,任务分配器进一步被配置成执行所述检测和通知;并且该至少一个执行控制单元的每个被配置成以FIFO方式从相关任务队列获得一个微任务指令,并且响应于相关处理单元能够处理进一步的微任务指令,将获得的微任务指令传送到该相关处理单元来执行,该至少一个执行控制单元的每个进一步被配置成收集获得的微任务指令的完成以用于所述检测。3.如权利要求2所述的多处理器计算系统,其中该命令还包含用于实现该至少一个处理单元中的两个或更多处理单元间的同步的同步指令,任务分配器进一步被配置成将同步指令放在与该同步指令相关的任务队列中,任务调度设备还包括同步控制装置,其由执行控制单元基于从各自任务队列获得的同步指令进行操作,以实现同步。4.如权利要求3所述的多处理器计算系统,其中同步基于信号灯技术,并且同步控制装置基于共享信号灯数组来实现。5.如权利要求2-4中任何一个所述的多处理器计算系统,其中该命令还包含用于使相关执行控制单元基于从所有或一些处理单元报告的一或多个值有选择地跳过一部分微任务指令的流控制指令,任务分配器进一步被配置成将流控制指令放在与该流控制指令相关的任务队列中,任务调度设备还包括用于存储该值的存储器,其中执行控制单元进一步被配置成基于流控制指令和该存储器中的相关值跳过该部分微任务指令。6.如权利要求2-4中任何一个所述的多处理器计算系统,其中该命令还包含用于使任务分配器基于从所有或一些处理单元报告的一或多个值有选择地跳过一部分微任务指令的流控制指令,任务调度设备还包括用于存储该值的存储器,其中任务分配器进一步被配置成基于流控制指令和该存储器中的相关值跳过该部分微任务指令。7.如权利要求1-6中任何一个所述的多处理器计算系统,其中该多处理器计算系统被实现在片上系统加速器或微处理器中。8.如权利要求l-6中任何一个所述的多处理器计算系统,其中经由DMA实现处理单元对全局存储器的访问。9.如权利要求l-6中任何一个所述的多处理器计算系统,其中多处理器计算系统还包括用于初始化微任务定序器的配置设备。10.如权利要求1-6中任何一个所述的多处理器计算系统,其中所述微任务定序器还包括本地共享存储器。11.如权利要求l所述的多处理器计算系统,其中任务调度i殳备被配置成将由每个微任务描述所定义的每个微任务指令分派到微任务描述中指示的处理羊元。12.如权利要求1所述的多处理器计算系统,其中任务调度设备被配置成将由每个微任务描述所定义的每个微任务指令分派到符合微任务描述中指定的要求的处理单元。13.—种多处理器计算系统中的任务分配方法,该系统包括主处理器、全局存储器、微任务定序器和至少一个处理单元,该方法包括由主处理器在全局存储器中提供包含微任务描述的命令;由微任务定序器在其能够接纳进一步的命令的情况下,从全局存储器获取命令;由微任务定序器将由每个微任务描述所定义的每个微任务指令分派到至少一个处理单元中的一个,使得所分派到的处理单元能够执行该微任务指令;由微任务定序器检测该命令中所有微任务的完成;和由微任务定序器将该完成通知主处理器,其中处理单元能够通过本身或通过该至少一个处理单元中的另一个来访问全局存储器。14.如权利要求13所述的多处理器计算系统中的任务分配方法,其中所述微任务定序器包括至少一个任务队列和至少一个执行控制单元,所述至少一个执行控制单元中的每个与该至少一个任务队列中的一个不同的任务队列相关,并且与该至少一个处理单元中的一个不同的处理单元相关,所述分派步骤包括将所述命令的每个微任务放在该至少一个任务队列中与所述分派到的处理单元相关的任务队列中;以及由相关执行控制单元以FIFO方式从相关任务队列获得一个微任务指令,响应于相关处理单元能够处理进一步的微任务指令,将获得的微任务指令传送到该相关处理单元来执行,并且收集获得的微任务指令的完成以用于所述检测。15.如权利要求14所述的多处理器计算系统中的任务分配方法,其中该命令还包含用于实现该至少一个处理单元中的两个或更多处理羊元间的同步的同步指令,所迷分派步棵还包括将同步指令放在与该同步指令相关的任务队列中;和由相关执行控制单元基于从任务队列获得的同步指令进行操作,以实现同步。16.如权利要求15所述的多处理器计算系统中的任务分配方法,其中同步基于信号灯技术。17.如权利要求14-16中任何一个所述的多处理器计算系统中的任务分配方法,其中该命令还包含用于使相关执行控制单元基于从所有或一些处理单元报告的一或多个值有选择地跳过一部分微任务指令的流控制指令,所述分派步稞还包括成将流控制指令放在与该流控制指令相关的任务队列中;存储该值;和由相关执行控制单元基于流控制指令和该存储的相关值跳过该部分微任务指令。18.如权利要求14-16中任何一个所述的多处理器计算系统中的任务分配方法,其中该命令还包含用于使得基于从所有或一些处理单元报告的一或多个值有选择地跳过一部分微任务指令的流控制指令,所述分派步骤还包括存储该值;和基于流控制指令和该存储的相关值跳过该部分微任务指令。19.如权利要求13所述的多处理器计算系统中的任务分配方法,其中所述分派步骤包括将由每个微任务描述所定义的每个微任务指令分派到微任务描述中指示的处理单元。20.如权利要求13所述的多处理器计算系统中的任务分配方法,其中所述分派步骤包括将由每个微任务描述所定义的每个微任务指令分派到符合微任务描述中指定的要求的处理单元。全文摘要公开了一种多处理器计算系统。多处理器计算系统包括主处理器、全局存储器和至少一个处理单元,其中多处理器计算系统还包括微任务定序器,包括任务获得设备和任务调度设备,其中任务获得设备被配置成在微任务定序器能够接纳进一步的命令的情况下,从全局存储器获取包含微任务描述的命令,并且任务调度设备被配置成将每个微任务描述定义的每个微任务指令分派到该至少一个处理单元中的一个,使得所指示的处理单元能够执行该微任务指令,并且任务调度设备进一步被配置成检测该命令中所有微任务的完成,并且将该完成通知主处理器,其中处理单元能够通过本身或通过该至少一个处理单元中的另一个来访问全局存储器。文档编号G06F9/46GK101165655SQ20061013565公开日2008年4月23日申请日期2006年10月20日优先权日2006年10月20日发明者律万,强刘,杨雨东,林国辉,迈克尔·R.·威斯特,海鞠申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1