CN101258469B - 信息处理设备 - Google Patents

信息处理设备 Download PDF

Info

Publication number
CN101258469B
CN101258469B CN200680032551.XA CN200680032551A CN101258469B CN 101258469 B CN101258469 B CN 101258469B CN 200680032551 A CN200680032551 A CN 200680032551A CN 101258469 B CN101258469 B CN 101258469B
Authority
CN
China
Prior art keywords
task
program
bit stream
mission bit
reconfigurable hardware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN200680032551.XA
Other languages
English (en)
Other versions
CN101258469A (zh
Inventor
梶原信树
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of CN101258469A publication Critical patent/CN101258469A/zh
Application granted granted Critical
Publication of CN101258469B publication Critical patent/CN101258469B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

在重写具有可重新配置的硬件的程序的同时,当执行大规模处理时减少程序重写时间。当通过划分为较小处理单元来处理大规模处理过程时,即使动态改变过程内容,灵活地重写程序,并且将管理执行的调度,从而确保可以执行高效处理。调度器45控制到重新配置硬件30的程序加载以及对于多个任务的执行,以减少程序加载时间。作业管理器44参考配置有存储在作业信息存储器43中的多个任务的多条作业信息,并根据执行作业的状态来管理要执行的任务,从而实现高效处理。

Description

信息处理设备
技术领域
本发明涉及使用可重新配置的硬件的信息处理设备,其可以高效率地使用少量硬件资源来处理多种处理过程。
背景技术
使用诸如FPGA(现场可编程门阵列)和PLD(可编程逻辑器件)的可重新配置的硬件的信息处理设备可以以比由CPU、DSP等进行处理更高的速率进行处理。可以通过使用可编程器件利用小量硬件资源来处理多种处理操作,在该可编程器件中,可以根据处理内容来顺序地重写可重新配置的硬件的程序。在使用该可重新配置的硬件的信息处理设备中,当根据处理操作的过程变得需要重写程序时,则重写程序。可选择地,基于通过之前和静态分析整个处理操作所获得的信息来重写程序(例如参考日本专利特开10-256383)。
发明内容
然而,在该现有信息处理设备中具有以下的问题。
第一个问题是:当对于每个要处理的任务改变可重新配置的硬件的程序时,则用于加载程序所需的时间相较于处理任务所需时间通常可测量地较大。在通信、网络处理、介质处理等中,对于一系列输入数据顺序地执行多个处理过程。例如,在JPEG(联合图象专家组)的编码器中,需要执行诸如颜色转换、采样、DCT(离散余弦变换)变换、量化、熵编码的一系列处理过程(称为任务)。配置有该一系列任务的一组处理过程(在该情况下,JPEG编码器)被称为作业。当利用可重新配置的硬件来执行这些处理过程时,在现有技术中,处理过程将作业划分为多个任务,根据每个任务为可重新配置的硬件准备程序,并且根据切换任务而将程序加载到可重新配置的硬件。
然而,通常通过将存储在外部存储介质中的程序转移到可重新配置的硬件来将程序加载到可重新配置的硬件。因此,与诸如CPU和DSP的处理器的情况相比,将程序加载到可重新配置的硬件需要较长的时间。因此,当每个程序加载时间长于处理每个任务所需的时间时,系统性能受到程序加载时间的限制,从而导致在很多情况下的不切实际情况。
在还有可以预先存储多个程序的可重新配置的硬件的同时,并且在短时间内切换任务,当可存储程序的数量有限,并且当要存储的程序数量超出限制时,变得需要从外部存储介质转移程序,从而导致相同的问题。
第二个问题是:当要处理的作业没有预先固定时,难以或不可能以静态任务调度方法来高效地执行处理。当诸如要处理的任务、任务之间的依赖关系以及执行次序的作业配置可以通过预先分析整个处理过程变得静态地明显时,在处理作业时可以根据过程来管理任务执行调度。然而,例如,如在网络处理中,当要施加到数据的处理(作业结构)根据到达的数据而不同时,则不可以应用静态调度。需要根据到达数据动态地生成作业,选择和执行可执行任务,以及基于执行该任务来管理作业过程。
总之,在现有信息处理设备中具有以下两个问题。
(1)当对于每个要处理的任务改变可重新配置的硬件的程序时,通常,加载程序所需时间相较于处理任务所需时间不可忽略地大。
(2)当要处理的作业没有预先固定时,难以或不可能以静态任务调度方法来高效地执行处理。
本发明的目的是在使用可重新配置的硬件的信息处理设备中,提供一种系统,该系统可以使得当根据过程加载可重新配置的硬件的程序时的程序加载时间的总开销较小,并且即使在硬件规模受限的可重新配置的硬件中也可以高效地执行大规模的处理。
本发明的另一目的是在使用可重新配置的硬件的信息处理设备中提供一种系统,该系统可以通过即使在不能预先和静态地确定用于加载和执行程序的调度时动态地管理处理过程,而高效地执行处理。
为了获得以上目的,本发明的信息处理设备设置有可重新配置的硬件、输入输出数据存储器以及控制器。
可重新配置的硬件可以根据要执行的任务的处理内容来加载一个或多个程序,以及可以同时执行一个或多个加载的程序的一个或多个程序。输入输出数据存储器将要处理的输入输出数据存储在可重新配置的硬件中。控制器控制加载程序到可重新配置的硬件,以及执行这些程序。
控制器配置有程序存储器、任务信息存储器。作业信息存储器、作业管理器和调度器。
程序存储器存储要被加载到可重新配置的硬件的多个程序。
任务信息存储器存储任务信息,该任务信息指示对于存储在程序存储器中的每个程序可由相同程序执行的多个任务。
作业信息存储器存储作业信息,该作业信息指示在作业中包括的每个任务之间的依赖关系,该作业是配置有多个任务的处理单元的组。
作业管理器根据作业信息选择可执行任务,将所选择的任务的任务信息存储在任务信息存储器中,并根据执行任务的进展来更新作业信息。
调度器从任务信息存储器中选择可由程序执行的一个或多个任务,以及从程序存储器中选择执行所选择的任务所需要的程序。该调度器将所选择程序加载到可重新配置的硬件并且管理调度表,以及控制可重新配置的硬件来执行任务及管理调度表。此外,调度器将执行任务的进展状态通知给作业管理器。
附图说明
图1是示出本发明第一示例性实施例的信息处理设备的配置的框图;
图2是示出图1的任务信息存储器42中存储的任务信息60的配置例子的图示;
图3A是示出管理在图1的任务信息存储器42中的每个程序20的多条任务信息的方面的图示;
图3B是示出任务队列70的配置例子的图示;
图4是示出存储在图1的作业信息存储器43中的一个作业信息50的配置例子的图示;
图5是示出图1的可重新配置的硬件30的配置例子的图示;
图6是示出图5的处理器32的另一配置例子的图示;
图7是示出图1的作业管理器44的工作例子的流程图;
图8是示出图1的调度器45的工作例子的流程图;
图9是示出本发明第二示例性实施例的信息处理设备的配置的框图。
具体实施方式
接着,将参考附图详细描述本发明的示例性实施例。
(第一示例性实施例)
图1示出本发明第一示例性实施例的信息处理设备的配置例子。如图1所示,本发明示例性实施例的信息处理设备10配置有可重新配置的硬件30、输入输出数据存储器110和控制器40。
控制器40配置有程序存储器41、任务信息存储器42、作业信息存储器43、作业管理器44和调度器45。
可重新配置的硬件30能够加载一个或多个程序20,并且根据加载的程序来改变硬件配置从而执行规定的处理。可重新配置的硬件30可以同时执行一个或多个程序20。如果加载一个程序20及执行一个程序20就够了,则可以通过使用FPGA(现场可编程门阵列)来实现可重新配置的硬件30。
输入输出数据存储器110存储要由可重新配置的硬件30处理的输入输出数据。
程序存储器41存储要被加载在可重新配置的硬件30中的多个程序20。利用程序标识符等来唯一地识别加载的程序20。
任务信息存储器42存储任务信息,该任务信息指示对于存储在程序存储器41中的每个程序20能够由相同程序执行的多个任务。任务信息60保持可重新配置的硬件30执行任务所需要的信息。
接着,图2示出存储在图1的任务信息存储器42中的任务信息60的配置例子。如图2所示,任务信息60配置有输入数据集61、输出数据集63、程序标识符65、要求处理时间66和期限67。
程序标识符65是用于识别当执行任务时要加载到可重新配置的硬件30的程序20的标识符。
输入数据集61配置有用于处理任务的一条或多条输入数据62。每个输入数据62可以是真实数据,或可以是诸如用于识别存储在输入输出数据存储器110的输入输出数据区域的地址的指针信息。
输出数据集63配置有一条或多条输出数据64,其中存储任务过程的结果的输出。输出数据64可以被保持为任务信息60中的数据区域,或可以是诸如用于识别其中存储有输入输出数据存储器110的数据的输入输出数据区域的地址的指针信息。
要求处理时间66是可重新配置的硬件30执行由任务信息60指定的任务所需的处理时间的估计值。期限67存储用于完成任务执行的时间限制。
接着,图3A和图3B示出用于管理图1的任务信息存储器42中的每个程序20的多条任务信息60的任务队列70的配置例子。
如图3A所示,任务信息存储器42存储用于图1所示的程序存储器41中存储的每个程序20的任务队列70。
如图3B所示,任务队列70配置有任务缓存器71、程序标识符72、任务队列处理时间73和任务队列期限74。
任务缓存器71存储在任务队列70中包括的多个任务的任务信息60。
程序标识符72存储程序20的标识符,要将该程序20加载到可重新配置的硬件30以执行由存储在任务缓存器71中的任务信息60指定的任务。
任务队列处理时间73存储执行由存储在任务队列70的任务缓存器71中的所有条的任务信息60指定的任务所需的时间。例如,任务队列处理时间73存储在任务缓存器71中存储的所有条任务信息60的要求处理时间66的总值。
任务队列期限74存储用于完成由任务队列70的任务缓存器71中存储的所有条任务信息60指示的任务的执行的时间限制。例如,任务队列期限74存储在任务缓存器71中存储的所有条任务信息60的期限67的最小值。
图1所示调度器45管理要加载到可重新配置的硬件30并且要通过参考存储在任务信息存储器42中的多条任务信息60执行的程序20。具体地,调度器45从任务信息存储器42选择可由相同程序执行的多个任务,从程序存储器41选择所需程序,并且控制要加载到可重新配置的硬件30的程序以及要执行的多个任务。
也就是,调度器45通过参考存储在任务信息存储器42中的多条任务信息60,来确定接下来要加载的程序20和接下来要执行的任务。
将描述该操作,其中,例如,任务信息存储器42使用如图3所示的每个程序20的多个任务队列70来管理任务信息60。调度器45将当前时间与每个任务队列70的任务队列处理时间73相加,并且当包括在任务队列70中的任务开始在当前时间进行处理时计算估计的终止时间。调度器45计算在任务队列70的任务队列期限74与估计的终止时间之间的差,并且决定差最小的任务队列70的紧急度最高。调度器45如上选择紧急度高的任务队列70,并且将执行包括在该任务队列70中的多个任务所需的程序20加载到可重新配置的硬件30中,且之后,可重新配置的硬件30执行这些任务。
如上所述,因为对于到可重新配置的硬件30的一次程序加载执行多个任务,所以可以相对地减小程序加载时间。本示例性实施例的信息处理设备10可以通过减少程序加载的次数来优先执行紧急度高的多个任务,且还能够应用于硬实时应用。
在图1中,作业信息存储器43存储多条作业信息50。由于实际硬件的有限量等,不能通过可重新配置30来作为一个任务执行大规模处理。在这样的情况下,整个处理被划分为多个小任务,并且每个任务由可重新配置的硬件30顺序地处理。配置有通过划分大规模处理获得的多个任务的处理单元被称为作业。虽然作业配置有多个任务,每个任务不独立而是包括依赖关系。因此,需要在保持依赖关系的同时执行每个任务。依赖关系包括:这样的数据依赖性,其使得任务的输出被用作另一任务的输入;以及这样的控制依赖性,其使得在完成任务的执行后需要执行另一任务。作业信息50是指示在作业中包括的每个任务之间的该依赖关系的信息。
接着,图4示出存储在图1的作业信息存储器43中的一个作业信息50的配置例子。该作业信息50存储被包括在作业中的多条任务信息60以及该多条任务信息60的依赖关系68作为图示。向每条任务信息60提供依赖数计数器69。当生成作业时,设置依赖数计数器69的初始值。例如,当任务60依赖其他两个任务60的完成时,依赖数计数器69的初始值被设置为2。当完成一个任务60的执行时,跟踪任务依赖关系68,并且将前面提供给任务信息60的依赖数计数器69减小1。可执行任务是依赖数计数器69的值变成“0”的任务信息60。虽然依赖关系68包括数据依赖和控制依赖,但是可以通过依赖数计数器69总地管理依赖关系68。
在图1中,作业管理器44通过参考存储在作业信息存储器43中的多条作业信息50选择变得可执行的任务的任务信息60。具体地,作业管理器44根据用于执行多个作业中的任务的状态来选择接下来要执行的任务,将所选任务的任务信息存储在任务信息存储器42中,并且在执行该任务时根据进展来更新和管理作业信息。
在作业信息50的配置例子的情况下,如图4所示,作业管理器44选择其依赖数计数器69的值为“0”的任务信息60,并将所选任务信息60存储在任务信息存储器43中。作业管理器44可以将所选任务信息60直接存储在任务信息存储器42中,或可以将所选任务信息60通知给调度器45,以及通过调度器45存储所选任务信息60。
如图3A所示,当任务信息存储器42配置有用于每个程序20的任务队列70时,作业管理器44将任务信息60存储在任务队列70的任务缓存器71中,该任务队列70包括相同的程序标识符72,该程序标识符72取决于所选任务信息60的程序标识符65。调度器45管理用于加载程序和为存储在任务信息存储器42中的任务信息60执行任务的调度表,以及可重新配置的硬件30执行该任务。从调度器45将完成的该任务的任务信息60通知作业管理器44。作业管理器44基于来自调度器45的完成通知来改变作业信息50。在作业信息50中,从完成的任务的任务信息60跟踪依赖关系68,并且减少取决于完成的任务的任务的任务信息60的依赖数计数器69。可以通过使用诸如任务标识符的信息来进行管理,这里存储在作业信息存储器43中的多条作业信息50的任务信息60对应于完成的任务的任务信息60。
如上所述,即使当具有彼此结构不同的多个作业时,以及即使当动态生成这些作业时,可以在保持作业中包括的任务的依赖关系的同时执行任务。
图5示出图1的可重新配置的硬件30的配置例子。如图5所示,可重新配置的硬件50配置有输入输出控制器31和一个或多个处理器32。每个处理器32配置有重新配置器32和程序存储器35。根据加载到程序存储器35的程序20的内容,改变重新配置器32的硬件配置和执行规定的处理。为到外部的接口提供输入输出控制器31,以及通过输入输出控制器31,可以从可重新配置的硬件30的外部将程序20加载到程序存储器35,以及可以控制处理器32中处理的执行。
输入输出控制器31接收任务信息60,以根据该接收的任务信息60将存储在输入输出数据存储器110中的输入数据传送到处理器32,并将处理器32中的处理结果作为输出数据输出到输入输出数据存储器110。当具有多个处理器32时,在由一个或多个处理器32执行程序20的同时,可以将程序20加载到没有执行程序的另一处理器32。如上所述,可以将多个程序20加载在可重新配置的硬件30中,以及当可以执行程序20时并且同时可以加载程序20时,在执行可由一个程序20执行的多个任务的同时,能够加载另一程序20,从而程序加载时间也可以被完全隐藏。
接着,图6示出图5的处理器32的另一配置例子。在该情况下,如图6所示,处理器32配置有重新配置器33、多个程序存储器35和程序选择器34。程序选择器34从多个程序存储器35中选择一个程序存储器35,并且根据存储在所选程序存储器35中的程序20来改变重新配置器33的硬件配置。程序选择器34可以在比加载程序到程序存储器35的时间更短的时间内选择程序存储器35。如果预先将所有需要的程序20加载在程序存储器35中,则可以在加载后切换程序20而没有用于程序加载的总开支。选择一个程序存储器35,以及在重新配置器33中执行存储在所选程序存储器35中的程序20的同时,可以将程序20加载到另一未选的程序存储器35。因此,即使当需要加载比多个程序存储器35更多的程序时,可以隐藏程序加载时间。
接着,将通过参考附图详细描述本示例性实施例的信息处理设备的工作。
首先,图7是示出图1的作业管理器44的操作例子的流程图。假设作业管理器44根据从外部到来的数据来对数据施加预先指定的处理,并输出结果。以及假设作业管理器44接收两类事件,来自外部的数据到达事件和来自调度器45的任务执行完成通知。
首先,作业管理器44等待事件到达(步骤J10)。当事件是来自外部的数据到达时(步骤J20),作业管理器44新生成处理数据所需的作业信息50以将生成的作业信息50存储在作业信息存储器43中(步骤J40)。
接着,作业管理器44通过将执行作业中包括的任务所需要的程序20通知调度器45来将需要的程序20存储在程序存储器41中(步骤J50)。利用以上的操作来进行执行包括在作业中的任务所需的准备。作业管理器44参考存储在作业信息存储器43中的多条作业信息50,选择依赖数计数器69为“0”的任务信息60,并将所选任务信息60通知调度器45(步骤J60)。从而,将所选任务信息60存储在任务信息存储器42中。
当事件是来自调度器45的任务执行完成通知时(步骤J30),作业管理器44根据已经完成执行的任务的任务信息60来更新相应的作业信息50(J70)。可以通过更新作业信息50来生成变得新可执行的任务,从而作业管理器44选择可执行任务以将该任务通知调度器45(步骤J60)。
在作业管理器44的以上操作例子中,将作业划分为单元,这些单元是可以分别利用可重新配置的硬件30独立执行的任务,并且根据执行任务的进展动态地管理在任务之间的依赖关系,从而即使根据数据到达动态地生成多个作业,可重新配置的硬件30也可以高效地处理作业。
接着,图8是示出图1的调度器45的工作例子的流程图。假设调度器45接收来自作业管理器44的登记(register)程序的通知事件(图7的步骤J50)、登记任务的通知(图7的步骤J60)和来自可重新配置的硬件30的任务执行完成通知。假设,调度器45可以在执行操作时确认可重新配置的硬件30的工作状态。可以通过如下方法来对可重新配置的硬件30执行:通过向可重新配置的硬件30提供指示工作状态的寄存器;或者通过向调度器45自身提供指示执行控制状态的状态参数,以及通过根据在可重新配置的硬件30中的控制以及根据来自可重新配置的硬件30的状态通知来改变状态参数。
调度器45对于每个任务队列70加载和执行程序20。任务队列70如由调度器45管理的在多个状态之间转变。主要状态包括:程序加载等待状态,其中,正在等待需要利用可重新配置的硬件30执行的程序的加载;以及执行等待状态,其中,正在等待利用可重新配置的硬件30进行的程序20的执行。
首先,调度器45等待事件到达(步骤S10)。接着,当事件是来自作业管理器44的用于注册程序的通知时(步骤S20),调度器45将指定的程序20存储在程序存储器41中,并且生成用于管理存储的程序20的程序标识符(步骤S60)。接着,调度器45生成用于管理在任务信息存储器42中的可利用注册程序20执行的任务信息60的任务队列70,并使得能够利用在步骤S60生成的程序标识符对任务信息60进行唯一识别(步骤S70)。
当事件是来自作业管理器44的用于注册任务的通知时(步骤S30),调度器45参考指定的任务信息60的程序标识符,来将该指定的任务信息60存储在任务信息存储器41的相应的任务队列70中。调度器45还响应于存储任务信息60来更新任务队列70的状态,该状态诸如任务队列70的任务队列处理时间73和任务队列期限74(步骤S80)。
如上所述,改变任务信息存储器42的任务队列70的状态。由此,调度器45将诸如每个任务队列70的任务队列处理时间和任务队列期限74的任务队列70的状态值进行比较,并且选择紧急度高的任务队列70(步骤S90)。接着,调度器45确认可重新配置的硬件30的工作状态(步骤S100),以及如果可以加载程序20则指示可重新配置的硬件30来加载执行所选任务队列70所需的程序20,并且使得所选任务队列70处于表示要加载的程序的等待状态的程序加载等待状态中(步骤S110)。接着,调度器45确认可重新配置的硬件30的工作状态(步骤S120),以及如果可以执行任务时,则指示可重新配置的硬件30来执行在执行等待状态下的任务队列70。当可重新配置的硬件30可以同时执行多个任务队列70时,以及当具有处于执行等待状态下的多个任务队列70时,可重新配置的硬件30可以更高效地执行用于执行多个任务队列70的指令(步骤S130)。对于利用调度器45进行调度来说步骤S90、S100、S110、S120和S130是重要的。
当事件是来自可重新配置的硬件30的任务执行完成通知时(步骤S40),调度器45将完成的任务的任务信息60通知给作业管理器44。当对于每个任务队列70执行来自可重新配置的硬件30的任务执行完成通知时,调度器45也可以对于每个任务队列70将任务信息60通知作业管理器44(步骤S140)。如果完成任务队列70的执行,则改变可重新配置的硬件30的状态和任务队列70的状态,从而调度器45执行作为调度的主要部分的步骤S90、S100、S110、S120和S130的操作。
当事件是来自可重新配置的硬件30的用于完成正在加载的程序的通知时(步骤S50),调度器45将对应于程序加载已经完成的程序20的任务队列70的状态从程序加载等待状态改变为执行等待状态(步骤S150)。因为改变了可重新配置的硬件30的状态和任务队列70的状态,调度器45执行作为调度的主要部分的步骤S90、S100、S110、S120和S130的操作。
在调度器45的以上操作例子中,通过将可由相同程序20执行的多个任务作为任务队列70的单元来进行管理,使得程序加载所需时间相较于执行任务所需的时间相对较小,从而当可重新配置的硬件30执行多个程序时可以减少程序加载时间的总开支。当如图5和图6所示可重新配置的硬件30同时执行程序20和加载程序20时,因为可重新配置的硬件30可以并行地加载程序20以及另一程序20,所以变得也可以有效除去用于程序加载的总开支。
在本示例性实施例的信息处理设备10中,因为可重新配置的硬件30执行能够由相同程序20作为整体处理的多个任务,所以可以使得程序加载所需的时间相较于执行时间相对较小。因此,在使用可重新配置的硬件30的信息处理设备10时,当根据处理加载可重新配置的硬件30的程序时,可以使得程序加载时间的总开支较小,并且还可以在硬件规模有限的可重新配置的硬件中高效地处理大规模处理过程。
本示例性实施例的信息处理设备10可以利用包括多个任务的作业结构来管理全部过程,在执行作业中的任务时根据状态动态地选择接下来要执行的任务,以及动态地管理用于执行任务和执行任务所需的程序加载的调度。因此,在使用可重新配置的硬件30的信息处理设备10中,即使当不能预先静态地确定用于执行任务和程序加载的调度时,可以通过动态地管理处理进展来高效地执行处理。
因为可以有效去除用于可重新配置的硬件30的程序加载的时间,所以可以对用于流线化(streamline)通信、网络处理、多媒体处理等的用途应用本示例性实施例的信息处理设备,在上述用途中,根据来自外部的数据到达来改变需要的程序,并且对于转移处理结果时间有限。
(第二示例性实施例)
接着,将描述本发明第二示例性实施例的信息处理设备。
在本发明第二示例性实施例中,虽然基本配置与以上第一示例性实施例的配置相同,在图9所示的配置中,作业管理器44和调度器45被实现为在处理器80上执行的软件。在该配置中,作业信息存储器43、任务信息存储器42、程序存储器41和输入输出数据存储器110可以被分别实现为存储器100上的区域。处理器80、可重新配置的硬件30和存储器100可以通过通信信道90来传递信息和控制。例如,来自可重新配置的硬件30的事件通知可以被实现为对于处理器80的中断。作业管理器44和调度器45可以被实现为一个程序,或可以被实现为诸如多线程的并行程序。

Claims (9)

1.一种信息处理设备,包括:
可重新配置的硬件,其能够同时地进行以下操作:根据要执行的任务的处理内容来加载一个或多个程序;以及执行所述一个或多个所加载的程序的一个或多个程序;
输入输出数据存储器,其存储要在所述可重新配置的硬件中处理的输入输出数据;以及
控制器,其控制以加载程序到所述可重新配置的硬件并执行所述程序,
所述控制器包括:
程序存储器,其存储要加载到所述可重新配置的硬件的多个程序;
任务信息存储器,其对于在所述程序存储器中存储的每个程序存储任务信息,所述任务信息指示可由相同程序执行的多个任务;
作业信息存储器,其存储指示在作业中包括的每个任务之间的依赖关系的作业信息,所述作业是配置有多个任务的一组过程单元;
作业管理器,其根据所述作业信息选择可执行任务,将所选任务的任务信息存储在所述任务信息存储器中,并且根据执行所述任务的进展来更新所述作业信息;以及
调度器,从所述任务信息存储器选择由所述程序可执行的一个或多个任务,从所述程序存储器选择执行所选任务需要的程序,将所选程序加载到所述可重新配置的硬件并管理所述调度,控制所述可重新配置的硬件来执行所述任务和管理所述调度,以及将执行所述任务的进展状态通知给所述作业管理器。
2.根据权利要求1所述的信息处理设备,
其中,所述作业管理器在保持每个任务之间的依赖关系的同时选择接下来要执行的任务,利用存储在所述作业信息存储器中的所述作业信息来指示所述依赖关系。
3.根据权利要求1所述的信息处理设备,
其中,所述任务信息包括:
输入数据集,其包括指示所述任务的输入数据的一个或多个输入数据;
输出数据集,其包括指示所述任务的输出结果的存储区域的一个或多个输出数据;
程序标识符,其用于识别执行所述任务需要的所述程序;
用于在所述可重新配置的硬件中执行所述任务所需的要求处理时间;以及
表示直到其需要完成处理所述任务的时间的期限。
4.根据权利要求1所述的信息处理设备,
其中,所述任务信息存储器配置有对应于所述多个程序的每个的多个任务队列,并且将由所述相应程序可处理的多个任务存储在所述任务队列中,以及
所述调度器对于每个任务队列将所述程序加载到所述可重新配置的硬件中并管理所述调度,以及控制所述可重新配置的硬件以执行所述多个任务并管理所述调度。
5.根据权利要求4所述的信息处理设备,
其中,所述任务队列包括:
任务信息缓存器,其存储多条任务信息;
所述程序标识符;
处理在所述任务信息缓存器中存储的所述多条任务信息所需要的任务队列处理时间;以及
任务队列期限,到所述任务队列期限为止需要完成处理在所述任务信息缓存器中存储的所述多个任务,
所述调度器加载程序到所述可重新配置的硬件并管理所述调度,以及基于所述任务队列处理时间和所述任务队列期限,来控制所述可重新配置的硬件以便对于每个任务队列管理所述调度并执行多个任务。
6.根据权利要求3所述的信息处理设备,
其中,所述可重新配置的硬件包括:
输入输出控制器,其控制以加载并执行所述程序,输入所述任务信息,输入所述输入数据集,以及输出所述输出数据集;以及
一个或多个处理器,其根据所述程序和所述任务信息来执行所述任务的处理。
7.根据权利要求6所述的信息处理设备,
其中,所述处理器包括:
存储所述程序的程序存储器;以及
重新配置器,其能够根据加载到所述程序存储器中的所述程序来改变硬件配置。
8.根据权利要求6所述的信息处理设备,
其中,所述处理器包括:
存储所述多个程序的多个程序存储器;
程序选择器,其从所述多个程序存储器中选择一个程序存储器;
重新配置器,其能够根据存储在所选择的程序存储器中的所述程序来改变硬件配置;以及
加载器,其在利用一个选择的程序存储器在所述重新配置器中执行任务处理时,同时将所述程序加载到另一程序存储器。
9.一种由信息处理设备执行的信息处理方法,所述信息处理设备包括可重新配置的硬件,所述可重新配置的硬件能够同时地进行以下操作:根据要执行的任务的处理内容来加载一个或多个程序;以及执行所述一个或多个所加载的程序的一个或多个程序,所述方法包括:
存储要加载到所述可重新配置的硬件的多个程序;
对于每个存储的程序存储任务信息,所述任务信息指示由相同程序可执行的多个任务;
存储作业信息,所述作业信息指示作业中包括的每个任务之间的依赖关系,所述作业是配置有所述多个任务的一组处理单元;
根据所述作业信息来选择可执行任务,存储所选择的任务的任务信息,
选择由所述存储的程序可执行的一个或多个任务,基于所述任务信息来选择执行所选择的任务所需的程序,加载所选择的程序到所述可重新配置的硬件并管理调度,控制所述可重新配置的硬件来执行所述任务并管理调度,以及
根据执行所述任务的进展来更新所述作业信息。
CN200680032551.XA 2005-09-05 2006-07-13 信息处理设备 Expired - Fee Related CN101258469B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP256324/2005 2005-09-05
JP2005256324 2005-09-05
PCT/JP2006/313957 WO2007029421A1 (ja) 2005-09-05 2006-07-13 情報処理装置

Publications (2)

Publication Number Publication Date
CN101258469A CN101258469A (zh) 2008-09-03
CN101258469B true CN101258469B (zh) 2010-09-15

Family

ID=37835549

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200680032551.XA Expired - Fee Related CN101258469B (zh) 2005-09-05 2006-07-13 信息处理设备

Country Status (4)

Country Link
US (1) US20090158293A1 (zh)
JP (1) JP5018480B2 (zh)
CN (1) CN101258469B (zh)
WO (1) WO2007029421A1 (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0519981D0 (en) 2005-09-30 2005-11-09 Ignios Ltd Scheduling in a multicore architecture
JP5049683B2 (ja) * 2007-07-18 2012-10-17 キヤノン株式会社 デバイス管理装置及びジョブフロー処理方法とタスク連携処理システム
JP5240200B2 (ja) * 2007-10-03 2013-07-17 日本電気株式会社 データ処理装置および方法
JP2009187478A (ja) * 2008-02-08 2009-08-20 Sanyo Electric Co Ltd 情報処理装置、情報処理方法およびプロセッサ
US8850438B2 (en) * 2009-02-05 2014-09-30 International Business Machines Corporation Managing the processing of processing requests in a data processing system comprising a plurality of processing environments
JP5504985B2 (ja) 2010-03-11 2014-05-28 富士ゼロックス株式会社 データ処理装置
WO2011121709A1 (ja) * 2010-03-29 2011-10-06 株式会社東芝 半導体装置
US8640137B1 (en) 2010-08-30 2014-01-28 Adobe Systems Incorporated Methods and apparatus for resource management in cluster computing
JP5825261B2 (ja) * 2010-09-24 2015-12-02 日本電気株式会社 情報処理装置、その方法及びそのプログラム
US9384053B2 (en) * 2010-10-28 2016-07-05 Nec Corporation Task allocation optimization system, task allocation optimization method, and non-transitory computer readable medium storing task allocation optimization program
WO2013094156A1 (ja) * 2011-12-19 2013-06-27 日本電気株式会社 タスク配置最適化システム、タスク配置最適化方法、及びタスク配置最適化プログラム
JP5994679B2 (ja) 2013-02-26 2016-09-21 株式会社ソシオネクスト 処理装置、及び処理装置の制御方法
US9400653B2 (en) 2013-03-14 2016-07-26 Samsung Electronics Co., Ltd. System and method to clear and rebuild dependencies
US20140282572A1 (en) * 2013-03-14 2014-09-18 Samsung Electronics Co., Ltd. Task scheduling with precedence relationships in multicore systems
US9336502B2 (en) * 2013-04-30 2016-05-10 Oracle International Corporation Showing relationships between tasks in a Gantt chart
NL2011315C2 (en) * 2013-08-19 2015-02-23 Topic Embedded Systems B V A computing platform, a reconfigurable hardware device and a method for simultaneously executing processes on dynamically reconfigurable hardware device, such as an fpga, as well as instruction set processors, such as a cpu, and a related computer readable medium.
US20150356518A1 (en) * 2014-06-10 2015-12-10 Oracle International Corporation Aggregate task system
US10643157B2 (en) 2015-02-03 2020-05-05 Oracle International Corporation Task progress update history visualization system
US10496943B2 (en) 2015-03-30 2019-12-03 Oracle International Corporation Visual task assignment system
US9552229B2 (en) 2015-05-14 2017-01-24 Atlassian Pty Ltd Systems and methods for task scheduling
CN105677469B (zh) * 2016-01-06 2019-12-27 北京京东世纪贸易有限公司 定时任务执行方法及装置
US20180081834A1 (en) * 2016-09-16 2018-03-22 Futurewei Technologies, Inc. Apparatus and method for configuring hardware to operate in multiple modes during runtime
US10318348B2 (en) 2016-09-23 2019-06-11 Imagination Technologies Limited Task scheduling in a GPU
GB2554392B (en) * 2016-09-23 2019-10-30 Imagination Tech Ltd Task scheduling in a GPU
EP3376441B1 (en) * 2017-03-15 2021-07-14 Siemens Aktiengesellschaft A method for execution of a machine learning model on memory restricted industrial device
JP7273383B2 (ja) * 2020-03-26 2023-05-15 Kddi株式会社 スケジューリング方法、およびスケジューリング装置
US11263025B2 (en) * 2020-05-26 2022-03-01 International Business Machines Corporation Proactively performing tasks based on estimating hardware reconfiguration times

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1038620C (zh) * 1992-01-31 1998-06-03 国际商业机器公司 多媒体计算机操作系统及方法
US6430594B1 (en) * 1997-02-17 2002-08-06 Nec Corporation Real-time operating system and a task management system therefor

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63150735A (ja) * 1986-12-16 1988-06-23 Nec Corp タスクの生成/削除制御方式
JPH04205231A (ja) * 1990-11-30 1992-07-27 Fujitsu Ltd プログラム実行制御方式
US6003061A (en) * 1995-12-07 1999-12-14 Microsoft Corporation Method and system for scheduling the use of a computer system resource using a resource planner and a resource provider
JP3878307B2 (ja) * 1997-12-19 2007-02-07 松下電器産業株式会社 プログラマブルなデータ処理装置
JP3587095B2 (ja) * 1999-08-25 2004-11-10 富士ゼロックス株式会社 情報処理装置
US6408277B1 (en) * 2000-06-21 2002-06-18 Banter Limited System and method for automatic task prioritization
US7299466B2 (en) * 2001-12-20 2007-11-20 Cadence Design Systems, Inc. Mechanism for managing execution environments for aggregated processes
JP2003263331A (ja) * 2002-03-07 2003-09-19 Toshiba Corp マルチプロセッサシステム
GB0304628D0 (en) * 2003-02-28 2003-04-02 Imec Inter Uni Micro Electr Method for hardware-software multitasking on a reconfigurable computing platform

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1038620C (zh) * 1992-01-31 1998-06-03 国际商业机器公司 多媒体计算机操作系统及方法
US6430594B1 (en) * 1997-02-17 2002-08-06 Nec Corporation Real-time operating system and a task management system therefor

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JP特开2001-68993A 2001.03.16
JP特开平11-184718A 1999.07.09
JP特开平4-205231A 1992.07.27

Also Published As

Publication number Publication date
CN101258469A (zh) 2008-09-03
JPWO2007029421A1 (ja) 2009-03-12
JP5018480B2 (ja) 2012-09-05
US20090158293A1 (en) 2009-06-18
WO2007029421A1 (ja) 2007-03-15

Similar Documents

Publication Publication Date Title
CN101258469B (zh) 信息处理设备
US7441240B2 (en) Process scheduling apparatus, process scheduling method, program for process scheduling, and storage medium recording a program for process scheduling
US6430594B1 (en) Real-time operating system and a task management system therefor
CN101211277B (zh) 选择子os的一个执行计划的方法与使用该方法的虚拟机监视器
US7246353B2 (en) Method and system for managing the execution of threads and the processing of data
US20110035751A1 (en) Soft Real-Time Load Balancer
US20150301854A1 (en) Apparatus and method for hardware-based task scheduling
CN111782355B (zh) 一种基于混合负载的云计算任务调度方法及系统
CN102541642B (zh) 一种增强实时性能的任务管理方法
US20080235695A1 (en) Resource allocation system for jobs, resource allocation method and resource allocation program for jobs
CN109791506B (zh) 任务调度
CN111625331A (zh) 任务调度方法、装置、平台、服务器及存储介质
WO2020121292A1 (en) Efficient data processing in a serverless environment
CN105446812A (zh) 一种多任务调度配置方法
US20200293366A1 (en) Processor zero overhead task scheduling
CN106874129B (zh) 一种操作系统进程调度顺序确定方法及控制方法
Khelghatdoust et al. Peacock: Probe-based scheduling of jobs by rotating between elastic queues
JP2002163117A (ja) タスクスケジューリング装置
CN115033374A (zh) 一种多核可编程控制器的任务到线程匹配方法
US10402245B2 (en) Watchdog method and device
Meyer et al. Pipel: exploiting resource reorganisation to optimise performance of pipeline-structured applications in the cloud
CN104506452A (zh) 一种报文处理方法及装置
US11789773B2 (en) Computing device for handling tasks in a multi-core processor, and method for operating computing device
US20230418667A1 (en) Computing device for handling tasks in a multi-core processor, and method for operating computing device
Xu et al. Optimization for speculative execution of multiple jobs in a mapreduce-like cluster

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100915

Termination date: 20160713